| /* |
| * Copyright 2012 Jacek Caban for CodeWeavers |
| * |
| * This library is free software; you can redistribute it and/or |
| * modify it under the terms of the GNU Lesser General Public |
| * License as published by the Free Software Foundation; either |
| * version 2.1 of the License, or (at your option) any later version. |
| * |
| * This library is distributed in the hope that it will be useful, |
| * but WITHOUT ANY WARRANTY; without even the implied warranty of |
| * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
| * Lesser General Public License for more details. |
| * |
| * You should have received a copy of the GNU Lesser General Public |
| * License along with this library; if not, write to the Free Software |
| * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA |
| */ |
| |
| #define DO_NO_IMPORTS |
| import "oaidl.idl"; |
| import "oleacc.idl"; |
| |
| enum NavigateDirection { |
| NavigateDirection_Parent = 0x0000, |
| NavigateDirection_NextSibling = 0x0001, |
| NavigateDirection_PreviousSibling = 0x0002, |
| NavigateDirection_FirstChild = 0x0003, |
| NavigateDirection_LastChild = 0x0004, |
| }; |
| |
| enum ProviderOptions { |
| ProviderOptions_ClientSideProvider = 0x0001, |
| ProviderOptions_ServerSideProvider = 0x0002, |
| ProviderOptions_NonClientAreaProvider = 0x0004, |
| ProviderOptions_OverrideProvider = 0x0008, |
| ProviderOptions_ProviderOwnsSetFocus = 0x0010, |
| ProviderOptions_UseComThreading = 0x0020, |
| ProviderOptions_RefuseNonClientSupport = 0x0040, |
| ProviderOptions_HasNativeIAccessible = 0x0080, |
| ProviderOptions_UseClientCoordinates = 0x0100, |
| }; |
| |
| enum StructureChangeType { |
| StructureChangeType_ChildAdded = 0x0000, |
| StructureChangeType_ChildRemoved = 0x0001, |
| StructureChangeType_ChildrenInvalidated = 0x0002, |
| StructureChangeType_ChildrenBulkAdded = 0x0003, |
| StructureChangeType_ChildrenBulkRemoved = 0x0004, |
| StructureChangeType_ChildrenReordered = 0x0005, |
| }; |
| |
| enum TextEditChangeType { |
| TextEditChangeType_None = 0x0000, |
| TextEditChangeType_AutoCorrect = 0x0001, |
| TextEditChangeType_Composition = 0x0002, |
| TextEditChangeType_CompositionFinalized = 0x0003, |
| TextEditChangeType_AutoComplete = 0x0004, |
| }; |
| |
| enum OrientationType { |
| OrientationType_None = 0x0000, |
| OrientationType_Horizontal = 0x0001, |
| OrientationType_Vertical = 0x0002, |
| }; |
| |
| enum WindowVisualState { |
| WindowVisualState_Normal = 0x0000, |
| WindowVisualState_Maximized = 0x0001, |
| WindowVisualState_Minimized = 0x0002, |
| }; |
| |
| enum WindowInteractionState { |
| WindowInteractionState_Running = 0x0000, |
| WindowInteractionState_Closing = 0x0001, |
| WindowInteractionState_ReadyForUserInteraction = 0x0002, |
| WindowInteractionState_BlockedByModalWindow = 0x0003, |
| WindowInteractionState_NotResponding = 0x0004, |
| }; |
| |
| enum LiveSetting { |
| Off = 0x0000, |
| Polite = 0x0001, |
| Assertive = 0x0002, |
| }; |
| |
| typedef int PROPERTYID; |
| typedef int PATTERNID; |
| typedef int EVENTID; |
| typedef int TEXTATTRIBUTEID; |
| typedef int CONTROLTYPEID; |
| typedef int LANDMARKTYPEID; |
| typedef int METADATAID; |
| typedef int HEADINGLEVELID; |
| |
| struct UiaRect { |
| double left; |
| double top; |
| double width; |
| double height; |
| }; |
| |
| struct UiaChangeInfo { |
| int uiaId; |
| VARIANT payload; |
| VARIANT extraInfo; |
| }; |
| |
| [ |
| version(1.0), |
| uuid(930299ce-9965-4dec-b0f4-a54848d4b667), |
| lcid(0), |
| hidden |
| ] |
| library UIA |
| { |
| importlib("stdole2.tlb"); |
| |
| [ |
| object, |
| uuid(d6dd68d1-86fd-4332-8666-9abedea2d24c), |
| pointer_default(unique), |
| oleautomation |
| ] |
| interface IRawElementProviderSimple : IUnknown |
| { |
| [propget] HRESULT ProviderOptions([out, retval] enum ProviderOptions *pRetVal); |
| |
| HRESULT GetPatternProvider( |
| [in] PATTERNID patternId, |
| [out, retval] IUnknown **pRetVal); |
| |
| HRESULT GetPropertyValue( |
| [in] PROPERTYID propertyId, |
| [out, retval] VARIANT *pRetVal); |
| |
| [propget] HRESULT HostRawElementProvider([out, retval] IRawElementProviderSimple **pRetVal); |
| } |
| |
| [ |
| object, |
| uuid(f8b80ada-2c44-48d0-89be-5ff23c9cd875), |
| pointer_default(unique), |
| oleautomation |
| ] |
| interface IAccessibleEx : IUnknown |
| { |
| HRESULT GetObjectForChild( |
| [in] long idChild, |
| [out, retval] IAccessibleEx **pRetVal); |
| |
| HRESULT GetIAccessiblePair( |
| [out] IAccessible **ppAcc, |
| [out] long *pidChild); |
| |
| HRESULT GetRuntimeId( |
| [out, retval] SAFEARRAY(int) *pRetVal); |
| |
| HRESULT ConvertReturnedElement( |
| [in] IRawElementProviderSimple *pIn, |
| [out] IAccessibleEx **ppRetValOut); |
| } |
| |
| interface IRawElementProviderFragmentRoot; |
| |
| [ |
| object, |
| uuid(f7063da8-8359-439c-9297-bbc5299a7d87), |
| pointer_default(unique), |
| oleautomation |
| ] |
| interface IRawElementProviderFragment : IUnknown |
| { |
| HRESULT Navigate( |
| [in] enum NavigateDirection direction, |
| [out, retval] IRawElementProviderFragment **pRetVal); |
| |
| HRESULT GetRuntimeId([out, retval] SAFEARRAY(int) *pRetVal); |
| HRESULT get_BoundingRectangle([out, retval] struct UiaRect *pRetVal); |
| /* |
| * FIXME: Current versions of Windows SDK use |
| * SAFEARRAY(IRawElementProviderFragmentRoot *) instead of |
| * SAFEARRAY(VARIANT). The new type is currently unsupported |
| * in widl, we should switch to it when it is. |
| */ |
| HRESULT GetEmbeddedFragmentRoots([out, retval] SAFEARRAY(VARIANT) *pRetVal); |
| HRESULT SetFocus(); |
| |
| [propget] HRESULT FragmentRoot([out, retval] IRawElementProviderFragmentRoot **pRetVal); |
| } |
| |
| [ |
| object, |
| uuid(620ce2a5-ab8f-40a9-86cb-de3c75599b58), |
| pointer_default(unique), |
| oleautomation |
| ] |
| interface IRawElementProviderFragmentRoot : IUnknown |
| { |
| HRESULT ElementProviderFromPoint( |
| [in] double x, |
| [in] double y, |
| [out, retval] IRawElementProviderFragment **pRetVal); |
| |
| HRESULT GetFocus([out, retval] IRawElementProviderFragment **pRetVal); |
| } |
| |
| |
| [ |
| object, |
| uuid(1d5df27c-8947-4425-b8d9-79787bb460b8), |
| pointer_default(unique), |
| oleautomation |
| ] |
| interface IRawElementProviderHwndOverride : IUnknown |
| { |
| HRESULT GetOverrideProviderForHwnd( |
| [in] HWND hwnd, |
| [out, retval] IRawElementProviderSimple **pRetVal); |
| } |
| |
| [ |
| object, |
| uuid(e44c3566-915d-4070-99c6-047bff5a08f5), |
| pointer_default(unique), |
| oleautomation |
| ] |
| interface ILegacyIAccessibleProvider : IUnknown |
| { |
| HRESULT Select(long flagsSelect); |
| HRESULT DoDefaultAction(); |
| HRESULT SetValue(LPCWSTR szValue); |
| HRESULT GetIAccessible([out, retval] IAccessible **ppAccessible); |
| |
| [propget] HRESULT ChildId([out, retval] int *pRetVal); |
| [propget] HRESULT Name([out, retval] BSTR *pszName); |
| [propget] HRESULT Value([out, retval] BSTR *pszValue); |
| [propget] HRESULT Description([out, retval] BSTR *pszDescription); |
| [propget] HRESULT Role([out, retval] DWORD *pdwRole); |
| [propget] HRESULT State([out, retval] DWORD *pdwState); |
| [propget] HRESULT Help([out, retval] BSTR *pszHelp); |
| [propget] HRESULT KeyboardShortcut([out, retval] BSTR *pszKeyboardShortcut); |
| /* |
| * FIXME: Current versions of Windows SDK use |
| * SAFEARRAY(IRawElementProviderSimple *) instead of |
| * SAFEARRAY(VARIANT). The new type is currently unsupported |
| * in widl, we should switch to it when it is. |
| */ |
| HRESULT GetSelection([out, retval] SAFEARRAY(VARIANT) *pvarSelectedChildren); |
| [propget] HRESULT DefaultAction([out, retval] BSTR *pszDefaultAction); |
| } |
| |
| enum UIAutomationType { |
| UIAutomationType_Int = 0x01, |
| UIAutomationType_Bool = 0x02, |
| UIAutomationType_String = 0x03, |
| UIAutomationType_Double = 0x04, |
| UIAutomationType_Point = 0x05, |
| UIAutomationType_Rect = 0x06, |
| UIAutomationType_Element = 0x07, |
| |
| UIAutomationType_Array = 0x00010000, |
| UIAutomationType_Out = 0x00020000, |
| |
| UIAutomationType_IntArray = ( UIAutomationType_Int | UIAutomationType_Array ), |
| UIAutomationType_BoolArray = ( UIAutomationType_Bool | UIAutomationType_Array ), |
| UIAutomationType_StringArray = ( UIAutomationType_String | UIAutomationType_Array ), |
| UIAutomationType_DoubleArray = ( UIAutomationType_Double | UIAutomationType_Array ), |
| UIAutomationType_PointArray = ( UIAutomationType_Point | UIAutomationType_Array ), |
| UIAutomationType_RectArray = ( UIAutomationType_Rect | UIAutomationType_Array ), |
| UIAutomationType_ElementArray = ( UIAutomationType_Element | UIAutomationType_Array ), |
| |
| UIAutomationType_OutInt = ( UIAutomationType_Int | UIAutomationType_Out ), |
| UIAutomationType_OutBool = ( UIAutomationType_Bool | UIAutomationType_Out ), |
| UIAutomationType_OutString = ( UIAutomationType_String | UIAutomationType_Out ), |
| UIAutomationType_OutDouble = ( UIAutomationType_Double | UIAutomationType_Out ), |
| UIAutomationType_OutPoint = ( UIAutomationType_Point | UIAutomationType_Out ), |
| UIAutomationType_OutRect = ( UIAutomationType_Rect | UIAutomationType_Out ), |
| UIAutomationType_OutElement = ( UIAutomationType_Element | UIAutomationType_Out ), |
| |
| UIAutomationType_OutIntArray = ( UIAutomationType_Int | UIAutomationType_Array | UIAutomationType_Out ), |
| UIAutomationType_OutBoolArray = ( UIAutomationType_Bool | UIAutomationType_Array | UIAutomationType_Out ), |
| UIAutomationType_OutStringArray = ( UIAutomationType_String | UIAutomationType_Array | UIAutomationType_Out ), |
| UIAutomationType_OutDoubleArray = ( UIAutomationType_Double | UIAutomationType_Array | UIAutomationType_Out ), |
| UIAutomationType_OutPointArray = ( UIAutomationType_Point | UIAutomationType_Array | UIAutomationType_Out ), |
| UIAutomationType_OutRectArray = ( UIAutomationType_Rect | UIAutomationType_Array | UIAutomationType_Out ), |
| UIAutomationType_OutElementArray = ( UIAutomationType_Element | UIAutomationType_Array | UIAutomationType_Out ), |
| }; |
| |
| cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(UIAutomationType)") |
| |
| struct UIAutomationParameter { |
| enum UIAutomationType type; |
| void *pData; |
| }; |
| |
| struct UIAutomationPropertyInfo { |
| GUID guid; |
| LPCWSTR pProgrammaticName; |
| enum UIAutomationType type; |
| }; |
| |
| struct UIAutomationEventInfo { |
| GUID guid; |
| LPCWSTR pProgrammaticName; |
| }; |
| |
| struct UIAutomationMethodInfo { |
| LPCWSTR pProgrammaticName; |
| BOOL doSetFocus; |
| UINT cInParameters; |
| UINT cOutParameters; |
| [size_is(cInParameters + cOutParameters)]enum UIAutomationType *pParameterTypes; |
| [size_is(cInParameters + cOutParameters)]LPCWSTR *pParameterNames; |
| }; |
| |
| [ |
| object, |
| uuid(c03a7fe4-9431-409f-bed8-ae7c2299bc8d), |
| pointer_default(unique), |
| oleautomation |
| ] |
| interface IUIAutomationPatternInstance : IUnknown |
| { |
| [local] HRESULT GetProperty( |
| [in] UINT index, |
| [in] BOOL cached, |
| [in] enum UIAutomationType type, |
| [out] void *pPtr); |
| |
| [local] HRESULT CallMethod( |
| [in] UINT index, |
| [in] const struct UIAutomationParameter *pParams, |
| [in] UINT cParams); |
| } |
| |
| [ |
| object, |
| uuid(d97022f3-a947-465e-8b2a-ac4315fa54e8), |
| pointer_default(unique), |
| oleautomation |
| ] |
| interface IUIAutomationPatternHandler : IUnknown |
| { |
| HRESULT CreateClientWrapper( |
| [in] IUIAutomationPatternInstance *pPatternInstance, |
| [out] IUnknown **pClientWrapper); |
| |
| [local] HRESULT Dispatch( |
| [in] IUnknown *pTarget, |
| [in] UINT index, |
| [in] const struct UIAutomationParameter *pParams, |
| [in] UINT cParams); |
| } |
| |
| struct UIAutomationPatternInfo { |
| GUID guid; |
| LPCWSTR pProgrammaticName; |
| GUID providerInterfaceId; |
| GUID clientInterfaceId; |
| UINT cProperties; |
| [size_is(cProperties)]struct UIAutomationPropertyInfo *pProperties; |
| UINT cMethods; |
| [size_is(cMethods)]struct UIAutomationMethodInfo *pMethods; |
| UINT cEvents; |
| [size_is(cEvents)]struct UIAutomationEventInfo *pEvents; |
| IUIAutomationPatternHandler *pPatternHandler; |
| }; |
| |
| [ |
| object, |
| uuid(8609c4ec-4a1a-4d88-a357-5a66e060e1cf), |
| pointer_default(unique), |
| oleautomation |
| ] |
| interface IUIAutomationRegistrar : IUnknown |
| { |
| HRESULT RegisterProperty( |
| [in] const struct UIAutomationPropertyInfo *property, |
| [out] PROPERTYID *propertyId); |
| |
| HRESULT RegisterEvent( |
| [in] const struct UIAutomationEventInfo *event, |
| [out] EVENTID *eventId); |
| |
| HRESULT RegisterPattern( |
| [in] const struct UIAutomationPatternInfo *pattern, |
| [out] PATTERNID *pPatternId, |
| [out] PROPERTYID *pPatternAvailablePropertyId, |
| [in] UINT propertyIdCount, |
| [out, size_is(propertyIdCount)] PROPERTYID *pPropertyIds, |
| [in] UINT eventIdCount, |
| [out, size_is(eventIdCount)] EVENTID *pEventIds); |
| }; |
| |
| [ |
| uuid(6e29fabf-9977-42d1-8d0e-ca7e61ad87e6), |
| version(1.0), |
| threading(both) |
| ] |
| coclass CUIAutomationRegistrar |
| { |
| [default] interface IUIAutomationRegistrar; |
| } |
| } |