1use ctypes::{c_double, c_int, c_long, c_void};
8use shared::guiddef::GUID;
9use shared::minwindef::{BOOL, DWORD, UINT};
10use shared::windef::HWND;
11use shared::winerror::HRESULT;
12use shared::wtypes::BSTR;
13use um::oaidl::{SAFEARRAY, VARIANT};
14use um::oleacc::IAccessible;
15use um::unknwnbase::{IUnknown, IUnknownVtbl};
16use um::winnt::LPCWSTR;
17ENUM!{enum NavigateDirection {
18 NavigateDirection_Parent = 0,
19 NavigateDirection_NextSibling = 1,
20 NavigateDirection_PreviousSibling = 2,
21 NavigateDirection_FirstChild = 3,
22 NavigateDirection_LastChild = 4,
23}}
24ENUM!{enum ProviderOptions {
25 ProviderOptions_ClientSideProvider = 0x1,
26 ProviderOptions_ServerSideProvider = 0x2,
27 ProviderOptions_NonClientAreaProvider = 0x4,
28 ProviderOptions_OverrideProvider = 0x8,
29 ProviderOptions_ProviderOwnsSetFocus = 0x10,
30 ProviderOptions_UseComThreading = 0x20,
31 ProviderOptions_RefuseNonClientSupport = 0x40,
32 ProviderOptions_HasNativeIAccessible = 0x80,
33 ProviderOptions_UseClientCoordinates = 0x100,
34}}
35ENUM!{enum StructureChangeType {
37 StructureChangeType_ChildAdded = 0,
38 StructureChangeType_ChildRemoved = StructureChangeType_ChildAdded + 1,
39 StructureChangeType_ChildrenInvalidated = StructureChangeType_ChildRemoved + 1,
40 StructureChangeType_ChildrenBulkAdded = StructureChangeType_ChildrenInvalidated + 1,
41 StructureChangeType_ChildrenBulkRemoved = StructureChangeType_ChildrenBulkAdded + 1,
42 StructureChangeType_ChildrenReordered = StructureChangeType_ChildrenBulkRemoved + 1,
43}}
44ENUM!{enum TextEditChangeType {
45 TextEditChangeType_None = 0,
46 TextEditChangeType_AutoCorrect = 1,
47 TextEditChangeType_Composition = 2,
48 TextEditChangeType_CompositionFinalized = 3,
49 TextEditChangeType_AutoComplete = 4,
50}}
51ENUM!{enum OrientationType {
52 OrientationType_None = 0,
53 OrientationType_Horizontal = 1,
54 OrientationType_Vertical = 2,
55}}
56ENUM!{enum DockPosition {
57 DockPosition_Top = 0,
58 DockPosition_Left = 1,
59 DockPosition_Bottom = 2,
60 DockPosition_Right = 3,
61 DockPosition_Fill = 4,
62 DockPosition_None = 5,
63}}
64ENUM!{enum ExpandCollapseState {
65 ExpandCollapseState_Collapsed = 0,
66 ExpandCollapseState_Expanded = 1,
67 ExpandCollapseState_PartiallyExpanded = 2,
68 ExpandCollapseState_LeafNode = 3,
69}}
70ENUM!{enum ScrollAmount {
71 ScrollAmount_LargeDecrement = 0,
72 ScrollAmount_SmallDecrement = 1,
73 ScrollAmount_NoAmount = 2,
74 ScrollAmount_LargeIncrement = 3,
75 ScrollAmount_SmallIncrement = 4,
76}}
77ENUM!{enum RowOrColumnMajor {
78 RowOrColumnMajor_RowMajor = 0,
79 RowOrColumnMajor_ColumnMajor = 1,
80 RowOrColumnMajor_Indeterminate = 2,
81}}
82ENUM!{enum ToggleState {
83 ToggleState_Off = 0,
84 ToggleState_On = 1,
85 ToggleState_Indeterminate = 2,
86}}
87ENUM!{enum WindowVisualState {
88 WindowVisualState_Normal = 0,
89 WindowVisualState_Maximized = 1,
90 WindowVisualState_Minimized = 2,
91}}
92ENUM!{enum SynchronizedInputType {
93 SynchronizedInputType_KeyUp = 0x1,
94 SynchronizedInputType_KeyDown = 0x2,
95 SynchronizedInputType_LeftMouseUp = 0x4,
96 SynchronizedInputType_LeftMouseDown = 0x8,
97 SynchronizedInputType_RightMouseUp = 0x10,
98 SynchronizedInputType_RightMouseDown = 0x20,
99}}
100ENUM!{enum WindowInteractionState {
102 WindowInteractionState_Running = 0,
103 WindowInteractionState_Closing = 1,
104 WindowInteractionState_ReadyForUserInteraction = 2,
105 WindowInteractionState_BlockedByModalWindow = 3,
106 WindowInteractionState_NotResponding = 4,
107}}
108ENUM!{enum SayAsInterpretAs {
109 SayAsInterpretAs_None = 0,
110 SayAsInterpretAs_Spell = 1,
111 SayAsInterpretAs_Cardinal = 2,
112 SayAsInterpretAs_Ordinal = 3,
113 SayAsInterpretAs_Number = 4,
114 SayAsInterpretAs_Date = 5,
115 SayAsInterpretAs_Time = 6,
116 SayAsInterpretAs_Telephone = 7,
117 SayAsInterpretAs_Currency = 8,
118 SayAsInterpretAs_Net = 9,
119 SayAsInterpretAs_Url = 10,
120 SayAsInterpretAs_Address = 11,
121 SayAsInterpretAs_Alphanumeric = 12,
122 SayAsInterpretAs_Name = 13,
123 SayAsInterpretAs_Media = 14,
124 SayAsInterpretAs_Date_MonthDayYear = 15,
125 SayAsInterpretAs_Date_DayMonthYear = 16,
126 SayAsInterpretAs_Date_YearMonthDay = 17,
127 SayAsInterpretAs_Date_YearMonth = 18,
128 SayAsInterpretAs_Date_MonthYear = 19,
129 SayAsInterpretAs_Date_DayMonth = 20,
130 SayAsInterpretAs_Date_MonthDay = 21,
131 SayAsInterpretAs_Date_Year = 22,
132 SayAsInterpretAs_Time_HoursMinutesSeconds12 = 23,
133 SayAsInterpretAs_Time_HoursMinutes12 = 24,
134 SayAsInterpretAs_Time_HoursMinutesSeconds24 = 25,
135 SayAsInterpretAs_Time_HoursMinutes24 = 26,
136}}
137ENUM!{enum TextUnit {
138 TextUnit_Character = 0,
139 TextUnit_Format = 1,
140 TextUnit_Word = 2,
141 TextUnit_Line = 3,
142 TextUnit_Paragraph = 4,
143 TextUnit_Page = 5,
144 TextUnit_Document = 6,
145}}
146ENUM!{enum TextPatternRangeEndpoint {
147 TextPatternRangeEndpoint_Start = 0,
148 TextPatternRangeEndpoint_End = 1,
149}}
150ENUM!{enum SupportedTextSelection {
151 SupportedTextSelection_None = 0,
152 SupportedTextSelection_Single = 1,
153 SupportedTextSelection_Multiple = 2,
154}}
155ENUM!{enum LiveSetting {
156 Off = 0,
157 Polite = 1,
158 Assertive = 2,
159}}
160ENUM!{enum ActiveEnd {
161 ActiveEnd_None = 0,
162 ActiveEnd_Start = 1,
163 ActiveEnd_End = 2,
164}}
165ENUM!{enum CaretPosition {
166 CaretPosition_Unknown = 0,
167 CaretPosition_EndOfLine = 1,
168 CaretPosition_BeginningOfLine = 2,
169}}
170ENUM!{enum CaretBidiMode {
171 CaretBidiMode_LTR = 0,
172 CaretBidiMode_RTL = 1,
173}}
174ENUM!{enum ZoomUnit {
175 ZoomUnit_NoAmount = 0,
176 ZoomUnit_LargeDecrement = 1,
177 ZoomUnit_SmallDecrement = 2,
178 ZoomUnit_LargeIncrement = 3,
179 ZoomUnit_SmallIncrement = 4,
180}}
181pub type AnimationStyle = i32;
182pub const AnimationStyle_None: AnimationStyle = 0;
183pub const AnimationStyle_LasVegasLights: AnimationStyle = 1;
184pub const AnimationStyle_BlinkingBackground: AnimationStyle = 2;
185pub const AnimationStyle_SparkleText: AnimationStyle = 3;
186pub const AnimationStyle_MarchingBlackAnts: AnimationStyle = 4;
187pub const AnimationStyle_MarchingRedAnts: AnimationStyle = 5;
188pub const AnimationStyle_Shimmer: AnimationStyle = 6;
189pub const AnimationStyle_Other: AnimationStyle = -1;
190pub type BulletStyle = i32;
191pub const BulletStyle_None: BulletStyle = 0;
192pub const BulletStyle_HollowRoundBullet: BulletStyle = 1;
193pub const BulletStyle_FilledRoundBullet: BulletStyle = 2;
194pub const BulletStyle_HollowSquareBullet: BulletStyle = 3;
195pub const BulletStyle_FilledSquareBullet: BulletStyle = 4;
196pub const BulletStyle_DashBullet: BulletStyle = 5;
197pub const BulletStyle_Other: BulletStyle = -1;
198pub type CapStyle = i32;
199pub const CapStyle_None: CapStyle = 0;
200pub const CapStyle_SmallCap: CapStyle = 1;
201pub const CapStyle_AllCap: CapStyle = 2;
202pub const CapStyle_AllPetiteCaps: CapStyle = 3;
203pub const CapStyle_PetiteCaps: CapStyle = 4;
204pub const CapStyle_Unicase: CapStyle = 5;
205pub const CapStyle_Titling: CapStyle = 6;
206pub const CapStyle_Other: CapStyle = -1;
207ENUM!{enum FillType {
208 FillType_None = 0,
209 FillType_Color = 1,
210 FillType_Gradient = 2,
211 FillType_Picture = 3,
212 FillType_Pattern = 4,
213}}
214ENUM!{enum FlowDirections {
215 FlowDirections_Default = 0,
216 FlowDirections_RightToLeft = 0x1,
217 FlowDirections_BottomToTop = 0x2,
218 FlowDirections_Vertical = 0x4,
219}}
220ENUM!{enum HorizontalTextAlignment {
221 HorizontalTextAlignment_Left = 0,
222 HorizontalTextAlignment_Centered = 1,
223 HorizontalTextAlignment_Right = 2,
224 HorizontalTextAlignment_Justified = 3,
225}}
226ENUM!{enum OutlineStyles {
227 OutlineStyles_None = 0,
228 OutlineStyles_Outline = 1,
229 OutlineStyles_Shadow = 2,
230 OutlineStyles_Engraved = 4,
231 OutlineStyles_Embossed = 8,
232}}
233pub type TextDecorationLineStyle = i32;
234pub const TextDecorationLineStyle_None: TextDecorationLineStyle = 0;
235pub const TextDecorationLineStyle_Single: TextDecorationLineStyle = 1;
236pub const TextDecorationLineStyle_WordsOnly: TextDecorationLineStyle = 2;
237pub const TextDecorationLineStyle_Double: TextDecorationLineStyle = 3;
238pub const TextDecorationLineStyle_Dot: TextDecorationLineStyle = 4;
239pub const TextDecorationLineStyle_Dash: TextDecorationLineStyle = 5;
240pub const TextDecorationLineStyle_DashDot: TextDecorationLineStyle = 6;
241pub const TextDecorationLineStyle_DashDotDot: TextDecorationLineStyle = 7;
242pub const TextDecorationLineStyle_Wavy: TextDecorationLineStyle = 8;
243pub const TextDecorationLineStyle_ThickSingle: TextDecorationLineStyle = 9;
244pub const TextDecorationLineStyle_DoubleWavy: TextDecorationLineStyle = 11;
245pub const TextDecorationLineStyle_ThickWavy: TextDecorationLineStyle = 12;
246pub const TextDecorationLineStyle_LongDash: TextDecorationLineStyle = 13;
247pub const TextDecorationLineStyle_ThickDash: TextDecorationLineStyle = 14;
248pub const TextDecorationLineStyle_ThickDashDot: TextDecorationLineStyle = 15;
249pub const TextDecorationLineStyle_ThickDashDotDot: TextDecorationLineStyle = 16;
250pub const TextDecorationLineStyle_ThickDot: TextDecorationLineStyle = 17;
251pub const TextDecorationLineStyle_ThickLongDash: TextDecorationLineStyle = 18;
252pub const TextDecorationLineStyle_Other: TextDecorationLineStyle = -1;
253ENUM!{enum VisualEffects {
254 VisualEffects_None = 0,
255 VisualEffects_Shadow = 1 << 0,
256 VisualEffects_Reflection = 1 << 1,
257 VisualEffects_Glow = 1 << 2,
258 VisualEffects_SoftEdges = 1 << 3,
259 VisualEffects_Bevel = 1 << 4,
260}}
261ENUM!{enum NotificationProcessing {
262 NotificationProcessing_ImportantAll = 0,
263 NotificationProcessing_ImportantMostRecent = 1,
264 NotificationProcessing_All = 2,
265 NotificationProcessing_MostRecent = 3,
266 NotificationProcessing_CurrentThenMostRecent = 4,
267}}
268ENUM!{enum NotificationKind {
269 NotificationKind_ItemAdded = 0,
270 NotificationKind_ItemRemoved = 1,
271 NotificationKind_ActionCompleted = 2,
272 NotificationKind_ActionAborted = 3,
273 NotificationKind_Other = 4,
274}}
275pub type PROPERTYID = c_int;
276pub type PATTERNID = c_int;
277pub type EVENTID = c_int;
278pub type TEXTATTRIBUTEID = c_int;
279pub type CONTROLTYPEID = c_int;
280pub type LANDMARKTYPEID = c_int;
281pub type METADATAID = c_int;
282pub type HEADINGLEVELID = c_int;
283STRUCT!{struct UiaRect {
284 left: c_double,
285 top: c_double,
286 width: c_double,
287 height: c_double,
288}}
289STRUCT!{struct UiaPoint {
290 x: c_double,
291 y: c_double,
292}}
293STRUCT!{struct UiaChangeInfo {
294 uiaId: c_int,
295 payload: VARIANT,
296 extraInfo: VARIANT,
297}}
298ENUM!{enum UIAutomationType {
299 UIAutomationType_Int = 0x1,
300 UIAutomationType_Bool = 0x2,
301 UIAutomationType_String = 0x3,
302 UIAutomationType_Double = 0x4,
303 UIAutomationType_Point = 0x5,
304 UIAutomationType_Rect = 0x6,
305 UIAutomationType_Element = 0x7,
306 UIAutomationType_Array = 0x10000,
307 UIAutomationType_Out = 0x20000,
308 UIAutomationType_IntArray = UIAutomationType_Int | UIAutomationType_Array,
309 UIAutomationType_BoolArray = UIAutomationType_Bool | UIAutomationType_Array,
310 UIAutomationType_StringArray = UIAutomationType_String | UIAutomationType_Array,
311 UIAutomationType_DoubleArray = UIAutomationType_Double | UIAutomationType_Array,
312 UIAutomationType_PointArray = UIAutomationType_Point | UIAutomationType_Array,
313 UIAutomationType_RectArray = UIAutomationType_Rect | UIAutomationType_Array,
314 UIAutomationType_ElementArray = UIAutomationType_Element | UIAutomationType_Array,
315 UIAutomationType_OutInt = UIAutomationType_Int | UIAutomationType_Out,
316 UIAutomationType_OutBool = UIAutomationType_Bool | UIAutomationType_Out,
317 UIAutomationType_OutString = UIAutomationType_String | UIAutomationType_Out,
318 UIAutomationType_OutDouble = UIAutomationType_Double | UIAutomationType_Out,
319 UIAutomationType_OutPoint = UIAutomationType_Point | UIAutomationType_Out,
320 UIAutomationType_OutRect = UIAutomationType_Rect | UIAutomationType_Out,
321 UIAutomationType_OutElement = UIAutomationType_Element | UIAutomationType_Out,
322 UIAutomationType_OutIntArray = (UIAutomationType_Int | UIAutomationType_Array)
323 | UIAutomationType_Out,
324 UIAutomationType_OutBoolArray = (UIAutomationType_Bool | UIAutomationType_Array)
325 | UIAutomationType_Out,
326 UIAutomationType_OutStringArray = (UIAutomationType_String | UIAutomationType_Array)
327 | UIAutomationType_Out,
328 UIAutomationType_OutDoubleArray = (UIAutomationType_Double | UIAutomationType_Array)
329 | UIAutomationType_Out,
330 UIAutomationType_OutPointArray = (UIAutomationType_Point | UIAutomationType_Array)
331 | UIAutomationType_Out,
332 UIAutomationType_OutRectArray = (UIAutomationType_Rect | UIAutomationType_Array)
333 | UIAutomationType_Out,
334 UIAutomationType_OutElementArray = (UIAutomationType_Element | UIAutomationType_Array)
335 | UIAutomationType_Out,
336}}
337STRUCT!{struct UIAutomationParameter {
339 type_: UIAutomationType,
340 pData: *mut c_void,
341}}
342STRUCT!{struct UIAutomationPropertyInfo {
343 guid: GUID,
344 pProgrammaticName: LPCWSTR,
345 type_: UIAutomationType,
346}}
347STRUCT!{struct UIAutomationEventInfo {
348 guid: GUID,
349 pProgrammaticName: LPCWSTR,
350}}
351STRUCT!{struct UIAutomationMethodInfo {
352 pProgrammaticName: LPCWSTR,
353 doSetFocus: BOOL,
354 cInParameters: UINT,
355 cOutParameters: UINT,
356 pParameterTypes: *mut UIAutomationType,
357 pParameterNames: *mut LPCWSTR,
358}}
359STRUCT!{struct UIAutomationPatternInfo {
360 guid: GUID,
361 pProgrammaticName: LPCWSTR,
362 providerInterfaceId: GUID,
363 clientInterfaceId: GUID,
364 cProperties: UINT,
365 pProperties: *mut UIAutomationPropertyInfo,
366 cMethods: UINT,
367 pMethods: *mut UIAutomationMethodInfo,
368 cEvents: UINT,
369 pEvents: *mut UIAutomationEventInfo,
370 pPatternHandler: *mut IUIAutomationPatternHandler,
371}}
372pub const UIA_ScrollPatternNoScroll: c_double = -1.0;
373RIDL!{#[uuid(0xd6dd68d1, 0x86fd, 0x4332, 0x86, 0x66, 0x9a, 0xbe, 0xde, 0xa2, 0xd2, 0x4c)]
374interface IRawElementProviderSimple(IRawElementProviderSimpleVtbl): IUnknown(IUnknownVtbl) {
375 fn get_ProviderOptions(
376 pRetVal: *mut ProviderOptions,
377 ) -> HRESULT,
378 fn GetPatternProvider(
379 patternId: PATTERNID,
380 pRetVal: *mut *mut IUnknown,
381 ) -> HRESULT,
382 fn GetPropertyValue(
383 propertyId: PROPERTYID,
384 pRetVal: *mut *mut VARIANT,
385 ) -> HRESULT,
386 fn get_HostRawElementProvider(
387 pRetVal: *mut *mut IRawElementProviderSimple,
388 ) -> HRESULT,
389}}
390RIDL!{#[uuid(0xf8b80ada, 0x2c44, 0x48d0, 0x89, 0xbe, 0x5f, 0xf2, 0x3c, 0x9c, 0xd8, 0x75)]
391interface IAccessibleEx(IAccessibleExVtbl): IUnknown(IUnknownVtbl) {
392 fn GetObjectForChild(
393 idChild: c_long,
394 pRetVal: *mut *mut IAccessibleEx,
395 ) -> HRESULT,
396 fn GetIAccessiblePair(
397 ppAcc: *mut *mut IAccessible,
398 pidChild: *mut c_long,
399 ) -> HRESULT,
400 fn GetRuntimeId(
401 pRetVal: *mut *mut SAFEARRAY,
402 ) -> HRESULT,
403 fn ConvertReturnedElement (
404 pIn: *mut IRawElementProviderSimple,
405 ppRetValOut: *mut *mut IAccessibleEx,
406 ) -> HRESULT,
407}}
408RIDL!{#[uuid(0xa0a839a9, 0x8da1, 0x4a82, 0x80, 0x6a, 0x8e, 0x0d, 0x44, 0xe7, 0x9f, 0x56)]
409interface IRawElementProviderSimple2(IRawElementProviderSimple2Vtbl):
410 IRawElementProviderSimple(IRawElementProviderSimpleVtbl) {
411 fn ShowContextMenu() -> HRESULT,
412}}
413RIDL!{#[uuid(0xfcf5d820, 0xd7ec, 0x4613, 0xbd, 0xf6, 0x42, 0xa8, 0x4c, 0xe7, 0xda, 0xaf)]
414interface IRawElementProviderSimple3(IRawElementProviderSimple3Vtbl):
415 IRawElementProviderSimple2(IRawElementProviderSimple2Vtbl) {
416 fn GetMetadataValue(
417 targetId: c_int,
418 metadataId: METADATAID,
419 returnVal: *mut VARIANT,
420 ) -> HRESULT,
421}}
422RIDL!{#[uuid(0x620ce2a5, 0xab8f, 0x40a9, 0x86, 0xcb, 0xde, 0x3c, 0x75, 0x59, 0x9b, 0x58)]
423interface IRawElementProviderFragmentRoot(IRawElementProviderFragmentRootVtbl):
424 IUnknown(IUnknownVtbl) {
425 fn ElementProviderFromPoint(
426 x: c_double,
427 y: c_double,
428 pRetVal: *mut *mut IRawElementProviderFragment,
429 ) -> HRESULT,
430 fn GetFocus(
431 pRetVal: *mut *mut IRawElementProviderFragment,
432 ) -> HRESULT,
433}}
434RIDL!{#[uuid(0xf7063da8, 0x8359, 0x439c, 0x92, 0x97, 0xbb, 0xc5, 0x29, 0x9a, 0x7d, 0x87)]
435interface IRawElementProviderFragment(IRawElementProviderFragmentVtbl): IUnknown(IUnknownVtbl) {
436 fn Navigate(
437 direction: NavigateDirection,
438 pRetVal: *mut *mut IRawElementProviderFragment,
439 ) -> HRESULT,
440 fn GetRuntimeId(
441 pRetVal: *mut *mut SAFEARRAY,
442 ) -> HRESULT,
443 fn get_BoundingRectangle(
444 pRetVal: *mut UiaRect,
445 ) -> HRESULT,
446 fn GetEmbeddedFragmentRoots(
447 pRetVal: *mut *mut SAFEARRAY,
448 ) -> HRESULT,
449 fn SetFocus() -> HRESULT,
450 fn get_FragmentRoot(
451 pRetVal: *mut *mut IRawElementProviderFragmentRoot,
452 ) -> HRESULT,
453}}
454RIDL!{#[uuid(0xa407b27b, 0x0f6d, 0x4427, 0x92, 0x92, 0x47, 0x3c, 0x7b, 0xf9, 0x32, 0x58)]
455interface IRawElementProviderAdviseEvents(IRawElementProviderAdviseEventsVtbl):
456 IUnknown(IUnknownVtbl) {
457 fn AdviseEventAdded(
458 eventId: EVENTID,
459 propertyIDs: *mut SAFEARRAY,
460 ) -> HRESULT,
461 fn AdviseEventRemoved(
462 eventId: EVENTID,
463 propertyIDs: *mut SAFEARRAY,
464 ) -> HRESULT,
465}}
466RIDL!{#[uuid(0x1d5df27c, 0x8947, 0x4425, 0xb8, 0xd9, 0x79, 0x78, 0x7b, 0xb4, 0x60, 0xb8)]
467interface IRawElementProviderHwndOverride(IRawElementProviderHwndOverrideVtbl):
468 IUnknown(IUnknownVtbl) {
469 fn GetOverrideProviderForHwnd(
470 hwnd: HWND,
471 pRetVal: *mut *mut IRawElementProviderSimple,
472 ) -> HRESULT,
473}}
474RIDL!{#[uuid(0x4fd82b78, 0xa43e, 0x46ac, 0x98, 0x03, 0x0a, 0x69, 0x69, 0xc7, 0xc1, 0x83)]
475interface IProxyProviderWinEventSink(IProxyProviderWinEventSinkVtbl): IUnknown(IUnknownVtbl) {
476 fn AddAutomationPropertyChangedEvent(
477 pProvider: *mut IRawElementProviderSimple,
478 id: PROPERTYID,
479 newValue: VARIANT,
480 ) -> HRESULT,
481 fn AddAutomationEvent(
482 pProvider: *mut IRawElementProviderSimple,
483 id: EVENTID,
484 ) -> HRESULT,
485 fn AddStructureChangedEvent(
486 pProvider: *mut IRawElementProviderSimple,
487 structureChangeType: StructureChangeType,
488 runtimeId: *mut SAFEARRAY,
489 ) -> HRESULT,
490}}
491RIDL!{#[uuid(0x89592ad4, 0xf4e0, 0x43d5, 0xa3, 0xb6, 0xba, 0xd7, 0xe1, 0x11, 0xb4, 0x35)]
492interface IProxyProviderWinEventHandler(IProxyProviderWinEventHandlerVtbl):
493 IUnknown(IUnknownVtbl) {
494 fn RespondToWinEvent(
495 idWinEvent: DWORD,
496 hwnd: HWND,
497 idObject: c_long,
498 idChild: c_long,
499 pSink: *mut IProxyProviderWinEventSink,
500 ) -> HRESULT,
501}}
502RIDL!{#[uuid(0x0a2a93cc, 0xbfad, 0x42ac, 0x9b, 0x2e, 0x09, 0x91, 0xfb, 0x0d, 0x3e, 0xa0)]
503interface IRawElementProviderWindowlessSite(IRawElementProviderWindowlessSiteVtbl):
504 IUnknown(IUnknownVtbl) {
505 fn GetAdjacentFragment(
506 direction: NavigateDirection,
507 ppParent: *mut *mut IRawElementProviderFragment,
508 ) -> HRESULT,
509 fn GetRuntimeIdPrefix(
510 pRetVal: *mut *mut SAFEARRAY,
511 ) -> HRESULT,
512}}
513RIDL!{#[uuid(0x33ac331b, 0x943e, 0x4020, 0xb2, 0x95, 0xdb, 0x37, 0x78, 0x49, 0x74, 0xa3)]
514interface IAccessibleHostingElementProviders(IAccessibleHostingElementProvidersVtbl):
515 IUnknown(IUnknownVtbl) {
516 fn GetEmbeddedFragmentRoots(
517 pRetVal: *mut *mut SAFEARRAY,
518 ) -> HRESULT,
519 fn GetObjectIdForProvider(
520 pProvider: *mut IRawElementProviderSimple,
521 pidObject: *mut c_long,
522 ) -> HRESULT,
523}}
524RIDL!{#[uuid(0x24be0b07, 0xd37d, 0x487a, 0x98, 0xcf, 0xa1, 0x3e, 0xd4, 0x65, 0xe9, 0xb3)]
525interface IRawElementProviderHostingAccessibles(IRawElementProviderHostingAccessiblesVtbl):
526 IUnknown(IUnknownVtbl) {
527 fn GetEmbeddedAccessibles(
528 pRetVal: *mut *mut SAFEARRAY,
529 ) -> HRESULT,
530}}
531RIDL!{#[uuid(0x159bc72c, 0x4ad3, 0x485e, 0x96, 0x37, 0xd7, 0x05, 0x2e, 0xdf, 0x01, 0x46)]
532interface IDockProvider(IDockProviderVtbl): IUnknown(IUnknownVtbl) {
533 fn SetDockPosition(
534 dockPosition: DockPosition,
535 ) -> HRESULT,
536 fn get_DockPosition(
537 pRetVal: *mut DockPosition,
538 ) -> HRESULT,
539}}
540RIDL!{#[uuid(0xd847d3a5, 0xcab0, 0x4a98, 0x8c, 0x32, 0xec, 0xb4, 0x5c, 0x59, 0xad, 0x24)]
541interface IExpandCollapseProvider(IExpandCollapseProviderVtbl): IUnknown(IUnknownVtbl) {
542 fn Expand() -> HRESULT,
543 fn Collapse() -> HRESULT,
544 fn get_ExpandCollapseState(
545 pRetVal: *mut ExpandCollapseState,
546 ) -> HRESULT,
547}}
548RIDL!{#[uuid(0xb17d6187, 0x0907, 0x464b, 0xa1, 0x68, 0x0e, 0xf1, 0x7a, 0x15, 0x72, 0xb1)]
549interface IGridProvider(IGridProviderVtbl): IUnknown(IUnknownVtbl) {
550 fn GetItem(
551 row: c_int,
552 column: c_int,
553 pRetVal: *mut *mut IRawElementProviderSimple,
554 ) -> HRESULT,
555 fn get_RowCount(
556 pRetVal: *mut c_int,
557 ) -> HRESULT,
558 fn get_ColumnCount(
559 pRetVal: *mut c_int,
560 ) -> HRESULT,
561}}
562RIDL!{#[uuid(0xd02541f1, 0xfb81, 0x4d64, 0xae, 0x32, 0xf5, 0x20, 0xf8, 0xa6, 0xdb, 0xd1)]
563interface IGridItemProvider(IGridItemProviderVtbl): IUnknown(IUnknownVtbl) {
564 fn get_Row(
565 pRetVal: *mut c_int,
566 ) -> HRESULT,
567 fn get_Column(
568 pRetVal: *mut c_int,
569 ) -> HRESULT,
570 fn get_RowSpan(
571 pRetVal: *mut c_int,
572 ) -> HRESULT,
573 fn get_ColumnSpan(
574 pRetVal: *mut c_int,
575 ) -> HRESULT,
576 fn get_ContainingGrid(
577 pRetVal: *mut *mut IRawElementProviderSimple,
578 ) -> HRESULT,
579}}
580RIDL!{#[uuid(0x54fcb24b, 0xe18e, 0x47a2, 0xb4, 0xd3, 0xec, 0xcb, 0xe7, 0x75, 0x99, 0xa2)]
581interface IInvokeProvider(IInvokeProviderVtbl): IUnknown(IUnknownVtbl) {
582 fn Invoke() -> HRESULT,
583}}
584RIDL!{#[uuid(0x6278cab1, 0xb556, 0x4a1a, 0xb4, 0xe0, 0x41, 0x8a, 0xcc, 0x52, 0x32, 0x01)]
585interface IMultipleViewProvider(IMultipleViewProviderVtbl): IUnknown(IUnknownVtbl) {
586 fn GetViewName(
587 viewId: c_int,
588 pRetVal: *mut BSTR,
589 ) -> HRESULT,
590 fn SetCurrentView(
591 viewId: c_int,
592 ) -> HRESULT,
593 fn get_CurrentView(
594 pRetVal: *mut c_int,
595 ) -> HRESULT,
596 fn GetSupportedViews(
597 pRetVal: *mut *mut SAFEARRAY,
598 ) -> HRESULT,
599}}
600RIDL!{#[uuid(0x36dc7aef, 0x33e6, 0x4691, 0xaf, 0xe1, 0x2b, 0xe7, 0x27, 0x4b, 0x3d, 0x33)]
601interface IRangeValueProvider(IRangeValueProviderVtbl): IUnknown(IUnknownVtbl) {
602 fn SetValue(
603 val: c_double,
604 ) -> HRESULT,
605 fn get_Value(
606 pRetVal: *mut c_double,
607 ) -> HRESULT,
608 fn get_IsReadOnly(
609 pRetVal: *mut BOOL,
610 ) -> HRESULT,
611 fn get_Maximum(
612 pRetVal: *mut c_double,
613 ) -> HRESULT,
614 fn get_Minimum(
615 pRetVal: *mut c_double,
616 ) -> HRESULT,
617 fn get_LargeChange(
618 pRetVal: *mut c_double,
619 ) -> HRESULT,
620 fn get_SmallChange(
621 pRetVal: *mut c_double,
622 ) -> HRESULT,
623}}
624RIDL!{#[uuid(0x2360c714, 0x4bf1, 0x4b26, 0xba, 0x65, 0x9b, 0x21, 0x31, 0x61, 0x27, 0xeb)]
625interface IScrollItemProvider(IScrollItemProviderVtbl): IUnknown(IUnknownVtbl) {
626 fn ScrollIntoView() -> HRESULT,
627}}
628RIDL!{#[uuid(0xfb8b03af, 0x3bdf, 0x48d4, 0xbd, 0x36, 0x1a, 0x65, 0x79, 0x3b, 0xe1, 0x68)]
629interface ISelectionProvider(ISelectionProviderVtbl): IUnknown(IUnknownVtbl) {
630 fn GetSelection(
631 pRetVal: *mut *mut SAFEARRAY,
632 ) -> HRESULT,
633 fn get_CanSelectMultiple(
634 pRetVal: *mut BOOL,
635 ) -> HRESULT,
636 fn get_IsSelectionRequired(
637 pRetVal: *mut BOOL,
638 ) -> HRESULT,
639}}
640RIDL!{#[uuid(0x14f68475, 0xee1c, 0x44f6, 0xa8, 0x69, 0xd2, 0x39, 0x38, 0x1f, 0x0f, 0xe7)]
641interface ISelectionProvider2(ISelectionProvider2Vtbl):
642 ISelectionProvider(ISelectionProviderVtbl) {
643 fn get_FirstSelectedItem(
644 retVal: *mut *mut IRawElementProviderSimple,
645 ) -> HRESULT,
646 fn get_LastSelectedItem(
647 retVal: *mut *mut IRawElementProviderSimple,
648 ) -> HRESULT,
649 fn get_CurrentSelectedItem(
650 retVal: *mut *mut IRawElementProviderSimple,
651 ) -> HRESULT,
652 fn get_ItemCount(
653 retVal: *mut c_int,
654 ) -> HRESULT,
655}}
656RIDL!{#[uuid(0xb38b8077, 0x1fc3, 0x42a5, 0x8c, 0xae, 0xd4, 0x0c, 0x22, 0x15, 0x05, 0x5a)]
657interface IScrollProvider(IScrollProviderVtbl): IUnknown(IUnknownVtbl) {
658 fn Scroll(
659 horizontalAmount: ScrollAmount,
660 verticalAmount: ScrollAmount,
661 ) -> HRESULT,
662 fn SetScrollPercent(
663 horizontalPercent: c_double,
664 verticalPercent: c_double,
665 ) -> HRESULT,
666 fn get_HorizontalScrollPercent(
667 pRetVal: *mut c_double,
668 ) -> HRESULT,
669 fn get_VerticalScrollPercent(
670 pRetVal: *mut c_double,
671 ) -> HRESULT,
672 fn get_HorizontalViewSize(
673 pRetVal: *mut c_double,
674 ) -> HRESULT,
675 fn get_VerticalViewSize(
676 pRetVal: *mut c_double,
677 ) -> HRESULT,
678 fn get_HorizontallyScrollable(
679 pRetVal: *mut BOOL,
680 ) -> HRESULT,
681 fn get_VerticallyScrollable(
682 pRetVal: *mut BOOL,
683 ) -> HRESULT,
684}}
685RIDL!{#[uuid(0x2acad808, 0xb2d4, 0x452d, 0xa4, 0x07, 0x91, 0xff, 0x1a, 0xd1, 0x67, 0xb2)]
686interface ISelectionItemProvider(ISelectionItemProviderVtbl): IUnknown(IUnknownVtbl) {
687 fn Select() -> HRESULT,
688 fn AddToSelection() -> HRESULT,
689 fn RemoveFromSelection() -> HRESULT,
690 fn get_IsSelected(
691 pRetVal: *mut BOOL,
692 ) -> HRESULT,
693 fn get_SelectionContainer(
694 pRetVal: *mut *mut IRawElementProviderSimple,
695 ) -> HRESULT,
696}}
697RIDL!{#[uuid(0x29db1a06, 0x02ce, 0x4cf7, 0x9b, 0x42, 0x56, 0x5d, 0x4f, 0xab, 0x20, 0xee)]
698interface ISynchronizedInputProvider(ISynchronizedInputProviderVtbl): IUnknown(IUnknownVtbl) {
699 fn StartListening(
700 inputType: SynchronizedInputType,
701 ) -> HRESULT,
702 fn Cancel() -> HRESULT,
703}}
704RIDL!{#[uuid(0x9c860395, 0x97b3, 0x490a, 0xb5, 0x2a, 0x85, 0x8c, 0xc2, 0x2a, 0xf1, 0x66)]
705interface ITableProvider(ITableProviderVtbl): IUnknown(IUnknownVtbl) {
706 fn GetRowHeaders(
707 pRetVal: *mut *mut SAFEARRAY,
708 ) -> HRESULT,
709 fn GetColumnHeaders(
710 pRetVal: *mut *mut SAFEARRAY,
711 ) -> HRESULT,
712 fn get_RowOrColumnMajor(
713 pRetVal: *mut RowOrColumnMajor,
714 ) -> HRESULT,
715}}
716RIDL!{#[uuid(0xb9734fa6, 0x771f, 0x4d78, 0x9c, 0x90, 0x25, 0x17, 0x99, 0x93, 0x49, 0xcd)]
717interface ITableItemProvider(ITableItemProviderVtbl): IUnknown(IUnknownVtbl) {
718 fn GetRowHeaderItems(
719 pRetVal: *mut *mut SAFEARRAY,
720 ) -> HRESULT,
721 fn GetColumnHeaderItems(
722 pRetVal: *mut *mut SAFEARRAY,
723 ) -> HRESULT,
724}}
725RIDL!{#[uuid(0x56d00bd0, 0xc4f4, 0x433c, 0xa8, 0x36, 0x1a, 0x52, 0xa5, 0x7e, 0x08, 0x92)]
726interface IToggleProvider(IToggleProviderVtbl): IUnknown(IUnknownVtbl) {
727 fn Toggle() -> HRESULT,
728 fn get_ToggleState(
729 pRetVal: *mut ToggleState,
730 ) -> HRESULT,
731}}
732RIDL!{#[uuid(0x6829ddc4, 0x4f91, 0x4ffa, 0xb8, 0x6f, 0xbd, 0x3e, 0x29, 0x87, 0xcb, 0x4c)]
733interface ITransformProvider(ITransformProviderVtbl): IUnknown(IUnknownVtbl) {
734 fn Move(
735 x: c_double,
736 y: c_double,
737 ) -> HRESULT,
738 fn Resize(
739 width: c_double,
740 height: c_double,
741 ) -> HRESULT,
742 fn Rotate(
743 degrees: c_double,
744 ) -> HRESULT,
745 fn get_CanMove(
746 pRetVal: *mut BOOL,
747 ) -> HRESULT,
748 fn get_CanResize(
749 pRetVal: *mut BOOL,
750 ) -> HRESULT,
751 fn get_CanRotate(
752 pRetVal: *mut BOOL,
753 ) -> HRESULT,
754}}
755RIDL!{#[uuid(0xc7935180, 0x6fb3, 0x4201, 0xb1, 0x74, 0x7d, 0xf7, 0x3a, 0xdb, 0xf6, 0x4a)]
756interface IValueProvider(IValueProviderVtbl): IUnknown(IUnknownVtbl) {
757 fn SetValue(
758 val: LPCWSTR,
759 ) -> HRESULT,
760 fn get_Value(
761 pRetVal: *mut BSTR,
762 ) -> HRESULT,
763 fn get_IsReadOnly(
764 pRetVal: *mut BOOL,
765 ) -> HRESULT,
766}}
767RIDL!{#[uuid(0x987df77b, 0xdb06, 0x4d77, 0x8f, 0x8a, 0x86, 0xa9, 0xc3, 0xbb, 0x90, 0xb9)]
768interface IWindowProvider(IWindowProviderVtbl): IUnknown(IUnknownVtbl) {
769 fn SetVisualState(
770 state: WindowVisualState,
771 ) -> HRESULT,
772 fn Close() -> HRESULT,
773 fn WaitForInputIdle(
774 milliseconds: c_int,
775 pRetVal: *mut BOOL,
776 ) -> HRESULT,
777 fn get_CanMaximize(
778 pRetVal: *mut BOOL,
779 ) -> HRESULT,
780 fn get_CanMinimize(
781 pRetVal: *mut BOOL,
782 ) -> HRESULT,
783 fn get_IsModal(
784 pRetVal: *mut BOOL,
785 ) -> HRESULT,
786 fn get_WindowVisualState(
787 pRetVal: *mut WindowVisualState,
788 ) -> HRESULT,
789 fn get_WindowInteractionState(
790 pRetVal: *mut WindowInteractionState,
791 ) -> HRESULT,
792 fn get_IsTopmost(
793 pRetVal: *mut BOOL,
794 ) -> HRESULT,
795}}
796RIDL!{#[uuid(0xe44c3566, 0x915d, 0x4070, 0x99, 0xc6, 0x04, 0x7b, 0xff, 0x5a, 0x08, 0xf5)]
797interface ILegacyIAccessibleProvider(ILegacyIAccessibleProviderVtbl): IUnknown(IUnknownVtbl) {
798 fn Select(
799 flagsSelect: c_long,
800 ) -> HRESULT,
801 fn DoDefaultAction() -> HRESULT,
802 fn SetValue(
803 szValue: LPCWSTR,
804 ) -> HRESULT,
805 fn GetIAccessible(
806 ppIAccessible: *mut *mut IAccessible,
807 ) -> HRESULT,
808 fn get_ChildId(
809 pRetVal: *mut c_int,
810 ) -> HRESULT,
811 fn get_Name(
812 pszName: *mut BSTR,
813 ) -> HRESULT,
814 fn get_Value(
815 pszValue: *mut BSTR,
816 ) -> HRESULT,
817 fn get_Description(
818 pszDescription: *mut BSTR,
819 ) -> HRESULT,
820 fn get_Role(
821 pdwRole: *mut DWORD,
822 ) -> HRESULT,
823 fn get_State(
824 pdwState: *mut DWORD,
825 ) -> HRESULT,
826 fn get_Help(
827 pszHelp: *mut BSTR,
828 ) -> HRESULT,
829 fn get_KeyboardShortcut(
830 pszKeyboardShortcut: *mut BSTR,
831 ) -> HRESULT,
832 fn GetSelection(
833 pvarSelectedChildren: *mut *mut SAFEARRAY,
834 ) -> HRESULT,
835 fn get_DefaultAction(
836 pszDefaultAction: *mut BSTR,
837 ) -> HRESULT,
838}}
839RIDL!{#[uuid(0xe747770b, 0x39ce, 0x4382, 0xab, 0x30, 0xd8, 0xfb, 0x3f, 0x33, 0x6f, 0x24)]
840interface IItemContainerProvider(IItemContainerProviderVtbl): IUnknown(IUnknownVtbl) {
841 fn FindItemByProperty(
842 pStartAfter: *mut IRawElementProviderSimple,
843 propertyId: PROPERTYID,
844 value: VARIANT,
845 pFound: *mut *mut IRawElementProviderSimple,
846 ) -> HRESULT,
847}}
848RIDL!{#[uuid(0xcb98b665, 0x2d35, 0x4fac, 0xad, 0x35, 0xf3, 0xc6, 0x0d, 0x0c, 0x0b, 0x8b)]
849interface IVirtualizedItemProvider(IVirtualizedItemProviderVtbl): IUnknown(IUnknownVtbl) {
850 fn Realize() -> HRESULT,
851}}
852RIDL!{#[uuid(0x3ad86ebd, 0xf5ef, 0x483d, 0xbb, 0x18, 0xb1, 0x04, 0x2a, 0x47, 0x5d, 0x64)]
853interface IObjectModelProvider(IObjectModelProviderVtbl): IUnknown(IUnknownVtbl) {
854 fn GetUnderlyingObjectModel(
855 ppUnknown: *mut *mut IUnknown,
856 ) -> HRESULT,
857}}
858RIDL!{#[uuid(0xf95c7e80, 0xbd63, 0x4601, 0x97, 0x82, 0x44, 0x5e, 0xbf, 0xf0, 0x11, 0xfc)]
859interface IAnnotationProvider(IAnnotationProviderVtbl): IUnknown(IUnknownVtbl) {
860 fn get_AnnotationTypeId(
861 retVal: *mut c_int,
862 ) -> HRESULT,
863 fn get_AnnotationTypeName(
864 retVal: *mut BSTR,
865 ) -> HRESULT,
866 fn get_Author(
867 retVal: *mut BSTR,
868 ) -> HRESULT,
869 fn get_DateTime(
870 retVal: *mut BSTR,
871 ) -> HRESULT,
872 fn get_Target(
873 retVal: *mut *mut IRawElementProviderSimple,
874 ) -> HRESULT,
875}}
876RIDL!{#[uuid(0x19b6b649, 0xf5d7, 0x4a6d, 0xbd, 0xcb, 0x12, 0x92, 0x52, 0xbe, 0x58, 0x8a)]
877interface IStylesProvider(IStylesProviderVtbl): IUnknown(IUnknownVtbl) {
878 fn get_StyleId(
879 retVal: *mut c_int,
880 ) -> HRESULT,
881 fn get_StyleName(
882 retVal: *mut BSTR,
883 ) -> HRESULT,
884 fn get_FillColor(
885 retVal: *mut c_int,
886 ) -> HRESULT,
887 fn get_FillPatternStyle(
888 retVal: *mut BSTR,
889 ) -> HRESULT,
890 fn get_Shape(
891 retVal: BSTR,
892 ) -> HRESULT,
893 fn get_FillPatternColor(
894 retVal: *mut c_int,
895 ) -> HRESULT,
896 fn get_ExtendedProperties(
897 retVal: *mut BSTR,
898 ) -> HRESULT,
899}}
900RIDL!{#[uuid(0x6f6b5d35, 0x5525, 0x4f80, 0xb7, 0x58, 0x85, 0x47, 0x38, 0x32, 0xff, 0xc7)]
901interface ISpreadsheetProvider(ISpreadsheetProviderVtbl): IUnknown(IUnknownVtbl) {
902 fn GetItemByName(
903 name: LPCWSTR,
904 pRetVal: *mut *mut IRawElementProviderSimple,
905 ) -> HRESULT,
906}}
907RIDL!{#[uuid(0xeaed4660, 0x7b3d, 0x4879, 0xa2, 0xe6, 0x36, 0x5c, 0xe6, 0x03, 0xf3, 0xd0)]
908interface ISpreadsheetItemProvider(ISpreadsheetItemProviderVtbl): IUnknown(IUnknownVtbl) {
909 fn get_Formula(
910 pRetVal: *mut BSTR,
911 ) -> HRESULT,
912 fn GetAnnotationObjects(
913 pRetVal: *mut *mut SAFEARRAY,
914 ) -> HRESULT,
915 fn GetAnnotationTypes(
916 pRetVal: *mut *mut SAFEARRAY,
917 ) -> HRESULT,
918}}
919RIDL!{#[uuid(0x4758742f, 0x7ac2, 0x460c, 0xbc, 0x48, 0x09, 0xfc, 0x09, 0x30, 0x8a, 0x93)]
920interface ITransformProvider2(ITransformProvider2Vtbl):
921 ITransformProvider(ITransformProviderVtbl) {
922 fn Zoom(
923 zoom: c_double,
924 ) -> HRESULT,
925 fn get_CanZoom(
926 pRetVal: *mut BOOL,
927 ) -> HRESULT,
928 fn get_ZoomLevel(
929 pRetVal: *mut c_double,
930 ) -> HRESULT,
931 fn get_ZoomMinimum(
932 pRetVal: *mut c_double,
933 ) -> HRESULT,
934 fn get_ZoomMaximum(
935 pRetVal: *mut c_double,
936 ) -> HRESULT,
937 fn ZoomByUnit(
938 zoomUnit: ZoomUnit,
939 ) -> HRESULT,
940}}
941RIDL!{#[uuid(0x6aa7bbbb, 0x7ff9, 0x497d, 0x90, 0x4f, 0xd2, 0x0b, 0x89, 0x79, 0x29, 0xd8)]
942interface IDragProvider(IDragProviderVtbl): IUnknown(IUnknownVtbl) {
943 fn get_IsGrabbed(
944 pRetVal: *mut BOOL,
945 ) -> HRESULT,
946 fn get_DropEffect(
947 pRetVal: *mut BSTR,
948 ) -> HRESULT,
949 fn get_DropEffects(
950 pRetVal: *mut *mut SAFEARRAY,
951 ) -> HRESULT,
952 fn GetGrabbedItems(
953 pRetVal: *mut *mut SAFEARRAY,
954 ) -> HRESULT,
955}}
956RIDL!{#[uuid(0xbae82bfd, 0x358a, 0x481c, 0x85, 0xa0, 0xd8, 0xb4, 0xd9, 0x0a, 0x5d, 0x61)]
957interface IDropTargetProvider(IDropTargetProviderVtbl): IUnknown(IUnknownVtbl) {
958 fn get_DropTargetEffect(
959 pRetVal: *mut BSTR,
960 ) -> HRESULT,
961 fn get_DropTargetEffects(
962 pRetVal: *mut *mut SAFEARRAY,
963 ) -> HRESULT,
964}}
965RIDL!{#[uuid(0x5347ad7b, 0xc355, 0x46f8, 0xaf, 0xf5, 0x90, 0x90, 0x33, 0x58, 0x2f, 0x63)]
966interface ITextRangeProvider(ITextRangeProviderVtbl): IUnknown(IUnknownVtbl) {
967 fn Clone(
968 pRetVal: *mut *mut ITextRangeProvider,
969 ) -> HRESULT,
970 fn Compare(
971 range: *mut ITextRangeProvider,
972 pRetVal: *mut BOOL,
973 ) -> HRESULT,
974 fn CompareEndpoints(
975 endpoint: TextPatternRangeEndpoint,
976 targetRange: *mut ITextRangeProvider,
977 targetEndpoint: TextPatternRangeEndpoint,
978 pRetVal: *mut c_int,
979 ) -> HRESULT,
980 fn ExpandToEnclosingUnit(
981 unit: TextUnit,
982 ) -> HRESULT,
983 fn FindAttribute(
984 attributeId: TEXTATTRIBUTEID,
985 val: VARIANT,
986 backward: BOOL,
987 pRetVal: *mut *mut ITextRangeProvider,
988 ) -> HRESULT,
989 fn FindText(
990 text: BSTR,
991 backward: BOOL,
992 ignoreCase: BOOL,
993 pRetVal: *mut *mut ITextRangeProvider,
994 ) -> HRESULT,
995 fn GetAttributeValue(
996 attributeId: TEXTATTRIBUTEID,
997 pRetVal: *mut VARIANT,
998 ) -> HRESULT,
999 fn GetBoundingRectangles(
1000 pRetVal: *mut *mut SAFEARRAY,
1001 ) -> HRESULT,
1002 fn GetEnclosingElement(
1003 pRetVal: *mut *mut IRawElementProviderSimple,
1004 ) -> HRESULT,
1005 fn GetText(
1006 maxLength: c_int,
1007 pRetVal: *mut BSTR,
1008 ) -> HRESULT,
1009 fn Move(
1010 unit: TextUnit,
1011 count: c_int,
1012 pRetVal: *mut c_int,
1013 ) -> HRESULT,
1014 fn MoveEndpointByUnit(
1015 endpoint: TextPatternRangeEndpoint,
1016 unit: TextUnit,
1017 count: c_int,
1018 pRetVal: *mut c_int,
1019 ) -> HRESULT,
1020 fn MoveEndpointByRange(
1021 endpoint: TextPatternRangeEndpoint,
1022 targetRange: *mut ITextRangeProvider,
1023 targetEndpoint: TextPatternRangeEndpoint,
1024 ) -> HRESULT,
1025 fn Select() -> HRESULT,
1026 fn AddToSelection() -> HRESULT,
1027 fn RemoveFromSelection() -> HRESULT,
1028 fn ScrollIntoView(
1029 alignToTop: BOOL,
1030 ) -> HRESULT,
1031 fn GetChildren(
1032 pRetVal: *mut *mut SAFEARRAY,
1033 ) -> HRESULT,
1034}}
1035RIDL!{#[uuid(0x3589c92c, 0x63f3, 0x4367, 0x99, 0xbb, 0xad, 0xa6, 0x53, 0xb7, 0x7c, 0xf2)]
1036interface ITextProvider(ITextProviderVtbl): IUnknown(IUnknownVtbl) {
1037 fn GetSelection(
1038 pRetVal: *mut *mut SAFEARRAY,
1039 ) -> HRESULT,
1040 fn GetVisibleRanges(
1041 pRetVal: *mut *mut SAFEARRAY,
1042 ) -> HRESULT,
1043 fn RangeFromChild(
1044 childElement: *mut IRawElementProviderSimple,
1045 pRetVal: *mut *mut ITextRangeProvider,
1046 ) -> HRESULT,
1047 fn RangeFromPoint(
1048 point: UiaPoint,
1049 pRetVal: *mut *mut ITextRangeProvider,
1050 ) -> HRESULT,
1051 fn get_DocumentRange(
1052 pRetVal: *mut *mut ITextRangeProvider,
1053 ) -> HRESULT,
1054 fn get_SupportedTextSelection(
1055 pRetVal: *mut SupportedTextSelection,
1056 ) -> HRESULT,
1057}}
1058RIDL!{#[uuid(0x0dc5e6ed, 0x3e16, 0x4bf1, 0x8f, 0x9a, 0xa9, 0x79, 0x87, 0x8b, 0xc1, 0x95)]
1059interface ITextProvider2(ITextProvider2Vtbl): ITextProvider(ITextProviderVtbl) {
1060 fn RangeFromAnnotation(
1061 annotationElement: *mut IRawElementProviderSimple,
1062 pRetVal: *mut *mut ITextRangeProvider,
1063 ) -> HRESULT,
1064 fn GetCaretRange(
1065 isActive: *mut BOOL,
1066 pRetVal: *mut *mut ITextRangeProvider,
1067 ) -> HRESULT,
1068}}
1069RIDL!{#[uuid(0xea3605b4, 0x3a05, 0x400e, 0xb5, 0xf9, 0x4e, 0x91, 0xb4, 0x0f, 0x61, 0x76)]
1070interface ITextEditProvider(ITextEditProviderVtbl): ITextProvider(ITextProviderVtbl) {
1071 fn GetActiveComposition(
1072 pRetVal: *mut *mut ITextRangeProvider,
1073 ) -> HRESULT,
1074 fn GetConversionTarget(
1075 pRetVal: *mut *mut ITextRangeProvider,
1076 ) -> HRESULT,
1077}}
1078RIDL!{#[uuid(0x9bbce42c, 0x1921, 0x4f18, 0x89, 0xca, 0xdb, 0xa1, 0x91, 0x0a, 0x03, 0x86)]
1079interface ITextRangeProvider2(ITextRangeProvider2Vtbl):
1080 ITextRangeProvider(ITextRangeProviderVtbl) {
1081 fn ShowContextMenu() -> HRESULT,
1082}}
1083RIDL!{#[uuid(0x4c2de2b9, 0xc88f, 0x4f88, 0xa1, 0x11, 0xf1, 0xd3, 0x36, 0xb7, 0xd1, 0xa9)]
1084interface ITextChildProvider(ITextChildProviderVtbl): IUnknown(IUnknownVtbl) {
1085 fn get_TextContainer(
1086 pRetVal: *mut *mut IRawElementProviderSimple,
1087 ) -> HRESULT,
1088 fn get_TextRange(
1089 pRetVal: *mut *mut ITextRangeProvider,
1090 ) -> HRESULT,
1091}}
1092RIDL!{#[uuid(0x2062a28a, 0x8c07, 0x4b94, 0x8e, 0x12, 0x70, 0x37, 0xc6, 0x22, 0xae, 0xb8)]
1093interface ICustomNavigationProvider(ICustomNavigationProviderVtbl): IUnknown(IUnknownVtbl) {
1094 fn Navigate(
1095 direction: NavigateDirection,
1096 pRetVal: *mut *mut IRawElementProviderSimple,
1097 ) -> HRESULT,
1098}}
1099RIDL!{#[uuid(0xc03a7fe4, 0x9431, 0x409f, 0xbe, 0xd8, 0xae, 0x7c, 0x22, 0x99, 0xbc, 0x8d)]
1100interface IUIAutomationPatternInstance(IUIAutomationPatternInstanceVtbl): IUnknown(IUnknownVtbl) {
1101 fn GetProperty(
1102 index: UINT,
1103 cached: BOOL,
1104 type_: UIAutomationType,
1105 pPtr: *mut c_void,
1106 ) -> HRESULT,
1107 fn CallMethod(
1108 index: UINT,
1109 pParams: *const UIAutomationParameter,
1110 cParams: UINT,
1111 ) -> HRESULT,
1112}}
1113RIDL!{#[uuid(0xd97022f3, 0xa947, 0x465e, 0x8b, 0x2a, 0xac, 0x43, 0x15, 0xfa, 0x54, 0xe8)]
1114interface IUIAutomationPatternHandler(IUIAutomationPatternHandlerVtbl): IUnknown(IUnknownVtbl) {
1115 fn CreateClientWrapper(
1116 pPatternInstance: *mut IUIAutomationPatternInstance,
1117 pClientWrapper: *mut *mut IUnknown,
1118 ) -> HRESULT,
1119 fn Dispatch(
1120 pTarget: *mut IUnknown,
1121 index: UINT,
1122 pParams: *const UIAutomationParameter,
1123 cParams: UINT,
1124 ) -> HRESULT,
1125}}
1126RIDL!{#[uuid(0x8609c4ec, 0x4a1a, 0x4d88, 0xa3, 0x57, 0x5a, 0x66, 0xe0, 0x60, 0xe1, 0xcf)]
1127interface IUIAutomationRegistrar(IUIAutomationRegistrarVtbl): IUnknown(IUnknownVtbl) {
1128 fn RegisterProperty(
1129 property: *const UIAutomationPropertyInfo,
1130 propertyId: *mut PROPERTYID,
1131 ) -> HRESULT,
1132 fn RegisterEvent(
1133 event: *const UIAutomationEventInfo,
1134 eventId: *mut EVENTID,
1135 ) -> HRESULT,
1136 fn RegisterPattern(
1137 pattern: *const UIAutomationPatternInfo,
1138 pPatternId: *mut PATTERNID,
1139 pPatternAvailablePropertyId: *mut PROPERTYID,
1140 propertyIdCount: UINT,
1141 pPropertyIds: *mut PROPERTYID,
1142 eventIdCount: UINT,
1143 pEventIds: *mut EVENTID,
1144 ) -> HRESULT,
1145}}
1146RIDL!{#[uuid(0x6e29fabf, 0x9977, 0x42d1, 0x8d, 0x0e, 0xca, 0x7e, 0x61, 0xad, 0x87, 0xe6)]
1147class CUIAutomationRegistrar;}