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 typedef int PROPERTYID
;
44 typedef int PATTERNID
;
46 typedef int TEXTATTRIBUTEID
;
47 typedef int CONTROLTYPEID
;
58 uuid(930299ce
-9965-4dec
-b0f4
-a54848d4b667
),
64 importlib
("stdole2.tlb");
68 uuid(d6dd68d1
-86fd
-4332-8666-9abedea2d24c
),
69 pointer_default(unique),
72 interface IRawElementProviderSimple
: IUnknown
74 [propget] HRESULT ProviderOptions
([out, retval] enum ProviderOptions
*pRetVal
);
76 HRESULT GetPatternProvider
(
77 [in] PATTERNID patternId
,
78 [out, retval] IUnknown
**pRetVal
);
80 HRESULT GetPropertyValue
(
81 [in] PROPERTYID propertyId
,
82 [out, retval] VARIANT *pRetVal
);
84 [propget] HRESULT HostRawElementProvider
([out, retval] IRawElementProviderSimple
**pRetVal
);
89 uuid(f8b80ada
-2c44
-48d0
-89be
-5ff23c9cd875
),
90 pointer_default(unique),
93 interface IAccessibleEx
: IUnknown
95 HRESULT GetObjectForChild
(
97 [out, retval] IAccessibleEx
**pRetVal
);
99 HRESULT GetIAccessiblePair
(
100 [out] IAccessible
**ppAcc
,
101 [out] long *pidChild
);
103 HRESULT GetRuntimeId
(
104 [out, retval] SAFEARRAY(int) *pRetVal
);
106 HRESULT ConvertReturnedElement
(
107 [in] IRawElementProviderSimple
*pIn
,
108 [out] IAccessibleEx
**ppRetValOut
);
111 interface IRawElementProviderFragmentRoot
;
115 uuid(f7063da8
-8359-439c
-9297-bbc5299a7d87
),
116 pointer_default(unique),
119 interface IRawElementProviderFragment
: IUnknown
122 [in] enum NavigateDirection direction
,
123 [out, retval] IRawElementProviderFragment
**pRetVal
);
125 HRESULT GetRuntimeId
([out, retval] SAFEARRAY(int) *pRetVal
);
126 HRESULT get_BoundingRectangle
([out, retval] struct UiaRect
*pRetVal
);
128 * FIXME: Current versions of Windows SDK use
129 * SAFEARRAY(IRawElementProviderFragmentRoot *) instead of
130 * SAFEARRAY(VARIANT). The new type is currently unsupported
131 * in widl, we should switch to it when it is.
133 HRESULT GetEmbeddedFragmentRoots
([out, retval] SAFEARRAY(VARIANT) *pRetVal
);
136 [propget] HRESULT FragmentRoot
([out, retval] IRawElementProviderFragmentRoot
**pRetVal
);
141 uuid(620ce2a5
-ab8f
-40a9
-86cb
-de3c75599b58
),
142 pointer_default(unique),
145 interface IRawElementProviderFragmentRoot
: IUnknown
147 HRESULT ElementProviderFromPoint
(
150 [out, retval] IRawElementProviderFragment
**pRetVal
);
152 HRESULT GetFocus
([out, retval] IRawElementProviderFragment
**pRetVal
);
157 uuid(e44c3566
-915d
-4070-99c6
-047bff5a08f5
),
158 pointer_default(unique),
161 interface ILegacyIAccessibleProvider
: IUnknown
163 HRESULT Select
(long flagsSelect
);
164 HRESULT DoDefaultAction
();
165 HRESULT SetValue
(LPCWSTR szValue
);
166 HRESULT GetIAccessible
([out, retval] IAccessible
**ppAccessible
);
168 [propget] HRESULT ChildId
([out, retval] int *pRetVal
);
169 [propget] HRESULT Name
([out, retval] BSTR *pszName
);
170 [propget] HRESULT Value
([out, retval] BSTR *pszValue
);
171 [propget] HRESULT Description
([out, retval] BSTR *pszDescription
);
172 [propget] HRESULT Role
([out, retval] DWORD
*pdwRole
);
173 [propget] HRESULT State
([out, retval] DWORD
*pdwState
);
174 [propget] HRESULT Help
([out, retval] BSTR *pszHelp
);
175 [propget] HRESULT KeyboardShortcut
([out, retval] BSTR *pszKeyboardShortcut
);
177 * FIXME: Current versions of Windows SDK use
178 * SAFEARRAY(IRawElementProviderSimple *) instead of
179 * SAFEARRAY(VARIANT). The new type is currently unsupported
180 * in widl, we should switch to it when it is.
182 HRESULT GetSelection
([out, retval] SAFEARRAY(VARIANT) *pvarSelectedChildren
);
183 [propget] HRESULT DefaultAction
([out, retval] BSTR *pszDefaultAction
);