diff --git a/.gitignore b/.gitignore index 6baea7d9258..e652488a251 100644 --- a/.gitignore +++ b/.gitignore @@ -240,6 +240,7 @@ include/structuredquerycondition.h include/textstor.h include/tlogstg.h include/tom.h +include/uiautomationcore.h include/unknwn.h include/urlhist.h include/urlmon.h diff --git a/include/Makefile.in b/include/Makefile.in index 37f2c627c2c..a4f00a3da35 100644 --- a/include/Makefile.in +++ b/include/Makefile.in @@ -97,6 +97,7 @@ PUBLIC_IDL_H_SRCS = \ textstor.idl \ tlogstg.idl \ tom.idl \ + uiautomationcore.idl \ unknwn.idl \ urlhist.idl \ urlmon.idl \ diff --git a/include/uiautomationcore.idl b/include/uiautomationcore.idl new file mode 100644 index 00000000000..3ae6dac4b3f --- /dev/null +++ b/include/uiautomationcore.idl @@ -0,0 +1,91 @@ +/* + * 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 ProviderOptions { + ProviderOptions_ClientSideProvider = 0x0001, + ProviderOptions_ServerSideProvider = 0x0002, + ProviderOptions_NonClientAreaProvider = 0x0004, + ProviderOptions_OverrideProvider = 0x0008, + ProviderOptions_ProviderOwnsSetFocus = 0x0010, + ProviderOptions_UseComThreading = 0x0020 +}; + +typedef int PROPERTYID; +typedef int PATTERNID; +typedef int EVENTID; +typedef int TEXTATTRIBUTEID; +typedef int CONTROLTYPEID; + +[ + 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) + ] + 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); + } +}