2 * Copyright (C) 2005 Dmitry Timoshkov
4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Lesser General Public
6 * License as published by the Free Software Foundation; either
7 * version 2.1 of the License, or (at your option) any later version.
9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * Lesser General Public License for more details.
14 * You should have received a copy of the GNU Lesser General Public
15 * License along with this library; if not, write to the Free Software
16 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
21 cpp_quote
("#define NAVDIR_MIN 0")
22 cpp_quote
("#define NAVDIR_UP 1")
23 cpp_quote
("#define NAVDIR_DOWN 2")
24 cpp_quote
("#define NAVDIR_LEFT 3")
25 cpp_quote
("#define NAVDIR_RIGHT 4")
26 cpp_quote
("#define NAVDIR_NEXT 5")
27 cpp_quote
("#define NAVDIR_PREVIOUS 6")
28 cpp_quote
("#define NAVDIR_FIRSTCHILD 7")
29 cpp_quote
("#define NAVDIR_LASTCHILD 8")
30 cpp_quote
("#define NAVDIR_MAX 9")
32 cpp_quote
("#define ROLE_SYSTEM_TITLEBAR 1")
33 cpp_quote
("#define ROLE_SYSTEM_MENUBAR 2")
34 cpp_quote
("#define ROLE_SYSTEM_SCROLLBAR 3")
35 cpp_quote
("#define ROLE_SYSTEM_GRIP 4")
36 cpp_quote
("#define ROLE_SYSTEM_SOUND 5")
37 cpp_quote
("#define ROLE_SYSTEM_CURSOR 6")
38 cpp_quote
("#define ROLE_SYSTEM_CARET 7")
39 cpp_quote
("#define ROLE_SYSTEM_ALERT 8")
40 cpp_quote
("#define ROLE_SYSTEM_WINDOW 9")
41 cpp_quote
("#define ROLE_SYSTEM_CLIENT 10")
42 cpp_quote
("#define ROLE_SYSTEM_MENUPOPUP 11")
43 cpp_quote
("#define ROLE_SYSTEM_MENUITEM 12")
44 cpp_quote
("#define ROLE_SYSTEM_TOOLTIP 13")
45 cpp_quote
("#define ROLE_SYSTEM_APPLICATION 14")
46 cpp_quote
("#define ROLE_SYSTEM_DOCUMENT 15")
47 cpp_quote
("#define ROLE_SYSTEM_PANE 16")
48 cpp_quote
("#define ROLE_SYSTEM_CHART 17")
49 cpp_quote
("#define ROLE_SYSTEM_DIALOG 18")
50 cpp_quote
("#define ROLE_SYSTEM_BORDER 19")
51 cpp_quote
("#define ROLE_SYSTEM_GROUPING 20")
52 cpp_quote
("#define ROLE_SYSTEM_SEPARATOR 21")
53 cpp_quote
("#define ROLE_SYSTEM_TOOLBAR 22")
54 cpp_quote
("#define ROLE_SYSTEM_STATUSBAR 23")
55 cpp_quote
("#define ROLE_SYSTEM_TABLE 24")
56 cpp_quote
("#define ROLE_SYSTEM_COLUMNHEADER 25")
57 cpp_quote
("#define ROLE_SYSTEM_ROWHEADER 26")
58 cpp_quote
("#define ROLE_SYSTEM_COLUMN 27")
59 cpp_quote
("#define ROLE_SYSTEM_ROW 28")
60 cpp_quote
("#define ROLE_SYSTEM_CELL 29")
61 cpp_quote
("#define ROLE_SYSTEM_LINK 30")
62 cpp_quote
("#define ROLE_SYSTEM_HELPBALLOON 31")
63 cpp_quote
("#define ROLE_SYSTEM_CHARACTER 32")
64 cpp_quote
("#define ROLE_SYSTEM_LIST 33")
65 cpp_quote
("#define ROLE_SYSTEM_LISTITEM 34")
66 cpp_quote
("#define ROLE_SYSTEM_OUTLINE 35")
67 cpp_quote
("#define ROLE_SYSTEM_OUTLINEITEM 36")
68 cpp_quote
("#define ROLE_SYSTEM_PAGETAB 37")
69 cpp_quote
("#define ROLE_SYSTEM_PROPERTYPAGE 38")
70 cpp_quote
("#define ROLE_SYSTEM_INDICATOR 39")
71 cpp_quote
("#define ROLE_SYSTEM_GRAPHIC 40")
72 cpp_quote
("#define ROLE_SYSTEM_STATICTEXT 41")
73 cpp_quote
("#define ROLE_SYSTEM_TEXT 42")
74 cpp_quote
("#define ROLE_SYSTEM_PUSHBUTTON 43")
75 cpp_quote
("#define ROLE_SYSTEM_CHECKBUTTON 44")
76 cpp_quote
("#define ROLE_SYSTEM_RADIOBUTTON 45")
77 cpp_quote
("#define ROLE_SYSTEM_COMBOBOX 46")
78 cpp_quote
("#define ROLE_SYSTEM_DROPLIST 47")
79 cpp_quote
("#define ROLE_SYSTEM_PROGRESSBAR 48")
80 cpp_quote
("#define ROLE_SYSTEM_DIAL 49")
81 cpp_quote
("#define ROLE_SYSTEM_HOTKEYFIELD 50")
82 cpp_quote
("#define ROLE_SYSTEM_SLIDER 51")
83 cpp_quote
("#define ROLE_SYSTEM_SPINBUTTON 52")
84 cpp_quote
("#define ROLE_SYSTEM_DIAGRAM 53")
85 cpp_quote
("#define ROLE_SYSTEM_ANIMATION 54")
86 cpp_quote
("#define ROLE_SYSTEM_EQUATION 55")
87 cpp_quote
("#define ROLE_SYSTEM_BUTTONDROPDOWN 56")
88 cpp_quote
("#define ROLE_SYSTEM_BUTTONMENU 57")
89 cpp_quote
("#define ROLE_SYSTEM_BUTTONDROPDOWNGRID 58")
90 cpp_quote
("#define ROLE_SYSTEM_WHITESPACE 59")
91 cpp_quote
("#define ROLE_SYSTEM_PAGETABLIST 60")
92 cpp_quote
("#define ROLE_SYSTEM_CLOCK 61")
93 cpp_quote
("#define ROLE_SYSTEM_SPLITBUTTON 62")
94 cpp_quote
("#define ROLE_SYSTEM_IPADDRESS 63")
95 cpp_quote
("#define ROLE_SYSTEM_OUTLINEBUTTON 64")
97 cpp_quote
("#define SELFLAG_NONE 0x00")
98 cpp_quote
("#define SELFLAG_TAKEFOCUS 0x01")
99 cpp_quote
("#define SELFLAG_TAKESELECTION 0x02")
100 cpp_quote
("#define SELFLAG_EXTENDSELECTION 0x04")
101 cpp_quote
("#define SELFLAG_ADDSELECTION 0x08")
102 cpp_quote
("#define SELFLAG_REMOVESELECTION 0x10")
103 cpp_quote
("#define SELFLAG_VALID 0x1f")
105 cpp_quote
("#ifndef STATE_SYSTEM_UNAVAILABLE")
106 cpp_quote
("#define STATE_SYSTEM_NORMAL 0x00000000")
107 cpp_quote
("#define STATE_SYSTEM_UNAVAILABLE 0x00000001")
108 cpp_quote
("#define STATE_SYSTEM_SELECTED 0x00000002")
109 cpp_quote
("#define STATE_SYSTEM_FOCUSED 0x00000004")
110 cpp_quote
("#define STATE_SYSTEM_PRESSED 0x00000008")
111 cpp_quote
("#define STATE_SYSTEM_CHECKED 0x00000010")
112 cpp_quote
("#define STATE_SYSTEM_MIXED 0x00000020")
113 cpp_quote
("#define STATE_SYSTEM_INDETERMINATE STATE_SYSTEM_MIXED")
114 cpp_quote
("#define STATE_SYSTEM_READONLY 0x00000040")
115 cpp_quote
("#define STATE_SYSTEM_HOTTRACKED 0x00000080")
116 cpp_quote
("#define STATE_SYSTEM_DEFAULT 0x00000100")
117 cpp_quote
("#define STATE_SYSTEM_EXPANDED 0x00000200")
118 cpp_quote
("#define STATE_SYSTEM_COLLAPSED 0x00000400")
119 cpp_quote
("#define STATE_SYSTEM_BUSY 0x00000800")
120 cpp_quote
("#define STATE_SYSTEM_FLOATING 0x00001000")
121 cpp_quote
("#define STATE_SYSTEM_MARQUEED 0x00002000")
122 cpp_quote
("#define STATE_SYSTEM_ANIMATED 0x00004000")
123 cpp_quote
("#define STATE_SYSTEM_INVISIBLE 0x00008000")
124 cpp_quote
("#define STATE_SYSTEM_OFFSCREEN 0x00010000")
125 cpp_quote
("#define STATE_SYSTEM_SIZEABLE 0x00020000")
126 cpp_quote
("#define STATE_SYSTEM_MOVEABLE 0x00040000")
127 cpp_quote
("#define STATE_SYSTEM_SELFVOICING 0x00080000")
128 cpp_quote
("#define STATE_SYSTEM_FOCUSABLE 0x00100000")
129 cpp_quote
("#define STATE_SYSTEM_SELECTABLE 0x00200000")
130 cpp_quote
("#define STATE_SYSTEM_LINKED 0x00400000")
131 cpp_quote
("#define STATE_SYSTEM_TRAVERSED 0x00800000")
132 cpp_quote
("#define STATE_SYSTEM_MULTISELECTABLE 0x01000000")
133 cpp_quote
("#define STATE_SYSTEM_EXTSELECTABLE 0x02000000")
134 cpp_quote
("#define STATE_SYSTEM_ALERT_LOW 0x04000000")
135 cpp_quote
("#define STATE_SYSTEM_ALERT_MEDIUM 0x08000000")
136 cpp_quote
("#define STATE_SYSTEM_ALERT_HIGH 0x10000000")
137 cpp_quote
("#define STATE_SYSTEM_PROTECTED 0x20000000")
138 cpp_quote
("#define STATE_SYSTEM_VALID 0x7FFFFFFF")
140 cpp_quote
("#ifndef STATE_SYSTEM_HASPOPUP")
141 cpp_quote
("#define STATE_SYSTEM_HASPOPUP 0x40000000")
144 typedef GUID MSAAPROPID
;
146 typedef enum AnnoScope
155 uuid(618736e0
-3c3d
-11cf
-810c
-00aa00389b71
),
156 pointer_default(unique)
158 interface IAccessible
: IDispatch
160 typedef [unique] IAccessible
*LPACCESSIBLE
;
161 const long DISPID_ACC_PARENT
= -5000;
162 const long DISPID_ACC_CHILDCOUNT
= -5001;
163 const long DISPID_ACC_CHILD
= -5002;
164 const long DISPID_ACC_NAME
= -5003;
165 const long DISPID_ACC_VALUE
= -5004;
166 const long DISPID_ACC_DESCRIPTION
= -5005;
167 const long DISPID_ACC_ROLE
= -5006;
168 const long DISPID_ACC_STATE
= -5007;
169 const long DISPID_ACC_HELP
= -5008;
170 const long DISPID_ACC_HELPTOPIC
= -5009;
171 const long DISPID_ACC_KEYBOARDSHORTCUT
= -5010;
172 const long DISPID_ACC_FOCUS
= -5011;
173 const long DISPID_ACC_SELECTION
= -5012;
174 const long DISPID_ACC_DEFAULTACTION
= -5013;
175 const long DISPID_ACC_SELECT
= -5014;
176 const long DISPID_ACC_LOCATION
= -5015;
177 const long DISPID_ACC_NAVIGATE
= -5016;
178 const long DISPID_ACC_HITTEST
= -5017;
179 const long DISPID_ACC_DODEFAULTACTION
= -5018;
181 [hidden, propget, id(DISPID_ACC_PARENT
)] HRESULT accParent
([out, retval]IDispatch
** ppdispParent
);
182 [hidden, propget, id(DISPID_ACC_CHILDCOUNT
)] HRESULT accChildCount
([out, retval] long* pcountChildren
);
183 [hidden, propget, id(DISPID_ACC_CHILD
)] HRESULT accChild
([in] VARIANT varChildID
, [out, retval]IDispatch
**ppdispChild
);
184 [hidden, propget, id(DISPID_ACC_NAME
)] HRESULT accName
([in]VARIANT varID
, [out, retval] BSTR* pszName
);
185 [hidden, propget, id(DISPID_ACC_VALUE
)] HRESULT accValue
([in]VARIANT varID
, [out, retval] BSTR* pszValue
);
186 [hidden, propget, id(DISPID_ACC_DESCRIPTION
)] HRESULT accDescription
([in]VARIANT varID
, [out, retval] BSTR* pszDescription
);
187 [hidden, propget, id(DISPID_ACC_ROLE
)] HRESULT accRole
([in]VARIANT varID
, [out, retval]VARIANT* pvarRole
);
188 [hidden, propget, id(DISPID_ACC_STATE
)] HRESULT accState
([in]VARIANT varID
, [out, retval]VARIANT* pvarState
);
189 [hidden, propget, id(DISPID_ACC_HELP
)] HRESULT accHelp
([in]VARIANT varID
, [out, retval]BSTR* pszHelp
);
190 [hidden, propget, id(DISPID_ACC_HELPTOPIC
)] HRESULT accHelpTopic
([out]BSTR* pszHelpFile
, [in]VARIANT varID
, [out, retval] long* pidTopic
);
191 [hidden, propget, id(DISPID_ACC_KEYBOARDSHORTCUT
)] HRESULT accKeyboardShortcut
([in]VARIANT varID
, [out, retval] BSTR* pszKeyboardShortcut
);
192 [hidden, propget, id(DISPID_ACC_FOCUS
)] HRESULT accFocus
([out, retval] VARIANT* pvarID
);
193 [hidden, propget, id(DISPID_ACC_SELECTION
)] HRESULT accSelection
([out, retval] VARIANT* pvarID
);
194 [hidden, propget, id(DISPID_ACC_DEFAULTACTION
)] HRESULT accDefaultAction
([in]VARIANT varID
, [out, retval] BSTR* pszDefaultAction
);
196 [hidden, id(DISPID_ACC_SELECT
)] HRESULT accSelect
([in]long flagsSelect
, [in]VARIANT varID
);
197 [hidden, id(DISPID_ACC_LOCATION
)] HRESULT accLocation
([out]long* pxLeft
, [out]long* pyTop
, [out]long* pcxWidth
, [out]long* pcyHeight
, [in]VARIANT varID
);
198 [hidden, id(DISPID_ACC_NAVIGATE
)] HRESULT accNavigate
([in]long navDir
, [in]VARIANT varStart
, [out, retval] VARIANT* pvarEnd
);
199 [hidden, id(DISPID_ACC_HITTEST
)] HRESULT accHitTest
([in]long xLeft
, [in]long yTop
, [out,retval] VARIANT* pvarID
);
200 [hidden, id(DISPID_ACC_DODEFAULTACTION
)] HRESULT accDoDefaultAction
([in]VARIANT varID
);
202 [hidden, propput, id(DISPID_ACC_NAME
)] HRESULT accName
([in]VARIANT varID
, [in]BSTR pszName
);
203 [hidden, propput, id(DISPID_ACC_VALUE
)] HRESULT accValue
([in]VARIANT varID
, [out, retval]BSTR pszValue
);
208 uuid(03022430-ABC4
-11d0
-BDE2
-00AA001A1953
),
211 pointer_default(unique)
213 interface IAccessibleHandler
: IUnknown
215 typedef [unique] IAccessibleHandler
*LPACCESSIBLEHANDLER
;
217 HRESULT AccessibleObjectFromID
( [in] long hwnd
, [in] long lObjectID
, [out] LPACCESSIBLE
*pIAccessible
);
222 uuid(7852b78d
-1cfd
-41c1
-a615
-9c0c85960b5f
),
223 pointer_default(unique)
225 interface IAccIdentity
: IUnknown
227 HRESULT GetIdentityString
([in] DWORD dwIDChild
, [out] BYTE **ppIDString
, [out] DWORD
*pdwIDStringLen
);
232 uuid(76c0dbbb
-15e0
-4e7b
-b61b
-20eeea2001e0
),
233 pointer_default(unique)
235 interface IAccPropServer
: IUnknown
237 HRESULT GetPropValue
([in] const BYTE *pIDString
, [in] DWORD dwIDStringLen
, [in] MSAAPROPID idProp
,
238 [out] VARIANT *pvarValue
, [out] BOOL
*pfHasProp
);
243 uuid(6e26e776
-04f0
-495d
-80e4
-3330352e3169
),
244 pointer_default(unique)
246 interface IAccPropServices
: IUnknown
248 HRESULT SetPropValue
([in] const BYTE *pIDString
, [in] DWORD dwIDStringLen
, [in] MSAAPROPID idProp
, [in] VARIANT var
);
250 HRESULT SetPropServer
([in] const BYTE * pIDString
, [in] DWORD dwIDStringLen
, [in] const MSAAPROPID
* paProps
,
251 [in] int cProps
, [in] IAccPropServer
* pServer
, [in] AnnoScope AnnoScope
);
253 HRESULT ClearProps
([in] const BYTE *pIDString
, [in] DWORD dwIDStringLen
, [in] const MSAAPROPID
* paProps
, [in] int cProps
);
255 HRESULT SetHwndProp
([in] HWND hwnd
, [in] DWORD idObject
, [in] DWORD idChild
,
256 [in] MSAAPROPID idProp
, [in] VARIANT var
);
258 HRESULT SetHwndPropStr
([in] HWND hwnd
, [in] DWORD idObject
, [in] DWORD idChild
,
259 [in] MSAAPROPID idProp
, [in] LPWSTR str
);
261 HRESULT SetHwndPropServer
([in] HWND hwnd
, [in] DWORD idObject
, [in] DWORD idChild
,
262 [in] const MSAAPROPID
* paProps
, [in] int cProps
, [in] IAccPropServer
* pServer
, [in] AnnoScope AnnoScope
);
264 HRESULT ClearHwndProps
([in] HWND hwnd
, [in] DWORD idObject
, [in] DWORD idChild
,
265 [in] const MSAAPROPID
* paProps
, [in] int cProps
);
267 HRESULT ComposeHwndIdentityString
([in] HWND hwnd
, [in] DWORD idObject
, [in] DWORD idChild
,
268 [out] BYTE **ppIDString
, [out] DWORD
* pdwIDStringLen
);
270 HRESULT DecomposeHwndIdentityString
([in] const BYTE *pIDString
, [in] DWORD dwIDStringLen
,
271 [out] HWND
* phwnd
, [out] DWORD
* pidObject
, [out] DWORD
* pidChild
);
273 HRESULT SetHmenuProp
([in] HMENU hmenu
, [in] DWORD idChild
, [in] MSAAPROPID idProp
, [in] VARIANT var
);
275 HRESULT SetHmenuPropStr
([in] HMENU hmenu
, [in] DWORD idChild
, [in] MSAAPROPID idProp
, [in] LPWSTR str
);
277 HRESULT SetHmenuPropServer
([in] HMENU hmenu
, [in] DWORD idChild
, [in] const MSAAPROPID
* paProps
,
278 [in] int cProps
, [in] IAccPropServer
* pServer
, [in] AnnoScope AnnoScope
);
280 HRESULT ClearHmenuProps
([in] HMENU hmenu
, [in] DWORD idChild
, [in] const MSAAPROPID
* paProps
, [in] int cProps
);
282 HRESULT ComposeHmenuIdentityString
([in] HMENU hmenu
, [in] DWORD idChild
,
283 [out] BYTE **ppIDString
, [out] DWORD
*pdwIDStringLen
);
285 HRESULT DecomposeHmenuIdentityString
([in] const BYTE *pIDString
, [in] DWORD dwIDStringLen
,
286 [out] HMENU
*phmenu
, [out] DWORD
*pidChild
);
290 uuid(1ea4dbf0
-3c3b
-11cf
-810c
-00aa00389b71
),
295 library Accessibility
297 importlib
("stdole2.tlb");
298 interface IAccessible
;
299 interface IAccessibleHandler
;
301 interface IAccIdentity
;
302 interface IAccPropServer
;
303 interface IAccPropServices
;
306 uuid(b5f8350b
-0548-48b1
-a6ee
-88bd00b4a5e7
)
308 coclass CAccPropServices
310 interface IAccPropServices
;
314 cpp_quote
("DEFINE_GUID(CLSID_AccPropServices, 0xb5f8350b, 0x0548, 0x48b1, 0xa6, 0xee, 0x88, 0xbd, 0x00, 0xb4, 0xa5, 0xe7);")
315 cpp_quote
("DEFINE_GUID(IIS_IsOleaccProxy, 0x902697fa, 0x80e4, 0x4560, 0x80, 0x2a, 0xa1, 0x3f, 0x22, 0xa6, 0x47, 0x09);")
317 cpp_quote
("LRESULT WINAPI LresultFromObject(REFIID,WPARAM,LPUNKNOWN);")
318 cpp_quote
("HRESULT WINAPI ObjectFromLresult(LRESULT,REFIID,WPARAM,void **);")
319 cpp_quote
("HRESULT WINAPI WindowFromAccessibleObject(IAccessible *,HWND *);")
320 cpp_quote
("HRESULT WINAPI AccessibleObjectFromWindow(HWND,DWORD,REFIID,void **);")
321 cpp_quote
("HRESULT WINAPI AccessibleObjectFromEvent(HWND,DWORD,DWORD,IAccessible **,VARIANT *);")
322 cpp_quote
("HRESULT WINAPI AccessibleObjectFromPoint(POINT,IAccessible **,VARIANT *);")
323 cpp_quote
("HRESULT WINAPI AccessibleChildren(IAccessible *,LONG,LONG,VARIANT *,LONG *);")
325 cpp_quote
("void WINAPI GetOleaccVersionInfo(DWORD *,DWORD *);")
326 cpp_quote
("HRESULT WINAPI CreateStdAccessibleObject(HWND,LONG,REFIID,void **);")
327 cpp_quote
("HRESULT WINAPI CreateStdAccessibleProxyA(HWND,LPCSTR,LONG,REFIID,void **);")
328 cpp_quote
("HRESULT WINAPI CreateStdAccessibleProxyW(HWND,LPCWSTR,LONG,REFIID,void **);")
329 cpp_quote
("#define CreateStdAccessibleProxy WINELIB_NAME_AW(CreateStdAccessibleProxy)")
331 cpp_quote
("UINT WINAPI GetRoleTextA(DWORD,LPSTR,UINT);")
332 cpp_quote
("UINT WINAPI GetRoleTextW(DWORD,LPWSTR,UINT);")
333 cpp_quote
("#define GetRoleText WINELIB_NAME_AW(GetRoleText)")
334 cpp_quote
("UINT WINAPI GetStateTextA(DWORD,LPSTR,UINT);")
335 cpp_quote
("UINT WINAPI GetStateTextW(DWORD,LPWSTR,UINT);")
336 cpp_quote
("#define GetStateText WINELIB_NAME_AW(GetStateText)")