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
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,
86 typedef int PROPERTYID
;
87 typedef int PATTERNID
;
89 typedef int TEXTATTRIBUTEID
;
90 typedef int CONTROLTYPEID
;
91 typedef int LANDMARKTYPEID
;
92 typedef int METADATAID
;
93 typedef int HEADINGLEVELID
;
102 struct UiaChangeInfo
{
110 uuid(930299ce
-9965-4dec
-b0f4
-a54848d4b667
),
116 importlib
("stdole2.tlb");
120 uuid(d6dd68d1
-86fd
-4332-8666-9abedea2d24c
),
121 pointer_default(unique),
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
);
141 uuid(f8b80ada
-2c44
-48d0
-89be
-5ff23c9cd875
),
142 pointer_default(unique),
145 interface IAccessibleEx
: IUnknown
147 HRESULT GetObjectForChild
(
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
;
167 uuid(f7063da8
-8359-439c
-9297-bbc5299a7d87
),
168 pointer_default(unique),
171 interface IRawElementProviderFragment
: IUnknown
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
);
188 [propget] HRESULT FragmentRoot
([out, retval] IRawElementProviderFragmentRoot
**pRetVal
);
193 uuid(620ce2a5
-ab8f
-40a9
-86cb
-de3c75599b58
),
194 pointer_default(unique),
197 interface IRawElementProviderFragmentRoot
: IUnknown
199 HRESULT ElementProviderFromPoint
(
202 [out, retval] IRawElementProviderFragment
**pRetVal
);
204 HRESULT GetFocus
([out, retval] IRawElementProviderFragment
**pRetVal
);
209 uuid(e44c3566
-915d
-4070-99c6
-047bff5a08f5
),
210 pointer_default(unique),
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
;
282 struct UIAutomationPropertyInfo
{
284 LPCWSTR pProgrammaticName
;
285 enum UIAutomationType type
;
288 struct UIAutomationEventInfo
{
290 LPCWSTR pProgrammaticName
;
293 struct UIAutomationMethodInfo
{
294 LPCWSTR pProgrammaticName
;
298 [size_is(cInParameters
+ cOutParameters
)]enum UIAutomationType
*pParameterTypes
;
299 [size_is(cInParameters
+ cOutParameters
)]LPCWSTR
*pParameterNames
;
304 uuid(c03a7fe4
-9431-409f
-bed8
-ae7c2299bc8d
),
305 pointer_default(unique),
308 interface IUIAutomationPatternInstance
: IUnknown
310 [local] HRESULT GetProperty
(
313 [in] enum UIAutomationType type
,
316 [local] HRESULT CallMethod
(
318 [in] const struct UIAutomationParameter
*pParams
,
324 uuid(d97022f3
-a947
-465e-8b2a
-ac4315fa54e8
),
325 pointer_default(unique),
328 interface IUIAutomationPatternHandler
: IUnknown
330 HRESULT CreateClientWrapper
(
331 [in] IUIAutomationPatternInstance
*pPatternInstance
,
332 [out] IUnknown
**pClientWrapper
);
334 [local] HRESULT Dispatch
(
335 [in] IUnknown
*pTarget
,
337 [in] const struct UIAutomationParameter
*pParams
,
341 struct UIAutomationPatternInfo
{
343 LPCWSTR pProgrammaticName
;
344 GUID providerInterfaceId
;
345 GUID clientInterfaceId
;
347 [size_is(cProperties
)]struct UIAutomationPropertyInfo
*pProperties
;
349 [size_is(cMethods
)]struct UIAutomationMethodInfo
*pMethods
;
351 [size_is(cEvents
)]struct UIAutomationEventInfo
*pEvents
;
352 IUIAutomationPatternHandler
*pPatternHandler
;
357 uuid(8609c4ec
-4a1a
-4d88
-a357
-5a66e060e1cf
),
358 pointer_default(unique),
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
),
386 coclass CUIAutomationRegistrar
388 [default] interface IUIAutomationRegistrar
;