1 #ifndef __UIAUTO_HH_INCLUDED__
2 #define __UIAUTO_HH_INCLUDED__
3 
4 #ifdef __cplusplus
5 extern "C" {
6 #endif
7 
8 #include <oleacc.h>
9 
10 EXTERN_C const IID IID_IUIAutomation;
11 EXTERN_C const IID CLSID_CUIAutomation;
12 EXTERN_C const IID IID_IUIAutomationElement;
13 EXTERN_C const IID IID_IUIAutomationTextPattern;
14 EXTERN_C const IID IID_IUIAutomationTextRange;
15 EXTERN_C const IID IID_IUIAutomationTreeWalker;
16 
17 typedef interface IUIAutomationElement IUIAutomationElement;
18 typedef interface IUIAutomationElementArray IUIAutomationElementArray;
19 typedef interface IUIAutomationTextPattern IUIAutomationTextPattern;
20 typedef interface IUIAutomationTextRange IUIAutomationTextRange;
21 typedef interface IUIAutomationTextRangeArray IUIAutomationTextRangeArray;
22 typedef interface IUIAutomationCacheRequest IUIAutomationCacheRequest;
23 typedef interface IUIAutomationTreeWalker IUIAutomationTreeWalker;
24 typedef interface IUIAutomationCondition IUIAutomationCondition;
25 typedef interface IUIAutomationEventHandler IUIAutomationEventHandler;
26 typedef interface IUIAutomationPropertyChangedEventHandler IUIAutomationPropertyChangedEventHandler;
27 typedef interface IUIAutomationStructureChangedEventHandler IUIAutomationStructureChangedEventHandler;
28 typedef interface IUIAutomationFocusChangedEventHandler IUIAutomationFocusChangedEventHandler;
29 typedef interface IUIAutomationProxyFactory IUIAutomationProxyFactory;
30 typedef interface IUIAutomationProxyFactoryEntry IUIAutomationProxyFactoryEntry;
31 typedef interface IUIAutomationProxyFactoryMapping IUIAutomationProxyFactoryMapping;
32 
33 typedef void *UIA_HWND;
34 typedef int PROPERTYID;
35 typedef int EVENTID;
36 typedef int PATTERNID;
37 typedef int CONTROLTYPEID;
38 typedef int TEXTATTRIBUTEID;
39 
40 enum TreeScope
41 {
42     TreeScope_Element       = 0x1,
43     TreeScope_Children      = 0x2,
44     TreeScope_Descendants   = 0x4,
45     TreeScope_Parent        = 0x8,
46     TreeScope_Ancestors     = 0x10,
47     TreeScope_Subtree       = ( ( TreeScope_Element | TreeScope_Children )  | TreeScope_Descendants )
48 };
49 
50 enum PropertyConditionFlags
51 {
52     PropertyConditionFlags_None = 0,
53     PropertyConditionFlags_IgnoreCase = 0x1
54 };
55 
56 enum OrientationType
57 {
58     OrientationType_None        = 0,
59     OrientationType_Horizontal  = 1,
60     OrientationType_Vertical    = 2
61 };
62 
63 enum SupportedTextSelection
64 {
65     SupportedTextSelection_None     = 0,
66     SupportedTextSelection_Single   = 1,
67     SupportedTextSelection_Multiple = 2
68 };
69 
70 enum TextPatternRangeEndpoint
71 {
72     TextPatternRangeEndpoint_Start  = 0,
73     TextPatternRangeEndpoint_End    = 1
74 };
75 
76 enum TextUnit
77 {
78     TextUnit_Character  = 0,
79     TextUnit_Format     = 1,
80     TextUnit_Word       = 2,
81     TextUnit_Line       = 3,
82     TextUnit_Paragraph  = 4,
83     TextUnit_Page       = 5,
84     TextUnit_Document   = 6
85 };
86 
87 enum ProviderOptions
88 {
89     ProviderOptions_ClientSideProvider      = 0x1,
90     ProviderOptions_ServerSideProvider      = 0x2,
91     ProviderOptions_NonClientAreaProvider   = 0x4,
92     ProviderOptions_OverrideProvider        = 0x8,
93     ProviderOptions_ProviderOwnsSetFocus    = 0x10,
94     ProviderOptions_UseComThreading         = 0x20
95 } ;
96 
97 /* UIA_PatternIds */
98 const long UIA_InvokePatternId              =   10000;
99 const long UIA_SelectionPatternId           =   10001;
100 const long UIA_ValuePatternId               =   10002;
101 const long UIA_RangeValuePatternId          =   10003;
102 const long UIA_ScrollPatternId              =   10004;
103 const long UIA_ExpandCollapsePatternId      =   10005;
104 const long UIA_GridPatternId                =   10006;
105 const long UIA_GridItemPatternId            =   10007;
106 const long UIA_MultipleViewPatternId        =   10008;
107 const long UIA_WindowPatternId              =   10009;
108 const long UIA_SelectionItemPatternId       =   10010;
109 const long UIA_DockPatternId                =   10011;
110 const long UIA_TablePatternId               =   10012;
111 const long UIA_TableItemPatternId           =   10013;
112 const long UIA_TextPatternId                =   10014;
113 const long UIA_TogglePatternId              =   10015;
114 const long UIA_TransformPatternId           =   10016;
115 const long UIA_ScrollItemPatternId          =   10017;
116 const long UIA_LegacyIAccessiblePatternId   =   10018;
117 const long UIA_ItemContainerPatternId       =   10019;
118 const long UIA_VirtualizedItemPatternId     =   10020;
119 const long UIA_SynchronizedInputPatternId   =   10021;
120 
121 #ifdef INTERFACE
122 #undef INTERFACE
123 #endif
124 
125 #define INTERFACE IUIAutomation
DECLARE_INTERFACE_(IUIAutomation,IUnknown)126 DECLARE_INTERFACE_(IUIAutomation, IUnknown)
127 {
128     STDMETHOD(CompareElements)(THIS_ IUIAutomationElement *, IUIAutomationElement *, BOOL *) PURE;
129     STDMETHOD(CompareRuntimeIds)(THIS_ SAFEARRAY *, SAFEARRAY *, BOOL *) PURE;
130     STDMETHOD(GetRootElement)(THIS_ IUIAutomationElement **) PURE;
131     STDMETHOD(ElementFromHandle)(THIS_ UIA_HWND, IUIAutomationElement **) PURE;
132     STDMETHOD(ElementFromPoint)(THIS_ POINT, IUIAutomationElement **) PURE;
133     STDMETHOD(GetFocusedElement)(THIS_ IUIAutomationElement **) PURE;
134     STDMETHOD(GetRootElementBuildCache)(THIS_ IUIAutomationCacheRequest *, IUIAutomationElement **) PURE;
135     STDMETHOD(ElementFromHandleBuildCache)(THIS_ UIA_HWND, IUIAutomationCacheRequest *, IUIAutomationElement **) PURE;
136     STDMETHOD(ElementFromPointBuildCache)(THIS_ POINT, IUIAutomationCacheRequest *, IUIAutomationElement **) PURE;
137     STDMETHOD(GetFocusedElementBuildCache)(THIS_ IUIAutomationCacheRequest *, IUIAutomationElement **) PURE;
138     STDMETHOD(CreateTreeWalker)(THIS_ IUIAutomationCondition *, IUIAutomationTreeWalker **) PURE;
139     STDMETHOD(get_ControlViewWalker)(THIS_ IUIAutomationTreeWalker **) PURE;
140     STDMETHOD(get_ContentViewWalker)(THIS_ IUIAutomationTreeWalker **) PURE;
141     STDMETHOD(get_RawViewWalker)(THIS_ IUIAutomationTreeWalker **) PURE;
142     STDMETHOD(get_RawViewCondition)(THIS_ IUIAutomationCondition **) PURE;
143     STDMETHOD(get_ControlViewCondition)(THIS_ IUIAutomationCondition **) PURE;
144     STDMETHOD(get_ContentViewCondition)(THIS_ IUIAutomationCondition **) PURE;
145     STDMETHOD(CreateCacheRequest)(THIS_ IUIAutomationCacheRequest **) PURE;
146     STDMETHOD(CreateTrueCondition)(THIS_ IUIAutomationCondition **) PURE;
147     STDMETHOD(CreateFalseCondition)(THIS_ IUIAutomationCondition **) PURE;
148     STDMETHOD(CreatePropertyCondition)(THIS_ PROPERTYID, VARIANT, IUIAutomationCondition **) PURE;
149     STDMETHOD(CreatePropertyConditionEx)(THIS_ PROPERTYID, VARIANT, enum PropertyConditionFlags, IUIAutomationCondition **) PURE;
150     STDMETHOD(CreateAndCondition)(THIS_ IUIAutomationCondition *, IUIAutomationCondition *, IUIAutomationCondition **) PURE;
151     STDMETHOD(CreateAndConditionFromArray)(THIS_ SAFEARRAY *, IUIAutomationCondition **) PURE;
152     STDMETHOD(CreateAndConditionFromNativeArray)(THIS_ IUIAutomationCondition **, int , IUIAutomationCondition **) PURE;
153     STDMETHOD(CreateOrCondition)(THIS_ IUIAutomationCondition *, IUIAutomationCondition *, IUIAutomationCondition **) PURE;
154     STDMETHOD(CreateOrConditionFromArray)(THIS_ SAFEARRAY *, IUIAutomationCondition **) PURE;
155     STDMETHOD(CreateOrConditionFromNativeArray)(THIS_ IUIAutomationCondition **, int , IUIAutomationCondition **) PURE;
156     STDMETHOD(CreateNotCondition)(THIS_ IUIAutomationCondition *, IUIAutomationCondition **) PURE;
157     STDMETHOD(AddAutomationEventHandler)(THIS_ EVENTID, IUIAutomationElement *, enum TreeScope, IUIAutomationCacheRequest *, IUIAutomationEventHandler *) PURE;
158     STDMETHOD(RemoveAutomationEventHandler)(THIS_ EVENTID, IUIAutomationElement *, IUIAutomationEventHandler *) PURE;
159     STDMETHOD(AddPropertyChangedEventHandlerNativeArray)(THIS_ IUIAutomationElement *, enum TreeScope, IUIAutomationCacheRequest *,
160                                                          IUIAutomationPropertyChangedEventHandler *, PROPERTYID *, int) PURE;
161     STDMETHOD(AddPropertyChangedEventHandler)(THIS_ IUIAutomationElement *, enum TreeScope, EVENTID, IUIAutomationCacheRequest *,
162                                               IUIAutomationPropertyChangedEventHandler *, SAFEARRAY *) PURE;
163     STDMETHOD(RemovePropertyChangedEventHandler)(THIS_ IUIAutomationElement *, IUIAutomationPropertyChangedEventHandler *) PURE;
164     STDMETHOD(AddStructureChangedEventHandler)(THIS_ IUIAutomationElement *, enum TreeScope, IUIAutomationCacheRequest *, IUIAutomationStructureChangedEventHandler *) PURE;
165     STDMETHOD(RemoveStructureChangedEventHandler)(THIS_ IUIAutomationElement *, IUIAutomationStructureChangedEventHandler *) PURE;
166     STDMETHOD(AddFocusChangedEventHandler)(THIS_ IUIAutomationCacheRequest *, IUIAutomationFocusChangedEventHandler *) PURE;
167     STDMETHOD(RemoveFocusChangedEventHandler)(THIS_ IUIAutomationFocusChangedEventHandler *) PURE;
168     STDMETHOD(RemoveAllEventHandlers)(THIS) PURE;
169     STDMETHOD(IntNativeArrayToSafeArray)(THIS_ int *, int, SAFEARRAY **) PURE;
170     STDMETHOD(IntSafeArrayToNativeArray)(THIS_ SAFEARRAY *, int **, int *) PURE;
171     STDMETHOD(RectToVariant)(THIS_ RECT, VARIANT *) PURE;
172     STDMETHOD(VariantToRect)(THIS_ VARIANT, RECT *) PURE;
173     STDMETHOD(SafeArrayToRectNativeArray)(THIS_ SAFEARRAY *, RECT **, int *) PURE;
174     STDMETHOD(CreateProxyFactoryEntry)(THIS_ IUIAutomationProxyFactory *, IUIAutomationProxyFactoryEntry **) PURE;
175     STDMETHOD(get_ProxyFactoryMapping)(THIS_ IUIAutomationProxyFactoryMapping **) PURE;
176     STDMETHOD(GetPropertyProgrammaticName)(THIS_ PROPERTYID, BSTR *) PURE;
177     STDMETHOD(GetPatternProgrammaticName)(THIS_ PATTERNID, BSTR *) PURE;
178     STDMETHOD(PollForPotentialSupportedPatterns)(THIS_ IUIAutomationElement *, SAFEARRAY **, SAFEARRAY **) PURE;
179     STDMETHOD(PollForPotentialSupportedProperties)(THIS_ IUIAutomationElement *, SAFEARRAY **, SAFEARRAY **) PURE;
180     STDMETHOD(CheckNotSupported)(THIS_ VARIANT, BOOL *) PURE;
181     STDMETHOD(get_ReservedNotSupportedValue)(THIS_ IUnknown **) PURE;
182     STDMETHOD(get_ReservedMixedAttributeValue)(THIS_ IUnknown **) PURE;
183     STDMETHOD(ElementFromIAccessible)(THIS_ IAccessible *, int, IUIAutomationElement **) PURE;
184     STDMETHOD(ElementFromIAccessibleBuildCache)(THIS_ IAccessible *, int, IUIAutomationCacheRequest *, IUIAutomationElement **) PURE;
185 };
186 #undef INTERFACE
187 
188 #define INTERFACE IUIAutomationElement
DECLARE_INTERFACE_(IUIAutomationElement,IUnknown)189 DECLARE_INTERFACE_(IUIAutomationElement, IUnknown)
190 {
191     STDMETHOD(SetFocus)(THIS) PURE;
192     STDMETHOD(GetRuntimeId)(THIS_ SAFEARRAY **) PURE;
193     STDMETHOD(FindFirst)(THIS_ enum TreeScope, IUIAutomationCondition *, IUIAutomationElement **) PURE;
194     STDMETHOD(FindAll)(THIS_ enum TreeScope, IUIAutomationCondition *, IUIAutomationElementArray **) PURE;
195     STDMETHOD(FindFirstBuildCache)(THIS_ enum TreeScope, IUIAutomationCondition *, IUIAutomationCacheRequest *, IUIAutomationElement **) PURE;
196     STDMETHOD(FindAllBuildCache)(THIS_ enum TreeScope, IUIAutomationCondition *, IUIAutomationCacheRequest *, IUIAutomationElementArray **) PURE;
197     STDMETHOD(BuildUpdatedCache)(THIS_ IUIAutomationCacheRequest *, IUIAutomationElement **) PURE;
198     STDMETHOD(GetCurrentPropertyValue)(THIS_ PROPERTYID, VARIANT *) PURE;
199     STDMETHOD(GetCurrentPropertyValueEx)(THIS_ PROPERTYID, BOOL, VARIANT *) PURE;
200     STDMETHOD(GetCachedPropertyValue)(THIS_ PROPERTYID, VARIANT *) PURE;
201     STDMETHOD(GetCachedPropertyValueEx)(THIS_ PROPERTYID, BOOL, VARIANT *) PURE;
202     STDMETHOD(GetCurrentPatternAs)(THIS_ PATTERNID, REFIID, void **) PURE;
203     STDMETHOD(GetCachedPatternAs)(THIS_ PATTERNID, REFIID, void **) PURE;
204     STDMETHOD(GetCurrentPattern)(THIS_ PATTERNID, IUnknown **) PURE;
205     STDMETHOD(GetCachedPattern)(THIS_ PATTERNID, IUnknown **) PURE;
206     STDMETHOD(GetCachedParent)(THIS_ IUIAutomationElement **) PURE;
207     STDMETHOD(GetCachedChildren)(THIS_ IUIAutomationElement **) PURE;
208     STDMETHOD(get_CurrentProcessId)(THIS_ int *) PURE;
209     STDMETHOD(get_CurrentControlType)(THIS_ CONTROLTYPEID *) PURE;
210     STDMETHOD(get_CurrentLocalizedControlType)(THIS_ BSTR *) PURE;
211     STDMETHOD(get_CurrentName)(THIS_ BSTR *) PURE;
212     STDMETHOD(get_CurrentAcceleratorKey)(THIS_ BSTR *) PURE;
213     STDMETHOD(get_CurrentAccessKey)(THIS_ BSTR *) PURE;
214     STDMETHOD(get_CurrentHasKeyboardFocus)(THIS_ BOOL *) PURE;
215     STDMETHOD(get_CurrentIsKeyboardFocusable)(THIS_ BOOL *) PURE;
216     STDMETHOD(get_CurrentIsEnabled)(THIS_ BOOL *) PURE;
217     STDMETHOD(get_CurrentAutomationId)(THIS_ BSTR *) PURE;
218     STDMETHOD(get_CurrentClassName)(THIS_ BSTR *) PURE;
219     STDMETHOD(get_CurrentHelpText)(THIS_ BSTR *) PURE;
220     STDMETHOD(get_CurrentCulture)(THIS_ int *) PURE;
221     STDMETHOD(get_CurrentIsControlElement)(THIS_ BOOL *) PURE;
222     STDMETHOD(get_CurrentIsContentElement)(THIS_ BOOL *) PURE;
223     STDMETHOD(get_CurrentIsPassword)(THIS_ BOOL *) PURE;
224     STDMETHOD(get_CurrentNativeWindowHandle)(THIS_ UIA_HWND *) PURE;
225     STDMETHOD(get_CurrentItemType)(THIS_ BSTR *) PURE;
226     STDMETHOD(get_CurrentIsOffscreen)(THIS_ BOOL *) PURE;
227     STDMETHOD(get_CurrentOrientation)(THIS_ enum OrientationType *) PURE;
228     STDMETHOD(get_CurrentFrameworkId)(THIS_ BSTR *) PURE;
229     STDMETHOD(get_CurrentIsRequiredForForm)(THIS_ BOOL *) PURE;
230     STDMETHOD(get_CurrentItemStatus)(THIS_ BSTR *) PURE;
231     STDMETHOD(get_CurrentBoundingRectangle)(THIS_ RECT *) PURE;
232     STDMETHOD(get_CurrentLabeledBy)(THIS_ IUIAutomationElement **) PURE;
233     STDMETHOD(get_CurrentAriaRole)(THIS_ BSTR *) PURE;
234     STDMETHOD(get_CurrentAriaProperties)(THIS_ BSTR *) PURE;
235     STDMETHOD(get_CurrentIsDataValidForForm)(THIS_ BOOL *) PURE;
236     STDMETHOD(get_CurrentControllerFor)(THIS_ IUIAutomationElementArray **) PURE;
237     STDMETHOD(get_CurrentDescribedBy)(THIS_ IUIAutomationElementArray **) PURE;
238     STDMETHOD(get_CurrentFlowsTo)(THIS_ IUIAutomationElementArray **) PURE;
239     STDMETHOD(get_CurrentProviderDescription)(THIS_ BSTR *) PURE;
240     STDMETHOD(get_CachedProcessId)(THIS_ int *) PURE;
241     STDMETHOD(get_CachedControlType)(THIS_ CONTROLTYPEID *) PURE;
242     STDMETHOD(get_CachedLocalizedControlType)(THIS_ BSTR *) PURE;
243     STDMETHOD(get_CachedName)(THIS_ BSTR *) PURE;
244     STDMETHOD(get_CachedAcceleratorKey)(THIS_ BSTR *) PURE;
245     STDMETHOD(get_CachedAccessKey)(THIS_ BSTR *) PURE;
246     STDMETHOD(get_CachedHasKeyboardFocus)(THIS_ BOOL *) PURE;
247     STDMETHOD(get_CachedIsKeyboardFocusable)(THIS_ BOOL *) PURE;
248     STDMETHOD(get_CachedIsEnabled)(THIS_ BOOL *) PURE;
249     STDMETHOD(get_CachedAutomationId)(THIS_ BSTR *) PURE;
250     STDMETHOD(get_CachedClassName)(THIS_ BSTR *) PURE;
251     STDMETHOD(get_CachedHelpText)(THIS_ BSTR *) PURE;
252     STDMETHOD(get_CachedCulture)(THIS_ int *) PURE;
253     STDMETHOD(get_CachedIsControlElement)(THIS_ BOOL *) PURE;
254     STDMETHOD(get_CachedIsContentElement)(THIS_ BOOL *) PURE;
255     STDMETHOD(get_CachedIsPassword)(THIS_ BOOL *) PURE;
256     STDMETHOD(get_CachedNativeWindowHandle)(THIS_ UIA_HWND *) PURE;
257     STDMETHOD(get_CachedItemType)(THIS_ BSTR *) PURE;
258     STDMETHOD(get_CachedIsOffscreen)(THIS_ BOOL *) PURE;
259     STDMETHOD(get_CachedOrientation)(THIS_ enum OrientationType *) PURE;
260     STDMETHOD(get_CachedFrameworkId)(THIS_ BSTR *) PURE;
261     STDMETHOD(get_CachedIsRequiredForForm)(THIS_ BOOL *) PURE;
262     STDMETHOD(get_CachedItemStatus)(THIS_ BSTR *) PURE;
263     STDMETHOD(get_CachedBoundingRectangle)(THIS_ RECT *) PURE;
264     STDMETHOD(get_CachedLabeledBy)(THIS_ IUIAutomationElement **) PURE;
265     STDMETHOD(get_CachedAriaRole)(THIS_ BSTR *) PURE;
266     STDMETHOD(get_CachedAriaProperties)(THIS_ BSTR *) PURE;
267     STDMETHOD(get_CachedIsDataValidForForm)(THIS_ BOOL *) PURE;
268     STDMETHOD(get_CachedControllerFor)(THIS_ IUIAutomationElementArray **) PURE;
269     STDMETHOD(get_CachedDescribedBy)(THIS_ IUIAutomationElementArray **) PURE;
270     STDMETHOD(get_CachedFlowsTo)(THIS_ IUIAutomationElementArray **) PURE;
271     STDMETHOD(get_CachedProviderDescription)(THIS_ BSTR *) PURE;
272 };
273 #undef INTERFACE
274 
275 #define INTERFACE IUIAutomationTextPattern
DECLARE_INTERFACE_(IUIAutomationTextPattern,IUnknown)276 DECLARE_INTERFACE_(IUIAutomationTextPattern, IUnknown)
277 {
278     STDMETHOD(RangeFromPoint)(THIS_ POINT, IUIAutomationTextRange **) PURE;
279     STDMETHOD(RangeFromChild)(THIS_ IUIAutomationElement *, IUIAutomationTextRange **) PURE;
280     STDMETHOD(GetSelection)(THIS_ IUIAutomationTextRangeArray **) PURE;
281     STDMETHOD(GetVisibleRanges)(THIS_ IUIAutomationTextRangeArray **) PURE;
282     STDMETHOD(get_DocumentRange)(THIS_ IUIAutomationTextRange **) PURE;
283     STDMETHOD(get_SupportedTextSelection)(THIS_ enum SupportedTextSelection *) PURE;
284 };
285 #undef INTERFACE
286 
287 #define INTERFACE IUIAutomationTreeWalker
DECLARE_INTERFACE_(IUIAutomationTreeWalker,IUnknown)288 DECLARE_INTERFACE_(IUIAutomationTreeWalker, IUnknown)
289 {
290     STDMETHOD(GetParentElement)(THIS_ IUIAutomationElement *, IUIAutomationElement **) PURE;
291     STDMETHOD(GetFirstChildElement)(THIS_ IUIAutomationElement *, IUIAutomationElement **) PURE;
292     STDMETHOD(GetLastChildElement)(THIS_ IUIAutomationElement *, IUIAutomationElement **) PURE;
293     STDMETHOD(GetNextSiblingElement)(THIS_ IUIAutomationElement *, IUIAutomationElement **) PURE;
294     STDMETHOD(GetPreviousSiblingElement)(THIS_ IUIAutomationElement *, IUIAutomationElement **) PURE;
295     STDMETHOD(NormalizeElement)(THIS_ IUIAutomationElement *, IUIAutomationElement **) PURE;
296     STDMETHOD(GetParentElementBuildCache)(THIS_ IUIAutomationElement *, IUIAutomationCacheRequest *, IUIAutomationElement **) PURE;
297     STDMETHOD(GetFirstChildElementBuildCache)(THIS_ IUIAutomationElement *, IUIAutomationCacheRequest *, IUIAutomationElement **) PURE;
298     STDMETHOD(GetLastChildElementBuildCache)(THIS_ IUIAutomationElement *, IUIAutomationCacheRequest *, IUIAutomationElement **) PURE;
299     STDMETHOD(GetNextSiblingElementBuildCache)(THIS_ IUIAutomationElement *, IUIAutomationCacheRequest *, IUIAutomationElement **) PURE;
300     STDMETHOD(GetPreviousSiblingElementBuildCache)(THIS_ IUIAutomationElement *, IUIAutomationCacheRequest *, IUIAutomationElement **) PURE;
301     STDMETHOD(NormalizeElementBuildCache)(THIS_ IUIAutomationElement *, IUIAutomationCacheRequest *, IUIAutomationElement **) PURE;
302     STDMETHOD(get_Condition)(THIS_ IUIAutomationCondition **) PURE;
303 };
304 #undef INTERFACE
305 
306 #define INTERFACE IUIAutomationTextRange
DECLARE_INTERFACE_(IUIAutomationTextRange,IUnknown)307 DECLARE_INTERFACE_(IUIAutomationTextRange, IUnknown)
308 {
309     STDMETHOD(Clone)(THIS_ IUIAutomationTextRange **) PURE;
310     STDMETHOD(Compare)(THIS_ IUIAutomationTextRange *, BOOL *) PURE;
311     STDMETHOD(CompareEndpoints)(THIS_ enum TextPatternRangeEndpoint, IUIAutomationTextRange *, enum TextPatternRangeEndpoint, int *) PURE;
312     STDMETHOD(ExpandToEnclosingUnit)(THIS_ enum TextUnit) PURE;
313     STDMETHOD(FindAttribute)(THIS_ TEXTATTRIBUTEID, VARIANT, BOOL, IUIAutomationTextRange **) PURE;
314     STDMETHOD(FindText)(THIS_ BSTR, BOOL, BOOL, IUIAutomationTextRange **) PURE;
315     STDMETHOD(GetAttributeValue)(THIS_ TEXTATTRIBUTEID, VARIANT *) PURE;
316     STDMETHOD(GetBoundingRectangles)(THIS_ SAFEARRAY **) PURE;
317     STDMETHOD(GetEnclosingElement)(THIS_ IUIAutomationElement **) PURE;
318     STDMETHOD(GetText)(THIS_ int, BSTR *) PURE;
319     STDMETHOD(Move)(THIS_ enum TextUnit, int, int *) PURE;
320     STDMETHOD(MoveEndpointByUnit)(THIS_ enum TextPatternRangeEndpoint, enum TextUnit, int *) PURE;
321     STDMETHOD(MoveEndpointByRange)(THIS_ enum TextPatternRangeEndpoint, IUIAutomationTextRange *, enum TextPatternRangeEndpoint) PURE;
322     STDMETHOD(Select)(THIS) PURE;
323     STDMETHOD(AddToSelection)(THIS) PURE;
324     STDMETHOD(RemoveFromSelection)(THIS) PURE;
325     STDMETHOD(ScrollIntoView)(THIS_ BOOL) PURE;
326     STDMETHOD(GetChildren)(THIS_ IUIAutomationElementArray **) PURE;
327 };
328 #undef INTERFACE
329 
330 #ifdef __cplusplus
331 }
332 #endif
333 
334 #endif // UIAUTO_HH
335