241eb00ea302e13cbe9d63353832e943c0156887
[reactos.git] / reactos / include / psdk / oleacc.idl
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
19 import "oaidl.idl";
20
21 cpp_quote("#define NAVDIR_UP 1")
22 cpp_quote("#define NAVDIR_DOWN 2")
23 cpp_quote("#define NAVDIR_LEFT 3")
24 cpp_quote("#define NAVDIR_RIGHT 4")
25 cpp_quote("#define NAVDIR_NEXT 5")
26 cpp_quote("#define NAVDIR_PREVIOUS 6")
27 cpp_quote("#define NAVDIR_FIRSTCHILD 7")
28 cpp_quote("#define NAVDIR_LASTCHILD 8")
29
30 cpp_quote("#define ROLE_SYSTEM_TITLEBAR 1")
31 cpp_quote("#define ROLE_SYSTEM_MENUBAR 2")
32 cpp_quote("#define ROLE_SYSTEM_SCROLLBAR 3")
33 cpp_quote("#define ROLE_SYSTEM_GRIP 4")
34 cpp_quote("#define ROLE_SYSTEM_SOUND 5")
35 cpp_quote("#define ROLE_SYSTEM_CURSOR 6")
36 cpp_quote("#define ROLE_SYSTEM_CARET 7")
37 cpp_quote("#define ROLE_SYSTEM_ALERT 8")
38 cpp_quote("#define ROLE_SYSTEM_WINDOW 9")
39 cpp_quote("#define ROLE_SYSTEM_CLIENT 10")
40 cpp_quote("#define ROLE_SYSTEM_MENUPOPUP 11")
41 cpp_quote("#define ROLE_SYSTEM_MENUITEM 12")
42 cpp_quote("#define ROLE_SYSTEM_TOOLTIP 13")
43 cpp_quote("#define ROLE_SYSTEM_APPLICATION 14")
44 cpp_quote("#define ROLE_SYSTEM_DOCUMENT 15")
45 cpp_quote("#define ROLE_SYSTEM_PANE 16")
46 cpp_quote("#define ROLE_SYSTEM_CHART 17")
47 cpp_quote("#define ROLE_SYSTEM_DIALOG 18")
48 cpp_quote("#define ROLE_SYSTEM_BORDER 19")
49 cpp_quote("#define ROLE_SYSTEM_GROUPING 20")
50 cpp_quote("#define ROLE_SYSTEM_SEPARATOR 21")
51 cpp_quote("#define ROLE_SYSTEM_TOOLBAR 22")
52 cpp_quote("#define ROLE_SYSTEM_STATUSBAR 23")
53 cpp_quote("#define ROLE_SYSTEM_TABLE 24")
54 cpp_quote("#define ROLE_SYSTEM_COLUMNHEADER 25")
55 cpp_quote("#define ROLE_SYSTEM_ROWHEADER 26")
56 cpp_quote("#define ROLE_SYSTEM_COLUMN 27")
57 cpp_quote("#define ROLE_SYSTEM_ROW 28")
58 cpp_quote("#define ROLE_SYSTEM_CELL 29")
59 cpp_quote("#define ROLE_SYSTEM_LINK 30")
60 cpp_quote("#define ROLE_SYSTEM_HELPBALLOON 31")
61 cpp_quote("#define ROLE_SYSTEM_CHARACTER 32")
62 cpp_quote("#define ROLE_SYSTEM_LIST 33")
63 cpp_quote("#define ROLE_SYSTEM_LISTITEM 34")
64 cpp_quote("#define ROLE_SYSTEM_OUTLINE 35")
65 cpp_quote("#define ROLE_SYSTEM_OUTLINEITEM 36")
66 cpp_quote("#define ROLE_SYSTEM_PAGETAB 37")
67 cpp_quote("#define ROLE_SYSTEM_PROPERTYPAGE 38")
68 cpp_quote("#define ROLE_SYSTEM_INDICATOR 39")
69 cpp_quote("#define ROLE_SYSTEM_GRAPHIC 40")
70 cpp_quote("#define ROLE_SYSTEM_STATICTEXT 41")
71 cpp_quote("#define ROLE_SYSTEM_TEXT 42")
72 cpp_quote("#define ROLE_SYSTEM_PUSHBUTTON 43")
73 cpp_quote("#define ROLE_SYSTEM_CHECKBUTTON 44")
74 cpp_quote("#define ROLE_SYSTEM_RADIOBUTTON 45")
75 cpp_quote("#define ROLE_SYSTEM_COMBOBOX 46")
76 cpp_quote("#define ROLE_SYSTEM_DROPLIST 47")
77 cpp_quote("#define ROLE_SYSTEM_PROGRESSBAR 48")
78 cpp_quote("#define ROLE_SYSTEM_DIAL 49")
79 cpp_quote("#define ROLE_SYSTEM_HOTKEYFIELD 50")
80 cpp_quote("#define ROLE_SYSTEM_SLIDER 51")
81 cpp_quote("#define ROLE_SYSTEM_SPINBUTTON 52")
82 cpp_quote("#define ROLE_SYSTEM_DIAGRAM 53")
83 cpp_quote("#define ROLE_SYSTEM_ANIMATION 54")
84 cpp_quote("#define ROLE_SYSTEM_EQUATION 55")
85 cpp_quote("#define ROLE_SYSTEM_BUTTONDROPDOWN 56")
86 cpp_quote("#define ROLE_SYSTEM_BUTTONMENU 57")
87 cpp_quote("#define ROLE_SYSTEM_BUTTONDROPDOWNGRID 58")
88 cpp_quote("#define ROLE_SYSTEM_WHITESPACE 59")
89 cpp_quote("#define ROLE_SYSTEM_PAGETABLIST 60")
90 cpp_quote("#define ROLE_SYSTEM_CLOCK 61")
91 cpp_quote("#define ROLE_SYSTEM_SPLITBUTTON 62")
92 cpp_quote("#define ROLE_SYSTEM_IPADDRESS 63")
93 cpp_quote("#define ROLE_SYSTEM_OUTLINEBUTTON 64")
94
95 cpp_quote("#define SELFLAG_NONE 0x00")
96 cpp_quote("#define SELFLAG_TAKEFOCUS 0x01")
97 cpp_quote("#define SELFLAG_TAKESELECTION 0x02")
98 cpp_quote("#define SELFLAG_EXTENDSELECTION 0x04")
99 cpp_quote("#define SELFLAG_ADDSELECTION 0x08")
100 cpp_quote("#define SELFLAG_REMOVESELECTION 0x10")
101 cpp_quote("#define SELFLAG_VALID 0x1f")
102
103 typedef GUID MSAAPROPID;
104
105 typedef enum AnnoScope
106 {
107 ANNO_THIS,
108 ANNO_CONTAINER
109 } AnnoScope;
110
111 [
112 local,
113 object,
114 uuid(618736e0-3c3d-11cf-810c-00aa00389b71),
115 pointer_default(unique)
116 ]
117 interface IAccessible : IDispatch
118 {
119 typedef [unique] IAccessible *LPACCESSIBLE;
120 const long DISPID_ACC_PARENT = -5000;
121 const long DISPID_ACC_CHILDCOUNT = -5001;
122 const long DISPID_ACC_CHILD = -5002;
123 const long DISPID_ACC_NAME = -5003;
124 const long DISPID_ACC_VALUE = -5004;
125 const long DISPID_ACC_DESCRIPTION= -5005;
126 const long DISPID_ACC_ROLE = -5006;
127 const long DISPID_ACC_STATE = -5007;
128 const long DISPID_ACC_HELP = -5008;
129 const long DISPID_ACC_HELPTOPIC = -5009;
130 const long DISPID_ACC_KEYBOARDSHORTCUT = -5010;
131 const long DISPID_ACC_FOCUS = -5011;
132 const long DISPID_ACC_SELECTION = -5012;
133 const long DISPID_ACC_DEFAULTACTION = -5013;
134 const long DISPID_ACC_SELECT = -5014;
135 const long DISPID_ACC_LOCATION = -5015;
136 const long DISPID_ACC_NAVIGATE = -5016;
137 const long DISPID_ACC_HITTEST = -5017;
138 const long DISPID_ACC_DODEFAULTACTION = -5018;
139
140 [hidden, propget, id(DISPID_ACC_PARENT)] HRESULT accParent([out, retval]IDispatch** ppdispParent);
141 [hidden, propget, id(DISPID_ACC_CHILDCOUNT)] HRESULT accChildCount([out, retval] long* pcountChildren);
142 [hidden, propget, id(DISPID_ACC_CHILD)] HRESULT accChild([in] VARIANT varChildID, [out, retval]IDispatch **ppdispChild);
143 [hidden, propget, id(DISPID_ACC_NAME)] HRESULT accName([in]VARIANT varID, [out, retval] BSTR* pszName);
144 [hidden, propget, id(DISPID_ACC_VALUE)] HRESULT accValue([in]VARIANT varID, [out, retval] BSTR* pszValue);
145 [hidden, propget, id(DISPID_ACC_DESCRIPTION)] HRESULT accDescription([in]VARIANT varID, [out, retval] BSTR* pszDescription);
146 [hidden, propget, id(DISPID_ACC_ROLE)] HRESULT accRole([in]VARIANT varID, [out, retval]VARIANT* pvarRole);
147 [hidden, propget, id(DISPID_ACC_STATE)] HRESULT accState([in]VARIANT varID, [out, retval]VARIANT* pvarState);
148 [hidden, propget, id(DISPID_ACC_HELP)] HRESULT accHelp([in]VARIANT varID, [out, retval]BSTR* pszHelp);
149 [hidden, propget, id(DISPID_ACC_HELPTOPIC)] HRESULT accHelpTopic([out]BSTR* pszHelpFile, [in]VARIANT varID, [out, retval] long* pidTopic);
150 [hidden, propget, id(DISPID_ACC_KEYBOARDSHORTCUT)] HRESULT accKeyboardShortcut([in]VARIANT varID, [out, retval] BSTR* pszKeyboardShortcut);
151 [hidden, propget, id(DISPID_ACC_FOCUS)] HRESULT accFocus([out, retval] VARIANT* pvarID);
152 [hidden, propget, id(DISPID_ACC_SELECTION)] HRESULT accSelection([out, retval] VARIANT* pvarID);
153 [hidden, propget, id(DISPID_ACC_DEFAULTACTION)] HRESULT accDefaultAction([in]VARIANT varID, [out, retval] BSTR* pszDefaultAction);
154
155 [hidden, id(DISPID_ACC_SELECT)] HRESULT accSelect([in]long flagsSelect, [in]VARIANT varID);
156 [hidden, id(DISPID_ACC_LOCATION)] HRESULT accLocation([out]long* pxLeft, [out]long* pyTop, [out]long* pcxWidth, [out]long* pcyHeight, [in]VARIANT varID);
157 [hidden, id(DISPID_ACC_NAVIGATE)] HRESULT accNavigate([in]long navDir, [in]VARIANT varStart, [out, retval] VARIANT* pvarEnd);
158 [hidden, id(DISPID_ACC_HITTEST)] HRESULT accHitTest([in]long xLeft, [in]long yTop, [out,retval] VARIANT* pvarID);
159 [hidden, id(DISPID_ACC_DODEFAULTACTION)] HRESULT accDoDefaultAction([in]VARIANT varID);
160
161 [hidden, propput, id(DISPID_ACC_NAME)] HRESULT accName([in]VARIANT varID, [in]BSTR pszName);
162 [hidden, propput, id(DISPID_ACC_VALUE)] HRESULT accValue([in]VARIANT varID, [out, retval]BSTR pszValue);
163 }
164
165 [
166 object,
167 uuid(03022430-ABC4-11d0-BDE2-00AA001A1953),
168 hidden,
169 oleautomation,
170 pointer_default(unique)
171 ]
172 interface IAccessibleHandler : IUnknown
173 {
174 typedef [unique] IAccessibleHandler *LPACCESSIBLEHANDLER;
175
176 HRESULT AccessibleObjectFromID( [in] long hwnd, [in] long lObjectID, [out] LPACCESSIBLE *pIAccessible );
177 }
178
179 [
180 object,
181 uuid(7852b78d-1cfd-41c1-a615-9c0c85960b5f),
182 pointer_default(unique)
183 ]
184 interface IAccIdentity : IUnknown
185 {
186 HRESULT GetIdentityString ([in] DWORD dwIDChild, [out] BYTE **ppIDString, [out] DWORD *pdwIDStringLen);
187 }
188
189 [
190 object,
191 uuid(76c0dbbb-15e0-4e7b-b61b-20eeea2001e0),
192 pointer_default(unique)
193 ]
194 interface IAccPropServer: IUnknown
195 {
196 HRESULT GetPropValue ([in] const BYTE *pIDString, [in] DWORD dwIDStringLen, [in] MSAAPROPID idProp,
197 [out] VARIANT *pvarValue, [out] BOOL *pfHasProp);
198 }
199
200 [
201 object,
202 uuid(6e26e776-04f0-495d-80e4-3330352e3169),
203 pointer_default(unique)
204 ]
205 interface IAccPropServices : IUnknown
206 {
207 HRESULT SetPropValue([in] const BYTE *pIDString, [in] DWORD dwIDStringLen, [in] MSAAPROPID idProp, [in] VARIANT var);
208
209 HRESULT SetPropServer([in] const BYTE * pIDString, [in] DWORD dwIDStringLen, [in] const MSAAPROPID* paProps,
210 [in] int cProps, [in] IAccPropServer* pServer, [in] AnnoScope AnnoScope);
211
212 HRESULT ClearProps([in] const BYTE *pIDString, [in] DWORD dwIDStringLen, [in] const MSAAPROPID* paProps, [in] int cProps);
213
214 HRESULT SetHwndProp([in] HWND hwnd, [in] DWORD idObject, [in] DWORD idChild,
215 [in] MSAAPROPID idProp, [in] VARIANT var);
216
217 HRESULT SetHwndPropStr([in] HWND hwnd, [in] DWORD idObject, [in] DWORD idChild,
218 [in] MSAAPROPID idProp, [in] LPWSTR str);
219
220 HRESULT SetHwndPropServer([in] HWND hwnd, [in] DWORD idObject, [in] DWORD idChild,
221 [in] const MSAAPROPID* paProps, [in] int cProps, [in] IAccPropServer* pServer, [in] AnnoScope AnnoScope);
222
223 HRESULT ClearHwndProps([in] HWND hwnd, [in] DWORD idObject, [in] DWORD idChild,
224 [in] const MSAAPROPID* paProps, [in] int cProps);
225
226 HRESULT ComposeHwndIdentityString([in] HWND hwnd, [in] DWORD idObject, [in] DWORD idChild,
227 [out] BYTE **ppIDString, [out] DWORD* pdwIDStringLen);
228
229 HRESULT DecomposeHwndIdentityString([in] const BYTE *pIDString, [in] DWORD dwIDStringLen,
230 [out] HWND* phwnd, [out] DWORD* pidObject, [out] DWORD* pidChild);
231
232 HRESULT SetHmenuProp([in] HMENU hmenu, [in] DWORD idChild, [in] MSAAPROPID idProp, [in] VARIANT var);
233
234 HRESULT SetHmenuPropStr([in] HMENU hmenu, [in] DWORD idChild, [in] MSAAPROPID idProp, [in] LPWSTR str);
235
236 HRESULT SetHmenuPropServer([in] HMENU hmenu, [in] DWORD idChild, [in] const MSAAPROPID* paProps,
237 [in] int cProps, [in] IAccPropServer* pServer, [in] AnnoScope AnnoScope);
238
239 HRESULT ClearHmenuProps([in] HMENU hmenu, [in] DWORD idChild, [in] const MSAAPROPID* paProps, [in] int cProps);
240
241 HRESULT ComposeHmenuIdentityString([in] HMENU hmenu, [in] DWORD idChild,
242 [out] BYTE **ppIDString, [out] DWORD *pdwIDStringLen);
243
244 HRESULT DecomposeHmenuIdentityString([in] const BYTE *pIDString, [in] DWORD dwIDStringLen,
245 [out] HMENU *phmenu, [out] DWORD *pidChild);
246 }
247
248 [
249 uuid(1ea4dbf0-3c3b-11cf-810c-00aa00389b71),
250 lcid(0),
251 version(1.1),
252 hidden
253 ]
254 library Accessibility
255 {
256 importlib ("stdole2.tlb");
257 interface IAccessible;
258 interface IAccessibleHandler;
259
260 interface IAccIdentity;
261 interface IAccPropServer;
262 interface IAccPropServices;
263
264 [
265 uuid(b5f8350b-0548-48b1-a6ee-88bd00b4a5e7)
266 ]
267 coclass CAccPropServices
268 {
269 interface IAccPropServices;
270 }
271 };
272
273 cpp_quote("DEFINE_GUID(LIBID_Accessibility, 0x1ea4dbf0, 0x3c3b, 0x11cf, 0x81, 0x0c, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71);")
274 cpp_quote("DEFINE_GUID(CLSID_AccPropServices, 0xb5f8350b, 0x0548, 0x48b1, 0xa6, 0xee, 0x88, 0xbd, 0x00, 0xb4, 0xa5, 0xe7);")
275 cpp_quote("DEFINE_GUID(IIS_IsOleaccProxy, 0x902697fa, 0x80e4, 0x4560, 0x80, 0x2a, 0xa1, 0x3f, 0x22, 0xa6, 0x47, 0x09);")
276
277 cpp_quote("LRESULT WINAPI LresultFromObject(REFIID,WPARAM,LPUNKNOWN);")
278 cpp_quote("HRESULT WINAPI ObjectFromLresult(LRESULT,REFIID,WPARAM,void **);")
279 cpp_quote("HRESULT WINAPI WindowFromAccessibleObject(IAccessible *,HWND *);")
280 cpp_quote("HRESULT WINAPI AccessibleObjectFromWindow(HWND,DWORD,REFIID,void **);")
281 cpp_quote("HRESULT WINAPI AccessibleObjectFromEvent(HWND,DWORD,DWORD,IAccessible **,VARIANT *);")
282 cpp_quote("HRESULT WINAPI AccessibleObjectFromPoint(POINT,IAccessible **,VARIANT *);")
283 cpp_quote("HRESULT WINAPI AccessibleChildren(IAccessible *,LONG,LONG,VARIANT *,LONG *);")
284
285 cpp_quote("void WINAPI GetOleaccVersionInfo(DWORD *,DWORD *);")
286 cpp_quote("HRESULT WINAPI CreateStdAccessibleObject(HWND,LONG,REFIID,void **);")
287 cpp_quote("HRESULT WINAPI CreateStdAccessibleProxyA(HWND,LPCSTR,LONG,REFIID,void **);")
288 cpp_quote("HRESULT WINAPI CreateStdAccessibleProxyW(HWND,LPCWSTR,LONG,REFIID,void **);")
289 cpp_quote("#define CreateStdAccessibleProxy WINELIB_NAME_AW(CreateStdAccessibleProxy)")
290
291 cpp_quote("UINT WINAPI GetRoleTextA(DWORD,LPSTR,UINT);")
292 cpp_quote("UINT WINAPI GetRoleTextW(DWORD,LPWSTR,UINT);")
293 cpp_quote("#define GetRoleText WINELIB_NAME_AW(GetRoleText)")
294 cpp_quote("UINT WINAPI GetStateTextA(DWORD,LPSTR,UINT);")
295 cpp_quote("UINT WINAPI GetStateTextW(DWORD,LPWSTR,UINT);")
296 cpp_quote("#define GetStateText WINELIB_NAME_AW(GetStateText)")