1 /* 2 * Copyright 2012 Jacek Caban for CodeWeavers 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 #ifndef _INC_UIAUTOMATIONCOREAPI 20 #define _INC_UIAUTOMATIONCOREAPI 21 22 #ifdef __cplusplus 23 extern "C" { 24 #endif 25 26 #define UIA_E_ELEMENTNOTENABLED 0x80040200 27 #define UIA_E_ELEMENTNOTAVAILABLE 0x80040201 28 #define UIA_E_NOCLICKABLEPOINT 0x80040202 29 #define UIA_E_PROXYASSEMBLYNOTLOADED 0x80040203 30 #define UIA_E_NOTSUPPORTED 0x80040204 31 #define UIA_E_INVALIDOPERATION 0x80131509 32 #define UIA_E_TIMEOUT 0x80131505 33 34 #define UiaAppendRuntimeId 3 35 #define UiaRootObjectId -25 36 37 DECLARE_HANDLE(HUIANODE); 38 DECLARE_HANDLE(HUIAPATTERNOBJECT); 39 DECLARE_HANDLE(HUIATEXTRANGE); 40 DECLARE_HANDLE(HUIAEVENT); 41 42 enum AutomationIdentifierType 43 { 44 AutomationIdentifierType_Property, 45 AutomationIdentifierType_Pattern, 46 AutomationIdentifierType_Event, 47 AutomationIdentifierType_ControlType, 48 AutomationIdentifierType_TextAttribute, 49 AutomationIdentifierType_LandmarkType, 50 AutomationIdentifierType_Annotation, 51 AutomationIdentifierType_Changes, 52 AutomationIdentifierType_Style 53 }; 54 55 enum ProviderType 56 { 57 ProviderType_BaseHwnd, 58 ProviderType_Proxy, 59 ProviderType_NonClientArea, 60 }; 61 62 typedef SAFEARRAY * WINAPI UiaProviderCallback(HWND hwnd,enum ProviderType providerType); 63 64 HRESULT WINAPI UiaGetReservedMixedAttributeValue(IUnknown **value); 65 HRESULT WINAPI UiaGetReservedNotSupportedValue(IUnknown **value); 66 int WINAPI UiaLookupId(enum AutomationIdentifierType type, const GUID *guid); 67 WINBOOL WINAPI UiaPatternRelease(HUIAPATTERNOBJECT hobj); 68 HRESULT WINAPI UiaRaiseAutomationEvent(IRawElementProviderSimple *provider, EVENTID id); 69 void WINAPI UiaRegisterProviderCallback(UiaProviderCallback *pCallback); 70 LRESULT WINAPI UiaReturnRawElementProvider(HWND hwnd, WPARAM wParam, LPARAM lParam, IRawElementProviderSimple *elprov); 71 WINBOOL WINAPI UiaTextRangeRelease(HUIATEXTRANGE hobj); 72 HRESULT WINAPI UiaHostProviderFromHwnd(HWND hwnd, IRawElementProviderSimple **elprov); 73 74 #ifdef __cplusplus 75 } 76 #endif 77 78 #endif /* _INC_UIAUTOMATIONCOREAPI */ 79