xref: /reactos/sdk/include/psdk/oleacc.idl (revision 50cf16b3)
1/*
2 * Copyright (C) 2005 Dmitry Timoshkov
3 *
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.
8 *
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.
13 *
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
17 */
18
19import "oaidl.idl";
20
21#ifndef __WIDL__
22#define threading(model)
23#endif
24
25cpp_quote("#define NAVDIR_MIN        0")
26cpp_quote("#define NAVDIR_UP         1")
27cpp_quote("#define NAVDIR_DOWN       2")
28cpp_quote("#define NAVDIR_LEFT       3")
29cpp_quote("#define NAVDIR_RIGHT      4")
30cpp_quote("#define NAVDIR_NEXT       5")
31cpp_quote("#define NAVDIR_PREVIOUS   6")
32cpp_quote("#define NAVDIR_FIRSTCHILD 7")
33cpp_quote("#define NAVDIR_LASTCHILD  8")
34cpp_quote("#define NAVDIR_MAX        9")
35
36cpp_quote("#define ROLE_SYSTEM_TITLEBAR     1")
37cpp_quote("#define ROLE_SYSTEM_MENUBAR      2")
38cpp_quote("#define ROLE_SYSTEM_SCROLLBAR    3")
39cpp_quote("#define ROLE_SYSTEM_GRIP         4")
40cpp_quote("#define ROLE_SYSTEM_SOUND        5")
41cpp_quote("#define ROLE_SYSTEM_CURSOR       6")
42cpp_quote("#define ROLE_SYSTEM_CARET        7")
43cpp_quote("#define ROLE_SYSTEM_ALERT        8")
44cpp_quote("#define ROLE_SYSTEM_WINDOW       9")
45cpp_quote("#define ROLE_SYSTEM_CLIENT       10")
46cpp_quote("#define ROLE_SYSTEM_MENUPOPUP    11")
47cpp_quote("#define ROLE_SYSTEM_MENUITEM     12")
48cpp_quote("#define ROLE_SYSTEM_TOOLTIP      13")
49cpp_quote("#define ROLE_SYSTEM_APPLICATION  14")
50cpp_quote("#define ROLE_SYSTEM_DOCUMENT     15")
51cpp_quote("#define ROLE_SYSTEM_PANE         16")
52cpp_quote("#define ROLE_SYSTEM_CHART        17")
53cpp_quote("#define ROLE_SYSTEM_DIALOG       18")
54cpp_quote("#define ROLE_SYSTEM_BORDER       19")
55cpp_quote("#define ROLE_SYSTEM_GROUPING     20")
56cpp_quote("#define ROLE_SYSTEM_SEPARATOR    21")
57cpp_quote("#define ROLE_SYSTEM_TOOLBAR      22")
58cpp_quote("#define ROLE_SYSTEM_STATUSBAR    23")
59cpp_quote("#define ROLE_SYSTEM_TABLE        24")
60cpp_quote("#define ROLE_SYSTEM_COLUMNHEADER 25")
61cpp_quote("#define ROLE_SYSTEM_ROWHEADER    26")
62cpp_quote("#define ROLE_SYSTEM_COLUMN       27")
63cpp_quote("#define ROLE_SYSTEM_ROW          28")
64cpp_quote("#define ROLE_SYSTEM_CELL         29")
65cpp_quote("#define ROLE_SYSTEM_LINK         30")
66cpp_quote("#define ROLE_SYSTEM_HELPBALLOON  31")
67cpp_quote("#define ROLE_SYSTEM_CHARACTER    32")
68cpp_quote("#define ROLE_SYSTEM_LIST         33")
69cpp_quote("#define ROLE_SYSTEM_LISTITEM     34")
70cpp_quote("#define ROLE_SYSTEM_OUTLINE      35")
71cpp_quote("#define ROLE_SYSTEM_OUTLINEITEM  36")
72cpp_quote("#define ROLE_SYSTEM_PAGETAB      37")
73cpp_quote("#define ROLE_SYSTEM_PROPERTYPAGE 38")
74cpp_quote("#define ROLE_SYSTEM_INDICATOR    39")
75cpp_quote("#define ROLE_SYSTEM_GRAPHIC      40")
76cpp_quote("#define ROLE_SYSTEM_STATICTEXT   41")
77cpp_quote("#define ROLE_SYSTEM_TEXT         42")
78cpp_quote("#define ROLE_SYSTEM_PUSHBUTTON   43")
79cpp_quote("#define ROLE_SYSTEM_CHECKBUTTON  44")
80cpp_quote("#define ROLE_SYSTEM_RADIOBUTTON  45")
81cpp_quote("#define ROLE_SYSTEM_COMBOBOX     46")
82cpp_quote("#define ROLE_SYSTEM_DROPLIST     47")
83cpp_quote("#define ROLE_SYSTEM_PROGRESSBAR  48")
84cpp_quote("#define ROLE_SYSTEM_DIAL         49")
85cpp_quote("#define ROLE_SYSTEM_HOTKEYFIELD  50")
86cpp_quote("#define ROLE_SYSTEM_SLIDER       51")
87cpp_quote("#define ROLE_SYSTEM_SPINBUTTON   52")
88cpp_quote("#define ROLE_SYSTEM_DIAGRAM      53")
89cpp_quote("#define ROLE_SYSTEM_ANIMATION    54")
90cpp_quote("#define ROLE_SYSTEM_EQUATION     55")
91cpp_quote("#define ROLE_SYSTEM_BUTTONDROPDOWN 56")
92cpp_quote("#define ROLE_SYSTEM_BUTTONMENU   57")
93cpp_quote("#define ROLE_SYSTEM_BUTTONDROPDOWNGRID 58")
94cpp_quote("#define ROLE_SYSTEM_WHITESPACE   59")
95cpp_quote("#define ROLE_SYSTEM_PAGETABLIST  60")
96cpp_quote("#define ROLE_SYSTEM_CLOCK        61")
97cpp_quote("#define ROLE_SYSTEM_SPLITBUTTON  62")
98cpp_quote("#define ROLE_SYSTEM_IPADDRESS    63")
99cpp_quote("#define ROLE_SYSTEM_OUTLINEBUTTON 64")
100
101cpp_quote("#define SELFLAG_NONE            0x00")
102cpp_quote("#define SELFLAG_TAKEFOCUS       0x01")
103cpp_quote("#define SELFLAG_TAKESELECTION   0x02")
104cpp_quote("#define SELFLAG_EXTENDSELECTION 0x04")
105cpp_quote("#define SELFLAG_ADDSELECTION    0x08")
106cpp_quote("#define SELFLAG_REMOVESELECTION 0x10")
107cpp_quote("#define SELFLAG_VALID           0x1f")
108
109cpp_quote("#ifndef STATE_SYSTEM_UNAVAILABLE")
110cpp_quote("#define STATE_SYSTEM_NORMAL          0x00000000")
111cpp_quote("#define STATE_SYSTEM_UNAVAILABLE     0x00000001")
112cpp_quote("#define STATE_SYSTEM_SELECTED        0x00000002")
113cpp_quote("#define STATE_SYSTEM_FOCUSED         0x00000004")
114cpp_quote("#define STATE_SYSTEM_PRESSED         0x00000008")
115cpp_quote("#define STATE_SYSTEM_CHECKED         0x00000010")
116cpp_quote("#define STATE_SYSTEM_MIXED           0x00000020")
117cpp_quote("#define STATE_SYSTEM_INDETERMINATE   STATE_SYSTEM_MIXED")
118cpp_quote("#define STATE_SYSTEM_READONLY        0x00000040")
119cpp_quote("#define STATE_SYSTEM_HOTTRACKED      0x00000080")
120cpp_quote("#define STATE_SYSTEM_DEFAULT         0x00000100")
121cpp_quote("#define STATE_SYSTEM_EXPANDED        0x00000200")
122cpp_quote("#define STATE_SYSTEM_COLLAPSED       0x00000400")
123cpp_quote("#define STATE_SYSTEM_BUSY            0x00000800")
124cpp_quote("#define STATE_SYSTEM_FLOATING        0x00001000")
125cpp_quote("#define STATE_SYSTEM_MARQUEED        0x00002000")
126cpp_quote("#define STATE_SYSTEM_ANIMATED        0x00004000")
127cpp_quote("#define STATE_SYSTEM_INVISIBLE       0x00008000")
128cpp_quote("#define STATE_SYSTEM_OFFSCREEN       0x00010000")
129cpp_quote("#define STATE_SYSTEM_SIZEABLE        0x00020000")
130cpp_quote("#define STATE_SYSTEM_MOVEABLE        0x00040000")
131cpp_quote("#define STATE_SYSTEM_SELFVOICING     0x00080000")
132cpp_quote("#define STATE_SYSTEM_FOCUSABLE       0x00100000")
133cpp_quote("#define STATE_SYSTEM_SELECTABLE      0x00200000")
134cpp_quote("#define STATE_SYSTEM_LINKED          0x00400000")
135cpp_quote("#define STATE_SYSTEM_TRAVERSED       0x00800000")
136cpp_quote("#define STATE_SYSTEM_MULTISELECTABLE 0x01000000")
137cpp_quote("#define STATE_SYSTEM_EXTSELECTABLE   0x02000000")
138cpp_quote("#define STATE_SYSTEM_ALERT_LOW       0x04000000")
139cpp_quote("#define STATE_SYSTEM_ALERT_MEDIUM    0x08000000")
140cpp_quote("#define STATE_SYSTEM_ALERT_HIGH      0x10000000")
141cpp_quote("#define STATE_SYSTEM_PROTECTED       0x20000000")
142cpp_quote("#define STATE_SYSTEM_VALID           0x7FFFFFFF")
143cpp_quote("#endif")
144cpp_quote("#ifndef STATE_SYSTEM_HASPOPUP")
145cpp_quote("#define STATE_SYSTEM_HASPOPUP        0x40000000")
146cpp_quote("#endif")
147
148typedef GUID MSAAPROPID;
149
150typedef enum AnnoScope
151{
152    ANNO_THIS,
153    ANNO_CONTAINER
154} AnnoScope;
155
156[
157    object,
158    hidden,
159    dual,
160    uuid(618736e0-3c3d-11cf-810c-00aa00389b71),
161    pointer_default(unique)
162]
163interface IAccessible : IDispatch
164{
165    typedef [unique] IAccessible  *LPACCESSIBLE;
166    const long DISPID_ACC_PARENT     = -5000;
167    const long DISPID_ACC_CHILDCOUNT = -5001;
168    const long DISPID_ACC_CHILD      = -5002;
169    const long DISPID_ACC_NAME       = -5003;
170    const long DISPID_ACC_VALUE      = -5004;
171    const long DISPID_ACC_DESCRIPTION= -5005;
172    const long DISPID_ACC_ROLE       = -5006;
173    const long DISPID_ACC_STATE      = -5007;
174    const long DISPID_ACC_HELP       = -5008;
175    const long DISPID_ACC_HELPTOPIC  = -5009;
176    const long DISPID_ACC_KEYBOARDSHORTCUT = -5010;
177    const long DISPID_ACC_FOCUS      = -5011;
178    const long DISPID_ACC_SELECTION  = -5012;
179    const long DISPID_ACC_DEFAULTACTION = -5013;
180    const long DISPID_ACC_SELECT     = -5014;
181    const long DISPID_ACC_LOCATION   = -5015;
182    const long DISPID_ACC_NAVIGATE   = -5016;
183    const long DISPID_ACC_HITTEST    = -5017;
184    const long DISPID_ACC_DODEFAULTACTION = -5018;
185
186    [hidden, propget, id(DISPID_ACC_PARENT)] HRESULT accParent([out, retval]IDispatch** ppdispParent);
187    [hidden, propget, id(DISPID_ACC_CHILDCOUNT)] HRESULT accChildCount([out, retval] long* pcountChildren);
188    [hidden, propget, id(DISPID_ACC_CHILD)] HRESULT accChild([in] VARIANT varChildID, [out, retval]IDispatch **ppdispChild);
189    [hidden, propget, id(DISPID_ACC_NAME)] HRESULT accName([in, optional] VARIANT varID, [out, retval] BSTR* pszName);
190    [hidden, propget, id(DISPID_ACC_VALUE)] HRESULT accValue([in, optional] VARIANT varID, [out, retval] BSTR* pszValue);
191    [hidden, propget, id(DISPID_ACC_DESCRIPTION)] HRESULT accDescription([in, optional] VARIANT varID, [out, retval] BSTR *description);
192    [hidden, propget, id(DISPID_ACC_ROLE)] HRESULT accRole([in, optional] VARIANT varID, [out, retval] VARIANT *role);
193    [hidden, propget, id(DISPID_ACC_STATE)] HRESULT accState([in, optional] VARIANT varID, [out, retval] VARIANT *state);
194    [hidden, propget, id(DISPID_ACC_HELP)] HRESULT accHelp([in, optional] VARIANT varID, [out, retval] BSTR *help);
195    [hidden, propget, id(DISPID_ACC_HELPTOPIC)] HRESULT accHelpTopic([out] BSTR *helpfile, [in, optional] VARIANT varID, [out, retval] long* pidTopic);
196    [hidden, propget, id(DISPID_ACC_KEYBOARDSHORTCUT)] HRESULT accKeyboardShortcut([in, optional] VARIANT varID, [out, retval] BSTR *shortcut);
197    [hidden, propget, id(DISPID_ACC_FOCUS)] HRESULT accFocus([out, retval] VARIANT* pvarID);
198    [hidden, propget, id(DISPID_ACC_SELECTION)] HRESULT accSelection([out, retval] VARIANT* pvarID);
199    [hidden, propget, id(DISPID_ACC_DEFAULTACTION)] HRESULT accDefaultAction([in, optional] VARIANT varID, [out, retval] BSTR *action);
200
201    [hidden, id(DISPID_ACC_SELECT)] HRESULT accSelect([in] long flagsSelect, [in, optional] VARIANT varID);
202    [hidden, id(DISPID_ACC_LOCATION)] HRESULT accLocation([out] long *left, [out] long *top, [out] long *width, [out] long *height, [in, optional] VARIANT varID);
203    [hidden, id(DISPID_ACC_NAVIGATE)] HRESULT accNavigate([in] long dir, [in, optional] VARIANT varStart, [out, retval] VARIANT *pvarEnd);
204    [hidden, id(DISPID_ACC_HITTEST)] HRESULT accHitTest([in] long left, [in] long top, [out, retval] VARIANT *pvarID);
205    [hidden, id(DISPID_ACC_DODEFAULTACTION)] HRESULT accDoDefaultAction([in, optional] VARIANT varID);
206
207    [hidden, propput, id(DISPID_ACC_NAME)] HRESULT accName([in, optional] VARIANT varID, [in] BSTR name);
208    [hidden, propput, id(DISPID_ACC_VALUE)] HRESULT accValue([in, optional] VARIANT varID, [in] BSTR value);
209}
210
211[
212    object,
213    uuid(03022430-ABC4-11d0-BDE2-00AA001A1953),
214    hidden,
215    oleautomation,
216    pointer_default(unique)
217]
218interface IAccessibleHandler : IUnknown
219{
220    typedef [unique] IAccessibleHandler *LPACCESSIBLEHANDLER;
221
222    HRESULT AccessibleObjectFromID( [in] long hwnd, [in] long lObjectID, [out] LPACCESSIBLE *pIAccessible );
223}
224
225[
226    object,
227    uuid(7852b78d-1cfd-41c1-a615-9c0c85960b5f),
228    pointer_default(unique)
229]
230interface IAccIdentity : IUnknown
231{
232    HRESULT GetIdentityString([in] DWORD idchild,
233                              [out, size_is(,*string_len)] BYTE **str,
234                              [out] DWORD *string_len);
235}
236
237[
238    object,
239    uuid(76c0dbbb-15e0-4e7b-b61b-20eeea2001e0),
240    pointer_default(unique)
241]
242interface IAccPropServer: IUnknown
243{
244    HRESULT GetPropValue([in, size_is(string_len)] const BYTE *str,
245                         [in] DWORD string_len,
246                         [in] MSAAPROPID idProp,
247                         [out] VARIANT *value,
248                         [out] BOOL *has_prop);
249}
250
251[
252    object,
253    uuid(6e26e776-04f0-495d-80e4-3330352e3169),
254    pointer_default(unique)
255]
256interface IAccPropServices : IUnknown
257{
258    HRESULT SetPropValue([in, size_is(string_len)] const BYTE *str,
259                         [in] DWORD string_len,
260                         [in] MSAAPROPID idProp,
261                         [in] VARIANT var);
262
263    HRESULT SetPropServer([in, size_is(string_len)] const BYTE *str,
264                          [in] DWORD string_len,
265                          [in, size_is(cProps)] const MSAAPROPID *props,
266                          [in] int cProps,
267                          [in] IAccPropServer* pServer,
268                          [in] AnnoScope AnnoScope);
269
270    HRESULT ClearProps([in, size_is(string_len)] const BYTE *str,
271                       [in] DWORD string_len,
272                       [in, size_is(cProps)] const MSAAPROPID *props,
273                       [in] int cProps);
274
275    HRESULT SetHwndProp([in] HWND hwnd, [in] DWORD idObject, [in] DWORD idChild,
276                    [in] MSAAPROPID idProp, [in] VARIANT var);
277
278    HRESULT SetHwndPropStr([in] HWND hwnd, [in] DWORD idObject, [in] DWORD idChild,
279                    [in] MSAAPROPID idProp, [in, string] LPWSTR str);
280
281    HRESULT SetHwndPropServer([in] HWND hwnd,
282                              [in] DWORD idObject,
283                              [in] DWORD idChild,
284                              [in, size_is(cProps)] const MSAAPROPID *props,
285                              [in] int cProps,
286                              [in] IAccPropServer *server,
287                              [in] AnnoScope scope);
288
289    HRESULT ClearHwndProps([in] HWND hwnd,
290                           [in] DWORD idObject,
291                           [in] DWORD idChild,
292                           [in, size_is(cProps)] const MSAAPROPID *props,
293                           [in] int cProps);
294
295    HRESULT ComposeHwndIdentityString([in] HWND hwnd,
296                                      [in] DWORD idObject,
297                                      [in] DWORD idChild,
298                                      [out, size_is(,*string_len)] BYTE **str,
299                                      [out] DWORD *string_len);
300
301    HRESULT DecomposeHwndIdentityString([in, size_is(string_len)] const BYTE *str,
302                                        [in] DWORD string_len,
303                                        [out] HWND *phwnd,
304                                        [out] DWORD *pidObject,
305                                        [out] DWORD *pidChild);
306
307    HRESULT SetHmenuProp([in] HMENU hmenu, [in] DWORD idChild, [in] MSAAPROPID idProp, [in] VARIANT var);
308
309    HRESULT SetHmenuPropStr([in] HMENU hmenu, [in] DWORD idChild, [in] MSAAPROPID idProp, [in, string] LPWSTR str);
310
311    HRESULT SetHmenuPropServer([in] HMENU hmenu,
312                               [in] DWORD idChild,
313                               [in, size_is(cProps)] const MSAAPROPID *props,
314                               [in] int cProps,
315                               [in] IAccPropServer *server,
316                               [in] AnnoScope scope);
317
318    HRESULT ClearHmenuProps([in] HMENU hmenu,
319                            [in] DWORD idChild,
320                            [in, size_is(cProps)] const MSAAPROPID *props,
321                            [in] int cProps);
322
323    HRESULT ComposeHmenuIdentityString([in] HMENU hmenu,
324                                       [in] DWORD idChild,
325                                       [out, size_is(,*string_len)] BYTE **str,
326                                       [out] DWORD *string_len);
327
328    HRESULT DecomposeHmenuIdentityString([in, size_is(string_len)] const BYTE *str,
329                                         [in] DWORD string_len,
330                                         [out] HMENU *phmenu,
331                                         [out] DWORD *pidChild);
332}
333
334[
335    uuid(1ea4dbf0-3c3b-11cf-810c-00aa00389b71),
336    lcid(0),
337    version(1.1),
338    hidden
339]
340library Accessibility
341{
342    importlib ("stdole2.tlb");
343    interface IAccessible;
344    interface IAccessibleHandler;
345
346    interface IAccIdentity;
347    interface IAccPropServer;
348    interface IAccPropServices;
349
350    [
351        uuid(b5f8350b-0548-48b1-a6ee-88bd00b4a5e7),
352        threading(apartment)
353    ]
354    coclass CAccPropServices
355    {
356        interface IAccPropServices;
357    }
358};
359
360cpp_quote("DEFINE_GUID(CLSID_AccPropServices, 0xb5f8350b, 0x0548, 0x48b1, 0xa6, 0xee, 0x88, 0xbd, 0x00, 0xb4, 0xa5, 0xe7);")
361cpp_quote("DEFINE_GUID(IIS_IsOleaccProxy, 0x902697fa, 0x80e4, 0x4560, 0x80, 0x2a, 0xa1, 0x3f, 0x22, 0xa6, 0x47, 0x09);")
362
363cpp_quote("LRESULT WINAPI LresultFromObject(REFIID,WPARAM,LPUNKNOWN);")
364cpp_quote("HRESULT WINAPI ObjectFromLresult(LRESULT,REFIID,WPARAM,void **);")
365cpp_quote("HRESULT WINAPI WindowFromAccessibleObject(IAccessible *,HWND *);")
366cpp_quote("HRESULT WINAPI AccessibleObjectFromWindow(HWND,DWORD,REFIID,void **);")
367cpp_quote("HRESULT WINAPI AccessibleObjectFromEvent(HWND,DWORD,DWORD,IAccessible **,VARIANT *);")
368cpp_quote("HRESULT WINAPI AccessibleObjectFromPoint(POINT,IAccessible **,VARIANT *);")
369cpp_quote("HRESULT WINAPI AccessibleChildren(IAccessible *,LONG,LONG,VARIANT *,LONG *);")
370
371cpp_quote("void WINAPI GetOleaccVersionInfo(DWORD *,DWORD *);")
372cpp_quote("HRESULT WINAPI CreateStdAccessibleObject(HWND,LONG,REFIID,void **);")
373cpp_quote("HRESULT WINAPI CreateStdAccessibleProxyA(HWND,LPCSTR,LONG,REFIID,void **);")
374cpp_quote("HRESULT WINAPI CreateStdAccessibleProxyW(HWND,LPCWSTR,LONG,REFIID,void **);")
375cpp_quote("#define CreateStdAccessibleProxy WINELIB_NAME_AW(CreateStdAccessibleProxy)")
376
377cpp_quote("UINT WINAPI GetRoleTextA(DWORD,LPSTR,UINT);")
378cpp_quote("UINT WINAPI GetRoleTextW(DWORD,LPWSTR,UINT);")
379cpp_quote("#define GetRoleText WINELIB_NAME_AW(GetRoleText)")
380cpp_quote("UINT WINAPI GetStateTextA(DWORD,LPSTR,UINT);")
381cpp_quote("UINT WINAPI GetStateTextW(DWORD,LPWSTR,UINT);")
382cpp_quote("#define GetStateText WINELIB_NAME_AW(GetStateText)")
383