winmm/tests: Add tests for dimensions of video window.
[wine.git] / include / uiautomationcore.idl
blob8ddfb1d56539cecbcf4f2e311ba2943b8dfb305e
1 /*
2 * Copyright 2012 Jacek Caban for CodeWeavers
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
19 #define DO_NO_IMPORTS
20 import "oaidl.idl";
21 import "oleacc.idl";
23 enum NavigateDirection {
24 NavigateDirection_Parent = 0x0000,
25 NavigateDirection_NextSibling = 0x0001,
26 NavigateDirection_PreviousSibling = 0x0002,
27 NavigateDirection_FirstChild = 0x0003,
28 NavigateDirection_LastChild = 0x0004,
31 enum ProviderOptions {
32 ProviderOptions_ClientSideProvider = 0x0001,
33 ProviderOptions_ServerSideProvider = 0x0002,
34 ProviderOptions_NonClientAreaProvider = 0x0004,
35 ProviderOptions_OverrideProvider = 0x0008,
36 ProviderOptions_ProviderOwnsSetFocus = 0x0010,
37 ProviderOptions_UseComThreading = 0x0020,
38 ProviderOptions_RefuseNonClientSupport = 0x0040,
39 ProviderOptions_HasNativeIAccessible = 0x0080,
40 ProviderOptions_UseClientCoordinates = 0x0100,
43 enum StructureChangeType {
44 StructureChangeType_ChildAdded = 0x0000,
45 StructureChangeType_ChildRemoved = 0x0001,
46 StructureChangeType_ChildrenInvalidated = 0x0002,
47 StructureChangeType_ChildrenBulkAdded = 0x0003,
48 StructureChangeType_ChildrenBulkRemoved = 0x0004,
49 StructureChangeType_ChildrenReordered = 0x0005,
52 enum TextEditChangeType {
53 TextEditChangeType_None = 0x0000,
54 TextEditChangeType_AutoCorrect = 0x0001,
55 TextEditChangeType_Composition = 0x0002,
56 TextEditChangeType_CompositionFinalized = 0x0003,
57 TextEditChangeType_AutoComplete = 0x0004,
60 enum OrientationType {
61 OrientationType_None = 0x0000,
62 OrientationType_Horizontal = 0x0001,
63 OrientationType_Vertical = 0x0002,
66 enum WindowVisualState {
67 WindowVisualState_Normal = 0x0000,
68 WindowVisualState_Maximized = 0x0001,
69 WindowVisualState_Minimized = 0x0002,
72 enum WindowInteractionState {
73 WindowInteractionState_Running = 0x0000,
74 WindowInteractionState_Closing = 0x0001,
75 WindowInteractionState_ReadyForUserInteraction = 0x0002,
76 WindowInteractionState_BlockedByModalWindow = 0x0003,
77 WindowInteractionState_NotResponding = 0x0004,
80 enum LiveSetting {
81 Off = 0x0000,
82 Polite = 0x0001,
83 Assertive = 0x0002,
86 typedef int PROPERTYID;
87 typedef int PATTERNID;
88 typedef int EVENTID;
89 typedef int TEXTATTRIBUTEID;
90 typedef int CONTROLTYPEID;
91 typedef int LANDMARKTYPEID;
92 typedef int METADATAID;
93 typedef int HEADINGLEVELID;
95 struct UiaRect {
96 double left;
97 double top;
98 double width;
99 double height;
102 struct UiaChangeInfo {
103 int uiaId;
104 VARIANT payload;
105 VARIANT extraInfo;
109 version(1.0),
110 uuid(930299ce-9965-4dec-b0f4-a54848d4b667),
111 lcid(0),
112 hidden
114 library UIA
116 importlib("stdole2.tlb");
119 object,
120 uuid(d6dd68d1-86fd-4332-8666-9abedea2d24c),
121 pointer_default(unique),
122 oleautomation
124 interface IRawElementProviderSimple : IUnknown
126 [propget] HRESULT ProviderOptions([out, retval] enum ProviderOptions *pRetVal);
128 HRESULT GetPatternProvider(
129 [in] PATTERNID patternId,
130 [out, retval] IUnknown **pRetVal);
132 HRESULT GetPropertyValue(
133 [in] PROPERTYID propertyId,
134 [out, retval] VARIANT *pRetVal);
136 [propget] HRESULT HostRawElementProvider([out, retval] IRawElementProviderSimple **pRetVal);
140 object,
141 uuid(f8b80ada-2c44-48d0-89be-5ff23c9cd875),
142 pointer_default(unique),
143 oleautomation
145 interface IAccessibleEx : IUnknown
147 HRESULT GetObjectForChild(
148 [in] long idChild,
149 [out, retval] IAccessibleEx **pRetVal);
151 HRESULT GetIAccessiblePair(
152 [out] IAccessible **ppAcc,
153 [out] long *pidChild);
155 HRESULT GetRuntimeId(
156 [out, retval] SAFEARRAY(int) *pRetVal);
158 HRESULT ConvertReturnedElement(
159 [in] IRawElementProviderSimple *pIn,
160 [out] IAccessibleEx **ppRetValOut);
163 interface IRawElementProviderFragmentRoot;
166 object,
167 uuid(f7063da8-8359-439c-9297-bbc5299a7d87),
168 pointer_default(unique),
169 oleautomation
171 interface IRawElementProviderFragment : IUnknown
173 HRESULT Navigate(
174 [in] enum NavigateDirection direction,
175 [out, retval] IRawElementProviderFragment **pRetVal);
177 HRESULT GetRuntimeId([out, retval] SAFEARRAY(int) *pRetVal);
178 HRESULT get_BoundingRectangle([out, retval] struct UiaRect *pRetVal);
180 * FIXME: Current versions of Windows SDK use
181 * SAFEARRAY(IRawElementProviderFragmentRoot *) instead of
182 * SAFEARRAY(VARIANT). The new type is currently unsupported
183 * in widl, we should switch to it when it is.
185 HRESULT GetEmbeddedFragmentRoots([out, retval] SAFEARRAY(VARIANT) *pRetVal);
186 HRESULT SetFocus();
188 [propget] HRESULT FragmentRoot([out, retval] IRawElementProviderFragmentRoot **pRetVal);
192 object,
193 uuid(620ce2a5-ab8f-40a9-86cb-de3c75599b58),
194 pointer_default(unique),
195 oleautomation
197 interface IRawElementProviderFragmentRoot : IUnknown
199 HRESULT ElementProviderFromPoint(
200 [in] double x,
201 [in] double y,
202 [out, retval] IRawElementProviderFragment **pRetVal);
204 HRESULT GetFocus([out, retval] IRawElementProviderFragment **pRetVal);
208 object,
209 uuid(e44c3566-915d-4070-99c6-047bff5a08f5),
210 pointer_default(unique),
211 oleautomation
213 interface ILegacyIAccessibleProvider : IUnknown
215 HRESULT Select(long flagsSelect);
216 HRESULT DoDefaultAction();
217 HRESULT SetValue(LPCWSTR szValue);
218 HRESULT GetIAccessible([out, retval] IAccessible **ppAccessible);
220 [propget] HRESULT ChildId([out, retval] int *pRetVal);
221 [propget] HRESULT Name([out, retval] BSTR *pszName);
222 [propget] HRESULT Value([out, retval] BSTR *pszValue);
223 [propget] HRESULT Description([out, retval] BSTR *pszDescription);
224 [propget] HRESULT Role([out, retval] DWORD *pdwRole);
225 [propget] HRESULT State([out, retval] DWORD *pdwState);
226 [propget] HRESULT Help([out, retval] BSTR *pszHelp);
227 [propget] HRESULT KeyboardShortcut([out, retval] BSTR *pszKeyboardShortcut);
229 * FIXME: Current versions of Windows SDK use
230 * SAFEARRAY(IRawElementProviderSimple *) instead of
231 * SAFEARRAY(VARIANT). The new type is currently unsupported
232 * in widl, we should switch to it when it is.
234 HRESULT GetSelection([out, retval] SAFEARRAY(VARIANT) *pvarSelectedChildren);
235 [propget] HRESULT DefaultAction([out, retval] BSTR *pszDefaultAction);
238 enum UIAutomationType {
239 UIAutomationType_Int = 0x01,
240 UIAutomationType_Bool = 0x02,
241 UIAutomationType_String = 0x03,
242 UIAutomationType_Double = 0x04,
243 UIAutomationType_Point = 0x05,
244 UIAutomationType_Rect = 0x06,
245 UIAutomationType_Element = 0x07,
247 UIAutomationType_Array = 0x00010000,
248 UIAutomationType_Out = 0x00020000,
250 UIAutomationType_IntArray = ( UIAutomationType_Int | UIAutomationType_Array ),
251 UIAutomationType_BoolArray = ( UIAutomationType_Bool | UIAutomationType_Array ),
252 UIAutomationType_StringArray = ( UIAutomationType_String | UIAutomationType_Array ),
253 UIAutomationType_DoubleArray = ( UIAutomationType_Double | UIAutomationType_Array ),
254 UIAutomationType_PointArray = ( UIAutomationType_Point | UIAutomationType_Array ),
255 UIAutomationType_RectArray = ( UIAutomationType_Rect | UIAutomationType_Array ),
256 UIAutomationType_ElementArray = ( UIAutomationType_Element | UIAutomationType_Array ),
258 UIAutomationType_OutInt = ( UIAutomationType_Int | UIAutomationType_Out ),
259 UIAutomationType_OutBool = ( UIAutomationType_Bool | UIAutomationType_Out ),
260 UIAutomationType_OutString = ( UIAutomationType_String | UIAutomationType_Out ),
261 UIAutomationType_OutDouble = ( UIAutomationType_Double | UIAutomationType_Out ),
262 UIAutomationType_OutPoint = ( UIAutomationType_Point | UIAutomationType_Out ),
263 UIAutomationType_OutRect = ( UIAutomationType_Rect | UIAutomationType_Out ),
264 UIAutomationType_OutElement = ( UIAutomationType_Element | UIAutomationType_Out ),
266 UIAutomationType_OutIntArray = ( UIAutomationType_Int | UIAutomationType_Array | UIAutomationType_Out ),
267 UIAutomationType_OutBoolArray = ( UIAutomationType_Bool | UIAutomationType_Array | UIAutomationType_Out ),
268 UIAutomationType_OutStringArray = ( UIAutomationType_String | UIAutomationType_Array | UIAutomationType_Out ),
269 UIAutomationType_OutDoubleArray = ( UIAutomationType_Double | UIAutomationType_Array | UIAutomationType_Out ),
270 UIAutomationType_OutPointArray = ( UIAutomationType_Point | UIAutomationType_Array | UIAutomationType_Out ),
271 UIAutomationType_OutRectArray = ( UIAutomationType_Rect | UIAutomationType_Array | UIAutomationType_Out ),
272 UIAutomationType_OutElementArray = ( UIAutomationType_Element | UIAutomationType_Array | UIAutomationType_Out ),
275 cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(UIAutomationType)")
277 struct UIAutomationParameter {
278 enum UIAutomationType type;
279 void *pData;
282 struct UIAutomationPropertyInfo {
283 GUID guid;
284 LPCWSTR pProgrammaticName;
285 enum UIAutomationType type;
288 struct UIAutomationEventInfo {
289 GUID guid;
290 LPCWSTR pProgrammaticName;
293 struct UIAutomationMethodInfo {
294 LPCWSTR pProgrammaticName;
295 BOOL doSetFocus;
296 UINT cInParameters;
297 UINT cOutParameters;
298 [size_is(cInParameters + cOutParameters)]enum UIAutomationType *pParameterTypes;
299 [size_is(cInParameters + cOutParameters)]LPCWSTR *pParameterNames;
303 object,
304 uuid(c03a7fe4-9431-409f-bed8-ae7c2299bc8d),
305 pointer_default(unique),
306 oleautomation
308 interface IUIAutomationPatternInstance : IUnknown
310 [local] HRESULT GetProperty(
311 [in] UINT index,
312 [in] BOOL cached,
313 [in] enum UIAutomationType type,
314 [out] void *pPtr);
316 [local] HRESULT CallMethod(
317 [in] UINT index,
318 [in] const struct UIAutomationParameter *pParams,
319 [in] UINT cParams);
323 object,
324 uuid(d97022f3-a947-465e-8b2a-ac4315fa54e8),
325 pointer_default(unique),
326 oleautomation
328 interface IUIAutomationPatternHandler : IUnknown
330 HRESULT CreateClientWrapper(
331 [in] IUIAutomationPatternInstance *pPatternInstance,
332 [out] IUnknown **pClientWrapper);
334 [local] HRESULT Dispatch(
335 [in] IUnknown *pTarget,
336 [in] UINT index,
337 [in] const struct UIAutomationParameter *pParams,
338 [in] UINT cParams);
341 struct UIAutomationPatternInfo {
342 GUID guid;
343 LPCWSTR pProgrammaticName;
344 GUID providerInterfaceId;
345 GUID clientInterfaceId;
346 UINT cProperties;
347 [size_is(cProperties)]struct UIAutomationPropertyInfo *pProperties;
348 UINT cMethods;
349 [size_is(cMethods)]struct UIAutomationMethodInfo *pMethods;
350 UINT cEvents;
351 [size_is(cEvents)]struct UIAutomationEventInfo *pEvents;
352 IUIAutomationPatternHandler *pPatternHandler;
356 object,
357 uuid(8609c4ec-4a1a-4d88-a357-5a66e060e1cf),
358 pointer_default(unique),
359 oleautomation
361 interface IUIAutomationRegistrar : IUnknown
363 HRESULT RegisterProperty(
364 [in] const struct UIAutomationPropertyInfo *property,
365 [out] PROPERTYID *propertyId);
367 HRESULT RegisterEvent(
368 [in] const struct UIAutomationEventInfo *event,
369 [out] EVENTID *eventId);
371 HRESULT RegisterPattern(
372 [in] const struct UIAutomationPatternInfo *pattern,
373 [out] PATTERNID *pPatternId,
374 [out] PROPERTYID *pPatternAvailablePropertyId,
375 [in] UINT propertyIdCount,
376 [out, size_is(propertyIdCount)] PROPERTYID *pPropertyIds,
377 [in] UINT eventIdCount,
378 [out, size_is(eventIdCount)] EVENTID *pEventIds);
382 uuid(6e29fabf-9977-42d1-8d0e-ca7e61ad87e6),
383 version(1.0),
384 threading(both)
386 coclass CUIAutomationRegistrar
388 [default] interface IUIAutomationRegistrar;