' ########################################################################################
' Microsoft Windows
' File: OleAcc.inc
' Copyright (c) 2011 Jos? Roca
' Portions Copyright (c) Microsoft Corporation.
' All Rights Reserved.
' THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER
' EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
' MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE.
' ########################################################################################
#IF NOT %DEF(PBX_OleAcc_PBI)
#DEFINE PBX_OleAcc_PBI
%EQUATE `OLEACC_INC = 1
#INCLUDE ONCE "Legacy/COM/Ole2.inc"
'//=--------------------------------------------------------------------------=
'// Typedefs
'//=--------------------------------------------------------------------------=
'typedef LRESULT (STDAPICALLTYPE *LPFNLRESULTFROMOBJECT)(REFIID riid, WPARAM wParam, LPUNKNOWN punk);
'typedef HRESULT (STDAPICALLTYPE *LPFNOBJECTFROMLRESULT)(LRESULT lResult, REFIID riid, WPARAM wParam, void** ppvObject);
'typedef HRESULT (STDAPICALLTYPE *LPFNACCESSIBLEOBJECTFROMWINDOW)(HWND hwnd, DWORD dwId, REFIID riid, void** ppvObject);
'typedef HRESULT (STDAPICALLTYPE *LPFNACCESSIBLEOBJECTFROMPOINT)(POINT ptScreen, IAccessible** ppacc, VARIANT* pvarChild);
'typedef HRESULT (STDAPICALLTYPE *LPFNCREATESTDACCESSIBLEOBJECT)(HWND hwnd, LONG idObject, REFIID riid, void** ppvObject);
'typedef HRESULT (STDAPICALLTYPE *LPFNACCESSIBLECHILDREN)(IAccessible* paccContainer, LONG iChildStart,LONG cChildren,VARIANT* rgvarChildren,LONG* pcObtained);
'//=--------------------------------------------------------------------------=
'// GUIDs
'//=--------------------------------------------------------------------------=
$LIBID_Accessibility = GUID$("{1EA4DBF0-3C3B-11CF-810C-00AA00389B71}")
$IID_IAccessible = GUID$("{618736E0-3C3D-11CF-810C-00AA00389B71}")
$IID_IAccessibleHandler = GUID$("{03022430-ABC4-11D0-BDE2-00AA001A1953}")
$IID_IAccIdentity = GUID$("{7852B78D-1CFD-41C1-A615-9C0C85960B5F}")
$IID_IAccPropServer = GUID$("{76C0DBBB-15E0-4E7B-B61B-20EEEA2001E0}")
$IID_IAccPropServices = GUID$("{6E26E776-04F0-495D-80E4-3330352E3169}")
$IID_IAccPropMgrInternal = GUID$("{2BD370A9-3E7F-4EDD-8A85-F8FED1F8E51F}")
$CLSID_CAccPropServices = GUID$("{B5F8350B-0548-48B1-A6EE-88BD00B4A5E7}")
$IIS_IsOleaccProxy = GUID$("{902697FA-80E4-4560-802A-A13F22A64709}")
'//=--------------------------------------------------------------------------=
'// MSAA API Prototypes
'//=--------------------------------------------------------------------------=
DECLARE FUNCTION LresultFromObject LIB "oleacc.dll" ALIAS "LresultFromObject" ( BYREF riid AS GUID , BYVAL wParam AS QUAD , BYVAL pAcc AS IUnknown ) AS LONG
DECLARE FUNCTION ObjectFromLresult LIB "oleacc.dll" ALIAS "ObjectFromLresult" ( BYVAL lResult AS LONG
 , BYREF riid AS GUID
 , BYVAL wParam AS DWORD
 , BYREF ppvObject AS ANY
 ) AS LONG
DECLARE FUNCTION WindowFromAccessibleObject LIB "oleacc.dll" ALIAS "WindowFromAccessibleObject" ( BYVAL pacc AS IAccessible
 , BYREF phwnd AS DWORD
 ) AS LONG
DECLARE FUNCTION AccessibleObjectFromWindow LIB "oleacc.dll" ALIAS "AccessibleObjectFromWindow" ( BYVAL hwnd AS DWORD
 , BYVAL dwObjectID AS DWORD
 , BYREF riid AS GUID
 , BYREF ppvObject AS ANY
 ) AS LONG
DECLARE FUNCTION AccessibleObjectFromEvent LIB "oleacc.dll" ALIAS "AccessibleObjectFromEvent" ( BYVAL hwnd AS DWORD
 , BYVAL dwObjectID AS DWORD
 , BYVAL dwChildID AS DWORD
 , BYREF ppacc AS IAccessible
 , BYREF pvarChild AS VARIANT
 ) AS LONG
DECLARE FUNCTION AccessibleObjectFromPoint LIB "oleacc.dll" ALIAS "AccessibleObjectFromPoint" ( BYVAL ptScreen AS POINT
 , BYREF ppacc AS IAccessible
 , BYREF pvarChild AS VARIANT
 ) AS LONG
DECLARE FUNCTION AccessibleChildren LIB "oleacc.dll" ALIAS "AccessibleChildren" ( BYVAL paccContainer AS IAccessible
 , BYVAL iChildStart AS LONG
 , BYVAL cChildren AS LONG
 , BYREF rgvarChildren AS ANY
 , BYREF pcObtained AS LONG
 ) AS LONG
DECLARE FUNCTION GetRoleTextA LIB "oleacc.dll" ALIAS "GetRoleTextA" ( BYVAL dwRole AS DWORD
 , BYREF lpszRole AS ASCIIZ
 , BYVAL cchRoleMax AS DWORD
 ) AS DWORD ' UINT
DECLARE FUNCTION GetRoleTextW LIB "oleacc.dll" ALIAS "GetRoleTextW" ( BYVAL dwRole AS QUAD , BYREF lpszRole AS WSTRINGZ , BYVAL cchRoleMax AS QUAD ) AS QUAD ' UINT
#IF %DEF(%UNICODE)
 MACRO GetRoleText = GetRoleTextW
#ELSE
 MACRO GetRoleText = GetRoleTextA
#ENDIF
DECLARE FUNCTION GetStateTextA LIB "oleacc.dll" ALIAS "GetStateTextA" ( BYVAL dwStateBit AS QUAD , BYREF lpszStateBit AS ASCIIZ , BYVAL cchStateBitMax AS QUAD ) AS QUAD ' UINT
DECLARE FUNCTION GetStateTextW LIB "oleacc.dll" ALIAS "GetStateTextW" ( BYVAL dwStateBit AS QUAD , BYREF lpszStateBit AS WSTRINGZ , BYVAL cchStateBitMax AS QUAD ) AS QUAD ' UINT
#IF %DEF(%UNICODE)
 MACRO GetStateText = GetStateTextW
#ELSE
 MACRO GetStateText = GetStateTextA
#ENDIF
DECLARE SUB GetOleaccVersionInfo LIB "oleacc.dll" ALIAS "GetOleaccVersionInfo" ( BYREF pdwVer AS QUAD , BYREF pdwBuild AS QUAD ) ' void
DECLARE FUNCTION CreateStdAccessibleObject LIB "oleacc.dll" ALIAS "CreateStdAccessibleObject" ( BYVAL hwnd AS QUAD , BYVAL idObject AS LONG , BYREF riidInterface AS GUID , BYREF ppvObject AS ANY ) AS LONG
DECLARE FUNCTION CreateStdAccessibleProxyA LIB "oleacc.dll" ALIAS "CreateStdAccessibleProxyA" ( BYVAL hwnd AS QUAD
 , BYREF pszClassName AS ASCIIZ
 , BYVAL idObject AS LONG
 , BYREF riidInterface AS GUID
 , BYREF ppvObject AS ANY
 ) AS LONG
DECLARE FUNCTION CreateStdAccessibleProxyW LIB "oleacc.dll" ALIAS "CreateStdAccessibleProxyW" ( BYVAL hwnd AS DWORD
 , BYREF pszClassName AS WSTRINGZ
 , BYVAL idObject AS LONG
 , BYREF riidInterface AS GUID
 , BYREF ppvObject AS ANY
 ) AS LONG
#IF %DEF(%UNICODE)
 MACRO CreateStdAccessibleProxy = CreateStdAccessibleProxyW
#ELSE
 MACRO CreateStdAccessibleProxy = CreateStdAccessibleProxyA
#ENDIF
' // Documented, but not included in OleAcc.h
DECLARE FUNCTION GetProcessHandleFromHwnd LIB "oleacc.dll" ALIAS "GetProcessHandleFromHwnd" ( BYVAL hwnd AS QUAD ) AS QUAD
'// Simple Owner-Drawn Menu support...
%EQUATE `MSAA_MENU_SIG = &HAA0DF00D
'// Menu's dwItemData should point to one of these structs:
'// (or can point to an app-defined struct containing this as the first member)
' // Size = 12 bytes
TYPE MSAAMENUINFO DWORD
 dwMSAASignature AS DWORD ' // Must be MSAA_MENU_SIG
 cchWText AS DWORD ' // Length of text, in Unicode characters, excluding terminating NUL
 pszWText AS DWORD ' // NUL-terminated text, in Unicode
END TYPE
'//=--------------------------------------------------------------------------=
'// Property GUIDs (used by annotation interfaces)
'//=--------------------------------------------------------------------------=
$PROPID_ACC_NAME = GUID$("{608D3DF8-8128-4AA7-A428-F55E49267291}")
$PROPID_ACC_VALUE = GUID$("{123FE443-211A-4615-9527-C45A7E93717A}")
$PROPID_ACC_DESCRIPTION = GUID$("{4D48DFE4-BD3F-491F-A648-492D6F20C588}")
$PROPID_ACC_ROLE = GUID$("{CB905FF2-7BD1-4C05-B3C8-E6C241364D70}")
$PROPID_ACC_STATE = GUID$("{A8D4D5B0-0A21-42D0-A5C0-514E984F457B}")
$PROPID_ACC_HELP = GUID$("{C831E11F-44DB-4A99-9768-CB8F978B7231}")
$PROPID_ACC_KEYBOARDSHORTCUT = GUID$("{7D9BCEEE-7D1E-4979-9382-5180F4172C34}")
$PROPID_ACC_DEFAULTACTION = GUID$("{180C072B-C27F-43C7-9922-F63562A4632B}")
$PROPID_ACC_HELPTOPIC = GUID$("{787D1379-8EDE-440B-8AEC-11F7BF9030B3}")
$PROPID_ACC_FOCUS = GUID$("{6EB335DF-1C29-4127-B12C-DEE9FD157F2B}")
$PROPID_ACC_SELECTION = GUID$("{B99D073C-D731-405B-9061-D95E8F842984}")
$PROPID_ACC_PARENT = GUID$("{474C22B6-FFC2-467A-B1B5-E958B4657330}")
$PROPID_ACC_NAV_UP = GUID$("{016E1A2B-1A4E-4767-8612-3386F66935EC}")
$PROPID_ACC_NAV_DOWN = GUID$("{031670ED-3CDF-48D2-9613-138F2DD8A668}")
$PROPID_ACC_NAV_LEFT = GUID$("{228086CB-82F1-4A39-8705-DCDC0FFF92F5}")
$PROPID_ACC_NAV_RIGHT = GUID$("{CD211D9F-E1CB-4FE5-A77C-920B884D095B}")
$PROPID_ACC_NAV_PREV = GUID$("{776D3891-C73B-4480-B3F6-076A16A15AF6}")
$PROPID_ACC_NAV_NEXT = GUID$("{1CDC5455-8CD9-4C92-A371-3939A2FE3EEE}")
$PROPID_ACC_NAV_FIRSTCHILD = GUID$("{CFD02558-557B-4C67-84F9-2A09FCE40749}")
$PROPID_ACC_NAV_LASTCHILD = GUID$("{302ECAA5-48D5-4F8D-B671-1A8D20A77832}")
'// Value map, used by sliders and other controls...
$PROPID_ACC_ROLEMAP = GUID$("{F79ACDA2-140D-4FE6-8914-208476328269}")
$PROPID_ACC_VALUEMAP = GUID$("{DA1C3D79-FC5C-420E-B399-9D1533549E75}")
$PROPID_ACC_STATEMAP = GUID$("{43946C5E-0AC0-4042-B525-07BBDBE17FA7}")
$PROPID_ACC_DESCRIPTIONMAP = GUID$("{1FF1435F-8A14-477B-B226-A0ABE279975D}")
$PROPID_ACC_DODEFAULTACTION = GUID$("{1BA09523-2E3B-49A6-A059-59682A3C48FD}")
'//=--------------------------------------------------------------------------=
'// Interface Definitions
'//=--------------------------------------------------------------------------=
#IF NOT %DEF(%IAccessible_INTERFACE_DEFINED)
 %IAccessible_INTERFACE_DEFINED = 1
%EQUATE `DISPID_ACC_PARENT = -5000
%EQUATE `DISPID_ACC_CHILDCOUNT = -5001
%EQUATE `DISPID_ACC_CHILD = -5002
%EQUATE `DISPID_ACC_NAME = -5003
%EQUATE `DISPID_ACC_VALUE = -5004
%EQUATE `DISPID_ACC_DESCRIPTION = -5005
%EQUATE `DISPID_ACC_ROLE = -5006
%EQUATE `DISPID_ACC_STATE = -5007
%EQUATE `DISPID_ACC_HELP = -5008
%EQUATE `DISPID_ACC_HELPTOPIC = -5009
%EQUATE `DISPID_ACC_KEYBOARDSHORTCUT = -5010
%EQUATE `DISPID_ACC_FOCUS = -5011
%EQUATE `DISPID_ACC_SELECTION = -5012
%EQUATE `DISPID_ACC_DEFAULTACTION = -5013
%EQUATE `DISPID_ACC_SELECT = -5014
%EQUATE `DISPID_ACC_LOCATION = -5015
%EQUATE `DISPID_ACC_NAVIGATE = -5016
%EQUATE `DISPID_ACC_HITTEST = -5017
%EQUATE `DISPID_ACC_DODEFAULTACTION = -5018
%EQUATE `NAVDIR_MIN = 0
%EQUATE `NAVDIR_UP = &H1
%EQUATE `NAVDIR_DOWN = &H2
%EQUATE `NAVDIR_LEFT = &H3
%EQUATE `NAVDIR_RIGHT = &H4
%EQUATE `NAVDIR_NEXT = &H5
%EQUATE `NAVDIR_PREVIOUS = &H6
%EQUATE `NAVDIR_FIRSTCHILD = &H7
%EQUATE `NAVDIR_LASTCHILD = &H8
%EQUATE `NAVDIR_MAX = &H9
%EQUATE `SELFLAG_NONE = 0
%EQUATE `SELFLAG_TAKEFOCUS = &H1
%EQUATE `SELFLAG_TAKESELECTION = &H2
%EQUATE `SELFLAG_EXTENDSELECTION = &H4
%EQUATE `SELFLAG_ADDSELECTION = &H8
%EQUATE `SELFLAG_REMOVESELECTION = &H10
%EQUATE `SELFLAG_VALID = &H1f
#IF NOT %DEF(%STATE_SYSTEM_UNAVAILABLE)
%EQUATE `STATE_SYSTEM_NORMAL = 0
%EQUATE `STATE_SYSTEM_UNAVAILABLE = &H00000001 ' Disabled
%EQUATE `STATE_SYSTEM_SELECTED = &H00000002
%EQUATE `STATE_SYSTEM_FOCUSED = &H00000004
%EQUATE `STATE_SYSTEM_PRESSED = &H00000008
%EQUATE `STATE_SYSTEM_CHECKED = &H00000010
%EQUATE `STATE_SYSTEM_MIXED = &H00000020 ' 3-state checkbox or toolbar button
%EQUATE `STATE_SYSTEM_INDETERMINATE = %STATE_SYSTEM_MIXED
%EQUATE `STATE_SYSTEM_READONLY = &H00000040
%EQUATE `STATE_SYSTEM_HOTTRACKED = &H00000080
%EQUATE `STATE_SYSTEM_DEFAULT = &H00000100
%EQUATE `STATE_SYSTEM_EXPANDED = &H00000200
%EQUATE `STATE_SYSTEM_COLLAPSED = &H00000400
%EQUATE `STATE_SYSTEM_BUSY = &H00000800
%EQUATE `STATE_SYSTEM_FLOATING = &H00001000 ' Children "owned" not "contained" by parent
%EQUATE `STATE_SYSTEM_MARQUEED = &H00002000
%EQUATE `STATE_SYSTEM_ANIMATED = &H00004000
%EQUATE `STATE_SYSTEM_INVISIBLE = &H00008000
%EQUATE `STATE_SYSTEM_OFFSCREEN = &H00010000
%EQUATE `STATE_SYSTEM_SIZEABLE = &H00020000
%EQUATE `STATE_SYSTEM_MOVEABLE = &H00040000
%EQUATE `STATE_SYSTEM_SELFVOICING = &H00080000
%EQUATE `STATE_SYSTEM_FOCUSABLE = &H00100000
%EQUATE `STATE_SYSTEM_SELECTABLE = &H00200000
%EQUATE `STATE_SYSTEM_LINKED = &H00400000
%EQUATE `STATE_SYSTEM_TRAVERSED = &H00800000
%EQUATE `STATE_SYSTEM_MULTISELECTABLE = &H01000000 ' Supports multiple selection
%EQUATE `STATE_SYSTEM_EXTSELECTABLE = &H02000000 ' Supports extended selection
%EQUATE `STATE_SYSTEM_ALERT_LOW = &H04000000 ' This information is of low priority
%EQUATE `STATE_SYSTEM_ALERT_MEDIUM = &H08000000 ' This information is of medium priority
%EQUATE `STATE_SYSTEM_ALERT_HIGH = &H10000000 ' This information is of high priority
%EQUATE `STATE_SYSTEM_PROTECTED = &H20000000 ' access to this is restricted
%EQUATE `STATE_SYSTEM_VALID = &H7FFFFFFF
#ENDIF ' #IF NOT %DEF(%STATE_SYSTEM_UNAVAILABLE)
#IF NOT %DEF(%STATE_SYSTEM_HASPOPUP)
%EQUATE `STATE_SYSTEM_HASPOPUP = &H40000000
#ENDIF ' //STATE_SYSTEM_HASPOPUP
%EQUATE `ROLE_SYSTEM_TITLEBAR = &H1
%EQUATE `ROLE_SYSTEM_MENUBAR = &H2
%EQUATE `ROLE_SYSTEM_SCROLLBAR = &H3
%EQUATE `ROLE_SYSTEM_GRIP = &H4
%EQUATE `ROLE_SYSTEM_SOUND = &H5
%EQUATE `ROLE_SYSTEM_CURSOR = &H6
%EQUATE `ROLE_SYSTEM_CARET = &H7
%EQUATE `ROLE_SYSTEM_ALERT = &H8
%EQUATE `ROLE_SYSTEM_WINDOW = &H9
%EQUATE `ROLE_SYSTEM_CLIENT = &Ha
%EQUATE `ROLE_SYSTEM_MENUPOPUP = &Hb
%EQUATE `ROLE_SYSTEM_MENUITEM = &Hc
%EQUATE `ROLE_SYSTEM_TOOLTIP = &Hd
%EQUATE `ROLE_SYSTEM_APPLICATION = &He
%EQUATE `ROLE_SYSTEM_DOCUMENT = &Hf
%EQUATE `ROLE_SYSTEM_PANE = &H10
%EQUATE `ROLE_SYSTEM_CHART = &H11
%EQUATE `ROLE_SYSTEM_DIALOG = &H12
%EQUATE `ROLE_SYSTEM_BORDER = &H13
%EQUATE `ROLE_SYSTEM_GROUPING = &H14
%EQUATE `ROLE_SYSTEM_SEPARATOR = &H15
%EQUATE `ROLE_SYSTEM_TOOLBAR = &H16
%EQUATE `ROLE_SYSTEM_STATUSBAR = &H17
%EQUATE `ROLE_SYSTEM_TABLE = &H18
%EQUATE `ROLE_SYSTEM_COLUMNHEADER = &H19
%EQUATE `ROLE_SYSTEM_ROWHEADER = &H1a
%EQUATE `ROLE_SYSTEM_COLUMN = &H1b
%EQUATE `ROLE_SYSTEM_ROW = &H1c
%EQUATE `ROLE_SYSTEM_CELL = &H1d
%EQUATE `ROLE_SYSTEM_LINK = &H1e
%EQUATE `ROLE_SYSTEM_HELPBALLOON = &H1f
%EQUATE `ROLE_SYSTEM_CHARACTER = &H20
%EQUATE `ROLE_SYSTEM_LIST = &H21
%EQUATE `ROLE_SYSTEM_LISTITEM = &H22
%EQUATE `ROLE_SYSTEM_OUTLINE = &H23
%EQUATE `ROLE_SYSTEM_OUTLINEITEM = &H24
%EQUATE `ROLE_SYSTEM_PAGETAB = &H25
%EQUATE `ROLE_SYSTEM_PROPERTYPAGE = &H26
%EQUATE `ROLE_SYSTEM_INDICATOR = &H27
%EQUATE `ROLE_SYSTEM_GRAPHIC = &H28
%EQUATE `ROLE_SYSTEM_STATICTEXT = &H29
%EQUATE `ROLE_SYSTEM_TEXT = &H2a
%EQUATE `ROLE_SYSTEM_PUSHBUTTON = &H2b
%EQUATE `ROLE_SYSTEM_CHECKBUTTON = &H2c
%EQUATE `ROLE_SYSTEM_RADIOBUTTON = &H2d
%EQUATE `ROLE_SYSTEM_COMBOBOX = &H2e
%EQUATE `ROLE_SYSTEM_DROPLIST = &H2f
%EQUATE `ROLE_SYSTEM_PROGRESSBAR = &H30
%EQUATE `ROLE_SYSTEM_DIAL = &H31
%EQUATE `ROLE_SYSTEM_HOTKEYFIELD = &H32
%EQUATE `ROLE_SYSTEM_SLIDER = &H33
%EQUATE `ROLE_SYSTEM_SPINBUTTON = &H34
%EQUATE `ROLE_SYSTEM_DIAGRAM = &H35
%EQUATE `ROLE_SYSTEM_ANIMATION = &H36
%EQUATE `ROLE_SYSTEM_EQUATION = &H37
%EQUATE `ROLE_SYSTEM_BUTTONDROPDOWN = &H38
%EQUATE `ROLE_SYSTEM_BUTTONMENU = &H39
%EQUATE `ROLE_SYSTEM_BUTTONDROPDOWNGRID = &H3a
%EQUATE `ROLE_SYSTEM_WHITESPACE = &H3b
%EQUATE `ROLE_SYSTEM_PAGETABLIST = &H3c
%EQUATE `ROLE_SYSTEM_CLOCK = &H3d
%EQUATE `ROLE_SYSTEM_SPLITBUTTON = &H3e
%EQUATE `ROLE_SYSTEM_IPADDRESS = &H3f
%EQUATE `ROLE_SYSTEM_OUTLINEBUTTON = &H40
' ########################################################################################
' Interface name = IAccessible
' IID = {618736E0-3C3D-11CF-810C-00AA00389B71}
' Attributes = 4176 [&H1050] [Hidden] [Dual] [Dispatchable]
' Inherited interface = IDispatch
' ########################################################################################
INTERFACE IAccessible $IID_IAccessible
 INHERIT IDispatch
 ' =====================================================================================
 PROPERTY GET accParent <-5000> ( ' VTable offset = 28
 ) AS IDispatch
 ' =====================================================================================
 PROPERTY GET accChildCount <-5001> ( ' VTable offset = 32
 ) AS LONG
 ' =====================================================================================
 PROPERTY GET accChild <-5002> ( ' VTable offset = 36
 BYVAL varChild AS VARIANT
 ) AS IDispatch
 ' =====================================================================================
 PROPERTY GET accName <-5003> ( ' VTable offset = 40
 OPTIONAL BYVAL varChild AS VARIANT
 ) AS WSTRING
 ' =====================================================================================
 PROPERTY GET accValue <-5004> ( ' VTable offset = 44
 OPTIONAL BYVAL varChild AS VARIANT
 ) AS WSTRING
 ' =====================================================================================
 PROPERTY GET accDescription <-5005> ( ' VTable offset = 48
 OPTIONAL BYVAL varChild AS VARIANT
 ) AS WSTRING
 ' =====================================================================================
 PROPERTY GET accRole <-5006> ( ' VTable offset = 52
 OPTIONAL BYVAL varChild AS VARIANT
 ) AS VARIANT
 ' =====================================================================================
 PROPERTY GET accState <-5007> ( ' VTable offset = 56
 OPTIONAL BYVAL varChild AS VARIANT
 ) AS VARIANT
 ' =====================================================================================
 PROPERTY GET accHelp <-5008> ( ' VTable offset = 60
 OPTIONAL BYVAL varChild AS VARIANT
 ) AS WSTRING
 ' =====================================================================================
 PROPERTY GET accHelpTopic <-5009> ( ' VTable offset = 64
 BYREF IN pszHelpFile AS WSTRING
 , OPTIONAL BYVAL varChild AS VARIANT
 ) AS LONG
 ' =====================================================================================
 PROPERTY GET accKeyboardShortcut <-5010> ( ' VTable offset = 68
 OPTIONAL BYVAL varChild AS VARIANT
 ) AS WSTRING
 ' =====================================================================================
 PROPERTY GET accFocus <-5011> ( ' VTable offset = 72
 ) AS VARIANT
 ' =====================================================================================
 PROPERTY GET accSelection <-5012> ( ' VTable offset = 76
 ) AS VARIANT
 ' =====================================================================================
 PROPERTY GET accDefaultAction <-5013> ( ' VTable offset = 80
 OPTIONAL BYVAL varChild AS VARIANT
 ) AS WSTRING
 ' =====================================================================================
 METHOD accSelect <-5014> ( ' VTable offset = 84
 BYVAL flagsSelect AS LONG
 , OPTIONAL BYVAL varChild AS VARIANT
 ) ' void
 ' =====================================================================================
 METHOD accLocation <-5015> ( ' VTable offset = 88
 BYREF pxLeft AS LONG
 , BYREF pyTop AS LONG
 , BYREF pcxWidth AS LONG
 , BYREF pcyHeight AS LONG
 , OPTIONAL BYVAL varChild AS VARIANT
 ) ' void
 ' =====================================================================================
 METHOD accNavigate <-5016> ( ' VTable offset = 92
 BYVAL navDir AS LONG
 , OPTIONAL BYVAL varStart AS VARIANT
 ) AS VARIANT
 ' =====================================================================================
 METHOD accHitTest <-5017> ( ' VTable offset = 96
 BYVAL xLeft AS LONG
 , BYVAL yTop AS LONG
 ) AS VARIANT
 ' =====================================================================================
 METHOD accDoDefaultAction <-5018> ( ' VTable offset = 100
 OPTIONAL BYVAL varChild AS VARIANT
 ) ' void
 ' =====================================================================================
 PROPERTY SET accName <-5003> ( ' VTable offset = 104
 OPTIONAL BYVAL varChild AS VARIANT
 , BYVAL szName AS WSTRING
 ) ' void
 ' =====================================================================================
 PROPERTY SET accValue <-5004> ( ' VTable offset = 108
 OPTIONAL BYVAL varChild AS VARIANT
 , BYVAL szValue AS WSTRING
 ) ' void
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __IAccessible_INTERFACE_DEFINED__ */
' ########################################################################################
' Interface name = IAccessibleHandler
' IID = {03022430-ABC4-11D0-BDE2-00AA001A1953}
' Attributes = 272 [&H110] [Hidden] [Oleautomation]
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%IAccessibleHandler_INTERFACE_DEFINED)
 %IAccessibleHandler_INTERFACE_DEFINED = 1
INTERFACE IAccessibleHandler $IID_IAccessibleHandler
 INHERIT IUnknown
 ' =====================================================================================
 METHOD AccessibleObjectFromID ( ' VTable offset = 12
 BYVAL hwnd AS LONG
 , BYVAL lObjectID AS LONG
 , BYREF pIAccessible AS IAccessible
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __IAccessibleHandler_INTERFACE_DEFINED__ */
' AnnoScope enum
%EQUATE `ANNO_THIS = 0
%EQUATE `ANNO_CONTAINER = 1
'typedef GUID MSAAPROPID;
' ########################################################################################
' Interface name = IAccIdentity
' IID = {7852B78D-1CFD-41C1-A615-9C0C85960B5F}
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%IAccIdentity_INTERFACE_DEFINED)
 %IAccIdentity_INTERFACE_DEFINED = 1
INTERFACE IAccIdentity $IID_IAccIdentity
 INHERIT IUnknown
 ' =====================================================================================
 METHOD GetIdentityString ( ' VTable offset = 12
 BYVAL dwIDChild AS DWORD
 , BYREF ppIDString AS DWORD
 , BYREF pdwIDStringLen AS DWORD
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __IAccIdentity_INTERFACE_DEFINED__ */
' ########################################################################################
' Interface name = IAccPropServer
' IID = {76C0DBBB-15E0-4E7B-B61B-20EEEA2001E0}
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%IAccPropServer_INTERFACE_DEFINED)
 %IAccPropServer_INTERFACE_DEFINED = 1
INTERFACE IAccPropServer $IID_IAccPropServer
 INHERIT IUnknown
 ' =====================================================================================
 METHOD GetPropValue ( ' VTable offset = 12
 BYVAL pIDString AS BYTE PTR
 , BYVAL dwIDStringLen AS DWORD
 , BYVAL idProp AS GUID
 , BYREF pvarValue AS VARIANT
 , BYREF pfHasProp AS LONG
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __IAccPropServer_INTERFACE_DEFINED__ */
' ########################################################################################
' Interface name = IAccPropServices
' IID = {6E26E776-04F0-495D-80E4-3330352E3169}
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%IAccPropServices_INTERFACE_DEFINED)
 %IAccPropServices_INTERFACE_DEFINED = 1
INTERFACE IAccPropServices $IID_IAccPropServices
 INHERIT IUnknown
 ' =====================================================================================
 METHOD SetPropValue ( ' VTable offset = 12
 BYVAL pIDString AS BYTE PTR
 , BYVAL dwIDStringLen AS DWORD
 , BYVAL idProp AS GUID
 , BYVAL var AS VARIANT
 ) AS LONG
 ' =====================================================================================
 METHOD SetPropServer ( ' VTable offset = 16
 BYVAL pIDString AS BYTE PTR
 , BYVAL dwIDStringLen AS DWORD
 , BYREF paProps AS GUID
 , BYVAL cProps AS LONG
 , BYVAL pServer AS IAccPropServer
 , BYVAL annoScope AS LONG
 ) AS LONG
 ' =====================================================================================
 METHOD ClearProps ( ' VTable offset = 20
 BYVAL pIDString AS BYTE PTR
 , BYVAL dwIDStringLen AS DWORD
 , BYREF paProps AS GUID
 , BYVAL cProps AS LONG
 ) AS LONG
 ' =====================================================================================
 METHOD SetHwndProp ( ' VTable offset = 24
 BYVAL hwnd AS DWORD
 , BYVAL idObject AS DWORD
 , BYVAL idChild AS DWORD
 , BYVAL idProp AS GUID
 , BYVAL var AS VARIANT
 ) AS LONG
 ' =====================================================================================
 METHOD SetHwndPropStr ( ' VTable offset = 28
 BYVAL hwnd AS DWORD
 , BYVAL idObject AS DWORD
 , BYVAL idChild AS DWORD
 , BYVAL idProp AS GUID
 , BYREF str AS WSTRINGZ
 ) AS LONG
 ' =====================================================================================
 METHOD SetHwndPropServer ( ' VTable offset = 32
 BYVAL hwnd AS DWORD
 , BYVAL idObject AS DWORD
 , BYVAL idChild AS DWORD
 , BYREF paProps AS GUID
 , BYVAL cProps AS LONG
 , BYVAL pServer AS IAccPropServer
 , BYVAL annoScope AS LONG
 ) AS LONG
 ' =====================================================================================
 METHOD ClearHwndProps ( ' VTable offset = 36
 BYVAL hwnd AS DWORD
 , BYVAL idObject AS DWORD
 , BYVAL idChild AS DWORD
 , BYREF paProps AS GUID
 , BYVAL cProps AS LONG
 ) AS LONG
 ' =====================================================================================
 METHOD ComposeHwndIdentityString ( ' VTable offset = 40
 BYVAL hwnd AS DWORD
 , BYVAL idObject AS DWORD
 , BYVAL idChild AS DWORD
 , BYREF ppIDString AS DWORD
 , BYREF pdwIDStringLen AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD DecomposeHwndIdentityString ( ' VTable offset = 44
 BYVAL pIDString AS BYTE PTR
 , BYVAL dwIDStringLen AS DWORD
 , BYREF phwnd AS DWORD
 , BYREF pidObject AS DWORD
 , BYREF pidChild AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD SetHmenuProp ( ' VTable offset = 48
 BYVAL hmenu AS DWORD
 , BYVAL idChild AS DWORD
 , BYVAL idProp AS GUID
 , BYVAL var AS VARIANT
 ) AS LONG
 ' =====================================================================================
 METHOD SetHmenuPropStr ( ' VTable offset = 52
 BYVAL hmenu AS DWORD
 , BYVAL idChild AS DWORD
 , BYVAL idProp AS GUID
 , BYREF str AS WSTRINGZ
 ) AS LONG
 ' =====================================================================================
 METHOD SetHmenuPropServer ( ' VTable offset = 56
 BYVAL hmenu AS DWORD
 , BYVAL idChild AS DWORD
 , BYREF paProps AS GUID
 , BYVAL cProps AS LONG
 , BYVAL pServer AS IAccPropServer
 , BYVAL annoScope AS LONG
 ) AS LONG
 ' =====================================================================================
 METHOD ClearHmenuProps ( ' VTable offset = 60
 BYVAL hmenu AS DWORD
 , BYVAL idChild AS DWORD
 , BYREF paProps AS GUID
 , BYVAL cProps AS LONG
 ) AS LONG
 ' =====================================================================================
 METHOD ComposeHmenuIdentityString ( ' VTable offset = 64
 BYVAL hmenu AS DWORD
 , BYVAL idChild AS DWORD
 , BYREF ppIDString AS DWORD
 , BYREF pdwIDStringLen AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD DecomposeHmenuIdentityString ( ' VTable offset = 68
 BYVAL pIDString AS BYTE PTR
 , BYVAL dwIDStringLen AS DWORD
 , BYREF phmenu AS DWORD
 , BYREF pidChild AS DWORD
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __IAccPropServices_INTERFACE_DEFINED__ */
#ENDIF
