master
   1/*** Autogenerated by WIDL 10.4 from include/uiautomationcore.idl - Do not edit ***/
   2
   3#ifdef _WIN32
   4#ifndef __REQUIRED_RPCNDR_H_VERSION__
   5#define __REQUIRED_RPCNDR_H_VERSION__ 475
   6#endif
   7#include <rpc.h>
   8#include <rpcndr.h>
   9#endif
  10
  11#ifndef COM_NO_WINDOWS_H
  12#include <windows.h>
  13#include <ole2.h>
  14#endif
  15
  16#ifndef __uiautomationcore_h__
  17#define __uiautomationcore_h__
  18
  19/* Forward declarations */
  20
  21#ifndef __IRawElementProviderSimple_FWD_DEFINED__
  22#define __IRawElementProviderSimple_FWD_DEFINED__
  23typedef interface IRawElementProviderSimple IRawElementProviderSimple;
  24#ifdef __cplusplus
  25interface IRawElementProviderSimple;
  26#endif /* __cplusplus */
  27#endif
  28
  29#ifndef __IRawElementProviderSimple2_FWD_DEFINED__
  30#define __IRawElementProviderSimple2_FWD_DEFINED__
  31typedef interface IRawElementProviderSimple2 IRawElementProviderSimple2;
  32#ifdef __cplusplus
  33interface IRawElementProviderSimple2;
  34#endif /* __cplusplus */
  35#endif
  36
  37#ifndef __IRawElementProviderSimple3_FWD_DEFINED__
  38#define __IRawElementProviderSimple3_FWD_DEFINED__
  39typedef interface IRawElementProviderSimple3 IRawElementProviderSimple3;
  40#ifdef __cplusplus
  41interface IRawElementProviderSimple3;
  42#endif /* __cplusplus */
  43#endif
  44
  45#ifndef __IAccessibleEx_FWD_DEFINED__
  46#define __IAccessibleEx_FWD_DEFINED__
  47typedef interface IAccessibleEx IAccessibleEx;
  48#ifdef __cplusplus
  49interface IAccessibleEx;
  50#endif /* __cplusplus */
  51#endif
  52
  53#ifndef __IRawElementProviderFragment_FWD_DEFINED__
  54#define __IRawElementProviderFragment_FWD_DEFINED__
  55typedef interface IRawElementProviderFragment IRawElementProviderFragment;
  56#ifdef __cplusplus
  57interface IRawElementProviderFragment;
  58#endif /* __cplusplus */
  59#endif
  60
  61#ifndef __IRawElementProviderFragmentRoot_FWD_DEFINED__
  62#define __IRawElementProviderFragmentRoot_FWD_DEFINED__
  63typedef interface IRawElementProviderFragmentRoot IRawElementProviderFragmentRoot;
  64#ifdef __cplusplus
  65interface IRawElementProviderFragmentRoot;
  66#endif /* __cplusplus */
  67#endif
  68
  69#ifndef __IRawElementProviderHwndOverride_FWD_DEFINED__
  70#define __IRawElementProviderHwndOverride_FWD_DEFINED__
  71typedef interface IRawElementProviderHwndOverride IRawElementProviderHwndOverride;
  72#ifdef __cplusplus
  73interface IRawElementProviderHwndOverride;
  74#endif /* __cplusplus */
  75#endif
  76
  77#ifndef __IRawElementProviderAdviseEvents_FWD_DEFINED__
  78#define __IRawElementProviderAdviseEvents_FWD_DEFINED__
  79typedef interface IRawElementProviderAdviseEvents IRawElementProviderAdviseEvents;
  80#ifdef __cplusplus
  81interface IRawElementProviderAdviseEvents;
  82#endif /* __cplusplus */
  83#endif
  84
  85#ifndef __IProxyProviderWinEventSink_FWD_DEFINED__
  86#define __IProxyProviderWinEventSink_FWD_DEFINED__
  87typedef interface IProxyProviderWinEventSink IProxyProviderWinEventSink;
  88#ifdef __cplusplus
  89interface IProxyProviderWinEventSink;
  90#endif /* __cplusplus */
  91#endif
  92
  93#ifndef __IProxyProviderWinEventHandler_FWD_DEFINED__
  94#define __IProxyProviderWinEventHandler_FWD_DEFINED__
  95typedef interface IProxyProviderWinEventHandler IProxyProviderWinEventHandler;
  96#ifdef __cplusplus
  97interface IProxyProviderWinEventHandler;
  98#endif /* __cplusplus */
  99#endif
 100
 101#ifndef __IRawElementProviderWindowlessSite_FWD_DEFINED__
 102#define __IRawElementProviderWindowlessSite_FWD_DEFINED__
 103typedef interface IRawElementProviderWindowlessSite IRawElementProviderWindowlessSite;
 104#ifdef __cplusplus
 105interface IRawElementProviderWindowlessSite;
 106#endif /* __cplusplus */
 107#endif
 108
 109#ifndef __IAccessibleHostingElementProviders_FWD_DEFINED__
 110#define __IAccessibleHostingElementProviders_FWD_DEFINED__
 111typedef interface IAccessibleHostingElementProviders IAccessibleHostingElementProviders;
 112#ifdef __cplusplus
 113interface IAccessibleHostingElementProviders;
 114#endif /* __cplusplus */
 115#endif
 116
 117#ifndef __IRawElementProviderHostingAccessibles_FWD_DEFINED__
 118#define __IRawElementProviderHostingAccessibles_FWD_DEFINED__
 119typedef interface IRawElementProviderHostingAccessibles IRawElementProviderHostingAccessibles;
 120#ifdef __cplusplus
 121interface IRawElementProviderHostingAccessibles;
 122#endif /* __cplusplus */
 123#endif
 124
 125#ifndef __ILegacyIAccessibleProvider_FWD_DEFINED__
 126#define __ILegacyIAccessibleProvider_FWD_DEFINED__
 127typedef interface ILegacyIAccessibleProvider ILegacyIAccessibleProvider;
 128#ifdef __cplusplus
 129interface ILegacyIAccessibleProvider;
 130#endif /* __cplusplus */
 131#endif
 132
 133#ifndef __IDockProvider_FWD_DEFINED__
 134#define __IDockProvider_FWD_DEFINED__
 135typedef interface IDockProvider IDockProvider;
 136#ifdef __cplusplus
 137interface IDockProvider;
 138#endif /* __cplusplus */
 139#endif
 140
 141#ifndef __IExpandCollapseProvider_FWD_DEFINED__
 142#define __IExpandCollapseProvider_FWD_DEFINED__
 143typedef interface IExpandCollapseProvider IExpandCollapseProvider;
 144#ifdef __cplusplus
 145interface IExpandCollapseProvider;
 146#endif /* __cplusplus */
 147#endif
 148
 149#ifndef __IGridProvider_FWD_DEFINED__
 150#define __IGridProvider_FWD_DEFINED__
 151typedef interface IGridProvider IGridProvider;
 152#ifdef __cplusplus
 153interface IGridProvider;
 154#endif /* __cplusplus */
 155#endif
 156
 157#ifndef __IGridItemProvider_FWD_DEFINED__
 158#define __IGridItemProvider_FWD_DEFINED__
 159typedef interface IGridItemProvider IGridItemProvider;
 160#ifdef __cplusplus
 161interface IGridItemProvider;
 162#endif /* __cplusplus */
 163#endif
 164
 165#ifndef __IInvokeProvider_FWD_DEFINED__
 166#define __IInvokeProvider_FWD_DEFINED__
 167typedef interface IInvokeProvider IInvokeProvider;
 168#ifdef __cplusplus
 169interface IInvokeProvider;
 170#endif /* __cplusplus */
 171#endif
 172
 173#ifndef __IMultipleViewProvider_FWD_DEFINED__
 174#define __IMultipleViewProvider_FWD_DEFINED__
 175typedef interface IMultipleViewProvider IMultipleViewProvider;
 176#ifdef __cplusplus
 177interface IMultipleViewProvider;
 178#endif /* __cplusplus */
 179#endif
 180
 181#ifndef __IRangeValueProvider_FWD_DEFINED__
 182#define __IRangeValueProvider_FWD_DEFINED__
 183typedef interface IRangeValueProvider IRangeValueProvider;
 184#ifdef __cplusplus
 185interface IRangeValueProvider;
 186#endif /* __cplusplus */
 187#endif
 188
 189#ifndef __IScrollItemProvider_FWD_DEFINED__
 190#define __IScrollItemProvider_FWD_DEFINED__
 191typedef interface IScrollItemProvider IScrollItemProvider;
 192#ifdef __cplusplus
 193interface IScrollItemProvider;
 194#endif /* __cplusplus */
 195#endif
 196
 197#ifndef __ISelectionProvider_FWD_DEFINED__
 198#define __ISelectionProvider_FWD_DEFINED__
 199typedef interface ISelectionProvider ISelectionProvider;
 200#ifdef __cplusplus
 201interface ISelectionProvider;
 202#endif /* __cplusplus */
 203#endif
 204
 205#ifndef __ISelectionProvider2_FWD_DEFINED__
 206#define __ISelectionProvider2_FWD_DEFINED__
 207typedef interface ISelectionProvider2 ISelectionProvider2;
 208#ifdef __cplusplus
 209interface ISelectionProvider2;
 210#endif /* __cplusplus */
 211#endif
 212
 213#ifndef __IScrollProvider_FWD_DEFINED__
 214#define __IScrollProvider_FWD_DEFINED__
 215typedef interface IScrollProvider IScrollProvider;
 216#ifdef __cplusplus
 217interface IScrollProvider;
 218#endif /* __cplusplus */
 219#endif
 220
 221#ifndef __ISelectionItemProvider_FWD_DEFINED__
 222#define __ISelectionItemProvider_FWD_DEFINED__
 223typedef interface ISelectionItemProvider ISelectionItemProvider;
 224#ifdef __cplusplus
 225interface ISelectionItemProvider;
 226#endif /* __cplusplus */
 227#endif
 228
 229#ifndef __ISynchronizedInputProvider_FWD_DEFINED__
 230#define __ISynchronizedInputProvider_FWD_DEFINED__
 231typedef interface ISynchronizedInputProvider ISynchronizedInputProvider;
 232#ifdef __cplusplus
 233interface ISynchronizedInputProvider;
 234#endif /* __cplusplus */
 235#endif
 236
 237#ifndef __ITableProvider_FWD_DEFINED__
 238#define __ITableProvider_FWD_DEFINED__
 239typedef interface ITableProvider ITableProvider;
 240#ifdef __cplusplus
 241interface ITableProvider;
 242#endif /* __cplusplus */
 243#endif
 244
 245#ifndef __ITableItemProvider_FWD_DEFINED__
 246#define __ITableItemProvider_FWD_DEFINED__
 247typedef interface ITableItemProvider ITableItemProvider;
 248#ifdef __cplusplus
 249interface ITableItemProvider;
 250#endif /* __cplusplus */
 251#endif
 252
 253#ifndef __IToggleProvider_FWD_DEFINED__
 254#define __IToggleProvider_FWD_DEFINED__
 255typedef interface IToggleProvider IToggleProvider;
 256#ifdef __cplusplus
 257interface IToggleProvider;
 258#endif /* __cplusplus */
 259#endif
 260
 261#ifndef __ITransformProvider_FWD_DEFINED__
 262#define __ITransformProvider_FWD_DEFINED__
 263typedef interface ITransformProvider ITransformProvider;
 264#ifdef __cplusplus
 265interface ITransformProvider;
 266#endif /* __cplusplus */
 267#endif
 268
 269#ifndef __IValueProvider_FWD_DEFINED__
 270#define __IValueProvider_FWD_DEFINED__
 271typedef interface IValueProvider IValueProvider;
 272#ifdef __cplusplus
 273interface IValueProvider;
 274#endif /* __cplusplus */
 275#endif
 276
 277#ifndef __IWindowProvider_FWD_DEFINED__
 278#define __IWindowProvider_FWD_DEFINED__
 279typedef interface IWindowProvider IWindowProvider;
 280#ifdef __cplusplus
 281interface IWindowProvider;
 282#endif /* __cplusplus */
 283#endif
 284
 285#ifndef __IItemContainerProvider_FWD_DEFINED__
 286#define __IItemContainerProvider_FWD_DEFINED__
 287typedef interface IItemContainerProvider IItemContainerProvider;
 288#ifdef __cplusplus
 289interface IItemContainerProvider;
 290#endif /* __cplusplus */
 291#endif
 292
 293#ifndef __IVirtualizedItemProvider_FWD_DEFINED__
 294#define __IVirtualizedItemProvider_FWD_DEFINED__
 295typedef interface IVirtualizedItemProvider IVirtualizedItemProvider;
 296#ifdef __cplusplus
 297interface IVirtualizedItemProvider;
 298#endif /* __cplusplus */
 299#endif
 300
 301#ifndef __IObjectModelProvider_FWD_DEFINED__
 302#define __IObjectModelProvider_FWD_DEFINED__
 303typedef interface IObjectModelProvider IObjectModelProvider;
 304#ifdef __cplusplus
 305interface IObjectModelProvider;
 306#endif /* __cplusplus */
 307#endif
 308
 309#ifndef __IAnnotationProvider_FWD_DEFINED__
 310#define __IAnnotationProvider_FWD_DEFINED__
 311typedef interface IAnnotationProvider IAnnotationProvider;
 312#ifdef __cplusplus
 313interface IAnnotationProvider;
 314#endif /* __cplusplus */
 315#endif
 316
 317#ifndef __IStylesProvider_FWD_DEFINED__
 318#define __IStylesProvider_FWD_DEFINED__
 319typedef interface IStylesProvider IStylesProvider;
 320#ifdef __cplusplus
 321interface IStylesProvider;
 322#endif /* __cplusplus */
 323#endif
 324
 325#ifndef __ISpreadsheetProvider_FWD_DEFINED__
 326#define __ISpreadsheetProvider_FWD_DEFINED__
 327typedef interface ISpreadsheetProvider ISpreadsheetProvider;
 328#ifdef __cplusplus
 329interface ISpreadsheetProvider;
 330#endif /* __cplusplus */
 331#endif
 332
 333#ifndef __ISpreadsheetItemProvider_FWD_DEFINED__
 334#define __ISpreadsheetItemProvider_FWD_DEFINED__
 335typedef interface ISpreadsheetItemProvider ISpreadsheetItemProvider;
 336#ifdef __cplusplus
 337interface ISpreadsheetItemProvider;
 338#endif /* __cplusplus */
 339#endif
 340
 341#ifndef __ITransformProvider2_FWD_DEFINED__
 342#define __ITransformProvider2_FWD_DEFINED__
 343typedef interface ITransformProvider2 ITransformProvider2;
 344#ifdef __cplusplus
 345interface ITransformProvider2;
 346#endif /* __cplusplus */
 347#endif
 348
 349#ifndef __IDragProvider_FWD_DEFINED__
 350#define __IDragProvider_FWD_DEFINED__
 351typedef interface IDragProvider IDragProvider;
 352#ifdef __cplusplus
 353interface IDragProvider;
 354#endif /* __cplusplus */
 355#endif
 356
 357#ifndef __IDropTargetProvider_FWD_DEFINED__
 358#define __IDropTargetProvider_FWD_DEFINED__
 359typedef interface IDropTargetProvider IDropTargetProvider;
 360#ifdef __cplusplus
 361interface IDropTargetProvider;
 362#endif /* __cplusplus */
 363#endif
 364
 365#ifndef __ITextProvider_FWD_DEFINED__
 366#define __ITextProvider_FWD_DEFINED__
 367typedef interface ITextProvider ITextProvider;
 368#ifdef __cplusplus
 369interface ITextProvider;
 370#endif /* __cplusplus */
 371#endif
 372
 373#ifndef __ITextProvider2_FWD_DEFINED__
 374#define __ITextProvider2_FWD_DEFINED__
 375typedef interface ITextProvider2 ITextProvider2;
 376#ifdef __cplusplus
 377interface ITextProvider2;
 378#endif /* __cplusplus */
 379#endif
 380
 381#ifndef __ITextEditProvider_FWD_DEFINED__
 382#define __ITextEditProvider_FWD_DEFINED__
 383typedef interface ITextEditProvider ITextEditProvider;
 384#ifdef __cplusplus
 385interface ITextEditProvider;
 386#endif /* __cplusplus */
 387#endif
 388
 389#ifndef __ITextRangeProvider_FWD_DEFINED__
 390#define __ITextRangeProvider_FWD_DEFINED__
 391typedef interface ITextRangeProvider ITextRangeProvider;
 392#ifdef __cplusplus
 393interface ITextRangeProvider;
 394#endif /* __cplusplus */
 395#endif
 396
 397#ifndef __ITextRangeProvider2_FWD_DEFINED__
 398#define __ITextRangeProvider2_FWD_DEFINED__
 399typedef interface ITextRangeProvider2 ITextRangeProvider2;
 400#ifdef __cplusplus
 401interface ITextRangeProvider2;
 402#endif /* __cplusplus */
 403#endif
 404
 405#ifndef __ITextChildProvider_FWD_DEFINED__
 406#define __ITextChildProvider_FWD_DEFINED__
 407typedef interface ITextChildProvider ITextChildProvider;
 408#ifdef __cplusplus
 409interface ITextChildProvider;
 410#endif /* __cplusplus */
 411#endif
 412
 413#ifndef __ICustomNavigationProvider_FWD_DEFINED__
 414#define __ICustomNavigationProvider_FWD_DEFINED__
 415typedef interface ICustomNavigationProvider ICustomNavigationProvider;
 416#ifdef __cplusplus
 417interface ICustomNavigationProvider;
 418#endif /* __cplusplus */
 419#endif
 420
 421#ifndef __IUIAutomationPatternInstance_FWD_DEFINED__
 422#define __IUIAutomationPatternInstance_FWD_DEFINED__
 423typedef interface IUIAutomationPatternInstance IUIAutomationPatternInstance;
 424#ifdef __cplusplus
 425interface IUIAutomationPatternInstance;
 426#endif /* __cplusplus */
 427#endif
 428
 429#ifndef __IUIAutomationPatternHandler_FWD_DEFINED__
 430#define __IUIAutomationPatternHandler_FWD_DEFINED__
 431typedef interface IUIAutomationPatternHandler IUIAutomationPatternHandler;
 432#ifdef __cplusplus
 433interface IUIAutomationPatternHandler;
 434#endif /* __cplusplus */
 435#endif
 436
 437#ifndef __IUIAutomationRegistrar_FWD_DEFINED__
 438#define __IUIAutomationRegistrar_FWD_DEFINED__
 439typedef interface IUIAutomationRegistrar IUIAutomationRegistrar;
 440#ifdef __cplusplus
 441interface IUIAutomationRegistrar;
 442#endif /* __cplusplus */
 443#endif
 444
 445#ifndef __CUIAutomationRegistrar_FWD_DEFINED__
 446#define __CUIAutomationRegistrar_FWD_DEFINED__
 447#ifdef __cplusplus
 448typedef class CUIAutomationRegistrar CUIAutomationRegistrar;
 449#else
 450typedef struct CUIAutomationRegistrar CUIAutomationRegistrar;
 451#endif /* defined __cplusplus */
 452#endif /* defined __CUIAutomationRegistrar_FWD_DEFINED__ */
 453
 454/* Headers for imported files */
 455
 456#include <oaidl.h>
 457#include <oleacc.h>
 458
 459#ifdef __cplusplus
 460extern "C" {
 461#endif
 462
 463enum NavigateDirection {
 464    NavigateDirection_Parent = 0x0,
 465    NavigateDirection_NextSibling = 0x1,
 466    NavigateDirection_PreviousSibling = 0x2,
 467    NavigateDirection_FirstChild = 0x3,
 468    NavigateDirection_LastChild = 0x4
 469};
 470enum ProviderOptions {
 471    ProviderOptions_ClientSideProvider = 0x1,
 472    ProviderOptions_ServerSideProvider = 0x2,
 473    ProviderOptions_NonClientAreaProvider = 0x4,
 474    ProviderOptions_OverrideProvider = 0x8,
 475    ProviderOptions_ProviderOwnsSetFocus = 0x10,
 476    ProviderOptions_UseComThreading = 0x20,
 477    ProviderOptions_RefuseNonClientSupport = 0x40,
 478    ProviderOptions_HasNativeIAccessible = 0x80,
 479    ProviderOptions_UseClientCoordinates = 0x100
 480};
 481enum StructureChangeType {
 482    StructureChangeType_ChildAdded = 0x0,
 483    StructureChangeType_ChildRemoved = 0x1,
 484    StructureChangeType_ChildrenInvalidated = 0x2,
 485    StructureChangeType_ChildrenBulkAdded = 0x3,
 486    StructureChangeType_ChildrenBulkRemoved = 0x4,
 487    StructureChangeType_ChildrenReordered = 0x5
 488};
 489enum TextEditChangeType {
 490    TextEditChangeType_None = 0x0,
 491    TextEditChangeType_AutoCorrect = 0x1,
 492    TextEditChangeType_Composition = 0x2,
 493    TextEditChangeType_CompositionFinalized = 0x3,
 494    TextEditChangeType_AutoComplete = 0x4
 495};
 496enum OrientationType {
 497    OrientationType_None = 0x0,
 498    OrientationType_Horizontal = 0x1,
 499    OrientationType_Vertical = 0x2
 500};
 501enum DockPosition {
 502    DockPosition_Top = 0x0,
 503    DockPosition_Left = 0x1,
 504    DockPosition_Bottom = 0x2,
 505    DockPosition_Right = 0x3,
 506    DockPosition_Fill = 0x4,
 507    DockPosition_None = 0x5
 508};
 509enum ExpandCollapseState {
 510    ExpandCollapseState_Collapsed = 0x0,
 511    ExpandCollapseState_Expanded = 0x1,
 512    ExpandCollapseState_PartiallyExpanded = 0x2,
 513    ExpandCollapseState_LeafNode = 0x3
 514};
 515enum ScrollAmount {
 516    ScrollAmount_LargeDecrement = 0x0,
 517    ScrollAmount_SmallDecrement = 0x1,
 518    ScrollAmount_NoAmount = 0x2,
 519    ScrollAmount_LargeIncrement = 0x3,
 520    ScrollAmount_SmallIncrement = 0x4
 521};
 522enum RowOrColumnMajor {
 523    RowOrColumnMajor_RowMajor = 0x0,
 524    RowOrColumnMajor_ColumnMajor = 0x1,
 525    RowOrColumnMajor_Indeterminate = 0x2
 526};
 527enum ToggleState {
 528    ToggleState_Off = 0x0,
 529    ToggleState_On = 0x1,
 530    ToggleState_Indeterminate = 0x2
 531};
 532enum WindowVisualState {
 533    WindowVisualState_Normal = 0x0,
 534    WindowVisualState_Maximized = 0x1,
 535    WindowVisualState_Minimized = 0x2
 536};
 537enum SynchronizedInputType {
 538    SynchronizedInputType_KeyUp = 0x1,
 539    SynchronizedInputType_KeyDown = 0x2,
 540    SynchronizedInputType_LeftMouseUp = 0x4,
 541    SynchronizedInputType_LeftMouseDown = 0x8,
 542    SynchronizedInputType_RightMouseUp = 0x10,
 543    SynchronizedInputType_RightMouseDown = 0x20
 544};
 545DEFINE_ENUM_FLAG_OPERATORS(SynchronizedInputType)
 546enum WindowInteractionState {
 547    WindowInteractionState_Running = 0x0,
 548    WindowInteractionState_Closing = 0x1,
 549    WindowInteractionState_ReadyForUserInteraction = 0x2,
 550    WindowInteractionState_BlockedByModalWindow = 0x3,
 551    WindowInteractionState_NotResponding = 0x4
 552};
 553enum TextUnit {
 554    TextUnit_Character = 0x0,
 555    TextUnit_Format = 0x1,
 556    TextUnit_Word = 0x2,
 557    TextUnit_Line = 0x3,
 558    TextUnit_Paragraph = 0x4,
 559    TextUnit_Page = 0x5,
 560    TextUnit_Document = 0x6
 561};
 562enum TextPatternRangeEndpoint {
 563    TextPatternRangeEndpoint_Start = 0x0,
 564    TextPatternRangeEndpoint_End = 0x1
 565};
 566enum SupportedTextSelection {
 567    SupportedTextSelection_None = 0x0,
 568    SupportedTextSelection_Single = 0x1,
 569    SupportedTextSelection_Multiple = 0x2
 570};
 571enum LiveSetting {
 572    Off = 0x0,
 573    Polite = 0x1,
 574    Assertive = 0x2
 575};
 576enum ZoomUnit {
 577    ZoomUnit_NoAmount = 0x0,
 578    ZoomUnit_LargeDecrement = 0x1,
 579    ZoomUnit_SmallDecrement = 0x2,
 580    ZoomUnit_LargeIncrement = 0x3,
 581    ZoomUnit_SmallIncrement = 0x4
 582};
 583enum NotificationProcessing {
 584    NotificationProcessing_ImportantAll = 0x0,
 585    NotificationProcessing_ImportantMostRecent = 0x1,
 586    NotificationProcessing_All = 0x2,
 587    NotificationProcessing_MostRecent = 0x3,
 588    NotificationProcessing_CurrentThenMostRecent = 0x4
 589};
 590enum NotificationKind {
 591    NotificationKind_ItemAdded = 0x0,
 592    NotificationKind_ItemRemoved = 0x1,
 593    NotificationKind_ActionCompleted = 0x2,
 594    NotificationKind_ActionAborted = 0x3,
 595    NotificationKind_Other = 0x4
 596};
 597typedef int PROPERTYID;
 598typedef int PATTERNID;
 599typedef int EVENTID;
 600typedef int TEXTATTRIBUTEID;
 601typedef int CONTROLTYPEID;
 602typedef int LANDMARKTYPEID;
 603typedef int METADATAID;
 604typedef int HEADINGLEVELID;
 605struct UiaRect {
 606    double left;
 607    double top;
 608    double width;
 609    double height;
 610};
 611struct UiaPoint {
 612    double x;
 613    double y;
 614};
 615struct UiaChangeInfo {
 616    int uiaId;
 617    VARIANT payload;
 618    VARIANT extraInfo;
 619};
 620#ifndef __UIA_LIBRARY_DEFINED__
 621#define __UIA_LIBRARY_DEFINED__
 622
 623DEFINE_GUID(LIBID_UIA, 0x930299ce, 0x9965, 0x4dec, 0xb0,0xf4, 0xa5,0x48,0x48,0xd4,0xb6,0x67);
 624
 625/*****************************************************************************
 626 * IRawElementProviderSimple interface
 627 */
 628#ifndef __IRawElementProviderSimple_INTERFACE_DEFINED__
 629#define __IRawElementProviderSimple_INTERFACE_DEFINED__
 630
 631DEFINE_GUID(IID_IRawElementProviderSimple, 0xd6dd68d1, 0x86fd, 0x4332, 0x86,0x66, 0x9a,0xbe,0xde,0xa2,0xd2,0x4c);
 632#if defined(__cplusplus) && !defined(CINTERFACE)
 633MIDL_INTERFACE("d6dd68d1-86fd-4332-8666-9abedea2d24c")
 634IRawElementProviderSimple : public IUnknown
 635{
 636    virtual HRESULT STDMETHODCALLTYPE get_ProviderOptions(
 637        enum ProviderOptions *pRetVal) = 0;
 638
 639    virtual HRESULT STDMETHODCALLTYPE GetPatternProvider(
 640        PATTERNID patternId,
 641        IUnknown **pRetVal) = 0;
 642
 643    virtual HRESULT STDMETHODCALLTYPE GetPropertyValue(
 644        PROPERTYID propertyId,
 645        VARIANT *pRetVal) = 0;
 646
 647    virtual HRESULT STDMETHODCALLTYPE get_HostRawElementProvider(
 648        IRawElementProviderSimple **pRetVal) = 0;
 649
 650};
 651#ifdef __CRT_UUID_DECL
 652__CRT_UUID_DECL(IRawElementProviderSimple, 0xd6dd68d1, 0x86fd, 0x4332, 0x86,0x66, 0x9a,0xbe,0xde,0xa2,0xd2,0x4c)
 653#endif
 654#else
 655typedef struct IRawElementProviderSimpleVtbl {
 656    BEGIN_INTERFACE
 657
 658    /*** IUnknown methods ***/
 659    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 660        IRawElementProviderSimple *This,
 661        REFIID riid,
 662        void **ppvObject);
 663
 664    ULONG (STDMETHODCALLTYPE *AddRef)(
 665        IRawElementProviderSimple *This);
 666
 667    ULONG (STDMETHODCALLTYPE *Release)(
 668        IRawElementProviderSimple *This);
 669
 670    /*** IRawElementProviderSimple methods ***/
 671    HRESULT (STDMETHODCALLTYPE *get_ProviderOptions)(
 672        IRawElementProviderSimple *This,
 673        enum ProviderOptions *pRetVal);
 674
 675    HRESULT (STDMETHODCALLTYPE *GetPatternProvider)(
 676        IRawElementProviderSimple *This,
 677        PATTERNID patternId,
 678        IUnknown **pRetVal);
 679
 680    HRESULT (STDMETHODCALLTYPE *GetPropertyValue)(
 681        IRawElementProviderSimple *This,
 682        PROPERTYID propertyId,
 683        VARIANT *pRetVal);
 684
 685    HRESULT (STDMETHODCALLTYPE *get_HostRawElementProvider)(
 686        IRawElementProviderSimple *This,
 687        IRawElementProviderSimple **pRetVal);
 688
 689    END_INTERFACE
 690} IRawElementProviderSimpleVtbl;
 691
 692interface IRawElementProviderSimple {
 693    CONST_VTBL IRawElementProviderSimpleVtbl* lpVtbl;
 694};
 695
 696#ifdef COBJMACROS
 697#ifndef WIDL_C_INLINE_WRAPPERS
 698/*** IUnknown methods ***/
 699#define IRawElementProviderSimple_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 700#define IRawElementProviderSimple_AddRef(This) (This)->lpVtbl->AddRef(This)
 701#define IRawElementProviderSimple_Release(This) (This)->lpVtbl->Release(This)
 702/*** IRawElementProviderSimple methods ***/
 703#define IRawElementProviderSimple_get_ProviderOptions(This,pRetVal) (This)->lpVtbl->get_ProviderOptions(This,pRetVal)
 704#define IRawElementProviderSimple_GetPatternProvider(This,patternId,pRetVal) (This)->lpVtbl->GetPatternProvider(This,patternId,pRetVal)
 705#define IRawElementProviderSimple_GetPropertyValue(This,propertyId,pRetVal) (This)->lpVtbl->GetPropertyValue(This,propertyId,pRetVal)
 706#define IRawElementProviderSimple_get_HostRawElementProvider(This,pRetVal) (This)->lpVtbl->get_HostRawElementProvider(This,pRetVal)
 707#else
 708/*** IUnknown methods ***/
 709static inline HRESULT IRawElementProviderSimple_QueryInterface(IRawElementProviderSimple* This,REFIID riid,void **ppvObject) {
 710    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 711}
 712static inline ULONG IRawElementProviderSimple_AddRef(IRawElementProviderSimple* This) {
 713    return This->lpVtbl->AddRef(This);
 714}
 715static inline ULONG IRawElementProviderSimple_Release(IRawElementProviderSimple* This) {
 716    return This->lpVtbl->Release(This);
 717}
 718/*** IRawElementProviderSimple methods ***/
 719static inline HRESULT IRawElementProviderSimple_get_ProviderOptions(IRawElementProviderSimple* This,enum ProviderOptions *pRetVal) {
 720    return This->lpVtbl->get_ProviderOptions(This,pRetVal);
 721}
 722static inline HRESULT IRawElementProviderSimple_GetPatternProvider(IRawElementProviderSimple* This,PATTERNID patternId,IUnknown **pRetVal) {
 723    return This->lpVtbl->GetPatternProvider(This,patternId,pRetVal);
 724}
 725static inline HRESULT IRawElementProviderSimple_GetPropertyValue(IRawElementProviderSimple* This,PROPERTYID propertyId,VARIANT *pRetVal) {
 726    return This->lpVtbl->GetPropertyValue(This,propertyId,pRetVal);
 727}
 728static inline HRESULT IRawElementProviderSimple_get_HostRawElementProvider(IRawElementProviderSimple* This,IRawElementProviderSimple **pRetVal) {
 729    return This->lpVtbl->get_HostRawElementProvider(This,pRetVal);
 730}
 731#endif
 732#endif
 733
 734#endif
 735
 736
 737#endif  /* __IRawElementProviderSimple_INTERFACE_DEFINED__ */
 738
 739/*****************************************************************************
 740 * IRawElementProviderSimple2 interface
 741 */
 742#ifndef __IRawElementProviderSimple2_INTERFACE_DEFINED__
 743#define __IRawElementProviderSimple2_INTERFACE_DEFINED__
 744
 745DEFINE_GUID(IID_IRawElementProviderSimple2, 0xa0a839a9, 0x8da1, 0x4a82, 0x80,0x6a, 0x8e,0x0d,0x44,0xe7,0x9f,0x56);
 746#if defined(__cplusplus) && !defined(CINTERFACE)
 747MIDL_INTERFACE("a0a839a9-8da1-4a82-806a-8e0d44e79f56")
 748IRawElementProviderSimple2 : public IRawElementProviderSimple
 749{
 750    virtual HRESULT STDMETHODCALLTYPE ShowContextMenu(
 751        ) = 0;
 752
 753};
 754#ifdef __CRT_UUID_DECL
 755__CRT_UUID_DECL(IRawElementProviderSimple2, 0xa0a839a9, 0x8da1, 0x4a82, 0x80,0x6a, 0x8e,0x0d,0x44,0xe7,0x9f,0x56)
 756#endif
 757#else
 758typedef struct IRawElementProviderSimple2Vtbl {
 759    BEGIN_INTERFACE
 760
 761    /*** IUnknown methods ***/
 762    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 763        IRawElementProviderSimple2 *This,
 764        REFIID riid,
 765        void **ppvObject);
 766
 767    ULONG (STDMETHODCALLTYPE *AddRef)(
 768        IRawElementProviderSimple2 *This);
 769
 770    ULONG (STDMETHODCALLTYPE *Release)(
 771        IRawElementProviderSimple2 *This);
 772
 773    /*** IRawElementProviderSimple methods ***/
 774    HRESULT (STDMETHODCALLTYPE *get_ProviderOptions)(
 775        IRawElementProviderSimple2 *This,
 776        enum ProviderOptions *pRetVal);
 777
 778    HRESULT (STDMETHODCALLTYPE *GetPatternProvider)(
 779        IRawElementProviderSimple2 *This,
 780        PATTERNID patternId,
 781        IUnknown **pRetVal);
 782
 783    HRESULT (STDMETHODCALLTYPE *GetPropertyValue)(
 784        IRawElementProviderSimple2 *This,
 785        PROPERTYID propertyId,
 786        VARIANT *pRetVal);
 787
 788    HRESULT (STDMETHODCALLTYPE *get_HostRawElementProvider)(
 789        IRawElementProviderSimple2 *This,
 790        IRawElementProviderSimple **pRetVal);
 791
 792    /*** IRawElementProviderSimple2 methods ***/
 793    HRESULT (STDMETHODCALLTYPE *ShowContextMenu)(
 794        IRawElementProviderSimple2 *This);
 795
 796    END_INTERFACE
 797} IRawElementProviderSimple2Vtbl;
 798
 799interface IRawElementProviderSimple2 {
 800    CONST_VTBL IRawElementProviderSimple2Vtbl* lpVtbl;
 801};
 802
 803#ifdef COBJMACROS
 804#ifndef WIDL_C_INLINE_WRAPPERS
 805/*** IUnknown methods ***/
 806#define IRawElementProviderSimple2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 807#define IRawElementProviderSimple2_AddRef(This) (This)->lpVtbl->AddRef(This)
 808#define IRawElementProviderSimple2_Release(This) (This)->lpVtbl->Release(This)
 809/*** IRawElementProviderSimple methods ***/
 810#define IRawElementProviderSimple2_get_ProviderOptions(This,pRetVal) (This)->lpVtbl->get_ProviderOptions(This,pRetVal)
 811#define IRawElementProviderSimple2_GetPatternProvider(This,patternId,pRetVal) (This)->lpVtbl->GetPatternProvider(This,patternId,pRetVal)
 812#define IRawElementProviderSimple2_GetPropertyValue(This,propertyId,pRetVal) (This)->lpVtbl->GetPropertyValue(This,propertyId,pRetVal)
 813#define IRawElementProviderSimple2_get_HostRawElementProvider(This,pRetVal) (This)->lpVtbl->get_HostRawElementProvider(This,pRetVal)
 814/*** IRawElementProviderSimple2 methods ***/
 815#define IRawElementProviderSimple2_ShowContextMenu(This) (This)->lpVtbl->ShowContextMenu(This)
 816#else
 817/*** IUnknown methods ***/
 818static inline HRESULT IRawElementProviderSimple2_QueryInterface(IRawElementProviderSimple2* This,REFIID riid,void **ppvObject) {
 819    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 820}
 821static inline ULONG IRawElementProviderSimple2_AddRef(IRawElementProviderSimple2* This) {
 822    return This->lpVtbl->AddRef(This);
 823}
 824static inline ULONG IRawElementProviderSimple2_Release(IRawElementProviderSimple2* This) {
 825    return This->lpVtbl->Release(This);
 826}
 827/*** IRawElementProviderSimple methods ***/
 828static inline HRESULT IRawElementProviderSimple2_get_ProviderOptions(IRawElementProviderSimple2* This,enum ProviderOptions *pRetVal) {
 829    return This->lpVtbl->get_ProviderOptions(This,pRetVal);
 830}
 831static inline HRESULT IRawElementProviderSimple2_GetPatternProvider(IRawElementProviderSimple2* This,PATTERNID patternId,IUnknown **pRetVal) {
 832    return This->lpVtbl->GetPatternProvider(This,patternId,pRetVal);
 833}
 834static inline HRESULT IRawElementProviderSimple2_GetPropertyValue(IRawElementProviderSimple2* This,PROPERTYID propertyId,VARIANT *pRetVal) {
 835    return This->lpVtbl->GetPropertyValue(This,propertyId,pRetVal);
 836}
 837static inline HRESULT IRawElementProviderSimple2_get_HostRawElementProvider(IRawElementProviderSimple2* This,IRawElementProviderSimple **pRetVal) {
 838    return This->lpVtbl->get_HostRawElementProvider(This,pRetVal);
 839}
 840/*** IRawElementProviderSimple2 methods ***/
 841static inline HRESULT IRawElementProviderSimple2_ShowContextMenu(IRawElementProviderSimple2* This) {
 842    return This->lpVtbl->ShowContextMenu(This);
 843}
 844#endif
 845#endif
 846
 847#endif
 848
 849
 850#endif  /* __IRawElementProviderSimple2_INTERFACE_DEFINED__ */
 851
 852/*****************************************************************************
 853 * IRawElementProviderSimple3 interface
 854 */
 855#ifndef __IRawElementProviderSimple3_INTERFACE_DEFINED__
 856#define __IRawElementProviderSimple3_INTERFACE_DEFINED__
 857
 858DEFINE_GUID(IID_IRawElementProviderSimple3, 0xfcf5d820, 0xd7ec, 0x4613, 0xbd,0xf6, 0x42,0xa8,0x4c,0xe7,0xda,0xaf);
 859#if defined(__cplusplus) && !defined(CINTERFACE)
 860MIDL_INTERFACE("fcf5d820-d7ec-4613-bdf6-42a84ce7daaf")
 861IRawElementProviderSimple3 : public IRawElementProviderSimple2
 862{
 863    virtual HRESULT STDMETHODCALLTYPE GetMetadataValue(
 864        int targetId,
 865        METADATAID metadataId,
 866        VARIANT *returnVal) = 0;
 867
 868};
 869#ifdef __CRT_UUID_DECL
 870__CRT_UUID_DECL(IRawElementProviderSimple3, 0xfcf5d820, 0xd7ec, 0x4613, 0xbd,0xf6, 0x42,0xa8,0x4c,0xe7,0xda,0xaf)
 871#endif
 872#else
 873typedef struct IRawElementProviderSimple3Vtbl {
 874    BEGIN_INTERFACE
 875
 876    /*** IUnknown methods ***/
 877    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 878        IRawElementProviderSimple3 *This,
 879        REFIID riid,
 880        void **ppvObject);
 881
 882    ULONG (STDMETHODCALLTYPE *AddRef)(
 883        IRawElementProviderSimple3 *This);
 884
 885    ULONG (STDMETHODCALLTYPE *Release)(
 886        IRawElementProviderSimple3 *This);
 887
 888    /*** IRawElementProviderSimple methods ***/
 889    HRESULT (STDMETHODCALLTYPE *get_ProviderOptions)(
 890        IRawElementProviderSimple3 *This,
 891        enum ProviderOptions *pRetVal);
 892
 893    HRESULT (STDMETHODCALLTYPE *GetPatternProvider)(
 894        IRawElementProviderSimple3 *This,
 895        PATTERNID patternId,
 896        IUnknown **pRetVal);
 897
 898    HRESULT (STDMETHODCALLTYPE *GetPropertyValue)(
 899        IRawElementProviderSimple3 *This,
 900        PROPERTYID propertyId,
 901        VARIANT *pRetVal);
 902
 903    HRESULT (STDMETHODCALLTYPE *get_HostRawElementProvider)(
 904        IRawElementProviderSimple3 *This,
 905        IRawElementProviderSimple **pRetVal);
 906
 907    /*** IRawElementProviderSimple2 methods ***/
 908    HRESULT (STDMETHODCALLTYPE *ShowContextMenu)(
 909        IRawElementProviderSimple3 *This);
 910
 911    /*** IRawElementProviderSimple3 methods ***/
 912    HRESULT (STDMETHODCALLTYPE *GetMetadataValue)(
 913        IRawElementProviderSimple3 *This,
 914        int targetId,
 915        METADATAID metadataId,
 916        VARIANT *returnVal);
 917
 918    END_INTERFACE
 919} IRawElementProviderSimple3Vtbl;
 920
 921interface IRawElementProviderSimple3 {
 922    CONST_VTBL IRawElementProviderSimple3Vtbl* lpVtbl;
 923};
 924
 925#ifdef COBJMACROS
 926#ifndef WIDL_C_INLINE_WRAPPERS
 927/*** IUnknown methods ***/
 928#define IRawElementProviderSimple3_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 929#define IRawElementProviderSimple3_AddRef(This) (This)->lpVtbl->AddRef(This)
 930#define IRawElementProviderSimple3_Release(This) (This)->lpVtbl->Release(This)
 931/*** IRawElementProviderSimple methods ***/
 932#define IRawElementProviderSimple3_get_ProviderOptions(This,pRetVal) (This)->lpVtbl->get_ProviderOptions(This,pRetVal)
 933#define IRawElementProviderSimple3_GetPatternProvider(This,patternId,pRetVal) (This)->lpVtbl->GetPatternProvider(This,patternId,pRetVal)
 934#define IRawElementProviderSimple3_GetPropertyValue(This,propertyId,pRetVal) (This)->lpVtbl->GetPropertyValue(This,propertyId,pRetVal)
 935#define IRawElementProviderSimple3_get_HostRawElementProvider(This,pRetVal) (This)->lpVtbl->get_HostRawElementProvider(This,pRetVal)
 936/*** IRawElementProviderSimple2 methods ***/
 937#define IRawElementProviderSimple3_ShowContextMenu(This) (This)->lpVtbl->ShowContextMenu(This)
 938/*** IRawElementProviderSimple3 methods ***/
 939#define IRawElementProviderSimple3_GetMetadataValue(This,targetId,metadataId,returnVal) (This)->lpVtbl->GetMetadataValue(This,targetId,metadataId,returnVal)
 940#else
 941/*** IUnknown methods ***/
 942static inline HRESULT IRawElementProviderSimple3_QueryInterface(IRawElementProviderSimple3* This,REFIID riid,void **ppvObject) {
 943    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 944}
 945static inline ULONG IRawElementProviderSimple3_AddRef(IRawElementProviderSimple3* This) {
 946    return This->lpVtbl->AddRef(This);
 947}
 948static inline ULONG IRawElementProviderSimple3_Release(IRawElementProviderSimple3* This) {
 949    return This->lpVtbl->Release(This);
 950}
 951/*** IRawElementProviderSimple methods ***/
 952static inline HRESULT IRawElementProviderSimple3_get_ProviderOptions(IRawElementProviderSimple3* This,enum ProviderOptions *pRetVal) {
 953    return This->lpVtbl->get_ProviderOptions(This,pRetVal);
 954}
 955static inline HRESULT IRawElementProviderSimple3_GetPatternProvider(IRawElementProviderSimple3* This,PATTERNID patternId,IUnknown **pRetVal) {
 956    return This->lpVtbl->GetPatternProvider(This,patternId,pRetVal);
 957}
 958static inline HRESULT IRawElementProviderSimple3_GetPropertyValue(IRawElementProviderSimple3* This,PROPERTYID propertyId,VARIANT *pRetVal) {
 959    return This->lpVtbl->GetPropertyValue(This,propertyId,pRetVal);
 960}
 961static inline HRESULT IRawElementProviderSimple3_get_HostRawElementProvider(IRawElementProviderSimple3* This,IRawElementProviderSimple **pRetVal) {
 962    return This->lpVtbl->get_HostRawElementProvider(This,pRetVal);
 963}
 964/*** IRawElementProviderSimple2 methods ***/
 965static inline HRESULT IRawElementProviderSimple3_ShowContextMenu(IRawElementProviderSimple3* This) {
 966    return This->lpVtbl->ShowContextMenu(This);
 967}
 968/*** IRawElementProviderSimple3 methods ***/
 969static inline HRESULT IRawElementProviderSimple3_GetMetadataValue(IRawElementProviderSimple3* This,int targetId,METADATAID metadataId,VARIANT *returnVal) {
 970    return This->lpVtbl->GetMetadataValue(This,targetId,metadataId,returnVal);
 971}
 972#endif
 973#endif
 974
 975#endif
 976
 977
 978#endif  /* __IRawElementProviderSimple3_INTERFACE_DEFINED__ */
 979
 980/*****************************************************************************
 981 * IAccessibleEx interface
 982 */
 983#ifndef __IAccessibleEx_INTERFACE_DEFINED__
 984#define __IAccessibleEx_INTERFACE_DEFINED__
 985
 986DEFINE_GUID(IID_IAccessibleEx, 0xf8b80ada, 0x2c44, 0x48d0, 0x89,0xbe, 0x5f,0xf2,0x3c,0x9c,0xd8,0x75);
 987#if defined(__cplusplus) && !defined(CINTERFACE)
 988MIDL_INTERFACE("f8b80ada-2c44-48d0-89be-5ff23c9cd875")
 989IAccessibleEx : public IUnknown
 990{
 991    virtual HRESULT STDMETHODCALLTYPE GetObjectForChild(
 992        LONG idChild,
 993        IAccessibleEx **pRetVal) = 0;
 994
 995    virtual HRESULT STDMETHODCALLTYPE GetIAccessiblePair(
 996        IAccessible **ppAcc,
 997        LONG *pidChild) = 0;
 998
 999    virtual HRESULT STDMETHODCALLTYPE GetRuntimeId(
1000        SAFEARRAY **pRetVal) = 0;
1001
1002    virtual HRESULT STDMETHODCALLTYPE ConvertReturnedElement(
1003        IRawElementProviderSimple *pIn,
1004        IAccessibleEx **ppRetValOut) = 0;
1005
1006};
1007#ifdef __CRT_UUID_DECL
1008__CRT_UUID_DECL(IAccessibleEx, 0xf8b80ada, 0x2c44, 0x48d0, 0x89,0xbe, 0x5f,0xf2,0x3c,0x9c,0xd8,0x75)
1009#endif
1010#else
1011typedef struct IAccessibleExVtbl {
1012    BEGIN_INTERFACE
1013
1014    /*** IUnknown methods ***/
1015    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1016        IAccessibleEx *This,
1017        REFIID riid,
1018        void **ppvObject);
1019
1020    ULONG (STDMETHODCALLTYPE *AddRef)(
1021        IAccessibleEx *This);
1022
1023    ULONG (STDMETHODCALLTYPE *Release)(
1024        IAccessibleEx *This);
1025
1026    /*** IAccessibleEx methods ***/
1027    HRESULT (STDMETHODCALLTYPE *GetObjectForChild)(
1028        IAccessibleEx *This,
1029        LONG idChild,
1030        IAccessibleEx **pRetVal);
1031
1032    HRESULT (STDMETHODCALLTYPE *GetIAccessiblePair)(
1033        IAccessibleEx *This,
1034        IAccessible **ppAcc,
1035        LONG *pidChild);
1036
1037    HRESULT (STDMETHODCALLTYPE *GetRuntimeId)(
1038        IAccessibleEx *This,
1039        SAFEARRAY **pRetVal);
1040
1041    HRESULT (STDMETHODCALLTYPE *ConvertReturnedElement)(
1042        IAccessibleEx *This,
1043        IRawElementProviderSimple *pIn,
1044        IAccessibleEx **ppRetValOut);
1045
1046    END_INTERFACE
1047} IAccessibleExVtbl;
1048
1049interface IAccessibleEx {
1050    CONST_VTBL IAccessibleExVtbl* lpVtbl;
1051};
1052
1053#ifdef COBJMACROS
1054#ifndef WIDL_C_INLINE_WRAPPERS
1055/*** IUnknown methods ***/
1056#define IAccessibleEx_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1057#define IAccessibleEx_AddRef(This) (This)->lpVtbl->AddRef(This)
1058#define IAccessibleEx_Release(This) (This)->lpVtbl->Release(This)
1059/*** IAccessibleEx methods ***/
1060#define IAccessibleEx_GetObjectForChild(This,idChild,pRetVal) (This)->lpVtbl->GetObjectForChild(This,idChild,pRetVal)
1061#define IAccessibleEx_GetIAccessiblePair(This,ppAcc,pidChild) (This)->lpVtbl->GetIAccessiblePair(This,ppAcc,pidChild)
1062#define IAccessibleEx_GetRuntimeId(This,pRetVal) (This)->lpVtbl->GetRuntimeId(This,pRetVal)
1063#define IAccessibleEx_ConvertReturnedElement(This,pIn,ppRetValOut) (This)->lpVtbl->ConvertReturnedElement(This,pIn,ppRetValOut)
1064#else
1065/*** IUnknown methods ***/
1066static inline HRESULT IAccessibleEx_QueryInterface(IAccessibleEx* This,REFIID riid,void **ppvObject) {
1067    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1068}
1069static inline ULONG IAccessibleEx_AddRef(IAccessibleEx* This) {
1070    return This->lpVtbl->AddRef(This);
1071}
1072static inline ULONG IAccessibleEx_Release(IAccessibleEx* This) {
1073    return This->lpVtbl->Release(This);
1074}
1075/*** IAccessibleEx methods ***/
1076static inline HRESULT IAccessibleEx_GetObjectForChild(IAccessibleEx* This,LONG idChild,IAccessibleEx **pRetVal) {
1077    return This->lpVtbl->GetObjectForChild(This,idChild,pRetVal);
1078}
1079static inline HRESULT IAccessibleEx_GetIAccessiblePair(IAccessibleEx* This,IAccessible **ppAcc,LONG *pidChild) {
1080    return This->lpVtbl->GetIAccessiblePair(This,ppAcc,pidChild);
1081}
1082static inline HRESULT IAccessibleEx_GetRuntimeId(IAccessibleEx* This,SAFEARRAY **pRetVal) {
1083    return This->lpVtbl->GetRuntimeId(This,pRetVal);
1084}
1085static inline HRESULT IAccessibleEx_ConvertReturnedElement(IAccessibleEx* This,IRawElementProviderSimple *pIn,IAccessibleEx **ppRetValOut) {
1086    return This->lpVtbl->ConvertReturnedElement(This,pIn,ppRetValOut);
1087}
1088#endif
1089#endif
1090
1091#endif
1092
1093
1094#endif  /* __IAccessibleEx_INTERFACE_DEFINED__ */
1095
1096#ifndef __IRawElementProviderFragmentRoot_FWD_DEFINED__
1097#define __IRawElementProviderFragmentRoot_FWD_DEFINED__
1098typedef interface IRawElementProviderFragmentRoot IRawElementProviderFragmentRoot;
1099#ifdef __cplusplus
1100interface IRawElementProviderFragmentRoot;
1101#endif /* __cplusplus */
1102#endif
1103
1104/*****************************************************************************
1105 * IRawElementProviderFragment interface
1106 */
1107#ifndef __IRawElementProviderFragment_INTERFACE_DEFINED__
1108#define __IRawElementProviderFragment_INTERFACE_DEFINED__
1109
1110DEFINE_GUID(IID_IRawElementProviderFragment, 0xf7063da8, 0x8359, 0x439c, 0x92,0x97, 0xbb,0xc5,0x29,0x9a,0x7d,0x87);
1111#if defined(__cplusplus) && !defined(CINTERFACE)
1112MIDL_INTERFACE("f7063da8-8359-439c-9297-bbc5299a7d87")
1113IRawElementProviderFragment : public IUnknown
1114{
1115    virtual HRESULT STDMETHODCALLTYPE Navigate(
1116        enum NavigateDirection direction,
1117        IRawElementProviderFragment **pRetVal) = 0;
1118
1119    virtual HRESULT STDMETHODCALLTYPE GetRuntimeId(
1120        SAFEARRAY **pRetVal) = 0;
1121
1122    virtual HRESULT STDMETHODCALLTYPE get_BoundingRectangle(
1123        struct UiaRect *pRetVal) = 0;
1124
1125    virtual HRESULT STDMETHODCALLTYPE GetEmbeddedFragmentRoots(
1126        SAFEARRAY **pRetVal) = 0;
1127
1128    virtual HRESULT STDMETHODCALLTYPE SetFocus(
1129        ) = 0;
1130
1131    virtual HRESULT STDMETHODCALLTYPE get_FragmentRoot(
1132        IRawElementProviderFragmentRoot **pRetVal) = 0;
1133
1134};
1135#ifdef __CRT_UUID_DECL
1136__CRT_UUID_DECL(IRawElementProviderFragment, 0xf7063da8, 0x8359, 0x439c, 0x92,0x97, 0xbb,0xc5,0x29,0x9a,0x7d,0x87)
1137#endif
1138#else
1139typedef struct IRawElementProviderFragmentVtbl {
1140    BEGIN_INTERFACE
1141
1142    /*** IUnknown methods ***/
1143    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1144        IRawElementProviderFragment *This,
1145        REFIID riid,
1146        void **ppvObject);
1147
1148    ULONG (STDMETHODCALLTYPE *AddRef)(
1149        IRawElementProviderFragment *This);
1150
1151    ULONG (STDMETHODCALLTYPE *Release)(
1152        IRawElementProviderFragment *This);
1153
1154    /*** IRawElementProviderFragment methods ***/
1155    HRESULT (STDMETHODCALLTYPE *Navigate)(
1156        IRawElementProviderFragment *This,
1157        enum NavigateDirection direction,
1158        IRawElementProviderFragment **pRetVal);
1159
1160    HRESULT (STDMETHODCALLTYPE *GetRuntimeId)(
1161        IRawElementProviderFragment *This,
1162        SAFEARRAY **pRetVal);
1163
1164    HRESULT (STDMETHODCALLTYPE *get_BoundingRectangle)(
1165        IRawElementProviderFragment *This,
1166        struct UiaRect *pRetVal);
1167
1168    HRESULT (STDMETHODCALLTYPE *GetEmbeddedFragmentRoots)(
1169        IRawElementProviderFragment *This,
1170        SAFEARRAY **pRetVal);
1171
1172    HRESULT (STDMETHODCALLTYPE *SetFocus)(
1173        IRawElementProviderFragment *This);
1174
1175    HRESULT (STDMETHODCALLTYPE *get_FragmentRoot)(
1176        IRawElementProviderFragment *This,
1177        IRawElementProviderFragmentRoot **pRetVal);
1178
1179    END_INTERFACE
1180} IRawElementProviderFragmentVtbl;
1181
1182interface IRawElementProviderFragment {
1183    CONST_VTBL IRawElementProviderFragmentVtbl* lpVtbl;
1184};
1185
1186#ifdef COBJMACROS
1187#ifndef WIDL_C_INLINE_WRAPPERS
1188/*** IUnknown methods ***/
1189#define IRawElementProviderFragment_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1190#define IRawElementProviderFragment_AddRef(This) (This)->lpVtbl->AddRef(This)
1191#define IRawElementProviderFragment_Release(This) (This)->lpVtbl->Release(This)
1192/*** IRawElementProviderFragment methods ***/
1193#define IRawElementProviderFragment_Navigate(This,direction,pRetVal) (This)->lpVtbl->Navigate(This,direction,pRetVal)
1194#define IRawElementProviderFragment_GetRuntimeId(This,pRetVal) (This)->lpVtbl->GetRuntimeId(This,pRetVal)
1195#define IRawElementProviderFragment_get_BoundingRectangle(This,pRetVal) (This)->lpVtbl->get_BoundingRectangle(This,pRetVal)
1196#define IRawElementProviderFragment_GetEmbeddedFragmentRoots(This,pRetVal) (This)->lpVtbl->GetEmbeddedFragmentRoots(This,pRetVal)
1197#define IRawElementProviderFragment_SetFocus(This) (This)->lpVtbl->SetFocus(This)
1198#define IRawElementProviderFragment_get_FragmentRoot(This,pRetVal) (This)->lpVtbl->get_FragmentRoot(This,pRetVal)
1199#else
1200/*** IUnknown methods ***/
1201static inline HRESULT IRawElementProviderFragment_QueryInterface(IRawElementProviderFragment* This,REFIID riid,void **ppvObject) {
1202    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1203}
1204static inline ULONG IRawElementProviderFragment_AddRef(IRawElementProviderFragment* This) {
1205    return This->lpVtbl->AddRef(This);
1206}
1207static inline ULONG IRawElementProviderFragment_Release(IRawElementProviderFragment* This) {
1208    return This->lpVtbl->Release(This);
1209}
1210/*** IRawElementProviderFragment methods ***/
1211static inline HRESULT IRawElementProviderFragment_Navigate(IRawElementProviderFragment* This,enum NavigateDirection direction,IRawElementProviderFragment **pRetVal) {
1212    return This->lpVtbl->Navigate(This,direction,pRetVal);
1213}
1214static inline HRESULT IRawElementProviderFragment_GetRuntimeId(IRawElementProviderFragment* This,SAFEARRAY **pRetVal) {
1215    return This->lpVtbl->GetRuntimeId(This,pRetVal);
1216}
1217static inline HRESULT IRawElementProviderFragment_get_BoundingRectangle(IRawElementProviderFragment* This,struct UiaRect *pRetVal) {
1218    return This->lpVtbl->get_BoundingRectangle(This,pRetVal);
1219}
1220static inline HRESULT IRawElementProviderFragment_GetEmbeddedFragmentRoots(IRawElementProviderFragment* This,SAFEARRAY **pRetVal) {
1221    return This->lpVtbl->GetEmbeddedFragmentRoots(This,pRetVal);
1222}
1223static inline HRESULT IRawElementProviderFragment_SetFocus(IRawElementProviderFragment* This) {
1224    return This->lpVtbl->SetFocus(This);
1225}
1226static inline HRESULT IRawElementProviderFragment_get_FragmentRoot(IRawElementProviderFragment* This,IRawElementProviderFragmentRoot **pRetVal) {
1227    return This->lpVtbl->get_FragmentRoot(This,pRetVal);
1228}
1229#endif
1230#endif
1231
1232#endif
1233
1234
1235#endif  /* __IRawElementProviderFragment_INTERFACE_DEFINED__ */
1236
1237/*****************************************************************************
1238 * IRawElementProviderFragmentRoot interface
1239 */
1240#ifndef __IRawElementProviderFragmentRoot_INTERFACE_DEFINED__
1241#define __IRawElementProviderFragmentRoot_INTERFACE_DEFINED__
1242
1243DEFINE_GUID(IID_IRawElementProviderFragmentRoot, 0x620ce2a5, 0xab8f, 0x40a9, 0x86,0xcb, 0xde,0x3c,0x75,0x59,0x9b,0x58);
1244#if defined(__cplusplus) && !defined(CINTERFACE)
1245MIDL_INTERFACE("620ce2a5-ab8f-40a9-86cb-de3c75599b58")
1246IRawElementProviderFragmentRoot : public IUnknown
1247{
1248    virtual HRESULT STDMETHODCALLTYPE ElementProviderFromPoint(
1249        double x,
1250        double y,
1251        IRawElementProviderFragment **pRetVal) = 0;
1252
1253    virtual HRESULT STDMETHODCALLTYPE GetFocus(
1254        IRawElementProviderFragment **pRetVal) = 0;
1255
1256};
1257#ifdef __CRT_UUID_DECL
1258__CRT_UUID_DECL(IRawElementProviderFragmentRoot, 0x620ce2a5, 0xab8f, 0x40a9, 0x86,0xcb, 0xde,0x3c,0x75,0x59,0x9b,0x58)
1259#endif
1260#else
1261typedef struct IRawElementProviderFragmentRootVtbl {
1262    BEGIN_INTERFACE
1263
1264    /*** IUnknown methods ***/
1265    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1266        IRawElementProviderFragmentRoot *This,
1267        REFIID riid,
1268        void **ppvObject);
1269
1270    ULONG (STDMETHODCALLTYPE *AddRef)(
1271        IRawElementProviderFragmentRoot *This);
1272
1273    ULONG (STDMETHODCALLTYPE *Release)(
1274        IRawElementProviderFragmentRoot *This);
1275
1276    /*** IRawElementProviderFragmentRoot methods ***/
1277    HRESULT (STDMETHODCALLTYPE *ElementProviderFromPoint)(
1278        IRawElementProviderFragmentRoot *This,
1279        double x,
1280        double y,
1281        IRawElementProviderFragment **pRetVal);
1282
1283    HRESULT (STDMETHODCALLTYPE *GetFocus)(
1284        IRawElementProviderFragmentRoot *This,
1285        IRawElementProviderFragment **pRetVal);
1286
1287    END_INTERFACE
1288} IRawElementProviderFragmentRootVtbl;
1289
1290interface IRawElementProviderFragmentRoot {
1291    CONST_VTBL IRawElementProviderFragmentRootVtbl* lpVtbl;
1292};
1293
1294#ifdef COBJMACROS
1295#ifndef WIDL_C_INLINE_WRAPPERS
1296/*** IUnknown methods ***/
1297#define IRawElementProviderFragmentRoot_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1298#define IRawElementProviderFragmentRoot_AddRef(This) (This)->lpVtbl->AddRef(This)
1299#define IRawElementProviderFragmentRoot_Release(This) (This)->lpVtbl->Release(This)
1300/*** IRawElementProviderFragmentRoot methods ***/
1301#define IRawElementProviderFragmentRoot_ElementProviderFromPoint(This,x,y,pRetVal) (This)->lpVtbl->ElementProviderFromPoint(This,x,y,pRetVal)
1302#define IRawElementProviderFragmentRoot_GetFocus(This,pRetVal) (This)->lpVtbl->GetFocus(This,pRetVal)
1303#else
1304/*** IUnknown methods ***/
1305static inline HRESULT IRawElementProviderFragmentRoot_QueryInterface(IRawElementProviderFragmentRoot* This,REFIID riid,void **ppvObject) {
1306    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1307}
1308static inline ULONG IRawElementProviderFragmentRoot_AddRef(IRawElementProviderFragmentRoot* This) {
1309    return This->lpVtbl->AddRef(This);
1310}
1311static inline ULONG IRawElementProviderFragmentRoot_Release(IRawElementProviderFragmentRoot* This) {
1312    return This->lpVtbl->Release(This);
1313}
1314/*** IRawElementProviderFragmentRoot methods ***/
1315static inline HRESULT IRawElementProviderFragmentRoot_ElementProviderFromPoint(IRawElementProviderFragmentRoot* This,double x,double y,IRawElementProviderFragment **pRetVal) {
1316    return This->lpVtbl->ElementProviderFromPoint(This,x,y,pRetVal);
1317}
1318static inline HRESULT IRawElementProviderFragmentRoot_GetFocus(IRawElementProviderFragmentRoot* This,IRawElementProviderFragment **pRetVal) {
1319    return This->lpVtbl->GetFocus(This,pRetVal);
1320}
1321#endif
1322#endif
1323
1324#endif
1325
1326
1327#endif  /* __IRawElementProviderFragmentRoot_INTERFACE_DEFINED__ */
1328
1329/*****************************************************************************
1330 * IRawElementProviderHwndOverride interface
1331 */
1332#ifndef __IRawElementProviderHwndOverride_INTERFACE_DEFINED__
1333#define __IRawElementProviderHwndOverride_INTERFACE_DEFINED__
1334
1335DEFINE_GUID(IID_IRawElementProviderHwndOverride, 0x1d5df27c, 0x8947, 0x4425, 0xb8,0xd9, 0x79,0x78,0x7b,0xb4,0x60,0xb8);
1336#if defined(__cplusplus) && !defined(CINTERFACE)
1337MIDL_INTERFACE("1d5df27c-8947-4425-b8d9-79787bb460b8")
1338IRawElementProviderHwndOverride : public IUnknown
1339{
1340    virtual HRESULT STDMETHODCALLTYPE GetOverrideProviderForHwnd(
1341        HWND hwnd,
1342        IRawElementProviderSimple **pRetVal) = 0;
1343
1344};
1345#ifdef __CRT_UUID_DECL
1346__CRT_UUID_DECL(IRawElementProviderHwndOverride, 0x1d5df27c, 0x8947, 0x4425, 0xb8,0xd9, 0x79,0x78,0x7b,0xb4,0x60,0xb8)
1347#endif
1348#else
1349typedef struct IRawElementProviderHwndOverrideVtbl {
1350    BEGIN_INTERFACE
1351
1352    /*** IUnknown methods ***/
1353    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1354        IRawElementProviderHwndOverride *This,
1355        REFIID riid,
1356        void **ppvObject);
1357
1358    ULONG (STDMETHODCALLTYPE *AddRef)(
1359        IRawElementProviderHwndOverride *This);
1360
1361    ULONG (STDMETHODCALLTYPE *Release)(
1362        IRawElementProviderHwndOverride *This);
1363
1364    /*** IRawElementProviderHwndOverride methods ***/
1365    HRESULT (STDMETHODCALLTYPE *GetOverrideProviderForHwnd)(
1366        IRawElementProviderHwndOverride *This,
1367        HWND hwnd,
1368        IRawElementProviderSimple **pRetVal);
1369
1370    END_INTERFACE
1371} IRawElementProviderHwndOverrideVtbl;
1372
1373interface IRawElementProviderHwndOverride {
1374    CONST_VTBL IRawElementProviderHwndOverrideVtbl* lpVtbl;
1375};
1376
1377#ifdef COBJMACROS
1378#ifndef WIDL_C_INLINE_WRAPPERS
1379/*** IUnknown methods ***/
1380#define IRawElementProviderHwndOverride_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1381#define IRawElementProviderHwndOverride_AddRef(This) (This)->lpVtbl->AddRef(This)
1382#define IRawElementProviderHwndOverride_Release(This) (This)->lpVtbl->Release(This)
1383/*** IRawElementProviderHwndOverride methods ***/
1384#define IRawElementProviderHwndOverride_GetOverrideProviderForHwnd(This,hwnd,pRetVal) (This)->lpVtbl->GetOverrideProviderForHwnd(This,hwnd,pRetVal)
1385#else
1386/*** IUnknown methods ***/
1387static inline HRESULT IRawElementProviderHwndOverride_QueryInterface(IRawElementProviderHwndOverride* This,REFIID riid,void **ppvObject) {
1388    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1389}
1390static inline ULONG IRawElementProviderHwndOverride_AddRef(IRawElementProviderHwndOverride* This) {
1391    return This->lpVtbl->AddRef(This);
1392}
1393static inline ULONG IRawElementProviderHwndOverride_Release(IRawElementProviderHwndOverride* This) {
1394    return This->lpVtbl->Release(This);
1395}
1396/*** IRawElementProviderHwndOverride methods ***/
1397static inline HRESULT IRawElementProviderHwndOverride_GetOverrideProviderForHwnd(IRawElementProviderHwndOverride* This,HWND hwnd,IRawElementProviderSimple **pRetVal) {
1398    return This->lpVtbl->GetOverrideProviderForHwnd(This,hwnd,pRetVal);
1399}
1400#endif
1401#endif
1402
1403#endif
1404
1405
1406#endif  /* __IRawElementProviderHwndOverride_INTERFACE_DEFINED__ */
1407
1408/*****************************************************************************
1409 * IRawElementProviderAdviseEvents interface
1410 */
1411#ifndef __IRawElementProviderAdviseEvents_INTERFACE_DEFINED__
1412#define __IRawElementProviderAdviseEvents_INTERFACE_DEFINED__
1413
1414DEFINE_GUID(IID_IRawElementProviderAdviseEvents, 0xa407b27b, 0x0f6d, 0x4427, 0x92,0x92, 0x47,0x3c,0x7b,0xf9,0x32,0x58);
1415#if defined(__cplusplus) && !defined(CINTERFACE)
1416MIDL_INTERFACE("a407b27b-0f6d-4427-9292-473c7bf93258")
1417IRawElementProviderAdviseEvents : public IUnknown
1418{
1419    virtual HRESULT STDMETHODCALLTYPE AdviseEventAdded(
1420        EVENTID eventId,
1421        SAFEARRAY *propertyIDs) = 0;
1422
1423    virtual HRESULT STDMETHODCALLTYPE AdviseEventRemoved(
1424        EVENTID eventId,
1425        SAFEARRAY *propertyIDs) = 0;
1426
1427};
1428#ifdef __CRT_UUID_DECL
1429__CRT_UUID_DECL(IRawElementProviderAdviseEvents, 0xa407b27b, 0x0f6d, 0x4427, 0x92,0x92, 0x47,0x3c,0x7b,0xf9,0x32,0x58)
1430#endif
1431#else
1432typedef struct IRawElementProviderAdviseEventsVtbl {
1433    BEGIN_INTERFACE
1434
1435    /*** IUnknown methods ***/
1436    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1437        IRawElementProviderAdviseEvents *This,
1438        REFIID riid,
1439        void **ppvObject);
1440
1441    ULONG (STDMETHODCALLTYPE *AddRef)(
1442        IRawElementProviderAdviseEvents *This);
1443
1444    ULONG (STDMETHODCALLTYPE *Release)(
1445        IRawElementProviderAdviseEvents *This);
1446
1447    /*** IRawElementProviderAdviseEvents methods ***/
1448    HRESULT (STDMETHODCALLTYPE *AdviseEventAdded)(
1449        IRawElementProviderAdviseEvents *This,
1450        EVENTID eventId,
1451        SAFEARRAY *propertyIDs);
1452
1453    HRESULT (STDMETHODCALLTYPE *AdviseEventRemoved)(
1454        IRawElementProviderAdviseEvents *This,
1455        EVENTID eventId,
1456        SAFEARRAY *propertyIDs);
1457
1458    END_INTERFACE
1459} IRawElementProviderAdviseEventsVtbl;
1460
1461interface IRawElementProviderAdviseEvents {
1462    CONST_VTBL IRawElementProviderAdviseEventsVtbl* lpVtbl;
1463};
1464
1465#ifdef COBJMACROS
1466#ifndef WIDL_C_INLINE_WRAPPERS
1467/*** IUnknown methods ***/
1468#define IRawElementProviderAdviseEvents_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1469#define IRawElementProviderAdviseEvents_AddRef(This) (This)->lpVtbl->AddRef(This)
1470#define IRawElementProviderAdviseEvents_Release(This) (This)->lpVtbl->Release(This)
1471/*** IRawElementProviderAdviseEvents methods ***/
1472#define IRawElementProviderAdviseEvents_AdviseEventAdded(This,eventId,propertyIDs) (This)->lpVtbl->AdviseEventAdded(This,eventId,propertyIDs)
1473#define IRawElementProviderAdviseEvents_AdviseEventRemoved(This,eventId,propertyIDs) (This)->lpVtbl->AdviseEventRemoved(This,eventId,propertyIDs)
1474#else
1475/*** IUnknown methods ***/
1476static inline HRESULT IRawElementProviderAdviseEvents_QueryInterface(IRawElementProviderAdviseEvents* This,REFIID riid,void **ppvObject) {
1477    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1478}
1479static inline ULONG IRawElementProviderAdviseEvents_AddRef(IRawElementProviderAdviseEvents* This) {
1480    return This->lpVtbl->AddRef(This);
1481}
1482static inline ULONG IRawElementProviderAdviseEvents_Release(IRawElementProviderAdviseEvents* This) {
1483    return This->lpVtbl->Release(This);
1484}
1485/*** IRawElementProviderAdviseEvents methods ***/
1486static inline HRESULT IRawElementProviderAdviseEvents_AdviseEventAdded(IRawElementProviderAdviseEvents* This,EVENTID eventId,SAFEARRAY *propertyIDs) {
1487    return This->lpVtbl->AdviseEventAdded(This,eventId,propertyIDs);
1488}
1489static inline HRESULT IRawElementProviderAdviseEvents_AdviseEventRemoved(IRawElementProviderAdviseEvents* This,EVENTID eventId,SAFEARRAY *propertyIDs) {
1490    return This->lpVtbl->AdviseEventRemoved(This,eventId,propertyIDs);
1491}
1492#endif
1493#endif
1494
1495#endif
1496
1497
1498#endif  /* __IRawElementProviderAdviseEvents_INTERFACE_DEFINED__ */
1499
1500/*****************************************************************************
1501 * IProxyProviderWinEventSink interface
1502 */
1503#ifndef __IProxyProviderWinEventSink_INTERFACE_DEFINED__
1504#define __IProxyProviderWinEventSink_INTERFACE_DEFINED__
1505
1506DEFINE_GUID(IID_IProxyProviderWinEventSink, 0x4fd82b78, 0xa43e, 0x46ac, 0x98,0x03, 0x0a,0x69,0x69,0xc7,0xc1,0x83);
1507#if defined(__cplusplus) && !defined(CINTERFACE)
1508MIDL_INTERFACE("4fd82b78-a43e-46ac-9803-0a6969c7c183")
1509IProxyProviderWinEventSink : public IUnknown
1510{
1511    virtual HRESULT STDMETHODCALLTYPE AddAutomationPropertyChangedEvent(
1512        IRawElementProviderSimple *pProvider,
1513        PROPERTYID id,
1514        VARIANT newValue) = 0;
1515
1516    virtual HRESULT STDMETHODCALLTYPE AddAutomationEvent(
1517        IRawElementProviderSimple *pProvider,
1518        EVENTID id) = 0;
1519
1520    virtual HRESULT STDMETHODCALLTYPE AddStructureChangedEvent(
1521        IRawElementProviderSimple *pProvider,
1522        enum StructureChangeType structureChangeType,
1523        SAFEARRAY *runtimeId) = 0;
1524
1525};
1526#ifdef __CRT_UUID_DECL
1527__CRT_UUID_DECL(IProxyProviderWinEventSink, 0x4fd82b78, 0xa43e, 0x46ac, 0x98,0x03, 0x0a,0x69,0x69,0xc7,0xc1,0x83)
1528#endif
1529#else
1530typedef struct IProxyProviderWinEventSinkVtbl {
1531    BEGIN_INTERFACE
1532
1533    /*** IUnknown methods ***/
1534    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1535        IProxyProviderWinEventSink *This,
1536        REFIID riid,
1537        void **ppvObject);
1538
1539    ULONG (STDMETHODCALLTYPE *AddRef)(
1540        IProxyProviderWinEventSink *This);
1541
1542    ULONG (STDMETHODCALLTYPE *Release)(
1543        IProxyProviderWinEventSink *This);
1544
1545    /*** IProxyProviderWinEventSink methods ***/
1546    HRESULT (STDMETHODCALLTYPE *AddAutomationPropertyChangedEvent)(
1547        IProxyProviderWinEventSink *This,
1548        IRawElementProviderSimple *pProvider,
1549        PROPERTYID id,
1550        VARIANT newValue);
1551
1552    HRESULT (STDMETHODCALLTYPE *AddAutomationEvent)(
1553        IProxyProviderWinEventSink *This,
1554        IRawElementProviderSimple *pProvider,
1555        EVENTID id);
1556
1557    HRESULT (STDMETHODCALLTYPE *AddStructureChangedEvent)(
1558        IProxyProviderWinEventSink *This,
1559        IRawElementProviderSimple *pProvider,
1560        enum StructureChangeType structureChangeType,
1561        SAFEARRAY *runtimeId);
1562
1563    END_INTERFACE
1564} IProxyProviderWinEventSinkVtbl;
1565
1566interface IProxyProviderWinEventSink {
1567    CONST_VTBL IProxyProviderWinEventSinkVtbl* lpVtbl;
1568};
1569
1570#ifdef COBJMACROS
1571#ifndef WIDL_C_INLINE_WRAPPERS
1572/*** IUnknown methods ***/
1573#define IProxyProviderWinEventSink_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1574#define IProxyProviderWinEventSink_AddRef(This) (This)->lpVtbl->AddRef(This)
1575#define IProxyProviderWinEventSink_Release(This) (This)->lpVtbl->Release(This)
1576/*** IProxyProviderWinEventSink methods ***/
1577#define IProxyProviderWinEventSink_AddAutomationPropertyChangedEvent(This,pProvider,id,newValue) (This)->lpVtbl->AddAutomationPropertyChangedEvent(This,pProvider,id,newValue)
1578#define IProxyProviderWinEventSink_AddAutomationEvent(This,pProvider,id) (This)->lpVtbl->AddAutomationEvent(This,pProvider,id)
1579#define IProxyProviderWinEventSink_AddStructureChangedEvent(This,pProvider,structureChangeType,runtimeId) (This)->lpVtbl->AddStructureChangedEvent(This,pProvider,structureChangeType,runtimeId)
1580#else
1581/*** IUnknown methods ***/
1582static inline HRESULT IProxyProviderWinEventSink_QueryInterface(IProxyProviderWinEventSink* This,REFIID riid,void **ppvObject) {
1583    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1584}
1585static inline ULONG IProxyProviderWinEventSink_AddRef(IProxyProviderWinEventSink* This) {
1586    return This->lpVtbl->AddRef(This);
1587}
1588static inline ULONG IProxyProviderWinEventSink_Release(IProxyProviderWinEventSink* This) {
1589    return This->lpVtbl->Release(This);
1590}
1591/*** IProxyProviderWinEventSink methods ***/
1592static inline HRESULT IProxyProviderWinEventSink_AddAutomationPropertyChangedEvent(IProxyProviderWinEventSink* This,IRawElementProviderSimple *pProvider,PROPERTYID id,VARIANT newValue) {
1593    return This->lpVtbl->AddAutomationPropertyChangedEvent(This,pProvider,id,newValue);
1594}
1595static inline HRESULT IProxyProviderWinEventSink_AddAutomationEvent(IProxyProviderWinEventSink* This,IRawElementProviderSimple *pProvider,EVENTID id) {
1596    return This->lpVtbl->AddAutomationEvent(This,pProvider,id);
1597}
1598static inline HRESULT IProxyProviderWinEventSink_AddStructureChangedEvent(IProxyProviderWinEventSink* This,IRawElementProviderSimple *pProvider,enum StructureChangeType structureChangeType,SAFEARRAY *runtimeId) {
1599    return This->lpVtbl->AddStructureChangedEvent(This,pProvider,structureChangeType,runtimeId);
1600}
1601#endif
1602#endif
1603
1604#endif
1605
1606
1607#endif  /* __IProxyProviderWinEventSink_INTERFACE_DEFINED__ */
1608
1609/*****************************************************************************
1610 * IProxyProviderWinEventHandler interface
1611 */
1612#ifndef __IProxyProviderWinEventHandler_INTERFACE_DEFINED__
1613#define __IProxyProviderWinEventHandler_INTERFACE_DEFINED__
1614
1615DEFINE_GUID(IID_IProxyProviderWinEventHandler, 0x89592ad4, 0xf4e0, 0x43d5, 0xa3,0xb6, 0xba,0xd7,0xe1,0x11,0xb4,0x35);
1616#if defined(__cplusplus) && !defined(CINTERFACE)
1617MIDL_INTERFACE("89592ad4-f4e0-43d5-a3b6-bad7e111b435")
1618IProxyProviderWinEventHandler : public IUnknown
1619{
1620    virtual HRESULT STDMETHODCALLTYPE RespondToWinEvent(
1621        DWORD idWinEvent,
1622        HWND hwnd,
1623        LONG idObject,
1624        LONG idChild,
1625        IProxyProviderWinEventSink *pSink) = 0;
1626
1627};
1628#ifdef __CRT_UUID_DECL
1629__CRT_UUID_DECL(IProxyProviderWinEventHandler, 0x89592ad4, 0xf4e0, 0x43d5, 0xa3,0xb6, 0xba,0xd7,0xe1,0x11,0xb4,0x35)
1630#endif
1631#else
1632typedef struct IProxyProviderWinEventHandlerVtbl {
1633    BEGIN_INTERFACE
1634
1635    /*** IUnknown methods ***/
1636    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1637        IProxyProviderWinEventHandler *This,
1638        REFIID riid,
1639        void **ppvObject);
1640
1641    ULONG (STDMETHODCALLTYPE *AddRef)(
1642        IProxyProviderWinEventHandler *This);
1643
1644    ULONG (STDMETHODCALLTYPE *Release)(
1645        IProxyProviderWinEventHandler *This);
1646
1647    /*** IProxyProviderWinEventHandler methods ***/
1648    HRESULT (STDMETHODCALLTYPE *RespondToWinEvent)(
1649        IProxyProviderWinEventHandler *This,
1650        DWORD idWinEvent,
1651        HWND hwnd,
1652        LONG idObject,
1653        LONG idChild,
1654        IProxyProviderWinEventSink *pSink);
1655
1656    END_INTERFACE
1657} IProxyProviderWinEventHandlerVtbl;
1658
1659interface IProxyProviderWinEventHandler {
1660    CONST_VTBL IProxyProviderWinEventHandlerVtbl* lpVtbl;
1661};
1662
1663#ifdef COBJMACROS
1664#ifndef WIDL_C_INLINE_WRAPPERS
1665/*** IUnknown methods ***/
1666#define IProxyProviderWinEventHandler_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1667#define IProxyProviderWinEventHandler_AddRef(This) (This)->lpVtbl->AddRef(This)
1668#define IProxyProviderWinEventHandler_Release(This) (This)->lpVtbl->Release(This)
1669/*** IProxyProviderWinEventHandler methods ***/
1670#define IProxyProviderWinEventHandler_RespondToWinEvent(This,idWinEvent,hwnd,idObject,idChild,pSink) (This)->lpVtbl->RespondToWinEvent(This,idWinEvent,hwnd,idObject,idChild,pSink)
1671#else
1672/*** IUnknown methods ***/
1673static inline HRESULT IProxyProviderWinEventHandler_QueryInterface(IProxyProviderWinEventHandler* This,REFIID riid,void **ppvObject) {
1674    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1675}
1676static inline ULONG IProxyProviderWinEventHandler_AddRef(IProxyProviderWinEventHandler* This) {
1677    return This->lpVtbl->AddRef(This);
1678}
1679static inline ULONG IProxyProviderWinEventHandler_Release(IProxyProviderWinEventHandler* This) {
1680    return This->lpVtbl->Release(This);
1681}
1682/*** IProxyProviderWinEventHandler methods ***/
1683static inline HRESULT IProxyProviderWinEventHandler_RespondToWinEvent(IProxyProviderWinEventHandler* This,DWORD idWinEvent,HWND hwnd,LONG idObject,LONG idChild,IProxyProviderWinEventSink *pSink) {
1684    return This->lpVtbl->RespondToWinEvent(This,idWinEvent,hwnd,idObject,idChild,pSink);
1685}
1686#endif
1687#endif
1688
1689#endif
1690
1691
1692#endif  /* __IProxyProviderWinEventHandler_INTERFACE_DEFINED__ */
1693
1694/*****************************************************************************
1695 * IRawElementProviderWindowlessSite interface
1696 */
1697#ifndef __IRawElementProviderWindowlessSite_INTERFACE_DEFINED__
1698#define __IRawElementProviderWindowlessSite_INTERFACE_DEFINED__
1699
1700DEFINE_GUID(IID_IRawElementProviderWindowlessSite, 0x0a2a93cc, 0xbfad, 0x42ac, 0x9b,0x2e, 0x09,0x91,0xfb,0x0d,0x3e,0xa0);
1701#if defined(__cplusplus) && !defined(CINTERFACE)
1702MIDL_INTERFACE("0a2a93cc-bfad-42ac-9b2e-0991fb0d3ea0")
1703IRawElementProviderWindowlessSite : public IUnknown
1704{
1705    virtual HRESULT STDMETHODCALLTYPE GetAdjacentFragment(
1706        enum NavigateDirection direction,
1707        IRawElementProviderFragment **ppParent) = 0;
1708
1709    virtual HRESULT STDMETHODCALLTYPE GetRuntimeIdPrefix(
1710        SAFEARRAY **pRetVal) = 0;
1711
1712};
1713#ifdef __CRT_UUID_DECL
1714__CRT_UUID_DECL(IRawElementProviderWindowlessSite, 0x0a2a93cc, 0xbfad, 0x42ac, 0x9b,0x2e, 0x09,0x91,0xfb,0x0d,0x3e,0xa0)
1715#endif
1716#else
1717typedef struct IRawElementProviderWindowlessSiteVtbl {
1718    BEGIN_INTERFACE
1719
1720    /*** IUnknown methods ***/
1721    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1722        IRawElementProviderWindowlessSite *This,
1723        REFIID riid,
1724        void **ppvObject);
1725
1726    ULONG (STDMETHODCALLTYPE *AddRef)(
1727        IRawElementProviderWindowlessSite *This);
1728
1729    ULONG (STDMETHODCALLTYPE *Release)(
1730        IRawElementProviderWindowlessSite *This);
1731
1732    /*** IRawElementProviderWindowlessSite methods ***/
1733    HRESULT (STDMETHODCALLTYPE *GetAdjacentFragment)(
1734        IRawElementProviderWindowlessSite *This,
1735        enum NavigateDirection direction,
1736        IRawElementProviderFragment **ppParent);
1737
1738    HRESULT (STDMETHODCALLTYPE *GetRuntimeIdPrefix)(
1739        IRawElementProviderWindowlessSite *This,
1740        SAFEARRAY **pRetVal);
1741
1742    END_INTERFACE
1743} IRawElementProviderWindowlessSiteVtbl;
1744
1745interface IRawElementProviderWindowlessSite {
1746    CONST_VTBL IRawElementProviderWindowlessSiteVtbl* lpVtbl;
1747};
1748
1749#ifdef COBJMACROS
1750#ifndef WIDL_C_INLINE_WRAPPERS
1751/*** IUnknown methods ***/
1752#define IRawElementProviderWindowlessSite_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1753#define IRawElementProviderWindowlessSite_AddRef(This) (This)->lpVtbl->AddRef(This)
1754#define IRawElementProviderWindowlessSite_Release(This) (This)->lpVtbl->Release(This)
1755/*** IRawElementProviderWindowlessSite methods ***/
1756#define IRawElementProviderWindowlessSite_GetAdjacentFragment(This,direction,ppParent) (This)->lpVtbl->GetAdjacentFragment(This,direction,ppParent)
1757#define IRawElementProviderWindowlessSite_GetRuntimeIdPrefix(This,pRetVal) (This)->lpVtbl->GetRuntimeIdPrefix(This,pRetVal)
1758#else
1759/*** IUnknown methods ***/
1760static inline HRESULT IRawElementProviderWindowlessSite_QueryInterface(IRawElementProviderWindowlessSite* This,REFIID riid,void **ppvObject) {
1761    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1762}
1763static inline ULONG IRawElementProviderWindowlessSite_AddRef(IRawElementProviderWindowlessSite* This) {
1764    return This->lpVtbl->AddRef(This);
1765}
1766static inline ULONG IRawElementProviderWindowlessSite_Release(IRawElementProviderWindowlessSite* This) {
1767    return This->lpVtbl->Release(This);
1768}
1769/*** IRawElementProviderWindowlessSite methods ***/
1770static inline HRESULT IRawElementProviderWindowlessSite_GetAdjacentFragment(IRawElementProviderWindowlessSite* This,enum NavigateDirection direction,IRawElementProviderFragment **ppParent) {
1771    return This->lpVtbl->GetAdjacentFragment(This,direction,ppParent);
1772}
1773static inline HRESULT IRawElementProviderWindowlessSite_GetRuntimeIdPrefix(IRawElementProviderWindowlessSite* This,SAFEARRAY **pRetVal) {
1774    return This->lpVtbl->GetRuntimeIdPrefix(This,pRetVal);
1775}
1776#endif
1777#endif
1778
1779#endif
1780
1781
1782#endif  /* __IRawElementProviderWindowlessSite_INTERFACE_DEFINED__ */
1783
1784/*****************************************************************************
1785 * IAccessibleHostingElementProviders interface
1786 */
1787#ifndef __IAccessibleHostingElementProviders_INTERFACE_DEFINED__
1788#define __IAccessibleHostingElementProviders_INTERFACE_DEFINED__
1789
1790DEFINE_GUID(IID_IAccessibleHostingElementProviders, 0x33ac331b, 0x943e, 0x4020, 0xb2,0x95, 0xdb,0x37,0x78,0x49,0x74,0xa3);
1791#if defined(__cplusplus) && !defined(CINTERFACE)
1792MIDL_INTERFACE("33ac331b-943e-4020-b295-db37784974a3")
1793IAccessibleHostingElementProviders : public IUnknown
1794{
1795    virtual HRESULT STDMETHODCALLTYPE GetEmbeddedFragmentRoots(
1796        SAFEARRAY **pRetVal) = 0;
1797
1798    virtual HRESULT STDMETHODCALLTYPE GetObjectIdForProvider(
1799        IRawElementProviderSimple *pProvider,
1800        LONG *pidObject) = 0;
1801
1802};
1803#ifdef __CRT_UUID_DECL
1804__CRT_UUID_DECL(IAccessibleHostingElementProviders, 0x33ac331b, 0x943e, 0x4020, 0xb2,0x95, 0xdb,0x37,0x78,0x49,0x74,0xa3)
1805#endif
1806#else
1807typedef struct IAccessibleHostingElementProvidersVtbl {
1808    BEGIN_INTERFACE
1809
1810    /*** IUnknown methods ***/
1811    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1812        IAccessibleHostingElementProviders *This,
1813        REFIID riid,
1814        void **ppvObject);
1815
1816    ULONG (STDMETHODCALLTYPE *AddRef)(
1817        IAccessibleHostingElementProviders *This);
1818
1819    ULONG (STDMETHODCALLTYPE *Release)(
1820        IAccessibleHostingElementProviders *This);
1821
1822    /*** IAccessibleHostingElementProviders methods ***/
1823    HRESULT (STDMETHODCALLTYPE *GetEmbeddedFragmentRoots)(
1824        IAccessibleHostingElementProviders *This,
1825        SAFEARRAY **pRetVal);
1826
1827    HRESULT (STDMETHODCALLTYPE *GetObjectIdForProvider)(
1828        IAccessibleHostingElementProviders *This,
1829        IRawElementProviderSimple *pProvider,
1830        LONG *pidObject);
1831
1832    END_INTERFACE
1833} IAccessibleHostingElementProvidersVtbl;
1834
1835interface IAccessibleHostingElementProviders {
1836    CONST_VTBL IAccessibleHostingElementProvidersVtbl* lpVtbl;
1837};
1838
1839#ifdef COBJMACROS
1840#ifndef WIDL_C_INLINE_WRAPPERS
1841/*** IUnknown methods ***/
1842#define IAccessibleHostingElementProviders_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1843#define IAccessibleHostingElementProviders_AddRef(This) (This)->lpVtbl->AddRef(This)
1844#define IAccessibleHostingElementProviders_Release(This) (This)->lpVtbl->Release(This)
1845/*** IAccessibleHostingElementProviders methods ***/
1846#define IAccessibleHostingElementProviders_GetEmbeddedFragmentRoots(This,pRetVal) (This)->lpVtbl->GetEmbeddedFragmentRoots(This,pRetVal)
1847#define IAccessibleHostingElementProviders_GetObjectIdForProvider(This,pProvider,pidObject) (This)->lpVtbl->GetObjectIdForProvider(This,pProvider,pidObject)
1848#else
1849/*** IUnknown methods ***/
1850static inline HRESULT IAccessibleHostingElementProviders_QueryInterface(IAccessibleHostingElementProviders* This,REFIID riid,void **ppvObject) {
1851    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1852}
1853static inline ULONG IAccessibleHostingElementProviders_AddRef(IAccessibleHostingElementProviders* This) {
1854    return This->lpVtbl->AddRef(This);
1855}
1856static inline ULONG IAccessibleHostingElementProviders_Release(IAccessibleHostingElementProviders* This) {
1857    return This->lpVtbl->Release(This);
1858}
1859/*** IAccessibleHostingElementProviders methods ***/
1860static inline HRESULT IAccessibleHostingElementProviders_GetEmbeddedFragmentRoots(IAccessibleHostingElementProviders* This,SAFEARRAY **pRetVal) {
1861    return This->lpVtbl->GetEmbeddedFragmentRoots(This,pRetVal);
1862}
1863static inline HRESULT IAccessibleHostingElementProviders_GetObjectIdForProvider(IAccessibleHostingElementProviders* This,IRawElementProviderSimple *pProvider,LONG *pidObject) {
1864    return This->lpVtbl->GetObjectIdForProvider(This,pProvider,pidObject);
1865}
1866#endif
1867#endif
1868
1869#endif
1870
1871
1872#endif  /* __IAccessibleHostingElementProviders_INTERFACE_DEFINED__ */
1873
1874/*****************************************************************************
1875 * IRawElementProviderHostingAccessibles interface
1876 */
1877#ifndef __IRawElementProviderHostingAccessibles_INTERFACE_DEFINED__
1878#define __IRawElementProviderHostingAccessibles_INTERFACE_DEFINED__
1879
1880DEFINE_GUID(IID_IRawElementProviderHostingAccessibles, 0x24be0b07, 0xd37d, 0x487a, 0x98,0xcf, 0xa1,0x3e,0xd4,0x65,0xe9,0xb3);
1881#if defined(__cplusplus) && !defined(CINTERFACE)
1882MIDL_INTERFACE("24be0b07-d37d-487a-98cf-a13ed465e9b3")
1883IRawElementProviderHostingAccessibles : public IUnknown
1884{
1885    virtual HRESULT STDMETHODCALLTYPE GetEmbeddedAccessibles(
1886        SAFEARRAY **pRetVal) = 0;
1887
1888};
1889#ifdef __CRT_UUID_DECL
1890__CRT_UUID_DECL(IRawElementProviderHostingAccessibles, 0x24be0b07, 0xd37d, 0x487a, 0x98,0xcf, 0xa1,0x3e,0xd4,0x65,0xe9,0xb3)
1891#endif
1892#else
1893typedef struct IRawElementProviderHostingAccessiblesVtbl {
1894    BEGIN_INTERFACE
1895
1896    /*** IUnknown methods ***/
1897    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1898        IRawElementProviderHostingAccessibles *This,
1899        REFIID riid,
1900        void **ppvObject);
1901
1902    ULONG (STDMETHODCALLTYPE *AddRef)(
1903        IRawElementProviderHostingAccessibles *This);
1904
1905    ULONG (STDMETHODCALLTYPE *Release)(
1906        IRawElementProviderHostingAccessibles *This);
1907
1908    /*** IRawElementProviderHostingAccessibles methods ***/
1909    HRESULT (STDMETHODCALLTYPE *GetEmbeddedAccessibles)(
1910        IRawElementProviderHostingAccessibles *This,
1911        SAFEARRAY **pRetVal);
1912
1913    END_INTERFACE
1914} IRawElementProviderHostingAccessiblesVtbl;
1915
1916interface IRawElementProviderHostingAccessibles {
1917    CONST_VTBL IRawElementProviderHostingAccessiblesVtbl* lpVtbl;
1918};
1919
1920#ifdef COBJMACROS
1921#ifndef WIDL_C_INLINE_WRAPPERS
1922/*** IUnknown methods ***/
1923#define IRawElementProviderHostingAccessibles_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1924#define IRawElementProviderHostingAccessibles_AddRef(This) (This)->lpVtbl->AddRef(This)
1925#define IRawElementProviderHostingAccessibles_Release(This) (This)->lpVtbl->Release(This)
1926/*** IRawElementProviderHostingAccessibles methods ***/
1927#define IRawElementProviderHostingAccessibles_GetEmbeddedAccessibles(This,pRetVal) (This)->lpVtbl->GetEmbeddedAccessibles(This,pRetVal)
1928#else
1929/*** IUnknown methods ***/
1930static inline HRESULT IRawElementProviderHostingAccessibles_QueryInterface(IRawElementProviderHostingAccessibles* This,REFIID riid,void **ppvObject) {
1931    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1932}
1933static inline ULONG IRawElementProviderHostingAccessibles_AddRef(IRawElementProviderHostingAccessibles* This) {
1934    return This->lpVtbl->AddRef(This);
1935}
1936static inline ULONG IRawElementProviderHostingAccessibles_Release(IRawElementProviderHostingAccessibles* This) {
1937    return This->lpVtbl->Release(This);
1938}
1939/*** IRawElementProviderHostingAccessibles methods ***/
1940static inline HRESULT IRawElementProviderHostingAccessibles_GetEmbeddedAccessibles(IRawElementProviderHostingAccessibles* This,SAFEARRAY **pRetVal) {
1941    return This->lpVtbl->GetEmbeddedAccessibles(This,pRetVal);
1942}
1943#endif
1944#endif
1945
1946#endif
1947
1948
1949#endif  /* __IRawElementProviderHostingAccessibles_INTERFACE_DEFINED__ */
1950
1951/*****************************************************************************
1952 * ILegacyIAccessibleProvider interface
1953 */
1954#ifndef __ILegacyIAccessibleProvider_INTERFACE_DEFINED__
1955#define __ILegacyIAccessibleProvider_INTERFACE_DEFINED__
1956
1957DEFINE_GUID(IID_ILegacyIAccessibleProvider, 0xe44c3566, 0x915d, 0x4070, 0x99,0xc6, 0x04,0x7b,0xff,0x5a,0x08,0xf5);
1958#if defined(__cplusplus) && !defined(CINTERFACE)
1959MIDL_INTERFACE("e44c3566-915d-4070-99c6-047bff5a08f5")
1960ILegacyIAccessibleProvider : public IUnknown
1961{
1962    virtual HRESULT STDMETHODCALLTYPE Select(
1963        LONG flagsSelect) = 0;
1964
1965    virtual HRESULT STDMETHODCALLTYPE DoDefaultAction(
1966        ) = 0;
1967
1968    virtual HRESULT STDMETHODCALLTYPE SetValue(
1969        LPCWSTR szValue) = 0;
1970
1971    virtual HRESULT STDMETHODCALLTYPE GetIAccessible(
1972        IAccessible **ppAccessible) = 0;
1973
1974    virtual HRESULT STDMETHODCALLTYPE get_ChildId(
1975        int *pRetVal) = 0;
1976
1977    virtual HRESULT STDMETHODCALLTYPE get_Name(
1978        BSTR *pszName) = 0;
1979
1980    virtual HRESULT STDMETHODCALLTYPE get_Value(
1981        BSTR *pszValue) = 0;
1982
1983    virtual HRESULT STDMETHODCALLTYPE get_Description(
1984        BSTR *pszDescription) = 0;
1985
1986    virtual HRESULT STDMETHODCALLTYPE get_Role(
1987        DWORD *pdwRole) = 0;
1988
1989    virtual HRESULT STDMETHODCALLTYPE get_State(
1990        DWORD *pdwState) = 0;
1991
1992    virtual HRESULT STDMETHODCALLTYPE get_Help(
1993        BSTR *pszHelp) = 0;
1994
1995    virtual HRESULT STDMETHODCALLTYPE get_KeyboardShortcut(
1996        BSTR *pszKeyboardShortcut) = 0;
1997
1998    virtual HRESULT STDMETHODCALLTYPE GetSelection(
1999        SAFEARRAY **pvarSelectedChildren) = 0;
2000
2001    virtual HRESULT STDMETHODCALLTYPE get_DefaultAction(
2002        BSTR *pszDefaultAction) = 0;
2003
2004};
2005#ifdef __CRT_UUID_DECL
2006__CRT_UUID_DECL(ILegacyIAccessibleProvider, 0xe44c3566, 0x915d, 0x4070, 0x99,0xc6, 0x04,0x7b,0xff,0x5a,0x08,0xf5)
2007#endif
2008#else
2009typedef struct ILegacyIAccessibleProviderVtbl {
2010    BEGIN_INTERFACE
2011
2012    /*** IUnknown methods ***/
2013    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
2014        ILegacyIAccessibleProvider *This,
2015        REFIID riid,
2016        void **ppvObject);
2017
2018    ULONG (STDMETHODCALLTYPE *AddRef)(
2019        ILegacyIAccessibleProvider *This);
2020
2021    ULONG (STDMETHODCALLTYPE *Release)(
2022        ILegacyIAccessibleProvider *This);
2023
2024    /*** ILegacyIAccessibleProvider methods ***/
2025    HRESULT (STDMETHODCALLTYPE *Select)(
2026        ILegacyIAccessibleProvider *This,
2027        LONG flagsSelect);
2028
2029    HRESULT (STDMETHODCALLTYPE *DoDefaultAction)(
2030        ILegacyIAccessibleProvider *This);
2031
2032    HRESULT (STDMETHODCALLTYPE *SetValue)(
2033        ILegacyIAccessibleProvider *This,
2034        LPCWSTR szValue);
2035
2036    HRESULT (STDMETHODCALLTYPE *GetIAccessible)(
2037        ILegacyIAccessibleProvider *This,
2038        IAccessible **ppAccessible);
2039
2040    HRESULT (STDMETHODCALLTYPE *get_ChildId)(
2041        ILegacyIAccessibleProvider *This,
2042        int *pRetVal);
2043
2044    HRESULT (STDMETHODCALLTYPE *get_Name)(
2045        ILegacyIAccessibleProvider *This,
2046        BSTR *pszName);
2047
2048    HRESULT (STDMETHODCALLTYPE *get_Value)(
2049        ILegacyIAccessibleProvider *This,
2050        BSTR *pszValue);
2051
2052    HRESULT (STDMETHODCALLTYPE *get_Description)(
2053        ILegacyIAccessibleProvider *This,
2054        BSTR *pszDescription);
2055
2056    HRESULT (STDMETHODCALLTYPE *get_Role)(
2057        ILegacyIAccessibleProvider *This,
2058        DWORD *pdwRole);
2059
2060    HRESULT (STDMETHODCALLTYPE *get_State)(
2061        ILegacyIAccessibleProvider *This,
2062        DWORD *pdwState);
2063
2064    HRESULT (STDMETHODCALLTYPE *get_Help)(
2065        ILegacyIAccessibleProvider *This,
2066        BSTR *pszHelp);
2067
2068    HRESULT (STDMETHODCALLTYPE *get_KeyboardShortcut)(
2069        ILegacyIAccessibleProvider *This,
2070        BSTR *pszKeyboardShortcut);
2071
2072    HRESULT (STDMETHODCALLTYPE *GetSelection)(
2073        ILegacyIAccessibleProvider *This,
2074        SAFEARRAY **pvarSelectedChildren);
2075
2076    HRESULT (STDMETHODCALLTYPE *get_DefaultAction)(
2077        ILegacyIAccessibleProvider *This,
2078        BSTR *pszDefaultAction);
2079
2080    END_INTERFACE
2081} ILegacyIAccessibleProviderVtbl;
2082
2083interface ILegacyIAccessibleProvider {
2084    CONST_VTBL ILegacyIAccessibleProviderVtbl* lpVtbl;
2085};
2086
2087#ifdef COBJMACROS
2088#ifndef WIDL_C_INLINE_WRAPPERS
2089/*** IUnknown methods ***/
2090#define ILegacyIAccessibleProvider_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
2091#define ILegacyIAccessibleProvider_AddRef(This) (This)->lpVtbl->AddRef(This)
2092#define ILegacyIAccessibleProvider_Release(This) (This)->lpVtbl->Release(This)
2093/*** ILegacyIAccessibleProvider methods ***/
2094#define ILegacyIAccessibleProvider_Select(This,flagsSelect) (This)->lpVtbl->Select(This,flagsSelect)
2095#define ILegacyIAccessibleProvider_DoDefaultAction(This) (This)->lpVtbl->DoDefaultAction(This)
2096#define ILegacyIAccessibleProvider_SetValue(This,szValue) (This)->lpVtbl->SetValue(This,szValue)
2097#define ILegacyIAccessibleProvider_GetIAccessible(This,ppAccessible) (This)->lpVtbl->GetIAccessible(This,ppAccessible)
2098#define ILegacyIAccessibleProvider_get_ChildId(This,pRetVal) (This)->lpVtbl->get_ChildId(This,pRetVal)
2099#define ILegacyIAccessibleProvider_get_Name(This,pszName) (This)->lpVtbl->get_Name(This,pszName)
2100#define ILegacyIAccessibleProvider_get_Value(This,pszValue) (This)->lpVtbl->get_Value(This,pszValue)
2101#define ILegacyIAccessibleProvider_get_Description(This,pszDescription) (This)->lpVtbl->get_Description(This,pszDescription)
2102#define ILegacyIAccessibleProvider_get_Role(This,pdwRole) (This)->lpVtbl->get_Role(This,pdwRole)
2103#define ILegacyIAccessibleProvider_get_State(This,pdwState) (This)->lpVtbl->get_State(This,pdwState)
2104#define ILegacyIAccessibleProvider_get_Help(This,pszHelp) (This)->lpVtbl->get_Help(This,pszHelp)
2105#define ILegacyIAccessibleProvider_get_KeyboardShortcut(This,pszKeyboardShortcut) (This)->lpVtbl->get_KeyboardShortcut(This,pszKeyboardShortcut)
2106#define ILegacyIAccessibleProvider_GetSelection(This,pvarSelectedChildren) (This)->lpVtbl->GetSelection(This,pvarSelectedChildren)
2107#define ILegacyIAccessibleProvider_get_DefaultAction(This,pszDefaultAction) (This)->lpVtbl->get_DefaultAction(This,pszDefaultAction)
2108#else
2109/*** IUnknown methods ***/
2110static inline HRESULT ILegacyIAccessibleProvider_QueryInterface(ILegacyIAccessibleProvider* This,REFIID riid,void **ppvObject) {
2111    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
2112}
2113static inline ULONG ILegacyIAccessibleProvider_AddRef(ILegacyIAccessibleProvider* This) {
2114    return This->lpVtbl->AddRef(This);
2115}
2116static inline ULONG ILegacyIAccessibleProvider_Release(ILegacyIAccessibleProvider* This) {
2117    return This->lpVtbl->Release(This);
2118}
2119/*** ILegacyIAccessibleProvider methods ***/
2120static inline HRESULT ILegacyIAccessibleProvider_Select(ILegacyIAccessibleProvider* This,LONG flagsSelect) {
2121    return This->lpVtbl->Select(This,flagsSelect);
2122}
2123static inline HRESULT ILegacyIAccessibleProvider_DoDefaultAction(ILegacyIAccessibleProvider* This) {
2124    return This->lpVtbl->DoDefaultAction(This);
2125}
2126static inline HRESULT ILegacyIAccessibleProvider_SetValue(ILegacyIAccessibleProvider* This,LPCWSTR szValue) {
2127    return This->lpVtbl->SetValue(This,szValue);
2128}
2129static inline HRESULT ILegacyIAccessibleProvider_GetIAccessible(ILegacyIAccessibleProvider* This,IAccessible **ppAccessible) {
2130    return This->lpVtbl->GetIAccessible(This,ppAccessible);
2131}
2132static inline HRESULT ILegacyIAccessibleProvider_get_ChildId(ILegacyIAccessibleProvider* This,int *pRetVal) {
2133    return This->lpVtbl->get_ChildId(This,pRetVal);
2134}
2135static inline HRESULT ILegacyIAccessibleProvider_get_Name(ILegacyIAccessibleProvider* This,BSTR *pszName) {
2136    return This->lpVtbl->get_Name(This,pszName);
2137}
2138static inline HRESULT ILegacyIAccessibleProvider_get_Value(ILegacyIAccessibleProvider* This,BSTR *pszValue) {
2139    return This->lpVtbl->get_Value(This,pszValue);
2140}
2141static inline HRESULT ILegacyIAccessibleProvider_get_Description(ILegacyIAccessibleProvider* This,BSTR *pszDescription) {
2142    return This->lpVtbl->get_Description(This,pszDescription);
2143}
2144static inline HRESULT ILegacyIAccessibleProvider_get_Role(ILegacyIAccessibleProvider* This,DWORD *pdwRole) {
2145    return This->lpVtbl->get_Role(This,pdwRole);
2146}
2147static inline HRESULT ILegacyIAccessibleProvider_get_State(ILegacyIAccessibleProvider* This,DWORD *pdwState) {
2148    return This->lpVtbl->get_State(This,pdwState);
2149}
2150static inline HRESULT ILegacyIAccessibleProvider_get_Help(ILegacyIAccessibleProvider* This,BSTR *pszHelp) {
2151    return This->lpVtbl->get_Help(This,pszHelp);
2152}
2153static inline HRESULT ILegacyIAccessibleProvider_get_KeyboardShortcut(ILegacyIAccessibleProvider* This,BSTR *pszKeyboardShortcut) {
2154    return This->lpVtbl->get_KeyboardShortcut(This,pszKeyboardShortcut);
2155}
2156static inline HRESULT ILegacyIAccessibleProvider_GetSelection(ILegacyIAccessibleProvider* This,SAFEARRAY **pvarSelectedChildren) {
2157    return This->lpVtbl->GetSelection(This,pvarSelectedChildren);
2158}
2159static inline HRESULT ILegacyIAccessibleProvider_get_DefaultAction(ILegacyIAccessibleProvider* This,BSTR *pszDefaultAction) {
2160    return This->lpVtbl->get_DefaultAction(This,pszDefaultAction);
2161}
2162#endif
2163#endif
2164
2165#endif
2166
2167
2168#endif  /* __ILegacyIAccessibleProvider_INTERFACE_DEFINED__ */
2169
2170/*****************************************************************************
2171 * IDockProvider interface
2172 */
2173#ifndef __IDockProvider_INTERFACE_DEFINED__
2174#define __IDockProvider_INTERFACE_DEFINED__
2175
2176DEFINE_GUID(IID_IDockProvider, 0x159bc72c, 0x4ad3, 0x485e, 0x96,0x37, 0xd7,0x05,0x2e,0xdf,0x01,0x46);
2177#if defined(__cplusplus) && !defined(CINTERFACE)
2178MIDL_INTERFACE("159bc72c-4ad3-485e-9637-d7052edf0146")
2179IDockProvider : public IUnknown
2180{
2181    virtual HRESULT STDMETHODCALLTYPE SetDockPosition(
2182        enum DockPosition dockPosition) = 0;
2183
2184    virtual HRESULT STDMETHODCALLTYPE get_DockPosition(
2185        enum DockPosition *pRetVal) = 0;
2186
2187};
2188#ifdef __CRT_UUID_DECL
2189__CRT_UUID_DECL(IDockProvider, 0x159bc72c, 0x4ad3, 0x485e, 0x96,0x37, 0xd7,0x05,0x2e,0xdf,0x01,0x46)
2190#endif
2191#else
2192typedef struct IDockProviderVtbl {
2193    BEGIN_INTERFACE
2194
2195    /*** IUnknown methods ***/
2196    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
2197        IDockProvider *This,
2198        REFIID riid,
2199        void **ppvObject);
2200
2201    ULONG (STDMETHODCALLTYPE *AddRef)(
2202        IDockProvider *This);
2203
2204    ULONG (STDMETHODCALLTYPE *Release)(
2205        IDockProvider *This);
2206
2207    /*** IDockProvider methods ***/
2208    HRESULT (STDMETHODCALLTYPE *SetDockPosition)(
2209        IDockProvider *This,
2210        enum DockPosition dockPosition);
2211
2212    HRESULT (STDMETHODCALLTYPE *get_DockPosition)(
2213        IDockProvider *This,
2214        enum DockPosition *pRetVal);
2215
2216    END_INTERFACE
2217} IDockProviderVtbl;
2218
2219interface IDockProvider {
2220    CONST_VTBL IDockProviderVtbl* lpVtbl;
2221};
2222
2223#ifdef COBJMACROS
2224#ifndef WIDL_C_INLINE_WRAPPERS
2225/*** IUnknown methods ***/
2226#define IDockProvider_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
2227#define IDockProvider_AddRef(This) (This)->lpVtbl->AddRef(This)
2228#define IDockProvider_Release(This) (This)->lpVtbl->Release(This)
2229/*** IDockProvider methods ***/
2230#define IDockProvider_SetDockPosition(This,dockPosition) (This)->lpVtbl->SetDockPosition(This,dockPosition)
2231#define IDockProvider_get_DockPosition(This,pRetVal) (This)->lpVtbl->get_DockPosition(This,pRetVal)
2232#else
2233/*** IUnknown methods ***/
2234static inline HRESULT IDockProvider_QueryInterface(IDockProvider* This,REFIID riid,void **ppvObject) {
2235    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
2236}
2237static inline ULONG IDockProvider_AddRef(IDockProvider* This) {
2238    return This->lpVtbl->AddRef(This);
2239}
2240static inline ULONG IDockProvider_Release(IDockProvider* This) {
2241    return This->lpVtbl->Release(This);
2242}
2243/*** IDockProvider methods ***/
2244static inline HRESULT IDockProvider_SetDockPosition(IDockProvider* This,enum DockPosition dockPosition) {
2245    return This->lpVtbl->SetDockPosition(This,dockPosition);
2246}
2247static inline HRESULT IDockProvider_get_DockPosition(IDockProvider* This,enum DockPosition *pRetVal) {
2248    return This->lpVtbl->get_DockPosition(This,pRetVal);
2249}
2250#endif
2251#endif
2252
2253#endif
2254
2255
2256#endif  /* __IDockProvider_INTERFACE_DEFINED__ */
2257
2258/*****************************************************************************
2259 * IExpandCollapseProvider interface
2260 */
2261#ifndef __IExpandCollapseProvider_INTERFACE_DEFINED__
2262#define __IExpandCollapseProvider_INTERFACE_DEFINED__
2263
2264DEFINE_GUID(IID_IExpandCollapseProvider, 0xd847d3a5, 0xcab0, 0x4a98, 0x8c,0x32, 0xec,0xb4,0x5c,0x59,0xad,0x24);
2265#if defined(__cplusplus) && !defined(CINTERFACE)
2266MIDL_INTERFACE("d847d3a5-cab0-4a98-8c32-ecb45c59ad24")
2267IExpandCollapseProvider : public IUnknown
2268{
2269    virtual HRESULT STDMETHODCALLTYPE Expand(
2270        ) = 0;
2271
2272    virtual HRESULT STDMETHODCALLTYPE Collapse(
2273        ) = 0;
2274
2275    virtual HRESULT STDMETHODCALLTYPE get_ExpandCollapseState(
2276        enum ExpandCollapseState *pRetVal) = 0;
2277
2278};
2279#ifdef __CRT_UUID_DECL
2280__CRT_UUID_DECL(IExpandCollapseProvider, 0xd847d3a5, 0xcab0, 0x4a98, 0x8c,0x32, 0xec,0xb4,0x5c,0x59,0xad,0x24)
2281#endif
2282#else
2283typedef struct IExpandCollapseProviderVtbl {
2284    BEGIN_INTERFACE
2285
2286    /*** IUnknown methods ***/
2287    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
2288        IExpandCollapseProvider *This,
2289        REFIID riid,
2290        void **ppvObject);
2291
2292    ULONG (STDMETHODCALLTYPE *AddRef)(
2293        IExpandCollapseProvider *This);
2294
2295    ULONG (STDMETHODCALLTYPE *Release)(
2296        IExpandCollapseProvider *This);
2297
2298    /*** IExpandCollapseProvider methods ***/
2299    HRESULT (STDMETHODCALLTYPE *Expand)(
2300        IExpandCollapseProvider *This);
2301
2302    HRESULT (STDMETHODCALLTYPE *Collapse)(
2303        IExpandCollapseProvider *This);
2304
2305    HRESULT (STDMETHODCALLTYPE *get_ExpandCollapseState)(
2306        IExpandCollapseProvider *This,
2307        enum ExpandCollapseState *pRetVal);
2308
2309    END_INTERFACE
2310} IExpandCollapseProviderVtbl;
2311
2312interface IExpandCollapseProvider {
2313    CONST_VTBL IExpandCollapseProviderVtbl* lpVtbl;
2314};
2315
2316#ifdef COBJMACROS
2317#ifndef WIDL_C_INLINE_WRAPPERS
2318/*** IUnknown methods ***/
2319#define IExpandCollapseProvider_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
2320#define IExpandCollapseProvider_AddRef(This) (This)->lpVtbl->AddRef(This)
2321#define IExpandCollapseProvider_Release(This) (This)->lpVtbl->Release(This)
2322/*** IExpandCollapseProvider methods ***/
2323#define IExpandCollapseProvider_Expand(This) (This)->lpVtbl->Expand(This)
2324#define IExpandCollapseProvider_Collapse(This) (This)->lpVtbl->Collapse(This)
2325#define IExpandCollapseProvider_get_ExpandCollapseState(This,pRetVal) (This)->lpVtbl->get_ExpandCollapseState(This,pRetVal)
2326#else
2327/*** IUnknown methods ***/
2328static inline HRESULT IExpandCollapseProvider_QueryInterface(IExpandCollapseProvider* This,REFIID riid,void **ppvObject) {
2329    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
2330}
2331static inline ULONG IExpandCollapseProvider_AddRef(IExpandCollapseProvider* This) {
2332    return This->lpVtbl->AddRef(This);
2333}
2334static inline ULONG IExpandCollapseProvider_Release(IExpandCollapseProvider* This) {
2335    return This->lpVtbl->Release(This);
2336}
2337/*** IExpandCollapseProvider methods ***/
2338static inline HRESULT IExpandCollapseProvider_Expand(IExpandCollapseProvider* This) {
2339    return This->lpVtbl->Expand(This);
2340}
2341static inline HRESULT IExpandCollapseProvider_Collapse(IExpandCollapseProvider* This) {
2342    return This->lpVtbl->Collapse(This);
2343}
2344static inline HRESULT IExpandCollapseProvider_get_ExpandCollapseState(IExpandCollapseProvider* This,enum ExpandCollapseState *pRetVal) {
2345    return This->lpVtbl->get_ExpandCollapseState(This,pRetVal);
2346}
2347#endif
2348#endif
2349
2350#endif
2351
2352
2353#endif  /* __IExpandCollapseProvider_INTERFACE_DEFINED__ */
2354
2355/*****************************************************************************
2356 * IGridProvider interface
2357 */
2358#ifndef __IGridProvider_INTERFACE_DEFINED__
2359#define __IGridProvider_INTERFACE_DEFINED__
2360
2361DEFINE_GUID(IID_IGridProvider, 0xb17d6187, 0x0907, 0x464b, 0xa1,0x68, 0x0e,0xf1,0x7a,0x15,0x72,0xb1);
2362#if defined(__cplusplus) && !defined(CINTERFACE)
2363MIDL_INTERFACE("b17d6187-0907-464b-a168-0ef17a1572b1")
2364IGridProvider : public IUnknown
2365{
2366    virtual HRESULT STDMETHODCALLTYPE GetItem(
2367        int row,
2368        int column,
2369        IRawElementProviderSimple **pRetVal) = 0;
2370
2371    virtual HRESULT STDMETHODCALLTYPE get_RowCount(
2372        int *pRetVal) = 0;
2373
2374    virtual HRESULT STDMETHODCALLTYPE get_ColumnCount(
2375        int *pRetVal) = 0;
2376
2377};
2378#ifdef __CRT_UUID_DECL
2379__CRT_UUID_DECL(IGridProvider, 0xb17d6187, 0x0907, 0x464b, 0xa1,0x68, 0x0e,0xf1,0x7a,0x15,0x72,0xb1)
2380#endif
2381#else
2382typedef struct IGridProviderVtbl {
2383    BEGIN_INTERFACE
2384
2385    /*** IUnknown methods ***/
2386    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
2387        IGridProvider *This,
2388        REFIID riid,
2389        void **ppvObject);
2390
2391    ULONG (STDMETHODCALLTYPE *AddRef)(
2392        IGridProvider *This);
2393
2394    ULONG (STDMETHODCALLTYPE *Release)(
2395        IGridProvider *This);
2396
2397    /*** IGridProvider methods ***/
2398    HRESULT (STDMETHODCALLTYPE *GetItem)(
2399        IGridProvider *This,
2400        int row,
2401        int column,
2402        IRawElementProviderSimple **pRetVal);
2403
2404    HRESULT (STDMETHODCALLTYPE *get_RowCount)(
2405        IGridProvider *This,
2406        int *pRetVal);
2407
2408    HRESULT (STDMETHODCALLTYPE *get_ColumnCount)(
2409        IGridProvider *This,
2410        int *pRetVal);
2411
2412    END_INTERFACE
2413} IGridProviderVtbl;
2414
2415interface IGridProvider {
2416    CONST_VTBL IGridProviderVtbl* lpVtbl;
2417};
2418
2419#ifdef COBJMACROS
2420#ifndef WIDL_C_INLINE_WRAPPERS
2421/*** IUnknown methods ***/
2422#define IGridProvider_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
2423#define IGridProvider_AddRef(This) (This)->lpVtbl->AddRef(This)
2424#define IGridProvider_Release(This) (This)->lpVtbl->Release(This)
2425/*** IGridProvider methods ***/
2426#define IGridProvider_GetItem(This,row,column,pRetVal) (This)->lpVtbl->GetItem(This,row,column,pRetVal)
2427#define IGridProvider_get_RowCount(This,pRetVal) (This)->lpVtbl->get_RowCount(This,pRetVal)
2428#define IGridProvider_get_ColumnCount(This,pRetVal) (This)->lpVtbl->get_ColumnCount(This,pRetVal)
2429#else
2430/*** IUnknown methods ***/
2431static inline HRESULT IGridProvider_QueryInterface(IGridProvider* This,REFIID riid,void **ppvObject) {
2432    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
2433}
2434static inline ULONG IGridProvider_AddRef(IGridProvider* This) {
2435    return This->lpVtbl->AddRef(This);
2436}
2437static inline ULONG IGridProvider_Release(IGridProvider* This) {
2438    return This->lpVtbl->Release(This);
2439}
2440/*** IGridProvider methods ***/
2441static inline HRESULT IGridProvider_GetItem(IGridProvider* This,int row,int column,IRawElementProviderSimple **pRetVal) {
2442    return This->lpVtbl->GetItem(This,row,column,pRetVal);
2443}
2444static inline HRESULT IGridProvider_get_RowCount(IGridProvider* This,int *pRetVal) {
2445    return This->lpVtbl->get_RowCount(This,pRetVal);
2446}
2447static inline HRESULT IGridProvider_get_ColumnCount(IGridProvider* This,int *pRetVal) {
2448    return This->lpVtbl->get_ColumnCount(This,pRetVal);
2449}
2450#endif
2451#endif
2452
2453#endif
2454
2455
2456#endif  /* __IGridProvider_INTERFACE_DEFINED__ */
2457
2458/*****************************************************************************
2459 * IGridItemProvider interface
2460 */
2461#ifndef __IGridItemProvider_INTERFACE_DEFINED__
2462#define __IGridItemProvider_INTERFACE_DEFINED__
2463
2464DEFINE_GUID(IID_IGridItemProvider, 0xd02541f1, 0xfb81, 0x4d64, 0xae,0x32, 0xf5,0x20,0xf8,0xa6,0xdb,0xd1);
2465#if defined(__cplusplus) && !defined(CINTERFACE)
2466MIDL_INTERFACE("d02541f1-fb81-4d64-ae32-f520f8a6dbd1")
2467IGridItemProvider : public IUnknown
2468{
2469    virtual HRESULT STDMETHODCALLTYPE get_Row(
2470        int *pRetVal) = 0;
2471
2472    virtual HRESULT STDMETHODCALLTYPE get_Column(
2473        int *pRetVal) = 0;
2474
2475    virtual HRESULT STDMETHODCALLTYPE get_RowSpan(
2476        int *pRetVal) = 0;
2477
2478    virtual HRESULT STDMETHODCALLTYPE get_ColumnSpan(
2479        int *pRetVal) = 0;
2480
2481    virtual HRESULT STDMETHODCALLTYPE get_ContainingGrid(
2482        IRawElementProviderSimple **pRetVal) = 0;
2483
2484};
2485#ifdef __CRT_UUID_DECL
2486__CRT_UUID_DECL(IGridItemProvider, 0xd02541f1, 0xfb81, 0x4d64, 0xae,0x32, 0xf5,0x20,0xf8,0xa6,0xdb,0xd1)
2487#endif
2488#else
2489typedef struct IGridItemProviderVtbl {
2490    BEGIN_INTERFACE
2491
2492    /*** IUnknown methods ***/
2493    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
2494        IGridItemProvider *This,
2495        REFIID riid,
2496        void **ppvObject);
2497
2498    ULONG (STDMETHODCALLTYPE *AddRef)(
2499        IGridItemProvider *This);
2500
2501    ULONG (STDMETHODCALLTYPE *Release)(
2502        IGridItemProvider *This);
2503
2504    /*** IGridItemProvider methods ***/
2505    HRESULT (STDMETHODCALLTYPE *get_Row)(
2506        IGridItemProvider *This,
2507        int *pRetVal);
2508
2509    HRESULT (STDMETHODCALLTYPE *get_Column)(
2510        IGridItemProvider *This,
2511        int *pRetVal);
2512
2513    HRESULT (STDMETHODCALLTYPE *get_RowSpan)(
2514        IGridItemProvider *This,
2515        int *pRetVal);
2516
2517    HRESULT (STDMETHODCALLTYPE *get_ColumnSpan)(
2518        IGridItemProvider *This,
2519        int *pRetVal);
2520
2521    HRESULT (STDMETHODCALLTYPE *get_ContainingGrid)(
2522        IGridItemProvider *This,
2523        IRawElementProviderSimple **pRetVal);
2524
2525    END_INTERFACE
2526} IGridItemProviderVtbl;
2527
2528interface IGridItemProvider {
2529    CONST_VTBL IGridItemProviderVtbl* lpVtbl;
2530};
2531
2532#ifdef COBJMACROS
2533#ifndef WIDL_C_INLINE_WRAPPERS
2534/*** IUnknown methods ***/
2535#define IGridItemProvider_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
2536#define IGridItemProvider_AddRef(This) (This)->lpVtbl->AddRef(This)
2537#define IGridItemProvider_Release(This) (This)->lpVtbl->Release(This)
2538/*** IGridItemProvider methods ***/
2539#define IGridItemProvider_get_Row(This,pRetVal) (This)->lpVtbl->get_Row(This,pRetVal)
2540#define IGridItemProvider_get_Column(This,pRetVal) (This)->lpVtbl->get_Column(This,pRetVal)
2541#define IGridItemProvider_get_RowSpan(This,pRetVal) (This)->lpVtbl->get_RowSpan(This,pRetVal)
2542#define IGridItemProvider_get_ColumnSpan(This,pRetVal) (This)->lpVtbl->get_ColumnSpan(This,pRetVal)
2543#define IGridItemProvider_get_ContainingGrid(This,pRetVal) (This)->lpVtbl->get_ContainingGrid(This,pRetVal)
2544#else
2545/*** IUnknown methods ***/
2546static inline HRESULT IGridItemProvider_QueryInterface(IGridItemProvider* This,REFIID riid,void **ppvObject) {
2547    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
2548}
2549static inline ULONG IGridItemProvider_AddRef(IGridItemProvider* This) {
2550    return This->lpVtbl->AddRef(This);
2551}
2552static inline ULONG IGridItemProvider_Release(IGridItemProvider* This) {
2553    return This->lpVtbl->Release(This);
2554}
2555/*** IGridItemProvider methods ***/
2556static inline HRESULT IGridItemProvider_get_Row(IGridItemProvider* This,int *pRetVal) {
2557    return This->lpVtbl->get_Row(This,pRetVal);
2558}
2559static inline HRESULT IGridItemProvider_get_Column(IGridItemProvider* This,int *pRetVal) {
2560    return This->lpVtbl->get_Column(This,pRetVal);
2561}
2562static inline HRESULT IGridItemProvider_get_RowSpan(IGridItemProvider* This,int *pRetVal) {
2563    return This->lpVtbl->get_RowSpan(This,pRetVal);
2564}
2565static inline HRESULT IGridItemProvider_get_ColumnSpan(IGridItemProvider* This,int *pRetVal) {
2566    return This->lpVtbl->get_ColumnSpan(This,pRetVal);
2567}
2568static inline HRESULT IGridItemProvider_get_ContainingGrid(IGridItemProvider* This,IRawElementProviderSimple **pRetVal) {
2569    return This->lpVtbl->get_ContainingGrid(This,pRetVal);
2570}
2571#endif
2572#endif
2573
2574#endif
2575
2576
2577#endif  /* __IGridItemProvider_INTERFACE_DEFINED__ */
2578
2579/*****************************************************************************
2580 * IInvokeProvider interface
2581 */
2582#ifndef __IInvokeProvider_INTERFACE_DEFINED__
2583#define __IInvokeProvider_INTERFACE_DEFINED__
2584
2585DEFINE_GUID(IID_IInvokeProvider, 0x54fcb24b, 0xe18e, 0x47a2, 0xb4,0xd3, 0xec,0xcb,0xe7,0x75,0x99,0xa2);
2586#if defined(__cplusplus) && !defined(CINTERFACE)
2587MIDL_INTERFACE("54fcb24b-e18e-47a2-b4d3-eccbe77599a2")
2588IInvokeProvider : public IUnknown
2589{
2590    virtual HRESULT STDMETHODCALLTYPE Invoke(
2591        ) = 0;
2592
2593};
2594#ifdef __CRT_UUID_DECL
2595__CRT_UUID_DECL(IInvokeProvider, 0x54fcb24b, 0xe18e, 0x47a2, 0xb4,0xd3, 0xec,0xcb,0xe7,0x75,0x99,0xa2)
2596#endif
2597#else
2598typedef struct IInvokeProviderVtbl {
2599    BEGIN_INTERFACE
2600
2601    /*** IUnknown methods ***/
2602    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
2603        IInvokeProvider *This,
2604        REFIID riid,
2605        void **ppvObject);
2606
2607    ULONG (STDMETHODCALLTYPE *AddRef)(
2608        IInvokeProvider *This);
2609
2610    ULONG (STDMETHODCALLTYPE *Release)(
2611        IInvokeProvider *This);
2612
2613    /*** IInvokeProvider methods ***/
2614    HRESULT (STDMETHODCALLTYPE *Invoke)(
2615        IInvokeProvider *This);
2616
2617    END_INTERFACE
2618} IInvokeProviderVtbl;
2619
2620interface IInvokeProvider {
2621    CONST_VTBL IInvokeProviderVtbl* lpVtbl;
2622};
2623
2624#ifdef COBJMACROS
2625#ifndef WIDL_C_INLINE_WRAPPERS
2626/*** IUnknown methods ***/
2627#define IInvokeProvider_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
2628#define IInvokeProvider_AddRef(This) (This)->lpVtbl->AddRef(This)
2629#define IInvokeProvider_Release(This) (This)->lpVtbl->Release(This)
2630/*** IInvokeProvider methods ***/
2631#define IInvokeProvider_Invoke(This) (This)->lpVtbl->Invoke(This)
2632#else
2633/*** IUnknown methods ***/
2634static inline HRESULT IInvokeProvider_QueryInterface(IInvokeProvider* This,REFIID riid,void **ppvObject) {
2635    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
2636}
2637static inline ULONG IInvokeProvider_AddRef(IInvokeProvider* This) {
2638    return This->lpVtbl->AddRef(This);
2639}
2640static inline ULONG IInvokeProvider_Release(IInvokeProvider* This) {
2641    return This->lpVtbl->Release(This);
2642}
2643/*** IInvokeProvider methods ***/
2644static inline HRESULT IInvokeProvider_Invoke(IInvokeProvider* This) {
2645    return This->lpVtbl->Invoke(This);
2646}
2647#endif
2648#endif
2649
2650#endif
2651
2652
2653#endif  /* __IInvokeProvider_INTERFACE_DEFINED__ */
2654
2655/*****************************************************************************
2656 * IMultipleViewProvider interface
2657 */
2658#ifndef __IMultipleViewProvider_INTERFACE_DEFINED__
2659#define __IMultipleViewProvider_INTERFACE_DEFINED__
2660
2661DEFINE_GUID(IID_IMultipleViewProvider, 0x6278cab1, 0xb556, 0x4a1a, 0xb4,0xe0, 0x41,0x8a,0xcc,0x52,0x32,0x01);
2662#if defined(__cplusplus) && !defined(CINTERFACE)
2663MIDL_INTERFACE("6278cab1-b556-4a1a-b4e0-418acc523201")
2664IMultipleViewProvider : public IUnknown
2665{
2666    virtual HRESULT STDMETHODCALLTYPE GetViewName(
2667        int viewId,
2668        BSTR *pRetVal) = 0;
2669
2670    virtual HRESULT STDMETHODCALLTYPE SetCurrentView(
2671        int viewId) = 0;
2672
2673    virtual HRESULT STDMETHODCALLTYPE get_CurrentView(
2674        int *pRetVal) = 0;
2675
2676    virtual HRESULT STDMETHODCALLTYPE GetSupportedViews(
2677        SAFEARRAY **pRetVal) = 0;
2678
2679};
2680#ifdef __CRT_UUID_DECL
2681__CRT_UUID_DECL(IMultipleViewProvider, 0x6278cab1, 0xb556, 0x4a1a, 0xb4,0xe0, 0x41,0x8a,0xcc,0x52,0x32,0x01)
2682#endif
2683#else
2684typedef struct IMultipleViewProviderVtbl {
2685    BEGIN_INTERFACE
2686
2687    /*** IUnknown methods ***/
2688    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
2689        IMultipleViewProvider *This,
2690        REFIID riid,
2691        void **ppvObject);
2692
2693    ULONG (STDMETHODCALLTYPE *AddRef)(
2694        IMultipleViewProvider *This);
2695
2696    ULONG (STDMETHODCALLTYPE *Release)(
2697        IMultipleViewProvider *This);
2698
2699    /*** IMultipleViewProvider methods ***/
2700    HRESULT (STDMETHODCALLTYPE *GetViewName)(
2701        IMultipleViewProvider *This,
2702        int viewId,
2703        BSTR *pRetVal);
2704
2705    HRESULT (STDMETHODCALLTYPE *SetCurrentView)(
2706        IMultipleViewProvider *This,
2707        int viewId);
2708
2709    HRESULT (STDMETHODCALLTYPE *get_CurrentView)(
2710        IMultipleViewProvider *This,
2711        int *pRetVal);
2712
2713    HRESULT (STDMETHODCALLTYPE *GetSupportedViews)(
2714        IMultipleViewProvider *This,
2715        SAFEARRAY **pRetVal);
2716
2717    END_INTERFACE
2718} IMultipleViewProviderVtbl;
2719
2720interface IMultipleViewProvider {
2721    CONST_VTBL IMultipleViewProviderVtbl* lpVtbl;
2722};
2723
2724#ifdef COBJMACROS
2725#ifndef WIDL_C_INLINE_WRAPPERS
2726/*** IUnknown methods ***/
2727#define IMultipleViewProvider_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
2728#define IMultipleViewProvider_AddRef(This) (This)->lpVtbl->AddRef(This)
2729#define IMultipleViewProvider_Release(This) (This)->lpVtbl->Release(This)
2730/*** IMultipleViewProvider methods ***/
2731#define IMultipleViewProvider_GetViewName(This,viewId,pRetVal) (This)->lpVtbl->GetViewName(This,viewId,pRetVal)
2732#define IMultipleViewProvider_SetCurrentView(This,viewId) (This)->lpVtbl->SetCurrentView(This,viewId)
2733#define IMultipleViewProvider_get_CurrentView(This,pRetVal) (This)->lpVtbl->get_CurrentView(This,pRetVal)
2734#define IMultipleViewProvider_GetSupportedViews(This,pRetVal) (This)->lpVtbl->GetSupportedViews(This,pRetVal)
2735#else
2736/*** IUnknown methods ***/
2737static inline HRESULT IMultipleViewProvider_QueryInterface(IMultipleViewProvider* This,REFIID riid,void **ppvObject) {
2738    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
2739}
2740static inline ULONG IMultipleViewProvider_AddRef(IMultipleViewProvider* This) {
2741    return This->lpVtbl->AddRef(This);
2742}
2743static inline ULONG IMultipleViewProvider_Release(IMultipleViewProvider* This) {
2744    return This->lpVtbl->Release(This);
2745}
2746/*** IMultipleViewProvider methods ***/
2747static inline HRESULT IMultipleViewProvider_GetViewName(IMultipleViewProvider* This,int viewId,BSTR *pRetVal) {
2748    return This->lpVtbl->GetViewName(This,viewId,pRetVal);
2749}
2750static inline HRESULT IMultipleViewProvider_SetCurrentView(IMultipleViewProvider* This,int viewId) {
2751    return This->lpVtbl->SetCurrentView(This,viewId);
2752}
2753static inline HRESULT IMultipleViewProvider_get_CurrentView(IMultipleViewProvider* This,int *pRetVal) {
2754    return This->lpVtbl->get_CurrentView(This,pRetVal);
2755}
2756static inline HRESULT IMultipleViewProvider_GetSupportedViews(IMultipleViewProvider* This,SAFEARRAY **pRetVal) {
2757    return This->lpVtbl->GetSupportedViews(This,pRetVal);
2758}
2759#endif
2760#endif
2761
2762#endif
2763
2764
2765#endif  /* __IMultipleViewProvider_INTERFACE_DEFINED__ */
2766
2767/*****************************************************************************
2768 * IRangeValueProvider interface
2769 */
2770#ifndef __IRangeValueProvider_INTERFACE_DEFINED__
2771#define __IRangeValueProvider_INTERFACE_DEFINED__
2772
2773DEFINE_GUID(IID_IRangeValueProvider, 0x36dc7aef, 0x33e6, 0x4691, 0xaf,0xe1, 0x2b,0xe7,0x27,0x4b,0x3d,0x33);
2774#if defined(__cplusplus) && !defined(CINTERFACE)
2775MIDL_INTERFACE("36dc7aef-33e6-4691-afe1-2be7274b3d33")
2776IRangeValueProvider : public IUnknown
2777{
2778    virtual HRESULT STDMETHODCALLTYPE SetValue(
2779        double val) = 0;
2780
2781    virtual HRESULT STDMETHODCALLTYPE get_Value(
2782        double *pRetVal) = 0;
2783
2784    virtual HRESULT STDMETHODCALLTYPE get_IsReadOnly(
2785        WINBOOL *pRetVal) = 0;
2786
2787    virtual HRESULT STDMETHODCALLTYPE get_Maximum(
2788        double *pRetVal) = 0;
2789
2790    virtual HRESULT STDMETHODCALLTYPE get_Minimum(
2791        double *pRetVal) = 0;
2792
2793    virtual HRESULT STDMETHODCALLTYPE get_LargeChange(
2794        double *pRetVal) = 0;
2795
2796    virtual HRESULT STDMETHODCALLTYPE get_SmallChange(
2797        double *pRetVal) = 0;
2798
2799};
2800#ifdef __CRT_UUID_DECL
2801__CRT_UUID_DECL(IRangeValueProvider, 0x36dc7aef, 0x33e6, 0x4691, 0xaf,0xe1, 0x2b,0xe7,0x27,0x4b,0x3d,0x33)
2802#endif
2803#else
2804typedef struct IRangeValueProviderVtbl {
2805    BEGIN_INTERFACE
2806
2807    /*** IUnknown methods ***/
2808    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
2809        IRangeValueProvider *This,
2810        REFIID riid,
2811        void **ppvObject);
2812
2813    ULONG (STDMETHODCALLTYPE *AddRef)(
2814        IRangeValueProvider *This);
2815
2816    ULONG (STDMETHODCALLTYPE *Release)(
2817        IRangeValueProvider *This);
2818
2819    /*** IRangeValueProvider methods ***/
2820    HRESULT (STDMETHODCALLTYPE *SetValue)(
2821        IRangeValueProvider *This,
2822        double val);
2823
2824    HRESULT (STDMETHODCALLTYPE *get_Value)(
2825        IRangeValueProvider *This,
2826        double *pRetVal);
2827
2828    HRESULT (STDMETHODCALLTYPE *get_IsReadOnly)(
2829        IRangeValueProvider *This,
2830        WINBOOL *pRetVal);
2831
2832    HRESULT (STDMETHODCALLTYPE *get_Maximum)(
2833        IRangeValueProvider *This,
2834        double *pRetVal);
2835
2836    HRESULT (STDMETHODCALLTYPE *get_Minimum)(
2837        IRangeValueProvider *This,
2838        double *pRetVal);
2839
2840    HRESULT (STDMETHODCALLTYPE *get_LargeChange)(
2841        IRangeValueProvider *This,
2842        double *pRetVal);
2843
2844    HRESULT (STDMETHODCALLTYPE *get_SmallChange)(
2845        IRangeValueProvider *This,
2846        double *pRetVal);
2847
2848    END_INTERFACE
2849} IRangeValueProviderVtbl;
2850
2851interface IRangeValueProvider {
2852    CONST_VTBL IRangeValueProviderVtbl* lpVtbl;
2853};
2854
2855#ifdef COBJMACROS
2856#ifndef WIDL_C_INLINE_WRAPPERS
2857/*** IUnknown methods ***/
2858#define IRangeValueProvider_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
2859#define IRangeValueProvider_AddRef(This) (This)->lpVtbl->AddRef(This)
2860#define IRangeValueProvider_Release(This) (This)->lpVtbl->Release(This)
2861/*** IRangeValueProvider methods ***/
2862#define IRangeValueProvider_SetValue(This,val) (This)->lpVtbl->SetValue(This,val)
2863#define IRangeValueProvider_get_Value(This,pRetVal) (This)->lpVtbl->get_Value(This,pRetVal)
2864#define IRangeValueProvider_get_IsReadOnly(This,pRetVal) (This)->lpVtbl->get_IsReadOnly(This,pRetVal)
2865#define IRangeValueProvider_get_Maximum(This,pRetVal) (This)->lpVtbl->get_Maximum(This,pRetVal)
2866#define IRangeValueProvider_get_Minimum(This,pRetVal) (This)->lpVtbl->get_Minimum(This,pRetVal)
2867#define IRangeValueProvider_get_LargeChange(This,pRetVal) (This)->lpVtbl->get_LargeChange(This,pRetVal)
2868#define IRangeValueProvider_get_SmallChange(This,pRetVal) (This)->lpVtbl->get_SmallChange(This,pRetVal)
2869#else
2870/*** IUnknown methods ***/
2871static inline HRESULT IRangeValueProvider_QueryInterface(IRangeValueProvider* This,REFIID riid,void **ppvObject) {
2872    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
2873}
2874static inline ULONG IRangeValueProvider_AddRef(IRangeValueProvider* This) {
2875    return This->lpVtbl->AddRef(This);
2876}
2877static inline ULONG IRangeValueProvider_Release(IRangeValueProvider* This) {
2878    return This->lpVtbl->Release(This);
2879}
2880/*** IRangeValueProvider methods ***/
2881static inline HRESULT IRangeValueProvider_SetValue(IRangeValueProvider* This,double val) {
2882    return This->lpVtbl->SetValue(This,val);
2883}
2884static inline HRESULT IRangeValueProvider_get_Value(IRangeValueProvider* This,double *pRetVal) {
2885    return This->lpVtbl->get_Value(This,pRetVal);
2886}
2887static inline HRESULT IRangeValueProvider_get_IsReadOnly(IRangeValueProvider* This,WINBOOL *pRetVal) {
2888    return This->lpVtbl->get_IsReadOnly(This,pRetVal);
2889}
2890static inline HRESULT IRangeValueProvider_get_Maximum(IRangeValueProvider* This,double *pRetVal) {
2891    return This->lpVtbl->get_Maximum(This,pRetVal);
2892}
2893static inline HRESULT IRangeValueProvider_get_Minimum(IRangeValueProvider* This,double *pRetVal) {
2894    return This->lpVtbl->get_Minimum(This,pRetVal);
2895}
2896static inline HRESULT IRangeValueProvider_get_LargeChange(IRangeValueProvider* This,double *pRetVal) {
2897    return This->lpVtbl->get_LargeChange(This,pRetVal);
2898}
2899static inline HRESULT IRangeValueProvider_get_SmallChange(IRangeValueProvider* This,double *pRetVal) {
2900    return This->lpVtbl->get_SmallChange(This,pRetVal);
2901}
2902#endif
2903#endif
2904
2905#endif
2906
2907
2908#endif  /* __IRangeValueProvider_INTERFACE_DEFINED__ */
2909
2910/*****************************************************************************
2911 * IScrollItemProvider interface
2912 */
2913#ifndef __IScrollItemProvider_INTERFACE_DEFINED__
2914#define __IScrollItemProvider_INTERFACE_DEFINED__
2915
2916DEFINE_GUID(IID_IScrollItemProvider, 0x2360c714, 0x4bf1, 0x4b26, 0xba,0x65, 0x9b,0x21,0x31,0x61,0x27,0xeb);
2917#if defined(__cplusplus) && !defined(CINTERFACE)
2918MIDL_INTERFACE("2360c714-4bf1-4b26-ba65-9b21316127eb")
2919IScrollItemProvider : public IUnknown
2920{
2921    virtual HRESULT STDMETHODCALLTYPE ScrollIntoView(
2922        ) = 0;
2923
2924};
2925#ifdef __CRT_UUID_DECL
2926__CRT_UUID_DECL(IScrollItemProvider, 0x2360c714, 0x4bf1, 0x4b26, 0xba,0x65, 0x9b,0x21,0x31,0x61,0x27,0xeb)
2927#endif
2928#else
2929typedef struct IScrollItemProviderVtbl {
2930    BEGIN_INTERFACE
2931
2932    /*** IUnknown methods ***/
2933    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
2934        IScrollItemProvider *This,
2935        REFIID riid,
2936        void **ppvObject);
2937
2938    ULONG (STDMETHODCALLTYPE *AddRef)(
2939        IScrollItemProvider *This);
2940
2941    ULONG (STDMETHODCALLTYPE *Release)(
2942        IScrollItemProvider *This);
2943
2944    /*** IScrollItemProvider methods ***/
2945    HRESULT (STDMETHODCALLTYPE *ScrollIntoView)(
2946        IScrollItemProvider *This);
2947
2948    END_INTERFACE
2949} IScrollItemProviderVtbl;
2950
2951interface IScrollItemProvider {
2952    CONST_VTBL IScrollItemProviderVtbl* lpVtbl;
2953};
2954
2955#ifdef COBJMACROS
2956#ifndef WIDL_C_INLINE_WRAPPERS
2957/*** IUnknown methods ***/
2958#define IScrollItemProvider_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
2959#define IScrollItemProvider_AddRef(This) (This)->lpVtbl->AddRef(This)
2960#define IScrollItemProvider_Release(This) (This)->lpVtbl->Release(This)
2961/*** IScrollItemProvider methods ***/
2962#define IScrollItemProvider_ScrollIntoView(This) (This)->lpVtbl->ScrollIntoView(This)
2963#else
2964/*** IUnknown methods ***/
2965static inline HRESULT IScrollItemProvider_QueryInterface(IScrollItemProvider* This,REFIID riid,void **ppvObject) {
2966    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
2967}
2968static inline ULONG IScrollItemProvider_AddRef(IScrollItemProvider* This) {
2969    return This->lpVtbl->AddRef(This);
2970}
2971static inline ULONG IScrollItemProvider_Release(IScrollItemProvider* This) {
2972    return This->lpVtbl->Release(This);
2973}
2974/*** IScrollItemProvider methods ***/
2975static inline HRESULT IScrollItemProvider_ScrollIntoView(IScrollItemProvider* This) {
2976    return This->lpVtbl->ScrollIntoView(This);
2977}
2978#endif
2979#endif
2980
2981#endif
2982
2983
2984#endif  /* __IScrollItemProvider_INTERFACE_DEFINED__ */
2985
2986/*****************************************************************************
2987 * ISelectionProvider interface
2988 */
2989#ifndef __ISelectionProvider_INTERFACE_DEFINED__
2990#define __ISelectionProvider_INTERFACE_DEFINED__
2991
2992DEFINE_GUID(IID_ISelectionProvider, 0xfb8b03af, 0x3bdf, 0x48d4, 0xbd,0x36, 0x1a,0x65,0x79,0x3b,0xe1,0x68);
2993#if defined(__cplusplus) && !defined(CINTERFACE)
2994MIDL_INTERFACE("fb8b03af-3bdf-48d4-bd36-1a65793be168")
2995ISelectionProvider : public IUnknown
2996{
2997    virtual HRESULT STDMETHODCALLTYPE GetSelection(
2998        SAFEARRAY **pRetVal) = 0;
2999
3000    virtual HRESULT STDMETHODCALLTYPE get_CanSelectMultiple(
3001        WINBOOL *pRetVal) = 0;
3002
3003    virtual HRESULT STDMETHODCALLTYPE get_IsSelectionRequired(
3004        WINBOOL *pRetVal) = 0;
3005
3006};
3007#ifdef __CRT_UUID_DECL
3008__CRT_UUID_DECL(ISelectionProvider, 0xfb8b03af, 0x3bdf, 0x48d4, 0xbd,0x36, 0x1a,0x65,0x79,0x3b,0xe1,0x68)
3009#endif
3010#else
3011typedef struct ISelectionProviderVtbl {
3012    BEGIN_INTERFACE
3013
3014    /*** IUnknown methods ***/
3015    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3016        ISelectionProvider *This,
3017        REFIID riid,
3018        void **ppvObject);
3019
3020    ULONG (STDMETHODCALLTYPE *AddRef)(
3021        ISelectionProvider *This);
3022
3023    ULONG (STDMETHODCALLTYPE *Release)(
3024        ISelectionProvider *This);
3025
3026    /*** ISelectionProvider methods ***/
3027    HRESULT (STDMETHODCALLTYPE *GetSelection)(
3028        ISelectionProvider *This,
3029        SAFEARRAY **pRetVal);
3030
3031    HRESULT (STDMETHODCALLTYPE *get_CanSelectMultiple)(
3032        ISelectionProvider *This,
3033        WINBOOL *pRetVal);
3034
3035    HRESULT (STDMETHODCALLTYPE *get_IsSelectionRequired)(
3036        ISelectionProvider *This,
3037        WINBOOL *pRetVal);
3038
3039    END_INTERFACE
3040} ISelectionProviderVtbl;
3041
3042interface ISelectionProvider {
3043    CONST_VTBL ISelectionProviderVtbl* lpVtbl;
3044};
3045
3046#ifdef COBJMACROS
3047#ifndef WIDL_C_INLINE_WRAPPERS
3048/*** IUnknown methods ***/
3049#define ISelectionProvider_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
3050#define ISelectionProvider_AddRef(This) (This)->lpVtbl->AddRef(This)
3051#define ISelectionProvider_Release(This) (This)->lpVtbl->Release(This)
3052/*** ISelectionProvider methods ***/
3053#define ISelectionProvider_GetSelection(This,pRetVal) (This)->lpVtbl->GetSelection(This,pRetVal)
3054#define ISelectionProvider_get_CanSelectMultiple(This,pRetVal) (This)->lpVtbl->get_CanSelectMultiple(This,pRetVal)
3055#define ISelectionProvider_get_IsSelectionRequired(This,pRetVal) (This)->lpVtbl->get_IsSelectionRequired(This,pRetVal)
3056#else
3057/*** IUnknown methods ***/
3058static inline HRESULT ISelectionProvider_QueryInterface(ISelectionProvider* This,REFIID riid,void **ppvObject) {
3059    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
3060}
3061static inline ULONG ISelectionProvider_AddRef(ISelectionProvider* This) {
3062    return This->lpVtbl->AddRef(This);
3063}
3064static inline ULONG ISelectionProvider_Release(ISelectionProvider* This) {
3065    return This->lpVtbl->Release(This);
3066}
3067/*** ISelectionProvider methods ***/
3068static inline HRESULT ISelectionProvider_GetSelection(ISelectionProvider* This,SAFEARRAY **pRetVal) {
3069    return This->lpVtbl->GetSelection(This,pRetVal);
3070}
3071static inline HRESULT ISelectionProvider_get_CanSelectMultiple(ISelectionProvider* This,WINBOOL *pRetVal) {
3072    return This->lpVtbl->get_CanSelectMultiple(This,pRetVal);
3073}
3074static inline HRESULT ISelectionProvider_get_IsSelectionRequired(ISelectionProvider* This,WINBOOL *pRetVal) {
3075    return This->lpVtbl->get_IsSelectionRequired(This,pRetVal);
3076}
3077#endif
3078#endif
3079
3080#endif
3081
3082
3083#endif  /* __ISelectionProvider_INTERFACE_DEFINED__ */
3084
3085/*****************************************************************************
3086 * ISelectionProvider2 interface
3087 */
3088#ifndef __ISelectionProvider2_INTERFACE_DEFINED__
3089#define __ISelectionProvider2_INTERFACE_DEFINED__
3090
3091DEFINE_GUID(IID_ISelectionProvider2, 0x14f68475, 0xee1c, 0x44f6, 0xa8,0x69, 0xd2,0x39,0x38,0x1f,0x0f,0xe7);
3092#if defined(__cplusplus) && !defined(CINTERFACE)
3093MIDL_INTERFACE("14f68475-ee1c-44f6-a869-d239381f0fe7")
3094ISelectionProvider2 : public ISelectionProvider
3095{
3096    virtual HRESULT STDMETHODCALLTYPE get_FirstSelectedItem(
3097        IRawElementProviderSimple **val) = 0;
3098
3099    virtual HRESULT STDMETHODCALLTYPE get_LastSelectedItem(
3100        IRawElementProviderSimple **val) = 0;
3101
3102    virtual HRESULT STDMETHODCALLTYPE get_CurrentSelectedItem(
3103        IRawElementProviderSimple **val) = 0;
3104
3105    virtual HRESULT STDMETHODCALLTYPE get_ItemCount(
3106        int *val) = 0;
3107
3108};
3109#ifdef __CRT_UUID_DECL
3110__CRT_UUID_DECL(ISelectionProvider2, 0x14f68475, 0xee1c, 0x44f6, 0xa8,0x69, 0xd2,0x39,0x38,0x1f,0x0f,0xe7)
3111#endif
3112#else
3113typedef struct ISelectionProvider2Vtbl {
3114    BEGIN_INTERFACE
3115
3116    /*** IUnknown methods ***/
3117    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3118        ISelectionProvider2 *This,
3119        REFIID riid,
3120        void **ppvObject);
3121
3122    ULONG (STDMETHODCALLTYPE *AddRef)(
3123        ISelectionProvider2 *This);
3124
3125    ULONG (STDMETHODCALLTYPE *Release)(
3126        ISelectionProvider2 *This);
3127
3128    /*** ISelectionProvider methods ***/
3129    HRESULT (STDMETHODCALLTYPE *GetSelection)(
3130        ISelectionProvider2 *This,
3131        SAFEARRAY **pRetVal);
3132
3133    HRESULT (STDMETHODCALLTYPE *get_CanSelectMultiple)(
3134        ISelectionProvider2 *This,
3135        WINBOOL *pRetVal);
3136
3137    HRESULT (STDMETHODCALLTYPE *get_IsSelectionRequired)(
3138        ISelectionProvider2 *This,
3139        WINBOOL *pRetVal);
3140
3141    /*** ISelectionProvider2 methods ***/
3142    HRESULT (STDMETHODCALLTYPE *get_FirstSelectedItem)(
3143        ISelectionProvider2 *This,
3144        IRawElementProviderSimple **val);
3145
3146    HRESULT (STDMETHODCALLTYPE *get_LastSelectedItem)(
3147        ISelectionProvider2 *This,
3148        IRawElementProviderSimple **val);
3149
3150    HRESULT (STDMETHODCALLTYPE *get_CurrentSelectedItem)(
3151        ISelectionProvider2 *This,
3152        IRawElementProviderSimple **val);
3153
3154    HRESULT (STDMETHODCALLTYPE *get_ItemCount)(
3155        ISelectionProvider2 *This,
3156        int *val);
3157
3158    END_INTERFACE
3159} ISelectionProvider2Vtbl;
3160
3161interface ISelectionProvider2 {
3162    CONST_VTBL ISelectionProvider2Vtbl* lpVtbl;
3163};
3164
3165#ifdef COBJMACROS
3166#ifndef WIDL_C_INLINE_WRAPPERS
3167/*** IUnknown methods ***/
3168#define ISelectionProvider2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
3169#define ISelectionProvider2_AddRef(This) (This)->lpVtbl->AddRef(This)
3170#define ISelectionProvider2_Release(This) (This)->lpVtbl->Release(This)
3171/*** ISelectionProvider methods ***/
3172#define ISelectionProvider2_GetSelection(This,pRetVal) (This)->lpVtbl->GetSelection(This,pRetVal)
3173#define ISelectionProvider2_get_CanSelectMultiple(This,pRetVal) (This)->lpVtbl->get_CanSelectMultiple(This,pRetVal)
3174#define ISelectionProvider2_get_IsSelectionRequired(This,pRetVal) (This)->lpVtbl->get_IsSelectionRequired(This,pRetVal)
3175/*** ISelectionProvider2 methods ***/
3176#define ISelectionProvider2_get_FirstSelectedItem(This,val) (This)->lpVtbl->get_FirstSelectedItem(This,val)
3177#define ISelectionProvider2_get_LastSelectedItem(This,val) (This)->lpVtbl->get_LastSelectedItem(This,val)
3178#define ISelectionProvider2_get_CurrentSelectedItem(This,val) (This)->lpVtbl->get_CurrentSelectedItem(This,val)
3179#define ISelectionProvider2_get_ItemCount(This,val) (This)->lpVtbl->get_ItemCount(This,val)
3180#else
3181/*** IUnknown methods ***/
3182static inline HRESULT ISelectionProvider2_QueryInterface(ISelectionProvider2* This,REFIID riid,void **ppvObject) {
3183    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
3184}
3185static inline ULONG ISelectionProvider2_AddRef(ISelectionProvider2* This) {
3186    return This->lpVtbl->AddRef(This);
3187}
3188static inline ULONG ISelectionProvider2_Release(ISelectionProvider2* This) {
3189    return This->lpVtbl->Release(This);
3190}
3191/*** ISelectionProvider methods ***/
3192static inline HRESULT ISelectionProvider2_GetSelection(ISelectionProvider2* This,SAFEARRAY **pRetVal) {
3193    return This->lpVtbl->GetSelection(This,pRetVal);
3194}
3195static inline HRESULT ISelectionProvider2_get_CanSelectMultiple(ISelectionProvider2* This,WINBOOL *pRetVal) {
3196    return This->lpVtbl->get_CanSelectMultiple(This,pRetVal);
3197}
3198static inline HRESULT ISelectionProvider2_get_IsSelectionRequired(ISelectionProvider2* This,WINBOOL *pRetVal) {
3199    return This->lpVtbl->get_IsSelectionRequired(This,pRetVal);
3200}
3201/*** ISelectionProvider2 methods ***/
3202static inline HRESULT ISelectionProvider2_get_FirstSelectedItem(ISelectionProvider2* This,IRawElementProviderSimple **val) {
3203    return This->lpVtbl->get_FirstSelectedItem(This,val);
3204}
3205static inline HRESULT ISelectionProvider2_get_LastSelectedItem(ISelectionProvider2* This,IRawElementProviderSimple **val) {
3206    return This->lpVtbl->get_LastSelectedItem(This,val);
3207}
3208static inline HRESULT ISelectionProvider2_get_CurrentSelectedItem(ISelectionProvider2* This,IRawElementProviderSimple **val) {
3209    return This->lpVtbl->get_CurrentSelectedItem(This,val);
3210}
3211static inline HRESULT ISelectionProvider2_get_ItemCount(ISelectionProvider2* This,int *val) {
3212    return This->lpVtbl->get_ItemCount(This,val);
3213}
3214#endif
3215#endif
3216
3217#endif
3218
3219
3220#endif  /* __ISelectionProvider2_INTERFACE_DEFINED__ */
3221
3222/*****************************************************************************
3223 * IScrollProvider interface
3224 */
3225#ifndef __IScrollProvider_INTERFACE_DEFINED__
3226#define __IScrollProvider_INTERFACE_DEFINED__
3227
3228DEFINE_GUID(IID_IScrollProvider, 0xb38b8077, 0x1fc3, 0x42a5, 0x8c,0xae, 0xd4,0x0c,0x22,0x15,0x05,0x5a);
3229#if defined(__cplusplus) && !defined(CINTERFACE)
3230MIDL_INTERFACE("b38b8077-1fc3-42a5-8cae-d40c2215055a")
3231IScrollProvider : public IUnknown
3232{
3233    virtual HRESULT STDMETHODCALLTYPE Scroll(
3234        enum ScrollAmount horizontalAmount,
3235        enum ScrollAmount verticalAmount) = 0;
3236
3237    virtual HRESULT STDMETHODCALLTYPE SetScrollPercent(
3238        double horizontalPercent,
3239        double verticalPercent) = 0;
3240
3241    virtual HRESULT STDMETHODCALLTYPE get_HorizontalScrollPercent(
3242        double *pRetVal) = 0;
3243
3244    virtual HRESULT STDMETHODCALLTYPE get_VerticalScrollPercent(
3245        double *pRetVal) = 0;
3246
3247    virtual HRESULT STDMETHODCALLTYPE get_HorizontalViewSize(
3248        double *pRetVal) = 0;
3249
3250    virtual HRESULT STDMETHODCALLTYPE get_VerticalViewSize(
3251        double *pRetVal) = 0;
3252
3253    virtual HRESULT STDMETHODCALLTYPE get_HorizontallyScrollable(
3254        WINBOOL *pRetVal) = 0;
3255
3256    virtual HRESULT STDMETHODCALLTYPE get_VerticallyScrollable(
3257        WINBOOL *pRetVal) = 0;
3258
3259};
3260#ifdef __CRT_UUID_DECL
3261__CRT_UUID_DECL(IScrollProvider, 0xb38b8077, 0x1fc3, 0x42a5, 0x8c,0xae, 0xd4,0x0c,0x22,0x15,0x05,0x5a)
3262#endif
3263#else
3264typedef struct IScrollProviderVtbl {
3265    BEGIN_INTERFACE
3266
3267    /*** IUnknown methods ***/
3268    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3269        IScrollProvider *This,
3270        REFIID riid,
3271        void **ppvObject);
3272
3273    ULONG (STDMETHODCALLTYPE *AddRef)(
3274        IScrollProvider *This);
3275
3276    ULONG (STDMETHODCALLTYPE *Release)(
3277        IScrollProvider *This);
3278
3279    /*** IScrollProvider methods ***/
3280    HRESULT (STDMETHODCALLTYPE *Scroll)(
3281        IScrollProvider *This,
3282        enum ScrollAmount horizontalAmount,
3283        enum ScrollAmount verticalAmount);
3284
3285    HRESULT (STDMETHODCALLTYPE *SetScrollPercent)(
3286        IScrollProvider *This,
3287        double horizontalPercent,
3288        double verticalPercent);
3289
3290    HRESULT (STDMETHODCALLTYPE *get_HorizontalScrollPercent)(
3291        IScrollProvider *This,
3292        double *pRetVal);
3293
3294    HRESULT (STDMETHODCALLTYPE *get_VerticalScrollPercent)(
3295        IScrollProvider *This,
3296        double *pRetVal);
3297
3298    HRESULT (STDMETHODCALLTYPE *get_HorizontalViewSize)(
3299        IScrollProvider *This,
3300        double *pRetVal);
3301
3302    HRESULT (STDMETHODCALLTYPE *get_VerticalViewSize)(
3303        IScrollProvider *This,
3304        double *pRetVal);
3305
3306    HRESULT (STDMETHODCALLTYPE *get_HorizontallyScrollable)(
3307        IScrollProvider *This,
3308        WINBOOL *pRetVal);
3309
3310    HRESULT (STDMETHODCALLTYPE *get_VerticallyScrollable)(
3311        IScrollProvider *This,
3312        WINBOOL *pRetVal);
3313
3314    END_INTERFACE
3315} IScrollProviderVtbl;
3316
3317interface IScrollProvider {
3318    CONST_VTBL IScrollProviderVtbl* lpVtbl;
3319};
3320
3321#ifdef COBJMACROS
3322#ifndef WIDL_C_INLINE_WRAPPERS
3323/*** IUnknown methods ***/
3324#define IScrollProvider_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
3325#define IScrollProvider_AddRef(This) (This)->lpVtbl->AddRef(This)
3326#define IScrollProvider_Release(This) (This)->lpVtbl->Release(This)
3327/*** IScrollProvider methods ***/
3328#define IScrollProvider_Scroll(This,horizontalAmount,verticalAmount) (This)->lpVtbl->Scroll(This,horizontalAmount,verticalAmount)
3329#define IScrollProvider_SetScrollPercent(This,horizontalPercent,verticalPercent) (This)->lpVtbl->SetScrollPercent(This,horizontalPercent,verticalPercent)
3330#define IScrollProvider_get_HorizontalScrollPercent(This,pRetVal) (This)->lpVtbl->get_HorizontalScrollPercent(This,pRetVal)
3331#define IScrollProvider_get_VerticalScrollPercent(This,pRetVal) (This)->lpVtbl->get_VerticalScrollPercent(This,pRetVal)
3332#define IScrollProvider_get_HorizontalViewSize(This,pRetVal) (This)->lpVtbl->get_HorizontalViewSize(This,pRetVal)
3333#define IScrollProvider_get_VerticalViewSize(This,pRetVal) (This)->lpVtbl->get_VerticalViewSize(This,pRetVal)
3334#define IScrollProvider_get_HorizontallyScrollable(This,pRetVal) (This)->lpVtbl->get_HorizontallyScrollable(This,pRetVal)
3335#define IScrollProvider_get_VerticallyScrollable(This,pRetVal) (This)->lpVtbl->get_VerticallyScrollable(This,pRetVal)
3336#else
3337/*** IUnknown methods ***/
3338static inline HRESULT IScrollProvider_QueryInterface(IScrollProvider* This,REFIID riid,void **ppvObject) {
3339    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
3340}
3341static inline ULONG IScrollProvider_AddRef(IScrollProvider* This) {
3342    return This->lpVtbl->AddRef(This);
3343}
3344static inline ULONG IScrollProvider_Release(IScrollProvider* This) {
3345    return This->lpVtbl->Release(This);
3346}
3347/*** IScrollProvider methods ***/
3348static inline HRESULT IScrollProvider_Scroll(IScrollProvider* This,enum ScrollAmount horizontalAmount,enum ScrollAmount verticalAmount) {
3349    return This->lpVtbl->Scroll(This,horizontalAmount,verticalAmount);
3350}
3351static inline HRESULT IScrollProvider_SetScrollPercent(IScrollProvider* This,double horizontalPercent,double verticalPercent) {
3352    return This->lpVtbl->SetScrollPercent(This,horizontalPercent,verticalPercent);
3353}
3354static inline HRESULT IScrollProvider_get_HorizontalScrollPercent(IScrollProvider* This,double *pRetVal) {
3355    return This->lpVtbl->get_HorizontalScrollPercent(This,pRetVal);
3356}
3357static inline HRESULT IScrollProvider_get_VerticalScrollPercent(IScrollProvider* This,double *pRetVal) {
3358    return This->lpVtbl->get_VerticalScrollPercent(This,pRetVal);
3359}
3360static inline HRESULT IScrollProvider_get_HorizontalViewSize(IScrollProvider* This,double *pRetVal) {
3361    return This->lpVtbl->get_HorizontalViewSize(This,pRetVal);
3362}
3363static inline HRESULT IScrollProvider_get_VerticalViewSize(IScrollProvider* This,double *pRetVal) {
3364    return This->lpVtbl->get_VerticalViewSize(This,pRetVal);
3365}
3366static inline HRESULT IScrollProvider_get_HorizontallyScrollable(IScrollProvider* This,WINBOOL *pRetVal) {
3367    return This->lpVtbl->get_HorizontallyScrollable(This,pRetVal);
3368}
3369static inline HRESULT IScrollProvider_get_VerticallyScrollable(IScrollProvider* This,WINBOOL *pRetVal) {
3370    return This->lpVtbl->get_VerticallyScrollable(This,pRetVal);
3371}
3372#endif
3373#endif
3374
3375#endif
3376
3377
3378#endif  /* __IScrollProvider_INTERFACE_DEFINED__ */
3379
3380/*****************************************************************************
3381 * ISelectionItemProvider interface
3382 */
3383#ifndef __ISelectionItemProvider_INTERFACE_DEFINED__
3384#define __ISelectionItemProvider_INTERFACE_DEFINED__
3385
3386DEFINE_GUID(IID_ISelectionItemProvider, 0x2acad808, 0xb2d4, 0x452d, 0xa4,0x07, 0x91,0xff,0x1a,0xd1,0x67,0xb2);
3387#if defined(__cplusplus) && !defined(CINTERFACE)
3388MIDL_INTERFACE("2acad808-b2d4-452d-a407-91ff1ad167b2")
3389ISelectionItemProvider : public IUnknown
3390{
3391    virtual HRESULT STDMETHODCALLTYPE Select(
3392        ) = 0;
3393
3394    virtual HRESULT STDMETHODCALLTYPE AddToSelection(
3395        ) = 0;
3396
3397    virtual HRESULT STDMETHODCALLTYPE RemoveFromSelection(
3398        ) = 0;
3399
3400    virtual HRESULT STDMETHODCALLTYPE get_IsSelected(
3401        WINBOOL *pRetVal) = 0;
3402
3403    virtual HRESULT STDMETHODCALLTYPE get_SelectionContainer(
3404        IRawElementProviderSimple **pRetVal) = 0;
3405
3406};
3407#ifdef __CRT_UUID_DECL
3408__CRT_UUID_DECL(ISelectionItemProvider, 0x2acad808, 0xb2d4, 0x452d, 0xa4,0x07, 0x91,0xff,0x1a,0xd1,0x67,0xb2)
3409#endif
3410#else
3411typedef struct ISelectionItemProviderVtbl {
3412    BEGIN_INTERFACE
3413
3414    /*** IUnknown methods ***/
3415    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3416        ISelectionItemProvider *This,
3417        REFIID riid,
3418        void **ppvObject);
3419
3420    ULONG (STDMETHODCALLTYPE *AddRef)(
3421        ISelectionItemProvider *This);
3422
3423    ULONG (STDMETHODCALLTYPE *Release)(
3424        ISelectionItemProvider *This);
3425
3426    /*** ISelectionItemProvider methods ***/
3427    HRESULT (STDMETHODCALLTYPE *Select)(
3428        ISelectionItemProvider *This);
3429
3430    HRESULT (STDMETHODCALLTYPE *AddToSelection)(
3431        ISelectionItemProvider *This);
3432
3433    HRESULT (STDMETHODCALLTYPE *RemoveFromSelection)(
3434        ISelectionItemProvider *This);
3435
3436    HRESULT (STDMETHODCALLTYPE *get_IsSelected)(
3437        ISelectionItemProvider *This,
3438        WINBOOL *pRetVal);
3439
3440    HRESULT (STDMETHODCALLTYPE *get_SelectionContainer)(
3441        ISelectionItemProvider *This,
3442        IRawElementProviderSimple **pRetVal);
3443
3444    END_INTERFACE
3445} ISelectionItemProviderVtbl;
3446
3447interface ISelectionItemProvider {
3448    CONST_VTBL ISelectionItemProviderVtbl* lpVtbl;
3449};
3450
3451#ifdef COBJMACROS
3452#ifndef WIDL_C_INLINE_WRAPPERS
3453/*** IUnknown methods ***/
3454#define ISelectionItemProvider_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
3455#define ISelectionItemProvider_AddRef(This) (This)->lpVtbl->AddRef(This)
3456#define ISelectionItemProvider_Release(This) (This)->lpVtbl->Release(This)
3457/*** ISelectionItemProvider methods ***/
3458#define ISelectionItemProvider_Select(This) (This)->lpVtbl->Select(This)
3459#define ISelectionItemProvider_AddToSelection(This) (This)->lpVtbl->AddToSelection(This)
3460#define ISelectionItemProvider_RemoveFromSelection(This) (This)->lpVtbl->RemoveFromSelection(This)
3461#define ISelectionItemProvider_get_IsSelected(This,pRetVal) (This)->lpVtbl->get_IsSelected(This,pRetVal)
3462#define ISelectionItemProvider_get_SelectionContainer(This,pRetVal) (This)->lpVtbl->get_SelectionContainer(This,pRetVal)
3463#else
3464/*** IUnknown methods ***/
3465static inline HRESULT ISelectionItemProvider_QueryInterface(ISelectionItemProvider* This,REFIID riid,void **ppvObject) {
3466    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
3467}
3468static inline ULONG ISelectionItemProvider_AddRef(ISelectionItemProvider* This) {
3469    return This->lpVtbl->AddRef(This);
3470}
3471static inline ULONG ISelectionItemProvider_Release(ISelectionItemProvider* This) {
3472    return This->lpVtbl->Release(This);
3473}
3474/*** ISelectionItemProvider methods ***/
3475static inline HRESULT ISelectionItemProvider_Select(ISelectionItemProvider* This) {
3476    return This->lpVtbl->Select(This);
3477}
3478static inline HRESULT ISelectionItemProvider_AddToSelection(ISelectionItemProvider* This) {
3479    return This->lpVtbl->AddToSelection(This);
3480}
3481static inline HRESULT ISelectionItemProvider_RemoveFromSelection(ISelectionItemProvider* This) {
3482    return This->lpVtbl->RemoveFromSelection(This);
3483}
3484static inline HRESULT ISelectionItemProvider_get_IsSelected(ISelectionItemProvider* This,WINBOOL *pRetVal) {
3485    return This->lpVtbl->get_IsSelected(This,pRetVal);
3486}
3487static inline HRESULT ISelectionItemProvider_get_SelectionContainer(ISelectionItemProvider* This,IRawElementProviderSimple **pRetVal) {
3488    return This->lpVtbl->get_SelectionContainer(This,pRetVal);
3489}
3490#endif
3491#endif
3492
3493#endif
3494
3495
3496#endif  /* __ISelectionItemProvider_INTERFACE_DEFINED__ */
3497
3498/*****************************************************************************
3499 * ISynchronizedInputProvider interface
3500 */
3501#ifndef __ISynchronizedInputProvider_INTERFACE_DEFINED__
3502#define __ISynchronizedInputProvider_INTERFACE_DEFINED__
3503
3504DEFINE_GUID(IID_ISynchronizedInputProvider, 0x29db1a06, 0x02ce, 0x4cf7, 0x9b,0x42, 0x56,0x5d,0x4f,0xab,0x20,0xee);
3505#if defined(__cplusplus) && !defined(CINTERFACE)
3506MIDL_INTERFACE("29db1a06-02ce-4cf7-9b42-565d4fab20ee")
3507ISynchronizedInputProvider : public IUnknown
3508{
3509    virtual HRESULT STDMETHODCALLTYPE StartListening(
3510        enum SynchronizedInputType inputType) = 0;
3511
3512    virtual HRESULT STDMETHODCALLTYPE Cancel(
3513        ) = 0;
3514
3515};
3516#ifdef __CRT_UUID_DECL
3517__CRT_UUID_DECL(ISynchronizedInputProvider, 0x29db1a06, 0x02ce, 0x4cf7, 0x9b,0x42, 0x56,0x5d,0x4f,0xab,0x20,0xee)
3518#endif
3519#else
3520typedef struct ISynchronizedInputProviderVtbl {
3521    BEGIN_INTERFACE
3522
3523    /*** IUnknown methods ***/
3524    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3525        ISynchronizedInputProvider *This,
3526        REFIID riid,
3527        void **ppvObject);
3528
3529    ULONG (STDMETHODCALLTYPE *AddRef)(
3530        ISynchronizedInputProvider *This);
3531
3532    ULONG (STDMETHODCALLTYPE *Release)(
3533        ISynchronizedInputProvider *This);
3534
3535    /*** ISynchronizedInputProvider methods ***/
3536    HRESULT (STDMETHODCALLTYPE *StartListening)(
3537        ISynchronizedInputProvider *This,
3538        enum SynchronizedInputType inputType);
3539
3540    HRESULT (STDMETHODCALLTYPE *Cancel)(
3541        ISynchronizedInputProvider *This);
3542
3543    END_INTERFACE
3544} ISynchronizedInputProviderVtbl;
3545
3546interface ISynchronizedInputProvider {
3547    CONST_VTBL ISynchronizedInputProviderVtbl* lpVtbl;
3548};
3549
3550#ifdef COBJMACROS
3551#ifndef WIDL_C_INLINE_WRAPPERS
3552/*** IUnknown methods ***/
3553#define ISynchronizedInputProvider_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
3554#define ISynchronizedInputProvider_AddRef(This) (This)->lpVtbl->AddRef(This)
3555#define ISynchronizedInputProvider_Release(This) (This)->lpVtbl->Release(This)
3556/*** ISynchronizedInputProvider methods ***/
3557#define ISynchronizedInputProvider_StartListening(This,inputType) (This)->lpVtbl->StartListening(This,inputType)
3558#define ISynchronizedInputProvider_Cancel(This) (This)->lpVtbl->Cancel(This)
3559#else
3560/*** IUnknown methods ***/
3561static inline HRESULT ISynchronizedInputProvider_QueryInterface(ISynchronizedInputProvider* This,REFIID riid,void **ppvObject) {
3562    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
3563}
3564static inline ULONG ISynchronizedInputProvider_AddRef(ISynchronizedInputProvider* This) {
3565    return This->lpVtbl->AddRef(This);
3566}
3567static inline ULONG ISynchronizedInputProvider_Release(ISynchronizedInputProvider* This) {
3568    return This->lpVtbl->Release(This);
3569}
3570/*** ISynchronizedInputProvider methods ***/
3571static inline HRESULT ISynchronizedInputProvider_StartListening(ISynchronizedInputProvider* This,enum SynchronizedInputType inputType) {
3572    return This->lpVtbl->StartListening(This,inputType);
3573}
3574static inline HRESULT ISynchronizedInputProvider_Cancel(ISynchronizedInputProvider* This) {
3575    return This->lpVtbl->Cancel(This);
3576}
3577#endif
3578#endif
3579
3580#endif
3581
3582
3583#endif  /* __ISynchronizedInputProvider_INTERFACE_DEFINED__ */
3584
3585/*****************************************************************************
3586 * ITableProvider interface
3587 */
3588#ifndef __ITableProvider_INTERFACE_DEFINED__
3589#define __ITableProvider_INTERFACE_DEFINED__
3590
3591DEFINE_GUID(IID_ITableProvider, 0x9c860395, 0x97b3, 0x490a, 0xb5,0x2a, 0x85,0x8c,0xc2,0x2a,0xf1,0x66);
3592#if defined(__cplusplus) && !defined(CINTERFACE)
3593MIDL_INTERFACE("9c860395-97b3-490a-b52a-858cc22af166")
3594ITableProvider : public IUnknown
3595{
3596    virtual HRESULT STDMETHODCALLTYPE GetRowHeaders(
3597        SAFEARRAY **pRetVal) = 0;
3598
3599    virtual HRESULT STDMETHODCALLTYPE GetColumnHeaders(
3600        SAFEARRAY **pRetVal) = 0;
3601
3602    virtual HRESULT STDMETHODCALLTYPE get_RowOrColumnMajor(
3603        enum RowOrColumnMajor *pRetVal) = 0;
3604
3605};
3606#ifdef __CRT_UUID_DECL
3607__CRT_UUID_DECL(ITableProvider, 0x9c860395, 0x97b3, 0x490a, 0xb5,0x2a, 0x85,0x8c,0xc2,0x2a,0xf1,0x66)
3608#endif
3609#else
3610typedef struct ITableProviderVtbl {
3611    BEGIN_INTERFACE
3612
3613    /*** IUnknown methods ***/
3614    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3615        ITableProvider *This,
3616        REFIID riid,
3617        void **ppvObject);
3618
3619    ULONG (STDMETHODCALLTYPE *AddRef)(
3620        ITableProvider *This);
3621
3622    ULONG (STDMETHODCALLTYPE *Release)(
3623        ITableProvider *This);
3624
3625    /*** ITableProvider methods ***/
3626    HRESULT (STDMETHODCALLTYPE *GetRowHeaders)(
3627        ITableProvider *This,
3628        SAFEARRAY **pRetVal);
3629
3630    HRESULT (STDMETHODCALLTYPE *GetColumnHeaders)(
3631        ITableProvider *This,
3632        SAFEARRAY **pRetVal);
3633
3634    HRESULT (STDMETHODCALLTYPE *get_RowOrColumnMajor)(
3635        ITableProvider *This,
3636        enum RowOrColumnMajor *pRetVal);
3637
3638    END_INTERFACE
3639} ITableProviderVtbl;
3640
3641interface ITableProvider {
3642    CONST_VTBL ITableProviderVtbl* lpVtbl;
3643};
3644
3645#ifdef COBJMACROS
3646#ifndef WIDL_C_INLINE_WRAPPERS
3647/*** IUnknown methods ***/
3648#define ITableProvider_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
3649#define ITableProvider_AddRef(This) (This)->lpVtbl->AddRef(This)
3650#define ITableProvider_Release(This) (This)->lpVtbl->Release(This)
3651/*** ITableProvider methods ***/
3652#define ITableProvider_GetRowHeaders(This,pRetVal) (This)->lpVtbl->GetRowHeaders(This,pRetVal)
3653#define ITableProvider_GetColumnHeaders(This,pRetVal) (This)->lpVtbl->GetColumnHeaders(This,pRetVal)
3654#define ITableProvider_get_RowOrColumnMajor(This,pRetVal) (This)->lpVtbl->get_RowOrColumnMajor(This,pRetVal)
3655#else
3656/*** IUnknown methods ***/
3657static inline HRESULT ITableProvider_QueryInterface(ITableProvider* This,REFIID riid,void **ppvObject) {
3658    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
3659}
3660static inline ULONG ITableProvider_AddRef(ITableProvider* This) {
3661    return This->lpVtbl->AddRef(This);
3662}
3663static inline ULONG ITableProvider_Release(ITableProvider* This) {
3664    return This->lpVtbl->Release(This);
3665}
3666/*** ITableProvider methods ***/
3667static inline HRESULT ITableProvider_GetRowHeaders(ITableProvider* This,SAFEARRAY **pRetVal) {
3668    return This->lpVtbl->GetRowHeaders(This,pRetVal);
3669}
3670static inline HRESULT ITableProvider_GetColumnHeaders(ITableProvider* This,SAFEARRAY **pRetVal) {
3671    return This->lpVtbl->GetColumnHeaders(This,pRetVal);
3672}
3673static inline HRESULT ITableProvider_get_RowOrColumnMajor(ITableProvider* This,enum RowOrColumnMajor *pRetVal) {
3674    return This->lpVtbl->get_RowOrColumnMajor(This,pRetVal);
3675}
3676#endif
3677#endif
3678
3679#endif
3680
3681
3682#endif  /* __ITableProvider_INTERFACE_DEFINED__ */
3683
3684/*****************************************************************************
3685 * ITableItemProvider interface
3686 */
3687#ifndef __ITableItemProvider_INTERFACE_DEFINED__
3688#define __ITableItemProvider_INTERFACE_DEFINED__
3689
3690DEFINE_GUID(IID_ITableItemProvider, 0xb9734fa6, 0x771f, 0x4d78, 0x9c,0x90, 0x25,0x17,0x99,0x93,0x49,0xcd);
3691#if defined(__cplusplus) && !defined(CINTERFACE)
3692MIDL_INTERFACE("b9734fa6-771f-4d78-9c90-2517999349cd")
3693ITableItemProvider : public IUnknown
3694{
3695    virtual HRESULT STDMETHODCALLTYPE GetRowHeaderItems(
3696        SAFEARRAY **pRetVal) = 0;
3697
3698    virtual HRESULT STDMETHODCALLTYPE GetColumnHeaderItems(
3699        SAFEARRAY **pRetVal) = 0;
3700
3701};
3702#ifdef __CRT_UUID_DECL
3703__CRT_UUID_DECL(ITableItemProvider, 0xb9734fa6, 0x771f, 0x4d78, 0x9c,0x90, 0x25,0x17,0x99,0x93,0x49,0xcd)
3704#endif
3705#else
3706typedef struct ITableItemProviderVtbl {
3707    BEGIN_INTERFACE
3708
3709    /*** IUnknown methods ***/
3710    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3711        ITableItemProvider *This,
3712        REFIID riid,
3713        void **ppvObject);
3714
3715    ULONG (STDMETHODCALLTYPE *AddRef)(
3716        ITableItemProvider *This);
3717
3718    ULONG (STDMETHODCALLTYPE *Release)(
3719        ITableItemProvider *This);
3720
3721    /*** ITableItemProvider methods ***/
3722    HRESULT (STDMETHODCALLTYPE *GetRowHeaderItems)(
3723        ITableItemProvider *This,
3724        SAFEARRAY **pRetVal);
3725
3726    HRESULT (STDMETHODCALLTYPE *GetColumnHeaderItems)(
3727        ITableItemProvider *This,
3728        SAFEARRAY **pRetVal);
3729
3730    END_INTERFACE
3731} ITableItemProviderVtbl;
3732
3733interface ITableItemProvider {
3734    CONST_VTBL ITableItemProviderVtbl* lpVtbl;
3735};
3736
3737#ifdef COBJMACROS
3738#ifndef WIDL_C_INLINE_WRAPPERS
3739/*** IUnknown methods ***/
3740#define ITableItemProvider_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
3741#define ITableItemProvider_AddRef(This) (This)->lpVtbl->AddRef(This)
3742#define ITableItemProvider_Release(This) (This)->lpVtbl->Release(This)
3743/*** ITableItemProvider methods ***/
3744#define ITableItemProvider_GetRowHeaderItems(This,pRetVal) (This)->lpVtbl->GetRowHeaderItems(This,pRetVal)
3745#define ITableItemProvider_GetColumnHeaderItems(This,pRetVal) (This)->lpVtbl->GetColumnHeaderItems(This,pRetVal)
3746#else
3747/*** IUnknown methods ***/
3748static inline HRESULT ITableItemProvider_QueryInterface(ITableItemProvider* This,REFIID riid,void **ppvObject) {
3749    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
3750}
3751static inline ULONG ITableItemProvider_AddRef(ITableItemProvider* This) {
3752    return This->lpVtbl->AddRef(This);
3753}
3754static inline ULONG ITableItemProvider_Release(ITableItemProvider* This) {
3755    return This->lpVtbl->Release(This);
3756}
3757/*** ITableItemProvider methods ***/
3758static inline HRESULT ITableItemProvider_GetRowHeaderItems(ITableItemProvider* This,SAFEARRAY **pRetVal) {
3759    return This->lpVtbl->GetRowHeaderItems(This,pRetVal);
3760}
3761static inline HRESULT ITableItemProvider_GetColumnHeaderItems(ITableItemProvider* This,SAFEARRAY **pRetVal) {
3762    return This->lpVtbl->GetColumnHeaderItems(This,pRetVal);
3763}
3764#endif
3765#endif
3766
3767#endif
3768
3769
3770#endif  /* __ITableItemProvider_INTERFACE_DEFINED__ */
3771
3772/*****************************************************************************
3773 * IToggleProvider interface
3774 */
3775#ifndef __IToggleProvider_INTERFACE_DEFINED__
3776#define __IToggleProvider_INTERFACE_DEFINED__
3777
3778DEFINE_GUID(IID_IToggleProvider, 0x56d00bd0, 0xc4f4, 0x433c, 0xa8,0x36, 0x1a,0x52,0xa5,0x7e,0x08,0x92);
3779#if defined(__cplusplus) && !defined(CINTERFACE)
3780MIDL_INTERFACE("56d00bd0-c4f4-433c-a836-1a52a57e0892")
3781IToggleProvider : public IUnknown
3782{
3783    virtual HRESULT STDMETHODCALLTYPE Toggle(
3784        ) = 0;
3785
3786    virtual HRESULT STDMETHODCALLTYPE get_ToggleState(
3787        enum ToggleState *pRetVal) = 0;
3788
3789};
3790#ifdef __CRT_UUID_DECL
3791__CRT_UUID_DECL(IToggleProvider, 0x56d00bd0, 0xc4f4, 0x433c, 0xa8,0x36, 0x1a,0x52,0xa5,0x7e,0x08,0x92)
3792#endif
3793#else
3794typedef struct IToggleProviderVtbl {
3795    BEGIN_INTERFACE
3796
3797    /*** IUnknown methods ***/
3798    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3799        IToggleProvider *This,
3800        REFIID riid,
3801        void **ppvObject);
3802
3803    ULONG (STDMETHODCALLTYPE *AddRef)(
3804        IToggleProvider *This);
3805
3806    ULONG (STDMETHODCALLTYPE *Release)(
3807        IToggleProvider *This);
3808
3809    /*** IToggleProvider methods ***/
3810    HRESULT (STDMETHODCALLTYPE *Toggle)(
3811        IToggleProvider *This);
3812
3813    HRESULT (STDMETHODCALLTYPE *get_ToggleState)(
3814        IToggleProvider *This,
3815        enum ToggleState *pRetVal);
3816
3817    END_INTERFACE
3818} IToggleProviderVtbl;
3819
3820interface IToggleProvider {
3821    CONST_VTBL IToggleProviderVtbl* lpVtbl;
3822};
3823
3824#ifdef COBJMACROS
3825#ifndef WIDL_C_INLINE_WRAPPERS
3826/*** IUnknown methods ***/
3827#define IToggleProvider_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
3828#define IToggleProvider_AddRef(This) (This)->lpVtbl->AddRef(This)
3829#define IToggleProvider_Release(This) (This)->lpVtbl->Release(This)
3830/*** IToggleProvider methods ***/
3831#define IToggleProvider_Toggle(This) (This)->lpVtbl->Toggle(This)
3832#define IToggleProvider_get_ToggleState(This,pRetVal) (This)->lpVtbl->get_ToggleState(This,pRetVal)
3833#else
3834/*** IUnknown methods ***/
3835static inline HRESULT IToggleProvider_QueryInterface(IToggleProvider* This,REFIID riid,void **ppvObject) {
3836    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
3837}
3838static inline ULONG IToggleProvider_AddRef(IToggleProvider* This) {
3839    return This->lpVtbl->AddRef(This);
3840}
3841static inline ULONG IToggleProvider_Release(IToggleProvider* This) {
3842    return This->lpVtbl->Release(This);
3843}
3844/*** IToggleProvider methods ***/
3845static inline HRESULT IToggleProvider_Toggle(IToggleProvider* This) {
3846    return This->lpVtbl->Toggle(This);
3847}
3848static inline HRESULT IToggleProvider_get_ToggleState(IToggleProvider* This,enum ToggleState *pRetVal) {
3849    return This->lpVtbl->get_ToggleState(This,pRetVal);
3850}
3851#endif
3852#endif
3853
3854#endif
3855
3856
3857#endif  /* __IToggleProvider_INTERFACE_DEFINED__ */
3858
3859/*****************************************************************************
3860 * ITransformProvider interface
3861 */
3862#ifndef __ITransformProvider_INTERFACE_DEFINED__
3863#define __ITransformProvider_INTERFACE_DEFINED__
3864
3865DEFINE_GUID(IID_ITransformProvider, 0x6829ddc4, 0x4f91, 0x4ffa, 0xb8,0x6f, 0xbd,0x3e,0x29,0x87,0xcb,0x4c);
3866#if defined(__cplusplus) && !defined(CINTERFACE)
3867MIDL_INTERFACE("6829ddc4-4f91-4ffa-b86f-bd3e2987cb4c")
3868ITransformProvider : public IUnknown
3869{
3870    virtual HRESULT STDMETHODCALLTYPE Move(
3871        double x,
3872        double y) = 0;
3873
3874    virtual HRESULT STDMETHODCALLTYPE Resize(
3875        double width,
3876        double height) = 0;
3877
3878    virtual HRESULT STDMETHODCALLTYPE Rotate(
3879        double degrees) = 0;
3880
3881    virtual HRESULT STDMETHODCALLTYPE get_CanMove(
3882        WINBOOL *pRetVal) = 0;
3883
3884    virtual HRESULT STDMETHODCALLTYPE get_CanResize(
3885        WINBOOL *pRetVal) = 0;
3886
3887    virtual HRESULT STDMETHODCALLTYPE get_CanRotate(
3888        WINBOOL *pRetVal) = 0;
3889
3890};
3891#ifdef __CRT_UUID_DECL
3892__CRT_UUID_DECL(ITransformProvider, 0x6829ddc4, 0x4f91, 0x4ffa, 0xb8,0x6f, 0xbd,0x3e,0x29,0x87,0xcb,0x4c)
3893#endif
3894#else
3895typedef struct ITransformProviderVtbl {
3896    BEGIN_INTERFACE
3897
3898    /*** IUnknown methods ***/
3899    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3900        ITransformProvider *This,
3901        REFIID riid,
3902        void **ppvObject);
3903
3904    ULONG (STDMETHODCALLTYPE *AddRef)(
3905        ITransformProvider *This);
3906
3907    ULONG (STDMETHODCALLTYPE *Release)(
3908        ITransformProvider *This);
3909
3910    /*** ITransformProvider methods ***/
3911    HRESULT (STDMETHODCALLTYPE *Move)(
3912        ITransformProvider *This,
3913        double x,
3914        double y);
3915
3916    HRESULT (STDMETHODCALLTYPE *Resize)(
3917        ITransformProvider *This,
3918        double width,
3919        double height);
3920
3921    HRESULT (STDMETHODCALLTYPE *Rotate)(
3922        ITransformProvider *This,
3923        double degrees);
3924
3925    HRESULT (STDMETHODCALLTYPE *get_CanMove)(
3926        ITransformProvider *This,
3927        WINBOOL *pRetVal);
3928
3929    HRESULT (STDMETHODCALLTYPE *get_CanResize)(
3930        ITransformProvider *This,
3931        WINBOOL *pRetVal);
3932
3933    HRESULT (STDMETHODCALLTYPE *get_CanRotate)(
3934        ITransformProvider *This,
3935        WINBOOL *pRetVal);
3936
3937    END_INTERFACE
3938} ITransformProviderVtbl;
3939
3940interface ITransformProvider {
3941    CONST_VTBL ITransformProviderVtbl* lpVtbl;
3942};
3943
3944#ifdef COBJMACROS
3945#ifndef WIDL_C_INLINE_WRAPPERS
3946/*** IUnknown methods ***/
3947#define ITransformProvider_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
3948#define ITransformProvider_AddRef(This) (This)->lpVtbl->AddRef(This)
3949#define ITransformProvider_Release(This) (This)->lpVtbl->Release(This)
3950/*** ITransformProvider methods ***/
3951#define ITransformProvider_Move(This,x,y) (This)->lpVtbl->Move(This,x,y)
3952#define ITransformProvider_Resize(This,width,height) (This)->lpVtbl->Resize(This,width,height)
3953#define ITransformProvider_Rotate(This,degrees) (This)->lpVtbl->Rotate(This,degrees)
3954#define ITransformProvider_get_CanMove(This,pRetVal) (This)->lpVtbl->get_CanMove(This,pRetVal)
3955#define ITransformProvider_get_CanResize(This,pRetVal) (This)->lpVtbl->get_CanResize(This,pRetVal)
3956#define ITransformProvider_get_CanRotate(This,pRetVal) (This)->lpVtbl->get_CanRotate(This,pRetVal)
3957#else
3958/*** IUnknown methods ***/
3959static inline HRESULT ITransformProvider_QueryInterface(ITransformProvider* This,REFIID riid,void **ppvObject) {
3960    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
3961}
3962static inline ULONG ITransformProvider_AddRef(ITransformProvider* This) {
3963    return This->lpVtbl->AddRef(This);
3964}
3965static inline ULONG ITransformProvider_Release(ITransformProvider* This) {
3966    return This->lpVtbl->Release(This);
3967}
3968/*** ITransformProvider methods ***/
3969static inline HRESULT ITransformProvider_Move(ITransformProvider* This,double x,double y) {
3970    return This->lpVtbl->Move(This,x,y);
3971}
3972static inline HRESULT ITransformProvider_Resize(ITransformProvider* This,double width,double height) {
3973    return This->lpVtbl->Resize(This,width,height);
3974}
3975static inline HRESULT ITransformProvider_Rotate(ITransformProvider* This,double degrees) {
3976    return This->lpVtbl->Rotate(This,degrees);
3977}
3978static inline HRESULT ITransformProvider_get_CanMove(ITransformProvider* This,WINBOOL *pRetVal) {
3979    return This->lpVtbl->get_CanMove(This,pRetVal);
3980}
3981static inline HRESULT ITransformProvider_get_CanResize(ITransformProvider* This,WINBOOL *pRetVal) {
3982    return This->lpVtbl->get_CanResize(This,pRetVal);
3983}
3984static inline HRESULT ITransformProvider_get_CanRotate(ITransformProvider* This,WINBOOL *pRetVal) {
3985    return This->lpVtbl->get_CanRotate(This,pRetVal);
3986}
3987#endif
3988#endif
3989
3990#endif
3991
3992
3993#endif  /* __ITransformProvider_INTERFACE_DEFINED__ */
3994
3995/*****************************************************************************
3996 * IValueProvider interface
3997 */
3998#ifndef __IValueProvider_INTERFACE_DEFINED__
3999#define __IValueProvider_INTERFACE_DEFINED__
4000
4001DEFINE_GUID(IID_IValueProvider, 0xc7935180, 0x6fb3, 0x4201, 0xb1,0x74, 0x7d,0xf7,0x3a,0xdb,0xf6,0x4a);
4002#if defined(__cplusplus) && !defined(CINTERFACE)
4003MIDL_INTERFACE("c7935180-6fb3-4201-b174-7df73adbf64a")
4004IValueProvider : public IUnknown
4005{
4006    virtual HRESULT STDMETHODCALLTYPE SetValue(
4007        LPCWSTR val) = 0;
4008
4009    virtual HRESULT STDMETHODCALLTYPE get_Value(
4010        BSTR *pRetVal) = 0;
4011
4012    virtual HRESULT STDMETHODCALLTYPE get_IsReadOnly(
4013        WINBOOL *pRetVal) = 0;
4014
4015};
4016#ifdef __CRT_UUID_DECL
4017__CRT_UUID_DECL(IValueProvider, 0xc7935180, 0x6fb3, 0x4201, 0xb1,0x74, 0x7d,0xf7,0x3a,0xdb,0xf6,0x4a)
4018#endif
4019#else
4020typedef struct IValueProviderVtbl {
4021    BEGIN_INTERFACE
4022
4023    /*** IUnknown methods ***/
4024    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
4025        IValueProvider *This,
4026        REFIID riid,
4027        void **ppvObject);
4028
4029    ULONG (STDMETHODCALLTYPE *AddRef)(
4030        IValueProvider *This);
4031
4032    ULONG (STDMETHODCALLTYPE *Release)(
4033        IValueProvider *This);
4034
4035    /*** IValueProvider methods ***/
4036    HRESULT (STDMETHODCALLTYPE *SetValue)(
4037        IValueProvider *This,
4038        LPCWSTR val);
4039
4040    HRESULT (STDMETHODCALLTYPE *get_Value)(
4041        IValueProvider *This,
4042        BSTR *pRetVal);
4043
4044    HRESULT (STDMETHODCALLTYPE *get_IsReadOnly)(
4045        IValueProvider *This,
4046        WINBOOL *pRetVal);
4047
4048    END_INTERFACE
4049} IValueProviderVtbl;
4050
4051interface IValueProvider {
4052    CONST_VTBL IValueProviderVtbl* lpVtbl;
4053};
4054
4055#ifdef COBJMACROS
4056#ifndef WIDL_C_INLINE_WRAPPERS
4057/*** IUnknown methods ***/
4058#define IValueProvider_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
4059#define IValueProvider_AddRef(This) (This)->lpVtbl->AddRef(This)
4060#define IValueProvider_Release(This) (This)->lpVtbl->Release(This)
4061/*** IValueProvider methods ***/
4062#define IValueProvider_SetValue(This,val) (This)->lpVtbl->SetValue(This,val)
4063#define IValueProvider_get_Value(This,pRetVal) (This)->lpVtbl->get_Value(This,pRetVal)
4064#define IValueProvider_get_IsReadOnly(This,pRetVal) (This)->lpVtbl->get_IsReadOnly(This,pRetVal)
4065#else
4066/*** IUnknown methods ***/
4067static inline HRESULT IValueProvider_QueryInterface(IValueProvider* This,REFIID riid,void **ppvObject) {
4068    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
4069}
4070static inline ULONG IValueProvider_AddRef(IValueProvider* This) {
4071    return This->lpVtbl->AddRef(This);
4072}
4073static inline ULONG IValueProvider_Release(IValueProvider* This) {
4074    return This->lpVtbl->Release(This);
4075}
4076/*** IValueProvider methods ***/
4077static inline HRESULT IValueProvider_SetValue(IValueProvider* This,LPCWSTR val) {
4078    return This->lpVtbl->SetValue(This,val);
4079}
4080static inline HRESULT IValueProvider_get_Value(IValueProvider* This,BSTR *pRetVal) {
4081    return This->lpVtbl->get_Value(This,pRetVal);
4082}
4083static inline HRESULT IValueProvider_get_IsReadOnly(IValueProvider* This,WINBOOL *pRetVal) {
4084    return This->lpVtbl->get_IsReadOnly(This,pRetVal);
4085}
4086#endif
4087#endif
4088
4089#endif
4090
4091
4092#endif  /* __IValueProvider_INTERFACE_DEFINED__ */
4093
4094/*****************************************************************************
4095 * IWindowProvider interface
4096 */
4097#ifndef __IWindowProvider_INTERFACE_DEFINED__
4098#define __IWindowProvider_INTERFACE_DEFINED__
4099
4100DEFINE_GUID(IID_IWindowProvider, 0x987df77b, 0xdb06, 0x4d77, 0x8f,0x8a, 0x86,0xa9,0xc3,0xbb,0x90,0xb9);
4101#if defined(__cplusplus) && !defined(CINTERFACE)
4102MIDL_INTERFACE("987df77b-db06-4d77-8f8a-86a9c3bb90b9")
4103IWindowProvider : public IUnknown
4104{
4105    virtual HRESULT STDMETHODCALLTYPE SetVisualState(
4106        enum WindowVisualState state) = 0;
4107
4108    virtual HRESULT STDMETHODCALLTYPE Close(
4109        ) = 0;
4110
4111    virtual HRESULT STDMETHODCALLTYPE WaitForInputIdle(
4112        int milliseconds,
4113        WINBOOL *pRetVal) = 0;
4114
4115    virtual HRESULT STDMETHODCALLTYPE get_CanMaximize(
4116        WINBOOL *pRetVal) = 0;
4117
4118    virtual HRESULT STDMETHODCALLTYPE get_CanMinimize(
4119        WINBOOL *pRetVal) = 0;
4120
4121    virtual HRESULT STDMETHODCALLTYPE get_IsModal(
4122        WINBOOL *pRetVal) = 0;
4123
4124    virtual HRESULT STDMETHODCALLTYPE get_WindowVisualState(
4125        enum WindowVisualState *pRetVal) = 0;
4126
4127    virtual HRESULT STDMETHODCALLTYPE get_WindowInteractionState(
4128        enum WindowInteractionState *pRetVal) = 0;
4129
4130    virtual HRESULT STDMETHODCALLTYPE get_IsTopmost(
4131        WINBOOL *pRetVal) = 0;
4132
4133};
4134#ifdef __CRT_UUID_DECL
4135__CRT_UUID_DECL(IWindowProvider, 0x987df77b, 0xdb06, 0x4d77, 0x8f,0x8a, 0x86,0xa9,0xc3,0xbb,0x90,0xb9)
4136#endif
4137#else
4138typedef struct IWindowProviderVtbl {
4139    BEGIN_INTERFACE
4140
4141    /*** IUnknown methods ***/
4142    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
4143        IWindowProvider *This,
4144        REFIID riid,
4145        void **ppvObject);
4146
4147    ULONG (STDMETHODCALLTYPE *AddRef)(
4148        IWindowProvider *This);
4149
4150    ULONG (STDMETHODCALLTYPE *Release)(
4151        IWindowProvider *This);
4152
4153    /*** IWindowProvider methods ***/
4154    HRESULT (STDMETHODCALLTYPE *SetVisualState)(
4155        IWindowProvider *This,
4156        enum WindowVisualState state);
4157
4158    HRESULT (STDMETHODCALLTYPE *Close)(
4159        IWindowProvider *This);
4160
4161    HRESULT (STDMETHODCALLTYPE *WaitForInputIdle)(
4162        IWindowProvider *This,
4163        int milliseconds,
4164        WINBOOL *pRetVal);
4165
4166    HRESULT (STDMETHODCALLTYPE *get_CanMaximize)(
4167        IWindowProvider *This,
4168        WINBOOL *pRetVal);
4169
4170    HRESULT (STDMETHODCALLTYPE *get_CanMinimize)(
4171        IWindowProvider *This,
4172        WINBOOL *pRetVal);
4173
4174    HRESULT (STDMETHODCALLTYPE *get_IsModal)(
4175        IWindowProvider *This,
4176        WINBOOL *pRetVal);
4177
4178    HRESULT (STDMETHODCALLTYPE *get_WindowVisualState)(
4179        IWindowProvider *This,
4180        enum WindowVisualState *pRetVal);
4181
4182    HRESULT (STDMETHODCALLTYPE *get_WindowInteractionState)(
4183        IWindowProvider *This,
4184        enum WindowInteractionState *pRetVal);
4185
4186    HRESULT (STDMETHODCALLTYPE *get_IsTopmost)(
4187        IWindowProvider *This,
4188        WINBOOL *pRetVal);
4189
4190    END_INTERFACE
4191} IWindowProviderVtbl;
4192
4193interface IWindowProvider {
4194    CONST_VTBL IWindowProviderVtbl* lpVtbl;
4195};
4196
4197#ifdef COBJMACROS
4198#ifndef WIDL_C_INLINE_WRAPPERS
4199/*** IUnknown methods ***/
4200#define IWindowProvider_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
4201#define IWindowProvider_AddRef(This) (This)->lpVtbl->AddRef(This)
4202#define IWindowProvider_Release(This) (This)->lpVtbl->Release(This)
4203/*** IWindowProvider methods ***/
4204#define IWindowProvider_SetVisualState(This,state) (This)->lpVtbl->SetVisualState(This,state)
4205#define IWindowProvider_Close(This) (This)->lpVtbl->Close(This)
4206#define IWindowProvider_WaitForInputIdle(This,milliseconds,pRetVal) (This)->lpVtbl->WaitForInputIdle(This,milliseconds,pRetVal)
4207#define IWindowProvider_get_CanMaximize(This,pRetVal) (This)->lpVtbl->get_CanMaximize(This,pRetVal)
4208#define IWindowProvider_get_CanMinimize(This,pRetVal) (This)->lpVtbl->get_CanMinimize(This,pRetVal)
4209#define IWindowProvider_get_IsModal(This,pRetVal) (This)->lpVtbl->get_IsModal(This,pRetVal)
4210#define IWindowProvider_get_WindowVisualState(This,pRetVal) (This)->lpVtbl->get_WindowVisualState(This,pRetVal)
4211#define IWindowProvider_get_WindowInteractionState(This,pRetVal) (This)->lpVtbl->get_WindowInteractionState(This,pRetVal)
4212#define IWindowProvider_get_IsTopmost(This,pRetVal) (This)->lpVtbl->get_IsTopmost(This,pRetVal)
4213#else
4214/*** IUnknown methods ***/
4215static inline HRESULT IWindowProvider_QueryInterface(IWindowProvider* This,REFIID riid,void **ppvObject) {
4216    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
4217}
4218static inline ULONG IWindowProvider_AddRef(IWindowProvider* This) {
4219    return This->lpVtbl->AddRef(This);
4220}
4221static inline ULONG IWindowProvider_Release(IWindowProvider* This) {
4222    return This->lpVtbl->Release(This);
4223}
4224/*** IWindowProvider methods ***/
4225static inline HRESULT IWindowProvider_SetVisualState(IWindowProvider* This,enum WindowVisualState state) {
4226    return This->lpVtbl->SetVisualState(This,state);
4227}
4228static inline HRESULT IWindowProvider_Close(IWindowProvider* This) {
4229    return This->lpVtbl->Close(This);
4230}
4231static inline HRESULT IWindowProvider_WaitForInputIdle(IWindowProvider* This,int milliseconds,WINBOOL *pRetVal) {
4232    return This->lpVtbl->WaitForInputIdle(This,milliseconds,pRetVal);
4233}
4234static inline HRESULT IWindowProvider_get_CanMaximize(IWindowProvider* This,WINBOOL *pRetVal) {
4235    return This->lpVtbl->get_CanMaximize(This,pRetVal);
4236}
4237static inline HRESULT IWindowProvider_get_CanMinimize(IWindowProvider* This,WINBOOL *pRetVal) {
4238    return This->lpVtbl->get_CanMinimize(This,pRetVal);
4239}
4240static inline HRESULT IWindowProvider_get_IsModal(IWindowProvider* This,WINBOOL *pRetVal) {
4241    return This->lpVtbl->get_IsModal(This,pRetVal);
4242}
4243static inline HRESULT IWindowProvider_get_WindowVisualState(IWindowProvider* This,enum WindowVisualState *pRetVal) {
4244    return This->lpVtbl->get_WindowVisualState(This,pRetVal);
4245}
4246static inline HRESULT IWindowProvider_get_WindowInteractionState(IWindowProvider* This,enum WindowInteractionState *pRetVal) {
4247    return This->lpVtbl->get_WindowInteractionState(This,pRetVal);
4248}
4249static inline HRESULT IWindowProvider_get_IsTopmost(IWindowProvider* This,WINBOOL *pRetVal) {
4250    return This->lpVtbl->get_IsTopmost(This,pRetVal);
4251}
4252#endif
4253#endif
4254
4255#endif
4256
4257
4258#endif  /* __IWindowProvider_INTERFACE_DEFINED__ */
4259
4260/*****************************************************************************
4261 * IItemContainerProvider interface
4262 */
4263#ifndef __IItemContainerProvider_INTERFACE_DEFINED__
4264#define __IItemContainerProvider_INTERFACE_DEFINED__
4265
4266DEFINE_GUID(IID_IItemContainerProvider, 0xe747770b, 0x39ce, 0x4382, 0xab,0x30, 0xd8,0xfb,0x3f,0x33,0x6f,0x24);
4267#if defined(__cplusplus) && !defined(CINTERFACE)
4268MIDL_INTERFACE("e747770b-39ce-4382-ab30-d8fb3f336f24")
4269IItemContainerProvider : public IUnknown
4270{
4271    virtual HRESULT STDMETHODCALLTYPE FindItemByProperty(
4272        IRawElementProviderSimple *pStartAfter,
4273        PROPERTYID propertyId,
4274        VARIANT value,
4275        IRawElementProviderSimple **pFound) = 0;
4276
4277};
4278#ifdef __CRT_UUID_DECL
4279__CRT_UUID_DECL(IItemContainerProvider, 0xe747770b, 0x39ce, 0x4382, 0xab,0x30, 0xd8,0xfb,0x3f,0x33,0x6f,0x24)
4280#endif
4281#else
4282typedef struct IItemContainerProviderVtbl {
4283    BEGIN_INTERFACE
4284
4285    /*** IUnknown methods ***/
4286    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
4287        IItemContainerProvider *This,
4288        REFIID riid,
4289        void **ppvObject);
4290
4291    ULONG (STDMETHODCALLTYPE *AddRef)(
4292        IItemContainerProvider *This);
4293
4294    ULONG (STDMETHODCALLTYPE *Release)(
4295        IItemContainerProvider *This);
4296
4297    /*** IItemContainerProvider methods ***/
4298    HRESULT (STDMETHODCALLTYPE *FindItemByProperty)(
4299        IItemContainerProvider *This,
4300        IRawElementProviderSimple *pStartAfter,
4301        PROPERTYID propertyId,
4302        VARIANT value,
4303        IRawElementProviderSimple **pFound);
4304
4305    END_INTERFACE
4306} IItemContainerProviderVtbl;
4307
4308interface IItemContainerProvider {
4309    CONST_VTBL IItemContainerProviderVtbl* lpVtbl;
4310};
4311
4312#ifdef COBJMACROS
4313#ifndef WIDL_C_INLINE_WRAPPERS
4314/*** IUnknown methods ***/
4315#define IItemContainerProvider_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
4316#define IItemContainerProvider_AddRef(This) (This)->lpVtbl->AddRef(This)
4317#define IItemContainerProvider_Release(This) (This)->lpVtbl->Release(This)
4318/*** IItemContainerProvider methods ***/
4319#define IItemContainerProvider_FindItemByProperty(This,pStartAfter,propertyId,value,pFound) (This)->lpVtbl->FindItemByProperty(This,pStartAfter,propertyId,value,pFound)
4320#else
4321/*** IUnknown methods ***/
4322static inline HRESULT IItemContainerProvider_QueryInterface(IItemContainerProvider* This,REFIID riid,void **ppvObject) {
4323    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
4324}
4325static inline ULONG IItemContainerProvider_AddRef(IItemContainerProvider* This) {
4326    return This->lpVtbl->AddRef(This);
4327}
4328static inline ULONG IItemContainerProvider_Release(IItemContainerProvider* This) {
4329    return This->lpVtbl->Release(This);
4330}
4331/*** IItemContainerProvider methods ***/
4332static inline HRESULT IItemContainerProvider_FindItemByProperty(IItemContainerProvider* This,IRawElementProviderSimple *pStartAfter,PROPERTYID propertyId,VARIANT value,IRawElementProviderSimple **pFound) {
4333    return This->lpVtbl->FindItemByProperty(This,pStartAfter,propertyId,value,pFound);
4334}
4335#endif
4336#endif
4337
4338#endif
4339
4340
4341#endif  /* __IItemContainerProvider_INTERFACE_DEFINED__ */
4342
4343/*****************************************************************************
4344 * IVirtualizedItemProvider interface
4345 */
4346#ifndef __IVirtualizedItemProvider_INTERFACE_DEFINED__
4347#define __IVirtualizedItemProvider_INTERFACE_DEFINED__
4348
4349DEFINE_GUID(IID_IVirtualizedItemProvider, 0xcb98b665, 0x2d35, 0x4fac, 0xad,0x35, 0xf3,0xc6,0x0d,0x0c,0x0b,0x8b);
4350#if defined(__cplusplus) && !defined(CINTERFACE)
4351MIDL_INTERFACE("cb98b665-2d35-4fac-ad35-f3c60d0c0b8b")
4352IVirtualizedItemProvider : public IUnknown
4353{
4354    virtual HRESULT STDMETHODCALLTYPE Realize(
4355        ) = 0;
4356
4357};
4358#ifdef __CRT_UUID_DECL
4359__CRT_UUID_DECL(IVirtualizedItemProvider, 0xcb98b665, 0x2d35, 0x4fac, 0xad,0x35, 0xf3,0xc6,0x0d,0x0c,0x0b,0x8b)
4360#endif
4361#else
4362typedef struct IVirtualizedItemProviderVtbl {
4363    BEGIN_INTERFACE
4364
4365    /*** IUnknown methods ***/
4366    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
4367        IVirtualizedItemProvider *This,
4368        REFIID riid,
4369        void **ppvObject);
4370
4371    ULONG (STDMETHODCALLTYPE *AddRef)(
4372        IVirtualizedItemProvider *This);
4373
4374    ULONG (STDMETHODCALLTYPE *Release)(
4375        IVirtualizedItemProvider *This);
4376
4377    /*** IVirtualizedItemProvider methods ***/
4378    HRESULT (STDMETHODCALLTYPE *Realize)(
4379        IVirtualizedItemProvider *This);
4380
4381    END_INTERFACE
4382} IVirtualizedItemProviderVtbl;
4383
4384interface IVirtualizedItemProvider {
4385    CONST_VTBL IVirtualizedItemProviderVtbl* lpVtbl;
4386};
4387
4388#ifdef COBJMACROS
4389#ifndef WIDL_C_INLINE_WRAPPERS
4390/*** IUnknown methods ***/
4391#define IVirtualizedItemProvider_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
4392#define IVirtualizedItemProvider_AddRef(This) (This)->lpVtbl->AddRef(This)
4393#define IVirtualizedItemProvider_Release(This) (This)->lpVtbl->Release(This)
4394/*** IVirtualizedItemProvider methods ***/
4395#define IVirtualizedItemProvider_Realize(This) (This)->lpVtbl->Realize(This)
4396#else
4397/*** IUnknown methods ***/
4398static inline HRESULT IVirtualizedItemProvider_QueryInterface(IVirtualizedItemProvider* This,REFIID riid,void **ppvObject) {
4399    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
4400}
4401static inline ULONG IVirtualizedItemProvider_AddRef(IVirtualizedItemProvider* This) {
4402    return This->lpVtbl->AddRef(This);
4403}
4404static inline ULONG IVirtualizedItemProvider_Release(IVirtualizedItemProvider* This) {
4405    return This->lpVtbl->Release(This);
4406}
4407/*** IVirtualizedItemProvider methods ***/
4408static inline HRESULT IVirtualizedItemProvider_Realize(IVirtualizedItemProvider* This) {
4409    return This->lpVtbl->Realize(This);
4410}
4411#endif
4412#endif
4413
4414#endif
4415
4416
4417#endif  /* __IVirtualizedItemProvider_INTERFACE_DEFINED__ */
4418
4419/*****************************************************************************
4420 * IObjectModelProvider interface
4421 */
4422#ifndef __IObjectModelProvider_INTERFACE_DEFINED__
4423#define __IObjectModelProvider_INTERFACE_DEFINED__
4424
4425DEFINE_GUID(IID_IObjectModelProvider, 0x3ad86ebd, 0xf5ef, 0x483d, 0xbb,0x18, 0xb1,0x04,0x2a,0x47,0x5d,0x64);
4426#if defined(__cplusplus) && !defined(CINTERFACE)
4427MIDL_INTERFACE("3ad86ebd-f5ef-483d-bb18-b1042a475d64")
4428IObjectModelProvider : public IUnknown
4429{
4430    virtual HRESULT STDMETHODCALLTYPE GetUnderlyingObjectModel(
4431        IUnknown **ppUnknown) = 0;
4432
4433};
4434#ifdef __CRT_UUID_DECL
4435__CRT_UUID_DECL(IObjectModelProvider, 0x3ad86ebd, 0xf5ef, 0x483d, 0xbb,0x18, 0xb1,0x04,0x2a,0x47,0x5d,0x64)
4436#endif
4437#else
4438typedef struct IObjectModelProviderVtbl {
4439    BEGIN_INTERFACE
4440
4441    /*** IUnknown methods ***/
4442    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
4443        IObjectModelProvider *This,
4444        REFIID riid,
4445        void **ppvObject);
4446
4447    ULONG (STDMETHODCALLTYPE *AddRef)(
4448        IObjectModelProvider *This);
4449
4450    ULONG (STDMETHODCALLTYPE *Release)(
4451        IObjectModelProvider *This);
4452
4453    /*** IObjectModelProvider methods ***/
4454    HRESULT (STDMETHODCALLTYPE *GetUnderlyingObjectModel)(
4455        IObjectModelProvider *This,
4456        IUnknown **ppUnknown);
4457
4458    END_INTERFACE
4459} IObjectModelProviderVtbl;
4460
4461interface IObjectModelProvider {
4462    CONST_VTBL IObjectModelProviderVtbl* lpVtbl;
4463};
4464
4465#ifdef COBJMACROS
4466#ifndef WIDL_C_INLINE_WRAPPERS
4467/*** IUnknown methods ***/
4468#define IObjectModelProvider_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
4469#define IObjectModelProvider_AddRef(This) (This)->lpVtbl->AddRef(This)
4470#define IObjectModelProvider_Release(This) (This)->lpVtbl->Release(This)
4471/*** IObjectModelProvider methods ***/
4472#define IObjectModelProvider_GetUnderlyingObjectModel(This,ppUnknown) (This)->lpVtbl->GetUnderlyingObjectModel(This,ppUnknown)
4473#else
4474/*** IUnknown methods ***/
4475static inline HRESULT IObjectModelProvider_QueryInterface(IObjectModelProvider* This,REFIID riid,void **ppvObject) {
4476    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
4477}
4478static inline ULONG IObjectModelProvider_AddRef(IObjectModelProvider* This) {
4479    return This->lpVtbl->AddRef(This);
4480}
4481static inline ULONG IObjectModelProvider_Release(IObjectModelProvider* This) {
4482    return This->lpVtbl->Release(This);
4483}
4484/*** IObjectModelProvider methods ***/
4485static inline HRESULT IObjectModelProvider_GetUnderlyingObjectModel(IObjectModelProvider* This,IUnknown **ppUnknown) {
4486    return This->lpVtbl->GetUnderlyingObjectModel(This,ppUnknown);
4487}
4488#endif
4489#endif
4490
4491#endif
4492
4493
4494#endif  /* __IObjectModelProvider_INTERFACE_DEFINED__ */
4495
4496/*****************************************************************************
4497 * IAnnotationProvider interface
4498 */
4499#ifndef __IAnnotationProvider_INTERFACE_DEFINED__
4500#define __IAnnotationProvider_INTERFACE_DEFINED__
4501
4502DEFINE_GUID(IID_IAnnotationProvider, 0xf95c7e80, 0xbd63, 0x4601, 0x97,0x82, 0x44,0x5e,0xbf,0xf0,0x11,0xfc);
4503#if defined(__cplusplus) && !defined(CINTERFACE)
4504MIDL_INTERFACE("f95c7e80-bd63-4601-9782-445ebff011fc")
4505IAnnotationProvider : public IUnknown
4506{
4507    virtual HRESULT STDMETHODCALLTYPE get_AnnotationTypeId(
4508        int *retVal) = 0;
4509
4510    virtual HRESULT STDMETHODCALLTYPE get_AnnotationTypeName(
4511        BSTR *retVal) = 0;
4512
4513    virtual HRESULT STDMETHODCALLTYPE get_Author(
4514        BSTR *retVal) = 0;
4515
4516    virtual HRESULT STDMETHODCALLTYPE get_DateTime(
4517        BSTR *retVal) = 0;
4518
4519    virtual HRESULT STDMETHODCALLTYPE get_Target(
4520        IRawElementProviderSimple **retVal) = 0;
4521
4522};
4523#ifdef __CRT_UUID_DECL
4524__CRT_UUID_DECL(IAnnotationProvider, 0xf95c7e80, 0xbd63, 0x4601, 0x97,0x82, 0x44,0x5e,0xbf,0xf0,0x11,0xfc)
4525#endif
4526#else
4527typedef struct IAnnotationProviderVtbl {
4528    BEGIN_INTERFACE
4529
4530    /*** IUnknown methods ***/
4531    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
4532        IAnnotationProvider *This,
4533        REFIID riid,
4534        void **ppvObject);
4535
4536    ULONG (STDMETHODCALLTYPE *AddRef)(
4537        IAnnotationProvider *This);
4538
4539    ULONG (STDMETHODCALLTYPE *Release)(
4540        IAnnotationProvider *This);
4541
4542    /*** IAnnotationProvider methods ***/
4543    HRESULT (STDMETHODCALLTYPE *get_AnnotationTypeId)(
4544        IAnnotationProvider *This,
4545        int *retVal);
4546
4547    HRESULT (STDMETHODCALLTYPE *get_AnnotationTypeName)(
4548        IAnnotationProvider *This,
4549        BSTR *retVal);
4550
4551    HRESULT (STDMETHODCALLTYPE *get_Author)(
4552        IAnnotationProvider *This,
4553        BSTR *retVal);
4554
4555    HRESULT (STDMETHODCALLTYPE *get_DateTime)(
4556        IAnnotationProvider *This,
4557        BSTR *retVal);
4558
4559    HRESULT (STDMETHODCALLTYPE *get_Target)(
4560        IAnnotationProvider *This,
4561        IRawElementProviderSimple **retVal);
4562
4563    END_INTERFACE
4564} IAnnotationProviderVtbl;
4565
4566interface IAnnotationProvider {
4567    CONST_VTBL IAnnotationProviderVtbl* lpVtbl;
4568};
4569
4570#ifdef COBJMACROS
4571#ifndef WIDL_C_INLINE_WRAPPERS
4572/*** IUnknown methods ***/
4573#define IAnnotationProvider_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
4574#define IAnnotationProvider_AddRef(This) (This)->lpVtbl->AddRef(This)
4575#define IAnnotationProvider_Release(This) (This)->lpVtbl->Release(This)
4576/*** IAnnotationProvider methods ***/
4577#define IAnnotationProvider_get_AnnotationTypeId(This,retVal) (This)->lpVtbl->get_AnnotationTypeId(This,retVal)
4578#define IAnnotationProvider_get_AnnotationTypeName(This,retVal) (This)->lpVtbl->get_AnnotationTypeName(This,retVal)
4579#define IAnnotationProvider_get_Author(This,retVal) (This)->lpVtbl->get_Author(This,retVal)
4580#define IAnnotationProvider_get_DateTime(This,retVal) (This)->lpVtbl->get_DateTime(This,retVal)
4581#define IAnnotationProvider_get_Target(This,retVal) (This)->lpVtbl->get_Target(This,retVal)
4582#else
4583/*** IUnknown methods ***/
4584static inline HRESULT IAnnotationProvider_QueryInterface(IAnnotationProvider* This,REFIID riid,void **ppvObject) {
4585    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
4586}
4587static inline ULONG IAnnotationProvider_AddRef(IAnnotationProvider* This) {
4588    return This->lpVtbl->AddRef(This);
4589}
4590static inline ULONG IAnnotationProvider_Release(IAnnotationProvider* This) {
4591    return This->lpVtbl->Release(This);
4592}
4593/*** IAnnotationProvider methods ***/
4594static inline HRESULT IAnnotationProvider_get_AnnotationTypeId(IAnnotationProvider* This,int *retVal) {
4595    return This->lpVtbl->get_AnnotationTypeId(This,retVal);
4596}
4597static inline HRESULT IAnnotationProvider_get_AnnotationTypeName(IAnnotationProvider* This,BSTR *retVal) {
4598    return This->lpVtbl->get_AnnotationTypeName(This,retVal);
4599}
4600static inline HRESULT IAnnotationProvider_get_Author(IAnnotationProvider* This,BSTR *retVal) {
4601    return This->lpVtbl->get_Author(This,retVal);
4602}
4603static inline HRESULT IAnnotationProvider_get_DateTime(IAnnotationProvider* This,BSTR *retVal) {
4604    return This->lpVtbl->get_DateTime(This,retVal);
4605}
4606static inline HRESULT IAnnotationProvider_get_Target(IAnnotationProvider* This,IRawElementProviderSimple **retVal) {
4607    return This->lpVtbl->get_Target(This,retVal);
4608}
4609#endif
4610#endif
4611
4612#endif
4613
4614
4615#endif  /* __IAnnotationProvider_INTERFACE_DEFINED__ */
4616
4617/*****************************************************************************
4618 * IStylesProvider interface
4619 */
4620#ifndef __IStylesProvider_INTERFACE_DEFINED__
4621#define __IStylesProvider_INTERFACE_DEFINED__
4622
4623DEFINE_GUID(IID_IStylesProvider, 0x19b6b649, 0xf5d7, 0x4a6d, 0xbd,0xcb, 0x12,0x92,0x52,0xbe,0x58,0x8a);
4624#if defined(__cplusplus) && !defined(CINTERFACE)
4625MIDL_INTERFACE("19b6b649-f5d7-4a6d-bdcb-129252be588a")
4626IStylesProvider : public IUnknown
4627{
4628    virtual HRESULT STDMETHODCALLTYPE get_StyleId(
4629        int *retVal) = 0;
4630
4631    virtual HRESULT STDMETHODCALLTYPE get_StyleName(
4632        BSTR *retVal) = 0;
4633
4634    virtual HRESULT STDMETHODCALLTYPE get_FillColor(
4635        int *retVal) = 0;
4636
4637    virtual HRESULT STDMETHODCALLTYPE get_FillPatternStyle(
4638        BSTR *retVal) = 0;
4639
4640    virtual HRESULT STDMETHODCALLTYPE get_Shape(
4641        BSTR *retVal) = 0;
4642
4643    virtual HRESULT STDMETHODCALLTYPE get_FillPatternColor(
4644        int *retVal) = 0;
4645
4646    virtual HRESULT STDMETHODCALLTYPE get_ExtendedProperties(
4647        BSTR *retVal) = 0;
4648
4649};
4650#ifdef __CRT_UUID_DECL
4651__CRT_UUID_DECL(IStylesProvider, 0x19b6b649, 0xf5d7, 0x4a6d, 0xbd,0xcb, 0x12,0x92,0x52,0xbe,0x58,0x8a)
4652#endif
4653#else
4654typedef struct IStylesProviderVtbl {
4655    BEGIN_INTERFACE
4656
4657    /*** IUnknown methods ***/
4658    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
4659        IStylesProvider *This,
4660        REFIID riid,
4661        void **ppvObject);
4662
4663    ULONG (STDMETHODCALLTYPE *AddRef)(
4664        IStylesProvider *This);
4665
4666    ULONG (STDMETHODCALLTYPE *Release)(
4667        IStylesProvider *This);
4668
4669    /*** IStylesProvider methods ***/
4670    HRESULT (STDMETHODCALLTYPE *get_StyleId)(
4671        IStylesProvider *This,
4672        int *retVal);
4673
4674    HRESULT (STDMETHODCALLTYPE *get_StyleName)(
4675        IStylesProvider *This,
4676        BSTR *retVal);
4677
4678    HRESULT (STDMETHODCALLTYPE *get_FillColor)(
4679        IStylesProvider *This,
4680        int *retVal);
4681
4682    HRESULT (STDMETHODCALLTYPE *get_FillPatternStyle)(
4683        IStylesProvider *This,
4684        BSTR *retVal);
4685
4686    HRESULT (STDMETHODCALLTYPE *get_Shape)(
4687        IStylesProvider *This,
4688        BSTR *retVal);
4689
4690    HRESULT (STDMETHODCALLTYPE *get_FillPatternColor)(
4691        IStylesProvider *This,
4692        int *retVal);
4693
4694    HRESULT (STDMETHODCALLTYPE *get_ExtendedProperties)(
4695        IStylesProvider *This,
4696        BSTR *retVal);
4697
4698    END_INTERFACE
4699} IStylesProviderVtbl;
4700
4701interface IStylesProvider {
4702    CONST_VTBL IStylesProviderVtbl* lpVtbl;
4703};
4704
4705#ifdef COBJMACROS
4706#ifndef WIDL_C_INLINE_WRAPPERS
4707/*** IUnknown methods ***/
4708#define IStylesProvider_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
4709#define IStylesProvider_AddRef(This) (This)->lpVtbl->AddRef(This)
4710#define IStylesProvider_Release(This) (This)->lpVtbl->Release(This)
4711/*** IStylesProvider methods ***/
4712#define IStylesProvider_get_StyleId(This,retVal) (This)->lpVtbl->get_StyleId(This,retVal)
4713#define IStylesProvider_get_StyleName(This,retVal) (This)->lpVtbl->get_StyleName(This,retVal)
4714#define IStylesProvider_get_FillColor(This,retVal) (This)->lpVtbl->get_FillColor(This,retVal)
4715#define IStylesProvider_get_FillPatternStyle(This,retVal) (This)->lpVtbl->get_FillPatternStyle(This,retVal)
4716#define IStylesProvider_get_Shape(This,retVal) (This)->lpVtbl->get_Shape(This,retVal)
4717#define IStylesProvider_get_FillPatternColor(This,retVal) (This)->lpVtbl->get_FillPatternColor(This,retVal)
4718#define IStylesProvider_get_ExtendedProperties(This,retVal) (This)->lpVtbl->get_ExtendedProperties(This,retVal)
4719#else
4720/*** IUnknown methods ***/
4721static inline HRESULT IStylesProvider_QueryInterface(IStylesProvider* This,REFIID riid,void **ppvObject) {
4722    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
4723}
4724static inline ULONG IStylesProvider_AddRef(IStylesProvider* This) {
4725    return This->lpVtbl->AddRef(This);
4726}
4727static inline ULONG IStylesProvider_Release(IStylesProvider* This) {
4728    return This->lpVtbl->Release(This);
4729}
4730/*** IStylesProvider methods ***/
4731static inline HRESULT IStylesProvider_get_StyleId(IStylesProvider* This,int *retVal) {
4732    return This->lpVtbl->get_StyleId(This,retVal);
4733}
4734static inline HRESULT IStylesProvider_get_StyleName(IStylesProvider* This,BSTR *retVal) {
4735    return This->lpVtbl->get_StyleName(This,retVal);
4736}
4737static inline HRESULT IStylesProvider_get_FillColor(IStylesProvider* This,int *retVal) {
4738    return This->lpVtbl->get_FillColor(This,retVal);
4739}
4740static inline HRESULT IStylesProvider_get_FillPatternStyle(IStylesProvider* This,BSTR *retVal) {
4741    return This->lpVtbl->get_FillPatternStyle(This,retVal);
4742}
4743static inline HRESULT IStylesProvider_get_Shape(IStylesProvider* This,BSTR *retVal) {
4744    return This->lpVtbl->get_Shape(This,retVal);
4745}
4746static inline HRESULT IStylesProvider_get_FillPatternColor(IStylesProvider* This,int *retVal) {
4747    return This->lpVtbl->get_FillPatternColor(This,retVal);
4748}
4749static inline HRESULT IStylesProvider_get_ExtendedProperties(IStylesProvider* This,BSTR *retVal) {
4750    return This->lpVtbl->get_ExtendedProperties(This,retVal);
4751}
4752#endif
4753#endif
4754
4755#endif
4756
4757
4758#endif  /* __IStylesProvider_INTERFACE_DEFINED__ */
4759
4760/*****************************************************************************
4761 * ISpreadsheetProvider interface
4762 */
4763#ifndef __ISpreadsheetProvider_INTERFACE_DEFINED__
4764#define __ISpreadsheetProvider_INTERFACE_DEFINED__
4765
4766DEFINE_GUID(IID_ISpreadsheetProvider, 0x6f6b5d35, 0x5525, 0x4f80, 0xb7,0x58, 0x85,0x47,0x38,0x32,0xff,0xc7);
4767#if defined(__cplusplus) && !defined(CINTERFACE)
4768MIDL_INTERFACE("6f6b5d35-5525-4f80-b758-85473832ffc7")
4769ISpreadsheetProvider : public IUnknown
4770{
4771    virtual HRESULT STDMETHODCALLTYPE GetItemByName(
4772        LPCWSTR name,
4773        IRawElementProviderSimple **pRetVal) = 0;
4774
4775};
4776#ifdef __CRT_UUID_DECL
4777__CRT_UUID_DECL(ISpreadsheetProvider, 0x6f6b5d35, 0x5525, 0x4f80, 0xb7,0x58, 0x85,0x47,0x38,0x32,0xff,0xc7)
4778#endif
4779#else
4780typedef struct ISpreadsheetProviderVtbl {
4781    BEGIN_INTERFACE
4782
4783    /*** IUnknown methods ***/
4784    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
4785        ISpreadsheetProvider *This,
4786        REFIID riid,
4787        void **ppvObject);
4788
4789    ULONG (STDMETHODCALLTYPE *AddRef)(
4790        ISpreadsheetProvider *This);
4791
4792    ULONG (STDMETHODCALLTYPE *Release)(
4793        ISpreadsheetProvider *This);
4794
4795    /*** ISpreadsheetProvider methods ***/
4796    HRESULT (STDMETHODCALLTYPE *GetItemByName)(
4797        ISpreadsheetProvider *This,
4798        LPCWSTR name,
4799        IRawElementProviderSimple **pRetVal);
4800
4801    END_INTERFACE
4802} ISpreadsheetProviderVtbl;
4803
4804interface ISpreadsheetProvider {
4805    CONST_VTBL ISpreadsheetProviderVtbl* lpVtbl;
4806};
4807
4808#ifdef COBJMACROS
4809#ifndef WIDL_C_INLINE_WRAPPERS
4810/*** IUnknown methods ***/
4811#define ISpreadsheetProvider_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
4812#define ISpreadsheetProvider_AddRef(This) (This)->lpVtbl->AddRef(This)
4813#define ISpreadsheetProvider_Release(This) (This)->lpVtbl->Release(This)
4814/*** ISpreadsheetProvider methods ***/
4815#define ISpreadsheetProvider_GetItemByName(This,name,pRetVal) (This)->lpVtbl->GetItemByName(This,name,pRetVal)
4816#else
4817/*** IUnknown methods ***/
4818static inline HRESULT ISpreadsheetProvider_QueryInterface(ISpreadsheetProvider* This,REFIID riid,void **ppvObject) {
4819    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
4820}
4821static inline ULONG ISpreadsheetProvider_AddRef(ISpreadsheetProvider* This) {
4822    return This->lpVtbl->AddRef(This);
4823}
4824static inline ULONG ISpreadsheetProvider_Release(ISpreadsheetProvider* This) {
4825    return This->lpVtbl->Release(This);
4826}
4827/*** ISpreadsheetProvider methods ***/
4828static inline HRESULT ISpreadsheetProvider_GetItemByName(ISpreadsheetProvider* This,LPCWSTR name,IRawElementProviderSimple **pRetVal) {
4829    return This->lpVtbl->GetItemByName(This,name,pRetVal);
4830}
4831#endif
4832#endif
4833
4834#endif
4835
4836
4837#endif  /* __ISpreadsheetProvider_INTERFACE_DEFINED__ */
4838
4839/*****************************************************************************
4840 * ISpreadsheetItemProvider interface
4841 */
4842#ifndef __ISpreadsheetItemProvider_INTERFACE_DEFINED__
4843#define __ISpreadsheetItemProvider_INTERFACE_DEFINED__
4844
4845DEFINE_GUID(IID_ISpreadsheetItemProvider, 0xeaed4660, 0x7b3d, 0x4879, 0xa2,0xe6, 0x36,0x5c,0xe6,0x03,0xf3,0xd0);
4846#if defined(__cplusplus) && !defined(CINTERFACE)
4847MIDL_INTERFACE("eaed4660-7b3d-4879-a2e6-365ce603f3d0")
4848ISpreadsheetItemProvider : public IUnknown
4849{
4850    virtual HRESULT STDMETHODCALLTYPE get_Formula(
4851        BSTR *pRetVal) = 0;
4852
4853    virtual HRESULT STDMETHODCALLTYPE GetAnnotationObjects(
4854        SAFEARRAY **pRetVal) = 0;
4855
4856    virtual HRESULT STDMETHODCALLTYPE GetAnnotationTypes(
4857        SAFEARRAY **pRetVal) = 0;
4858
4859};
4860#ifdef __CRT_UUID_DECL
4861__CRT_UUID_DECL(ISpreadsheetItemProvider, 0xeaed4660, 0x7b3d, 0x4879, 0xa2,0xe6, 0x36,0x5c,0xe6,0x03,0xf3,0xd0)
4862#endif
4863#else
4864typedef struct ISpreadsheetItemProviderVtbl {
4865    BEGIN_INTERFACE
4866
4867    /*** IUnknown methods ***/
4868    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
4869        ISpreadsheetItemProvider *This,
4870        REFIID riid,
4871        void **ppvObject);
4872
4873    ULONG (STDMETHODCALLTYPE *AddRef)(
4874        ISpreadsheetItemProvider *This);
4875
4876    ULONG (STDMETHODCALLTYPE *Release)(
4877        ISpreadsheetItemProvider *This);
4878
4879    /*** ISpreadsheetItemProvider methods ***/
4880    HRESULT (STDMETHODCALLTYPE *get_Formula)(
4881        ISpreadsheetItemProvider *This,
4882        BSTR *pRetVal);
4883
4884    HRESULT (STDMETHODCALLTYPE *GetAnnotationObjects)(
4885        ISpreadsheetItemProvider *This,
4886        SAFEARRAY **pRetVal);
4887
4888    HRESULT (STDMETHODCALLTYPE *GetAnnotationTypes)(
4889        ISpreadsheetItemProvider *This,
4890        SAFEARRAY **pRetVal);
4891
4892    END_INTERFACE
4893} ISpreadsheetItemProviderVtbl;
4894
4895interface ISpreadsheetItemProvider {
4896    CONST_VTBL ISpreadsheetItemProviderVtbl* lpVtbl;
4897};
4898
4899#ifdef COBJMACROS
4900#ifndef WIDL_C_INLINE_WRAPPERS
4901/*** IUnknown methods ***/
4902#define ISpreadsheetItemProvider_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
4903#define ISpreadsheetItemProvider_AddRef(This) (This)->lpVtbl->AddRef(This)
4904#define ISpreadsheetItemProvider_Release(This) (This)->lpVtbl->Release(This)
4905/*** ISpreadsheetItemProvider methods ***/
4906#define ISpreadsheetItemProvider_get_Formula(This,pRetVal) (This)->lpVtbl->get_Formula(This,pRetVal)
4907#define ISpreadsheetItemProvider_GetAnnotationObjects(This,pRetVal) (This)->lpVtbl->GetAnnotationObjects(This,pRetVal)
4908#define ISpreadsheetItemProvider_GetAnnotationTypes(This,pRetVal) (This)->lpVtbl->GetAnnotationTypes(This,pRetVal)
4909#else
4910/*** IUnknown methods ***/
4911static inline HRESULT ISpreadsheetItemProvider_QueryInterface(ISpreadsheetItemProvider* This,REFIID riid,void **ppvObject) {
4912    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
4913}
4914static inline ULONG ISpreadsheetItemProvider_AddRef(ISpreadsheetItemProvider* This) {
4915    return This->lpVtbl->AddRef(This);
4916}
4917static inline ULONG ISpreadsheetItemProvider_Release(ISpreadsheetItemProvider* This) {
4918    return This->lpVtbl->Release(This);
4919}
4920/*** ISpreadsheetItemProvider methods ***/
4921static inline HRESULT ISpreadsheetItemProvider_get_Formula(ISpreadsheetItemProvider* This,BSTR *pRetVal) {
4922    return This->lpVtbl->get_Formula(This,pRetVal);
4923}
4924static inline HRESULT ISpreadsheetItemProvider_GetAnnotationObjects(ISpreadsheetItemProvider* This,SAFEARRAY **pRetVal) {
4925    return This->lpVtbl->GetAnnotationObjects(This,pRetVal);
4926}
4927static inline HRESULT ISpreadsheetItemProvider_GetAnnotationTypes(ISpreadsheetItemProvider* This,SAFEARRAY **pRetVal) {
4928    return This->lpVtbl->GetAnnotationTypes(This,pRetVal);
4929}
4930#endif
4931#endif
4932
4933#endif
4934
4935
4936#endif  /* __ISpreadsheetItemProvider_INTERFACE_DEFINED__ */
4937
4938/*****************************************************************************
4939 * ITransformProvider2 interface
4940 */
4941#ifndef __ITransformProvider2_INTERFACE_DEFINED__
4942#define __ITransformProvider2_INTERFACE_DEFINED__
4943
4944DEFINE_GUID(IID_ITransformProvider2, 0x4758742f, 0x7ac2, 0x460c, 0xbc,0x48, 0x09,0xfc,0x09,0x30,0x8a,0x93);
4945#if defined(__cplusplus) && !defined(CINTERFACE)
4946MIDL_INTERFACE("4758742f-7ac2-460c-bc48-09fc09308a93")
4947ITransformProvider2 : public ITransformProvider
4948{
4949    virtual HRESULT STDMETHODCALLTYPE Zoom(
4950        double zoom) = 0;
4951
4952    virtual HRESULT STDMETHODCALLTYPE get_CanZoom(
4953        WINBOOL *pRetVal) = 0;
4954
4955    virtual HRESULT STDMETHODCALLTYPE get_ZoomLevel(
4956        double *pRetVal) = 0;
4957
4958    virtual HRESULT STDMETHODCALLTYPE get_ZoomMinimum(
4959        double *pRetVal) = 0;
4960
4961    virtual HRESULT STDMETHODCALLTYPE get_ZoomMaximum(
4962        double *pRetVal) = 0;
4963
4964    virtual HRESULT STDMETHODCALLTYPE ZoomByUnit(
4965        enum ZoomUnit zoomUnit) = 0;
4966
4967};
4968#ifdef __CRT_UUID_DECL
4969__CRT_UUID_DECL(ITransformProvider2, 0x4758742f, 0x7ac2, 0x460c, 0xbc,0x48, 0x09,0xfc,0x09,0x30,0x8a,0x93)
4970#endif
4971#else
4972typedef struct ITransformProvider2Vtbl {
4973    BEGIN_INTERFACE
4974
4975    /*** IUnknown methods ***/
4976    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
4977        ITransformProvider2 *This,
4978        REFIID riid,
4979        void **ppvObject);
4980
4981    ULONG (STDMETHODCALLTYPE *AddRef)(
4982        ITransformProvider2 *This);
4983
4984    ULONG (STDMETHODCALLTYPE *Release)(
4985        ITransformProvider2 *This);
4986
4987    /*** ITransformProvider methods ***/
4988    HRESULT (STDMETHODCALLTYPE *Move)(
4989        ITransformProvider2 *This,
4990        double x,
4991        double y);
4992
4993    HRESULT (STDMETHODCALLTYPE *Resize)(
4994        ITransformProvider2 *This,
4995        double width,
4996        double height);
4997
4998    HRESULT (STDMETHODCALLTYPE *Rotate)(
4999        ITransformProvider2 *This,
5000        double degrees);
5001
5002    HRESULT (STDMETHODCALLTYPE *get_CanMove)(
5003        ITransformProvider2 *This,
5004        WINBOOL *pRetVal);
5005
5006    HRESULT (STDMETHODCALLTYPE *get_CanResize)(
5007        ITransformProvider2 *This,
5008        WINBOOL *pRetVal);
5009
5010    HRESULT (STDMETHODCALLTYPE *get_CanRotate)(
5011        ITransformProvider2 *This,
5012        WINBOOL *pRetVal);
5013
5014    /*** ITransformProvider2 methods ***/
5015    HRESULT (STDMETHODCALLTYPE *Zoom)(
5016        ITransformProvider2 *This,
5017        double zoom);
5018
5019    HRESULT (STDMETHODCALLTYPE *get_CanZoom)(
5020        ITransformProvider2 *This,
5021        WINBOOL *pRetVal);
5022
5023    HRESULT (STDMETHODCALLTYPE *get_ZoomLevel)(
5024        ITransformProvider2 *This,
5025        double *pRetVal);
5026
5027    HRESULT (STDMETHODCALLTYPE *get_ZoomMinimum)(
5028        ITransformProvider2 *This,
5029        double *pRetVal);
5030
5031    HRESULT (STDMETHODCALLTYPE *get_ZoomMaximum)(
5032        ITransformProvider2 *This,
5033        double *pRetVal);
5034
5035    HRESULT (STDMETHODCALLTYPE *ZoomByUnit)(
5036        ITransformProvider2 *This,
5037        enum ZoomUnit zoomUnit);
5038
5039    END_INTERFACE
5040} ITransformProvider2Vtbl;
5041
5042interface ITransformProvider2 {
5043    CONST_VTBL ITransformProvider2Vtbl* lpVtbl;
5044};
5045
5046#ifdef COBJMACROS
5047#ifndef WIDL_C_INLINE_WRAPPERS
5048/*** IUnknown methods ***/
5049#define ITransformProvider2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
5050#define ITransformProvider2_AddRef(This) (This)->lpVtbl->AddRef(This)
5051#define ITransformProvider2_Release(This) (This)->lpVtbl->Release(This)
5052/*** ITransformProvider methods ***/
5053#define ITransformProvider2_Move(This,x,y) (This)->lpVtbl->Move(This,x,y)
5054#define ITransformProvider2_Resize(This,width,height) (This)->lpVtbl->Resize(This,width,height)
5055#define ITransformProvider2_Rotate(This,degrees) (This)->lpVtbl->Rotate(This,degrees)
5056#define ITransformProvider2_get_CanMove(This,pRetVal) (This)->lpVtbl->get_CanMove(This,pRetVal)
5057#define ITransformProvider2_get_CanResize(This,pRetVal) (This)->lpVtbl->get_CanResize(This,pRetVal)
5058#define ITransformProvider2_get_CanRotate(This,pRetVal) (This)->lpVtbl->get_CanRotate(This,pRetVal)
5059/*** ITransformProvider2 methods ***/
5060#define ITransformProvider2_Zoom(This,zoom) (This)->lpVtbl->Zoom(This,zoom)
5061#define ITransformProvider2_get_CanZoom(This,pRetVal) (This)->lpVtbl->get_CanZoom(This,pRetVal)
5062#define ITransformProvider2_get_ZoomLevel(This,pRetVal) (This)->lpVtbl->get_ZoomLevel(This,pRetVal)
5063#define ITransformProvider2_get_ZoomMinimum(This,pRetVal) (This)->lpVtbl->get_ZoomMinimum(This,pRetVal)
5064#define ITransformProvider2_get_ZoomMaximum(This,pRetVal) (This)->lpVtbl->get_ZoomMaximum(This,pRetVal)
5065#define ITransformProvider2_ZoomByUnit(This,zoomUnit) (This)->lpVtbl->ZoomByUnit(This,zoomUnit)
5066#else
5067/*** IUnknown methods ***/
5068static inline HRESULT ITransformProvider2_QueryInterface(ITransformProvider2* This,REFIID riid,void **ppvObject) {
5069    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
5070}
5071static inline ULONG ITransformProvider2_AddRef(ITransformProvider2* This) {
5072    return This->lpVtbl->AddRef(This);
5073}
5074static inline ULONG ITransformProvider2_Release(ITransformProvider2* This) {
5075    return This->lpVtbl->Release(This);
5076}
5077/*** ITransformProvider methods ***/
5078static inline HRESULT ITransformProvider2_Move(ITransformProvider2* This,double x,double y) {
5079    return This->lpVtbl->Move(This,x,y);
5080}
5081static inline HRESULT ITransformProvider2_Resize(ITransformProvider2* This,double width,double height) {
5082    return This->lpVtbl->Resize(This,width,height);
5083}
5084static inline HRESULT ITransformProvider2_Rotate(ITransformProvider2* This,double degrees) {
5085    return This->lpVtbl->Rotate(This,degrees);
5086}
5087static inline HRESULT ITransformProvider2_get_CanMove(ITransformProvider2* This,WINBOOL *pRetVal) {
5088    return This->lpVtbl->get_CanMove(This,pRetVal);
5089}
5090static inline HRESULT ITransformProvider2_get_CanResize(ITransformProvider2* This,WINBOOL *pRetVal) {
5091    return This->lpVtbl->get_CanResize(This,pRetVal);
5092}
5093static inline HRESULT ITransformProvider2_get_CanRotate(ITransformProvider2* This,WINBOOL *pRetVal) {
5094    return This->lpVtbl->get_CanRotate(This,pRetVal);
5095}
5096/*** ITransformProvider2 methods ***/
5097static inline HRESULT ITransformProvider2_Zoom(ITransformProvider2* This,double zoom) {
5098    return This->lpVtbl->Zoom(This,zoom);
5099}
5100static inline HRESULT ITransformProvider2_get_CanZoom(ITransformProvider2* This,WINBOOL *pRetVal) {
5101    return This->lpVtbl->get_CanZoom(This,pRetVal);
5102}
5103static inline HRESULT ITransformProvider2_get_ZoomLevel(ITransformProvider2* This,double *pRetVal) {
5104    return This->lpVtbl->get_ZoomLevel(This,pRetVal);
5105}
5106static inline HRESULT ITransformProvider2_get_ZoomMinimum(ITransformProvider2* This,double *pRetVal) {
5107    return This->lpVtbl->get_ZoomMinimum(This,pRetVal);
5108}
5109static inline HRESULT ITransformProvider2_get_ZoomMaximum(ITransformProvider2* This,double *pRetVal) {
5110    return This->lpVtbl->get_ZoomMaximum(This,pRetVal);
5111}
5112static inline HRESULT ITransformProvider2_ZoomByUnit(ITransformProvider2* This,enum ZoomUnit zoomUnit) {
5113    return This->lpVtbl->ZoomByUnit(This,zoomUnit);
5114}
5115#endif
5116#endif
5117
5118#endif
5119
5120
5121#endif  /* __ITransformProvider2_INTERFACE_DEFINED__ */
5122
5123/*****************************************************************************
5124 * IDragProvider interface
5125 */
5126#ifndef __IDragProvider_INTERFACE_DEFINED__
5127#define __IDragProvider_INTERFACE_DEFINED__
5128
5129DEFINE_GUID(IID_IDragProvider, 0x6aa7bbbb, 0x7ff9, 0x497d, 0x90,0x4f, 0xd2,0x0b,0x89,0x79,0x29,0xd8);
5130#if defined(__cplusplus) && !defined(CINTERFACE)
5131MIDL_INTERFACE("6aa7bbbb-7ff9-497d-904f-d20b897929d8")
5132IDragProvider : public IUnknown
5133{
5134    virtual HRESULT STDMETHODCALLTYPE get_IsGrabbed(
5135        WINBOOL *pRetVal) = 0;
5136
5137    virtual HRESULT STDMETHODCALLTYPE get_DropEffect(
5138        BSTR *pRetVal) = 0;
5139
5140    virtual HRESULT STDMETHODCALLTYPE get_DropEffects(
5141        SAFEARRAY **pRetVal) = 0;
5142
5143    virtual HRESULT STDMETHODCALLTYPE GetGrabbedItems(
5144        SAFEARRAY **pRetVal) = 0;
5145
5146};
5147#ifdef __CRT_UUID_DECL
5148__CRT_UUID_DECL(IDragProvider, 0x6aa7bbbb, 0x7ff9, 0x497d, 0x90,0x4f, 0xd2,0x0b,0x89,0x79,0x29,0xd8)
5149#endif
5150#else
5151typedef struct IDragProviderVtbl {
5152    BEGIN_INTERFACE
5153
5154    /*** IUnknown methods ***/
5155    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
5156        IDragProvider *This,
5157        REFIID riid,
5158        void **ppvObject);
5159
5160    ULONG (STDMETHODCALLTYPE *AddRef)(
5161        IDragProvider *This);
5162
5163    ULONG (STDMETHODCALLTYPE *Release)(
5164        IDragProvider *This);
5165
5166    /*** IDragProvider methods ***/
5167    HRESULT (STDMETHODCALLTYPE *get_IsGrabbed)(
5168        IDragProvider *This,
5169        WINBOOL *pRetVal);
5170
5171    HRESULT (STDMETHODCALLTYPE *get_DropEffect)(
5172        IDragProvider *This,
5173        BSTR *pRetVal);
5174
5175    HRESULT (STDMETHODCALLTYPE *get_DropEffects)(
5176        IDragProvider *This,
5177        SAFEARRAY **pRetVal);
5178
5179    HRESULT (STDMETHODCALLTYPE *GetGrabbedItems)(
5180        IDragProvider *This,
5181        SAFEARRAY **pRetVal);
5182
5183    END_INTERFACE
5184} IDragProviderVtbl;
5185
5186interface IDragProvider {
5187    CONST_VTBL IDragProviderVtbl* lpVtbl;
5188};
5189
5190#ifdef COBJMACROS
5191#ifndef WIDL_C_INLINE_WRAPPERS
5192/*** IUnknown methods ***/
5193#define IDragProvider_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
5194#define IDragProvider_AddRef(This) (This)->lpVtbl->AddRef(This)
5195#define IDragProvider_Release(This) (This)->lpVtbl->Release(This)
5196/*** IDragProvider methods ***/
5197#define IDragProvider_get_IsGrabbed(This,pRetVal) (This)->lpVtbl->get_IsGrabbed(This,pRetVal)
5198#define IDragProvider_get_DropEffect(This,pRetVal) (This)->lpVtbl->get_DropEffect(This,pRetVal)
5199#define IDragProvider_get_DropEffects(This,pRetVal) (This)->lpVtbl->get_DropEffects(This,pRetVal)
5200#define IDragProvider_GetGrabbedItems(This,pRetVal) (This)->lpVtbl->GetGrabbedItems(This,pRetVal)
5201#else
5202/*** IUnknown methods ***/
5203static inline HRESULT IDragProvider_QueryInterface(IDragProvider* This,REFIID riid,void **ppvObject) {
5204    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
5205}
5206static inline ULONG IDragProvider_AddRef(IDragProvider* This) {
5207    return This->lpVtbl->AddRef(This);
5208}
5209static inline ULONG IDragProvider_Release(IDragProvider* This) {
5210    return This->lpVtbl->Release(This);
5211}
5212/*** IDragProvider methods ***/
5213static inline HRESULT IDragProvider_get_IsGrabbed(IDragProvider* This,WINBOOL *pRetVal) {
5214    return This->lpVtbl->get_IsGrabbed(This,pRetVal);
5215}
5216static inline HRESULT IDragProvider_get_DropEffect(IDragProvider* This,BSTR *pRetVal) {
5217    return This->lpVtbl->get_DropEffect(This,pRetVal);
5218}
5219static inline HRESULT IDragProvider_get_DropEffects(IDragProvider* This,SAFEARRAY **pRetVal) {
5220    return This->lpVtbl->get_DropEffects(This,pRetVal);
5221}
5222static inline HRESULT IDragProvider_GetGrabbedItems(IDragProvider* This,SAFEARRAY **pRetVal) {
5223    return This->lpVtbl->GetGrabbedItems(This,pRetVal);
5224}
5225#endif
5226#endif
5227
5228#endif
5229
5230
5231#endif  /* __IDragProvider_INTERFACE_DEFINED__ */
5232
5233/*****************************************************************************
5234 * IDropTargetProvider interface
5235 */
5236#ifndef __IDropTargetProvider_INTERFACE_DEFINED__
5237#define __IDropTargetProvider_INTERFACE_DEFINED__
5238
5239DEFINE_GUID(IID_IDropTargetProvider, 0xbae82bfd, 0x358a, 0x481c, 0x85,0xa0, 0xd8,0xb4,0xd9,0x0a,0x5d,0x61);
5240#if defined(__cplusplus) && !defined(CINTERFACE)
5241MIDL_INTERFACE("bae82bfd-358a-481c-85a0-d8b4d90a5d61")
5242IDropTargetProvider : public IUnknown
5243{
5244    virtual HRESULT STDMETHODCALLTYPE get_DropTargetEffect(
5245        BSTR *pRetVal) = 0;
5246
5247    virtual HRESULT STDMETHODCALLTYPE get_DropTargetEffects(
5248        SAFEARRAY **pRetVal) = 0;
5249
5250};
5251#ifdef __CRT_UUID_DECL
5252__CRT_UUID_DECL(IDropTargetProvider, 0xbae82bfd, 0x358a, 0x481c, 0x85,0xa0, 0xd8,0xb4,0xd9,0x0a,0x5d,0x61)
5253#endif
5254#else
5255typedef struct IDropTargetProviderVtbl {
5256    BEGIN_INTERFACE
5257
5258    /*** IUnknown methods ***/
5259    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
5260        IDropTargetProvider *This,
5261        REFIID riid,
5262        void **ppvObject);
5263
5264    ULONG (STDMETHODCALLTYPE *AddRef)(
5265        IDropTargetProvider *This);
5266
5267    ULONG (STDMETHODCALLTYPE *Release)(
5268        IDropTargetProvider *This);
5269
5270    /*** IDropTargetProvider methods ***/
5271    HRESULT (STDMETHODCALLTYPE *get_DropTargetEffect)(
5272        IDropTargetProvider *This,
5273        BSTR *pRetVal);
5274
5275    HRESULT (STDMETHODCALLTYPE *get_DropTargetEffects)(
5276        IDropTargetProvider *This,
5277        SAFEARRAY **pRetVal);
5278
5279    END_INTERFACE
5280} IDropTargetProviderVtbl;
5281
5282interface IDropTargetProvider {
5283    CONST_VTBL IDropTargetProviderVtbl* lpVtbl;
5284};
5285
5286#ifdef COBJMACROS
5287#ifndef WIDL_C_INLINE_WRAPPERS
5288/*** IUnknown methods ***/
5289#define IDropTargetProvider_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
5290#define IDropTargetProvider_AddRef(This) (This)->lpVtbl->AddRef(This)
5291#define IDropTargetProvider_Release(This) (This)->lpVtbl->Release(This)
5292/*** IDropTargetProvider methods ***/
5293#define IDropTargetProvider_get_DropTargetEffect(This,pRetVal) (This)->lpVtbl->get_DropTargetEffect(This,pRetVal)
5294#define IDropTargetProvider_get_DropTargetEffects(This,pRetVal) (This)->lpVtbl->get_DropTargetEffects(This,pRetVal)
5295#else
5296/*** IUnknown methods ***/
5297static inline HRESULT IDropTargetProvider_QueryInterface(IDropTargetProvider* This,REFIID riid,void **ppvObject) {
5298    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
5299}
5300static inline ULONG IDropTargetProvider_AddRef(IDropTargetProvider* This) {
5301    return This->lpVtbl->AddRef(This);
5302}
5303static inline ULONG IDropTargetProvider_Release(IDropTargetProvider* This) {
5304    return This->lpVtbl->Release(This);
5305}
5306/*** IDropTargetProvider methods ***/
5307static inline HRESULT IDropTargetProvider_get_DropTargetEffect(IDropTargetProvider* This,BSTR *pRetVal) {
5308    return This->lpVtbl->get_DropTargetEffect(This,pRetVal);
5309}
5310static inline HRESULT IDropTargetProvider_get_DropTargetEffects(IDropTargetProvider* This,SAFEARRAY **pRetVal) {
5311    return This->lpVtbl->get_DropTargetEffects(This,pRetVal);
5312}
5313#endif
5314#endif
5315
5316#endif
5317
5318
5319#endif  /* __IDropTargetProvider_INTERFACE_DEFINED__ */
5320
5321#ifndef __ITextRangeProvider_FWD_DEFINED__
5322#define __ITextRangeProvider_FWD_DEFINED__
5323typedef interface ITextRangeProvider ITextRangeProvider;
5324#ifdef __cplusplus
5325interface ITextRangeProvider;
5326#endif /* __cplusplus */
5327#endif
5328
5329/*****************************************************************************
5330 * ITextProvider interface
5331 */
5332#ifndef __ITextProvider_INTERFACE_DEFINED__
5333#define __ITextProvider_INTERFACE_DEFINED__
5334
5335DEFINE_GUID(IID_ITextProvider, 0x3589c92c, 0x63f3, 0x4367, 0x99,0xbb, 0xad,0xa6,0x53,0xb7,0x7c,0xf2);
5336#if defined(__cplusplus) && !defined(CINTERFACE)
5337MIDL_INTERFACE("3589c92c-63f3-4367-99bb-ada653b77cf2")
5338ITextProvider : public IUnknown
5339{
5340    virtual HRESULT STDMETHODCALLTYPE GetSelection(
5341        SAFEARRAY **pRetVal) = 0;
5342
5343    virtual HRESULT STDMETHODCALLTYPE GetVisibleRanges(
5344        SAFEARRAY **pRetVal) = 0;
5345
5346    virtual HRESULT STDMETHODCALLTYPE RangeFromChild(
5347        IRawElementProviderSimple *childElement,
5348        ITextRangeProvider **pRetVal) = 0;
5349
5350    virtual HRESULT STDMETHODCALLTYPE RangeFromPoint(
5351        struct UiaPoint point,
5352        ITextRangeProvider **pRetVal) = 0;
5353
5354    virtual HRESULT STDMETHODCALLTYPE get_DocumentRange(
5355        ITextRangeProvider **pRetVal) = 0;
5356
5357    virtual HRESULT STDMETHODCALLTYPE get_SupportedTextSelection(
5358        enum SupportedTextSelection *pRetVal) = 0;
5359
5360};
5361#ifdef __CRT_UUID_DECL
5362__CRT_UUID_DECL(ITextProvider, 0x3589c92c, 0x63f3, 0x4367, 0x99,0xbb, 0xad,0xa6,0x53,0xb7,0x7c,0xf2)
5363#endif
5364#else
5365typedef struct ITextProviderVtbl {
5366    BEGIN_INTERFACE
5367
5368    /*** IUnknown methods ***/
5369    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
5370        ITextProvider *This,
5371        REFIID riid,
5372        void **ppvObject);
5373
5374    ULONG (STDMETHODCALLTYPE *AddRef)(
5375        ITextProvider *This);
5376
5377    ULONG (STDMETHODCALLTYPE *Release)(
5378        ITextProvider *This);
5379
5380    /*** ITextProvider methods ***/
5381    HRESULT (STDMETHODCALLTYPE *GetSelection)(
5382        ITextProvider *This,
5383        SAFEARRAY **pRetVal);
5384
5385    HRESULT (STDMETHODCALLTYPE *GetVisibleRanges)(
5386        ITextProvider *This,
5387        SAFEARRAY **pRetVal);
5388
5389    HRESULT (STDMETHODCALLTYPE *RangeFromChild)(
5390        ITextProvider *This,
5391        IRawElementProviderSimple *childElement,
5392        ITextRangeProvider **pRetVal);
5393
5394    HRESULT (STDMETHODCALLTYPE *RangeFromPoint)(
5395        ITextProvider *This,
5396        struct UiaPoint point,
5397        ITextRangeProvider **pRetVal);
5398
5399    HRESULT (STDMETHODCALLTYPE *get_DocumentRange)(
5400        ITextProvider *This,
5401        ITextRangeProvider **pRetVal);
5402
5403    HRESULT (STDMETHODCALLTYPE *get_SupportedTextSelection)(
5404        ITextProvider *This,
5405        enum SupportedTextSelection *pRetVal);
5406
5407    END_INTERFACE
5408} ITextProviderVtbl;
5409
5410interface ITextProvider {
5411    CONST_VTBL ITextProviderVtbl* lpVtbl;
5412};
5413
5414#ifdef COBJMACROS
5415#ifndef WIDL_C_INLINE_WRAPPERS
5416/*** IUnknown methods ***/
5417#define ITextProvider_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
5418#define ITextProvider_AddRef(This) (This)->lpVtbl->AddRef(This)
5419#define ITextProvider_Release(This) (This)->lpVtbl->Release(This)
5420/*** ITextProvider methods ***/
5421#define ITextProvider_GetSelection(This,pRetVal) (This)->lpVtbl->GetSelection(This,pRetVal)
5422#define ITextProvider_GetVisibleRanges(This,pRetVal) (This)->lpVtbl->GetVisibleRanges(This,pRetVal)
5423#define ITextProvider_RangeFromChild(This,childElement,pRetVal) (This)->lpVtbl->RangeFromChild(This,childElement,pRetVal)
5424#define ITextProvider_RangeFromPoint(This,point,pRetVal) (This)->lpVtbl->RangeFromPoint(This,point,pRetVal)
5425#define ITextProvider_get_DocumentRange(This,pRetVal) (This)->lpVtbl->get_DocumentRange(This,pRetVal)
5426#define ITextProvider_get_SupportedTextSelection(This,pRetVal) (This)->lpVtbl->get_SupportedTextSelection(This,pRetVal)
5427#else
5428/*** IUnknown methods ***/
5429static inline HRESULT ITextProvider_QueryInterface(ITextProvider* This,REFIID riid,void **ppvObject) {
5430    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
5431}
5432static inline ULONG ITextProvider_AddRef(ITextProvider* This) {
5433    return This->lpVtbl->AddRef(This);
5434}
5435static inline ULONG ITextProvider_Release(ITextProvider* This) {
5436    return This->lpVtbl->Release(This);
5437}
5438/*** ITextProvider methods ***/
5439static inline HRESULT ITextProvider_GetSelection(ITextProvider* This,SAFEARRAY **pRetVal) {
5440    return This->lpVtbl->GetSelection(This,pRetVal);
5441}
5442static inline HRESULT ITextProvider_GetVisibleRanges(ITextProvider* This,SAFEARRAY **pRetVal) {
5443    return This->lpVtbl->GetVisibleRanges(This,pRetVal);
5444}
5445static inline HRESULT ITextProvider_RangeFromChild(ITextProvider* This,IRawElementProviderSimple *childElement,ITextRangeProvider **pRetVal) {
5446    return This->lpVtbl->RangeFromChild(This,childElement,pRetVal);
5447}
5448static inline HRESULT ITextProvider_RangeFromPoint(ITextProvider* This,struct UiaPoint point,ITextRangeProvider **pRetVal) {
5449    return This->lpVtbl->RangeFromPoint(This,point,pRetVal);
5450}
5451static inline HRESULT ITextProvider_get_DocumentRange(ITextProvider* This,ITextRangeProvider **pRetVal) {
5452    return This->lpVtbl->get_DocumentRange(This,pRetVal);
5453}
5454static inline HRESULT ITextProvider_get_SupportedTextSelection(ITextProvider* This,enum SupportedTextSelection *pRetVal) {
5455    return This->lpVtbl->get_SupportedTextSelection(This,pRetVal);
5456}
5457#endif
5458#endif
5459
5460#endif
5461
5462
5463#endif  /* __ITextProvider_INTERFACE_DEFINED__ */
5464
5465/*****************************************************************************
5466 * ITextProvider2 interface
5467 */
5468#ifndef __ITextProvider2_INTERFACE_DEFINED__
5469#define __ITextProvider2_INTERFACE_DEFINED__
5470
5471DEFINE_GUID(IID_ITextProvider2, 0x0dc5e6ed, 0x3e16, 0x4bf1, 0x8f,0x9a, 0xa9,0x79,0x87,0x8b,0xc1,0x95);
5472#if defined(__cplusplus) && !defined(CINTERFACE)
5473MIDL_INTERFACE("0dc5e6ed-3e16-4bf1-8f9a-a979878bc195")
5474ITextProvider2 : public ITextProvider
5475{
5476    virtual HRESULT STDMETHODCALLTYPE RangeFromAnnotation(
5477        IRawElementProviderSimple *annotationElement,
5478        ITextRangeProvider **pRetVal) = 0;
5479
5480    virtual HRESULT STDMETHODCALLTYPE GetCaretRange(
5481        WINBOOL *isActive,
5482        ITextRangeProvider **pRetVal) = 0;
5483
5484};
5485#ifdef __CRT_UUID_DECL
5486__CRT_UUID_DECL(ITextProvider2, 0x0dc5e6ed, 0x3e16, 0x4bf1, 0x8f,0x9a, 0xa9,0x79,0x87,0x8b,0xc1,0x95)
5487#endif
5488#else
5489typedef struct ITextProvider2Vtbl {
5490    BEGIN_INTERFACE
5491
5492    /*** IUnknown methods ***/
5493    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
5494        ITextProvider2 *This,
5495        REFIID riid,
5496        void **ppvObject);
5497
5498    ULONG (STDMETHODCALLTYPE *AddRef)(
5499        ITextProvider2 *This);
5500
5501    ULONG (STDMETHODCALLTYPE *Release)(
5502        ITextProvider2 *This);
5503
5504    /*** ITextProvider methods ***/
5505    HRESULT (STDMETHODCALLTYPE *GetSelection)(
5506        ITextProvider2 *This,
5507        SAFEARRAY **pRetVal);
5508
5509    HRESULT (STDMETHODCALLTYPE *GetVisibleRanges)(
5510        ITextProvider2 *This,
5511        SAFEARRAY **pRetVal);
5512
5513    HRESULT (STDMETHODCALLTYPE *RangeFromChild)(
5514        ITextProvider2 *This,
5515        IRawElementProviderSimple *childElement,
5516        ITextRangeProvider **pRetVal);
5517
5518    HRESULT (STDMETHODCALLTYPE *RangeFromPoint)(
5519        ITextProvider2 *This,
5520        struct UiaPoint point,
5521        ITextRangeProvider **pRetVal);
5522
5523    HRESULT (STDMETHODCALLTYPE *get_DocumentRange)(
5524        ITextProvider2 *This,
5525        ITextRangeProvider **pRetVal);
5526
5527    HRESULT (STDMETHODCALLTYPE *get_SupportedTextSelection)(
5528        ITextProvider2 *This,
5529        enum SupportedTextSelection *pRetVal);
5530
5531    /*** ITextProvider2 methods ***/
5532    HRESULT (STDMETHODCALLTYPE *RangeFromAnnotation)(
5533        ITextProvider2 *This,
5534        IRawElementProviderSimple *annotationElement,
5535        ITextRangeProvider **pRetVal);
5536
5537    HRESULT (STDMETHODCALLTYPE *GetCaretRange)(
5538        ITextProvider2 *This,
5539        WINBOOL *isActive,
5540        ITextRangeProvider **pRetVal);
5541
5542    END_INTERFACE
5543} ITextProvider2Vtbl;
5544
5545interface ITextProvider2 {
5546    CONST_VTBL ITextProvider2Vtbl* lpVtbl;
5547};
5548
5549#ifdef COBJMACROS
5550#ifndef WIDL_C_INLINE_WRAPPERS
5551/*** IUnknown methods ***/
5552#define ITextProvider2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
5553#define ITextProvider2_AddRef(This) (This)->lpVtbl->AddRef(This)
5554#define ITextProvider2_Release(This) (This)->lpVtbl->Release(This)
5555/*** ITextProvider methods ***/
5556#define ITextProvider2_GetSelection(This,pRetVal) (This)->lpVtbl->GetSelection(This,pRetVal)
5557#define ITextProvider2_GetVisibleRanges(This,pRetVal) (This)->lpVtbl->GetVisibleRanges(This,pRetVal)
5558#define ITextProvider2_RangeFromChild(This,childElement,pRetVal) (This)->lpVtbl->RangeFromChild(This,childElement,pRetVal)
5559#define ITextProvider2_RangeFromPoint(This,point,pRetVal) (This)->lpVtbl->RangeFromPoint(This,point,pRetVal)
5560#define ITextProvider2_get_DocumentRange(This,pRetVal) (This)->lpVtbl->get_DocumentRange(This,pRetVal)
5561#define ITextProvider2_get_SupportedTextSelection(This,pRetVal) (This)->lpVtbl->get_SupportedTextSelection(This,pRetVal)
5562/*** ITextProvider2 methods ***/
5563#define ITextProvider2_RangeFromAnnotation(This,annotationElement,pRetVal) (This)->lpVtbl->RangeFromAnnotation(This,annotationElement,pRetVal)
5564#define ITextProvider2_GetCaretRange(This,isActive,pRetVal) (This)->lpVtbl->GetCaretRange(This,isActive,pRetVal)
5565#else
5566/*** IUnknown methods ***/
5567static inline HRESULT ITextProvider2_QueryInterface(ITextProvider2* This,REFIID riid,void **ppvObject) {
5568    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
5569}
5570static inline ULONG ITextProvider2_AddRef(ITextProvider2* This) {
5571    return This->lpVtbl->AddRef(This);
5572}
5573static inline ULONG ITextProvider2_Release(ITextProvider2* This) {
5574    return This->lpVtbl->Release(This);
5575}
5576/*** ITextProvider methods ***/
5577static inline HRESULT ITextProvider2_GetSelection(ITextProvider2* This,SAFEARRAY **pRetVal) {
5578    return This->lpVtbl->GetSelection(This,pRetVal);
5579}
5580static inline HRESULT ITextProvider2_GetVisibleRanges(ITextProvider2* This,SAFEARRAY **pRetVal) {
5581    return This->lpVtbl->GetVisibleRanges(This,pRetVal);
5582}
5583static inline HRESULT ITextProvider2_RangeFromChild(ITextProvider2* This,IRawElementProviderSimple *childElement,ITextRangeProvider **pRetVal) {
5584    return This->lpVtbl->RangeFromChild(This,childElement,pRetVal);
5585}
5586static inline HRESULT ITextProvider2_RangeFromPoint(ITextProvider2* This,struct UiaPoint point,ITextRangeProvider **pRetVal) {
5587    return This->lpVtbl->RangeFromPoint(This,point,pRetVal);
5588}
5589static inline HRESULT ITextProvider2_get_DocumentRange(ITextProvider2* This,ITextRangeProvider **pRetVal) {
5590    return This->lpVtbl->get_DocumentRange(This,pRetVal);
5591}
5592static inline HRESULT ITextProvider2_get_SupportedTextSelection(ITextProvider2* This,enum SupportedTextSelection *pRetVal) {
5593    return This->lpVtbl->get_SupportedTextSelection(This,pRetVal);
5594}
5595/*** ITextProvider2 methods ***/
5596static inline HRESULT ITextProvider2_RangeFromAnnotation(ITextProvider2* This,IRawElementProviderSimple *annotationElement,ITextRangeProvider **pRetVal) {
5597    return This->lpVtbl->RangeFromAnnotation(This,annotationElement,pRetVal);
5598}
5599static inline HRESULT ITextProvider2_GetCaretRange(ITextProvider2* This,WINBOOL *isActive,ITextRangeProvider **pRetVal) {
5600    return This->lpVtbl->GetCaretRange(This,isActive,pRetVal);
5601}
5602#endif
5603#endif
5604
5605#endif
5606
5607
5608#endif  /* __ITextProvider2_INTERFACE_DEFINED__ */
5609
5610/*****************************************************************************
5611 * ITextEditProvider interface
5612 */
5613#ifndef __ITextEditProvider_INTERFACE_DEFINED__
5614#define __ITextEditProvider_INTERFACE_DEFINED__
5615
5616DEFINE_GUID(IID_ITextEditProvider, 0xea3605b4, 0x3a05, 0x400e, 0xb5,0xf9, 0x4e,0x91,0xb4,0x0f,0x61,0x76);
5617#if defined(__cplusplus) && !defined(CINTERFACE)
5618MIDL_INTERFACE("ea3605b4-3a05-400e-b5f9-4e91b40f6176")
5619ITextEditProvider : public ITextProvider
5620{
5621    virtual HRESULT STDMETHODCALLTYPE GetActiveComposition(
5622        ITextRangeProvider **pRetVal) = 0;
5623
5624    virtual HRESULT STDMETHODCALLTYPE GetConversionTarget(
5625        ITextRangeProvider **pRetVal) = 0;
5626
5627};
5628#ifdef __CRT_UUID_DECL
5629__CRT_UUID_DECL(ITextEditProvider, 0xea3605b4, 0x3a05, 0x400e, 0xb5,0xf9, 0x4e,0x91,0xb4,0x0f,0x61,0x76)
5630#endif
5631#else
5632typedef struct ITextEditProviderVtbl {
5633    BEGIN_INTERFACE
5634
5635    /*** IUnknown methods ***/
5636    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
5637        ITextEditProvider *This,
5638        REFIID riid,
5639        void **ppvObject);
5640
5641    ULONG (STDMETHODCALLTYPE *AddRef)(
5642        ITextEditProvider *This);
5643
5644    ULONG (STDMETHODCALLTYPE *Release)(
5645        ITextEditProvider *This);
5646
5647    /*** ITextProvider methods ***/
5648    HRESULT (STDMETHODCALLTYPE *GetSelection)(
5649        ITextEditProvider *This,
5650        SAFEARRAY **pRetVal);
5651
5652    HRESULT (STDMETHODCALLTYPE *GetVisibleRanges)(
5653        ITextEditProvider *This,
5654        SAFEARRAY **pRetVal);
5655
5656    HRESULT (STDMETHODCALLTYPE *RangeFromChild)(
5657        ITextEditProvider *This,
5658        IRawElementProviderSimple *childElement,
5659        ITextRangeProvider **pRetVal);
5660
5661    HRESULT (STDMETHODCALLTYPE *RangeFromPoint)(
5662        ITextEditProvider *This,
5663        struct UiaPoint point,
5664        ITextRangeProvider **pRetVal);
5665
5666    HRESULT (STDMETHODCALLTYPE *get_DocumentRange)(
5667        ITextEditProvider *This,
5668        ITextRangeProvider **pRetVal);
5669
5670    HRESULT (STDMETHODCALLTYPE *get_SupportedTextSelection)(
5671        ITextEditProvider *This,
5672        enum SupportedTextSelection *pRetVal);
5673
5674    /*** ITextEditProvider methods ***/
5675    HRESULT (STDMETHODCALLTYPE *GetActiveComposition)(
5676        ITextEditProvider *This,
5677        ITextRangeProvider **pRetVal);
5678
5679    HRESULT (STDMETHODCALLTYPE *GetConversionTarget)(
5680        ITextEditProvider *This,
5681        ITextRangeProvider **pRetVal);
5682
5683    END_INTERFACE
5684} ITextEditProviderVtbl;
5685
5686interface ITextEditProvider {
5687    CONST_VTBL ITextEditProviderVtbl* lpVtbl;
5688};
5689
5690#ifdef COBJMACROS
5691#ifndef WIDL_C_INLINE_WRAPPERS
5692/*** IUnknown methods ***/
5693#define ITextEditProvider_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
5694#define ITextEditProvider_AddRef(This) (This)->lpVtbl->AddRef(This)
5695#define ITextEditProvider_Release(This) (This)->lpVtbl->Release(This)
5696/*** ITextProvider methods ***/
5697#define ITextEditProvider_GetSelection(This,pRetVal) (This)->lpVtbl->GetSelection(This,pRetVal)
5698#define ITextEditProvider_GetVisibleRanges(This,pRetVal) (This)->lpVtbl->GetVisibleRanges(This,pRetVal)
5699#define ITextEditProvider_RangeFromChild(This,childElement,pRetVal) (This)->lpVtbl->RangeFromChild(This,childElement,pRetVal)
5700#define ITextEditProvider_RangeFromPoint(This,point,pRetVal) (This)->lpVtbl->RangeFromPoint(This,point,pRetVal)
5701#define ITextEditProvider_get_DocumentRange(This,pRetVal) (This)->lpVtbl->get_DocumentRange(This,pRetVal)
5702#define ITextEditProvider_get_SupportedTextSelection(This,pRetVal) (This)->lpVtbl->get_SupportedTextSelection(This,pRetVal)
5703/*** ITextEditProvider methods ***/
5704#define ITextEditProvider_GetActiveComposition(This,pRetVal) (This)->lpVtbl->GetActiveComposition(This,pRetVal)
5705#define ITextEditProvider_GetConversionTarget(This,pRetVal) (This)->lpVtbl->GetConversionTarget(This,pRetVal)
5706#else
5707/*** IUnknown methods ***/
5708static inline HRESULT ITextEditProvider_QueryInterface(ITextEditProvider* This,REFIID riid,void **ppvObject) {
5709    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
5710}
5711static inline ULONG ITextEditProvider_AddRef(ITextEditProvider* This) {
5712    return This->lpVtbl->AddRef(This);
5713}
5714static inline ULONG ITextEditProvider_Release(ITextEditProvider* This) {
5715    return This->lpVtbl->Release(This);
5716}
5717/*** ITextProvider methods ***/
5718static inline HRESULT ITextEditProvider_GetSelection(ITextEditProvider* This,SAFEARRAY **pRetVal) {
5719    return This->lpVtbl->GetSelection(This,pRetVal);
5720}
5721static inline HRESULT ITextEditProvider_GetVisibleRanges(ITextEditProvider* This,SAFEARRAY **pRetVal) {
5722    return This->lpVtbl->GetVisibleRanges(This,pRetVal);
5723}
5724static inline HRESULT ITextEditProvider_RangeFromChild(ITextEditProvider* This,IRawElementProviderSimple *childElement,ITextRangeProvider **pRetVal) {
5725    return This->lpVtbl->RangeFromChild(This,childElement,pRetVal);
5726}
5727static inline HRESULT ITextEditProvider_RangeFromPoint(ITextEditProvider* This,struct UiaPoint point,ITextRangeProvider **pRetVal) {
5728    return This->lpVtbl->RangeFromPoint(This,point,pRetVal);
5729}
5730static inline HRESULT ITextEditProvider_get_DocumentRange(ITextEditProvider* This,ITextRangeProvider **pRetVal) {
5731    return This->lpVtbl->get_DocumentRange(This,pRetVal);
5732}
5733static inline HRESULT ITextEditProvider_get_SupportedTextSelection(ITextEditProvider* This,enum SupportedTextSelection *pRetVal) {
5734    return This->lpVtbl->get_SupportedTextSelection(This,pRetVal);
5735}
5736/*** ITextEditProvider methods ***/
5737static inline HRESULT ITextEditProvider_GetActiveComposition(ITextEditProvider* This,ITextRangeProvider **pRetVal) {
5738    return This->lpVtbl->GetActiveComposition(This,pRetVal);
5739}
5740static inline HRESULT ITextEditProvider_GetConversionTarget(ITextEditProvider* This,ITextRangeProvider **pRetVal) {
5741    return This->lpVtbl->GetConversionTarget(This,pRetVal);
5742}
5743#endif
5744#endif
5745
5746#endif
5747
5748
5749#endif  /* __ITextEditProvider_INTERFACE_DEFINED__ */
5750
5751/*****************************************************************************
5752 * ITextRangeProvider interface
5753 */
5754#ifndef __ITextRangeProvider_INTERFACE_DEFINED__
5755#define __ITextRangeProvider_INTERFACE_DEFINED__
5756
5757DEFINE_GUID(IID_ITextRangeProvider, 0x5347ad7b, 0xc355, 0x46f8, 0xaf,0xf5, 0x90,0x90,0x33,0x58,0x2f,0x63);
5758#if defined(__cplusplus) && !defined(CINTERFACE)
5759MIDL_INTERFACE("5347ad7b-c355-46f8-aff5-909033582f63")
5760ITextRangeProvider : public IUnknown
5761{
5762    virtual HRESULT STDMETHODCALLTYPE Clone(
5763        ITextRangeProvider **pRetVal) = 0;
5764
5765    virtual HRESULT STDMETHODCALLTYPE Compare(
5766        ITextRangeProvider *range,
5767        WINBOOL *pRetVal) = 0;
5768
5769    virtual HRESULT STDMETHODCALLTYPE CompareEndpoints(
5770        enum TextPatternRangeEndpoint endpoint,
5771        ITextRangeProvider *targetRange,
5772        enum TextPatternRangeEndpoint targetEndpoint,
5773        int *pRetVal) = 0;
5774
5775    virtual HRESULT STDMETHODCALLTYPE ExpandToEnclosingUnit(
5776        enum TextUnit unit) = 0;
5777
5778    virtual HRESULT STDMETHODCALLTYPE FindAttribute(
5779        TEXTATTRIBUTEID attributeId,
5780        VARIANT val,
5781        WINBOOL backward,
5782        ITextRangeProvider **pRetVal) = 0;
5783
5784    virtual HRESULT STDMETHODCALLTYPE FindText(
5785        BSTR text,
5786        WINBOOL backward,
5787        WINBOOL ignoreCase,
5788        ITextRangeProvider **pRetVal) = 0;
5789
5790    virtual HRESULT STDMETHODCALLTYPE GetAttributeValue(
5791        TEXTATTRIBUTEID attributeId,
5792        VARIANT *pRetVal) = 0;
5793
5794    virtual HRESULT STDMETHODCALLTYPE GetBoundingRectangles(
5795        SAFEARRAY **pRetVal) = 0;
5796
5797    virtual HRESULT STDMETHODCALLTYPE GetEnclosingElement(
5798        IRawElementProviderSimple **pRetVal) = 0;
5799
5800    virtual HRESULT STDMETHODCALLTYPE GetText(
5801        int maxLength,
5802        BSTR *pRetVal) = 0;
5803
5804    virtual HRESULT STDMETHODCALLTYPE Move(
5805        enum TextUnit unit,
5806        int count,
5807        int *pRetVal) = 0;
5808
5809    virtual HRESULT STDMETHODCALLTYPE MoveEndpointByUnit(
5810        enum TextPatternRangeEndpoint endpoint,
5811        enum TextUnit unit,
5812        int count,
5813        int *pRetVal) = 0;
5814
5815    virtual HRESULT STDMETHODCALLTYPE MoveEndpointByRange(
5816        enum TextPatternRangeEndpoint endpoint,
5817        ITextRangeProvider *targetRange,
5818        enum TextPatternRangeEndpoint targetEndpoint) = 0;
5819
5820    virtual HRESULT STDMETHODCALLTYPE Select(
5821        ) = 0;
5822
5823    virtual HRESULT STDMETHODCALLTYPE AddToSelection(
5824        ) = 0;
5825
5826    virtual HRESULT STDMETHODCALLTYPE RemoveFromSelection(
5827        ) = 0;
5828
5829    virtual HRESULT STDMETHODCALLTYPE ScrollIntoView(
5830        WINBOOL alignToTop) = 0;
5831
5832    virtual HRESULT STDMETHODCALLTYPE GetChildren(
5833        SAFEARRAY **pRetVal) = 0;
5834
5835};
5836#ifdef __CRT_UUID_DECL
5837__CRT_UUID_DECL(ITextRangeProvider, 0x5347ad7b, 0xc355, 0x46f8, 0xaf,0xf5, 0x90,0x90,0x33,0x58,0x2f,0x63)
5838#endif
5839#else
5840typedef struct ITextRangeProviderVtbl {
5841    BEGIN_INTERFACE
5842
5843    /*** IUnknown methods ***/
5844    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
5845        ITextRangeProvider *This,
5846        REFIID riid,
5847        void **ppvObject);
5848
5849    ULONG (STDMETHODCALLTYPE *AddRef)(
5850        ITextRangeProvider *This);
5851
5852    ULONG (STDMETHODCALLTYPE *Release)(
5853        ITextRangeProvider *This);
5854
5855    /*** ITextRangeProvider methods ***/
5856    HRESULT (STDMETHODCALLTYPE *Clone)(
5857        ITextRangeProvider *This,
5858        ITextRangeProvider **pRetVal);
5859
5860    HRESULT (STDMETHODCALLTYPE *Compare)(
5861        ITextRangeProvider *This,
5862        ITextRangeProvider *range,
5863        WINBOOL *pRetVal);
5864
5865    HRESULT (STDMETHODCALLTYPE *CompareEndpoints)(
5866        ITextRangeProvider *This,
5867        enum TextPatternRangeEndpoint endpoint,
5868        ITextRangeProvider *targetRange,
5869        enum TextPatternRangeEndpoint targetEndpoint,
5870        int *pRetVal);
5871
5872    HRESULT (STDMETHODCALLTYPE *ExpandToEnclosingUnit)(
5873        ITextRangeProvider *This,
5874        enum TextUnit unit);
5875
5876    HRESULT (STDMETHODCALLTYPE *FindAttribute)(
5877        ITextRangeProvider *This,
5878        TEXTATTRIBUTEID attributeId,
5879        VARIANT val,
5880        WINBOOL backward,
5881        ITextRangeProvider **pRetVal);
5882
5883    HRESULT (STDMETHODCALLTYPE *FindText)(
5884        ITextRangeProvider *This,
5885        BSTR text,
5886        WINBOOL backward,
5887        WINBOOL ignoreCase,
5888        ITextRangeProvider **pRetVal);
5889
5890    HRESULT (STDMETHODCALLTYPE *GetAttributeValue)(
5891        ITextRangeProvider *This,
5892        TEXTATTRIBUTEID attributeId,
5893        VARIANT *pRetVal);
5894
5895    HRESULT (STDMETHODCALLTYPE *GetBoundingRectangles)(
5896        ITextRangeProvider *This,
5897        SAFEARRAY **pRetVal);
5898
5899    HRESULT (STDMETHODCALLTYPE *GetEnclosingElement)(
5900        ITextRangeProvider *This,
5901        IRawElementProviderSimple **pRetVal);
5902
5903    HRESULT (STDMETHODCALLTYPE *GetText)(
5904        ITextRangeProvider *This,
5905        int maxLength,
5906        BSTR *pRetVal);
5907
5908    HRESULT (STDMETHODCALLTYPE *Move)(
5909        ITextRangeProvider *This,
5910        enum TextUnit unit,
5911        int count,
5912        int *pRetVal);
5913
5914    HRESULT (STDMETHODCALLTYPE *MoveEndpointByUnit)(
5915        ITextRangeProvider *This,
5916        enum TextPatternRangeEndpoint endpoint,
5917        enum TextUnit unit,
5918        int count,
5919        int *pRetVal);
5920
5921    HRESULT (STDMETHODCALLTYPE *MoveEndpointByRange)(
5922        ITextRangeProvider *This,
5923        enum TextPatternRangeEndpoint endpoint,
5924        ITextRangeProvider *targetRange,
5925        enum TextPatternRangeEndpoint targetEndpoint);
5926
5927    HRESULT (STDMETHODCALLTYPE *Select)(
5928        ITextRangeProvider *This);
5929
5930    HRESULT (STDMETHODCALLTYPE *AddToSelection)(
5931        ITextRangeProvider *This);
5932
5933    HRESULT (STDMETHODCALLTYPE *RemoveFromSelection)(
5934        ITextRangeProvider *This);
5935
5936    HRESULT (STDMETHODCALLTYPE *ScrollIntoView)(
5937        ITextRangeProvider *This,
5938        WINBOOL alignToTop);
5939
5940    HRESULT (STDMETHODCALLTYPE *GetChildren)(
5941        ITextRangeProvider *This,
5942        SAFEARRAY **pRetVal);
5943
5944    END_INTERFACE
5945} ITextRangeProviderVtbl;
5946
5947interface ITextRangeProvider {
5948    CONST_VTBL ITextRangeProviderVtbl* lpVtbl;
5949};
5950
5951#ifdef COBJMACROS
5952#ifndef WIDL_C_INLINE_WRAPPERS
5953/*** IUnknown methods ***/
5954#define ITextRangeProvider_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
5955#define ITextRangeProvider_AddRef(This) (This)->lpVtbl->AddRef(This)
5956#define ITextRangeProvider_Release(This) (This)->lpVtbl->Release(This)
5957/*** ITextRangeProvider methods ***/
5958#define ITextRangeProvider_Clone(This,pRetVal) (This)->lpVtbl->Clone(This,pRetVal)
5959#define ITextRangeProvider_Compare(This,range,pRetVal) (This)->lpVtbl->Compare(This,range,pRetVal)
5960#define ITextRangeProvider_CompareEndpoints(This,endpoint,targetRange,targetEndpoint,pRetVal) (This)->lpVtbl->CompareEndpoints(This,endpoint,targetRange,targetEndpoint,pRetVal)
5961#define ITextRangeProvider_ExpandToEnclosingUnit(This,unit) (This)->lpVtbl->ExpandToEnclosingUnit(This,unit)
5962#define ITextRangeProvider_FindAttribute(This,attributeId,val,backward,pRetVal) (This)->lpVtbl->FindAttribute(This,attributeId,val,backward,pRetVal)
5963#define ITextRangeProvider_FindText(This,text,backward,ignoreCase,pRetVal) (This)->lpVtbl->FindText(This,text,backward,ignoreCase,pRetVal)
5964#define ITextRangeProvider_GetAttributeValue(This,attributeId,pRetVal) (This)->lpVtbl->GetAttributeValue(This,attributeId,pRetVal)
5965#define ITextRangeProvider_GetBoundingRectangles(This,pRetVal) (This)->lpVtbl->GetBoundingRectangles(This,pRetVal)
5966#define ITextRangeProvider_GetEnclosingElement(This,pRetVal) (This)->lpVtbl->GetEnclosingElement(This,pRetVal)
5967#define ITextRangeProvider_GetText(This,maxLength,pRetVal) (This)->lpVtbl->GetText(This,maxLength,pRetVal)
5968#define ITextRangeProvider_Move(This,unit,count,pRetVal) (This)->lpVtbl->Move(This,unit,count,pRetVal)
5969#define ITextRangeProvider_MoveEndpointByUnit(This,endpoint,unit,count,pRetVal) (This)->lpVtbl->MoveEndpointByUnit(This,endpoint,unit,count,pRetVal)
5970#define ITextRangeProvider_MoveEndpointByRange(This,endpoint,targetRange,targetEndpoint) (This)->lpVtbl->MoveEndpointByRange(This,endpoint,targetRange,targetEndpoint)
5971#define ITextRangeProvider_Select(This) (This)->lpVtbl->Select(This)
5972#define ITextRangeProvider_AddToSelection(This) (This)->lpVtbl->AddToSelection(This)
5973#define ITextRangeProvider_RemoveFromSelection(This) (This)->lpVtbl->RemoveFromSelection(This)
5974#define ITextRangeProvider_ScrollIntoView(This,alignToTop) (This)->lpVtbl->ScrollIntoView(This,alignToTop)
5975#define ITextRangeProvider_GetChildren(This,pRetVal) (This)->lpVtbl->GetChildren(This,pRetVal)
5976#else
5977/*** IUnknown methods ***/
5978static inline HRESULT ITextRangeProvider_QueryInterface(ITextRangeProvider* This,REFIID riid,void **ppvObject) {
5979    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
5980}
5981static inline ULONG ITextRangeProvider_AddRef(ITextRangeProvider* This) {
5982    return This->lpVtbl->AddRef(This);
5983}
5984static inline ULONG ITextRangeProvider_Release(ITextRangeProvider* This) {
5985    return This->lpVtbl->Release(This);
5986}
5987/*** ITextRangeProvider methods ***/
5988static inline HRESULT ITextRangeProvider_Clone(ITextRangeProvider* This,ITextRangeProvider **pRetVal) {
5989    return This->lpVtbl->Clone(This,pRetVal);
5990}
5991static inline HRESULT ITextRangeProvider_Compare(ITextRangeProvider* This,ITextRangeProvider *range,WINBOOL *pRetVal) {
5992    return This->lpVtbl->Compare(This,range,pRetVal);
5993}
5994static inline HRESULT ITextRangeProvider_CompareEndpoints(ITextRangeProvider* This,enum TextPatternRangeEndpoint endpoint,ITextRangeProvider *targetRange,enum TextPatternRangeEndpoint targetEndpoint,int *pRetVal) {
5995    return This->lpVtbl->CompareEndpoints(This,endpoint,targetRange,targetEndpoint,pRetVal);
5996}
5997static inline HRESULT ITextRangeProvider_ExpandToEnclosingUnit(ITextRangeProvider* This,enum TextUnit unit) {
5998    return This->lpVtbl->ExpandToEnclosingUnit(This,unit);
5999}
6000static inline HRESULT ITextRangeProvider_FindAttribute(ITextRangeProvider* This,TEXTATTRIBUTEID attributeId,VARIANT val,WINBOOL backward,ITextRangeProvider **pRetVal) {
6001    return This->lpVtbl->FindAttribute(This,attributeId,val,backward,pRetVal);
6002}
6003static inline HRESULT ITextRangeProvider_FindText(ITextRangeProvider* This,BSTR text,WINBOOL backward,WINBOOL ignoreCase,ITextRangeProvider **pRetVal) {
6004    return This->lpVtbl->FindText(This,text,backward,ignoreCase,pRetVal);
6005}
6006static inline HRESULT ITextRangeProvider_GetAttributeValue(ITextRangeProvider* This,TEXTATTRIBUTEID attributeId,VARIANT *pRetVal) {
6007    return This->lpVtbl->GetAttributeValue(This,attributeId,pRetVal);
6008}
6009static inline HRESULT ITextRangeProvider_GetBoundingRectangles(ITextRangeProvider* This,SAFEARRAY **pRetVal) {
6010    return This->lpVtbl->GetBoundingRectangles(This,pRetVal);
6011}
6012static inline HRESULT ITextRangeProvider_GetEnclosingElement(ITextRangeProvider* This,IRawElementProviderSimple **pRetVal) {
6013    return This->lpVtbl->GetEnclosingElement(This,pRetVal);
6014}
6015static inline HRESULT ITextRangeProvider_GetText(ITextRangeProvider* This,int maxLength,BSTR *pRetVal) {
6016    return This->lpVtbl->GetText(This,maxLength,pRetVal);
6017}
6018static inline HRESULT ITextRangeProvider_Move(ITextRangeProvider* This,enum TextUnit unit,int count,int *pRetVal) {
6019    return This->lpVtbl->Move(This,unit,count,pRetVal);
6020}
6021static inline HRESULT ITextRangeProvider_MoveEndpointByUnit(ITextRangeProvider* This,enum TextPatternRangeEndpoint endpoint,enum TextUnit unit,int count,int *pRetVal) {
6022    return This->lpVtbl->MoveEndpointByUnit(This,endpoint,unit,count,pRetVal);
6023}
6024static inline HRESULT ITextRangeProvider_MoveEndpointByRange(ITextRangeProvider* This,enum TextPatternRangeEndpoint endpoint,ITextRangeProvider *targetRange,enum TextPatternRangeEndpoint targetEndpoint) {
6025    return This->lpVtbl->MoveEndpointByRange(This,endpoint,targetRange,targetEndpoint);
6026}
6027static inline HRESULT ITextRangeProvider_Select(ITextRangeProvider* This) {
6028    return This->lpVtbl->Select(This);
6029}
6030static inline HRESULT ITextRangeProvider_AddToSelection(ITextRangeProvider* This) {
6031    return This->lpVtbl->AddToSelection(This);
6032}
6033static inline HRESULT ITextRangeProvider_RemoveFromSelection(ITextRangeProvider* This) {
6034    return This->lpVtbl->RemoveFromSelection(This);
6035}
6036static inline HRESULT ITextRangeProvider_ScrollIntoView(ITextRangeProvider* This,WINBOOL alignToTop) {
6037    return This->lpVtbl->ScrollIntoView(This,alignToTop);
6038}
6039static inline HRESULT ITextRangeProvider_GetChildren(ITextRangeProvider* This,SAFEARRAY **pRetVal) {
6040    return This->lpVtbl->GetChildren(This,pRetVal);
6041}
6042#endif
6043#endif
6044
6045#endif
6046
6047
6048#endif  /* __ITextRangeProvider_INTERFACE_DEFINED__ */
6049
6050/*****************************************************************************
6051 * ITextRangeProvider2 interface
6052 */
6053#ifndef __ITextRangeProvider2_INTERFACE_DEFINED__
6054#define __ITextRangeProvider2_INTERFACE_DEFINED__
6055
6056DEFINE_GUID(IID_ITextRangeProvider2, 0x9bbce42c, 0x1921, 0x4f18, 0x89,0xca, 0xdb,0xa1,0x91,0x0a,0x03,0x86);
6057#if defined(__cplusplus) && !defined(CINTERFACE)
6058MIDL_INTERFACE("9bbce42c-1921-4f18-89ca-dba1910a0386")
6059ITextRangeProvider2 : public ITextRangeProvider
6060{
6061    virtual HRESULT STDMETHODCALLTYPE ShowContextMenu(
6062        ) = 0;
6063
6064};
6065#ifdef __CRT_UUID_DECL
6066__CRT_UUID_DECL(ITextRangeProvider2, 0x9bbce42c, 0x1921, 0x4f18, 0x89,0xca, 0xdb,0xa1,0x91,0x0a,0x03,0x86)
6067#endif
6068#else
6069typedef struct ITextRangeProvider2Vtbl {
6070    BEGIN_INTERFACE
6071
6072    /*** IUnknown methods ***/
6073    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
6074        ITextRangeProvider2 *This,
6075        REFIID riid,
6076        void **ppvObject);
6077
6078    ULONG (STDMETHODCALLTYPE *AddRef)(
6079        ITextRangeProvider2 *This);
6080
6081    ULONG (STDMETHODCALLTYPE *Release)(
6082        ITextRangeProvider2 *This);
6083
6084    /*** ITextRangeProvider methods ***/
6085    HRESULT (STDMETHODCALLTYPE *Clone)(
6086        ITextRangeProvider2 *This,
6087        ITextRangeProvider **pRetVal);
6088
6089    HRESULT (STDMETHODCALLTYPE *Compare)(
6090        ITextRangeProvider2 *This,
6091        ITextRangeProvider *range,
6092        WINBOOL *pRetVal);
6093
6094    HRESULT (STDMETHODCALLTYPE *CompareEndpoints)(
6095        ITextRangeProvider2 *This,
6096        enum TextPatternRangeEndpoint endpoint,
6097        ITextRangeProvider *targetRange,
6098        enum TextPatternRangeEndpoint targetEndpoint,
6099        int *pRetVal);
6100
6101    HRESULT (STDMETHODCALLTYPE *ExpandToEnclosingUnit)(
6102        ITextRangeProvider2 *This,
6103        enum TextUnit unit);
6104
6105    HRESULT (STDMETHODCALLTYPE *FindAttribute)(
6106        ITextRangeProvider2 *This,
6107        TEXTATTRIBUTEID attributeId,
6108        VARIANT val,
6109        WINBOOL backward,
6110        ITextRangeProvider **pRetVal);
6111
6112    HRESULT (STDMETHODCALLTYPE *FindText)(
6113        ITextRangeProvider2 *This,
6114        BSTR text,
6115        WINBOOL backward,
6116        WINBOOL ignoreCase,
6117        ITextRangeProvider **pRetVal);
6118
6119    HRESULT (STDMETHODCALLTYPE *GetAttributeValue)(
6120        ITextRangeProvider2 *This,
6121        TEXTATTRIBUTEID attributeId,
6122        VARIANT *pRetVal);
6123
6124    HRESULT (STDMETHODCALLTYPE *GetBoundingRectangles)(
6125        ITextRangeProvider2 *This,
6126        SAFEARRAY **pRetVal);
6127
6128    HRESULT (STDMETHODCALLTYPE *GetEnclosingElement)(
6129        ITextRangeProvider2 *This,
6130        IRawElementProviderSimple **pRetVal);
6131
6132    HRESULT (STDMETHODCALLTYPE *GetText)(
6133        ITextRangeProvider2 *This,
6134        int maxLength,
6135        BSTR *pRetVal);
6136
6137    HRESULT (STDMETHODCALLTYPE *Move)(
6138        ITextRangeProvider2 *This,
6139        enum TextUnit unit,
6140        int count,
6141        int *pRetVal);
6142
6143    HRESULT (STDMETHODCALLTYPE *MoveEndpointByUnit)(
6144        ITextRangeProvider2 *This,
6145        enum TextPatternRangeEndpoint endpoint,
6146        enum TextUnit unit,
6147        int count,
6148        int *pRetVal);
6149
6150    HRESULT (STDMETHODCALLTYPE *MoveEndpointByRange)(
6151        ITextRangeProvider2 *This,
6152        enum TextPatternRangeEndpoint endpoint,
6153        ITextRangeProvider *targetRange,
6154        enum TextPatternRangeEndpoint targetEndpoint);
6155
6156    HRESULT (STDMETHODCALLTYPE *Select)(
6157        ITextRangeProvider2 *This);
6158
6159    HRESULT (STDMETHODCALLTYPE *AddToSelection)(
6160        ITextRangeProvider2 *This);
6161
6162    HRESULT (STDMETHODCALLTYPE *RemoveFromSelection)(
6163        ITextRangeProvider2 *This);
6164
6165    HRESULT (STDMETHODCALLTYPE *ScrollIntoView)(
6166        ITextRangeProvider2 *This,
6167        WINBOOL alignToTop);
6168
6169    HRESULT (STDMETHODCALLTYPE *GetChildren)(
6170        ITextRangeProvider2 *This,
6171        SAFEARRAY **pRetVal);
6172
6173    /*** ITextRangeProvider2 methods ***/
6174    HRESULT (STDMETHODCALLTYPE *ShowContextMenu)(
6175        ITextRangeProvider2 *This);
6176
6177    END_INTERFACE
6178} ITextRangeProvider2Vtbl;
6179
6180interface ITextRangeProvider2 {
6181    CONST_VTBL ITextRangeProvider2Vtbl* lpVtbl;
6182};
6183
6184#ifdef COBJMACROS
6185#ifndef WIDL_C_INLINE_WRAPPERS
6186/*** IUnknown methods ***/
6187#define ITextRangeProvider2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
6188#define ITextRangeProvider2_AddRef(This) (This)->lpVtbl->AddRef(This)
6189#define ITextRangeProvider2_Release(This) (This)->lpVtbl->Release(This)
6190/*** ITextRangeProvider methods ***/
6191#define ITextRangeProvider2_Clone(This,pRetVal) (This)->lpVtbl->Clone(This,pRetVal)
6192#define ITextRangeProvider2_Compare(This,range,pRetVal) (This)->lpVtbl->Compare(This,range,pRetVal)
6193#define ITextRangeProvider2_CompareEndpoints(This,endpoint,targetRange,targetEndpoint,pRetVal) (This)->lpVtbl->CompareEndpoints(This,endpoint,targetRange,targetEndpoint,pRetVal)
6194#define ITextRangeProvider2_ExpandToEnclosingUnit(This,unit) (This)->lpVtbl->ExpandToEnclosingUnit(This,unit)
6195#define ITextRangeProvider2_FindAttribute(This,attributeId,val,backward,pRetVal) (This)->lpVtbl->FindAttribute(This,attributeId,val,backward,pRetVal)
6196#define ITextRangeProvider2_FindText(This,text,backward,ignoreCase,pRetVal) (This)->lpVtbl->FindText(This,text,backward,ignoreCase,pRetVal)
6197#define ITextRangeProvider2_GetAttributeValue(This,attributeId,pRetVal) (This)->lpVtbl->GetAttributeValue(This,attributeId,pRetVal)
6198#define ITextRangeProvider2_GetBoundingRectangles(This,pRetVal) (This)->lpVtbl->GetBoundingRectangles(This,pRetVal)
6199#define ITextRangeProvider2_GetEnclosingElement(This,pRetVal) (This)->lpVtbl->GetEnclosingElement(This,pRetVal)
6200#define ITextRangeProvider2_GetText(This,maxLength,pRetVal) (This)->lpVtbl->GetText(This,maxLength,pRetVal)
6201#define ITextRangeProvider2_Move(This,unit,count,pRetVal) (This)->lpVtbl->Move(This,unit,count,pRetVal)
6202#define ITextRangeProvider2_MoveEndpointByUnit(This,endpoint,unit,count,pRetVal) (This)->lpVtbl->MoveEndpointByUnit(This,endpoint,unit,count,pRetVal)
6203#define ITextRangeProvider2_MoveEndpointByRange(This,endpoint,targetRange,targetEndpoint) (This)->lpVtbl->MoveEndpointByRange(This,endpoint,targetRange,targetEndpoint)
6204#define ITextRangeProvider2_Select(This) (This)->lpVtbl->Select(This)
6205#define ITextRangeProvider2_AddToSelection(This) (This)->lpVtbl->AddToSelection(This)
6206#define ITextRangeProvider2_RemoveFromSelection(This) (This)->lpVtbl->RemoveFromSelection(This)
6207#define ITextRangeProvider2_ScrollIntoView(This,alignToTop) (This)->lpVtbl->ScrollIntoView(This,alignToTop)
6208#define ITextRangeProvider2_GetChildren(This,pRetVal) (This)->lpVtbl->GetChildren(This,pRetVal)
6209/*** ITextRangeProvider2 methods ***/
6210#define ITextRangeProvider2_ShowContextMenu(This) (This)->lpVtbl->ShowContextMenu(This)
6211#else
6212/*** IUnknown methods ***/
6213static inline HRESULT ITextRangeProvider2_QueryInterface(ITextRangeProvider2* This,REFIID riid,void **ppvObject) {
6214    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
6215}
6216static inline ULONG ITextRangeProvider2_AddRef(ITextRangeProvider2* This) {
6217    return This->lpVtbl->AddRef(This);
6218}
6219static inline ULONG ITextRangeProvider2_Release(ITextRangeProvider2* This) {
6220    return This->lpVtbl->Release(This);
6221}
6222/*** ITextRangeProvider methods ***/
6223static inline HRESULT ITextRangeProvider2_Clone(ITextRangeProvider2* This,ITextRangeProvider **pRetVal) {
6224    return This->lpVtbl->Clone(This,pRetVal);
6225}
6226static inline HRESULT ITextRangeProvider2_Compare(ITextRangeProvider2* This,ITextRangeProvider *range,WINBOOL *pRetVal) {
6227    return This->lpVtbl->Compare(This,range,pRetVal);
6228}
6229static inline HRESULT ITextRangeProvider2_CompareEndpoints(ITextRangeProvider2* This,enum TextPatternRangeEndpoint endpoint,ITextRangeProvider *targetRange,enum TextPatternRangeEndpoint targetEndpoint,int *pRetVal) {
6230    return This->lpVtbl->CompareEndpoints(This,endpoint,targetRange,targetEndpoint,pRetVal);
6231}
6232static inline HRESULT ITextRangeProvider2_ExpandToEnclosingUnit(ITextRangeProvider2* This,enum TextUnit unit) {
6233    return This->lpVtbl->ExpandToEnclosingUnit(This,unit);
6234}
6235static inline HRESULT ITextRangeProvider2_FindAttribute(ITextRangeProvider2* This,TEXTATTRIBUTEID attributeId,VARIANT val,WINBOOL backward,ITextRangeProvider **pRetVal) {
6236    return This->lpVtbl->FindAttribute(This,attributeId,val,backward,pRetVal);
6237}
6238static inline HRESULT ITextRangeProvider2_FindText(ITextRangeProvider2* This,BSTR text,WINBOOL backward,WINBOOL ignoreCase,ITextRangeProvider **pRetVal) {
6239    return This->lpVtbl->FindText(This,text,backward,ignoreCase,pRetVal);
6240}
6241static inline HRESULT ITextRangeProvider2_GetAttributeValue(ITextRangeProvider2* This,TEXTATTRIBUTEID attributeId,VARIANT *pRetVal) {
6242    return This->lpVtbl->GetAttributeValue(This,attributeId,pRetVal);
6243}
6244static inline HRESULT ITextRangeProvider2_GetBoundingRectangles(ITextRangeProvider2* This,SAFEARRAY **pRetVal) {
6245    return This->lpVtbl->GetBoundingRectangles(This,pRetVal);
6246}
6247static inline HRESULT ITextRangeProvider2_GetEnclosingElement(ITextRangeProvider2* This,IRawElementProviderSimple **pRetVal) {
6248    return This->lpVtbl->GetEnclosingElement(This,pRetVal);
6249}
6250static inline HRESULT ITextRangeProvider2_GetText(ITextRangeProvider2* This,int maxLength,BSTR *pRetVal) {
6251    return This->lpVtbl->GetText(This,maxLength,pRetVal);
6252}
6253static inline HRESULT ITextRangeProvider2_Move(ITextRangeProvider2* This,enum TextUnit unit,int count,int *pRetVal) {
6254    return This->lpVtbl->Move(This,unit,count,pRetVal);
6255}
6256static inline HRESULT ITextRangeProvider2_MoveEndpointByUnit(ITextRangeProvider2* This,enum TextPatternRangeEndpoint endpoint,enum TextUnit unit,int count,int *pRetVal) {
6257    return This->lpVtbl->MoveEndpointByUnit(This,endpoint,unit,count,pRetVal);
6258}
6259static inline HRESULT ITextRangeProvider2_MoveEndpointByRange(ITextRangeProvider2* This,enum TextPatternRangeEndpoint endpoint,ITextRangeProvider *targetRange,enum TextPatternRangeEndpoint targetEndpoint) {
6260    return This->lpVtbl->MoveEndpointByRange(This,endpoint,targetRange,targetEndpoint);
6261}
6262static inline HRESULT ITextRangeProvider2_Select(ITextRangeProvider2* This) {
6263    return This->lpVtbl->Select(This);
6264}
6265static inline HRESULT ITextRangeProvider2_AddToSelection(ITextRangeProvider2* This) {
6266    return This->lpVtbl->AddToSelection(This);
6267}
6268static inline HRESULT ITextRangeProvider2_RemoveFromSelection(ITextRangeProvider2* This) {
6269    return This->lpVtbl->RemoveFromSelection(This);
6270}
6271static inline HRESULT ITextRangeProvider2_ScrollIntoView(ITextRangeProvider2* This,WINBOOL alignToTop) {
6272    return This->lpVtbl->ScrollIntoView(This,alignToTop);
6273}
6274static inline HRESULT ITextRangeProvider2_GetChildren(ITextRangeProvider2* This,SAFEARRAY **pRetVal) {
6275    return This->lpVtbl->GetChildren(This,pRetVal);
6276}
6277/*** ITextRangeProvider2 methods ***/
6278static inline HRESULT ITextRangeProvider2_ShowContextMenu(ITextRangeProvider2* This) {
6279    return This->lpVtbl->ShowContextMenu(This);
6280}
6281#endif
6282#endif
6283
6284#endif
6285
6286
6287#endif  /* __ITextRangeProvider2_INTERFACE_DEFINED__ */
6288
6289/*****************************************************************************
6290 * ITextChildProvider interface
6291 */
6292#ifndef __ITextChildProvider_INTERFACE_DEFINED__
6293#define __ITextChildProvider_INTERFACE_DEFINED__
6294
6295DEFINE_GUID(IID_ITextChildProvider, 0x4c2de2b9, 0xc88f, 0x4f88, 0xa1,0x11, 0xf1,0xd3,0x36,0xb7,0xd1,0xa9);
6296#if defined(__cplusplus) && !defined(CINTERFACE)
6297MIDL_INTERFACE("4c2de2b9-c88f-4f88-a111-f1d336b7d1a9")
6298ITextChildProvider : public IUnknown
6299{
6300    virtual HRESULT STDMETHODCALLTYPE get_TextContainer(
6301        IRawElementProviderSimple **pRetVal) = 0;
6302
6303    virtual HRESULT STDMETHODCALLTYPE get_TextRange(
6304        ITextRangeProvider **pRetVal) = 0;
6305
6306};
6307#ifdef __CRT_UUID_DECL
6308__CRT_UUID_DECL(ITextChildProvider, 0x4c2de2b9, 0xc88f, 0x4f88, 0xa1,0x11, 0xf1,0xd3,0x36,0xb7,0xd1,0xa9)
6309#endif
6310#else
6311typedef struct ITextChildProviderVtbl {
6312    BEGIN_INTERFACE
6313
6314    /*** IUnknown methods ***/
6315    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
6316        ITextChildProvider *This,
6317        REFIID riid,
6318        void **ppvObject);
6319
6320    ULONG (STDMETHODCALLTYPE *AddRef)(
6321        ITextChildProvider *This);
6322
6323    ULONG (STDMETHODCALLTYPE *Release)(
6324        ITextChildProvider *This);
6325
6326    /*** ITextChildProvider methods ***/
6327    HRESULT (STDMETHODCALLTYPE *get_TextContainer)(
6328        ITextChildProvider *This,
6329        IRawElementProviderSimple **pRetVal);
6330
6331    HRESULT (STDMETHODCALLTYPE *get_TextRange)(
6332        ITextChildProvider *This,
6333        ITextRangeProvider **pRetVal);
6334
6335    END_INTERFACE
6336} ITextChildProviderVtbl;
6337
6338interface ITextChildProvider {
6339    CONST_VTBL ITextChildProviderVtbl* lpVtbl;
6340};
6341
6342#ifdef COBJMACROS
6343#ifndef WIDL_C_INLINE_WRAPPERS
6344/*** IUnknown methods ***/
6345#define ITextChildProvider_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
6346#define ITextChildProvider_AddRef(This) (This)->lpVtbl->AddRef(This)
6347#define ITextChildProvider_Release(This) (This)->lpVtbl->Release(This)
6348/*** ITextChildProvider methods ***/
6349#define ITextChildProvider_get_TextContainer(This,pRetVal) (This)->lpVtbl->get_TextContainer(This,pRetVal)
6350#define ITextChildProvider_get_TextRange(This,pRetVal) (This)->lpVtbl->get_TextRange(This,pRetVal)
6351#else
6352/*** IUnknown methods ***/
6353static inline HRESULT ITextChildProvider_QueryInterface(ITextChildProvider* This,REFIID riid,void **ppvObject) {
6354    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
6355}
6356static inline ULONG ITextChildProvider_AddRef(ITextChildProvider* This) {
6357    return This->lpVtbl->AddRef(This);
6358}
6359static inline ULONG ITextChildProvider_Release(ITextChildProvider* This) {
6360    return This->lpVtbl->Release(This);
6361}
6362/*** ITextChildProvider methods ***/
6363static inline HRESULT ITextChildProvider_get_TextContainer(ITextChildProvider* This,IRawElementProviderSimple **pRetVal) {
6364    return This->lpVtbl->get_TextContainer(This,pRetVal);
6365}
6366static inline HRESULT ITextChildProvider_get_TextRange(ITextChildProvider* This,ITextRangeProvider **pRetVal) {
6367    return This->lpVtbl->get_TextRange(This,pRetVal);
6368}
6369#endif
6370#endif
6371
6372#endif
6373
6374
6375#endif  /* __ITextChildProvider_INTERFACE_DEFINED__ */
6376
6377/*****************************************************************************
6378 * ICustomNavigationProvider interface
6379 */
6380#ifndef __ICustomNavigationProvider_INTERFACE_DEFINED__
6381#define __ICustomNavigationProvider_INTERFACE_DEFINED__
6382
6383DEFINE_GUID(IID_ICustomNavigationProvider, 0x2062a28a, 0x8c07, 0x4b94, 0x8e,0x12, 0x70,0x37,0xc6,0x22,0xae,0xb8);
6384#if defined(__cplusplus) && !defined(CINTERFACE)
6385MIDL_INTERFACE("2062a28a-8c07-4b94-8e12-7037c622aeb8")
6386ICustomNavigationProvider : public IUnknown
6387{
6388    virtual HRESULT STDMETHODCALLTYPE Navigate(
6389        enum NavigateDirection direction,
6390        IRawElementProviderSimple **pRetVal) = 0;
6391
6392};
6393#ifdef __CRT_UUID_DECL
6394__CRT_UUID_DECL(ICustomNavigationProvider, 0x2062a28a, 0x8c07, 0x4b94, 0x8e,0x12, 0x70,0x37,0xc6,0x22,0xae,0xb8)
6395#endif
6396#else
6397typedef struct ICustomNavigationProviderVtbl {
6398    BEGIN_INTERFACE
6399
6400    /*** IUnknown methods ***/
6401    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
6402        ICustomNavigationProvider *This,
6403        REFIID riid,
6404        void **ppvObject);
6405
6406    ULONG (STDMETHODCALLTYPE *AddRef)(
6407        ICustomNavigationProvider *This);
6408
6409    ULONG (STDMETHODCALLTYPE *Release)(
6410        ICustomNavigationProvider *This);
6411
6412    /*** ICustomNavigationProvider methods ***/
6413    HRESULT (STDMETHODCALLTYPE *Navigate)(
6414        ICustomNavigationProvider *This,
6415        enum NavigateDirection direction,
6416        IRawElementProviderSimple **pRetVal);
6417
6418    END_INTERFACE
6419} ICustomNavigationProviderVtbl;
6420
6421interface ICustomNavigationProvider {
6422    CONST_VTBL ICustomNavigationProviderVtbl* lpVtbl;
6423};
6424
6425#ifdef COBJMACROS
6426#ifndef WIDL_C_INLINE_WRAPPERS
6427/*** IUnknown methods ***/
6428#define ICustomNavigationProvider_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
6429#define ICustomNavigationProvider_AddRef(This) (This)->lpVtbl->AddRef(This)
6430#define ICustomNavigationProvider_Release(This) (This)->lpVtbl->Release(This)
6431/*** ICustomNavigationProvider methods ***/
6432#define ICustomNavigationProvider_Navigate(This,direction,pRetVal) (This)->lpVtbl->Navigate(This,direction,pRetVal)
6433#else
6434/*** IUnknown methods ***/
6435static inline HRESULT ICustomNavigationProvider_QueryInterface(ICustomNavigationProvider* This,REFIID riid,void **ppvObject) {
6436    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
6437}
6438static inline ULONG ICustomNavigationProvider_AddRef(ICustomNavigationProvider* This) {
6439    return This->lpVtbl->AddRef(This);
6440}
6441static inline ULONG ICustomNavigationProvider_Release(ICustomNavigationProvider* This) {
6442    return This->lpVtbl->Release(This);
6443}
6444/*** ICustomNavigationProvider methods ***/
6445static inline HRESULT ICustomNavigationProvider_Navigate(ICustomNavigationProvider* This,enum NavigateDirection direction,IRawElementProviderSimple **pRetVal) {
6446    return This->lpVtbl->Navigate(This,direction,pRetVal);
6447}
6448#endif
6449#endif
6450
6451#endif
6452
6453
6454#endif  /* __ICustomNavigationProvider_INTERFACE_DEFINED__ */
6455
6456enum UIAutomationType {
6457    UIAutomationType_Int = 0x1,
6458    UIAutomationType_Bool = 0x2,
6459    UIAutomationType_String = 0x3,
6460    UIAutomationType_Double = 0x4,
6461    UIAutomationType_Point = 0x5,
6462    UIAutomationType_Rect = 0x6,
6463    UIAutomationType_Element = 0x7,
6464    UIAutomationType_Array = 0x10000,
6465    UIAutomationType_Out = 0x20000,
6466    UIAutomationType_IntArray = UIAutomationType_Int | UIAutomationType_Array,
6467    UIAutomationType_BoolArray = UIAutomationType_Bool | UIAutomationType_Array,
6468    UIAutomationType_StringArray = UIAutomationType_String | UIAutomationType_Array,
6469    UIAutomationType_DoubleArray = UIAutomationType_Double | UIAutomationType_Array,
6470    UIAutomationType_PointArray = UIAutomationType_Point | UIAutomationType_Array,
6471    UIAutomationType_RectArray = UIAutomationType_Rect | UIAutomationType_Array,
6472    UIAutomationType_ElementArray = UIAutomationType_Element | UIAutomationType_Array,
6473    UIAutomationType_OutInt = UIAutomationType_Int | UIAutomationType_Out,
6474    UIAutomationType_OutBool = UIAutomationType_Bool | UIAutomationType_Out,
6475    UIAutomationType_OutString = UIAutomationType_String | UIAutomationType_Out,
6476    UIAutomationType_OutDouble = UIAutomationType_Double | UIAutomationType_Out,
6477    UIAutomationType_OutPoint = UIAutomationType_Point | UIAutomationType_Out,
6478    UIAutomationType_OutRect = UIAutomationType_Rect | UIAutomationType_Out,
6479    UIAutomationType_OutElement = UIAutomationType_Element | UIAutomationType_Out,
6480    UIAutomationType_OutIntArray = (UIAutomationType_Int | UIAutomationType_Array) | UIAutomationType_Out,
6481    UIAutomationType_OutBoolArray = (UIAutomationType_Bool | UIAutomationType_Array) | UIAutomationType_Out,
6482    UIAutomationType_OutStringArray = (UIAutomationType_String | UIAutomationType_Array) | UIAutomationType_Out,
6483    UIAutomationType_OutDoubleArray = (UIAutomationType_Double | UIAutomationType_Array) | UIAutomationType_Out,
6484    UIAutomationType_OutPointArray = (UIAutomationType_Point | UIAutomationType_Array) | UIAutomationType_Out,
6485    UIAutomationType_OutRectArray = (UIAutomationType_Rect | UIAutomationType_Array) | UIAutomationType_Out,
6486    UIAutomationType_OutElementArray = (UIAutomationType_Element | UIAutomationType_Array) | UIAutomationType_Out
6487};
6488DEFINE_ENUM_FLAG_OPERATORS(UIAutomationType)
6489struct UIAutomationParameter {
6490    enum UIAutomationType type;
6491    void *pData;
6492};
6493struct UIAutomationPropertyInfo {
6494    GUID guid;
6495    LPCWSTR pProgrammaticName;
6496    enum UIAutomationType type;
6497};
6498struct UIAutomationEventInfo {
6499    GUID guid;
6500    LPCWSTR pProgrammaticName;
6501};
6502struct UIAutomationMethodInfo {
6503    LPCWSTR pProgrammaticName;
6504    WINBOOL doSetFocus;
6505    UINT cInParameters;
6506    UINT cOutParameters;
6507    enum UIAutomationType *pParameterTypes;
6508    LPCWSTR *pParameterNames;
6509};
6510/*****************************************************************************
6511 * IUIAutomationPatternInstance interface
6512 */
6513#ifndef __IUIAutomationPatternInstance_INTERFACE_DEFINED__
6514#define __IUIAutomationPatternInstance_INTERFACE_DEFINED__
6515
6516DEFINE_GUID(IID_IUIAutomationPatternInstance, 0xc03a7fe4, 0x9431, 0x409f, 0xbe,0xd8, 0xae,0x7c,0x22,0x99,0xbc,0x8d);
6517#if defined(__cplusplus) && !defined(CINTERFACE)
6518MIDL_INTERFACE("c03a7fe4-9431-409f-bed8-ae7c2299bc8d")
6519IUIAutomationPatternInstance : public IUnknown
6520{
6521    virtual HRESULT STDMETHODCALLTYPE GetProperty(
6522        UINT index,
6523        WINBOOL cached,
6524        enum UIAutomationType type,
6525        void *pPtr) = 0;
6526
6527    virtual HRESULT STDMETHODCALLTYPE CallMethod(
6528        UINT index,
6529        const struct UIAutomationParameter *pParams,
6530        UINT cParams) = 0;
6531
6532};
6533#ifdef __CRT_UUID_DECL
6534__CRT_UUID_DECL(IUIAutomationPatternInstance, 0xc03a7fe4, 0x9431, 0x409f, 0xbe,0xd8, 0xae,0x7c,0x22,0x99,0xbc,0x8d)
6535#endif
6536#else
6537typedef struct IUIAutomationPatternInstanceVtbl {
6538    BEGIN_INTERFACE
6539
6540    /*** IUnknown methods ***/
6541    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
6542        IUIAutomationPatternInstance *This,
6543        REFIID riid,
6544        void **ppvObject);
6545
6546    ULONG (STDMETHODCALLTYPE *AddRef)(
6547        IUIAutomationPatternInstance *This);
6548
6549    ULONG (STDMETHODCALLTYPE *Release)(
6550        IUIAutomationPatternInstance *This);
6551
6552    /*** IUIAutomationPatternInstance methods ***/
6553    HRESULT (STDMETHODCALLTYPE *GetProperty)(
6554        IUIAutomationPatternInstance *This,
6555        UINT index,
6556        WINBOOL cached,
6557        enum UIAutomationType type,
6558        void *pPtr);
6559
6560    HRESULT (STDMETHODCALLTYPE *CallMethod)(
6561        IUIAutomationPatternInstance *This,
6562        UINT index,
6563        const struct UIAutomationParameter *pParams,
6564        UINT cParams);
6565
6566    END_INTERFACE
6567} IUIAutomationPatternInstanceVtbl;
6568
6569interface IUIAutomationPatternInstance {
6570    CONST_VTBL IUIAutomationPatternInstanceVtbl* lpVtbl;
6571};
6572
6573#ifdef COBJMACROS
6574#ifndef WIDL_C_INLINE_WRAPPERS
6575/*** IUnknown methods ***/
6576#define IUIAutomationPatternInstance_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
6577#define IUIAutomationPatternInstance_AddRef(This) (This)->lpVtbl->AddRef(This)
6578#define IUIAutomationPatternInstance_Release(This) (This)->lpVtbl->Release(This)
6579/*** IUIAutomationPatternInstance methods ***/
6580#define IUIAutomationPatternInstance_GetProperty(This,index,cached,type,pPtr) (This)->lpVtbl->GetProperty(This,index,cached,type,pPtr)
6581#define IUIAutomationPatternInstance_CallMethod(This,index,pParams,cParams) (This)->lpVtbl->CallMethod(This,index,pParams,cParams)
6582#else
6583/*** IUnknown methods ***/
6584static inline HRESULT IUIAutomationPatternInstance_QueryInterface(IUIAutomationPatternInstance* This,REFIID riid,void **ppvObject) {
6585    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
6586}
6587static inline ULONG IUIAutomationPatternInstance_AddRef(IUIAutomationPatternInstance* This) {
6588    return This->lpVtbl->AddRef(This);
6589}
6590static inline ULONG IUIAutomationPatternInstance_Release(IUIAutomationPatternInstance* This) {
6591    return This->lpVtbl->Release(This);
6592}
6593/*** IUIAutomationPatternInstance methods ***/
6594static inline HRESULT IUIAutomationPatternInstance_GetProperty(IUIAutomationPatternInstance* This,UINT index,WINBOOL cached,enum UIAutomationType type,void *pPtr) {
6595    return This->lpVtbl->GetProperty(This,index,cached,type,pPtr);
6596}
6597static inline HRESULT IUIAutomationPatternInstance_CallMethod(IUIAutomationPatternInstance* This,UINT index,const struct UIAutomationParameter *pParams,UINT cParams) {
6598    return This->lpVtbl->CallMethod(This,index,pParams,cParams);
6599}
6600#endif
6601#endif
6602
6603#endif
6604
6605
6606#endif  /* __IUIAutomationPatternInstance_INTERFACE_DEFINED__ */
6607
6608/*****************************************************************************
6609 * IUIAutomationPatternHandler interface
6610 */
6611#ifndef __IUIAutomationPatternHandler_INTERFACE_DEFINED__
6612#define __IUIAutomationPatternHandler_INTERFACE_DEFINED__
6613
6614DEFINE_GUID(IID_IUIAutomationPatternHandler, 0xd97022f3, 0xa947, 0x465e, 0x8b,0x2a, 0xac,0x43,0x15,0xfa,0x54,0xe8);
6615#if defined(__cplusplus) && !defined(CINTERFACE)
6616MIDL_INTERFACE("d97022f3-a947-465e-8b2a-ac4315fa54e8")
6617IUIAutomationPatternHandler : public IUnknown
6618{
6619    virtual HRESULT STDMETHODCALLTYPE CreateClientWrapper(
6620        IUIAutomationPatternInstance *pPatternInstance,
6621        IUnknown **pClientWrapper) = 0;
6622
6623    virtual HRESULT STDMETHODCALLTYPE Dispatch(
6624        IUnknown *pTarget,
6625        UINT index,
6626        const struct UIAutomationParameter *pParams,
6627        UINT cParams) = 0;
6628
6629};
6630#ifdef __CRT_UUID_DECL
6631__CRT_UUID_DECL(IUIAutomationPatternHandler, 0xd97022f3, 0xa947, 0x465e, 0x8b,0x2a, 0xac,0x43,0x15,0xfa,0x54,0xe8)
6632#endif
6633#else
6634typedef struct IUIAutomationPatternHandlerVtbl {
6635    BEGIN_INTERFACE
6636
6637    /*** IUnknown methods ***/
6638    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
6639        IUIAutomationPatternHandler *This,
6640        REFIID riid,
6641        void **ppvObject);
6642
6643    ULONG (STDMETHODCALLTYPE *AddRef)(
6644        IUIAutomationPatternHandler *This);
6645
6646    ULONG (STDMETHODCALLTYPE *Release)(
6647        IUIAutomationPatternHandler *This);
6648
6649    /*** IUIAutomationPatternHandler methods ***/
6650    HRESULT (STDMETHODCALLTYPE *CreateClientWrapper)(
6651        IUIAutomationPatternHandler *This,
6652        IUIAutomationPatternInstance *pPatternInstance,
6653        IUnknown **pClientWrapper);
6654
6655    HRESULT (STDMETHODCALLTYPE *Dispatch)(
6656        IUIAutomationPatternHandler *This,
6657        IUnknown *pTarget,
6658        UINT index,
6659        const struct UIAutomationParameter *pParams,
6660        UINT cParams);
6661
6662    END_INTERFACE
6663} IUIAutomationPatternHandlerVtbl;
6664
6665interface IUIAutomationPatternHandler {
6666    CONST_VTBL IUIAutomationPatternHandlerVtbl* lpVtbl;
6667};
6668
6669#ifdef COBJMACROS
6670#ifndef WIDL_C_INLINE_WRAPPERS
6671/*** IUnknown methods ***/
6672#define IUIAutomationPatternHandler_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
6673#define IUIAutomationPatternHandler_AddRef(This) (This)->lpVtbl->AddRef(This)
6674#define IUIAutomationPatternHandler_Release(This) (This)->lpVtbl->Release(This)
6675/*** IUIAutomationPatternHandler methods ***/
6676#define IUIAutomationPatternHandler_CreateClientWrapper(This,pPatternInstance,pClientWrapper) (This)->lpVtbl->CreateClientWrapper(This,pPatternInstance,pClientWrapper)
6677#define IUIAutomationPatternHandler_Dispatch(This,pTarget,index,pParams,cParams) (This)->lpVtbl->Dispatch(This,pTarget,index,pParams,cParams)
6678#else
6679/*** IUnknown methods ***/
6680static inline HRESULT IUIAutomationPatternHandler_QueryInterface(IUIAutomationPatternHandler* This,REFIID riid,void **ppvObject) {
6681    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
6682}
6683static inline ULONG IUIAutomationPatternHandler_AddRef(IUIAutomationPatternHandler* This) {
6684    return This->lpVtbl->AddRef(This);
6685}
6686static inline ULONG IUIAutomationPatternHandler_Release(IUIAutomationPatternHandler* This) {
6687    return This->lpVtbl->Release(This);
6688}
6689/*** IUIAutomationPatternHandler methods ***/
6690static inline HRESULT IUIAutomationPatternHandler_CreateClientWrapper(IUIAutomationPatternHandler* This,IUIAutomationPatternInstance *pPatternInstance,IUnknown **pClientWrapper) {
6691    return This->lpVtbl->CreateClientWrapper(This,pPatternInstance,pClientWrapper);
6692}
6693static inline HRESULT IUIAutomationPatternHandler_Dispatch(IUIAutomationPatternHandler* This,IUnknown *pTarget,UINT index,const struct UIAutomationParameter *pParams,UINT cParams) {
6694    return This->lpVtbl->Dispatch(This,pTarget,index,pParams,cParams);
6695}
6696#endif
6697#endif
6698
6699#endif
6700
6701
6702#endif  /* __IUIAutomationPatternHandler_INTERFACE_DEFINED__ */
6703
6704struct UIAutomationPatternInfo {
6705    GUID guid;
6706    LPCWSTR pProgrammaticName;
6707    GUID providerInterfaceId;
6708    GUID clientInterfaceId;
6709    UINT cProperties;
6710    struct UIAutomationPropertyInfo *pProperties;
6711    UINT cMethods;
6712    struct UIAutomationMethodInfo *pMethods;
6713    UINT cEvents;
6714    struct UIAutomationEventInfo *pEvents;
6715    IUIAutomationPatternHandler *pPatternHandler;
6716};
6717/*****************************************************************************
6718 * IUIAutomationRegistrar interface
6719 */
6720#ifndef __IUIAutomationRegistrar_INTERFACE_DEFINED__
6721#define __IUIAutomationRegistrar_INTERFACE_DEFINED__
6722
6723DEFINE_GUID(IID_IUIAutomationRegistrar, 0x8609c4ec, 0x4a1a, 0x4d88, 0xa3,0x57, 0x5a,0x66,0xe0,0x60,0xe1,0xcf);
6724#if defined(__cplusplus) && !defined(CINTERFACE)
6725MIDL_INTERFACE("8609c4ec-4a1a-4d88-a357-5a66e060e1cf")
6726IUIAutomationRegistrar : public IUnknown
6727{
6728    virtual HRESULT STDMETHODCALLTYPE RegisterProperty(
6729        const struct UIAutomationPropertyInfo *property,
6730        PROPERTYID *propertyId) = 0;
6731
6732    virtual HRESULT STDMETHODCALLTYPE RegisterEvent(
6733        const struct UIAutomationEventInfo *event,
6734        EVENTID *eventId) = 0;
6735
6736    virtual HRESULT STDMETHODCALLTYPE RegisterPattern(
6737        const struct UIAutomationPatternInfo *pattern,
6738        PATTERNID *pPatternId,
6739        PROPERTYID *pPatternAvailablePropertyId,
6740        UINT propertyIdCount,
6741        PROPERTYID *pPropertyIds,
6742        UINT eventIdCount,
6743        EVENTID *pEventIds) = 0;
6744
6745};
6746#ifdef __CRT_UUID_DECL
6747__CRT_UUID_DECL(IUIAutomationRegistrar, 0x8609c4ec, 0x4a1a, 0x4d88, 0xa3,0x57, 0x5a,0x66,0xe0,0x60,0xe1,0xcf)
6748#endif
6749#else
6750typedef struct IUIAutomationRegistrarVtbl {
6751    BEGIN_INTERFACE
6752
6753    /*** IUnknown methods ***/
6754    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
6755        IUIAutomationRegistrar *This,
6756        REFIID riid,
6757        void **ppvObject);
6758
6759    ULONG (STDMETHODCALLTYPE *AddRef)(
6760        IUIAutomationRegistrar *This);
6761
6762    ULONG (STDMETHODCALLTYPE *Release)(
6763        IUIAutomationRegistrar *This);
6764
6765    /*** IUIAutomationRegistrar methods ***/
6766    HRESULT (STDMETHODCALLTYPE *RegisterProperty)(
6767        IUIAutomationRegistrar *This,
6768        const struct UIAutomationPropertyInfo *property,
6769        PROPERTYID *propertyId);
6770
6771    HRESULT (STDMETHODCALLTYPE *RegisterEvent)(
6772        IUIAutomationRegistrar *This,
6773        const struct UIAutomationEventInfo *event,
6774        EVENTID *eventId);
6775
6776    HRESULT (STDMETHODCALLTYPE *RegisterPattern)(
6777        IUIAutomationRegistrar *This,
6778        const struct UIAutomationPatternInfo *pattern,
6779        PATTERNID *pPatternId,
6780        PROPERTYID *pPatternAvailablePropertyId,
6781        UINT propertyIdCount,
6782        PROPERTYID *pPropertyIds,
6783        UINT eventIdCount,
6784        EVENTID *pEventIds);
6785
6786    END_INTERFACE
6787} IUIAutomationRegistrarVtbl;
6788
6789interface IUIAutomationRegistrar {
6790    CONST_VTBL IUIAutomationRegistrarVtbl* lpVtbl;
6791};
6792
6793#ifdef COBJMACROS
6794#ifndef WIDL_C_INLINE_WRAPPERS
6795/*** IUnknown methods ***/
6796#define IUIAutomationRegistrar_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
6797#define IUIAutomationRegistrar_AddRef(This) (This)->lpVtbl->AddRef(This)
6798#define IUIAutomationRegistrar_Release(This) (This)->lpVtbl->Release(This)
6799/*** IUIAutomationRegistrar methods ***/
6800#define IUIAutomationRegistrar_RegisterProperty(This,property,propertyId) (This)->lpVtbl->RegisterProperty(This,property,propertyId)
6801#define IUIAutomationRegistrar_RegisterEvent(This,event,eventId) (This)->lpVtbl->RegisterEvent(This,event,eventId)
6802#define IUIAutomationRegistrar_RegisterPattern(This,pattern,pPatternId,pPatternAvailablePropertyId,propertyIdCount,pPropertyIds,eventIdCount,pEventIds) (This)->lpVtbl->RegisterPattern(This,pattern,pPatternId,pPatternAvailablePropertyId,propertyIdCount,pPropertyIds,eventIdCount,pEventIds)
6803#else
6804/*** IUnknown methods ***/
6805static inline HRESULT IUIAutomationRegistrar_QueryInterface(IUIAutomationRegistrar* This,REFIID riid,void **ppvObject) {
6806    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
6807}
6808static inline ULONG IUIAutomationRegistrar_AddRef(IUIAutomationRegistrar* This) {
6809    return This->lpVtbl->AddRef(This);
6810}
6811static inline ULONG IUIAutomationRegistrar_Release(IUIAutomationRegistrar* This) {
6812    return This->lpVtbl->Release(This);
6813}
6814/*** IUIAutomationRegistrar methods ***/
6815static inline HRESULT IUIAutomationRegistrar_RegisterProperty(IUIAutomationRegistrar* This,const struct UIAutomationPropertyInfo *property,PROPERTYID *propertyId) {
6816    return This->lpVtbl->RegisterProperty(This,property,propertyId);
6817}
6818static inline HRESULT IUIAutomationRegistrar_RegisterEvent(IUIAutomationRegistrar* This,const struct UIAutomationEventInfo *event,EVENTID *eventId) {
6819    return This->lpVtbl->RegisterEvent(This,event,eventId);
6820}
6821static inline HRESULT IUIAutomationRegistrar_RegisterPattern(IUIAutomationRegistrar* This,const struct UIAutomationPatternInfo *pattern,PATTERNID *pPatternId,PROPERTYID *pPatternAvailablePropertyId,UINT propertyIdCount,PROPERTYID *pPropertyIds,UINT eventIdCount,EVENTID *pEventIds) {
6822    return This->lpVtbl->RegisterPattern(This,pattern,pPatternId,pPatternAvailablePropertyId,propertyIdCount,pPropertyIds,eventIdCount,pEventIds);
6823}
6824#endif
6825#endif
6826
6827#endif
6828
6829
6830#endif  /* __IUIAutomationRegistrar_INTERFACE_DEFINED__ */
6831
6832/*****************************************************************************
6833 * CUIAutomationRegistrar coclass
6834 */
6835
6836DEFINE_GUID(CLSID_CUIAutomationRegistrar, 0x6e29fabf, 0x9977, 0x42d1, 0x8d,0x0e, 0xca,0x7e,0x61,0xad,0x87,0xe6);
6837
6838#ifdef __cplusplus
6839class DECLSPEC_UUID("6e29fabf-9977-42d1-8d0e-ca7e61ad87e6") CUIAutomationRegistrar;
6840#ifdef __CRT_UUID_DECL
6841__CRT_UUID_DECL(CUIAutomationRegistrar, 0x6e29fabf, 0x9977, 0x42d1, 0x8d,0x0e, 0xca,0x7e,0x61,0xad,0x87,0xe6)
6842#endif
6843#endif
6844
6845#endif /* __UIA_LIBRARY_DEFINED__ */
6846/* Begin additional prototypes for all interfaces */
6847
6848ULONG           __RPC_USER VARIANT_UserSize     (ULONG *, ULONG, VARIANT *);
6849unsigned char * __RPC_USER VARIANT_UserMarshal  (ULONG *, unsigned char *, VARIANT *);
6850unsigned char * __RPC_USER VARIANT_UserUnmarshal(ULONG *, unsigned char *, VARIANT *);
6851void            __RPC_USER VARIANT_UserFree     (ULONG *, VARIANT *);
6852ULONG           __RPC_USER HWND_UserSize     (ULONG *, ULONG, HWND *);
6853unsigned char * __RPC_USER HWND_UserMarshal  (ULONG *, unsigned char *, HWND *);
6854unsigned char * __RPC_USER HWND_UserUnmarshal(ULONG *, unsigned char *, HWND *);
6855void            __RPC_USER HWND_UserFree     (ULONG *, HWND *);
6856ULONG           __RPC_USER BSTR_UserSize     (ULONG *, ULONG, BSTR *);
6857unsigned char * __RPC_USER BSTR_UserMarshal  (ULONG *, unsigned char *, BSTR *);
6858unsigned char * __RPC_USER BSTR_UserUnmarshal(ULONG *, unsigned char *, BSTR *);
6859void            __RPC_USER BSTR_UserFree     (ULONG *, BSTR *);
6860
6861/* End additional prototypes */
6862
6863#ifdef __cplusplus
6864}
6865#endif
6866
6867#endif /* __uiautomationcore_h__ */