text: 
  
  /* this ALWAYS GENERATED file contains the definitions for the interfaces */
  
  
   /* File created by MIDL compiler version 8.01.0626 */
  /* @@MIDL_FILE_HEADING(  ) */
  
  
  
  /* verify that the <rpcndr.h> version is high enough to compile this file*/
  #ifndef __REQUIRED_RPCNDR_H_VERSION__
  #define __REQUIRED_RPCNDR_H_VERSION__ 500
  #endif
  
  /* verify that the <rpcsal.h> version is high enough to compile this file*/
  #ifndef __REQUIRED_RPCSAL_H_VERSION__
  #define __REQUIRED_RPCSAL_H_VERSION__ 100
  #endif
  
  #include "rpc.h"
  #include "rpcndr.h"
  
  #ifndef __RPCNDR_H_VERSION__
  #error this stub requires an updated version of <rpcndr.h>
  #endif /* __RPCNDR_H_VERSION__ */
  
  
  #ifndef __uiautomationcore_h__
  #define __uiautomationcore_h__
  
  #if defined(_MSC_VER) && (_MSC_VER >= 1020)
  #pragma once
  #endif
  
  #ifndef DECLSPEC_XFGVIRT
  #if _CONTROL_FLOW_GUARD_XFG
  #define DECLSPEC_XFGVIRT(base, func) __declspec(xfg_virtual(base, func))
  #else
  #define DECLSPEC_XFGVIRT(base, func)
  #endif
  #endif
  
  /* Forward Declarations */ 
  
  #ifndef __IRawElementProviderSimple_FWD_DEFINED__
  #define __IRawElementProviderSimple_FWD_DEFINED__
  typedef interface IRawElementProviderSimple IRawElementProviderSimple;
  
  #endif 	/* __IRawElementProviderSimple_FWD_DEFINED__ */
  
  
  #ifndef __IAccessibleEx_FWD_DEFINED__
  #define __IAccessibleEx_FWD_DEFINED__
  typedef interface IAccessibleEx IAccessibleEx;
  
  #endif 	/* __IAccessibleEx_FWD_DEFINED__ */
  
  
  #ifndef __IRawElementProviderSimple2_FWD_DEFINED__
  #define __IRawElementProviderSimple2_FWD_DEFINED__
  typedef interface IRawElementProviderSimple2 IRawElementProviderSimple2;
  
  #endif 	/* __IRawElementProviderSimple2_FWD_DEFINED__ */
  
  
  #ifndef __IRawElementProviderSimple3_FWD_DEFINED__
  #define __IRawElementProviderSimple3_FWD_DEFINED__
  typedef interface IRawElementProviderSimple3 IRawElementProviderSimple3;
  
  #endif 	/* __IRawElementProviderSimple3_FWD_DEFINED__ */
  
  
  #ifndef __IRawElementProviderFragmentRoot_FWD_DEFINED__
  #define __IRawElementProviderFragmentRoot_FWD_DEFINED__
  typedef interface IRawElementProviderFragmentRoot IRawElementProviderFragmentRoot;
  
  #endif 	/* __IRawElementProviderFragmentRoot_FWD_DEFINED__ */
  
  
  #ifndef __IRawElementProviderFragment_FWD_DEFINED__
  #define __IRawElementProviderFragment_FWD_DEFINED__
  typedef interface IRawElementProviderFragment IRawElementProviderFragment;
  
  #endif 	/* __IRawElementProviderFragment_FWD_DEFINED__ */
  
  
  #ifndef __IRawElementProviderAdviseEvents_FWD_DEFINED__
  #define __IRawElementProviderAdviseEvents_FWD_DEFINED__
  typedef interface IRawElementProviderAdviseEvents IRawElementProviderAdviseEvents;
  
  #endif 	/* __IRawElementProviderAdviseEvents_FWD_DEFINED__ */
  
  
  #ifndef __IRawElementProviderHwndOverride_FWD_DEFINED__
  #define __IRawElementProviderHwndOverride_FWD_DEFINED__
  typedef interface IRawElementProviderHwndOverride IRawElementProviderHwndOverride;
  
  #endif 	/* __IRawElementProviderHwndOverride_FWD_DEFINED__ */
  
  
  #ifndef __IProxyProviderWinEventSink_FWD_DEFINED__
  #define __IProxyProviderWinEventSink_FWD_DEFINED__
  typedef interface IProxyProviderWinEventSink IProxyProviderWinEventSink;
  
  #endif 	/* __IProxyProviderWinEventSink_FWD_DEFINED__ */
  
  
  #ifndef __IProxyProviderWinEventHandler_FWD_DEFINED__
  #define __IProxyProviderWinEventHandler_FWD_DEFINED__
  typedef interface IProxyProviderWinEventHandler IProxyProviderWinEventHandler;
  
  #endif 	/* __IProxyProviderWinEventHandler_FWD_DEFINED__ */
  
  
  #ifndef __IRawElementProviderWindowlessSite_FWD_DEFINED__
  #define __IRawElementProviderWindowlessSite_FWD_DEFINED__
  typedef interface IRawElementProviderWindowlessSite IRawElementProviderWindowlessSite;
  
  #endif 	/* __IRawElementProviderWindowlessSite_FWD_DEFINED__ */
  
  
  #ifndef __IAccessibleHostingElementProviders_FWD_DEFINED__
  #define __IAccessibleHostingElementProviders_FWD_DEFINED__
  typedef interface IAccessibleHostingElementProviders IAccessibleHostingElementProviders;
  
  #endif 	/* __IAccessibleHostingElementProviders_FWD_DEFINED__ */
  
  
  #ifndef __IRawElementProviderHostingAccessibles_FWD_DEFINED__
  #define __IRawElementProviderHostingAccessibles_FWD_DEFINED__
  typedef interface IRawElementProviderHostingAccessibles IRawElementProviderHostingAccessibles;
  
  #endif 	/* __IRawElementProviderHostingAccessibles_FWD_DEFINED__ */
  
  
  #ifndef __IDockProvider_FWD_DEFINED__
  #define __IDockProvider_FWD_DEFINED__
  typedef interface IDockProvider IDockProvider;
  
  #endif 	/* __IDockProvider_FWD_DEFINED__ */
  
  
  #ifndef __IExpandCollapseProvider_FWD_DEFINED__
  #define __IExpandCollapseProvider_FWD_DEFINED__
  typedef interface IExpandCollapseProvider IExpandCollapseProvider;
  
  #endif 	/* __IExpandCollapseProvider_FWD_DEFINED__ */
  
  
  #ifndef __IGridProvider_FWD_DEFINED__
  #define __IGridProvider_FWD_DEFINED__
  typedef interface IGridProvider IGridProvider;
  
  #endif 	/* __IGridProvider_FWD_DEFINED__ */
  
  
  #ifndef __IGridItemProvider_FWD_DEFINED__
  #define __IGridItemProvider_FWD_DEFINED__
  typedef interface IGridItemProvider IGridItemProvider;
  
  #endif 	/* __IGridItemProvider_FWD_DEFINED__ */
  
  
  #ifndef __IInvokeProvider_FWD_DEFINED__
  #define __IInvokeProvider_FWD_DEFINED__
  typedef interface IInvokeProvider IInvokeProvider;
  
  #endif 	/* __IInvokeProvider_FWD_DEFINED__ */
  
  
  #ifndef __IMultipleViewProvider_FWD_DEFINED__
  #define __IMultipleViewProvider_FWD_DEFINED__
  typedef interface IMultipleViewProvider IMultipleViewProvider;
  
  #endif 	/* __IMultipleViewProvider_FWD_DEFINED__ */
  
  
  #ifndef __IRangeValueProvider_FWD_DEFINED__
  #define __IRangeValueProvider_FWD_DEFINED__
  typedef interface IRangeValueProvider IRangeValueProvider;
  
  #endif 	/* __IRangeValueProvider_FWD_DEFINED__ */
  
  
  #ifndef __IScrollItemProvider_FWD_DEFINED__
  #define __IScrollItemProvider_FWD_DEFINED__
  typedef interface IScrollItemProvider IScrollItemProvider;
  
  #endif 	/* __IScrollItemProvider_FWD_DEFINED__ */
  
  
  #ifndef __ISelectionProvider_FWD_DEFINED__
  #define __ISelectionProvider_FWD_DEFINED__
  typedef interface ISelectionProvider ISelectionProvider;
  
  #endif 	/* __ISelectionProvider_FWD_DEFINED__ */
  
  
  #ifndef __ISelectionProvider2_FWD_DEFINED__
  #define __ISelectionProvider2_FWD_DEFINED__
  typedef interface ISelectionProvider2 ISelectionProvider2;
  
  #endif 	/* __ISelectionProvider2_FWD_DEFINED__ */
  
  
  #ifndef __IScrollProvider_FWD_DEFINED__
  #define __IScrollProvider_FWD_DEFINED__
  typedef interface IScrollProvider IScrollProvider;
  
  #endif 	/* __IScrollProvider_FWD_DEFINED__ */
  
  
  #ifndef __ISelectionItemProvider_FWD_DEFINED__
  #define __ISelectionItemProvider_FWD_DEFINED__
  typedef interface ISelectionItemProvider ISelectionItemProvider;
  
  #endif 	/* __ISelectionItemProvider_FWD_DEFINED__ */
  
  
  #ifndef __ISynchronizedInputProvider_FWD_DEFINED__
  #define __ISynchronizedInputProvider_FWD_DEFINED__
  typedef interface ISynchronizedInputProvider ISynchronizedInputProvider;
  
  #endif 	/* __ISynchronizedInputProvider_FWD_DEFINED__ */
  
  
  #ifndef __ITableProvider_FWD_DEFINED__
  #define __ITableProvider_FWD_DEFINED__
  typedef interface ITableProvider ITableProvider;
  
  #endif 	/* __ITableProvider_FWD_DEFINED__ */
  
  
  #ifndef __ITableItemProvider_FWD_DEFINED__
  #define __ITableItemProvider_FWD_DEFINED__
  typedef interface ITableItemProvider ITableItemProvider;
  
  #endif 	/* __ITableItemProvider_FWD_DEFINED__ */
  
  
  #ifndef __IToggleProvider_FWD_DEFINED__
  #define __IToggleProvider_FWD_DEFINED__
  typedef interface IToggleProvider IToggleProvider;
  
  #endif 	/* __IToggleProvider_FWD_DEFINED__ */
  
  
  #ifndef __ITransformProvider_FWD_DEFINED__
  #define __ITransformProvider_FWD_DEFINED__
  typedef interface ITransformProvider ITransformProvider;
  
  #endif 	/* __ITransformProvider_FWD_DEFINED__ */
  
  
  #ifndef __IValueProvider_FWD_DEFINED__
  #define __IValueProvider_FWD_DEFINED__
  typedef interface IValueProvider IValueProvider;
  
  #endif 	/* __IValueProvider_FWD_DEFINED__ */
  
  
  #ifndef __IWindowProvider_FWD_DEFINED__
  #define __IWindowProvider_FWD_DEFINED__
  typedef interface IWindowProvider IWindowProvider;
  
  #endif 	/* __IWindowProvider_FWD_DEFINED__ */
  
  
  #ifndef __ILegacyIAccessibleProvider_FWD_DEFINED__
  #define __ILegacyIAccessibleProvider_FWD_DEFINED__
  typedef interface ILegacyIAccessibleProvider ILegacyIAccessibleProvider;
  
  #endif 	/* __ILegacyIAccessibleProvider_FWD_DEFINED__ */
  
  
  #ifndef __IItemContainerProvider_FWD_DEFINED__
  #define __IItemContainerProvider_FWD_DEFINED__
  typedef interface IItemContainerProvider IItemContainerProvider;
  
  #endif 	/* __IItemContainerProvider_FWD_DEFINED__ */
  
  
  #ifndef __IVirtualizedItemProvider_FWD_DEFINED__
  #define __IVirtualizedItemProvider_FWD_DEFINED__
  typedef interface IVirtualizedItemProvider IVirtualizedItemProvider;
  
  #endif 	/* __IVirtualizedItemProvider_FWD_DEFINED__ */
  
  
  #ifndef __IObjectModelProvider_FWD_DEFINED__
  #define __IObjectModelProvider_FWD_DEFINED__
  typedef interface IObjectModelProvider IObjectModelProvider;
  
  #endif 	/* __IObjectModelProvider_FWD_DEFINED__ */
  
  
  #ifndef __IAnnotationProvider_FWD_DEFINED__
  #define __IAnnotationProvider_FWD_DEFINED__
  typedef interface IAnnotationProvider IAnnotationProvider;
  
  #endif 	/* __IAnnotationProvider_FWD_DEFINED__ */
  
  
  #ifndef __IStylesProvider_FWD_DEFINED__
  #define __IStylesProvider_FWD_DEFINED__
  typedef interface IStylesProvider IStylesProvider;
  
  #endif 	/* __IStylesProvider_FWD_DEFINED__ */
  
  
  #ifndef __ISpreadsheetProvider_FWD_DEFINED__
  #define __ISpreadsheetProvider_FWD_DEFINED__
  typedef interface ISpreadsheetProvider ISpreadsheetProvider;
  
  #endif 	/* __ISpreadsheetProvider_FWD_DEFINED__ */
  
  
  #ifndef __ISpreadsheetItemProvider_FWD_DEFINED__
  #define __ISpreadsheetItemProvider_FWD_DEFINED__
  typedef interface ISpreadsheetItemProvider ISpreadsheetItemProvider;
  
  #endif 	/* __ISpreadsheetItemProvider_FWD_DEFINED__ */
  
  
  #ifndef __ITransformProvider2_FWD_DEFINED__
  #define __ITransformProvider2_FWD_DEFINED__
  typedef interface ITransformProvider2 ITransformProvider2;
  
  #endif 	/* __ITransformProvider2_FWD_DEFINED__ */
  
  
  #ifndef __IDragProvider_FWD_DEFINED__
  #define __IDragProvider_FWD_DEFINED__
  typedef interface IDragProvider IDragProvider;
  
  #endif 	/* __IDragProvider_FWD_DEFINED__ */
  
  
  #ifndef __IDropTargetProvider_FWD_DEFINED__
  #define __IDropTargetProvider_FWD_DEFINED__
  typedef interface IDropTargetProvider IDropTargetProvider;
  
  #endif 	/* __IDropTargetProvider_FWD_DEFINED__ */
  
  
  #ifndef __ITextRangeProvider_FWD_DEFINED__
  #define __ITextRangeProvider_FWD_DEFINED__
  typedef interface ITextRangeProvider ITextRangeProvider;
  
  #endif 	/* __ITextRangeProvider_FWD_DEFINED__ */
  
  
  #ifndef __ITextProvider_FWD_DEFINED__
  #define __ITextProvider_FWD_DEFINED__
  typedef interface ITextProvider ITextProvider;
  
  #endif 	/* __ITextProvider_FWD_DEFINED__ */
  
  
  #ifndef __ITextProvider2_FWD_DEFINED__
  #define __ITextProvider2_FWD_DEFINED__
  typedef interface ITextProvider2 ITextProvider2;
  
  #endif 	/* __ITextProvider2_FWD_DEFINED__ */
  
  
  #ifndef __ITextEditProvider_FWD_DEFINED__
  #define __ITextEditProvider_FWD_DEFINED__
  typedef interface ITextEditProvider ITextEditProvider;
  
  #endif 	/* __ITextEditProvider_FWD_DEFINED__ */
  
  
  #ifndef __ITextRangeProvider2_FWD_DEFINED__
  #define __ITextRangeProvider2_FWD_DEFINED__
  typedef interface ITextRangeProvider2 ITextRangeProvider2;
  
  #endif 	/* __ITextRangeProvider2_FWD_DEFINED__ */
  
  
  #ifndef __ITextChildProvider_FWD_DEFINED__
  #define __ITextChildProvider_FWD_DEFINED__
  typedef interface ITextChildProvider ITextChildProvider;
  
  #endif 	/* __ITextChildProvider_FWD_DEFINED__ */
  
  
  #ifndef __ICustomNavigationProvider_FWD_DEFINED__
  #define __ICustomNavigationProvider_FWD_DEFINED__
  typedef interface ICustomNavigationProvider ICustomNavigationProvider;
  
  #endif 	/* __ICustomNavigationProvider_FWD_DEFINED__ */
  
  
  #ifndef __IUIAutomationPatternInstance_FWD_DEFINED__
  #define __IUIAutomationPatternInstance_FWD_DEFINED__
  typedef interface IUIAutomationPatternInstance IUIAutomationPatternInstance;
  
  #endif 	/* __IUIAutomationPatternInstance_FWD_DEFINED__ */
  
  
  #ifndef __IUIAutomationPatternHandler_FWD_DEFINED__
  #define __IUIAutomationPatternHandler_FWD_DEFINED__
  typedef interface IUIAutomationPatternHandler IUIAutomationPatternHandler;
  
  #endif 	/* __IUIAutomationPatternHandler_FWD_DEFINED__ */
  
  
  #ifndef __IUIAutomationRegistrar_FWD_DEFINED__
  #define __IUIAutomationRegistrar_FWD_DEFINED__
  typedef interface IUIAutomationRegistrar IUIAutomationRegistrar;
  
  #endif 	/* __IUIAutomationRegistrar_FWD_DEFINED__ */
  
  
  #ifndef __CUIAutomationRegistrar_FWD_DEFINED__
  #define __CUIAutomationRegistrar_FWD_DEFINED__
  
  #ifdef __cplusplus
  typedef class CUIAutomationRegistrar CUIAutomationRegistrar;
  #else
  typedef struct CUIAutomationRegistrar CUIAutomationRegistrar;
  #endif /* __cplusplus */
  
  #endif 	/* __CUIAutomationRegistrar_FWD_DEFINED__ */
  
  
  /* header files for imported files */
  #include "oaidl.h"
  #include "oleacc.h"
  
  #ifdef __cplusplus
  extern "C"{
  #endif 
  
  
  /* interface __MIDL_itf_uiautomationcore_0000_0000 */
  /* [local] */ 
  
  // -------------------------------------------------------------
  // UIAutomationCore.H
  //
  // UIAutomation interface definitions and related types and enums
  // (Generated from UIAutomationCore.idl)
  //
  // Copyright (c) Microsoft Corporation. All rights reserved.
  // -------------------------------------------------------------
  
  enum NavigateDirection
      {
          NavigateDirection_Parent	= 0,
          NavigateDirection_NextSibling	= 1,
          NavigateDirection_PreviousSibling	= 2,
          NavigateDirection_FirstChild	= 3,
          NavigateDirection_LastChild	= 4
      } ;
  
  enum ProviderOptions
      {
          ProviderOptions_ClientSideProvider	= 0x1,
          ProviderOptions_ServerSideProvider	= 0x2,
          ProviderOptions_NonClientAreaProvider	= 0x4,
          ProviderOptions_OverrideProvider	= 0x8,
          ProviderOptions_ProviderOwnsSetFocus	= 0x10,
          ProviderOptions_UseComThreading	= 0x20,
          ProviderOptions_RefuseNonClientSupport	= 0x40,
          ProviderOptions_HasNativeIAccessible	= 0x80,
          ProviderOptions_UseClientCoordinates	= 0x100
      } ;
  DEFINE_ENUM_FLAG_OPERATORS(ProviderOptions)
  
  enum StructureChangeType
      {
          StructureChangeType_ChildAdded	= 0,
          StructureChangeType_ChildRemoved	= ( StructureChangeType_ChildAdded + 1 ) ,
          StructureChangeType_ChildrenInvalidated	= ( StructureChangeType_ChildRemoved + 1 ) ,
          StructureChangeType_ChildrenBulkAdded	= ( StructureChangeType_ChildrenInvalidated + 1 ) ,
          StructureChangeType_ChildrenBulkRemoved	= ( StructureChangeType_ChildrenBulkAdded + 1 ) ,
          StructureChangeType_ChildrenReordered	= ( StructureChangeType_ChildrenBulkRemoved + 1 ) 
      } ;
  
  enum TextEditChangeType
      {
          TextEditChangeType_None	= 0,
          TextEditChangeType_AutoCorrect	= 1,
          TextEditChangeType_Composition	= 2,
          TextEditChangeType_CompositionFinalized	= 3,
          TextEditChangeType_AutoComplete	= 4
      } ;
  
  enum OrientationType
      {
          OrientationType_None	= 0,
          OrientationType_Horizontal	= 1,
          OrientationType_Vertical	= 2
      } ;
  
  enum DockPosition
      {
          DockPosition_Top	= 0,
          DockPosition_Left	= 1,
          DockPosition_Bottom	= 2,
          DockPosition_Right	= 3,
          DockPosition_Fill	= 4,
          DockPosition_None	= 5
      } ;
  
  enum ExpandCollapseState
      {
          ExpandCollapseState_Collapsed	= 0,
          ExpandCollapseState_Expanded	= 1,
          ExpandCollapseState_PartiallyExpanded	= 2,
          ExpandCollapseState_LeafNode	= 3
      } ;
  
  enum ScrollAmount
      {
          ScrollAmount_LargeDecrement	= 0,
          ScrollAmount_SmallDecrement	= 1,
          ScrollAmount_NoAmount	= 2,
          ScrollAmount_LargeIncrement	= 3,
          ScrollAmount_SmallIncrement	= 4
      } ;
  
  enum RowOrColumnMajor
      {
          RowOrColumnMajor_RowMajor	= 0,
          RowOrColumnMajor_ColumnMajor	= 1,
          RowOrColumnMajor_Indeterminate	= 2
      } ;
  
  enum ToggleState
      {
          ToggleState_Off	= 0,
          ToggleState_On	= 1,
          ToggleState_Indeterminate	= 2
      } ;
  
  enum WindowVisualState
      {
          WindowVisualState_Normal	= 0,
          WindowVisualState_Maximized	= 1,
          WindowVisualState_Minimized	= 2
      } ;
  
  enum SynchronizedInputType
      {
          SynchronizedInputType_KeyUp	= 0x1,
          SynchronizedInputType_KeyDown	= 0x2,
          SynchronizedInputType_LeftMouseUp	= 0x4,
          SynchronizedInputType_LeftMouseDown	= 0x8,
          SynchronizedInputType_RightMouseUp	= 0x10,
          SynchronizedInputType_RightMouseDown	= 0x20
      } ;
  DEFINE_ENUM_FLAG_OPERATORS(SynchronizedInputType)
  
  enum WindowInteractionState
      {
          WindowInteractionState_Running	= 0,
          WindowInteractionState_Closing	= 1,
          WindowInteractionState_ReadyForUserInteraction	= 2,
          WindowInteractionState_BlockedByModalWindow	= 3,
          WindowInteractionState_NotResponding	= 4
      } ;
  
  enum SayAsInterpretAs
      {
          SayAsInterpretAs_None	= 0,
          SayAsInterpretAs_Spell	= 1,
          SayAsInterpretAs_Cardinal	= 2,
          SayAsInterpretAs_Ordinal	= 3,
          SayAsInterpretAs_Number	= 4,
          SayAsInterpretAs_Date	= 5,
          SayAsInterpretAs_Time	= 6,
          SayAsInterpretAs_Telephone	= 7,
          SayAsInterpretAs_Currency	= 8,
          SayAsInterpretAs_Net	= 9,
          SayAsInterpretAs_Url	= 10,
          SayAsInterpretAs_Address	= 11,
          SayAsInterpretAs_Alphanumeric	= 12,
          SayAsInterpretAs_Name	= 13,
          SayAsInterpretAs_Media	= 14,
          SayAsInterpretAs_Date_MonthDayYear	= 15,
          SayAsInterpretAs_Date_DayMonthYear	= 16,
          SayAsInterpretAs_Date_YearMonthDay	= 17,
          SayAsInterpretAs_Date_YearMonth	= 18,
          SayAsInterpretAs_Date_MonthYear	= 19,
          SayAsInterpretAs_Date_DayMonth	= 20,
          SayAsInterpretAs_Date_MonthDay	= 21,
          SayAsInterpretAs_Date_Year	= 22,
          SayAsInterpretAs_Time_HoursMinutesSeconds12	= 23,
          SayAsInterpretAs_Time_HoursMinutes12	= 24,
          SayAsInterpretAs_Time_HoursMinutesSeconds24	= 25,
          SayAsInterpretAs_Time_HoursMinutes24	= 26
      } ;
  
  enum TextUnit
      {
          TextUnit_Character	= 0,
          TextUnit_Format	= 1,
          TextUnit_Word	= 2,
          TextUnit_Line	= 3,
          TextUnit_Paragraph	= 4,
          TextUnit_Page	= 5,
          TextUnit_Document	= 6
      } ;
  
  enum TextPatternRangeEndpoint
      {
          TextPatternRangeEndpoint_Start	= 0,
          TextPatternRangeEndpoint_End	= 1
      } ;
  
  enum SupportedTextSelection
      {
          SupportedTextSelection_None	= 0,
          SupportedTextSelection_Single	= 1,
          SupportedTextSelection_Multiple	= 2
      } ;
  
  enum LiveSetting
      {
          Off	= 0,
          Polite	= 1,
          Assertive	= 2
      } ;
  
  enum ActiveEnd
      {
          ActiveEnd_None	= 0,
          ActiveEnd_Start	= 1,
          ActiveEnd_End	= 2
      } ;
  
  enum CaretPosition
      {
          CaretPosition_Unknown	= 0,
          CaretPosition_EndOfLine	= 1,
          CaretPosition_BeginningOfLine	= 2
      } ;
  
  enum CaretBidiMode
      {
          CaretBidiMode_LTR	= 0,
          CaretBidiMode_RTL	= 1
      } ;
  
  enum ZoomUnit
      {
          ZoomUnit_NoAmount	= 0,
          ZoomUnit_LargeDecrement	= 1,
          ZoomUnit_SmallDecrement	= 2,
          ZoomUnit_LargeIncrement	= 3,
          ZoomUnit_SmallIncrement	= 4
      } ;
  
  enum AnimationStyle
      {
          AnimationStyle_None	= 0,
          AnimationStyle_LasVegasLights	= 1,
          AnimationStyle_BlinkingBackground	= 2,
          AnimationStyle_SparkleText	= 3,
          AnimationStyle_MarchingBlackAnts	= 4,
          AnimationStyle_MarchingRedAnts	= 5,
          AnimationStyle_Shimmer	= 6,
          AnimationStyle_Other	= -1
      } ;
  
  enum BulletStyle
      {
          BulletStyle_None	= 0,
          BulletStyle_HollowRoundBullet	= 1,
          BulletStyle_FilledRoundBullet	= 2,
          BulletStyle_HollowSquareBullet	= 3,
          BulletStyle_FilledSquareBullet	= 4,
          BulletStyle_DashBullet	= 5,
          BulletStyle_Other	= -1
      } ;
  
  enum CapStyle
      {
          CapStyle_None	= 0,
          CapStyle_SmallCap	= 1,
          CapStyle_AllCap	= 2,
          CapStyle_AllPetiteCaps	= 3,
          CapStyle_PetiteCaps	= 4,
          CapStyle_Unicase	= 5,
          CapStyle_Titling	= 6,
          CapStyle_Other	= -1
      } ;
  
  enum FillType
      {
          FillType_None	= 0,
          FillType_Color	= 1,
          FillType_Gradient	= 2,
          FillType_Picture	= 3,
          FillType_Pattern	= 4
      } ;
  
  enum FlowDirections
      {
          FlowDirections_Default	= 0,
          FlowDirections_RightToLeft	= 0x1,
          FlowDirections_BottomToTop	= 0x2,
          FlowDirections_Vertical	= 0x4
      } ;
  
  enum HorizontalTextAlignment
      {
          HorizontalTextAlignment_Left	= 0,
          HorizontalTextAlignment_Centered	= 1,
          HorizontalTextAlignment_Right	= 2,
          HorizontalTextAlignment_Justified	= 3
      } ;
  
  enum OutlineStyles
      {
          OutlineStyles_None	= 0,
          OutlineStyles_Outline	= 1,
          OutlineStyles_Shadow	= 2,
          OutlineStyles_Engraved	= 4,
          OutlineStyles_Embossed	= 8
      } ;
  
  enum TextDecorationLineStyle
      {
          TextDecorationLineStyle_None	= 0,
          TextDecorationLineStyle_Single	= 1,
          TextDecorationLineStyle_WordsOnly	= 2,
          TextDecorationLineStyle_Double	= 3,
          TextDecorationLineStyle_Dot	= 4,
          TextDecorationLineStyle_Dash	= 5,
          TextDecorationLineStyle_DashDot	= 6,
          TextDecorationLineStyle_DashDotDot	= 7,
          TextDecorationLineStyle_Wavy	= 8,
          TextDecorationLineStyle_ThickSingle	= 9,
          TextDecorationLineStyle_DoubleWavy	= 11,
          TextDecorationLineStyle_ThickWavy	= 12,
          TextDecorationLineStyle_LongDash	= 13,
          TextDecorationLineStyle_ThickDash	= 14,
          TextDecorationLineStyle_ThickDashDot	= 15,
          TextDecorationLineStyle_ThickDashDotDot	= 16,
          TextDecorationLineStyle_ThickDot	= 17,
          TextDecorationLineStyle_ThickLongDash	= 18,
          TextDecorationLineStyle_Other	= -1
      } ;
  
  enum VisualEffects
      {
          VisualEffects_None	= 0,
          VisualEffects_Shadow	= ( 1 << 0 ) ,
          VisualEffects_Reflection	= ( 1 << 1 ) ,
          VisualEffects_Glow	= ( 1 << 2 ) ,
          VisualEffects_SoftEdges	= ( 1 << 3 ) ,
          VisualEffects_Bevel	= ( 1 << 4 ) 
      } ;
  
  enum NotificationProcessing
      {
          NotificationProcessing_ImportantAll	= 0,
          NotificationProcessing_ImportantMostRecent	= 1,
          NotificationProcessing_All	= 2,
          NotificationProcessing_MostRecent	= 3,
          NotificationProcessing_CurrentThenMostRecent	= 4
      } ;
  
  enum NotificationKind
      {
          NotificationKind_ItemAdded	= 0,
          NotificationKind_ItemRemoved	= 1,
          NotificationKind_ActionCompleted	= 2,
          NotificationKind_ActionAborted	= 3,
          NotificationKind_Other	= 4
      } ;
  typedef int PROPERTYID;
  
  typedef int PATTERNID;
  
  typedef int EVENTID;
  
  typedef int TEXTATTRIBUTEID;
  
  typedef int CONTROLTYPEID;
  
  typedef int LANDMARKTYPEID;
  
  typedef int METADATAID;
  
  typedef int HEADINGLEVELID;
  
  struct UiaRect
      {
      double left;
      double top;
      double width;
      double height;
      } ;
  struct UiaPoint
      {
      double x;
      double y;
      } ;
  struct UiaChangeInfo
      {
      int uiaId;
      VARIANT payload;
      VARIANT extraInfo;
      } ;
  
  
  extern RPC_IF_HANDLE __MIDL_itf_uiautomationcore_0000_0000_v0_0_c_ifspec;
  extern RPC_IF_HANDLE __MIDL_itf_uiautomationcore_0000_0000_v0_0_s_ifspec;
  
  
  #ifndef __UIA_LIBRARY_DEFINED__
  #define __UIA_LIBRARY_DEFINED__
  
  /* library UIA */
  /* [hidden][version][lcid][uuid] */ 
  
  
  
  
  enum UIAutomationType
      {
          UIAutomationType_Int	= 0x1,
          UIAutomationType_Bool	= 0x2,
          UIAutomationType_String	= 0x3,
          UIAutomationType_Double	= 0x4,
          UIAutomationType_Point	= 0x5,
          UIAutomationType_Rect	= 0x6,
          UIAutomationType_Element	= 0x7,
          UIAutomationType_Array	= 0x10000,
          UIAutomationType_Out	= 0x20000,
          UIAutomationType_IntArray	= ( UIAutomationType_Int | UIAutomationType_Array ) ,
          UIAutomationType_BoolArray	= ( UIAutomationType_Bool | UIAutomationType_Array ) ,
          UIAutomationType_StringArray	= ( UIAutomationType_String | UIAutomationType_Array ) ,
          UIAutomationType_DoubleArray	= ( UIAutomationType_Double | UIAutomationType_Array ) ,
          UIAutomationType_PointArray	= ( UIAutomationType_Point | UIAutomationType_Array ) ,
          UIAutomationType_RectArray	= ( UIAutomationType_Rect | UIAutomationType_Array ) ,
          UIAutomationType_ElementArray	= ( UIAutomationType_Element | UIAutomationType_Array ) ,
          UIAutomationType_OutInt	= ( UIAutomationType_Int | UIAutomationType_Out ) ,
          UIAutomationType_OutBool	= ( UIAutomationType_Bool | UIAutomationType_Out ) ,
          UIAutomationType_OutString	= ( UIAutomationType_String | UIAutomationType_Out ) ,
          UIAutomationType_OutDouble	= ( UIAutomationType_Double | UIAutomationType_Out ) ,
          UIAutomationType_OutPoint	= ( UIAutomationType_Point | UIAutomationType_Out ) ,
          UIAutomationType_OutRect	= ( UIAutomationType_Rect | UIAutomationType_Out ) ,
          UIAutomationType_OutElement	= ( UIAutomationType_Element | UIAutomationType_Out ) ,
          UIAutomationType_OutIntArray	= ( ( UIAutomationType_Int | UIAutomationType_Array )  | UIAutomationType_Out ) ,
          UIAutomationType_OutBoolArray	= ( ( UIAutomationType_Bool | UIAutomationType_Array )  | UIAutomationType_Out ) ,
          UIAutomationType_OutStringArray	= ( ( UIAutomationType_String | UIAutomationType_Array )  | UIAutomationType_Out ) ,
          UIAutomationType_OutDoubleArray	= ( ( UIAutomationType_Double | UIAutomationType_Array )  | UIAutomationType_Out ) ,
          UIAutomationType_OutPointArray	= ( ( UIAutomationType_Point | UIAutomationType_Array )  | UIAutomationType_Out ) ,
          UIAutomationType_OutRectArray	= ( ( UIAutomationType_Rect | UIAutomationType_Array )  | UIAutomationType_Out ) ,
          UIAutomationType_OutElementArray	= ( ( UIAutomationType_Element | UIAutomationType_Array )  | UIAutomationType_Out ) 
      } ;
  DEFINE_ENUM_FLAG_OPERATORS(UIAutomationType)
  struct UIAutomationParameter
      {
      enum UIAutomationType type;
      void *pData;
      } ;
  struct UIAutomationPropertyInfo
      {
      GUID guid;
      LPCWSTR pProgrammaticName;
      enum UIAutomationType type;
      } ;
  struct UIAutomationEventInfo
      {
      GUID guid;
      LPCWSTR pProgrammaticName;
      } ;
  struct UIAutomationMethodInfo
      {
      LPCWSTR pProgrammaticName;
      BOOL doSetFocus;
      UINT cInParameters;
      UINT cOutParameters;
      /* [size_is] */ enum UIAutomationType *pParameterTypes;
      /* [size_is] */ LPCWSTR *pParameterNames;
      } ;
  struct UIAutomationPatternInfo
      {
      GUID guid;
      LPCWSTR pProgrammaticName;
      GUID providerInterfaceId;
      GUID clientInterfaceId;
      UINT cProperties;
      /* [size_is] */ struct UIAutomationPropertyInfo *pProperties;
      UINT cMethods;
      /* [size_is] */ struct UIAutomationMethodInfo *pMethods;
      UINT cEvents;
      /* [size_is] */ struct UIAutomationEventInfo *pEvents;
      IUIAutomationPatternHandler *pPatternHandler;
      } ;
  
  EXTERN_C const IID LIBID_UIA;
  
  
  #ifndef __UIA_OtherConstants_MODULE_DEFINED__
  #define __UIA_OtherConstants_MODULE_DEFINED__
  
  
  /* module UIA_OtherConstants */
  /* [dllname] */ 
  
  const double UIA_ScrollPatternNoScroll	=	-1;
  
  #endif /* __UIA_OtherConstants_MODULE_DEFINED__ */
  
  #ifndef __IRawElementProviderSimple_INTERFACE_DEFINED__
  #define __IRawElementProviderSimple_INTERFACE_DEFINED__
  
  /* interface IRawElementProviderSimple */
  /* [oleautomation][unique][uuid][object] */ 
  
  
  EXTERN_C const IID IID_IRawElementProviderSimple;
  
  #if defined(__cplusplus) && !defined(CINTERFACE)
      
      MIDL_INTERFACE("d6dd68d1-86fd-4332-8666-9abedea2d24c")
      IRawElementProviderSimple : public IUnknown
      {
      public:
          virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_ProviderOptions( 
              /* [annotation][retval][out] */ 
              _Out_retval_  enum ProviderOptions *pRetVal) = 0;
          
          virtual HRESULT STDMETHODCALLTYPE GetPatternProvider( 
              /* [annotation][in] */ 
              _In_  PATTERNID patternId,
              /* [annotation][retval][out] */ 
              _Out_retval_  IUnknown **pRetVal) = 0;
          
          virtual HRESULT STDMETHODCALLTYPE GetPropertyValue( 
              /* [annotation][in] */ 
              _In_  PROPERTYID propertyId,
              /* [annotation][retval][out] */ 
              _Out_retval_  VARIANT *pRetVal) = 0;
          
          virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_HostRawElementProvider( 
              /* [annotation][retval][out] */ 
              _Out_retval_  IRawElementProviderSimple **pRetVal) = 0;
          
      };
      
      
  #else 	/* C style interface */
  
      typedef struct IRawElementProviderSimpleVtbl
      {
          BEGIN_INTERFACE
          
          DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
          HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
              __RPC__in IRawElementProviderSimple * This,
              /* [annotation][in] */ 
              _In_  REFIID riid,
              /* [annotation][iid_is][out] */ 
              _COM_Outptr_  void **ppvObject);
          
          DECLSPEC_XFGVIRT(IUnknown, AddRef)
          ULONG ( STDMETHODCALLTYPE *AddRef )( 
              __RPC__in IRawElementProviderSimple * This);
          
          DECLSPEC_XFGVIRT(IUnknown, Release)
          ULONG ( STDMETHODCALLTYPE *Release )( 
              __RPC__in IRawElementProviderSimple * This);
          
          DECLSPEC_XFGVIRT(IRawElementProviderSimple, get_ProviderOptions)
          /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_ProviderOptions )( 
              __RPC__in IRawElementProviderSimple * This,
              /* [annotation][retval][out] */ 
              _Out_retval_  enum ProviderOptions *pRetVal);
          
          DECLSPEC_XFGVIRT(IRawElementProviderSimple, GetPatternProvider)
          HRESULT ( STDMETHODCALLTYPE *GetPatternProvider )( 
              __RPC__in IRawElementProviderSimple * This,
              /* [annotation][in] */ 
              _In_  PATTERNID patternId,
              /* [annotation][retval][out] */ 
              _Out_retval_  IUnknown **pRetVal);
          
          DECLSPEC_XFGVIRT(IRawElementProviderSimple, GetPropertyValue)
          HRESULT ( STDMETHODCALLTYPE *GetPropertyValue )( 
              __RPC__in IRawElementProviderSimple * This,
              /* [annotation][in] */ 
              _In_  PROPERTYID propertyId,
              /* [annotation][retval][out] */ 
              _Out_retval_  VARIANT *pRetVal);
          
          DECLSPEC_XFGVIRT(IRawElementProviderSimple, get_HostRawElementProvider)
          /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_HostRawElementProvider )( 
              __RPC__in IRawElementProviderSimple * This,
              /* [annotation][retval][out] */ 
              _Out_retval_  IRawElementProviderSimple **pRetVal);
          
          END_INTERFACE
      } IRawElementProviderSimpleVtbl;
  
      interface IRawElementProviderSimple
      {
          CONST_VTBL struct IRawElementProviderSimpleVtbl *lpVtbl;
      };
  
      
  
  #ifdef COBJMACROS
  
  
  #define IRawElementProviderSimple_QueryInterface(This,riid,ppvObject)	\
      ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
  
  #define IRawElementProviderSimple_AddRef(This)	\
      ( (This)->lpVtbl -> AddRef(This) ) 
  
  #define IRawElementProviderSimple_Release(This)	\
      ( (This)->lpVtbl -> Release(This) ) 
  
  
  #define IRawElementProviderSimple_get_ProviderOptions(This,pRetVal)	\
      ( (This)->lpVtbl -> get_ProviderOptions(This,pRetVal) ) 
  
  #define IRawElementProviderSimple_GetPatternProvider(This,patternId,pRetVal)	\
      ( (This)->lpVtbl -> GetPatternProvider(This,patternId,pRetVal) ) 
  
  #define IRawElementProviderSimple_GetPropertyValue(This,propertyId,pRetVal)	\
      ( (This)->lpVtbl -> GetPropertyValue(This,propertyId,pRetVal) ) 
  
  #define IRawElementProviderSimple_get_HostRawElementProvider(This,pRetVal)	\
      ( (This)->lpVtbl -> get_HostRawElementProvider(This,pRetVal) ) 
  
  #endif /* COBJMACROS */
  
  
  #endif 	/* C style interface */
  
  
  
  
  #endif 	/* __IRawElementProviderSimple_INTERFACE_DEFINED__ */
  
  
  #ifndef __IAccessibleEx_INTERFACE_DEFINED__
  #define __IAccessibleEx_INTERFACE_DEFINED__
  
  /* interface IAccessibleEx */
  /* [oleautomation][unique][uuid][object] */ 
  
  
  EXTERN_C const IID IID_IAccessibleEx;
  
  #if defined(__cplusplus) && !defined(CINTERFACE)
      
      MIDL_INTERFACE("f8b80ada-2c44-48d0-89be-5ff23c9cd875")
      IAccessibleEx : public IUnknown
      {
      public:
          virtual HRESULT STDMETHODCALLTYPE GetObjectForChild( 
              /* [annotation][in] */ 
              _In_  long idChild,
              /* [annotation][retval][out] */ 
              _Out_retval_  IAccessibleEx **pRetVal) = 0;
          
          virtual HRESULT STDMETHODCALLTYPE GetIAccessiblePair( 
              /* [annotation][out] */ 
              _Out_  IAccessible **ppAcc,
              /* [annotation][out] */ 
              _Out_  long *pidChild) = 0;
          
          virtual HRESULT STDMETHODCALLTYPE GetRuntimeId( 
              /* [annotation][retval][out] */ 
              _Out_retval_  SAFEARRAY * *pRetVal) = 0;
          
          virtual HRESULT STDMETHODCALLTYPE ConvertReturnedElement( 
              /* [annotation][in] */ 
              _In_  IRawElementProviderSimple *pIn,
              /* [annotation][out] */ 
              _Out_  IAccessibleEx **ppRetValOut) = 0;
          
      };
      
      
  #else 	/* C style interface */
  
      typedef struct IAccessibleExVtbl
      {
          BEGIN_INTERFACE
          
          DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
          HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
              __RPC__in IAccessibleEx * This,
              /* [annotation][in] */ 
              _In_  REFIID riid,
              /* [annotation][iid_is][out] */ 
              _COM_Outptr_  void **ppvObject);
          
          DECLSPEC_XFGVIRT(IUnknown, AddRef)
          ULONG ( STDMETHODCALLTYPE *AddRef )( 
              __RPC__in IAccessibleEx * This);
          
          DECLSPEC_XFGVIRT(IUnknown, Release)
          ULONG ( STDMETHODCALLTYPE *Release )( 
              __RPC__in IAccessibleEx * This);
          
          DECLSPEC_XFGVIRT(IAccessibleEx, GetObjectForChild)
          HRESULT ( STDMETHODCALLTYPE *GetObjectForChild )( 
              __RPC__in IAccessibleEx * This,
              /* [annotation][in] */ 
              _In_  long idChild,
              /* [annotation][retval][out] */ 
              _Out_retval_  IAccessibleEx **pRetVal);
          
          DECLSPEC_XFGVIRT(IAccessibleEx, GetIAccessiblePair)
          HRESULT ( STDMETHODCALLTYPE *GetIAccessiblePair )( 
              __RPC__in IAccessibleEx * This,
              /* [annotation][out] */ 
              _Out_  IAccessible **ppAcc,
              /* [annotation][out] */ 
              _Out_  long *pidChild);
          
          DECLSPEC_XFGVIRT(IAccessibleEx, GetRuntimeId)
          HRESULT ( STDMETHODCALLTYPE *GetRuntimeId )( 
              __RPC__in IAccessibleEx * This,
              /* [annotation][retval][out] */ 
              _Out_retval_  SAFEARRAY * *pRetVal);
          
          DECLSPEC_XFGVIRT(IAccessibleEx, ConvertReturnedElement)
          HRESULT ( STDMETHODCALLTYPE *ConvertReturnedElement )( 
              __RPC__in IAccessibleEx * This,
              /* [annotation][in] */ 
              _In_  IRawElementProviderSimple *pIn,
              /* [annotation][out] */ 
              _Out_  IAccessibleEx **ppRetValOut);
          
          END_INTERFACE
      } IAccessibleExVtbl;
  
      interface IAccessibleEx
      {
          CONST_VTBL struct IAccessibleExVtbl *lpVtbl;
      };
  
      
  
  #ifdef COBJMACROS
  
  
  #define IAccessibleEx_QueryInterface(This,riid,ppvObject)	\
      ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
  
  #define IAccessibleEx_AddRef(This)	\
      ( (This)->lpVtbl -> AddRef(This) ) 
  
  #define IAccessibleEx_Release(This)	\
      ( (This)->lpVtbl -> Release(This) ) 
  
  
  #define IAccessibleEx_GetObjectForChild(This,idChild,pRetVal)	\
      ( (This)->lpVtbl -> GetObjectForChild(This,idChild,pRetVal) ) 
  
  #define IAccessibleEx_GetIAccessiblePair(This,ppAcc,pidChild)	\
      ( (This)->lpVtbl -> GetIAccessiblePair(This,ppAcc,pidChild) ) 
  
  #define IAccessibleEx_GetRuntimeId(This,pRetVal)	\
      ( (This)->lpVtbl -> GetRuntimeId(This,pRetVal) ) 
  
  #define IAccessibleEx_ConvertReturnedElement(This,pIn,ppRetValOut)	\
      ( (This)->lpVtbl -> ConvertReturnedElement(This,pIn,ppRetValOut) ) 
  
  #endif /* COBJMACROS */
  
  
  #endif 	/* C style interface */
  
  
  
  
  #endif 	/* __IAccessibleEx_INTERFACE_DEFINED__ */
  
  
  #ifndef __IRawElementProviderSimple2_INTERFACE_DEFINED__
  #define __IRawElementProviderSimple2_INTERFACE_DEFINED__
  
  /* interface IRawElementProviderSimple2 */
  /* [oleautomation][unique][uuid][object] */ 
  
  
  EXTERN_C const IID IID_IRawElementProviderSimple2;
  
  #if defined(__cplusplus) && !defined(CINTERFACE)
      
      MIDL_INTERFACE("A0A839A9-8DA1-4A82-806A-8E0D44E79F56")
      IRawElementProviderSimple2 : public IRawElementProviderSimple
      {
      public:
          virtual HRESULT STDMETHODCALLTYPE ShowContextMenu( void) = 0;
          
      };
      
      
  #else 	/* C style interface */
  
      typedef struct IRawElementProviderSimple2Vtbl
      {
          BEGIN_INTERFACE
          
          DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
          HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
              __RPC__in IRawElementProviderSimple2 * This,
              /* [annotation][in] */ 
              _In_  REFIID riid,
              /* [annotation][iid_is][out] */ 
              _COM_Outptr_  void **ppvObject);
          
          DECLSPEC_XFGVIRT(IUnknown, AddRef)
          ULONG ( STDMETHODCALLTYPE *AddRef )( 
              __RPC__in IRawElementProviderSimple2 * This);
          
          DECLSPEC_XFGVIRT(IUnknown, Release)
          ULONG ( STDMETHODCALLTYPE *Release )( 
              __RPC__in IRawElementProviderSimple2 * This);
          
          DECLSPEC_XFGVIRT(IRawElementProviderSimple, get_ProviderOptions)
          /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_ProviderOptions )( 
              __RPC__in IRawElementProviderSimple2 * This,
              /* [annotation][retval][out] */ 
              _Out_retval_  enum ProviderOptions *pRetVal);
          
          DECLSPEC_XFGVIRT(IRawElementProviderSimple, GetPatternProvider)
          HRESULT ( STDMETHODCALLTYPE *GetPatternProvider )( 
              __RPC__in IRawElementProviderSimple2 * This,
              /* [annotation][in] */ 
              _In_  PATTERNID patternId,
              /* [annotation][retval][out] */ 
              _Out_retval_  IUnknown **pRetVal);
          
          DECLSPEC_XFGVIRT(IRawElementProviderSimple, GetPropertyValue)
          HRESULT ( STDMETHODCALLTYPE *GetPropertyValue )( 
              __RPC__in IRawElementProviderSimple2 * This,
              /* [annotation][in] */ 
              _In_  PROPERTYID propertyId,
              /* [annotation][retval][out] */ 
              _Out_retval_  VARIANT *pRetVal);
          
          DECLSPEC_XFGVIRT(IRawElementProviderSimple, get_HostRawElementProvider)
          /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_HostRawElementProvider )( 
              __RPC__in IRawElementProviderSimple2 * This,
              /* [annotation][retval][out] */ 
              _Out_retval_  IRawElementProviderSimple **pRetVal);
          
          DECLSPEC_XFGVIRT(IRawElementProviderSimple2, ShowContextMenu)
          HRESULT ( STDMETHODCALLTYPE *ShowContextMenu )( 
              __RPC__in IRawElementProviderSimple2 * This);
          
          END_INTERFACE
      } IRawElementProviderSimple2Vtbl;
  
      interface IRawElementProviderSimple2
      {
          CONST_VTBL struct IRawElementProviderSimple2Vtbl *lpVtbl;
      };
  
      
  
  #ifdef COBJMACROS
  
  
  #define IRawElementProviderSimple2_QueryInterface(This,riid,ppvObject)	\
      ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
  
  #define IRawElementProviderSimple2_AddRef(This)	\
      ( (This)->lpVtbl -> AddRef(This) ) 
  
  #define IRawElementProviderSimple2_Release(This)	\
      ( (This)->lpVtbl -> Release(This) ) 
  
  
  #define IRawElementProviderSimple2_get_ProviderOptions(This,pRetVal)	\
      ( (This)->lpVtbl -> get_ProviderOptions(This,pRetVal) ) 
  
  #define IRawElementProviderSimple2_GetPatternProvider(This,patternId,pRetVal)	\
      ( (This)->lpVtbl -> GetPatternProvider(This,patternId,pRetVal) ) 
  
  #define IRawElementProviderSimple2_GetPropertyValue(This,propertyId,pRetVal)	\
      ( (This)->lpVtbl -> GetPropertyValue(This,propertyId,pRetVal) ) 
  
  #define IRawElementProviderSimple2_get_HostRawElementProvider(This,pRetVal)	\
      ( (This)->lpVtbl -> get_HostRawElementProvider(This,pRetVal) ) 
  
  
  #define IRawElementProviderSimple2_ShowContextMenu(This)	\
      ( (This)->lpVtbl -> ShowContextMenu(This) ) 
  
  #endif /* COBJMACROS */
  
  
  #endif 	/* C style interface */
  
  
  
  
  #endif 	/* __IRawElementProviderSimple2_INTERFACE_DEFINED__ */
  
  
  #ifndef __IRawElementProviderSimple3_INTERFACE_DEFINED__
  #define __IRawElementProviderSimple3_INTERFACE_DEFINED__
  
  /* interface IRawElementProviderSimple3 */
  /* [oleautomation][unique][uuid][object] */ 
  
  
  EXTERN_C const IID IID_IRawElementProviderSimple3;
  
  #if defined(__cplusplus) && !defined(CINTERFACE)
      
      MIDL_INTERFACE("fcf5d820-d7ec-4613-bdf6-42a84ce7daaf")
      IRawElementProviderSimple3 : public IRawElementProviderSimple2
      {
      public:
          virtual HRESULT STDMETHODCALLTYPE GetMetadataValue( 
              /* [annotation][in] */ 
              _In_  int targetId,
              /* [annotation][in] */ 
              _In_  METADATAID metadataId,
              /* [annotation][retval][out] */ 
              _Out_retval_  VARIANT *returnVal) = 0;
          
      };
      
      
  #else 	/* C style interface */
  
      typedef struct IRawElementProviderSimple3Vtbl
      {
          BEGIN_INTERFACE
          
          DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
          HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
              __RPC__in IRawElementProviderSimple3 * This,
              /* [annotation][in] */ 
              _In_  REFIID riid,
              /* [annotation][iid_is][out] */ 
              _COM_Outptr_  void **ppvObject);
          
          DECLSPEC_XFGVIRT(IUnknown, AddRef)
          ULONG ( STDMETHODCALLTYPE *AddRef )( 
              __RPC__in IRawElementProviderSimple3 * This);
          
          DECLSPEC_XFGVIRT(IUnknown, Release)
          ULONG ( STDMETHODCALLTYPE *Release )( 
              __RPC__in IRawElementProviderSimple3 * This);
          
          DECLSPEC_XFGVIRT(IRawElementProviderSimple, get_ProviderOptions)
          /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_ProviderOptions )( 
              __RPC__in IRawElementProviderSimple3 * This,
              /* [annotation][retval][out] */ 
              _Out_retval_  enum ProviderOptions *pRetVal);
          
          DECLSPEC_XFGVIRT(IRawElementProviderSimple, GetPatternProvider)
          HRESULT ( STDMETHODCALLTYPE *GetPatternProvider )( 
              __RPC__in IRawElementProviderSimple3 * This,
              /* [annotation][in] */ 
              _In_  PATTERNID patternId,
              /* [annotation][retval][out] */ 
              _Out_retval_  IUnknown **pRetVal);
          
          DECLSPEC_XFGVIRT(IRawElementProviderSimple, GetPropertyValue)
          HRESULT ( STDMETHODCALLTYPE *GetPropertyValue )( 
              __RPC__in IRawElementProviderSimple3 * This,
              /* [annotation][in] */ 
              _In_  PROPERTYID propertyId,
              /* [annotation][retval][out] */ 
              _Out_retval_  VARIANT *pRetVal);
          
          DECLSPEC_XFGVIRT(IRawElementProviderSimple, get_HostRawElementProvider)
          /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_HostRawElementProvider )( 
              __RPC__in IRawElementProviderSimple3 * This,
              /* [annotation][retval][out] */ 
              _Out_retval_  IRawElementProviderSimple **pRetVal);
          
          DECLSPEC_XFGVIRT(IRawElementProviderSimple2, ShowContextMenu)
          HRESULT ( STDMETHODCALLTYPE *ShowContextMenu )( 
              __RPC__in IRawElementProviderSimple3 * This);
          
          DECLSPEC_XFGVIRT(IRawElementProviderSimple3, GetMetadataValue)
          HRESULT ( STDMETHODCALLTYPE *GetMetadataValue )( 
              __RPC__in IRawElementProviderSimple3 * This,
              /* [annotation][in] */ 
              _In_  int targetId,
              /* [annotation][in] */ 
              _In_  METADATAID metadataId,
              /* [annotation][retval][out] */ 
              _Out_retval_  VARIANT *returnVal);
          
          END_INTERFACE
      } IRawElementProviderSimple3Vtbl;
  
      interface IRawElementProviderSimple3
      {
          CONST_VTBL struct IRawElementProviderSimple3Vtbl *lpVtbl;
      };
  
      
  
  #ifdef COBJMACROS
  
  
  #define IRawElementProviderSimple3_QueryInterface(This,riid,ppvObject)	\
      ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
  
  #define IRawElementProviderSimple3_AddRef(This)	\
      ( (This)->lpVtbl -> AddRef(This) ) 
  
  #define IRawElementProviderSimple3_Release(This)	\
      ( (This)->lpVtbl -> Release(This) ) 
  
  
  #define IRawElementProviderSimple3_get_ProviderOptions(This,pRetVal)	\
      ( (This)->lpVtbl -> get_ProviderOptions(This,pRetVal) ) 
  
  #define IRawElementProviderSimple3_GetPatternProvider(This,patternId,pRetVal)	\
      ( (This)->lpVtbl -> GetPatternProvider(This,patternId,pRetVal) ) 
  
  #define IRawElementProviderSimple3_GetPropertyValue(This,propertyId,pRetVal)	\
      ( (This)->lpVtbl -> GetPropertyValue(This,propertyId,pRetVal) ) 
  
  #define IRawElementProviderSimple3_get_HostRawElementProvider(This,pRetVal)	\
      ( (This)->lpVtbl -> get_HostRawElementProvider(This,pRetVal) ) 
  
  
  #define IRawElementProviderSimple3_ShowContextMenu(This)	\
      ( (This)->lpVtbl -> ShowContextMenu(This) ) 
  
  
  #define IRawElementProviderSimple3_GetMetadataValue(This,targetId,metadataId,returnVal)	\
      ( (This)->lpVtbl -> GetMetadataValue(This,targetId,metadataId,returnVal) ) 
  
  #endif /* COBJMACROS */
  
  
  #endif 	/* C style interface */
  
  
  
  
  #endif 	/* __IRawElementProviderSimple3_INTERFACE_DEFINED__ */
  
  
  #ifndef __IRawElementProviderFragmentRoot_INTERFACE_DEFINED__
  #define __IRawElementProviderFragmentRoot_INTERFACE_DEFINED__
  
  /* interface IRawElementProviderFragmentRoot */
  /* [oleautomation][unique][uuid][object] */ 
  
  
  EXTERN_C const IID IID_IRawElementProviderFragmentRoot;
  
  #if defined(__cplusplus) && !defined(CINTERFACE)
      
      MIDL_INTERFACE("620ce2a5-ab8f-40a9-86cb-de3c75599b58")
      IRawElementProviderFragmentRoot : public IUnknown
      {
      public:
          virtual HRESULT STDMETHODCALLTYPE ElementProviderFromPoint( 
              /* [annotation][in] */ 
              _In_  double x,
              /* [annotation][in] */ 
              _In_  double y,
              /* [annotation][retval][out] */ 
              _Out_retval_  IRawElementProviderFragment **pRetVal) = 0;
          
          virtual HRESULT STDMETHODCALLTYPE GetFocus( 
              /* [annotation][retval][out] */ 
              _Out_retval_  IRawElementProviderFragment **pRetVal) = 0;
          
      };
      
      
  #else 	/* C style interface */
  
      typedef struct IRawElementProviderFragmentRootVtbl
      {
          BEGIN_INTERFACE
          
          DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
          HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
              __RPC__in IRawElementProviderFragmentRoot * This,
              /* [annotation][in] */ 
              _In_  REFIID riid,
              /* [annotation][iid_is][out] */ 
              _COM_Outptr_  void **ppvObject);
          
          DECLSPEC_XFGVIRT(IUnknown, AddRef)
          ULONG ( STDMETHODCALLTYPE *AddRef )( 
              __RPC__in IRawElementProviderFragmentRoot * This);
          
          DECLSPEC_XFGVIRT(IUnknown, Release)
          ULONG ( STDMETHODCALLTYPE *Release )( 
              __RPC__in IRawElementProviderFragmentRoot * This);
          
          DECLSPEC_XFGVIRT(IRawElementProviderFragmentRoot, ElementProviderFromPoint)
          HRESULT ( STDMETHODCALLTYPE *ElementProviderFromPoint )( 
              __RPC__in IRawElementProviderFragmentRoot * This,
              /* [annotation][in] */ 
              _In_  double x,
              /* [annotation][in] */ 
              _In_  double y,
              /* [annotation][retval][out] */ 
              _Out_retval_  IRawElementProviderFragment **pRetVal);
          
          DECLSPEC_XFGVIRT(IRawElementProviderFragmentRoot, GetFocus)
          HRESULT ( STDMETHODCALLTYPE *GetFocus )( 
              __RPC__in IRawElementProviderFragmentRoot * This,
              /* [annotation][retval][out] */ 
              _Out_retval_  IRawElementProviderFragment **pRetVal);
          
          END_INTERFACE
      } IRawElementProviderFragmentRootVtbl;
  
      interface IRawElementProviderFragmentRoot
      {
          CONST_VTBL struct IRawElementProviderFragmentRootVtbl *lpVtbl;
      };
  
      
  
  #ifdef COBJMACROS
  
  
  #define IRawElementProviderFragmentRoot_QueryInterface(This,riid,ppvObject)	\
      ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
  
  #define IRawElementProviderFragmentRoot_AddRef(This)	\
      ( (This)->lpVtbl -> AddRef(This) ) 
  
  #define IRawElementProviderFragmentRoot_Release(This)	\
      ( (This)->lpVtbl -> Release(This) ) 
  
  
  #define IRawElementProviderFragmentRoot_ElementProviderFromPoint(This,x,y,pRetVal)	\
      ( (This)->lpVtbl -> ElementProviderFromPoint(This,x,y,pRetVal) ) 
  
  #define IRawElementProviderFragmentRoot_GetFocus(This,pRetVal)	\
      ( (This)->lpVtbl -> GetFocus(This,pRetVal) ) 
  
  #endif /* COBJMACROS */
  
  
  #endif 	/* C style interface */
  
  
  
  
  #endif 	/* __IRawElementProviderFragmentRoot_INTERFACE_DEFINED__ */
  
  
  #ifndef __IRawElementProviderFragment_INTERFACE_DEFINED__
  #define __IRawElementProviderFragment_INTERFACE_DEFINED__
  
  /* interface IRawElementProviderFragment */
  /* [oleautomation][unique][uuid][object] */ 
  
  
  EXTERN_C const IID IID_IRawElementProviderFragment;
  
  #if defined(__cplusplus) && !defined(CINTERFACE)
      
      MIDL_INTERFACE("f7063da8-8359-439c-9297-bbc5299a7d87")
      IRawElementProviderFragment : public IUnknown
      {
      public:
          virtual HRESULT STDMETHODCALLTYPE Navigate( 
              /* [annotation][in] */ 
              _In_  enum NavigateDirection direction,
              /* [annotation][retval][out] */ 
              _Out_retval_  IRawElementProviderFragment **pRetVal) = 0;
          
          virtual HRESULT STDMETHODCALLTYPE GetRuntimeId( 
              /* [annotation][retval][out] */ 
              _Out_retval_  SAFEARRAY * *pRetVal) = 0;
          
          virtual HRESULT STDMETHODCALLTYPE get_BoundingRectangle( 
              /* [annotation][retval][out] */ 
              _Out_retval_  struct UiaRect *pRetVal) = 0;
          
          virtual HRESULT STDMETHODCALLTYPE GetEmbeddedFragmentRoots( 
              /* [annotation][retval][out] */ 
              _Out_retval_  SAFEARRAY * *pRetVal) = 0;
          
          virtual HRESULT STDMETHODCALLTYPE SetFocus( void) = 0;
          
          virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_FragmentRoot( 
              /* [annotation][retval][out] */ 
              _Out_retval_  IRawElementProviderFragmentRoot **pRetVal) = 0;
          
      };
      
      
  #else 	/* C style interface */
  
      typedef struct IRawElementProviderFragmentVtbl
      {
          BEGIN_INTERFACE
          
          DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
          HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
              __RPC__in IRawElementProviderFragment * This,
              /* [annotation][in] */ 
              _In_  REFIID riid,
              /* [annotation][iid_is][out] */ 
              _COM_Outptr_  void **ppvObject);
          
          DECLSPEC_XFGVIRT(IUnknown, AddRef)
          ULONG ( STDMETHODCALLTYPE *AddRef )( 
              __RPC__in IRawElementProviderFragment * This);
          
          DECLSPEC_XFGVIRT(IUnknown, Release)
          ULONG ( STDMETHODCALLTYPE *Release )( 
              __RPC__in IRawElementProviderFragment * This);
          
          DECLSPEC_XFGVIRT(IRawElementProviderFragment, Navigate)
          HRESULT ( STDMETHODCALLTYPE *Navigate )( 
              __RPC__in IRawElementProviderFragment * This,
              /* [annotation][in] */ 
              _In_  enum NavigateDirection direction,
              /* [annotation][retval][out] */ 
              _Out_retval_  IRawElementProviderFragment **pRetVal);
          
          DECLSPEC_XFGVIRT(IRawElementProviderFragment, GetRuntimeId)
          HRESULT ( STDMETHODCALLTYPE *GetRuntimeId )( 
              __RPC__in IRawElementProviderFragment * This,
              /* [annotation][retval][out] */ 
              _Out_retval_  SAFEARRAY * *pRetVal);
          
          DECLSPEC_XFGVIRT(IRawElementProviderFragment, get_BoundingRectangle)
          HRESULT ( STDMETHODCALLTYPE *get_BoundingRectangle )( 
              __RPC__in IRawElementProviderFragment * This,
              /* [annotation][retval][out] */ 
              _Out_retval_  struct UiaRect *pRetVal);
          
          DECLSPEC_XFGVIRT(IRawElementProviderFragment, GetEmbeddedFragmentRoots)
          HRESULT ( STDMETHODCALLTYPE *GetEmbeddedFragmentRoots )( 
              __RPC__in IRawElementProviderFragment * This,
              /* [annotation][retval][out] */ 
              _Out_retval_  SAFEARRAY * *pRetVal);
          
          DECLSPEC_XFGVIRT(IRawElementProviderFragment, SetFocus)
          HRESULT ( STDMETHODCALLTYPE *SetFocus )( 
              __RPC__in IRawElementProviderFragment * This);
          
          DECLSPEC_XFGVIRT(IRawElementProviderFragment, get_FragmentRoot)
          /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_FragmentRoot )( 
              __RPC__in IRawElementProviderFragment * This,
              /* [annotation][retval][out] */ 
              _Out_retval_  IRawElementProviderFragmentRoot **pRetVal);
          
          END_INTERFACE
      } IRawElementProviderFragmentVtbl;
  
      interface IRawElementProviderFragment
      {
          CONST_VTBL struct IRawElementProviderFragmentVtbl *lpVtbl;
      };
  
      
  
  #ifdef COBJMACROS
  
  
  #define IRawElementProviderFragment_QueryInterface(This,riid,ppvObject)	\
      ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
  
  #define IRawElementProviderFragment_AddRef(This)	\
      ( (This)->lpVtbl -> AddRef(This) ) 
  
  #define IRawElementProviderFragment_Release(This)	\
      ( (This)->lpVtbl -> Release(This) ) 
  
  
  #define IRawElementProviderFragment_Navigate(This,direction,pRetVal)	\
      ( (This)->lpVtbl -> Navigate(This,direction,pRetVal) ) 
  
  #define IRawElementProviderFragment_GetRuntimeId(This,pRetVal)	\
      ( (This)->lpVtbl -> GetRuntimeId(This,pRetVal) ) 
  
  #define IRawElementProviderFragment_get_BoundingRectangle(This,pRetVal)	\
      ( (This)->lpVtbl -> get_BoundingRectangle(This,pRetVal) ) 
  
  #define IRawElementProviderFragment_GetEmbeddedFragmentRoots(This,pRetVal)	\
      ( (This)->lpVtbl -> GetEmbeddedFragmentRoots(This,pRetVal) ) 
  
  #define IRawElementProviderFragment_SetFocus(This)	\
      ( (This)->lpVtbl -> SetFocus(This) ) 
  
  #define IRawElementProviderFragment_get_FragmentRoot(This,pRetVal)	\
      ( (This)->lpVtbl -> get_FragmentRoot(This,pRetVal) ) 
  
  #endif /* COBJMACROS */
  
  
  #endif 	/* C style interface */
  
  
  
  
  #endif 	/* __IRawElementProviderFragment_INTERFACE_DEFINED__ */
  
  
  #ifndef __IRawElementProviderAdviseEvents_INTERFACE_DEFINED__
  #define __IRawElementProviderAdviseEvents_INTERFACE_DEFINED__
  
  /* interface IRawElementProviderAdviseEvents */
  /* [oleautomation][unique][uuid][object] */ 
  
  
  EXTERN_C const IID IID_IRawElementProviderAdviseEvents;
  
  #if defined(__cplusplus) && !defined(CINTERFACE)
      
      MIDL_INTERFACE("a407b27b-0f6d-4427-9292-473c7bf93258")
      IRawElementProviderAdviseEvents : public IUnknown
      {
      public:
          virtual HRESULT STDMETHODCALLTYPE AdviseEventAdded( 
              /* [annotation][in] */ 
              _In_  EVENTID eventId,
              /* [annotation][in] */ 
              _In_  SAFEARRAY * propertyIDs) = 0;
          
          virtual HRESULT STDMETHODCALLTYPE AdviseEventRemoved( 
              /* [annotation][in] */ 
              _In_  EVENTID eventId,
              /* [annotation][in] */ 
              _In_  SAFEARRAY * propertyIDs) = 0;
          
      };
      
      
  #else 	/* C style interface */
  
      typedef struct IRawElementProviderAdviseEventsVtbl
      {
          BEGIN_INTERFACE
          
          DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
          HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
              __RPC__in IRawElementProviderAdviseEvents * This,
              /* [annotation][in] */ 
              _In_  REFIID riid,
              /* [annotation][iid_is][out] */ 
              _COM_Outptr_  void **ppvObject);
          
          DECLSPEC_XFGVIRT(IUnknown, AddRef)
          ULONG ( STDMETHODCALLTYPE *AddRef )( 
              __RPC__in IRawElementProviderAdviseEvents * This);
          
          DECLSPEC_XFGVIRT(IUnknown, Release)
          ULONG ( STDMETHODCALLTYPE *Release )( 
              __RPC__in IRawElementProviderAdviseEvents * This);
          
          DECLSPEC_XFGVIRT(IRawElementProviderAdviseEvents, AdviseEventAdded)
          HRESULT ( STDMETHODCALLTYPE *AdviseEventAdded )( 
              __RPC__in IRawElementProviderAdviseEvents * This,
              /* [annotation][in] */ 
              _In_  EVENTID eventId,
              /* [annotation][in] */ 
              _In_  SAFEARRAY * propertyIDs);
          
          DECLSPEC_XFGVIRT(IRawElementProviderAdviseEvents, AdviseEventRemoved)
          HRESULT ( STDMETHODCALLTYPE *AdviseEventRemoved )( 
              __RPC__in IRawElementProviderAdviseEvents * This,
              /* [annotation][in] */ 
              _In_  EVENTID eventId,
              /* [annotation][in] */ 
              _In_  SAFEARRAY * propertyIDs);
          
          END_INTERFACE
      } IRawElementProviderAdviseEventsVtbl;
  
      interface IRawElementProviderAdviseEvents
      {
          CONST_VTBL struct IRawElementProviderAdviseEventsVtbl *lpVtbl;
      };
  
      
  
  #ifdef COBJMACROS
  
  
  #define IRawElementProviderAdviseEvents_QueryInterface(This,riid,ppvObject)	\
      ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
  
  #define IRawElementProviderAdviseEvents_AddRef(This)	\
      ( (This)->lpVtbl -> AddRef(This) ) 
  
  #define IRawElementProviderAdviseEvents_Release(This)	\
      ( (This)->lpVtbl -> Release(This) ) 
  
  
  #define IRawElementProviderAdviseEvents_AdviseEventAdded(This,eventId,propertyIDs)	\
      ( (This)->lpVtbl -> AdviseEventAdded(This,eventId,propertyIDs) ) 
  
  #define IRawElementProviderAdviseEvents_AdviseEventRemoved(This,eventId,propertyIDs)	\
      ( (This)->lpVtbl -> AdviseEventRemoved(This,eventId,propertyIDs) ) 
  
  #endif /* COBJMACROS */
  
  
  #endif 	/* C style interface */
  
  
  
  
  #endif 	/* __IRawElementProviderAdviseEvents_INTERFACE_DEFINED__ */
  
  
  #ifndef __IRawElementProviderHwndOverride_INTERFACE_DEFINED__
  #define __IRawElementProviderHwndOverride_INTERFACE_DEFINED__
  
  /* interface IRawElementProviderHwndOverride */
  /* [oleautomation][unique][uuid][object] */ 
  
  
  EXTERN_C const IID IID_IRawElementProviderHwndOverride;
  
  #if defined(__cplusplus) && !defined(CINTERFACE)
      
      MIDL_INTERFACE("1d5df27c-8947-4425-b8d9-79787bb460b8")
      IRawElementProviderHwndOverride : public IUnknown
      {
      public:
          virtual HRESULT STDMETHODCALLTYPE GetOverrideProviderForHwnd( 
              /* [annotation][in] */ 
              _In_  HWND hwnd,
              /* [annotation][retval][out] */ 
              _Out_retval_  IRawElementProviderSimple **pRetVal) = 0;
          
      };
      
      
  #else 	/* C style interface */
  
      typedef struct IRawElementProviderHwndOverrideVtbl
      {
          BEGIN_INTERFACE
          
          DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
          HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
              __RPC__in IRawElementProviderHwndOverride * This,
              /* [annotation][in] */ 
              _In_  REFIID riid,
              /* [annotation][iid_is][out] */ 
              _COM_Outptr_  void **ppvObject);
          
          DECLSPEC_XFGVIRT(IUnknown, AddRef)
          ULONG ( STDMETHODCALLTYPE *AddRef )( 
              __RPC__in IRawElementProviderHwndOverride * This);
          
          DECLSPEC_XFGVIRT(IUnknown, Release)
          ULONG ( STDMETHODCALLTYPE *Release )( 
              __RPC__in IRawElementProviderHwndOverride * This);
          
          DECLSPEC_XFGVIRT(IRawElementProviderHwndOverride, GetOverrideProviderForHwnd)
          HRESULT ( STDMETHODCALLTYPE *GetOverrideProviderForHwnd )( 
              __RPC__in IRawElementProviderHwndOverride * This,
              /* [annotation][in] */ 
              _In_  HWND hwnd,
              /* [annotation][retval][out] */ 
              _Out_retval_  IRawElementProviderSimple **pRetVal);
          
          END_INTERFACE
      } IRawElementProviderHwndOverrideVtbl;
  
      interface IRawElementProviderHwndOverride
      {
          CONST_VTBL struct IRawElementProviderHwndOverrideVtbl *lpVtbl;
      };
  
      
  
  #ifdef COBJMACROS
  
  
  #define IRawElementProviderHwndOverride_QueryInterface(This,riid,ppvObject)	\
      ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
  
  #define IRawElementProviderHwndOverride_AddRef(This)	\
      ( (This)->lpVtbl -> AddRef(This) ) 
  
  #define IRawElementProviderHwndOverride_Release(This)	\
      ( (This)->lpVtbl -> Release(This) ) 
  
  
  #define IRawElementProviderHwndOverride_GetOverrideProviderForHwnd(This,hwnd,pRetVal)	\
      ( (This)->lpVtbl -> GetOverrideProviderForHwnd(This,hwnd,pRetVal) ) 
  
  #endif /* COBJMACROS */
  
  
  #endif 	/* C style interface */
  
  
  
  
  #endif 	/* __IRawElementProviderHwndOverride_INTERFACE_DEFINED__ */
  
  
  #ifndef __IProxyProviderWinEventSink_INTERFACE_DEFINED__
  #define __IProxyProviderWinEventSink_INTERFACE_DEFINED__
  
  /* interface IProxyProviderWinEventSink */
  /* [oleautomation][unique][uuid][object] */ 
  
  
  EXTERN_C const IID IID_IProxyProviderWinEventSink;
  
  #if defined(__cplusplus) && !defined(CINTERFACE)
      
      MIDL_INTERFACE("4fd82b78-a43e-46ac-9803-0a6969c7c183")
      IProxyProviderWinEventSink : public IUnknown
      {
      public:
          virtual HRESULT STDMETHODCALLTYPE AddAutomationPropertyChangedEvent( 
              /* [annotation][in] */ 
              _In_  IRawElementProviderSimple *pProvider,
              /* [annotation][in] */ 
              _In_  PROPERTYID id,
              /* [annotation][in] */ 
              _In_  VARIANT newValue) = 0;
          
          virtual HRESULT STDMETHODCALLTYPE AddAutomationEvent( 
              /* [annotation][in] */ 
              _In_  IRawElementProviderSimple *pProvider,
              /* [annotation][in] */ 
              _In_  EVENTID id) = 0;
          
          virtual HRESULT STDMETHODCALLTYPE AddStructureChangedEvent( 
              /* [annotation][in] */ 
              _In_  IRawElementProviderSimple *pProvider,
              /* [annotation][in] */ 
              _In_  enum StructureChangeType structureChangeType,
              /* [annotation][in] */ 
              _In_  SAFEARRAY * runtimeId) = 0;
          
      };
      
      
  #else 	/* C style interface */
  
      typedef struct IProxyProviderWinEventSinkVtbl
      {
          BEGIN_INTERFACE
          
          DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
          HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
              __RPC__in IProxyProviderWinEventSink * This,
              /* [annotation][in] */ 
              _In_  REFIID riid,
              /* [annotation][iid_is][out] */ 
              _COM_Outptr_  void **ppvObject);
          
          DECLSPEC_XFGVIRT(IUnknown, AddRef)
          ULONG ( STDMETHODCALLTYPE *AddRef )( 
              __RPC__in IProxyProviderWinEventSink * This);
          
          DECLSPEC_XFGVIRT(IUnknown, Release)
          ULONG ( STDMETHODCALLTYPE *Release )( 
              __RPC__in IProxyProviderWinEventSink * This);
          
          DECLSPEC_XFGVIRT(IProxyProviderWinEventSink, AddAutomationPropertyChangedEvent)
          HRESULT ( STDMETHODCALLTYPE *AddAutomationPropertyChangedEvent )( 
              __RPC__in IProxyProviderWinEventSink * This,
              /* [annotation][in] */ 
              _In_  IRawElementProviderSimple *pProvider,
              /* [annotation][in] */ 
              _In_  PROPERTYID id,
              /* [annotation][in] */ 
              _In_  VARIANT newValue);
          
          DECLSPEC_XFGVIRT(IProxyProviderWinEventSink, AddAutomationEvent)
          HRESULT ( STDMETHODCALLTYPE *AddAutomationEvent )( 
              __RPC__in IProxyProviderWinEventSink * This,
              /* [annotation][in] */ 
              _In_  IRawElementProviderSimple *pProvider,
              /* [annotation][in] */ 
              _In_  EVENTID id);
          
          DECLSPEC_XFGVIRT(IProxyProviderWinEventSink, AddStructureChangedEvent)
          HRESULT ( STDMETHODCALLTYPE *AddStructureChangedEvent )( 
              __RPC__in IProxyProviderWinEventSink * This,
              /* [annotation][in] */ 
              _In_  IRawElementProviderSimple *pProvider,
              /* [annotation][in] */ 
              _In_  enum StructureChangeType structureChangeType,
              /* [annotation][in] */ 
              _In_  SAFEARRAY * runtimeId);
          
          END_INTERFACE
      } IProxyProviderWinEventSinkVtbl;
  
      interface IProxyProviderWinEventSink
      {
          CONST_VTBL struct IProxyProviderWinEventSinkVtbl *lpVtbl;
      };
  
      
  
  #ifdef COBJMACROS
  
  
  #define IProxyProviderWinEventSink_QueryInterface(This,riid,ppvObject)	\
      ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
  
  #define IProxyProviderWinEventSink_AddRef(This)	\
      ( (This)->lpVtbl -> AddRef(This) ) 
  
  #define IProxyProviderWinEventSink_Release(This)	\
      ( (This)->lpVtbl -> Release(This) ) 
  
  
  #define IProxyProviderWinEventSink_AddAutomationPropertyChangedEvent(This,pProvider,id,newValue)	\
      ( (This)->lpVtbl -> AddAutomationPropertyChangedEvent(This,pProvider,id,newValue) ) 
  
  #define IProxyProviderWinEventSink_AddAutomationEvent(This,pProvider,id)	\
      ( (This)->lpVtbl -> AddAutomationEvent(This,pProvider,id) ) 
  
  #define IProxyProviderWinEventSink_AddStructureChangedEvent(This,pProvider,structureChangeType,runtimeId)	\
      ( (This)->lpVtbl -> AddStructureChangedEvent(This,pProvider,structureChangeType,runtimeId) ) 
  
  #endif /* COBJMACROS */
  
  
  #endif 	/* C style interface */
  
  
  
  
  #endif 	/* __IProxyProviderWinEventSink_INTERFACE_DEFINED__ */
  
  
  #ifndef __IProxyProviderWinEventHandler_INTERFACE_DEFINED__
  #define __IProxyProviderWinEventHandler_INTERFACE_DEFINED__
  
  /* interface IProxyProviderWinEventHandler */
  /* [oleautomation][unique][uuid][object] */ 
  
  
  EXTERN_C const IID IID_IProxyProviderWinEventHandler;
  
  #if defined(__cplusplus) && !defined(CINTERFACE)
      
      MIDL_INTERFACE("89592ad4-f4e0-43d5-a3b6-bad7e111b435")
      IProxyProviderWinEventHandler : public IUnknown
      {
      public:
          virtual HRESULT STDMETHODCALLTYPE RespondToWinEvent( 
              /* [annotation][in] */ 
              _In_  DWORD idWinEvent,
              /* [annotation][in] */ 
              _In_  HWND hwnd,
              /* [annotation][in] */ 
              _In_  LONG idObject,
              /* [annotation][in] */ 
              _In_  LONG idChild,
              /* [annotation][in] */ 
              _In_  IProxyProviderWinEventSink *pSink) = 0;
          
      };
      
      
  #else 	/* C style interface */
  
      typedef struct IProxyProviderWinEventHandlerVtbl
      {
          BEGIN_INTERFACE
          
          DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
          HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
              __RPC__in IProxyProviderWinEventHandler * This,
              /* [annotation][in] */ 
              _In_  REFIID riid,
              /* [annotation][iid_is][out] */ 
              _COM_Outptr_  void **ppvObject);
          
          DECLSPEC_XFGVIRT(IUnknown, AddRef)
          ULONG ( STDMETHODCALLTYPE *AddRef )( 
              __RPC__in IProxyProviderWinEventHandler * This);
          
          DECLSPEC_XFGVIRT(IUnknown, Release)
          ULONG ( STDMETHODCALLTYPE *Release )( 
              __RPC__in IProxyProviderWinEventHandler * This);
          
          DECLSPEC_XFGVIRT(IProxyProviderWinEventHandler, RespondToWinEvent)
          HRESULT ( STDMETHODCALLTYPE *RespondToWinEvent )( 
              __RPC__in IProxyProviderWinEventHandler * This,
              /* [annotation][in] */ 
              _In_  DWORD idWinEvent,
              /* [annotation][in] */ 
              _In_  HWND hwnd,
              /* [annotation][in] */ 
              _In_  LONG idObject,
              /* [annotation][in] */ 
              _In_  LONG idChild,
              /* [annotation][in] */ 
              _In_  IProxyProviderWinEventSink *pSink);
          
          END_INTERFACE
      } IProxyProviderWinEventHandlerVtbl;
  
      interface IProxyProviderWinEventHandler
      {
          CONST_VTBL struct IProxyProviderWinEventHandlerVtbl *lpVtbl;
      };
  
      
  
  #ifdef COBJMACROS
  
  
  #define IProxyProviderWinEventHandler_QueryInterface(This,riid,ppvObject)	\
      ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
  
  #define IProxyProviderWinEventHandler_AddRef(This)	\
      ( (This)->lpVtbl -> AddRef(This) ) 
  
  #define IProxyProviderWinEventHandler_Release(This)	\
      ( (This)->lpVtbl -> Release(This) ) 
  
  
  #define IProxyProviderWinEventHandler_RespondToWinEvent(This,idWinEvent,hwnd,idObject,idChild,pSink)	\
      ( (This)->lpVtbl -> RespondToWinEvent(This,idWinEvent,hwnd,idObject,idChild,pSink) ) 
  
  #endif /* COBJMACROS */
  
  
  #endif 	/* C style interface */
  
  
  
  
  #endif 	/* __IProxyProviderWinEventHandler_INTERFACE_DEFINED__ */
  
  
  #ifndef __IRawElementProviderWindowlessSite_INTERFACE_DEFINED__
  #define __IRawElementProviderWindowlessSite_INTERFACE_DEFINED__
  
  /* interface IRawElementProviderWindowlessSite */
  /* [oleautomation][unique][uuid][object] */ 
  
  
  EXTERN_C const IID IID_IRawElementProviderWindowlessSite;
  
  #if defined(__cplusplus) && !defined(CINTERFACE)
      
      MIDL_INTERFACE("0a2a93cc-bfad-42ac-9b2e-0991fb0d3ea0")
      IRawElementProviderWindowlessSite : public IUnknown
      {
      public:
          virtual HRESULT STDMETHODCALLTYPE GetAdjacentFragment( 
              /* [annotation][in] */ 
              _In_  enum NavigateDirection direction,
              /* [annotation][retval][out] */ 
              _Out_retval_  IRawElementProviderFragment **ppParent) = 0;
          
          virtual HRESULT STDMETHODCALLTYPE GetRuntimeIdPrefix( 
              /* [annotation][retval][out] */ 
              _Out_retval_  SAFEARRAY * *pRetVal) = 0;
          
      };
      
      
  #else 	/* C style interface */
  
      typedef struct IRawElementProviderWindowlessSiteVtbl
      {
          BEGIN_INTERFACE
          
          DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
          HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
              __RPC__in IRawElementProviderWindowlessSite * This,
              /* [annotation][in] */ 
              _In_  REFIID riid,
              /* [annotation][iid_is][out] */ 
              _COM_Outptr_  void **ppvObject);
          
          DECLSPEC_XFGVIRT(IUnknown, AddRef)
          ULONG ( STDMETHODCALLTYPE *AddRef )( 
              __RPC__in IRawElementProviderWindowlessSite * This);
          
          DECLSPEC_XFGVIRT(IUnknown, Release)
          ULONG ( STDMETHODCALLTYPE *Release )( 
              __RPC__in IRawElementProviderWindowlessSite * This);
          
          DECLSPEC_XFGVIRT(IRawElementProviderWindowlessSite, GetAdjacentFragment)
          HRESULT ( STDMETHODCALLTYPE *GetAdjacentFragment )( 
              __RPC__in IRawElementProviderWindowlessSite * This,
              /* [annotation][in] */ 
              _In_  enum NavigateDirection direction,
              /* [annotation][retval][out] */ 
              _Out_retval_  IRawElementProviderFragment **ppParent);
          
          DECLSPEC_XFGVIRT(IRawElementProviderWindowlessSite, GetRuntimeIdPrefix)
          HRESULT ( STDMETHODCALLTYPE *GetRuntimeIdPrefix )( 
              __RPC__in IRawElementProviderWindowlessSite * This,
              /* [annotation][retval][out] */ 
              _Out_retval_  SAFEARRAY * *pRetVal);
          
          END_INTERFACE
      } IRawElementProviderWindowlessSiteVtbl;
  
      interface IRawElementProviderWindowlessSite
      {
          CONST_VTBL struct IRawElementProviderWindowlessSiteVtbl *lpVtbl;
      };
  
      
  
  #ifdef COBJMACROS
  
  
  #define IRawElementProviderWindowlessSite_QueryInterface(This,riid,ppvObject)	\
      ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
  
  #define IRawElementProviderWindowlessSite_AddRef(This)	\
      ( (This)->lpVtbl -> AddRef(This) ) 
  
  #define IRawElementProviderWindowlessSite_Release(This)	\
      ( (This)->lpVtbl -> Release(This) ) 
  
  
  #define IRawElementProviderWindowlessSite_GetAdjacentFragment(This,direction,ppParent)	\
      ( (This)->lpVtbl -> GetAdjacentFragment(This,direction,ppParent) ) 
  
  #define IRawElementProviderWindowlessSite_GetRuntimeIdPrefix(This,pRetVal)	\
      ( (This)->lpVtbl -> GetRuntimeIdPrefix(This,pRetVal) ) 
  
  #endif /* COBJMACROS */
  
  
  #endif 	/* C style interface */
  
  
  
  
  #endif 	/* __IRawElementProviderWindowlessSite_INTERFACE_DEFINED__ */
  
  
  #ifndef __IAccessibleHostingElementProviders_INTERFACE_DEFINED__
  #define __IAccessibleHostingElementProviders_INTERFACE_DEFINED__
  
  /* interface IAccessibleHostingElementProviders */
  /* [oleautomation][unique][uuid][object] */ 
  
  
  EXTERN_C const IID IID_IAccessibleHostingElementProviders;
  
  #if defined(__cplusplus) && !defined(CINTERFACE)
      
      MIDL_INTERFACE("33AC331B-943E-4020-B295-DB37784974A3")
      IAccessibleHostingElementProviders : public IUnknown
      {
      public:
          virtual HRESULT STDMETHODCALLTYPE GetEmbeddedFragmentRoots( 
              /* [annotation][retval][out] */ 
              _Out_retval_  SAFEARRAY * *pRetVal) = 0;
          
          virtual HRESULT STDMETHODCALLTYPE GetObjectIdForProvider( 
              /* [annotation][in] */ 
              _In_  IRawElementProviderSimple *pProvider,
              /* [annotation][out] */ 
              _Out_  long *pidObject) = 0;
          
      };
      
      
  #else 	/* C style interface */
  
      typedef struct IAccessibleHostingElementProvidersVtbl
      {
          BEGIN_INTERFACE
          
          DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
          HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
              __RPC__in IAccessibleHostingElementProviders * This,
              /* [annotation][in] */ 
              _In_  REFIID riid,
              /* [annotation][iid_is][out] */ 
              _COM_Outptr_  void **ppvObject);
          
          DECLSPEC_XFGVIRT(IUnknown, AddRef)
          ULONG ( STDMETHODCALLTYPE *AddRef )( 
              __RPC__in IAccessibleHostingElementProviders * This);
          
          DECLSPEC_XFGVIRT(IUnknown, Release)
          ULONG ( STDMETHODCALLTYPE *Release )( 
              __RPC__in IAccessibleHostingElementProviders * This);
          
          DECLSPEC_XFGVIRT(IAccessibleHostingElementProviders, GetEmbeddedFragmentRoots)
          HRESULT ( STDMETHODCALLTYPE *GetEmbeddedFragmentRoots )( 
              __RPC__in IAccessibleHostingElementProviders * This,
              /* [annotation][retval][out] */ 
              _Out_retval_  SAFEARRAY * *pRetVal);
          
          DECLSPEC_XFGVIRT(IAccessibleHostingElementProviders, GetObjectIdForProvider)
          HRESULT ( STDMETHODCALLTYPE *GetObjectIdForProvider )( 
              __RPC__in IAccessibleHostingElementProviders * This,
              /* [annotation][in] */ 
              _In_  IRawElementProviderSimple *pProvider,
              /* [annotation][out] */ 
              _Out_  long *pidObject);
          
          END_INTERFACE
      } IAccessibleHostingElementProvidersVtbl;
  
      interface IAccessibleHostingElementProviders
      {
          CONST_VTBL struct IAccessibleHostingElementProvidersVtbl *lpVtbl;
      };
  
      
  
  #ifdef COBJMACROS
  
  
  #define IAccessibleHostingElementProviders_QueryInterface(This,riid,ppvObject)	\
      ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
  
  #define IAccessibleHostingElementProviders_AddRef(This)	\
      ( (This)->lpVtbl -> AddRef(This) ) 
  
  #define IAccessibleHostingElementProviders_Release(This)	\
      ( (This)->lpVtbl -> Release(This) ) 
  
  
  #define IAccessibleHostingElementProviders_GetEmbeddedFragmentRoots(This,pRetVal)	\
      ( (This)->lpVtbl -> GetEmbeddedFragmentRoots(This,pRetVal) ) 
  
  #define IAccessibleHostingElementProviders_GetObjectIdForProvider(This,pProvider,pidObject)	\
      ( (This)->lpVtbl -> GetObjectIdForProvider(This,pProvider,pidObject) ) 
  
  #endif /* COBJMACROS */
  
  
  #endif 	/* C style interface */
  
  
  
  
  #endif 	/* __IAccessibleHostingElementProviders_INTERFACE_DEFINED__ */
  
  
  #ifndef __IRawElementProviderHostingAccessibles_INTERFACE_DEFINED__
  #define __IRawElementProviderHostingAccessibles_INTERFACE_DEFINED__
  
  /* interface IRawElementProviderHostingAccessibles */
  /* [oleautomation][unique][uuid][object] */ 
  
  
  EXTERN_C const IID IID_IRawElementProviderHostingAccessibles;
  
  #if defined(__cplusplus) && !defined(CINTERFACE)
      
      MIDL_INTERFACE("24BE0B07-D37D-487A-98CF-A13ED465E9B3")
      IRawElementProviderHostingAccessibles : public IUnknown
      {
      public:
          virtual HRESULT STDMETHODCALLTYPE GetEmbeddedAccessibles( 
              /* [annotation][retval][out] */ 
              _Out_retval_  SAFEARRAY * *pRetVal) = 0;
          
      };
      
      
  #else 	/* C style interface */
  
      typedef struct IRawElementProviderHostingAccessiblesVtbl
      {
          BEGIN_INTERFACE
          
          DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
          HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
              __RPC__in IRawElementProviderHostingAccessibles * This,
              /* [annotation][in] */ 
              _In_  REFIID riid,
              /* [annotation][iid_is][out] */ 
              _COM_Outptr_  void **ppvObject);
          
          DECLSPEC_XFGVIRT(IUnknown, AddRef)
          ULONG ( STDMETHODCALLTYPE *AddRef )( 
              __RPC__in IRawElementProviderHostingAccessibles * This);
          
          DECLSPEC_XFGVIRT(IUnknown, Release)
          ULONG ( STDMETHODCALLTYPE *Release )( 
              __RPC__in IRawElementProviderHostingAccessibles * This);
          
          DECLSPEC_XFGVIRT(IRawElementProviderHostingAccessibles, GetEmbeddedAccessibles)
          HRESULT ( STDMETHODCALLTYPE *GetEmbeddedAccessibles )( 
              __RPC__in IRawElementProviderHostingAccessibles * This,
              /* [annotation][retval][out] */ 
              _Out_retval_  SAFEARRAY * *pRetVal);
          
          END_INTERFACE
      } IRawElementProviderHostingAccessiblesVtbl;
  
      interface IRawElementProviderHostingAccessibles
      {
          CONST_VTBL struct IRawElementProviderHostingAccessiblesVtbl *lpVtbl;
      };
  
      
  
  #ifdef COBJMACROS
  
  
  #define IRawElementProviderHostingAccessibles_QueryInterface(This,riid,ppvObject)	\
      ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
  
  #define IRawElementProviderHostingAccessibles_AddRef(This)	\
      ( (This)->lpVtbl -> AddRef(This) ) 
  
  #define IRawElementProviderHostingAccessibles_Release(This)	\
      ( (This)->lpVtbl -> Release(This) ) 
  
  
  #define IRawElementProviderHostingAccessibles_GetEmbeddedAccessibles(This,pRetVal)	\
      ( (This)->lpVtbl -> GetEmbeddedAccessibles(This,pRetVal) ) 
  
  #endif /* COBJMACROS */
  
  
  #endif 	/* C style interface */
  
  
  
  
  #endif 	/* __IRawElementProviderHostingAccessibles_INTERFACE_DEFINED__ */
  
  
  #ifndef __IDockProvider_INTERFACE_DEFINED__
  #define __IDockProvider_INTERFACE_DEFINED__
  
  /* interface IDockProvider */
  /* [oleautomation][unique][uuid][object] */ 
  
  
  EXTERN_C const IID IID_IDockProvider;
  
  #if defined(__cplusplus) && !defined(CINTERFACE)
      
      MIDL_INTERFACE("159bc72c-4ad3-485e-9637-d7052edf0146")
      IDockProvider : public IUnknown
      {
      public:
          virtual HRESULT STDMETHODCALLTYPE SetDockPosition( 
              /* [annotation][in] */ 
              _In_  enum DockPosition dockPosition) = 0;
          
          virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_DockPosition( 
              /* [annotation][retval][out] */ 
              _Out_retval_  enum DockPosition *pRetVal) = 0;
          
      };
      
      
  #else 	/* C style interface */
  
      typedef struct IDockProviderVtbl
      {
          BEGIN_INTERFACE
          
          DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
          HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
              __RPC__in IDockProvider * This,
              /* [annotation][in] */ 
              _In_  REFIID riid,
              /* [annotation][iid_is][out] */ 
              _COM_Outptr_  void **ppvObject);
          
          DECLSPEC_XFGVIRT(IUnknown, AddRef)
          ULONG ( STDMETHODCALLTYPE *AddRef )( 
              __RPC__in IDockProvider * This);
          
          DECLSPEC_XFGVIRT(IUnknown, Release)
          ULONG ( STDMETHODCALLTYPE *Release )( 
              __RPC__in IDockProvider * This);
          
          DECLSPEC_XFGVIRT(IDockProvider, SetDockPosition)
          HRESULT ( STDMETHODCALLTYPE *SetDockPosition )( 
              __RPC__in IDockProvider * This,
              /* [annotation][in] */ 
              _In_  enum DockPosition dockPosition);
          
          DECLSPEC_XFGVIRT(IDockProvider, get_DockPosition)
          /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_DockPosition )( 
              __RPC__in IDockProvider * This,
              /* [annotation][retval][out] */ 
              _Out_retval_  enum DockPosition *pRetVal);
          
          END_INTERFACE
      } IDockProviderVtbl;
  
      interface IDockProvider
      {
          CONST_VTBL struct IDockProviderVtbl *lpVtbl;
      };
  
      
  
  #ifdef COBJMACROS
  
  
  #define IDockProvider_QueryInterface(This,riid,ppvObject)	\
      ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
  
  #define IDockProvider_AddRef(This)	\
      ( (This)->lpVtbl -> AddRef(This) ) 
  
  #define IDockProvider_Release(This)	\
      ( (This)->lpVtbl -> Release(This) ) 
  
  
  #define IDockProvider_SetDockPosition(This,dockPosition)	\
      ( (This)->lpVtbl -> SetDockPosition(This,dockPosition) ) 
  
  #define IDockProvider_get_DockPosition(This,pRetVal)	\
      ( (This)->lpVtbl -> get_DockPosition(This,pRetVal) ) 
  
  #endif /* COBJMACROS */
  
  
  #endif 	/* C style interface */
  
  
  
  
  #endif 	/* __IDockProvider_INTERFACE_DEFINED__ */
  
  
  #ifndef __IExpandCollapseProvider_INTERFACE_DEFINED__
  #define __IExpandCollapseProvider_INTERFACE_DEFINED__
  
  /* interface IExpandCollapseProvider */
  /* [oleautomation][unique][uuid][object] */ 
  
  
  EXTERN_C const IID IID_IExpandCollapseProvider;
  
  #if defined(__cplusplus) && !defined(CINTERFACE)
      
      MIDL_INTERFACE("d847d3a5-cab0-4a98-8c32-ecb45c59ad24")
      IExpandCollapseProvider : public IUnknown
      {
      public:
          virtual HRESULT STDMETHODCALLTYPE Expand( void) = 0;
          
          virtual HRESULT STDMETHODCALLTYPE Collapse( void) = 0;
          
          virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_ExpandCollapseState( 
              /* [annotation][retval][out] */ 
              _Out_retval_  enum ExpandCollapseState *pRetVal) = 0;
          
      };
      
      
  #else 	/* C style interface */
  
      typedef struct IExpandCollapseProviderVtbl
      {
          BEGIN_INTERFACE
          
          DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
          HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
              __RPC__in IExpandCollapseProvider * This,
              /* [annotation][in] */ 
              _In_  REFIID riid,
              /* [annotation][iid_is][out] */ 
              _COM_Outptr_  void **ppvObject);
          
          DECLSPEC_XFGVIRT(IUnknown, AddRef)
          ULONG ( STDMETHODCALLTYPE *AddRef )( 
              __RPC__in IExpandCollapseProvider * This);
          
          DECLSPEC_XFGVIRT(IUnknown, Release)
          ULONG ( STDMETHODCALLTYPE *Release )( 
              __RPC__in IExpandCollapseProvider * This);
          
          DECLSPEC_XFGVIRT(IExpandCollapseProvider, Expand)
          HRESULT ( STDMETHODCALLTYPE *Expand )( 
              __RPC__in IExpandCollapseProvider * This);
          
          DECLSPEC_XFGVIRT(IExpandCollapseProvider, Collapse)
          HRESULT ( STDMETHODCALLTYPE *Collapse )( 
              __RPC__in IExpandCollapseProvider * This);
          
          DECLSPEC_XFGVIRT(IExpandCollapseProvider, get_ExpandCollapseState)
          /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_ExpandCollapseState )( 
              __RPC__in IExpandCollapseProvider * This,
              /* [annotation][retval][out] */ 
              _Out_retval_  enum ExpandCollapseState *pRetVal);
          
          END_INTERFACE
      } IExpandCollapseProviderVtbl;
  
      interface IExpandCollapseProvider
      {
          CONST_VTBL struct IExpandCollapseProviderVtbl *lpVtbl;
      };
  
      
  
  #ifdef COBJMACROS
  
  
  #define IExpandCollapseProvider_QueryInterface(This,riid,ppvObject)	\
      ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
  
  #define IExpandCollapseProvider_AddRef(This)	\
      ( (This)->lpVtbl -> AddRef(This) ) 
  
  #define IExpandCollapseProvider_Release(This)	\
      ( (This)->lpVtbl -> Release(This) ) 
  
  
  #define IExpandCollapseProvider_Expand(This)	\
      ( (This)->lpVtbl -> Expand(This) ) 
  
  #define IExpandCollapseProvider_Collapse(This)	\
      ( (This)->lpVtbl -> Collapse(This) ) 
  
  #define IExpandCollapseProvider_get_ExpandCollapseState(This,pRetVal)	\
      ( (This)->lpVtbl -> get_ExpandCollapseState(This,pRetVal) ) 
  
  #endif /* COBJMACROS */
  
  
  #endif 	/* C style interface */
  
  
  
  
  #endif 	/* __IExpandCollapseProvider_INTERFACE_DEFINED__ */
  
  
  #ifndef __IGridProvider_INTERFACE_DEFINED__
  #define __IGridProvider_INTERFACE_DEFINED__
  
  /* interface IGridProvider */
  /* [oleautomation][unique][uuid][object] */ 
  
  
  EXTERN_C const IID IID_IGridProvider;
  
  #if defined(__cplusplus) && !defined(CINTERFACE)
      
      MIDL_INTERFACE("b17d6187-0907-464b-a168-0ef17a1572b1")
      IGridProvider : public IUnknown
      {
      public:
          virtual HRESULT STDMETHODCALLTYPE GetItem( 
              /* [annotation][in] */ 
              _In_  int row,
              /* [annotation][in] */ 
              _In_  int column,
              /* [annotation][retval][out] */ 
              _Out_retval_  IRawElementProviderSimple **pRetVal) = 0;
          
          virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_RowCount( 
              /* [annotation][retval][out] */ 
              _Out_retval_  int *pRetVal) = 0;
          
          virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_ColumnCount( 
              /* [annotation][retval][out] */ 
              _Out_retval_  int *pRetVal) = 0;
          
      };
      
      
  #else 	/* C style interface */
  
      typedef struct IGridProviderVtbl
      {
          BEGIN_INTERFACE
          
          DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
          HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
              __RPC__in IGridProvider * This,
              /* [annotation][in] */ 
              _In_  REFIID riid,
              /* [annotation][iid_is][out] */ 
              _COM_Outptr_  void **ppvObject);
          
          DECLSPEC_XFGVIRT(IUnknown, AddRef)
          ULONG ( STDMETHODCALLTYPE *AddRef )( 
              __RPC__in IGridProvider * This);
          
          DECLSPEC_XFGVIRT(IUnknown, Release)
          ULONG ( STDMETHODCALLTYPE *Release )( 
              __RPC__in IGridProvider * This);
          
          DECLSPEC_XFGVIRT(IGridProvider, GetItem)
          HRESULT ( STDMETHODCALLTYPE *GetItem )( 
              __RPC__in IGridProvider * This,
              /* [annotation][in] */ 
              _In_  int row,
              /* [annotation][in] */ 
              _In_  int column,
              /* [annotation][retval][out] */ 
              _Out_retval_  IRawElementProviderSimple **pRetVal);
          
          DECLSPEC_XFGVIRT(IGridProvider, get_RowCount)
          /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_RowCount )( 
              __RPC__in IGridProvider * This,
              /* [annotation][retval][out] */ 
              _Out_retval_  int *pRetVal);
          
          DECLSPEC_XFGVIRT(IGridProvider, get_ColumnCount)
          /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_ColumnCount )( 
              __RPC__in IGridProvider * This,
              /* [annotation][retval][out] */ 
              _Out_retval_  int *pRetVal);
          
          END_INTERFACE
      } IGridProviderVtbl;
  
      interface IGridProvider
      {
          CONST_VTBL struct IGridProviderVtbl *lpVtbl;
      };
  
      
  
  #ifdef COBJMACROS
  
  
  #define IGridProvider_QueryInterface(This,riid,ppvObject)	\
      ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
  
  #define IGridProvider_AddRef(This)	\
      ( (This)->lpVtbl -> AddRef(This) ) 
  
  #define IGridProvider_Release(This)	\
      ( (This)->lpVtbl -> Release(This) ) 
  
  
  #define IGridProvider_GetItem(This,row,column,pRetVal)	\
      ( (This)->lpVtbl -> GetItem(This,row,column,pRetVal) ) 
  
  #define IGridProvider_get_RowCount(This,pRetVal)	\
      ( (This)->lpVtbl -> get_RowCount(This,pRetVal) ) 
  
  #define IGridProvider_get_ColumnCount(This,pRetVal)	\
      ( (This)->lpVtbl -> get_ColumnCount(This,pRetVal) ) 
  
  #endif /* COBJMACROS */
  
  
  #endif 	/* C style interface */
  
  
  
  
  #endif 	/* __IGridProvider_INTERFACE_DEFINED__ */
  
  
  #ifndef __IGridItemProvider_INTERFACE_DEFINED__
  #define __IGridItemProvider_INTERFACE_DEFINED__
  
  /* interface IGridItemProvider */
  /* [oleautomation][unique][uuid][object] */ 
  
  
  EXTERN_C const IID IID_IGridItemProvider;
  
  #if defined(__cplusplus) && !defined(CINTERFACE)
      
      MIDL_INTERFACE("d02541f1-fb81-4d64-ae32-f520f8a6dbd1")
      IGridItemProvider : public IUnknown
      {
      public:
          virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Row( 
              /* [annotation][retval][out] */ 
              _Out_retval_  int *pRetVal) = 0;
          
          virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Column( 
              /* [annotation][retval][out] */ 
              _Out_retval_  int *pRetVal) = 0;
          
          virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_RowSpan( 
              /* [annotation][retval][out] */ 
              _Out_retval_  int *pRetVal) = 0;
          
          virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_ColumnSpan( 
              /* [annotation][retval][out] */ 
              _Out_retval_  int *pRetVal) = 0;
          
          virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_ContainingGrid( 
              /* [annotation][retval][out] */ 
              _Out_retval_  IRawElementProviderSimple **pRetVal) = 0;
          
      };
      
      
  #else 	/* C style interface */
  
      typedef struct IGridItemProviderVtbl
      {
          BEGIN_INTERFACE
          
          DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
          HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
              __RPC__in IGridItemProvider * This,
              /* [annotation][in] */ 
              _In_  REFIID riid,
              /* [annotation][iid_is][out] */ 
              _COM_Outptr_  void **ppvObject);
          
          DECLSPEC_XFGVIRT(IUnknown, AddRef)
          ULONG ( STDMETHODCALLTYPE *AddRef )( 
              __RPC__in IGridItemProvider * This);
          
          DECLSPEC_XFGVIRT(IUnknown, Release)
          ULONG ( STDMETHODCALLTYPE *Release )( 
              __RPC__in IGridItemProvider * This);
          
          DECLSPEC_XFGVIRT(IGridItemProvider, get_Row)
          /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Row )( 
              __RPC__in IGridItemProvider * This,
              /* [annotation][retval][out] */ 
              _Out_retval_  int *pRetVal);
          
          DECLSPEC_XFGVIRT(IGridItemProvider, get_Column)
          /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Column )( 
              __RPC__in IGridItemProvider * This,
              /* [annotation][retval][out] */ 
              _Out_retval_  int *pRetVal);
          
          DECLSPEC_XFGVIRT(IGridItemProvider, get_RowSpan)
          /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_RowSpan )( 
              __RPC__in IGridItemProvider * This,
              /* [annotation][retval][out] */ 
              _Out_retval_  int *pRetVal);
          
          DECLSPEC_XFGVIRT(IGridItemProvider, get_ColumnSpan)
          /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_ColumnSpan )( 
              __RPC__in IGridItemProvider * This,
              /* [annotation][retval][out] */ 
              _Out_retval_  int *pRetVal);
          
          DECLSPEC_XFGVIRT(IGridItemProvider, get_ContainingGrid)
          /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_ContainingGrid )( 
              __RPC__in IGridItemProvider * This,
              /* [annotation][retval][out] */ 
              _Out_retval_  IRawElementProviderSimple **pRetVal);
          
          END_INTERFACE
      } IGridItemProviderVtbl;
  
      interface IGridItemProvider
      {
          CONST_VTBL struct IGridItemProviderVtbl *lpVtbl;
      };
  
      
  
  #ifdef COBJMACROS
  
  
  #define IGridItemProvider_QueryInterface(This,riid,ppvObject)	\
      ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
  
  #define IGridItemProvider_AddRef(This)	\
      ( (This)->lpVtbl -> AddRef(This) ) 
  
  #define IGridItemProvider_Release(This)	\
      ( (This)->lpVtbl -> Release(This) ) 
  
  
  #define IGridItemProvider_get_Row(This,pRetVal)	\
      ( (This)->lpVtbl -> get_Row(This,pRetVal) ) 
  
  #define IGridItemProvider_get_Column(This,pRetVal)	\
      ( (This)->lpVtbl -> get_Column(This,pRetVal) ) 
  
  #define IGridItemProvider_get_RowSpan(This,pRetVal)	\
      ( (This)->lpVtbl -> get_RowSpan(This,pRetVal) ) 
  
  #define IGridItemProvider_get_ColumnSpan(This,pRetVal)	\
      ( (This)->lpVtbl -> get_ColumnSpan(This,pRetVal) ) 
  
  #define IGridItemProvider_get_ContainingGrid(This,pRetVal)	\
      ( (This)->lpVtbl -> get_ContainingGrid(This,pRetVal) ) 
  
  #endif /* COBJMACROS */
  
  
  #endif 	/* C style interface */
  
  
  
  
  #endif 	/* __IGridItemProvider_INTERFACE_DEFINED__ */
  
  
  #ifndef __IInvokeProvider_INTERFACE_DEFINED__
  #define __IInvokeProvider_INTERFACE_DEFINED__
  
  /* interface IInvokeProvider */
  /* [oleautomation][unique][uuid][object] */ 
  
  
  EXTERN_C const IID IID_IInvokeProvider;
  
  #if defined(__cplusplus) && !defined(CINTERFACE)
      
      MIDL_INTERFACE("54fcb24b-e18e-47a2-b4d3-eccbe77599a2")
      IInvokeProvider : public IUnknown
      {
      public:
          virtual HRESULT STDMETHODCALLTYPE Invoke( void) = 0;
          
      };
      
      
  #else 	/* C style interface */
  
      typedef struct IInvokeProviderVtbl
      {
          BEGIN_INTERFACE
          
          DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
          HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
              __RPC__in IInvokeProvider * This,
              /* [annotation][in] */ 
              _In_  REFIID riid,
              /* [annotation][iid_is][out] */ 
              _COM_Outptr_  void **ppvObject);
          
          DECLSPEC_XFGVIRT(IUnknown, AddRef)
          ULONG ( STDMETHODCALLTYPE *AddRef )( 
              __RPC__in IInvokeProvider * This);
          
          DECLSPEC_XFGVIRT(IUnknown, Release)
          ULONG ( STDMETHODCALLTYPE *Release )( 
              __RPC__in IInvokeProvider * This);
          
          DECLSPEC_XFGVIRT(IInvokeProvider, Invoke)
          HRESULT ( STDMETHODCALLTYPE *Invoke )( 
              __RPC__in IInvokeProvider * This);
          
          END_INTERFACE
      } IInvokeProviderVtbl;
  
      interface IInvokeProvider
      {
          CONST_VTBL struct IInvokeProviderVtbl *lpVtbl;
      };
  
      
  
  #ifdef COBJMACROS
  
  
  #define IInvokeProvider_QueryInterface(This,riid,ppvObject)	\
      ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
  
  #define IInvokeProvider_AddRef(This)	\
      ( (This)->lpVtbl -> AddRef(This) ) 
  
  #define IInvokeProvider_Release(This)	\
      ( (This)->lpVtbl -> Release(This) ) 
  
  
  #define IInvokeProvider_Invoke(This)	\
      ( (This)->lpVtbl -> Invoke(This) ) 
  
  #endif /* COBJMACROS */
  
  
  #endif 	/* C style interface */
  
  
  
  
  #endif 	/* __IInvokeProvider_INTERFACE_DEFINED__ */
  
  
  #ifndef __IMultipleViewProvider_INTERFACE_DEFINED__
  #define __IMultipleViewProvider_INTERFACE_DEFINED__
  
  /* interface IMultipleViewProvider */
  /* [oleautomation][unique][uuid][object] */ 
  
  
  EXTERN_C const IID IID_IMultipleViewProvider;
  
  #if defined(__cplusplus) && !defined(CINTERFACE)
      
      MIDL_INTERFACE("6278cab1-b556-4a1a-b4e0-418acc523201")
      IMultipleViewProvider : public IUnknown
      {
      public:
          virtual HRESULT STDMETHODCALLTYPE GetViewName( 
              /* [annotation][in] */ 
              _In_  int viewId,
              /* [annotation][retval][out] */ 
              _Out_retval_  BSTR *pRetVal) = 0;
          
          virtual HRESULT STDMETHODCALLTYPE SetCurrentView( 
              /* [annotation][in] */ 
              _In_  int viewId) = 0;
          
          virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_CurrentView( 
              /* [annotation][retval][out] */ 
              _Out_retval_  int *pRetVal) = 0;
          
          virtual HRESULT STDMETHODCALLTYPE GetSupportedViews( 
              /* [annotation][retval][out] */ 
              _Out_retval_  SAFEARRAY * *pRetVal) = 0;
          
      };
      
      
  #else 	/* C style interface */
  
      typedef struct IMultipleViewProviderVtbl
      {
          BEGIN_INTERFACE
          
          DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
          HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
              __RPC__in IMultipleViewProvider * This,
              /* [annotation][in] */ 
              _In_  REFIID riid,
              /* [annotation][iid_is][out] */ 
              _COM_Outptr_  void **ppvObject);
          
          DECLSPEC_XFGVIRT(IUnknown, AddRef)
          ULONG ( STDMETHODCALLTYPE *AddRef )( 
              __RPC__in IMultipleViewProvider * This);
          
          DECLSPEC_XFGVIRT(IUnknown, Release)
          ULONG ( STDMETHODCALLTYPE *Release )( 
              __RPC__in IMultipleViewProvider * This);
          
          DECLSPEC_XFGVIRT(IMultipleViewProvider, GetViewName)
          HRESULT ( STDMETHODCALLTYPE *GetViewName )( 
              __RPC__in IMultipleViewProvider * This,
              /* [annotation][in] */ 
              _In_  int viewId,
              /* [annotation][retval][out] */ 
              _Out_retval_  BSTR *pRetVal);
          
          DECLSPEC_XFGVIRT(IMultipleViewProvider, SetCurrentView)
          HRESULT ( STDMETHODCALLTYPE *SetCurrentView )( 
              __RPC__in IMultipleViewProvider * This,
              /* [annotation][in] */ 
              _In_  int viewId);
          
          DECLSPEC_XFGVIRT(IMultipleViewProvider, get_CurrentView)
          /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_CurrentView )( 
              __RPC__in IMultipleViewProvider * This,
              /* [annotation][retval][out] */ 
              _Out_retval_  int *pRetVal);
          
          DECLSPEC_XFGVIRT(IMultipleViewProvider, GetSupportedViews)
          HRESULT ( STDMETHODCALLTYPE *GetSupportedViews )( 
              __RPC__in IMultipleViewProvider * This,
              /* [annotation][retval][out] */ 
              _Out_retval_  SAFEARRAY * *pRetVal);
          
          END_INTERFACE
      } IMultipleViewProviderVtbl;
  
      interface IMultipleViewProvider
      {
          CONST_VTBL struct IMultipleViewProviderVtbl *lpVtbl;
      };
  
      
  
  #ifdef COBJMACROS
  
  
  #define IMultipleViewProvider_QueryInterface(This,riid,ppvObject)	\
      ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
  
  #define IMultipleViewProvider_AddRef(This)	\
      ( (This)->lpVtbl -> AddRef(This) ) 
  
  #define IMultipleViewProvider_Release(This)	\
      ( (This)->lpVtbl -> Release(This) ) 
  
  
  #define IMultipleViewProvider_GetViewName(This,viewId,pRetVal)	\
      ( (This)->lpVtbl -> GetViewName(This,viewId,pRetVal) ) 
  
  #define IMultipleViewProvider_SetCurrentView(This,viewId)	\
      ( (This)->lpVtbl -> SetCurrentView(This,viewId) ) 
  
  #define IMultipleViewProvider_get_CurrentView(This,pRetVal)	\
      ( (This)->lpVtbl -> get_CurrentView(This,pRetVal) ) 
  
  #define IMultipleViewProvider_GetSupportedViews(This,pRetVal)	\
      ( (This)->lpVtbl -> GetSupportedViews(This,pRetVal) ) 
  
  #endif /* COBJMACROS */
  
  
  #endif 	/* C style interface */
  
  
  
  
  #endif 	/* __IMultipleViewProvider_INTERFACE_DEFINED__ */
  
  
  #ifndef __IRangeValueProvider_INTERFACE_DEFINED__
  #define __IRangeValueProvider_INTERFACE_DEFINED__
  
  /* interface IRangeValueProvider */
  /* [oleautomation][unique][uuid][object] */ 
  
  
  EXTERN_C const IID IID_IRangeValueProvider;
  
  #if defined(__cplusplus) && !defined(CINTERFACE)
      
      MIDL_INTERFACE("36dc7aef-33e6-4691-afe1-2be7274b3d33")
      IRangeValueProvider : public IUnknown
      {
      public:
          virtual HRESULT STDMETHODCALLTYPE SetValue( 
              /* [annotation][in] */ 
              _In_  double val) = 0;
          
          virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Value( 
              /* [annotation][retval][out] */ 
              _Out_retval_  double *pRetVal) = 0;
          
          virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_IsReadOnly( 
              /* [annotation][retval][out] */ 
              _Out_retval_  BOOL *pRetVal) = 0;
          
          virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Maximum( 
              /* [annotation][retval][out] */ 
              _Out_retval_  double *pRetVal) = 0;
          
          virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Minimum( 
              /* [annotation][retval][out] */ 
              _Out_retval_  double *pRetVal) = 0;
          
          virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_LargeChange( 
              /* [annotation][retval][out] */ 
              _Out_retval_  double *pRetVal) = 0;
          
          virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_SmallChange( 
              /* [annotation][retval][out] */ 
              _Out_retval_  double *pRetVal) = 0;
          
      };
      
      
  #else 	/* C style interface */
  
      typedef struct IRangeValueProviderVtbl
      {
          BEGIN_INTERFACE
          
          DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
          HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
              __RPC__in IRangeValueProvider * This,
              /* [annotation][in] */ 
              _In_  REFIID riid,
              /* [annotation][iid_is][out] */ 
              _COM_Outptr_  void **ppvObject);
          
          DECLSPEC_XFGVIRT(IUnknown, AddRef)
          ULONG ( STDMETHODCALLTYPE *AddRef )( 
              __RPC__in IRangeValueProvider * This);
          
          DECLSPEC_XFGVIRT(IUnknown, Release)
          ULONG ( STDMETHODCALLTYPE *Release )( 
              __RPC__in IRangeValueProvider * This);
          
          DECLSPEC_XFGVIRT(IRangeValueProvider, SetValue)
          HRESULT ( STDMETHODCALLTYPE *SetValue )( 
              __RPC__in IRangeValueProvider * This,
              /* [annotation][in] */ 
              _In_  double val);
          
          DECLSPEC_XFGVIRT(IRangeValueProvider, get_Value)
          /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Value )( 
              __RPC__in IRangeValueProvider * This,
              /* [annotation][retval][out] */ 
              _Out_retval_  double *pRetVal);
          
          DECLSPEC_XFGVIRT(IRangeValueProvider, get_IsReadOnly)
          /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_IsReadOnly )( 
              __RPC__in IRangeValueProvider * This,
              /* [annotation][retval][out] */ 
              _Out_retval_  BOOL *pRetVal);
          
          DECLSPEC_XFGVIRT(IRangeValueProvider, get_Maximum)
          /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Maximum )( 
              __RPC__in IRangeValueProvider * This,
              /* [annotation][retval][out] */ 
              _Out_retval_  double *pRetVal);
          
          DECLSPEC_XFGVIRT(IRangeValueProvider, get_Minimum)
          /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Minimum )( 
              __RPC__in IRangeValueProvider * This,
              /* [annotation][retval][out] */ 
              _Out_retval_  double *pRetVal);
          
          DECLSPEC_XFGVIRT(IRangeValueProvider, get_LargeChange)
          /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_LargeChange )( 
              __RPC__in IRangeValueProvider * This,
              /* [annotation][retval][out] */ 
              _Out_retval_  double *pRetVal);
          
          DECLSPEC_XFGVIRT(IRangeValueProvider, get_SmallChange)
          /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_SmallChange )( 
              __RPC__in IRangeValueProvider * This,
              /* [annotation][retval][out] */ 
              _Out_retval_  double *pRetVal);
          
          END_INTERFACE
      } IRangeValueProviderVtbl;
  
      interface IRangeValueProvider
      {
          CONST_VTBL struct IRangeValueProviderVtbl *lpVtbl;
      };
  
      
  
  #ifdef COBJMACROS
  
  
  #define IRangeValueProvider_QueryInterface(This,riid,ppvObject)	\
      ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
  
  #define IRangeValueProvider_AddRef(This)	\
      ( (This)->lpVtbl -> AddRef(This) ) 
  
  #define IRangeValueProvider_Release(This)	\
      ( (This)->lpVtbl -> Release(This) ) 
  
  
  #define IRangeValueProvider_SetValue(This,val)	\
      ( (This)->lpVtbl -> SetValue(This,val) ) 
  
  #define IRangeValueProvider_get_Value(This,pRetVal)	\
      ( (This)->lpVtbl -> get_Value(This,pRetVal) ) 
  
  #define IRangeValueProvider_get_IsReadOnly(This,pRetVal)	\
      ( (This)->lpVtbl -> get_IsReadOnly(This,pRetVal) ) 
  
  #define IRangeValueProvider_get_Maximum(This,pRetVal)	\
      ( (This)->lpVtbl -> get_Maximum(This,pRetVal) ) 
  
  #define IRangeValueProvider_get_Minimum(This,pRetVal)	\
      ( (This)->lpVtbl -> get_Minimum(This,pRetVal) ) 
  
  #define IRangeValueProvider_get_LargeChange(This,pRetVal)	\
      ( (This)->lpVtbl -> get_LargeChange(This,pRetVal) ) 
  
  #define IRangeValueProvider_get_SmallChange(This,pRetVal)	\
      ( (This)->lpVtbl -> get_SmallChange(This,pRetVal) ) 
  
  #endif /* COBJMACROS */
  
  
  #endif 	/* C style interface */
  
  
  
  
  #endif 	/* __IRangeValueProvider_INTERFACE_DEFINED__ */
  
  
  #ifndef __IScrollItemProvider_INTERFACE_DEFINED__
  #define __IScrollItemProvider_INTERFACE_DEFINED__
  
  /* interface IScrollItemProvider */
  /* [oleautomation][unique][uuid][object] */ 
  
  
  EXTERN_C const IID IID_IScrollItemProvider;
  
  #if defined(__cplusplus) && !defined(CINTERFACE)
      
      MIDL_INTERFACE("2360c714-4bf1-4b26-ba65-9b21316127eb")
      IScrollItemProvider : public IUnknown
      {
      public:
          virtual HRESULT STDMETHODCALLTYPE ScrollIntoView( void) = 0;
          
      };
      
      
  #else 	/* C style interface */
  
      typedef struct IScrollItemProviderVtbl
      {
          BEGIN_INTERFACE
          
          DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
          HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
              __RPC__in IScrollItemProvider * This,
              /* [annotation][in] */ 
              _In_  REFIID riid,
              /* [annotation][iid_is][out] */ 
              _COM_Outptr_  void **ppvObject);
          
          DECLSPEC_XFGVIRT(IUnknown, AddRef)
          ULONG ( STDMETHODCALLTYPE *AddRef )( 
              __RPC__in IScrollItemProvider * This);
          
          DECLSPEC_XFGVIRT(IUnknown, Release)
          ULONG ( STDMETHODCALLTYPE *Release )( 
              __RPC__in IScrollItemProvider * This);
          
          DECLSPEC_XFGVIRT(IScrollItemProvider, ScrollIntoView)
          HRESULT ( STDMETHODCALLTYPE *ScrollIntoView )( 
              __RPC__in IScrollItemProvider * This);
          
          END_INTERFACE
      } IScrollItemProviderVtbl;
  
      interface IScrollItemProvider
      {
          CONST_VTBL struct IScrollItemProviderVtbl *lpVtbl;
      };
  
      
  
  #ifdef COBJMACROS
  
  
  #define IScrollItemProvider_QueryInterface(This,riid,ppvObject)	\
      ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
  
  #define IScrollItemProvider_AddRef(This)	\
      ( (This)->lpVtbl -> AddRef(This) ) 
  
  #define IScrollItemProvider_Release(This)	\
      ( (This)->lpVtbl -> Release(This) ) 
  
  
  #define IScrollItemProvider_ScrollIntoView(This)	\
      ( (This)->lpVtbl -> ScrollIntoView(This) ) 
  
  #endif /* COBJMACROS */
  
  
  #endif 	/* C style interface */
  
  
  
  
  #endif 	/* __IScrollItemProvider_INTERFACE_DEFINED__ */
  
  
  #ifndef __ISelectionProvider_INTERFACE_DEFINED__
  #define __ISelectionProvider_INTERFACE_DEFINED__
  
  /* interface ISelectionProvider */
  /* [oleautomation][unique][uuid][object] */ 
  
  
  EXTERN_C const IID IID_ISelectionProvider;
  
  #if defined(__cplusplus) && !defined(CINTERFACE)
      
      MIDL_INTERFACE("fb8b03af-3bdf-48d4-bd36-1a65793be168")
      ISelectionProvider : public IUnknown
      {
      public:
          virtual HRESULT STDMETHODCALLTYPE GetSelection( 
              /* [annotation][retval][out] */ 
              _Out_retval_  SAFEARRAY * *pRetVal) = 0;
          
          virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_CanSelectMultiple( 
              /* [annotation][retval][out] */ 
              _Out_retval_  BOOL *pRetVal) = 0;
          
          virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_IsSelectionRequired( 
              /* [annotation][retval][out] */ 
              _Out_retval_  BOOL *pRetVal) = 0;
          
      };
      
      
  #else 	/* C style interface */
  
      typedef struct ISelectionProviderVtbl
      {
          BEGIN_INTERFACE
          
          DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
          HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
              __RPC__in ISelectionProvider * This,
              /* [annotation][in] */ 
              _In_  REFIID riid,
              /* [annotation][iid_is][out] */ 
              _COM_Outptr_  void **ppvObject);
          
          DECLSPEC_XFGVIRT(IUnknown, AddRef)
          ULONG ( STDMETHODCALLTYPE *AddRef )( 
              __RPC__in ISelectionProvider * This);
          
          DECLSPEC_XFGVIRT(IUnknown, Release)
          ULONG ( STDMETHODCALLTYPE *Release )( 
              __RPC__in ISelectionProvider * This);
          
          DECLSPEC_XFGVIRT(ISelectionProvider, GetSelection)
          HRESULT ( STDMETHODCALLTYPE *GetSelection )( 
              __RPC__in ISelectionProvider * This,
              /* [annotation][retval][out] */ 
              _Out_retval_  SAFEARRAY * *pRetVal);
          
          DECLSPEC_XFGVIRT(ISelectionProvider, get_CanSelectMultiple)
          /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_CanSelectMultiple )( 
              __RPC__in ISelectionProvider * This,
              /* [annotation][retval][out] */ 
              _Out_retval_  BOOL *pRetVal);
          
          DECLSPEC_XFGVIRT(ISelectionProvider, get_IsSelectionRequired)
          /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_IsSelectionRequired )( 
              __RPC__in ISelectionProvider * This,
              /* [annotation][retval][out] */ 
              _Out_retval_  BOOL *pRetVal);
          
          END_INTERFACE
      } ISelectionProviderVtbl;
  
      interface ISelectionProvider
      {
          CONST_VTBL struct ISelectionProviderVtbl *lpVtbl;
      };
  
      
  
  #ifdef COBJMACROS
  
  
  #define ISelectionProvider_QueryInterface(This,riid,ppvObject)	\
      ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
  
  #define ISelectionProvider_AddRef(This)	\
      ( (This)->lpVtbl -> AddRef(This) ) 
  
  #define ISelectionProvider_Release(This)	\
      ( (This)->lpVtbl -> Release(This) ) 
  
  
  #define ISelectionProvider_GetSelection(This,pRetVal)	\
      ( (This)->lpVtbl -> GetSelection(This,pRetVal) ) 
  
  #define ISelectionProvider_get_CanSelectMultiple(This,pRetVal)	\
      ( (This)->lpVtbl -> get_CanSelectMultiple(This,pRetVal) ) 
  
  #define ISelectionProvider_get_IsSelectionRequired(This,pRetVal)	\
      ( (This)->lpVtbl -> get_IsSelectionRequired(This,pRetVal) ) 
  
  #endif /* COBJMACROS */
  
  
  #endif 	/* C style interface */
  
  
  
  
  #endif 	/* __ISelectionProvider_INTERFACE_DEFINED__ */
  
  
  #ifndef __ISelectionProvider2_INTERFACE_DEFINED__
  #define __ISelectionProvider2_INTERFACE_DEFINED__
  
  /* interface ISelectionProvider2 */
  /* [oleautomation][unique][uuid][object] */ 
  
  
  EXTERN_C const IID IID_ISelectionProvider2;
  
  #if defined(__cplusplus) && !defined(CINTERFACE)
      
      MIDL_INTERFACE("14f68475-ee1c-44f6-a869-d239381f0fe7")
      ISelectionProvider2 : public ISelectionProvider
      {
      public:
          virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_FirstSelectedItem( 
              /* [annotation][retval][out] */ 
              _Out_retval_  IRawElementProviderSimple **retVal) = 0;
          
          virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_LastSelectedItem( 
              /* [annotation][retval][out] */ 
              _Out_retval_  IRawElementProviderSimple **retVal) = 0;
          
          virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_CurrentSelectedItem( 
              /* [annotation][retval][out] */ 
              _Out_retval_  IRawElementProviderSimple **retVal) = 0;
          
          virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_ItemCount( 
              /* [annotation][retval][out] */ 
              _Out_retval_  int *retVal) = 0;
          
      };
      
      
  #else 	/* C style interface */
  
      typedef struct ISelectionProvider2Vtbl
      {
          BEGIN_INTERFACE
          
          DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
          HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
              __RPC__in ISelectionProvider2 * This,
              /* [annotation][in] */ 
              _In_  REFIID riid,
              /* [annotation][iid_is][out] */ 
              _COM_Outptr_  void **ppvObject);
          
          DECLSPEC_XFGVIRT(IUnknown, AddRef)
          ULONG ( STDMETHODCALLTYPE *AddRef )( 
              __RPC__in ISelectionProvider2 * This);
          
          DECLSPEC_XFGVIRT(IUnknown, Release)
          ULONG ( STDMETHODCALLTYPE *Release )( 
              __RPC__in ISelectionProvider2 * This);
          
          DECLSPEC_XFGVIRT(ISelectionProvider, GetSelection)
          HRESULT ( STDMETHODCALLTYPE *GetSelection )( 
              __RPC__in ISelectionProvider2 * This,
              /* [annotation][retval][out] */ 
              _Out_retval_  SAFEARRAY * *pRetVal);
          
          DECLSPEC_XFGVIRT(ISelectionProvider, get_CanSelectMultiple)
          /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_CanSelectMultiple )( 
              __RPC__in ISelectionProvider2 * This,
              /* [annotation][retval][out] */ 
              _Out_retval_  BOOL *pRetVal);
          
          DECLSPEC_XFGVIRT(ISelectionProvider, get_IsSelectionRequired)
          /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_IsSelectionRequired )( 
              __RPC__in ISelectionProvider2 * This,
              /* [annotation][retval][out] */ 
              _Out_retval_  BOOL *pRetVal);
          
          DECLSPEC_XFGVIRT(ISelectionProvider2, get_FirstSelectedItem)
          /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_FirstSelectedItem )( 
              __RPC__in ISelectionProvider2 * This,
              /* [annotation][retval][out] */ 
              _Out_retval_  IRawElementProviderSimple **retVal);
          
          DECLSPEC_XFGVIRT(ISelectionProvider2, get_LastSelectedItem)
          /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_LastSelectedItem )( 
              __RPC__in ISelectionProvider2 * This,
              /* [annotation][retval][out] */ 
              _Out_retval_  IRawElementProviderSimple **retVal);
          
          DECLSPEC_XFGVIRT(ISelectionProvider2, get_CurrentSelectedItem)
          /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_CurrentSelectedItem )( 
              __RPC__in ISelectionProvider2 * This,
              /* [annotation][retval][out] */ 
              _Out_retval_  IRawElementProviderSimple **retVal);
          
          DECLSPEC_XFGVIRT(ISelectionProvider2, get_ItemCount)
          /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_ItemCount )( 
              __RPC__in ISelectionProvider2 * This,
              /* [annotation][retval][out] */ 
              _Out_retval_  int *retVal);
          
          END_INTERFACE
      } ISelectionProvider2Vtbl;
  
      interface ISelectionProvider2
      {
          CONST_VTBL struct ISelectionProvider2Vtbl *lpVtbl;
      };
  
      
  
  #ifdef COBJMACROS
  
  
  #define ISelectionProvider2_QueryInterface(This,riid,ppvObject)	\
      ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
  
  #define ISelectionProvider2_AddRef(This)	\
      ( (This)->lpVtbl -> AddRef(This) ) 
  
  #define ISelectionProvider2_Release(This)	\
      ( (This)->lpVtbl -> Release(This) ) 
  
  
  #define ISelectionProvider2_GetSelection(This,pRetVal)	\
      ( (This)->lpVtbl -> GetSelection(This,pRetVal) ) 
  
  #define ISelectionProvider2_get_CanSelectMultiple(This,pRetVal)	\
      ( (This)->lpVtbl -> get_CanSelectMultiple(This,pRetVal) ) 
  
  #define ISelectionProvider2_get_IsSelectionRequired(This,pRetVal)	\
      ( (This)->lpVtbl -> get_IsSelectionRequired(This,pRetVal) ) 
  
  
  #define ISelectionProvider2_get_FirstSelectedItem(This,retVal)	\
      ( (This)->lpVtbl -> get_FirstSelectedItem(This,retVal) ) 
  
  #define ISelectionProvider2_get_LastSelectedItem(This,retVal)	\
      ( (This)->lpVtbl -> get_LastSelectedItem(This,retVal) ) 
  
  #define ISelectionProvider2_get_CurrentSelectedItem(This,retVal)	\
      ( (This)->lpVtbl -> get_CurrentSelectedItem(This,retVal) ) 
  
  #define ISelectionProvider2_get_ItemCount(This,retVal)	\
      ( (This)->lpVtbl -> get_ItemCount(This,retVal) ) 
  
  #endif /* COBJMACROS */
  
  
  #endif 	/* C style interface */
  
  
  
  
  #endif 	/* __ISelectionProvider2_INTERFACE_DEFINED__ */
  
  
  #ifndef __IScrollProvider_INTERFACE_DEFINED__
  #define __IScrollProvider_INTERFACE_DEFINED__
  
  /* interface IScrollProvider */
  /* [oleautomation][unique][uuid][object] */ 
  
  
  EXTERN_C const IID IID_IScrollProvider;
  
  #if defined(__cplusplus) && !defined(CINTERFACE)
      
      MIDL_INTERFACE("b38b8077-1fc3-42a5-8cae-d40c2215055a")
      IScrollProvider : public IUnknown
      {
      public:
          virtual HRESULT STDMETHODCALLTYPE Scroll( 
              /* [annotation][in] */ 
              _In_  enum ScrollAmount horizontalAmount,
              /* [annotation][in] */ 
              _In_  enum ScrollAmount verticalAmount) = 0;
          
          virtual HRESULT STDMETHODCALLTYPE SetScrollPercent( 
              /* [annotation][in] */ 
              _In_  double horizontalPercent,
              /* [annotation][in] */ 
              _In_  double verticalPercent) = 0;
          
          virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_HorizontalScrollPercent( 
              /* [annotation][retval][out] */ 
              _Out_retval_  double *pRetVal) = 0;
          
          virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_VerticalScrollPercent( 
              /* [annotation][retval][out] */ 
              _Out_retval_  double *pRetVal) = 0;
          
          virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_HorizontalViewSize( 
              /* [annotation][retval][out] */ 
              _Out_retval_  double *pRetVal) = 0;
          
          virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_VerticalViewSize( 
              /* [annotation][retval][out] */ 
              _Out_retval_  double *pRetVal) = 0;
          
          virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_HorizontallyScrollable( 
              /* [annotation][retval][out] */ 
              _Out_retval_  BOOL *pRetVal) = 0;
          
          virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_VerticallyScrollable( 
              /* [annotation][retval][out] */ 
              _Out_retval_  BOOL *pRetVal) = 0;
          
      };
      
      
  #else 	/* C style interface */
  
      typedef struct IScrollProviderVtbl
      {
          BEGIN_INTERFACE
          
          DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
          HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
              __RPC__in IScrollProvider * This,
              /* [annotation][in] */ 
              _In_  REFIID riid,
              /* [annotation][iid_is][out] */ 
              _COM_Outptr_  void **ppvObject);
          
          DECLSPEC_XFGVIRT(IUnknown, AddRef)
          ULONG ( STDMETHODCALLTYPE *AddRef )( 
              __RPC__in IScrollProvider * This);
          
          DECLSPEC_XFGVIRT(IUnknown, Release)
          ULONG ( STDMETHODCALLTYPE *Release )( 
              __RPC__in IScrollProvider * This);
          
          DECLSPEC_XFGVIRT(IScrollProvider, Scroll)
          HRESULT ( STDMETHODCALLTYPE *Scroll )( 
              __RPC__in IScrollProvider * This,
              /* [annotation][in] */ 
              _In_  enum ScrollAmount horizontalAmount,
              /* [annotation][in] */ 
              _In_  enum ScrollAmount verticalAmount);
          
          DECLSPEC_XFGVIRT(IScrollProvider, SetScrollPercent)
          HRESULT ( STDMETHODCALLTYPE *SetScrollPercent )( 
              __RPC__in IScrollProvider * This,
              /* [annotation][in] */ 
              _In_  double horizontalPercent,
              /* [annotation][in] */ 
              _In_  double verticalPercent);
          
          DECLSPEC_XFGVIRT(IScrollProvider, get_HorizontalScrollPercent)
          /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_HorizontalScrollPercent )( 
              __RPC__in IScrollProvider * This,
              /* [annotation][retval][out] */ 
              _Out_retval_  double *pRetVal);
          
          DECLSPEC_XFGVIRT(IScrollProvider, get_VerticalScrollPercent)
          /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_VerticalScrollPercent )( 
              __RPC__in IScrollProvider * This,
              /* [annotation][retval][out] */ 
              _Out_retval_  double *pRetVal);
          
          DECLSPEC_XFGVIRT(IScrollProvider, get_HorizontalViewSize)
          /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_HorizontalViewSize )( 
              __RPC__in IScrollProvider * This,
              /* [annotation][retval][out] */ 
              _Out_retval_  double *pRetVal);
          
          DECLSPEC_XFGVIRT(IScrollProvider, get_VerticalViewSize)
          /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_VerticalViewSize )( 
              __RPC__in IScrollProvider * This,
              /* [annotation][retval][out] */ 
              _Out_retval_  double *pRetVal);
          
          DECLSPEC_XFGVIRT(IScrollProvider, get_HorizontallyScrollable)
          /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_HorizontallyScrollable )( 
              __RPC__in IScrollProvider * This,
              /* [annotation][retval][out] */ 
              _Out_retval_  BOOL *pRetVal);
          
          DECLSPEC_XFGVIRT(IScrollProvider, get_VerticallyScrollable)
          /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_VerticallyScrollable )( 
              __RPC__in IScrollProvider * This,
              /* [annotation][retval][out] */ 
              _Out_retval_  BOOL *pRetVal);
          
          END_INTERFACE
      } IScrollProviderVtbl;
  
      interface IScrollProvider
      {
          CONST_VTBL struct IScrollProviderVtbl *lpVtbl;
      };
  
      
  
  #ifdef COBJMACROS
  
  
  #define IScrollProvider_QueryInterface(This,riid,ppvObject)	\
      ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
  
  #define IScrollProvider_AddRef(This)	\
      ( (This)->lpVtbl -> AddRef(This) ) 
  
  #define IScrollProvider_Release(This)	\
      ( (This)->lpVtbl -> Release(This) ) 
  
  
  #define IScrollProvider_Scroll(This,horizontalAmount,verticalAmount)	\
      ( (This)->lpVtbl -> Scroll(This,horizontalAmount,verticalAmount) ) 
  
  #define IScrollProvider_SetScrollPercent(This,horizontalPercent,verticalPercent)	\
      ( (This)->lpVtbl -> SetScrollPercent(This,horizontalPercent,verticalPercent) ) 
  
  #define IScrollProvider_get_HorizontalScrollPercent(This,pRetVal)	\
      ( (This)->lpVtbl -> get_HorizontalScrollPercent(This,pRetVal) ) 
  
  #define IScrollProvider_get_VerticalScrollPercent(This,pRetVal)	\
      ( (This)->lpVtbl -> get_VerticalScrollPercent(This,pRetVal) ) 
  
  #define IScrollProvider_get_HorizontalViewSize(This,pRetVal)	\
      ( (This)->lpVtbl -> get_HorizontalViewSize(This,pRetVal) ) 
  
  #define IScrollProvider_get_VerticalViewSize(This,pRetVal)	\
      ( (This)->lpVtbl -> get_VerticalViewSize(This,pRetVal) ) 
  
  #define IScrollProvider_get_HorizontallyScrollable(This,pRetVal)	\
      ( (This)->lpVtbl -> get_HorizontallyScrollable(This,pRetVal) ) 
  
  #define IScrollProvider_get_VerticallyScrollable(This,pRetVal)	\
      ( (This)->lpVtbl -> get_VerticallyScrollable(This,pRetVal) ) 
  
  #endif /* COBJMACROS */
  
  
  #endif 	/* C style interface */
  
  
  
  
  #endif 	/* __IScrollProvider_INTERFACE_DEFINED__ */
  
  
  #ifndef __ISelectionItemProvider_INTERFACE_DEFINED__
  #define __ISelectionItemProvider_INTERFACE_DEFINED__
  
  /* interface ISelectionItemProvider */
  /* [oleautomation][unique][uuid][object] */ 
  
  
  EXTERN_C const IID IID_ISelectionItemProvider;
  
  #if defined(__cplusplus) && !defined(CINTERFACE)
      
      MIDL_INTERFACE("2acad808-b2d4-452d-a407-91ff1ad167b2")
      ISelectionItemProvider : public IUnknown
      {
      public:
          virtual HRESULT STDMETHODCALLTYPE Select( void) = 0;
          
          virtual HRESULT STDMETHODCALLTYPE AddToSelection( void) = 0;
          
          virtual HRESULT STDMETHODCALLTYPE RemoveFromSelection( void) = 0;
          
          virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_IsSelected( 
              /* [annotation][retval][out] */ 
              _Out_retval_  BOOL *pRetVal) = 0;
          
          virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_SelectionContainer( 
              /* [annotation][retval][out] */ 
              _Out_retval_  IRawElementProviderSimple **pRetVal) = 0;
          
      };
      
      
  #else 	/* C style interface */
  
      typedef struct ISelectionItemProviderVtbl
      {
          BEGIN_INTERFACE
          
          DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
          HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
              __RPC__in ISelectionItemProvider * This,
              /* [annotation][in] */ 
              _In_  REFIID riid,
              /* [annotation][iid_is][out] */ 
              _COM_Outptr_  void **ppvObject);
          
          DECLSPEC_XFGVIRT(IUnknown, AddRef)
          ULONG ( STDMETHODCALLTYPE *AddRef )( 
              __RPC__in ISelectionItemProvider * This);
          
          DECLSPEC_XFGVIRT(IUnknown, Release)
          ULONG ( STDMETHODCALLTYPE *Release )( 
              __RPC__in ISelectionItemProvider * This);
          
          DECLSPEC_XFGVIRT(ISelectionItemProvider, Select)
          HRESULT ( STDMETHODCALLTYPE *Select )( 
              __RPC__in ISelectionItemProvider * This);
          
          DECLSPEC_XFGVIRT(ISelectionItemProvider, AddToSelection)
          HRESULT ( STDMETHODCALLTYPE *AddToSelection )( 
              __RPC__in ISelectionItemProvider * This);
          
          DECLSPEC_XFGVIRT(ISelectionItemProvider, RemoveFromSelection)
          HRESULT ( STDMETHODCALLTYPE *RemoveFromSelection )( 
              __RPC__in ISelectionItemProvider * This);
          
          DECLSPEC_XFGVIRT(ISelectionItemProvider, get_IsSelected)
          /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_IsSelected )( 
              __RPC__in ISelectionItemProvider * This,
              /* [annotation][retval][out] */ 
              _Out_retval_  BOOL *pRetVal);
          
          DECLSPEC_XFGVIRT(ISelectionItemProvider, get_SelectionContainer)
          /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_SelectionContainer )( 
              __RPC__in ISelectionItemProvider * This,
              /* [annotation][retval][out] */ 
              _Out_retval_  IRawElementProviderSimple **pRetVal);
          
          END_INTERFACE
      } ISelectionItemProviderVtbl;
  
      interface ISelectionItemProvider
      {
          CONST_VTBL struct ISelectionItemProviderVtbl *lpVtbl;
      };
  
      
  
  #ifdef COBJMACROS
  
  
  #define ISelectionItemProvider_QueryInterface(This,riid,ppvObject)	\
      ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
  
  #define ISelectionItemProvider_AddRef(This)	\
      ( (This)->lpVtbl -> AddRef(This) ) 
  
  #define ISelectionItemProvider_Release(This)	\
      ( (This)->lpVtbl -> Release(This) ) 
  
  
  #define ISelectionItemProvider_Select(This)	\
      ( (This)->lpVtbl -> Select(This) ) 
  
  #define ISelectionItemProvider_AddToSelection(This)	\
      ( (This)->lpVtbl -> AddToSelection(This) ) 
  
  #define ISelectionItemProvider_RemoveFromSelection(This)	\
      ( (This)->lpVtbl -> RemoveFromSelection(This) ) 
  
  #define ISelectionItemProvider_get_IsSelected(This,pRetVal)	\
      ( (This)->lpVtbl -> get_IsSelected(This,pRetVal) ) 
  
  #define ISelectionItemProvider_get_SelectionContainer(This,pRetVal)	\
      ( (This)->lpVtbl -> get_SelectionContainer(This,pRetVal) ) 
  
  #endif /* COBJMACROS */
  
  
  #endif 	/* C style interface */
  
  
  
  
  #endif 	/* __ISelectionItemProvider_INTERFACE_DEFINED__ */
  
  
  #ifndef __ISynchronizedInputProvider_INTERFACE_DEFINED__
  #define __ISynchronizedInputProvider_INTERFACE_DEFINED__
  
  /* interface ISynchronizedInputProvider */
  /* [oleautomation][unique][uuid][object] */ 
  
  
  EXTERN_C const IID IID_ISynchronizedInputProvider;
  
  #if defined(__cplusplus) && !defined(CINTERFACE)
      
      MIDL_INTERFACE("29db1a06-02ce-4cf7-9b42-565d4fab20ee")
      ISynchronizedInputProvider : public IUnknown
      {
      public:
          virtual HRESULT STDMETHODCALLTYPE StartListening( 
              /* [annotation][in] */ 
              _In_  enum SynchronizedInputType inputType) = 0;
          
          virtual HRESULT STDMETHODCALLTYPE Cancel( void) = 0;
          
      };
      
      
  #else 	/* C style interface */
  
      typedef struct ISynchronizedInputProviderVtbl
      {
          BEGIN_INTERFACE
          
          DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
          HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
              __RPC__in ISynchronizedInputProvider * This,
              /* [annotation][in] */ 
              _In_  REFIID riid,
              /* [annotation][iid_is][out] */ 
              _COM_Outptr_  void **ppvObject);
          
          DECLSPEC_XFGVIRT(IUnknown, AddRef)
          ULONG ( STDMETHODCALLTYPE *AddRef )( 
              __RPC__in ISynchronizedInputProvider * This);
          
          DECLSPEC_XFGVIRT(IUnknown, Release)
          ULONG ( STDMETHODCALLTYPE *Release )( 
              __RPC__in ISynchronizedInputProvider * This);
          
          DECLSPEC_XFGVIRT(ISynchronizedInputProvider, StartListening)
          HRESULT ( STDMETHODCALLTYPE *StartListening )( 
              __RPC__in ISynchronizedInputProvider * This,
              /* [annotation][in] */ 
              _In_  enum SynchronizedInputType inputType);
          
          DECLSPEC_XFGVIRT(ISynchronizedInputProvider, Cancel)
          HRESULT ( STDMETHODCALLTYPE *Cancel )( 
              __RPC__in ISynchronizedInputProvider * This);
          
          END_INTERFACE
      } ISynchronizedInputProviderVtbl;
  
      interface ISynchronizedInputProvider
      {
          CONST_VTBL struct ISynchronizedInputProviderVtbl *lpVtbl;
      };
  
      
  
  #ifdef COBJMACROS
  
  
  #define ISynchronizedInputProvider_QueryInterface(This,riid,ppvObject)	\
      ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
  
  #define ISynchronizedInputProvider_AddRef(This)	\
      ( (This)->lpVtbl -> AddRef(This) ) 
  
  #define ISynchronizedInputProvider_Release(This)	\
      ( (This)->lpVtbl -> Release(This) ) 
  
  
  #define ISynchronizedInputProvider_StartListening(This,inputType)	\
      ( (This)->lpVtbl -> StartListening(This,inputType) ) 
  
  #define ISynchronizedInputProvider_Cancel(This)	\
      ( (This)->lpVtbl -> Cancel(This) ) 
  
  #endif /* COBJMACROS */
  
  
  #endif 	/* C style interface */
  
  
  
  
  #endif 	/* __ISynchronizedInputProvider_INTERFACE_DEFINED__ */
  
  
  #ifndef __ITableProvider_INTERFACE_DEFINED__
  #define __ITableProvider_INTERFACE_DEFINED__
  
  /* interface ITableProvider */
  /* [oleautomation][unique][uuid][object] */ 
  
  
  EXTERN_C const IID IID_ITableProvider;
  
  #if defined(__cplusplus) && !defined(CINTERFACE)
      
      MIDL_INTERFACE("9c860395-97b3-490a-b52a-858cc22af166")
      ITableProvider : public IUnknown
      {
      public:
          virtual HRESULT STDMETHODCALLTYPE GetRowHeaders( 
              /* [annotation][retval][out] */ 
              _Out_retval_  SAFEARRAY * *pRetVal) = 0;
          
          virtual HRESULT STDMETHODCALLTYPE GetColumnHeaders( 
              /* [annotation][retval][out] */ 
              _Out_retval_  SAFEARRAY * *pRetVal) = 0;
          
          virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_RowOrColumnMajor( 
              /* [annotation][retval][out] */ 
              _Out_retval_  enum RowOrColumnMajor *pRetVal) = 0;
          
      };
      
      
  #else 	/* C style interface */
  
      typedef struct ITableProviderVtbl
      {
          BEGIN_INTERFACE
          
          DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
          HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
              __RPC__in ITableProvider * This,
              /* [annotation][in] */ 
              _In_  REFIID riid,
              /* [annotation][iid_is][out] */ 
              _COM_Outptr_  void **ppvObject);
          
          DECLSPEC_XFGVIRT(IUnknown, AddRef)
          ULONG ( STDMETHODCALLTYPE *AddRef )( 
              __RPC__in ITableProvider * This);
          
          DECLSPEC_XFGVIRT(IUnknown, Release)
          ULONG ( STDMETHODCALLTYPE *Release )( 
              __RPC__in ITableProvider * This);
          
          DECLSPEC_XFGVIRT(ITableProvider, GetRowHeaders)
          HRESULT ( STDMETHODCALLTYPE *GetRowHeaders )( 
              __RPC__in ITableProvider * This,
              /* [annotation][retval][out] */ 
              _Out_retval_  SAFEARRAY * *pRetVal);
          
          DECLSPEC_XFGVIRT(ITableProvider, GetColumnHeaders)
          HRESULT ( STDMETHODCALLTYPE *GetColumnHeaders )( 
              __RPC__in ITableProvider * This,
              /* [annotation][retval][out] */ 
              _Out_retval_  SAFEARRAY * *pRetVal);
          
          DECLSPEC_XFGVIRT(ITableProvider, get_RowOrColumnMajor)
          /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_RowOrColumnMajor )( 
              __RPC__in ITableProvider * This,
              /* [annotation][retval][out] */ 
              _Out_retval_  enum RowOrColumnMajor *pRetVal);
          
          END_INTERFACE
      } ITableProviderVtbl;
  
      interface ITableProvider
      {
          CONST_VTBL struct ITableProviderVtbl *lpVtbl;
      };
  
      
  
  #ifdef COBJMACROS
  
  
  #define ITableProvider_QueryInterface(This,riid,ppvObject)	\
      ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
  
  #define ITableProvider_AddRef(This)	\
      ( (This)->lpVtbl -> AddRef(This) ) 
  
  #define ITableProvider_Release(This)	\
      ( (This)->lpVtbl -> Release(This) ) 
  
  
  #define ITableProvider_GetRowHeaders(This,pRetVal)	\
      ( (This)->lpVtbl -> GetRowHeaders(This,pRetVal) ) 
  
  #define ITableProvider_GetColumnHeaders(This,pRetVal)	\
      ( (This)->lpVtbl -> GetColumnHeaders(This,pRetVal) ) 
  
  #define ITableProvider_get_RowOrColumnMajor(This,pRetVal)	\
      ( (This)->lpVtbl -> get_RowOrColumnMajor(This,pRetVal) ) 
  
  #endif /* COBJMACROS */
  
  
  #endif 	/* C style interface */
  
  
  
  
  #endif 	/* __ITableProvider_INTERFACE_DEFINED__ */
  
  
  #ifndef __ITableItemProvider_INTERFACE_DEFINED__
  #define __ITableItemProvider_INTERFACE_DEFINED__
  
  /* interface ITableItemProvider */
  /* [oleautomation][unique][uuid][object] */ 
  
  
  EXTERN_C const IID IID_ITableItemProvider;
  
  #if defined(__cplusplus) && !defined(CINTERFACE)
      
      MIDL_INTERFACE("b9734fa6-771f-4d78-9c90-2517999349cd")
      ITableItemProvider : public IUnknown
      {
      public:
          virtual HRESULT STDMETHODCALLTYPE GetRowHeaderItems( 
              /* [annotation][retval][out] */ 
              _Out_retval_  SAFEARRAY * *pRetVal) = 0;
          
          virtual HRESULT STDMETHODCALLTYPE GetColumnHeaderItems( 
              /* [annotation][retval][out] */ 
              _Out_retval_  SAFEARRAY * *pRetVal) = 0;
          
      };
      
      
  #else 	/* C style interface */
  
      typedef struct ITableItemProviderVtbl
      {
          BEGIN_INTERFACE
          
          DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
          HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
              __RPC__in ITableItemProvider * This,
              /* [annotation][in] */ 
              _In_  REFIID riid,
              /* [annotation][iid_is][out] */ 
              _COM_Outptr_  void **ppvObject);
          
          DECLSPEC_XFGVIRT(IUnknown, AddRef)
          ULONG ( STDMETHODCALLTYPE *AddRef )( 
              __RPC__in ITableItemProvider * This);
          
          DECLSPEC_XFGVIRT(IUnknown, Release)
          ULONG ( STDMETHODCALLTYPE *Release )( 
              __RPC__in ITableItemProvider * This);
          
          DECLSPEC_XFGVIRT(ITableItemProvider, GetRowHeaderItems)
          HRESULT ( STDMETHODCALLTYPE *GetRowHeaderItems )( 
              __RPC__in ITableItemProvider * This,
              /* [annotation][retval][out] */ 
              _Out_retval_  SAFEARRAY * *pRetVal);
          
          DECLSPEC_XFGVIRT(ITableItemProvider, GetColumnHeaderItems)
          HRESULT ( STDMETHODCALLTYPE *GetColumnHeaderItems )( 
              __RPC__in ITableItemProvider * This,
              /* [annotation][retval][out] */ 
              _Out_retval_  SAFEARRAY * *pRetVal);
          
          END_INTERFACE
      } ITableItemProviderVtbl;
  
      interface ITableItemProvider
      {
          CONST_VTBL struct ITableItemProviderVtbl *lpVtbl;
      };
  
      
  
  #ifdef COBJMACROS
  
  
  #define ITableItemProvider_QueryInterface(This,riid,ppvObject)	\
      ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
  
  #define ITableItemProvider_AddRef(This)	\
      ( (This)->lpVtbl -> AddRef(This) ) 
  
  #define ITableItemProvider_Release(This)	\
      ( (This)->lpVtbl -> Release(This) ) 
  
  
  #define ITableItemProvider_GetRowHeaderItems(This,pRetVal)	\
      ( (This)->lpVtbl -> GetRowHeaderItems(This,pRetVal) ) 
  
  #define ITableItemProvider_GetColumnHeaderItems(This,pRetVal)	\
      ( (This)->lpVtbl -> GetColumnHeaderItems(This,pRetVal) ) 
  
  #endif /* COBJMACROS */
  
  
  #endif 	/* C style interface */
  
  
  
  
  #endif 	/* __ITableItemProvider_INTERFACE_DEFINED__ */
  
  
  #ifndef __IToggleProvider_INTERFACE_DEFINED__
  #define __IToggleProvider_INTERFACE_DEFINED__
  
  /* interface IToggleProvider */
  /* [oleautomation][unique][uuid][object] */ 
  
  
  EXTERN_C const IID IID_IToggleProvider;
  
  #if defined(__cplusplus) && !defined(CINTERFACE)
      
      MIDL_INTERFACE("56d00bd0-c4f4-433c-a836-1a52a57e0892")
      IToggleProvider : public IUnknown
      {
      public:
          virtual HRESULT STDMETHODCALLTYPE Toggle( void) = 0;
          
          virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_ToggleState( 
              /* [annotation][retval][out] */ 
              _Out_retval_  enum ToggleState *pRetVal) = 0;
          
      };
      
      
  #else 	/* C style interface */
  
      typedef struct IToggleProviderVtbl
      {
          BEGIN_INTERFACE
          
          DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
          HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
              __RPC__in IToggleProvider * This,
              /* [annotation][in] */ 
              _In_  REFIID riid,
              /* [annotation][iid_is][out] */ 
              _COM_Outptr_  void **ppvObject);
          
          DECLSPEC_XFGVIRT(IUnknown, AddRef)
          ULONG ( STDMETHODCALLTYPE *AddRef )( 
              __RPC__in IToggleProvider * This);
          
          DECLSPEC_XFGVIRT(IUnknown, Release)
          ULONG ( STDMETHODCALLTYPE *Release )( 
              __RPC__in IToggleProvider * This);
          
          DECLSPEC_XFGVIRT(IToggleProvider, Toggle)
          HRESULT ( STDMETHODCALLTYPE *Toggle )( 
              __RPC__in IToggleProvider * This);
          
          DECLSPEC_XFGVIRT(IToggleProvider, get_ToggleState)
          /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_ToggleState )( 
              __RPC__in IToggleProvider * This,
              /* [annotation][retval][out] */ 
              _Out_retval_  enum ToggleState *pRetVal);
          
          END_INTERFACE
      } IToggleProviderVtbl;
  
      interface IToggleProvider
      {
          CONST_VTBL struct IToggleProviderVtbl *lpVtbl;
      };
  
      
  
  #ifdef COBJMACROS
  
  
  #define IToggleProvider_QueryInterface(This,riid,ppvObject)	\
      ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
  
  #define IToggleProvider_AddRef(This)	\
      ( (This)->lpVtbl -> AddRef(This) ) 
  
  #define IToggleProvider_Release(This)	\
      ( (This)->lpVtbl -> Release(This) ) 
  
  
  #define IToggleProvider_Toggle(This)	\
      ( (This)->lpVtbl -> Toggle(This) ) 
  
  #define IToggleProvider_get_ToggleState(This,pRetVal)	\
      ( (This)->lpVtbl -> get_ToggleState(This,pRetVal) ) 
  
  #endif /* COBJMACROS */
  
  
  #endif 	/* C style interface */
  
  
  
  
  #endif 	/* __IToggleProvider_INTERFACE_DEFINED__ */
  
  
  #ifndef __ITransformProvider_INTERFACE_DEFINED__
  #define __ITransformProvider_INTERFACE_DEFINED__
  
  /* interface ITransformProvider */
  /* [oleautomation][unique][uuid][object] */ 
  
  
  EXTERN_C const IID IID_ITransformProvider;
  
  #if defined(__cplusplus) && !defined(CINTERFACE)
      
      MIDL_INTERFACE("6829ddc4-4f91-4ffa-b86f-bd3e2987cb4c")
      ITransformProvider : public IUnknown
      {
      public:
          virtual HRESULT STDMETHODCALLTYPE Move( 
              /* [annotation][in] */ 
              _In_  double x,
              /* [annotation][in] */ 
              _In_  double y) = 0;
          
          virtual HRESULT STDMETHODCALLTYPE Resize( 
              /* [annotation][in] */ 
              _In_  double width,
              /* [annotation][in] */ 
              _In_  double height) = 0;
          
          virtual HRESULT STDMETHODCALLTYPE Rotate( 
              /* [annotation][in] */ 
              _In_  double degrees) = 0;
          
          virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_CanMove( 
              /* [annotation][retval][out] */ 
              _Out_retval_  BOOL *pRetVal) = 0;
          
          virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_CanResize( 
              /* [annotation][retval][out] */ 
              _Out_retval_  BOOL *pRetVal) = 0;
          
          virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_CanRotate( 
              /* [annotation][retval][out] */ 
              _Out_retval_  BOOL *pRetVal) = 0;
          
      };
      
      
  #else 	/* C style interface */
  
      typedef struct ITransformProviderVtbl
      {
          BEGIN_INTERFACE
          
          DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
          HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
              __RPC__in ITransformProvider * This,
              /* [annotation][in] */ 
              _In_  REFIID riid,
              /* [annotation][iid_is][out] */ 
              _COM_Outptr_  void **ppvObject);
          
          DECLSPEC_XFGVIRT(IUnknown, AddRef)
          ULONG ( STDMETHODCALLTYPE *AddRef )( 
              __RPC__in ITransformProvider * This);
          
          DECLSPEC_XFGVIRT(IUnknown, Release)
          ULONG ( STDMETHODCALLTYPE *Release )( 
              __RPC__in ITransformProvider * This);
          
          DECLSPEC_XFGVIRT(ITransformProvider, Move)
          HRESULT ( STDMETHODCALLTYPE *Move )( 
              __RPC__in ITransformProvider * This,
              /* [annotation][in] */ 
              _In_  double x,
              /* [annotation][in] */ 
              _In_  double y);
          
          DECLSPEC_XFGVIRT(ITransformProvider, Resize)
          HRESULT ( STDMETHODCALLTYPE *Resize )( 
              __RPC__in ITransformProvider * This,
              /* [annotation][in] */ 
              _In_  double width,
              /* [annotation][in] */ 
              _In_  double height);
          
          DECLSPEC_XFGVIRT(ITransformProvider, Rotate)
          HRESULT ( STDMETHODCALLTYPE *Rotate )( 
              __RPC__in ITransformProvider * This,
              /* [annotation][in] */ 
              _In_  double degrees);
          
          DECLSPEC_XFGVIRT(ITransformProvider, get_CanMove)
          /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_CanMove )( 
              __RPC__in ITransformProvider * This,
              /* [annotation][retval][out] */ 
              _Out_retval_  BOOL *pRetVal);
          
          DECLSPEC_XFGVIRT(ITransformProvider, get_CanResize)
          /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_CanResize )( 
              __RPC__in ITransformProvider * This,
              /* [annotation][retval][out] */ 
              _Out_retval_  BOOL *pRetVal);
          
          DECLSPEC_XFGVIRT(ITransformProvider, get_CanRotate)
          /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_CanRotate )( 
              __RPC__in ITransformProvider * This,
              /* [annotation][retval][out] */ 
              _Out_retval_  BOOL *pRetVal);
          
          END_INTERFACE
      } ITransformProviderVtbl;
  
      interface ITransformProvider
      {
          CONST_VTBL struct ITransformProviderVtbl *lpVtbl;
      };
  
      
  
  #ifdef COBJMACROS
  
  
  #define ITransformProvider_QueryInterface(This,riid,ppvObject)	\
      ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
  
  #define ITransformProvider_AddRef(This)	\
      ( (This)->lpVtbl -> AddRef(This) ) 
  
  #define ITransformProvider_Release(This)	\
      ( (This)->lpVtbl -> Release(This) ) 
  
  
  #define ITransformProvider_Move(This,x,y)	\
      ( (This)->lpVtbl -> Move(This,x,y) ) 
  
  #define ITransformProvider_Resize(This,width,height)	\
      ( (This)->lpVtbl -> Resize(This,width,height) ) 
  
  #define ITransformProvider_Rotate(This,degrees)	\
      ( (This)->lpVtbl -> Rotate(This,degrees) ) 
  
  #define ITransformProvider_get_CanMove(This,pRetVal)	\
      ( (This)->lpVtbl -> get_CanMove(This,pRetVal) ) 
  
  #define ITransformProvider_get_CanResize(This,pRetVal)	\
      ( (This)->lpVtbl -> get_CanResize(This,pRetVal) ) 
  
  #define ITransformProvider_get_CanRotate(This,pRetVal)	\
      ( (This)->lpVtbl -> get_CanRotate(This,pRetVal) ) 
  
  #endif /* COBJMACROS */
  
  
  #endif 	/* C style interface */
  
  
  
  
  #endif 	/* __ITransformProvider_INTERFACE_DEFINED__ */
  
  
  #ifndef __IValueProvider_INTERFACE_DEFINED__
  #define __IValueProvider_INTERFACE_DEFINED__
  
  /* interface IValueProvider */
  /* [oleautomation][unique][uuid][object] */ 
  
  
  EXTERN_C const IID IID_IValueProvider;
  
  #if defined(__cplusplus) && !defined(CINTERFACE)
      
      MIDL_INTERFACE("c7935180-6fb3-4201-b174-7df73adbf64a")
      IValueProvider : public IUnknown
      {
      public:
          virtual HRESULT STDMETHODCALLTYPE SetValue( 
              /* [annotation][in] */ 
              _In_  LPCWSTR val) = 0;
          
          virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Value( 
              /* [annotation][retval][out] */ 
              _Out_retval_  BSTR *pRetVal) = 0;
          
          virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_IsReadOnly( 
              /* [annotation][retval][out] */ 
              _Out_retval_  BOOL *pRetVal) = 0;
          
      };
      
      
  #else 	/* C style interface */
  
      typedef struct IValueProviderVtbl
      {
          BEGIN_INTERFACE
          
          DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
          HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
              __RPC__in IValueProvider * This,
              /* [annotation][in] */ 
              _In_  REFIID riid,
              /* [annotation][iid_is][out] */ 
              _COM_Outptr_  void **ppvObject);
          
          DECLSPEC_XFGVIRT(IUnknown, AddRef)
          ULONG ( STDMETHODCALLTYPE *AddRef )( 
              __RPC__in IValueProvider * This);
          
          DECLSPEC_XFGVIRT(IUnknown, Release)
          ULONG ( STDMETHODCALLTYPE *Release )( 
              __RPC__in IValueProvider * This);
          
          DECLSPEC_XFGVIRT(IValueProvider, SetValue)
          HRESULT ( STDMETHODCALLTYPE *SetValue )( 
              __RPC__in IValueProvider * This,
              /* [annotation][in] */ 
              _In_  LPCWSTR val);
          
          DECLSPEC_XFGVIRT(IValueProvider, get_Value)
          /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Value )( 
              __RPC__in IValueProvider * This,
              /* [annotation][retval][out] */ 
              _Out_retval_  BSTR *pRetVal);
          
          DECLSPEC_XFGVIRT(IValueProvider, get_IsReadOnly)
          /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_IsReadOnly )( 
              __RPC__in IValueProvider * This,
              /* [annotation][retval][out] */ 
              _Out_retval_  BOOL *pRetVal);
          
          END_INTERFACE
      } IValueProviderVtbl;
  
      interface IValueProvider
      {
          CONST_VTBL struct IValueProviderVtbl *lpVtbl;
      };
  
      
  
  #ifdef COBJMACROS
  
  
  #define IValueProvider_QueryInterface(This,riid,ppvObject)	\
      ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
  
  #define IValueProvider_AddRef(This)	\
      ( (This)->lpVtbl -> AddRef(This) ) 
  
  #define IValueProvider_Release(This)	\
      ( (This)->lpVtbl -> Release(This) ) 
  
  
  #define IValueProvider_SetValue(This,val)	\
      ( (This)->lpVtbl -> SetValue(This,val) ) 
  
  #define IValueProvider_get_Value(This,pRetVal)	\
      ( (This)->lpVtbl -> get_Value(This,pRetVal) ) 
  
  #define IValueProvider_get_IsReadOnly(This,pRetVal)	\
      ( (This)->lpVtbl -> get_IsReadOnly(This,pRetVal) ) 
  
  #endif /* COBJMACROS */
  
  
  #endif 	/* C style interface */
  
  
  
  
  #endif 	/* __IValueProvider_INTERFACE_DEFINED__ */
  
  
  #ifndef __IWindowProvider_INTERFACE_DEFINED__
  #define __IWindowProvider_INTERFACE_DEFINED__
  
  /* interface IWindowProvider */
  /* [oleautomation][unique][uuid][object] */ 
  
  
  EXTERN_C const IID IID_IWindowProvider;
  
  #if defined(__cplusplus) && !defined(CINTERFACE)
      
      MIDL_INTERFACE("987df77b-db06-4d77-8f8a-86a9c3bb90b9")
      IWindowProvider : public IUnknown
      {
      public:
          virtual HRESULT STDMETHODCALLTYPE SetVisualState( 
              /* [annotation][in] */ 
              _In_  enum WindowVisualState state) = 0;
          
          virtual HRESULT STDMETHODCALLTYPE Close( void) = 0;
          
          virtual HRESULT STDMETHODCALLTYPE WaitForInputIdle( 
              /* [annotation][in] */ 
              _In_  int milliseconds,
              /* [annotation][retval][out] */ 
              _Out_retval_  BOOL *pRetVal) = 0;
          
          virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_CanMaximize( 
              /* [annotation][retval][out] */ 
              _Out_retval_  BOOL *pRetVal) = 0;
          
          virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_CanMinimize( 
              /* [annotation][retval][out] */ 
              _Out_retval_  BOOL *pRetVal) = 0;
          
          virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_IsModal( 
              /* [annotation][retval][out] */ 
              _Out_retval_  BOOL *pRetVal) = 0;
          
          virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_WindowVisualState( 
              /* [annotation][retval][out] */ 
              _Out_retval_  enum WindowVisualState *pRetVal) = 0;
          
          virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_WindowInteractionState( 
              /* [annotation][retval][out] */ 
              _Out_retval_  enum WindowInteractionState *pRetVal) = 0;
          
          virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_IsTopmost( 
              /* [annotation][retval][out] */ 
              _Out_retval_  BOOL *pRetVal) = 0;
          
      };
      
      
  #else 	/* C style interface */
  
      typedef struct IWindowProviderVtbl
      {
          BEGIN_INTERFACE
          
          DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
          HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
              __RPC__in IWindowProvider * This,
              /* [annotation][in] */ 
              _In_  REFIID riid,
              /* [annotation][iid_is][out] */ 
              _COM_Outptr_  void **ppvObject);
          
          DECLSPEC_XFGVIRT(IUnknown, AddRef)
          ULONG ( STDMETHODCALLTYPE *AddRef )( 
              __RPC__in IWindowProvider * This);
          
          DECLSPEC_XFGVIRT(IUnknown, Release)
          ULONG ( STDMETHODCALLTYPE *Release )( 
              __RPC__in IWindowProvider * This);
          
          DECLSPEC_XFGVIRT(IWindowProvider, SetVisualState)
          HRESULT ( STDMETHODCALLTYPE *SetVisualState )( 
              __RPC__in IWindowProvider * This,
              /* [annotation][in] */ 
              _In_  enum WindowVisualState state);
          
          DECLSPEC_XFGVIRT(IWindowProvider, Close)
          HRESULT ( STDMETHODCALLTYPE *Close )( 
              __RPC__in IWindowProvider * This);
          
          DECLSPEC_XFGVIRT(IWindowProvider, WaitForInputIdle)
          HRESULT ( STDMETHODCALLTYPE *WaitForInputIdle )( 
              __RPC__in IWindowProvider * This,
              /* [annotation][in] */ 
              _In_  int milliseconds,
              /* [annotation][retval][out] */ 
              _Out_retval_  BOOL *pRetVal);
          
          DECLSPEC_XFGVIRT(IWindowProvider, get_CanMaximize)
          /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_CanMaximize )( 
              __RPC__in IWindowProvider * This,
              /* [annotation][retval][out] */ 
              _Out_retval_  BOOL *pRetVal);
          
          DECLSPEC_XFGVIRT(IWindowProvider, get_CanMinimize)
          /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_CanMinimize )( 
              __RPC__in IWindowProvider * This,
              /* [annotation][retval][out] */ 
              _Out_retval_  BOOL *pRetVal);
          
          DECLSPEC_XFGVIRT(IWindowProvider, get_IsModal)
          /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_IsModal )( 
              __RPC__in IWindowProvider * This,
              /* [annotation][retval][out] */ 
              _Out_retval_  BOOL *pRetVal);
          
          DECLSPEC_XFGVIRT(IWindowProvider, get_WindowVisualState)
          /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_WindowVisualState )( 
              __RPC__in IWindowProvider * This,
              /* [annotation][retval][out] */ 
              _Out_retval_  enum WindowVisualState *pRetVal);
          
          DECLSPEC_XFGVIRT(IWindowProvider, get_WindowInteractionState)
          /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_WindowInteractionState )( 
              __RPC__in IWindowProvider * This,
              /* [annotation][retval][out] */ 
              _Out_retval_  enum WindowInteractionState *pRetVal);
          
          DECLSPEC_XFGVIRT(IWindowProvider, get_IsTopmost)
          /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_IsTopmost )( 
              __RPC__in IWindowProvider * This,
              /* [annotation][retval][out] */ 
              _Out_retval_  BOOL *pRetVal);
          
          END_INTERFACE
      } IWindowProviderVtbl;
  
      interface IWindowProvider
      {
          CONST_VTBL struct IWindowProviderVtbl *lpVtbl;
      };
  
      
  
  #ifdef COBJMACROS
  
  
  #define IWindowProvider_QueryInterface(This,riid,ppvObject)	\
      ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
  
  #define IWindowProvider_AddRef(This)	\
      ( (This)->lpVtbl -> AddRef(This) ) 
  
  #define IWindowProvider_Release(This)	\
      ( (This)->lpVtbl -> Release(This) ) 
  
  
  #define IWindowProvider_SetVisualState(This,state)	\
      ( (This)->lpVtbl -> SetVisualState(This,state) ) 
  
  #define IWindowProvider_Close(This)	\
      ( (This)->lpVtbl -> Close(This) ) 
  
  #define IWindowProvider_WaitForInputIdle(This,milliseconds,pRetVal)	\
      ( (This)->lpVtbl -> WaitForInputIdle(This,milliseconds,pRetVal) ) 
  
  #define IWindowProvider_get_CanMaximize(This,pRetVal)	\
      ( (This)->lpVtbl -> get_CanMaximize(This,pRetVal) ) 
  
  #define IWindowProvider_get_CanMinimize(This,pRetVal)	\
      ( (This)->lpVtbl -> get_CanMinimize(This,pRetVal) ) 
  
  #define IWindowProvider_get_IsModal(This,pRetVal)	\
      ( (This)->lpVtbl -> get_IsModal(This,pRetVal) ) 
  
  #define IWindowProvider_get_WindowVisualState(This,pRetVal)	\
      ( (This)->lpVtbl -> get_WindowVisualState(This,pRetVal) ) 
  
  #define IWindowProvider_get_WindowInteractionState(This,pRetVal)	\
      ( (This)->lpVtbl -> get_WindowInteractionState(This,pRetVal) ) 
  
  #define IWindowProvider_get_IsTopmost(This,pRetVal)	\
      ( (This)->lpVtbl -> get_IsTopmost(This,pRetVal) ) 
  
  #endif /* COBJMACROS */
  
  
  #endif 	/* C style interface */
  
  
  
  
  #endif 	/* __IWindowProvider_INTERFACE_DEFINED__ */
  
  
  #ifndef __ILegacyIAccessibleProvider_INTERFACE_DEFINED__
  #define __ILegacyIAccessibleProvider_INTERFACE_DEFINED__
  
  /* interface ILegacyIAccessibleProvider */
  /* [oleautomation][unique][uuid][object] */ 
  
  
  EXTERN_C const IID IID_ILegacyIAccessibleProvider;
  
  #if defined(__cplusplus) && !defined(CINTERFACE)
      
      MIDL_INTERFACE("e44c3566-915d-4070-99c6-047bff5a08f5")
      ILegacyIAccessibleProvider : public IUnknown
      {
      public:
          virtual HRESULT STDMETHODCALLTYPE Select( 
              long flagsSelect) = 0;
          
          virtual HRESULT STDMETHODCALLTYPE DoDefaultAction( void) = 0;
          
          virtual HRESULT STDMETHODCALLTYPE SetValue( 
              __RPC__in LPCWSTR szValue) = 0;
          
          virtual HRESULT STDMETHODCALLTYPE GetIAccessible( 
              /* [annotation][retval][out] */ 
              _Out_retval_  IAccessible **ppAccessible) = 0;
          
          virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_ChildId( 
              /* [annotation][retval][out] */ 
              _Out_retval_  int *pRetVal) = 0;
          
          virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Name( 
              /* [annotation][retval][out] */ 
              _Out_retval_  BSTR *pszName) = 0;
          
          virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Value( 
              /* [annotation][retval][out] */ 
              _Out_retval_  BSTR *pszValue) = 0;
          
          virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Description( 
              /* [annotation][retval][out] */ 
              _Out_retval_  BSTR *pszDescription) = 0;
          
          virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Role( 
              /* [annotation][retval][out] */ 
              _Out_retval_  DWORD *pdwRole) = 0;
          
          virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_State( 
              /* [annotation][retval][out] */ 
              _Out_retval_  DWORD *pdwState) = 0;
          
          virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Help( 
              /* [annotation][retval][out] */ 
              _Out_retval_  BSTR *pszHelp) = 0;
          
          virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_KeyboardShortcut( 
              /* [annotation][retval][out] */ 
              _Out_retval_  BSTR *pszKeyboardShortcut) = 0;
          
          virtual HRESULT STDMETHODCALLTYPE GetSelection( 
              /* [annotation][retval][out] */ 
              _Out_retval_  SAFEARRAY * *pvarSelectedChildren) = 0;
          
          virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_DefaultAction( 
              /* [annotation][retval][out] */ 
              _Out_retval_  BSTR *pszDefaultAction) = 0;
          
      };
      
      
  #else 	/* C style interface */
  
      typedef struct ILegacyIAccessibleProviderVtbl
      {
          BEGIN_INTERFACE
          
          DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
          HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
              __RPC__in ILegacyIAccessibleProvider * This,
              /* [annotation][in] */ 
              _In_  REFIID riid,
              /* [annotation][iid_is][out] */ 
              _COM_Outptr_  void **ppvObject);
          
          DECLSPEC_XFGVIRT(IUnknown, AddRef)
          ULONG ( STDMETHODCALLTYPE *AddRef )( 
              __RPC__in ILegacyIAccessibleProvider * This);
          
          DECLSPEC_XFGVIRT(IUnknown, Release)
          ULONG ( STDMETHODCALLTYPE *Release )( 
              __RPC__in ILegacyIAccessibleProvider * This);
          
          DECLSPEC_XFGVIRT(ILegacyIAccessibleProvider, Select)
          HRESULT ( STDMETHODCALLTYPE *Select )( 
              __RPC__in ILegacyIAccessibleProvider * This,
              long flagsSelect);
          
          DECLSPEC_XFGVIRT(ILegacyIAccessibleProvider, DoDefaultAction)
          HRESULT ( STDMETHODCALLTYPE *DoDefaultAction )( 
              __RPC__in ILegacyIAccessibleProvider * This);
          
          DECLSPEC_XFGVIRT(ILegacyIAccessibleProvider, SetValue)
          HRESULT ( STDMETHODCALLTYPE *SetValue )( 
              __RPC__in ILegacyIAccessibleProvider * This,
              __RPC__in LPCWSTR szValue);
          
          DECLSPEC_XFGVIRT(ILegacyIAccessibleProvider, GetIAccessible)
          HRESULT ( STDMETHODCALLTYPE *GetIAccessible )( 
              __RPC__in ILegacyIAccessibleProvider * This,
              /* [annotation][retval][out] */ 
              _Out_retval_  IAccessible **ppAccessible);
          
          DECLSPEC_XFGVIRT(ILegacyIAccessibleProvider, get_ChildId)
          /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_ChildId )( 
              __RPC__in ILegacyIAccessibleProvider * This,
              /* [annotation][retval][out] */ 
              _Out_retval_  int *pRetVal);
          
          DECLSPEC_XFGVIRT(ILegacyIAccessibleProvider, get_Name)
          /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Name )( 
              __RPC__in ILegacyIAccessibleProvider * This,
              /* [annotation][retval][out] */ 
              _Out_retval_  BSTR *pszName);
          
          DECLSPEC_XFGVIRT(ILegacyIAccessibleProvider, get_Value)
          /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Value )( 
              __RPC__in ILegacyIAccessibleProvider * This,
              /* [annotation][retval][out] */ 
              _Out_retval_  BSTR *pszValue);
          
          DECLSPEC_XFGVIRT(ILegacyIAccessibleProvider, get_Description)
          /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Description )( 
              __RPC__in ILegacyIAccessibleProvider * This,
              /* [annotation][retval][out] */ 
              _Out_retval_  BSTR *pszDescription);
          
          DECLSPEC_XFGVIRT(ILegacyIAccessibleProvider, get_Role)
          /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Role )( 
              __RPC__in ILegacyIAccessibleProvider * This,
              /* [annotation][retval][out] */ 
              _Out_retval_  DWORD *pdwRole);
          
          DECLSPEC_XFGVIRT(ILegacyIAccessibleProvider, get_State)
          /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_State )( 
              __RPC__in ILegacyIAccessibleProvider * This,
              /* [annotation][retval][out] */ 
              _Out_retval_  DWORD *pdwState);
          
          DECLSPEC_XFGVIRT(ILegacyIAccessibleProvider, get_Help)
          /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Help )( 
              __RPC__in ILegacyIAccessibleProvider * This,
              /* [annotation][retval][out] */ 
              _Out_retval_  BSTR *pszHelp);
          
          DECLSPEC_XFGVIRT(ILegacyIAccessibleProvider, get_KeyboardShortcut)
          /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_KeyboardShortcut )( 
              __RPC__in ILegacyIAccessibleProvider * This,
              /* [annotation][retval][out] */ 
              _Out_retval_  BSTR *pszKeyboardShortcut);
          
          DECLSPEC_XFGVIRT(ILegacyIAccessibleProvider, GetSelection)
          HRESULT ( STDMETHODCALLTYPE *GetSelection )( 
              __RPC__in ILegacyIAccessibleProvider * This,
              /* [annotation][retval][out] */ 
              _Out_retval_  SAFEARRAY * *pvarSelectedChildren);
          
          DECLSPEC_XFGVIRT(ILegacyIAccessibleProvider, get_DefaultAction)
          /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_DefaultAction )( 
              __RPC__in ILegacyIAccessibleProvider * This,
              /* [annotation][retval][out] */ 
              _Out_retval_  BSTR *pszDefaultAction);
          
          END_INTERFACE
      } ILegacyIAccessibleProviderVtbl;
  
      interface ILegacyIAccessibleProvider
      {
          CONST_VTBL struct ILegacyIAccessibleProviderVtbl *lpVtbl;
      };
  
      
  
  #ifdef COBJMACROS
  
  
  #define ILegacyIAccessibleProvider_QueryInterface(This,riid,ppvObject)	\
      ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
  
  #define ILegacyIAccessibleProvider_AddRef(This)	\
      ( (This)->lpVtbl -> AddRef(This) ) 
  
  #define ILegacyIAccessibleProvider_Release(This)	\
      ( (This)->lpVtbl -> Release(This) ) 
  
  
  #define ILegacyIAccessibleProvider_Select(This,flagsSelect)	\
      ( (This)->lpVtbl -> Select(This,flagsSelect) ) 
  
  #define ILegacyIAccessibleProvider_DoDefaultAction(This)	\
      ( (This)->lpVtbl -> DoDefaultAction(This) ) 
  
  #define ILegacyIAccessibleProvider_SetValue(This,szValue)	\
      ( (This)->lpVtbl -> SetValue(This,szValue) ) 
  
  #define ILegacyIAccessibleProvider_GetIAccessible(This,ppAccessible)	\
      ( (This)->lpVtbl -> GetIAccessible(This,ppAccessible) ) 
  
  #define ILegacyIAccessibleProvider_get_ChildId(This,pRetVal)	\
      ( (This)->lpVtbl -> get_ChildId(This,pRetVal) ) 
  
  #define ILegacyIAccessibleProvider_get_Name(This,pszName)	\
      ( (This)->lpVtbl -> get_Name(This,pszName) ) 
  
  #define ILegacyIAccessibleProvider_get_Value(This,pszValue)	\
      ( (This)->lpVtbl -> get_Value(This,pszValue) ) 
  
  #define ILegacyIAccessibleProvider_get_Description(This,pszDescription)	\
      ( (This)->lpVtbl -> get_Description(This,pszDescription) ) 
  
  #define ILegacyIAccessibleProvider_get_Role(This,pdwRole)	\
      ( (This)->lpVtbl -> get_Role(This,pdwRole) ) 
  
  #define ILegacyIAccessibleProvider_get_State(This,pdwState)	\
      ( (This)->lpVtbl -> get_State(This,pdwState) ) 
  
  #define ILegacyIAccessibleProvider_get_Help(This,pszHelp)	\
      ( (This)->lpVtbl -> get_Help(This,pszHelp) ) 
  
  #define ILegacyIAccessibleProvider_get_KeyboardShortcut(This,pszKeyboardShortcut)	\
      ( (This)->lpVtbl -> get_KeyboardShortcut(This,pszKeyboardShortcut) ) 
  
  #define ILegacyIAccessibleProvider_GetSelection(This,pvarSelectedChildren)	\
      ( (This)->lpVtbl -> GetSelection(This,pvarSelectedChildren) ) 
  
  #define ILegacyIAccessibleProvider_get_DefaultAction(This,pszDefaultAction)	\
      ( (This)->lpVtbl -> get_DefaultAction(This,pszDefaultAction) ) 
  
  #endif /* COBJMACROS */
  
  
  #endif 	/* C style interface */
  
  
  
  
  #endif 	/* __ILegacyIAccessibleProvider_INTERFACE_DEFINED__ */
  
  
  #ifndef __IItemContainerProvider_INTERFACE_DEFINED__
  #define __IItemContainerProvider_INTERFACE_DEFINED__
  
  /* interface IItemContainerProvider */
  /* [oleautomation][unique][uuid][object] */ 
  
  
  EXTERN_C const IID IID_IItemContainerProvider;
  
  #if defined(__cplusplus) && !defined(CINTERFACE)
      
      MIDL_INTERFACE("e747770b-39ce-4382-ab30-d8fb3f336f24")
      IItemContainerProvider : public IUnknown
      {
      public:
          virtual HRESULT STDMETHODCALLTYPE FindItemByProperty( 
              /* [annotation][in] */ 
              _In_  IRawElementProviderSimple *pStartAfter,
              /* [annotation][in] */ 
              _In_  PROPERTYID propertyId,
              /* [annotation][in] */ 
              _In_  VARIANT value,
              /* [annotation][retval][out] */ 
              _Out_retval_  IRawElementProviderSimple **pFound) = 0;
          
      };
      
      
  #else 	/* C style interface */
  
      typedef struct IItemContainerProviderVtbl
      {
          BEGIN_INTERFACE
          
          DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
          HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
              __RPC__in IItemContainerProvider * This,
              /* [annotation][in] */ 
              _In_  REFIID riid,
              /* [annotation][iid_is][out] */ 
              _COM_Outptr_  void **ppvObject);
          
          DECLSPEC_XFGVIRT(IUnknown, AddRef)
          ULONG ( STDMETHODCALLTYPE *AddRef )( 
              __RPC__in IItemContainerProvider * This);
          
          DECLSPEC_XFGVIRT(IUnknown, Release)
          ULONG ( STDMETHODCALLTYPE *Release )( 
              __RPC__in IItemContainerProvider * This);
          
          DECLSPEC_XFGVIRT(IItemContainerProvider, FindItemByProperty)
          HRESULT ( STDMETHODCALLTYPE *FindItemByProperty )( 
              __RPC__in IItemContainerProvider * This,
              /* [annotation][in] */ 
              _In_  IRawElementProviderSimple *pStartAfter,
              /* [annotation][in] */ 
              _In_  PROPERTYID propertyId,
              /* [annotation][in] */ 
              _In_  VARIANT value,
              /* [annotation][retval][out] */ 
              _Out_retval_  IRawElementProviderSimple **pFound);
          
          END_INTERFACE
      } IItemContainerProviderVtbl;
  
      interface IItemContainerProvider
      {
          CONST_VTBL struct IItemContainerProviderVtbl *lpVtbl;
      };
  
      
  
  #ifdef COBJMACROS
  
  
  #define IItemContainerProvider_QueryInterface(This,riid,ppvObject)	\
      ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
  
  #define IItemContainerProvider_AddRef(This)	\
      ( (This)->lpVtbl -> AddRef(This) ) 
  
  #define IItemContainerProvider_Release(This)	\
      ( (This)->lpVtbl -> Release(This) ) 
  
  
  #define IItemContainerProvider_FindItemByProperty(This,pStartAfter,propertyId,value,pFound)	\
      ( (This)->lpVtbl -> FindItemByProperty(This,pStartAfter,propertyId,value,pFound) ) 
  
  #endif /* COBJMACROS */
  
  
  #endif 	/* C style interface */
  
  
  
  
  #endif 	/* __IItemContainerProvider_INTERFACE_DEFINED__ */
  
  
  #ifndef __IVirtualizedItemProvider_INTERFACE_DEFINED__
  #define __IVirtualizedItemProvider_INTERFACE_DEFINED__
  
  /* interface IVirtualizedItemProvider */
  /* [oleautomation][unique][uuid][object] */ 
  
  
  EXTERN_C const IID IID_IVirtualizedItemProvider;
  
  #if defined(__cplusplus) && !defined(CINTERFACE)
      
      MIDL_INTERFACE("cb98b665-2d35-4fac-ad35-f3c60d0c0b8b")
      IVirtualizedItemProvider : public IUnknown
      {
      public:
          virtual HRESULT STDMETHODCALLTYPE Realize( void) = 0;
          
      };
      
      
  #else 	/* C style interface */
  
      typedef struct IVirtualizedItemProviderVtbl
      {
          BEGIN_INTERFACE
          
          DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
          HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
              __RPC__in IVirtualizedItemProvider * This,
              /* [annotation][in] */ 
              _In_  REFIID riid,
              /* [annotation][iid_is][out] */ 
              _COM_Outptr_  void **ppvObject);
          
          DECLSPEC_XFGVIRT(IUnknown, AddRef)
          ULONG ( STDMETHODCALLTYPE *AddRef )( 
              __RPC__in IVirtualizedItemProvider * This);
          
          DECLSPEC_XFGVIRT(IUnknown, Release)
          ULONG ( STDMETHODCALLTYPE *Release )( 
              __RPC__in IVirtualizedItemProvider * This);
          
          DECLSPEC_XFGVIRT(IVirtualizedItemProvider, Realize)
          HRESULT ( STDMETHODCALLTYPE *Realize )( 
              __RPC__in IVirtualizedItemProvider * This);
          
          END_INTERFACE
      } IVirtualizedItemProviderVtbl;
  
      interface IVirtualizedItemProvider
      {
          CONST_VTBL struct IVirtualizedItemProviderVtbl *lpVtbl;
      };
  
      
  
  #ifdef COBJMACROS
  
  
  #define IVirtualizedItemProvider_QueryInterface(This,riid,ppvObject)	\
      ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
  
  #define IVirtualizedItemProvider_AddRef(This)	\
      ( (This)->lpVtbl -> AddRef(This) ) 
  
  #define IVirtualizedItemProvider_Release(This)	\
      ( (This)->lpVtbl -> Release(This) ) 
  
  
  #define IVirtualizedItemProvider_Realize(This)	\
      ( (This)->lpVtbl -> Realize(This) ) 
  
  #endif /* COBJMACROS */
  
  
  #endif 	/* C style interface */
  
  
  
  
  #endif 	/* __IVirtualizedItemProvider_INTERFACE_DEFINED__ */
  
  
  #ifndef __IObjectModelProvider_INTERFACE_DEFINED__
  #define __IObjectModelProvider_INTERFACE_DEFINED__
  
  /* interface IObjectModelProvider */
  /* [oleautomation][unique][uuid][object] */ 
  
  
  EXTERN_C const IID IID_IObjectModelProvider;
  
  #if defined(__cplusplus) && !defined(CINTERFACE)
      
      MIDL_INTERFACE("3ad86ebd-f5ef-483d-bb18-b1042a475d64")
      IObjectModelProvider : public IUnknown
      {
      public:
          virtual HRESULT STDMETHODCALLTYPE GetUnderlyingObjectModel( 
              /* [annotation][retval][out] */ 
              _Out_retval_  IUnknown **ppUnknown) = 0;
          
      };
      
      
  #else 	/* C style interface */
  
      typedef struct IObjectModelProviderVtbl
      {
          BEGIN_INTERFACE
          
          DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
          HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
              __RPC__in IObjectModelProvider * This,
              /* [annotation][in] */ 
              _In_  REFIID riid,
              /* [annotation][iid_is][out] */ 
              _COM_Outptr_  void **ppvObject);
          
          DECLSPEC_XFGVIRT(IUnknown, AddRef)
          ULONG ( STDMETHODCALLTYPE *AddRef )( 
              __RPC__in IObjectModelProvider * This);
          
          DECLSPEC_XFGVIRT(IUnknown, Release)
          ULONG ( STDMETHODCALLTYPE *Release )( 
              __RPC__in IObjectModelProvider * This);
          
          DECLSPEC_XFGVIRT(IObjectModelProvider, GetUnderlyingObjectModel)
          HRESULT ( STDMETHODCALLTYPE *GetUnderlyingObjectModel )( 
              __RPC__in IObjectModelProvider * This,
              /* [annotation][retval][out] */ 
              _Out_retval_  IUnknown **ppUnknown);
          
          END_INTERFACE
      } IObjectModelProviderVtbl;
  
      interface IObjectModelProvider
      {
          CONST_VTBL struct IObjectModelProviderVtbl *lpVtbl;
      };
  
      
  
  #ifdef COBJMACROS
  
  
  #define IObjectModelProvider_QueryInterface(This,riid,ppvObject)	\
      ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
  
  #define IObjectModelProvider_AddRef(This)	\
      ( (This)->lpVtbl -> AddRef(This) ) 
  
  #define IObjectModelProvider_Release(This)	\
      ( (This)->lpVtbl -> Release(This) ) 
  
  
  #define IObjectModelProvider_GetUnderlyingObjectModel(This,ppUnknown)	\
      ( (This)->lpVtbl -> GetUnderlyingObjectModel(This,ppUnknown) ) 
  
  #endif /* COBJMACROS */
  
  
  #endif 	/* C style interface */
  
  
  
  
  #endif 	/* __IObjectModelProvider_INTERFACE_DEFINED__ */
  
  
  #ifndef __IAnnotationProvider_INTERFACE_DEFINED__
  #define __IAnnotationProvider_INTERFACE_DEFINED__
  
  /* interface IAnnotationProvider */
  /* [oleautomation][unique][uuid][object] */ 
  
  
  EXTERN_C const IID IID_IAnnotationProvider;
  
  #if defined(__cplusplus) && !defined(CINTERFACE)
      
      MIDL_INTERFACE("f95c7e80-bd63-4601-9782-445ebff011fc")
      IAnnotationProvider : public IUnknown
      {
      public:
          virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_AnnotationTypeId( 
              /* [annotation][retval][out] */ 
              _Out_retval_  int *retVal) = 0;
          
          virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_AnnotationTypeName( 
              /* [annotation][retval][out] */ 
              _Out_retval_  BSTR *retVal) = 0;
          
          virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Author( 
              /* [annotation][retval][out] */ 
              _Out_retval_  BSTR *retVal) = 0;
          
          virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_DateTime( 
              /* [annotation][retval][out] */ 
              _Out_retval_  BSTR *retVal) = 0;
          
          virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Target( 
              /* [annotation][retval][out] */ 
              _Out_retval_  IRawElementProviderSimple **retVal) = 0;
          
      };
      
      
  #else 	/* C style interface */
  
      typedef struct IAnnotationProviderVtbl
      {
          BEGIN_INTERFACE
          
          DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
          HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
              __RPC__in IAnnotationProvider * This,
              /* [annotation][in] */ 
              _In_  REFIID riid,
              /* [annotation][iid_is][out] */ 
              _COM_Outptr_  void **ppvObject);
          
          DECLSPEC_XFGVIRT(IUnknown, AddRef)
          ULONG ( STDMETHODCALLTYPE *AddRef )( 
              __RPC__in IAnnotationProvider * This);
          
          DECLSPEC_XFGVIRT(IUnknown, Release)
          ULONG ( STDMETHODCALLTYPE *Release )( 
              __RPC__in IAnnotationProvider * This);
          
          DECLSPEC_XFGVIRT(IAnnotationProvider, get_AnnotationTypeId)
          /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_AnnotationTypeId )( 
              __RPC__in IAnnotationProvider * This,
              /* [annotation][retval][out] */ 
              _Out_retval_  int *retVal);
          
          DECLSPEC_XFGVIRT(IAnnotationProvider, get_AnnotationTypeName)
          /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_AnnotationTypeName )( 
              __RPC__in IAnnotationProvider * This,
              /* [annotation][retval][out] */ 
              _Out_retval_  BSTR *retVal);
          
          DECLSPEC_XFGVIRT(IAnnotationProvider, get_Author)
          /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Author )( 
              __RPC__in IAnnotationProvider * This,
              /* [annotation][retval][out] */ 
              _Out_retval_  BSTR *retVal);
          
          DECLSPEC_XFGVIRT(IAnnotationProvider, get_DateTime)
          /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_DateTime )( 
              __RPC__in IAnnotationProvider * This,
              /* [annotation][retval][out] */ 
              _Out_retval_  BSTR *retVal);
          
          DECLSPEC_XFGVIRT(IAnnotationProvider, get_Target)
          /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Target )( 
              __RPC__in IAnnotationProvider * This,
              /* [annotation][retval][out] */ 
              _Out_retval_  IRawElementProviderSimple **retVal);
          
          END_INTERFACE
      } IAnnotationProviderVtbl;
  
      interface IAnnotationProvider
      {
          CONST_VTBL struct IAnnotationProviderVtbl *lpVtbl;
      };
  
      
  
  #ifdef COBJMACROS
  
  
  #define IAnnotationProvider_QueryInterface(This,riid,ppvObject)	\
      ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
  
  #define IAnnotationProvider_AddRef(This)	\
      ( (This)->lpVtbl -> AddRef(This) ) 
  
  #define IAnnotationProvider_Release(This)	\
      ( (This)->lpVtbl -> Release(This) ) 
  
  
  #define IAnnotationProvider_get_AnnotationTypeId(This,retVal)	\
      ( (This)->lpVtbl -> get_AnnotationTypeId(This,retVal) ) 
  
  #define IAnnotationProvider_get_AnnotationTypeName(This,retVal)	\
      ( (This)->lpVtbl -> get_AnnotationTypeName(This,retVal) ) 
  
  #define IAnnotationProvider_get_Author(This,retVal)	\
      ( (This)->lpVtbl -> get_Author(This,retVal) ) 
  
  #define IAnnotationProvider_get_DateTime(This,retVal)	\
      ( (This)->lpVtbl -> get_DateTime(This,retVal) ) 
  
  #define IAnnotationProvider_get_Target(This,retVal)	\
      ( (This)->lpVtbl -> get_Target(This,retVal) ) 
  
  #endif /* COBJMACROS */
  
  
  #endif 	/* C style interface */
  
  
  
  
  #endif 	/* __IAnnotationProvider_INTERFACE_DEFINED__ */
  
  
  #ifndef __IStylesProvider_INTERFACE_DEFINED__
  #define __IStylesProvider_INTERFACE_DEFINED__
  
  /* interface IStylesProvider */
  /* [oleautomation][unique][uuid][object] */ 
  
  
  EXTERN_C const IID IID_IStylesProvider;
  
  #if defined(__cplusplus) && !defined(CINTERFACE)
      
      MIDL_INTERFACE("19b6b649-f5d7-4a6d-bdcb-129252be588a")
      IStylesProvider : public IUnknown
      {
      public:
          virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_StyleId( 
              /* [annotation][retval][out] */ 
              _Out_retval_  int *retVal) = 0;
          
          virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_StyleName( 
              /* [annotation][retval][out] */ 
              _Out_retval_  BSTR *retVal) = 0;
          
          virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_FillColor( 
              /* [annotation][retval][out] */ 
              _Out_retval_  int *retVal) = 0;
          
          virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_FillPatternStyle( 
              /* [annotation][retval][out] */ 
              _Out_retval_  BSTR *retVal) = 0;
          
          virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Shape( 
              /* [annotation][retval][out] */ 
              _Out_retval_  BSTR *retVal) = 0;
          
          virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_FillPatternColor( 
              /* [annotation][retval][out] */ 
              _Out_retval_  int *retVal) = 0;
          
          virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_ExtendedProperties( 
              /* [annotation][retval][out] */ 
              _Out_retval_  BSTR *retVal) = 0;
          
      };
      
      
  #else 	/* C style interface */
  
      typedef struct IStylesProviderVtbl
      {
          BEGIN_INTERFACE
          
          DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
          HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
              __RPC__in IStylesProvider * This,
              /* [annotation][in] */ 
              _In_  REFIID riid,
              /* [annotation][iid_is][out] */ 
              _COM_Outptr_  void **ppvObject);
          
          DECLSPEC_XFGVIRT(IUnknown, AddRef)
          ULONG ( STDMETHODCALLTYPE *AddRef )( 
              __RPC__in IStylesProvider * This);
          
          DECLSPEC_XFGVIRT(IUnknown, Release)
          ULONG ( STDMETHODCALLTYPE *Release )( 
              __RPC__in IStylesProvider * This);
          
          DECLSPEC_XFGVIRT(IStylesProvider, get_StyleId)
          /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_StyleId )( 
              __RPC__in IStylesProvider * This,
              /* [annotation][retval][out] */ 
              _Out_retval_  int *retVal);
          
          DECLSPEC_XFGVIRT(IStylesProvider, get_StyleName)
          /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_StyleName )( 
              __RPC__in IStylesProvider * This,
              /* [annotation][retval][out] */ 
              _Out_retval_  BSTR *retVal);
          
          DECLSPEC_XFGVIRT(IStylesProvider, get_FillColor)
          /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_FillColor )( 
              __RPC__in IStylesProvider * This,
              /* [annotation][retval][out] */ 
              _Out_retval_  int *retVal);
          
          DECLSPEC_XFGVIRT(IStylesProvider, get_FillPatternStyle)
          /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_FillPatternStyle )( 
              __RPC__in IStylesProvider * This,
              /* [annotation][retval][out] */ 
              _Out_retval_  BSTR *retVal);
          
          DECLSPEC_XFGVIRT(IStylesProvider, get_Shape)
          /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Shape )( 
              __RPC__in IStylesProvider * This,
              /* [annotation][retval][out] */ 
              _Out_retval_  BSTR *retVal);
          
          DECLSPEC_XFGVIRT(IStylesProvider, get_FillPatternColor)
          /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_FillPatternColor )( 
              __RPC__in IStylesProvider * This,
              /* [annotation][retval][out] */ 
              _Out_retval_  int *retVal);
          
          DECLSPEC_XFGVIRT(IStylesProvider, get_ExtendedProperties)
          /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_ExtendedProperties )( 
              __RPC__in IStylesProvider * This,
              /* [annotation][retval][out] */ 
              _Out_retval_  BSTR *retVal);
          
          END_INTERFACE
      } IStylesProviderVtbl;
  
      interface IStylesProvider
      {
          CONST_VTBL struct IStylesProviderVtbl *lpVtbl;
      };
  
      
  
  #ifdef COBJMACROS
  
  
  #define IStylesProvider_QueryInterface(This,riid,ppvObject)	\
      ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
  
  #define IStylesProvider_AddRef(This)	\
      ( (This)->lpVtbl -> AddRef(This) ) 
  
  #define IStylesProvider_Release(This)	\
      ( (This)->lpVtbl -> Release(This) ) 
  
  
  #define IStylesProvider_get_StyleId(This,retVal)	\
      ( (This)->lpVtbl -> get_StyleId(This,retVal) ) 
  
  #define IStylesProvider_get_StyleName(This,retVal)	\
      ( (This)->lpVtbl -> get_StyleName(This,retVal) ) 
  
  #define IStylesProvider_get_FillColor(This,retVal)	\
      ( (This)->lpVtbl -> get_FillColor(This,retVal) ) 
  
  #define IStylesProvider_get_FillPatternStyle(This,retVal)	\
      ( (This)->lpVtbl -> get_FillPatternStyle(This,retVal) ) 
  
  #define IStylesProvider_get_Shape(This,retVal)	\
      ( (This)->lpVtbl -> get_Shape(This,retVal) ) 
  
  #define IStylesProvider_get_FillPatternColor(This,retVal)	\
      ( (This)->lpVtbl -> get_FillPatternColor(This,retVal) ) 
  
  #define IStylesProvider_get_ExtendedProperties(This,retVal)	\
      ( (This)->lpVtbl -> get_ExtendedProperties(This,retVal) ) 
  
  #endif /* COBJMACROS */
  
  
  #endif 	/* C style interface */
  
  
  
  
  #endif 	/* __IStylesProvider_INTERFACE_DEFINED__ */
  
  
  #ifndef __ISpreadsheetProvider_INTERFACE_DEFINED__
  #define __ISpreadsheetProvider_INTERFACE_DEFINED__
  
  /* interface ISpreadsheetProvider */
  /* [oleautomation][unique][uuid][object] */ 
  
  
  EXTERN_C const IID IID_ISpreadsheetProvider;
  
  #if defined(__cplusplus) && !defined(CINTERFACE)
      
      MIDL_INTERFACE("6f6b5d35-5525-4f80-b758-85473832ffc7")
      ISpreadsheetProvider : public IUnknown
      {
      public:
          virtual HRESULT STDMETHODCALLTYPE GetItemByName( 
              /* [annotation][in] */ 
              _In_  LPCWSTR name,
              /* [annotation][retval][out] */ 
              _Out_retval_  IRawElementProviderSimple **pRetVal) = 0;
          
      };
      
      
  #else 	/* C style interface */
  
      typedef struct ISpreadsheetProviderVtbl
      {
          BEGIN_INTERFACE
          
          DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
          HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
              __RPC__in ISpreadsheetProvider * This,
              /* [annotation][in] */ 
              _In_  REFIID riid,
              /* [annotation][iid_is][out] */ 
              _COM_Outptr_  void **ppvObject);
          
          DECLSPEC_XFGVIRT(IUnknown, AddRef)
          ULONG ( STDMETHODCALLTYPE *AddRef )( 
              __RPC__in ISpreadsheetProvider * This);
          
          DECLSPEC_XFGVIRT(IUnknown, Release)
          ULONG ( STDMETHODCALLTYPE *Release )( 
              __RPC__in ISpreadsheetProvider * This);
          
          DECLSPEC_XFGVIRT(ISpreadsheetProvider, GetItemByName)
          HRESULT ( STDMETHODCALLTYPE *GetItemByName )( 
              __RPC__in ISpreadsheetProvider * This,
              /* [annotation][in] */ 
              _In_  LPCWSTR name,
              /* [annotation][retval][out] */ 
              _Out_retval_  IRawElementProviderSimple **pRetVal);
          
          END_INTERFACE
      } ISpreadsheetProviderVtbl;
  
      interface ISpreadsheetProvider
      {
          CONST_VTBL struct ISpreadsheetProviderVtbl *lpVtbl;
      };
  
      
  
  #ifdef COBJMACROS
  
  
  #define ISpreadsheetProvider_QueryInterface(This,riid,ppvObject)	\
      ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
  
  #define ISpreadsheetProvider_AddRef(This)	\
      ( (This)->lpVtbl -> AddRef(This) ) 
  
  #define ISpreadsheetProvider_Release(This)	\
      ( (This)->lpVtbl -> Release(This) ) 
  
  
  #define ISpreadsheetProvider_GetItemByName(This,name,pRetVal)	\
      ( (This)->lpVtbl -> GetItemByName(This,name,pRetVal) ) 
  
  #endif /* COBJMACROS */
  
  
  #endif 	/* C style interface */
  
  
  
  
  #endif 	/* __ISpreadsheetProvider_INTERFACE_DEFINED__ */
  
  
  #ifndef __ISpreadsheetItemProvider_INTERFACE_DEFINED__
  #define __ISpreadsheetItemProvider_INTERFACE_DEFINED__
  
  /* interface ISpreadsheetItemProvider */
  /* [oleautomation][unique][uuid][object] */ 
  
  
  EXTERN_C const IID IID_ISpreadsheetItemProvider;
  
  #if defined(__cplusplus) && !defined(CINTERFACE)
      
      MIDL_INTERFACE("eaed4660-7b3d-4879-a2e6-365ce603f3d0")
      ISpreadsheetItemProvider : public IUnknown
      {
      public:
          virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Formula( 
              /* [annotation][retval][out] */ 
              _Out_retval_  BSTR *pRetVal) = 0;
          
          virtual HRESULT STDMETHODCALLTYPE GetAnnotationObjects( 
              /* [annotation][retval][out] */ 
              _Out_retval_  SAFEARRAY * *pRetVal) = 0;
          
          virtual HRESULT STDMETHODCALLTYPE GetAnnotationTypes( 
              /* [annotation][retval][out] */ 
              _Out_retval_  SAFEARRAY * *pRetVal) = 0;
          
      };
      
      
  #else 	/* C style interface */
  
      typedef struct ISpreadsheetItemProviderVtbl
      {
          BEGIN_INTERFACE
          
          DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
          HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
              __RPC__in ISpreadsheetItemProvider * This,
              /* [annotation][in] */ 
              _In_  REFIID riid,
              /* [annotation][iid_is][out] */ 
              _COM_Outptr_  void **ppvObject);
          
          DECLSPEC_XFGVIRT(IUnknown, AddRef)
          ULONG ( STDMETHODCALLTYPE *AddRef )( 
              __RPC__in ISpreadsheetItemProvider * This);
          
          DECLSPEC_XFGVIRT(IUnknown, Release)
          ULONG ( STDMETHODCALLTYPE *Release )( 
              __RPC__in ISpreadsheetItemProvider * This);
          
          DECLSPEC_XFGVIRT(ISpreadsheetItemProvider, get_Formula)
          /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Formula )( 
              __RPC__in ISpreadsheetItemProvider * This,
              /* [annotation][retval][out] */ 
              _Out_retval_  BSTR *pRetVal);
          
          DECLSPEC_XFGVIRT(ISpreadsheetItemProvider, GetAnnotationObjects)
          HRESULT ( STDMETHODCALLTYPE *GetAnnotationObjects )( 
              __RPC__in ISpreadsheetItemProvider * This,
              /* [annotation][retval][out] */ 
              _Out_retval_  SAFEARRAY * *pRetVal);
          
          DECLSPEC_XFGVIRT(ISpreadsheetItemProvider, GetAnnotationTypes)
          HRESULT ( STDMETHODCALLTYPE *GetAnnotationTypes )( 
              __RPC__in ISpreadsheetItemProvider * This,
              /* [annotation][retval][out] */ 
              _Out_retval_  SAFEARRAY * *pRetVal);
          
          END_INTERFACE
      } ISpreadsheetItemProviderVtbl;
  
      interface ISpreadsheetItemProvider
      {
          CONST_VTBL struct ISpreadsheetItemProviderVtbl *lpVtbl;
      };
  
      
  
  #ifdef COBJMACROS
  
  
  #define ISpreadsheetItemProvider_QueryInterface(This,riid,ppvObject)	\
      ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
  
  #define ISpreadsheetItemProvider_AddRef(This)	\
      ( (This)->lpVtbl -> AddRef(This) ) 
  
  #define ISpreadsheetItemProvider_Release(This)	\
      ( (This)->lpVtbl -> Release(This) ) 
  
  
  #define ISpreadsheetItemProvider_get_Formula(This,pRetVal)	\
      ( (This)->lpVtbl -> get_Formula(This,pRetVal) ) 
  
  #define ISpreadsheetItemProvider_GetAnnotationObjects(This,pRetVal)	\
      ( (This)->lpVtbl -> GetAnnotationObjects(This,pRetVal) ) 
  
  #define ISpreadsheetItemProvider_GetAnnotationTypes(This,pRetVal)	\
      ( (This)->lpVtbl -> GetAnnotationTypes(This,pRetVal) ) 
  
  #endif /* COBJMACROS */
  
  
  #endif 	/* C style interface */
  
  
  
  
  #endif 	/* __ISpreadsheetItemProvider_INTERFACE_DEFINED__ */
  
  
  #ifndef __ITransformProvider2_INTERFACE_DEFINED__
  #define __ITransformProvider2_INTERFACE_DEFINED__
  
  /* interface ITransformProvider2 */
  /* [oleautomation][unique][uuid][object] */ 
  
  
  EXTERN_C const IID IID_ITransformProvider2;
  
  #if defined(__cplusplus) && !defined(CINTERFACE)
      
      MIDL_INTERFACE("4758742f-7ac2-460c-bc48-09fc09308a93")
      ITransformProvider2 : public ITransformProvider
      {
      public:
          virtual HRESULT STDMETHODCALLTYPE Zoom( 
              /* [annotation][in] */ 
              _In_  double zoom) = 0;
          
          virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_CanZoom( 
              /* [annotation][retval][out] */ 
              _Out_retval_  BOOL *pRetVal) = 0;
          
          virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_ZoomLevel( 
              /* [annotation][retval][out] */ 
              _Out_retval_  double *pRetVal) = 0;
          
          virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_ZoomMinimum( 
              /* [annotation][retval][out] */ 
              _Out_retval_  double *pRetVal) = 0;
          
          virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_ZoomMaximum( 
              /* [annotation][retval][out] */ 
              _Out_retval_  double *pRetVal) = 0;
          
          virtual HRESULT STDMETHODCALLTYPE ZoomByUnit( 
              /* [annotation][in] */ 
              _In_  enum ZoomUnit zoomUnit) = 0;
          
      };
      
      
  #else 	/* C style interface */
  
      typedef struct ITransformProvider2Vtbl
      {
          BEGIN_INTERFACE
          
          DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
          HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
              __RPC__in ITransformProvider2 * This,
              /* [annotation][in] */ 
              _In_  REFIID riid,
              /* [annotation][iid_is][out] */ 
              _COM_Outptr_  void **ppvObject);
          
          DECLSPEC_XFGVIRT(IUnknown, AddRef)
          ULONG ( STDMETHODCALLTYPE *AddRef )( 
              __RPC__in ITransformProvider2 * This);
          
          DECLSPEC_XFGVIRT(IUnknown, Release)
          ULONG ( STDMETHODCALLTYPE *Release )( 
              __RPC__in ITransformProvider2 * This);
          
          DECLSPEC_XFGVIRT(ITransformProvider, Move)
          HRESULT ( STDMETHODCALLTYPE *Move )( 
              __RPC__in ITransformProvider2 * This,
              /* [annotation][in] */ 
              _In_  double x,
              /* [annotation][in] */ 
              _In_  double y);
          
          DECLSPEC_XFGVIRT(ITransformProvider, Resize)
          HRESULT ( STDMETHODCALLTYPE *Resize )( 
              __RPC__in ITransformProvider2 * This,
              /* [annotation][in] */ 
              _In_  double width,
              /* [annotation][in] */ 
              _In_  double height);
          
          DECLSPEC_XFGVIRT(ITransformProvider, Rotate)
          HRESULT ( STDMETHODCALLTYPE *Rotate )( 
              __RPC__in ITransformProvider2 * This,
              /* [annotation][in] */ 
              _In_  double degrees);
          
          DECLSPEC_XFGVIRT(ITransformProvider, get_CanMove)
          /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_CanMove )( 
              __RPC__in ITransformProvider2 * This,
              /* [annotation][retval][out] */ 
              _Out_retval_  BOOL *pRetVal);
          
          DECLSPEC_XFGVIRT(ITransformProvider, get_CanResize)
          /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_CanResize )( 
              __RPC__in ITransformProvider2 * This,
              /* [annotation][retval][out] */ 
              _Out_retval_  BOOL *pRetVal);
          
          DECLSPEC_XFGVIRT(ITransformProvider, get_CanRotate)
          /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_CanRotate )( 
              __RPC__in ITransformProvider2 * This,
              /* [annotation][retval][out] */ 
              _Out_retval_  BOOL *pRetVal);
          
          DECLSPEC_XFGVIRT(ITransformProvider2, Zoom)
          HRESULT ( STDMETHODCALLTYPE *Zoom )( 
              __RPC__in ITransformProvider2 * This,
              /* [annotation][in] */ 
              _In_  double zoom);
          
          DECLSPEC_XFGVIRT(ITransformProvider2, get_CanZoom)
          /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_CanZoom )( 
              __RPC__in ITransformProvider2 * This,
              /* [annotation][retval][out] */ 
              _Out_retval_  BOOL *pRetVal);
          
          DECLSPEC_XFGVIRT(ITransformProvider2, get_ZoomLevel)
          /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_ZoomLevel )( 
              __RPC__in ITransformProvider2 * This,
              /* [annotation][retval][out] */ 
              _Out_retval_  double *pRetVal);
          
          DECLSPEC_XFGVIRT(ITransformProvider2, get_ZoomMinimum)
          /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_ZoomMinimum )( 
              __RPC__in ITransformProvider2 * This,
              /* [annotation][retval][out] */ 
              _Out_retval_  double *pRetVal);
          
          DECLSPEC_XFGVIRT(ITransformProvider2, get_ZoomMaximum)
          /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_ZoomMaximum )( 
              __RPC__in ITransformProvider2 * This,
              /* [annotation][retval][out] */ 
              _Out_retval_  double *pRetVal);
          
          DECLSPEC_XFGVIRT(ITransformProvider2, ZoomByUnit)
          HRESULT ( STDMETHODCALLTYPE *ZoomByUnit )( 
              __RPC__in ITransformProvider2 * This,
              /* [annotation][in] */ 
              _In_  enum ZoomUnit zoomUnit);
          
          END_INTERFACE
      } ITransformProvider2Vtbl;
  
      interface ITransformProvider2
      {
          CONST_VTBL struct ITransformProvider2Vtbl *lpVtbl;
      };
  
      
  
  #ifdef COBJMACROS
  
  
  #define ITransformProvider2_QueryInterface(This,riid,ppvObject)	\
      ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
  
  #define ITransformProvider2_AddRef(This)	\
      ( (This)->lpVtbl -> AddRef(This) ) 
  
  #define ITransformProvider2_Release(This)	\
      ( (This)->lpVtbl -> Release(This) ) 
  
  
  #define ITransformProvider2_Move(This,x,y)	\
      ( (This)->lpVtbl -> Move(This,x,y) ) 
  
  #define ITransformProvider2_Resize(This,width,height)	\
      ( (This)->lpVtbl -> Resize(This,width,height) ) 
  
  #define ITransformProvider2_Rotate(This,degrees)	\
      ( (This)->lpVtbl -> Rotate(This,degrees) ) 
  
  #define ITransformProvider2_get_CanMove(This,pRetVal)	\
      ( (This)->lpVtbl -> get_CanMove(This,pRetVal) ) 
  
  #define ITransformProvider2_get_CanResize(This,pRetVal)	\
      ( (This)->lpVtbl -> get_CanResize(This,pRetVal) ) 
  
  #define ITransformProvider2_get_CanRotate(This,pRetVal)	\
      ( (This)->lpVtbl -> get_CanRotate(This,pRetVal) ) 
  
  
  #define ITransformProvider2_Zoom(This,zoom)	\
      ( (This)->lpVtbl -> Zoom(This,zoom) ) 
  
  #define ITransformProvider2_get_CanZoom(This,pRetVal)	\
      ( (This)->lpVtbl -> get_CanZoom(This,pRetVal) ) 
  
  #define ITransformProvider2_get_ZoomLevel(This,pRetVal)	\
      ( (This)->lpVtbl -> get_ZoomLevel(This,pRetVal) ) 
  
  #define ITransformProvider2_get_ZoomMinimum(This,pRetVal)	\
      ( (This)->lpVtbl -> get_ZoomMinimum(This,pRetVal) ) 
  
  #define ITransformProvider2_get_ZoomMaximum(This,pRetVal)	\
      ( (This)->lpVtbl -> get_ZoomMaximum(This,pRetVal) ) 
  
  #define ITransformProvider2_ZoomByUnit(This,zoomUnit)	\
      ( (This)->lpVtbl -> ZoomByUnit(This,zoomUnit) ) 
  
  #endif /* COBJMACROS */
  
  
  #endif 	/* C style interface */
  
  
  
  
  #endif 	/* __ITransformProvider2_INTERFACE_DEFINED__ */
  
  
  #ifndef __IDragProvider_INTERFACE_DEFINED__
  #define __IDragProvider_INTERFACE_DEFINED__
  
  /* interface IDragProvider */
  /* [oleautomation][unique][uuid][object] */ 
  
  
  EXTERN_C const IID IID_IDragProvider;
  
  #if defined(__cplusplus) && !defined(CINTERFACE)
      
      MIDL_INTERFACE("6aa7bbbb-7ff9-497d-904f-d20b897929d8")
      IDragProvider : public IUnknown
      {
      public:
          virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_IsGrabbed( 
              /* [annotation][retval][out] */ 
              _Out_retval_  BOOL *pRetVal) = 0;
          
          virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_DropEffect( 
              /* [annotation][retval][out] */ 
              _Out_retval_  BSTR *pRetVal) = 0;
          
          virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_DropEffects( 
              /* [annotation][retval][out] */ 
              _Out_retval_  SAFEARRAY * *pRetVal) = 0;
          
          virtual HRESULT STDMETHODCALLTYPE GetGrabbedItems( 
              /* [annotation][retval][out] */ 
              _Out_retval_  SAFEARRAY * *pRetVal) = 0;
          
      };
      
      
  #else 	/* C style interface */
  
      typedef struct IDragProviderVtbl
      {
          BEGIN_INTERFACE
          
          DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
          HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
              __RPC__in IDragProvider * This,
              /* [annotation][in] */ 
              _In_  REFIID riid,
              /* [annotation][iid_is][out] */ 
              _COM_Outptr_  void **ppvObject);
          
          DECLSPEC_XFGVIRT(IUnknown, AddRef)
          ULONG ( STDMETHODCALLTYPE *AddRef )( 
              __RPC__in IDragProvider * This);
          
          DECLSPEC_XFGVIRT(IUnknown, Release)
          ULONG ( STDMETHODCALLTYPE *Release )( 
              __RPC__in IDragProvider * This);
          
          DECLSPEC_XFGVIRT(IDragProvider, get_IsGrabbed)
          /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_IsGrabbed )( 
              __RPC__in IDragProvider * This,
              /* [annotation][retval][out] */ 
              _Out_retval_  BOOL *pRetVal);
          
          DECLSPEC_XFGVIRT(IDragProvider, get_DropEffect)
          /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_DropEffect )( 
              __RPC__in IDragProvider * This,
              /* [annotation][retval][out] */ 
              _Out_retval_  BSTR *pRetVal);
          
          DECLSPEC_XFGVIRT(IDragProvider, get_DropEffects)
          /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_DropEffects )( 
              __RPC__in IDragProvider * This,
              /* [annotation][retval][out] */ 
              _Out_retval_  SAFEARRAY * *pRetVal);
          
          DECLSPEC_XFGVIRT(IDragProvider, GetGrabbedItems)
          HRESULT ( STDMETHODCALLTYPE *GetGrabbedItems )( 
              __RPC__in IDragProvider * This,
              /* [annotation][retval][out] */ 
              _Out_retval_  SAFEARRAY * *pRetVal);
          
          END_INTERFACE
      } IDragProviderVtbl;
  
      interface IDragProvider
      {
          CONST_VTBL struct IDragProviderVtbl *lpVtbl;
      };
  
      
  
  #ifdef COBJMACROS
  
  
  #define IDragProvider_QueryInterface(This,riid,ppvObject)	\
      ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
  
  #define IDragProvider_AddRef(This)	\
      ( (This)->lpVtbl -> AddRef(This) ) 
  
  #define IDragProvider_Release(This)	\
      ( (This)->lpVtbl -> Release(This) ) 
  
  
  #define IDragProvider_get_IsGrabbed(This,pRetVal)	\
      ( (This)->lpVtbl -> get_IsGrabbed(This,pRetVal) ) 
  
  #define IDragProvider_get_DropEffect(This,pRetVal)	\
      ( (This)->lpVtbl -> get_DropEffect(This,pRetVal) ) 
  
  #define IDragProvider_get_DropEffects(This,pRetVal)	\
      ( (This)->lpVtbl -> get_DropEffects(This,pRetVal) ) 
  
  #define IDragProvider_GetGrabbedItems(This,pRetVal)	\
      ( (This)->lpVtbl -> GetGrabbedItems(This,pRetVal) ) 
  
  #endif /* COBJMACROS */
  
  
  #endif 	/* C style interface */
  
  
  
  
  #endif 	/* __IDragProvider_INTERFACE_DEFINED__ */
  
  
  #ifndef __IDropTargetProvider_INTERFACE_DEFINED__
  #define __IDropTargetProvider_INTERFACE_DEFINED__
  
  /* interface IDropTargetProvider */
  /* [oleautomation][unique][uuid][object] */ 
  
  
  EXTERN_C const IID IID_IDropTargetProvider;
  
  #if defined(__cplusplus) && !defined(CINTERFACE)
      
      MIDL_INTERFACE("bae82bfd-358a-481c-85a0-d8b4d90a5d61")
      IDropTargetProvider : public IUnknown
      {
      public:
          virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_DropTargetEffect( 
              /* [annotation][retval][out] */ 
              _Out_retval_  BSTR *pRetVal) = 0;
          
          virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_DropTargetEffects( 
              /* [annotation][retval][out] */ 
              _Out_retval_  SAFEARRAY * *pRetVal) = 0;
          
      };
      
      
  #else 	/* C style interface */
  
      typedef struct IDropTargetProviderVtbl
      {
          BEGIN_INTERFACE
          
          DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
          HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
              __RPC__in IDropTargetProvider * This,
              /* [annotation][in] */ 
              _In_  REFIID riid,
              /* [annotation][iid_is][out] */ 
              _COM_Outptr_  void **ppvObject);
          
          DECLSPEC_XFGVIRT(IUnknown, AddRef)
          ULONG ( STDMETHODCALLTYPE *AddRef )( 
              __RPC__in IDropTargetProvider * This);
          
          DECLSPEC_XFGVIRT(IUnknown, Release)
          ULONG ( STDMETHODCALLTYPE *Release )( 
              __RPC__in IDropTargetProvider * This);
          
          DECLSPEC_XFGVIRT(IDropTargetProvider, get_DropTargetEffect)
          /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_DropTargetEffect )( 
              __RPC__in IDropTargetProvider * This,
              /* [annotation][retval][out] */ 
              _Out_retval_  BSTR *pRetVal);
          
          DECLSPEC_XFGVIRT(IDropTargetProvider, get_DropTargetEffects)
          /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_DropTargetEffects )( 
              __RPC__in IDropTargetProvider * This,
              /* [annotation][retval][out] */ 
              _Out_retval_  SAFEARRAY * *pRetVal);
          
          END_INTERFACE
      } IDropTargetProviderVtbl;
  
      interface IDropTargetProvider
      {
          CONST_VTBL struct IDropTargetProviderVtbl *lpVtbl;
      };
  
      
  
  #ifdef COBJMACROS
  
  
  #define IDropTargetProvider_QueryInterface(This,riid,ppvObject)	\
      ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
  
  #define IDropTargetProvider_AddRef(This)	\
      ( (This)->lpVtbl -> AddRef(This) ) 
  
  #define IDropTargetProvider_Release(This)	\
      ( (This)->lpVtbl -> Release(This) ) 
  
  
  #define IDropTargetProvider_get_DropTargetEffect(This,pRetVal)	\
      ( (This)->lpVtbl -> get_DropTargetEffect(This,pRetVal) ) 
  
  #define IDropTargetProvider_get_DropTargetEffects(This,pRetVal)	\
      ( (This)->lpVtbl -> get_DropTargetEffects(This,pRetVal) ) 
  
  #endif /* COBJMACROS */
  
  
  #endif 	/* C style interface */
  
  
  
  
  #endif 	/* __IDropTargetProvider_INTERFACE_DEFINED__ */
  
  
  #ifndef __ITextRangeProvider_INTERFACE_DEFINED__
  #define __ITextRangeProvider_INTERFACE_DEFINED__
  
  /* interface ITextRangeProvider */
  /* [oleautomation][unique][uuid][object] */ 
  
  
  EXTERN_C const IID IID_ITextRangeProvider;
  
  #if defined(__cplusplus) && !defined(CINTERFACE)
      
      MIDL_INTERFACE("5347ad7b-c355-46f8-aff5-909033582f63")
      ITextRangeProvider : public IUnknown
      {
      public:
          virtual HRESULT STDMETHODCALLTYPE Clone( 
              /* [annotation][retval][out] */ 
              _Out_retval_  ITextRangeProvider **pRetVal) = 0;
          
          virtual HRESULT STDMETHODCALLTYPE Compare( 
              /* [annotation][in] */ 
              _In_  ITextRangeProvider *range,
              /* [annotation][retval][out] */ 
              _Out_retval_  BOOL *pRetVal) = 0;
          
          virtual HRESULT STDMETHODCALLTYPE CompareEndpoints( 
              /* [annotation][in] */ 
              _In_  enum TextPatternRangeEndpoint endpoint,
              /* [annotation][in] */ 
              _In_  ITextRangeProvider *targetRange,
              /* [annotation][in] */ 
              _In_  enum TextPatternRangeEndpoint targetEndpoint,
              /* [annotation][retval][out] */ 
              _Out_retval_  int *pRetVal) = 0;
          
          virtual HRESULT STDMETHODCALLTYPE ExpandToEnclosingUnit( 
              /* [annotation][in] */ 
              _In_  enum TextUnit unit) = 0;
          
          virtual HRESULT STDMETHODCALLTYPE FindAttribute( 
              /* [annotation][in] */ 
              _In_  TEXTATTRIBUTEID attributeId,
              /* [annotation][in] */ 
              _In_  VARIANT val,
              /* [annotation][in] */ 
              _In_  BOOL backward,
              /* [annotation][retval][out] */ 
              _Out_retval_  ITextRangeProvider **pRetVal) = 0;
          
          virtual HRESULT STDMETHODCALLTYPE FindText( 
              /* [annotation][in] */ 
              _In_  BSTR text,
              /* [annotation][in] */ 
              _In_  BOOL backward,
              /* [annotation][in] */ 
              _In_  BOOL ignoreCase,
              /* [annotation][retval][out] */ 
              _Out_retval_  ITextRangeProvider **pRetVal) = 0;
          
          virtual HRESULT STDMETHODCALLTYPE GetAttributeValue( 
              /* [annotation][in] */ 
              _In_  TEXTATTRIBUTEID attributeId,
              /* [annotation][retval][out] */ 
              _Out_retval_  VARIANT *pRetVal) = 0;
          
          virtual HRESULT STDMETHODCALLTYPE GetBoundingRectangles( 
              /* [annotation][retval][out] */ 
              _Out_retval_  SAFEARRAY * *pRetVal) = 0;
          
          virtual HRESULT STDMETHODCALLTYPE GetEnclosingElement( 
              /* [annotation][retval][out] */ 
              _Out_retval_  IRawElementProviderSimple **pRetVal) = 0;
          
          virtual HRESULT STDMETHODCALLTYPE GetText( 
              /* [annotation][in] */ 
              _In_  int maxLength,
              /* [annotation][retval][out] */ 
              _Out_retval_  BSTR *pRetVal) = 0;
          
          virtual HRESULT STDMETHODCALLTYPE Move( 
              /* [annotation][in] */ 
              _In_  enum TextUnit unit,
              /* [annotation][in] */ 
              _In_  int count,
              /* [annotation][retval][out] */ 
              _Out_retval_  int *pRetVal) = 0;
          
          virtual HRESULT STDMETHODCALLTYPE MoveEndpointByUnit( 
              /* [annotation][in] */ 
              _In_  enum TextPatternRangeEndpoint endpoint,
              /* [annotation][in] */ 
              _In_  enum TextUnit unit,
              /* [annotation][in] */ 
              _In_  int count,
              /* [annotation][retval][out] */ 
              _Out_retval_  int *pRetVal) = 0;
          
          virtual HRESULT STDMETHODCALLTYPE MoveEndpointByRange( 
              /* [annotation][in] */ 
              _In_  enum TextPatternRangeEndpoint endpoint,
              /* [annotation][in] */ 
              _In_  ITextRangeProvider *targetRange,
              /* [annotation][in] */ 
              _In_  enum TextPatternRangeEndpoint targetEndpoint) = 0;
          
          virtual HRESULT STDMETHODCALLTYPE Select( void) = 0;
          
          virtual HRESULT STDMETHODCALLTYPE AddToSelection( void) = 0;
          
          virtual HRESULT STDMETHODCALLTYPE RemoveFromSelection( void) = 0;
          
          virtual HRESULT STDMETHODCALLTYPE ScrollIntoView( 
              /* [annotation][in] */ 
              _In_  BOOL alignToTop) = 0;
          
          virtual HRESULT STDMETHODCALLTYPE GetChildren( 
              /* [annotation][retval][out] */ 
              _Out_retval_  SAFEARRAY * *pRetVal) = 0;
          
      };
      
      
  #else 	/* C style interface */
  
      typedef struct ITextRangeProviderVtbl
      {
          BEGIN_INTERFACE
          
          DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
          HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
              __RPC__in ITextRangeProvider * This,
              /* [annotation][in] */ 
              _In_  REFIID riid,
              /* [annotation][iid_is][out] */ 
              _COM_Outptr_  void **ppvObject);
          
          DECLSPEC_XFGVIRT(IUnknown, AddRef)
          ULONG ( STDMETHODCALLTYPE *AddRef )( 
              __RPC__in ITextRangeProvider * This);
          
          DECLSPEC_XFGVIRT(IUnknown, Release)
          ULONG ( STDMETHODCALLTYPE *Release )( 
              __RPC__in ITextRangeProvider * This);
          
          DECLSPEC_XFGVIRT(ITextRangeProvider, Clone)
          HRESULT ( STDMETHODCALLTYPE *Clone )( 
              __RPC__in ITextRangeProvider * This,
              /* [annotation][retval][out] */ 
              _Out_retval_  ITextRangeProvider **pRetVal);
          
          DECLSPEC_XFGVIRT(ITextRangeProvider, Compare)
          HRESULT ( STDMETHODCALLTYPE *Compare )( 
              __RPC__in ITextRangeProvider * This,
              /* [annotation][in] */ 
              _In_  ITextRangeProvider *range,
              /* [annotation][retval][out] */ 
              _Out_retval_  BOOL *pRetVal);
          
          DECLSPEC_XFGVIRT(ITextRangeProvider, CompareEndpoints)
          HRESULT ( STDMETHODCALLTYPE *CompareEndpoints )( 
              __RPC__in ITextRangeProvider * This,
              /* [annotation][in] */ 
              _In_  enum TextPatternRangeEndpoint endpoint,
              /* [annotation][in] */ 
              _In_  ITextRangeProvider *targetRange,
              /* [annotation][in] */ 
              _In_  enum TextPatternRangeEndpoint targetEndpoint,
              /* [annotation][retval][out] */ 
              _Out_retval_  int *pRetVal);
          
          DECLSPEC_XFGVIRT(ITextRangeProvider, ExpandToEnclosingUnit)
          HRESULT ( STDMETHODCALLTYPE *ExpandToEnclosingUnit )( 
              __RPC__in ITextRangeProvider * This,
              /* [annotation][in] */ 
              _In_  enum TextUnit unit);
          
          DECLSPEC_XFGVIRT(ITextRangeProvider, FindAttribute)
          HRESULT ( STDMETHODCALLTYPE *FindAttribute )( 
              __RPC__in ITextRangeProvider * This,
              /* [annotation][in] */ 
              _In_  TEXTATTRIBUTEID attributeId,
              /* [annotation][in] */ 
              _In_  VARIANT val,
              /* [annotation][in] */ 
              _In_  BOOL backward,
              /* [annotation][retval][out] */ 
              _Out_retval_  ITextRangeProvider **pRetVal);
          
          DECLSPEC_XFGVIRT(ITextRangeProvider, FindText)
          HRESULT ( STDMETHODCALLTYPE *FindText )( 
              __RPC__in ITextRangeProvider * This,
              /* [annotation][in] */ 
              _In_  BSTR text,
              /* [annotation][in] */ 
              _In_  BOOL backward,
              /* [annotation][in] */ 
              _In_  BOOL ignoreCase,
              /* [annotation][retval][out] */ 
              _Out_retval_  ITextRangeProvider **pRetVal);
          
          DECLSPEC_XFGVIRT(ITextRangeProvider, GetAttributeValue)
          HRESULT ( STDMETHODCALLTYPE *GetAttributeValue )( 
              __RPC__in ITextRangeProvider * This,
              /* [annotation][in] */ 
              _In_  TEXTATTRIBUTEID attributeId,
              /* [annotation][retval][out] */ 
              _Out_retval_  VARIANT *pRetVal);
          
          DECLSPEC_XFGVIRT(ITextRangeProvider, GetBoundingRectangles)
          HRESULT ( STDMETHODCALLTYPE *GetBoundingRectangles )( 
              __RPC__in ITextRangeProvider * This,
              /* [annotation][retval][out] */ 
              _Out_retval_  SAFEARRAY * *pRetVal);
          
          DECLSPEC_XFGVIRT(ITextRangeProvider, GetEnclosingElement)
          HRESULT ( STDMETHODCALLTYPE *GetEnclosingElement )( 
              __RPC__in ITextRangeProvider * This,
              /* [annotation][retval][out] */ 
              _Out_retval_  IRawElementProviderSimple **pRetVal);
          
          DECLSPEC_XFGVIRT(ITextRangeProvider, GetText)
          HRESULT ( STDMETHODCALLTYPE *GetText )( 
              __RPC__in ITextRangeProvider * This,
              /* [annotation][in] */ 
              _In_  int maxLength,
              /* [annotation][retval][out] */ 
              _Out_retval_  BSTR *pRetVal);
          
          DECLSPEC_XFGVIRT(ITextRangeProvider, Move)
          HRESULT ( STDMETHODCALLTYPE *Move )( 
              __RPC__in ITextRangeProvider * This,
              /* [annotation][in] */ 
              _In_  enum TextUnit unit,
              /* [annotation][in] */ 
              _In_  int count,
              /* [annotation][retval][out] */ 
              _Out_retval_  int *pRetVal);
          
          DECLSPEC_XFGVIRT(ITextRangeProvider, MoveEndpointByUnit)
          HRESULT ( STDMETHODCALLTYPE *MoveEndpointByUnit )( 
              __RPC__in ITextRangeProvider * This,
              /* [annotation][in] */ 
              _In_  enum TextPatternRangeEndpoint endpoint,
              /* [annotation][in] */ 
              _In_  enum TextUnit unit,
              /* [annotation][in] */ 
              _In_  int count,
              /* [annotation][retval][out] */ 
              _Out_retval_  int *pRetVal);
          
          DECLSPEC_XFGVIRT(ITextRangeProvider, MoveEndpointByRange)
          HRESULT ( STDMETHODCALLTYPE *MoveEndpointByRange )( 
              __RPC__in ITextRangeProvider * This,
              /* [annotation][in] */ 
              _In_  enum TextPatternRangeEndpoint endpoint,
              /* [annotation][in] */ 
              _In_  ITextRangeProvider *targetRange,
              /* [annotation][in] */ 
              _In_  enum TextPatternRangeEndpoint targetEndpoint);
          
          DECLSPEC_XFGVIRT(ITextRangeProvider, Select)
          HRESULT ( STDMETHODCALLTYPE *Select )( 
              __RPC__in ITextRangeProvider * This);
          
          DECLSPEC_XFGVIRT(ITextRangeProvider, AddToSelection)
          HRESULT ( STDMETHODCALLTYPE *AddToSelection )( 
              __RPC__in ITextRangeProvider * This);
          
          DECLSPEC_XFGVIRT(ITextRangeProvider, RemoveFromSelection)
          HRESULT ( STDMETHODCALLTYPE *RemoveFromSelection )( 
              __RPC__in ITextRangeProvider * This);
          
          DECLSPEC_XFGVIRT(ITextRangeProvider, ScrollIntoView)
          HRESULT ( STDMETHODCALLTYPE *ScrollIntoView )( 
              __RPC__in ITextRangeProvider * This,
              /* [annotation][in] */ 
              _In_  BOOL alignToTop);
          
          DECLSPEC_XFGVIRT(ITextRangeProvider, GetChildren)
          HRESULT ( STDMETHODCALLTYPE *GetChildren )( 
              __RPC__in ITextRangeProvider * This,
              /* [annotation][retval][out] */ 
              _Out_retval_  SAFEARRAY * *pRetVal);
          
          END_INTERFACE
      } ITextRangeProviderVtbl;
  
      interface ITextRangeProvider
      {
          CONST_VTBL struct ITextRangeProviderVtbl *lpVtbl;
      };
  
      
  
  #ifdef COBJMACROS
  
  
  #define ITextRangeProvider_QueryInterface(This,riid,ppvObject)	\
      ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
  
  #define ITextRangeProvider_AddRef(This)	\
      ( (This)->lpVtbl -> AddRef(This) ) 
  
  #define ITextRangeProvider_Release(This)	\
      ( (This)->lpVtbl -> Release(This) ) 
  
  
  #define ITextRangeProvider_Clone(This,pRetVal)	\
      ( (This)->lpVtbl -> Clone(This,pRetVal) ) 
  
  #define ITextRangeProvider_Compare(This,range,pRetVal)	\
      ( (This)->lpVtbl -> Compare(This,range,pRetVal) ) 
  
  #define ITextRangeProvider_CompareEndpoints(This,endpoint,targetRange,targetEndpoint,pRetVal)	\
      ( (This)->lpVtbl -> CompareEndpoints(This,endpoint,targetRange,targetEndpoint,pRetVal) ) 
  
  #define ITextRangeProvider_ExpandToEnclosingUnit(This,unit)	\
      ( (This)->lpVtbl -> ExpandToEnclosingUnit(This,unit) ) 
  
  #define ITextRangeProvider_FindAttribute(This,attributeId,val,backward,pRetVal)	\
      ( (This)->lpVtbl -> FindAttribute(This,attributeId,val,backward,pRetVal) ) 
  
  #define ITextRangeProvider_FindText(This,text,backward,ignoreCase,pRetVal)	\
      ( (This)->lpVtbl -> FindText(This,text,backward,ignoreCase,pRetVal) ) 
  
  #define ITextRangeProvider_GetAttributeValue(This,attributeId,pRetVal)	\
      ( (This)->lpVtbl -> GetAttributeValue(This,attributeId,pRetVal) ) 
  
  #define ITextRangeProvider_GetBoundingRectangles(This,pRetVal)	\
      ( (This)->lpVtbl -> GetBoundingRectangles(This,pRetVal) ) 
  
  #define ITextRangeProvider_GetEnclosingElement(This,pRetVal)	\
      ( (This)->lpVtbl -> GetEnclosingElement(This,pRetVal) ) 
  
  #define ITextRangeProvider_GetText(This,maxLength,pRetVal)	\
      ( (This)->lpVtbl -> GetText(This,maxLength,pRetVal) ) 
  
  #define ITextRangeProvider_Move(This,unit,count,pRetVal)	\
      ( (This)->lpVtbl -> Move(This,unit,count,pRetVal) ) 
  
  #define ITextRangeProvider_MoveEndpointByUnit(This,endpoint,unit,count,pRetVal)	\
      ( (This)->lpVtbl -> MoveEndpointByUnit(This,endpoint,unit,count,pRetVal) ) 
  
  #define ITextRangeProvider_MoveEndpointByRange(This,endpoint,targetRange,targetEndpoint)	\
      ( (This)->lpVtbl -> MoveEndpointByRange(This,endpoint,targetRange,targetEndpoint) ) 
  
  #define ITextRangeProvider_Select(This)	\
      ( (This)->lpVtbl -> Select(This) ) 
  
  #define ITextRangeProvider_AddToSelection(This)	\
      ( (This)->lpVtbl -> AddToSelection(This) ) 
  
  #define ITextRangeProvider_RemoveFromSelection(This)	\
      ( (This)->lpVtbl -> RemoveFromSelection(This) ) 
  
  #define ITextRangeProvider_ScrollIntoView(This,alignToTop)	\
      ( (This)->lpVtbl -> ScrollIntoView(This,alignToTop) ) 
  
  #define ITextRangeProvider_GetChildren(This,pRetVal)	\
      ( (This)->lpVtbl -> GetChildren(This,pRetVal) ) 
  
  #endif /* COBJMACROS */
  
  
  #endif 	/* C style interface */
  
  
  
  
  #endif 	/* __ITextRangeProvider_INTERFACE_DEFINED__ */
  
  
  #ifndef __ITextProvider_INTERFACE_DEFINED__
  #define __ITextProvider_INTERFACE_DEFINED__
  
  /* interface ITextProvider */
  /* [oleautomation][unique][uuid][object] */ 
  
  
  EXTERN_C const IID IID_ITextProvider;
  
  #if defined(__cplusplus) && !defined(CINTERFACE)
      
      MIDL_INTERFACE("3589c92c-63f3-4367-99bb-ada653b77cf2")
      ITextProvider : public IUnknown
      {
      public:
          virtual HRESULT STDMETHODCALLTYPE GetSelection( 
              /* [annotation][retval][out] */ 
              _Out_retval_  SAFEARRAY * *pRetVal) = 0;
          
          virtual HRESULT STDMETHODCALLTYPE GetVisibleRanges( 
              /* [annotation][retval][out] */ 
              _Out_retval_  SAFEARRAY * *pRetVal) = 0;
          
          virtual HRESULT STDMETHODCALLTYPE RangeFromChild( 
              /* [annotation][in] */ 
              _In_  IRawElementProviderSimple *childElement,
              /* [annotation][retval][out] */ 
              _Out_retval_  ITextRangeProvider **pRetVal) = 0;
          
          virtual HRESULT STDMETHODCALLTYPE RangeFromPoint( 
              /* [annotation][in] */ 
              _In_  struct UiaPoint point,
              /* [annotation][retval][out] */ 
              _Out_retval_  ITextRangeProvider **pRetVal) = 0;
          
          virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_DocumentRange( 
              /* [annotation][retval][out] */ 
              _Out_retval_  ITextRangeProvider **pRetVal) = 0;
          
          virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_SupportedTextSelection( 
              /* [annotation][retval][out] */ 
              _Out_retval_  enum SupportedTextSelection *pRetVal) = 0;
          
      };
      
      
  #else 	/* C style interface */
  
      typedef struct ITextProviderVtbl
      {
          BEGIN_INTERFACE
          
          DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
          HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
              __RPC__in ITextProvider * This,
              /* [annotation][in] */ 
              _In_  REFIID riid,
              /* [annotation][iid_is][out] */ 
              _COM_Outptr_  void **ppvObject);
          
          DECLSPEC_XFGVIRT(IUnknown, AddRef)
          ULONG ( STDMETHODCALLTYPE *AddRef )( 
              __RPC__in ITextProvider * This);
          
          DECLSPEC_XFGVIRT(IUnknown, Release)
          ULONG ( STDMETHODCALLTYPE *Release )( 
              __RPC__in ITextProvider * This);
          
          DECLSPEC_XFGVIRT(ITextProvider, GetSelection)
          HRESULT ( STDMETHODCALLTYPE *GetSelection )( 
              __RPC__in ITextProvider * This,
              /* [annotation][retval][out] */ 
              _Out_retval_  SAFEARRAY * *pRetVal);
          
          DECLSPEC_XFGVIRT(ITextProvider, GetVisibleRanges)
          HRESULT ( STDMETHODCALLTYPE *GetVisibleRanges )( 
              __RPC__in ITextProvider * This,
              /* [annotation][retval][out] */ 
              _Out_retval_  SAFEARRAY * *pRetVal);
          
          DECLSPEC_XFGVIRT(ITextProvider, RangeFromChild)
          HRESULT ( STDMETHODCALLTYPE *RangeFromChild )( 
              __RPC__in ITextProvider * This,
              /* [annotation][in] */ 
              _In_  IRawElementProviderSimple *childElement,
              /* [annotation][retval][out] */ 
              _Out_retval_  ITextRangeProvider **pRetVal);
          
          DECLSPEC_XFGVIRT(ITextProvider, RangeFromPoint)
          HRESULT ( STDMETHODCALLTYPE *RangeFromPoint )( 
              __RPC__in ITextProvider * This,
              /* [annotation][in] */ 
              _In_  struct UiaPoint point,
              /* [annotation][retval][out] */ 
              _Out_retval_  ITextRangeProvider **pRetVal);
          
          DECLSPEC_XFGVIRT(ITextProvider, get_DocumentRange)
          /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_DocumentRange )( 
              __RPC__in ITextProvider * This,
              /* [annotation][retval][out] */ 
              _Out_retval_  ITextRangeProvider **pRetVal);
          
          DECLSPEC_XFGVIRT(ITextProvider, get_SupportedTextSelection)
          /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_SupportedTextSelection )( 
              __RPC__in ITextProvider * This,
              /* [annotation][retval][out] */ 
              _Out_retval_  enum SupportedTextSelection *pRetVal);
          
          END_INTERFACE
      } ITextProviderVtbl;
  
      interface ITextProvider
      {
          CONST_VTBL struct ITextProviderVtbl *lpVtbl;
      };
  
      
  
  #ifdef COBJMACROS
  
  
  #define ITextProvider_QueryInterface(This,riid,ppvObject)	\
      ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
  
  #define ITextProvider_AddRef(This)	\
      ( (This)->lpVtbl -> AddRef(This) ) 
  
  #define ITextProvider_Release(This)	\
      ( (This)->lpVtbl -> Release(This) ) 
  
  
  #define ITextProvider_GetSelection(This,pRetVal)	\
      ( (This)->lpVtbl -> GetSelection(This,pRetVal) ) 
  
  #define ITextProvider_GetVisibleRanges(This,pRetVal)	\
      ( (This)->lpVtbl -> GetVisibleRanges(This,pRetVal) ) 
  
  #define ITextProvider_RangeFromChild(This,childElement,pRetVal)	\
      ( (This)->lpVtbl -> RangeFromChild(This,childElement,pRetVal) ) 
  
  #define ITextProvider_RangeFromPoint(This,point,pRetVal)	\
      ( (This)->lpVtbl -> RangeFromPoint(This,point,pRetVal) ) 
  
  #define ITextProvider_get_DocumentRange(This,pRetVal)	\
      ( (This)->lpVtbl -> get_DocumentRange(This,pRetVal) ) 
  
  #define ITextProvider_get_SupportedTextSelection(This,pRetVal)	\
      ( (This)->lpVtbl -> get_SupportedTextSelection(This,pRetVal) ) 
  
  #endif /* COBJMACROS */
  
  
  #endif 	/* C style interface */
  
  
  
  
  #endif 	/* __ITextProvider_INTERFACE_DEFINED__ */
  
  
  #ifndef __ITextProvider2_INTERFACE_DEFINED__
  #define __ITextProvider2_INTERFACE_DEFINED__
  
  /* interface ITextProvider2 */
  /* [oleautomation][unique][uuid][object] */ 
  
  
  EXTERN_C const IID IID_ITextProvider2;
  
  #if defined(__cplusplus) && !defined(CINTERFACE)
      
      MIDL_INTERFACE("0dc5e6ed-3e16-4bf1-8f9a-a979878bc195")
      ITextProvider2 : public ITextProvider
      {
      public:
          virtual HRESULT STDMETHODCALLTYPE RangeFromAnnotation( 
              /* [annotation][in] */ 
              _In_  IRawElementProviderSimple *annotationElement,
              /* [annotation][retval][out] */ 
              _Out_retval_  ITextRangeProvider **pRetVal) = 0;
          
          virtual HRESULT STDMETHODCALLTYPE GetCaretRange( 
              /* [annotation][out] */ 
              _Out_  BOOL *isActive,
              /* [annotation][retval][out] */ 
              _Out_retval_  ITextRangeProvider **pRetVal) = 0;
          
      };
      
      
  #else 	/* C style interface */
  
      typedef struct ITextProvider2Vtbl
      {
          BEGIN_INTERFACE
          
          DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
          HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
              __RPC__in ITextProvider2 * This,
              /* [annotation][in] */ 
              _In_  REFIID riid,
              /* [annotation][iid_is][out] */ 
              _COM_Outptr_  void **ppvObject);
          
          DECLSPEC_XFGVIRT(IUnknown, AddRef)
          ULONG ( STDMETHODCALLTYPE *AddRef )( 
              __RPC__in ITextProvider2 * This);
          
          DECLSPEC_XFGVIRT(IUnknown, Release)
          ULONG ( STDMETHODCALLTYPE *Release )( 
              __RPC__in ITextProvider2 * This);
          
          DECLSPEC_XFGVIRT(ITextProvider, GetSelection)
          HRESULT ( STDMETHODCALLTYPE *GetSelection )( 
              __RPC__in ITextProvider2 * This,
              /* [annotation][retval][out] */ 
              _Out_retval_  SAFEARRAY * *pRetVal);
          
          DECLSPEC_XFGVIRT(ITextProvider, GetVisibleRanges)
          HRESULT ( STDMETHODCALLTYPE *GetVisibleRanges )( 
              __RPC__in ITextProvider2 * This,
              /* [annotation][retval][out] */ 
              _Out_retval_  SAFEARRAY * *pRetVal);
          
          DECLSPEC_XFGVIRT(ITextProvider, RangeFromChild)
          HRESULT ( STDMETHODCALLTYPE *RangeFromChild )( 
              __RPC__in ITextProvider2 * This,
              /* [annotation][in] */ 
              _In_  IRawElementProviderSimple *childElement,
              /* [annotation][retval][out] */ 
              _Out_retval_  ITextRangeProvider **pRetVal);
          
          DECLSPEC_XFGVIRT(ITextProvider, RangeFromPoint)
          HRESULT ( STDMETHODCALLTYPE *RangeFromPoint )( 
              __RPC__in ITextProvider2 * This,
              /* [annotation][in] */ 
              _In_  struct UiaPoint point,
              /* [annotation][retval][out] */ 
              _Out_retval_  ITextRangeProvider **pRetVal);
          
          DECLSPEC_XFGVIRT(ITextProvider, get_DocumentRange)
          /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_DocumentRange )( 
              __RPC__in ITextProvider2 * This,
              /* [annotation][retval][out] */ 
              _Out_retval_  ITextRangeProvider **pRetVal);
          
          DECLSPEC_XFGVIRT(ITextProvider, get_SupportedTextSelection)
          /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_SupportedTextSelection )( 
              __RPC__in ITextProvider2 * This,
              /* [annotation][retval][out] */ 
              _Out_retval_  enum SupportedTextSelection *pRetVal);
          
          DECLSPEC_XFGVIRT(ITextProvider2, RangeFromAnnotation)
          HRESULT ( STDMETHODCALLTYPE *RangeFromAnnotation )( 
              __RPC__in ITextProvider2 * This,
              /* [annotation][in] */ 
              _In_  IRawElementProviderSimple *annotationElement,
              /* [annotation][retval][out] */ 
              _Out_retval_  ITextRangeProvider **pRetVal);
          
          DECLSPEC_XFGVIRT(ITextProvider2, GetCaretRange)
          HRESULT ( STDMETHODCALLTYPE *GetCaretRange )( 
              __RPC__in ITextProvider2 * This,
              /* [annotation][out] */ 
              _Out_  BOOL *isActive,
              /* [annotation][retval][out] */ 
              _Out_retval_  ITextRangeProvider **pRetVal);
          
          END_INTERFACE
      } ITextProvider2Vtbl;
  
      interface ITextProvider2
      {
          CONST_VTBL struct ITextProvider2Vtbl *lpVtbl;
      };
  
      
  
  #ifdef COBJMACROS
  
  
  #define ITextProvider2_QueryInterface(This,riid,ppvObject)	\
      ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
  
  #define ITextProvider2_AddRef(This)	\
      ( (This)->lpVtbl -> AddRef(This) ) 
  
  #define ITextProvider2_Release(This)	\
      ( (This)->lpVtbl -> Release(This) ) 
  
  
  #define ITextProvider2_GetSelection(This,pRetVal)	\
      ( (This)->lpVtbl -> GetSelection(This,pRetVal) ) 
  
  #define ITextProvider2_GetVisibleRanges(This,pRetVal)	\
      ( (This)->lpVtbl -> GetVisibleRanges(This,pRetVal) ) 
  
  #define ITextProvider2_RangeFromChild(This,childElement,pRetVal)	\
      ( (This)->lpVtbl -> RangeFromChild(This,childElement,pRetVal) ) 
  
  #define ITextProvider2_RangeFromPoint(This,point,pRetVal)	\
      ( (This)->lpVtbl -> RangeFromPoint(This,point,pRetVal) ) 
  
  #define ITextProvider2_get_DocumentRange(This,pRetVal)	\
      ( (This)->lpVtbl -> get_DocumentRange(This,pRetVal) ) 
  
  #define ITextProvider2_get_SupportedTextSelection(This,pRetVal)	\
      ( (This)->lpVtbl -> get_SupportedTextSelection(This,pRetVal) ) 
  
  
  #define ITextProvider2_RangeFromAnnotation(This,annotationElement,pRetVal)	\
      ( (This)->lpVtbl -> RangeFromAnnotation(This,annotationElement,pRetVal) ) 
  
  #define ITextProvider2_GetCaretRange(This,isActive,pRetVal)	\
      ( (This)->lpVtbl -> GetCaretRange(This,isActive,pRetVal) ) 
  
  #endif /* COBJMACROS */
  
  
  #endif 	/* C style interface */
  
  
  
  
  #endif 	/* __ITextProvider2_INTERFACE_DEFINED__ */
  
  
  #ifndef __ITextEditProvider_INTERFACE_DEFINED__
  #define __ITextEditProvider_INTERFACE_DEFINED__
  
  /* interface ITextEditProvider */
  /* [oleautomation][unique][uuid][object] */ 
  
  
  EXTERN_C const IID IID_ITextEditProvider;
  
  #if defined(__cplusplus) && !defined(CINTERFACE)
      
      MIDL_INTERFACE("EA3605B4-3A05-400E-B5F9-4E91B40F6176")
      ITextEditProvider : public ITextProvider
      {
      public:
          virtual HRESULT STDMETHODCALLTYPE GetActiveComposition( 
              /* [annotation][retval][out] */ 
              _Out_retval_  ITextRangeProvider **pRetVal) = 0;
          
          virtual HRESULT STDMETHODCALLTYPE GetConversionTarget( 
              /* [annotation][retval][out] */ 
              _Out_retval_  ITextRangeProvider **pRetVal) = 0;
          
      };
      
      
  #else 	/* C style interface */
  
      typedef struct ITextEditProviderVtbl
      {
          BEGIN_INTERFACE
          
          DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
          HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
              __RPC__in ITextEditProvider * This,
              /* [annotation][in] */ 
              _In_  REFIID riid,
              /* [annotation][iid_is][out] */ 
              _COM_Outptr_  void **ppvObject);
          
          DECLSPEC_XFGVIRT(IUnknown, AddRef)
          ULONG ( STDMETHODCALLTYPE *AddRef )( 
              __RPC__in ITextEditProvider * This);
          
          DECLSPEC_XFGVIRT(IUnknown, Release)
          ULONG ( STDMETHODCALLTYPE *Release )( 
              __RPC__in ITextEditProvider * This);
          
          DECLSPEC_XFGVIRT(ITextProvider, GetSelection)
          HRESULT ( STDMETHODCALLTYPE *GetSelection )( 
              __RPC__in ITextEditProvider * This,
              /* [annotation][retval][out] */ 
              _Out_retval_  SAFEARRAY * *pRetVal);
          
          DECLSPEC_XFGVIRT(ITextProvider, GetVisibleRanges)
          HRESULT ( STDMETHODCALLTYPE *GetVisibleRanges )( 
              __RPC__in ITextEditProvider * This,
              /* [annotation][retval][out] */ 
              _Out_retval_  SAFEARRAY * *pRetVal);
          
          DECLSPEC_XFGVIRT(ITextProvider, RangeFromChild)
          HRESULT ( STDMETHODCALLTYPE *RangeFromChild )( 
              __RPC__in ITextEditProvider * This,
              /* [annotation][in] */ 
              _In_  IRawElementProviderSimple *childElement,
              /* [annotation][retval][out] */ 
              _Out_retval_  ITextRangeProvider **pRetVal);
          
          DECLSPEC_XFGVIRT(ITextProvider, RangeFromPoint)
          HRESULT ( STDMETHODCALLTYPE *RangeFromPoint )( 
              __RPC__in ITextEditProvider * This,
              /* [annotation][in] */ 
              _In_  struct UiaPoint point,
              /* [annotation][retval][out] */ 
              _Out_retval_  ITextRangeProvider **pRetVal);
          
          DECLSPEC_XFGVIRT(ITextProvider, get_DocumentRange)
          /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_DocumentRange )( 
              __RPC__in ITextEditProvider * This,
              /* [annotation][retval][out] */ 
              _Out_retval_  ITextRangeProvider **pRetVal);
          
          DECLSPEC_XFGVIRT(ITextProvider, get_SupportedTextSelection)
          /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_SupportedTextSelection )( 
              __RPC__in ITextEditProvider * This,
              /* [annotation][retval][out] */ 
              _Out_retval_  enum SupportedTextSelection *pRetVal);
          
          DECLSPEC_XFGVIRT(ITextEditProvider, GetActiveComposition)
          HRESULT ( STDMETHODCALLTYPE *GetActiveComposition )( 
              __RPC__in ITextEditProvider * This,
              /* [annotation][retval][out] */ 
              _Out_retval_  ITextRangeProvider **pRetVal);
          
          DECLSPEC_XFGVIRT(ITextEditProvider, GetConversionTarget)
          HRESULT ( STDMETHODCALLTYPE *GetConversionTarget )( 
              __RPC__in ITextEditProvider * This,
              /* [annotation][retval][out] */ 
              _Out_retval_  ITextRangeProvider **pRetVal);
          
          END_INTERFACE
      } ITextEditProviderVtbl;
  
      interface ITextEditProvider
      {
          CONST_VTBL struct ITextEditProviderVtbl *lpVtbl;
      };
  
      
  
  #ifdef COBJMACROS
  
  
  #define ITextEditProvider_QueryInterface(This,riid,ppvObject)	\
      ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
  
  #define ITextEditProvider_AddRef(This)	\
      ( (This)->lpVtbl -> AddRef(This) ) 
  
  #define ITextEditProvider_Release(This)	\
      ( (This)->lpVtbl -> Release(This) ) 
  
  
  #define ITextEditProvider_GetSelection(This,pRetVal)	\
      ( (This)->lpVtbl -> GetSelection(This,pRetVal) ) 
  
  #define ITextEditProvider_GetVisibleRanges(This,pRetVal)	\
      ( (This)->lpVtbl -> GetVisibleRanges(This,pRetVal) ) 
  
  #define ITextEditProvider_RangeFromChild(This,childElement,pRetVal)	\
      ( (This)->lpVtbl -> RangeFromChild(This,childElement,pRetVal) ) 
  
  #define ITextEditProvider_RangeFromPoint(This,point,pRetVal)	\
      ( (This)->lpVtbl -> RangeFromPoint(This,point,pRetVal) ) 
  
  #define ITextEditProvider_get_DocumentRange(This,pRetVal)	\
      ( (This)->lpVtbl -> get_DocumentRange(This,pRetVal) ) 
  
  #define ITextEditProvider_get_SupportedTextSelection(This,pRetVal)	\
      ( (This)->lpVtbl -> get_SupportedTextSelection(This,pRetVal) ) 
  
  
  #define ITextEditProvider_GetActiveComposition(This,pRetVal)	\
      ( (This)->lpVtbl -> GetActiveComposition(This,pRetVal) ) 
  
  #define ITextEditProvider_GetConversionTarget(This,pRetVal)	\
      ( (This)->lpVtbl -> GetConversionTarget(This,pRetVal) ) 
  
  #endif /* COBJMACROS */
  
  
  #endif 	/* C style interface */
  
  
  
  
  #endif 	/* __ITextEditProvider_INTERFACE_DEFINED__ */
  
  
  #ifndef __ITextRangeProvider2_INTERFACE_DEFINED__
  #define __ITextRangeProvider2_INTERFACE_DEFINED__
  
  /* interface ITextRangeProvider2 */
  /* [oleautomation][unique][uuid][object] */ 
  
  
  EXTERN_C const IID IID_ITextRangeProvider2;
  
  #if defined(__cplusplus) && !defined(CINTERFACE)
      
      MIDL_INTERFACE("9BBCE42C-1921-4F18-89CA-DBA1910A0386")
      ITextRangeProvider2 : public ITextRangeProvider
      {
      public:
          virtual HRESULT STDMETHODCALLTYPE ShowContextMenu( void) = 0;
          
      };
      
      
  #else 	/* C style interface */
  
      typedef struct ITextRangeProvider2Vtbl
      {
          BEGIN_INTERFACE
          
          DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
          HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
              __RPC__in ITextRangeProvider2 * This,
              /* [annotation][in] */ 
              _In_  REFIID riid,
              /* [annotation][iid_is][out] */ 
              _COM_Outptr_  void **ppvObject);
          
          DECLSPEC_XFGVIRT(IUnknown, AddRef)
          ULONG ( STDMETHODCALLTYPE *AddRef )( 
              __RPC__in ITextRangeProvider2 * This);
          
          DECLSPEC_XFGVIRT(IUnknown, Release)
          ULONG ( STDMETHODCALLTYPE *Release )( 
              __RPC__in ITextRangeProvider2 * This);
          
          DECLSPEC_XFGVIRT(ITextRangeProvider, Clone)
          HRESULT ( STDMETHODCALLTYPE *Clone )( 
              __RPC__in ITextRangeProvider2 * This,
              /* [annotation][retval][out] */ 
              _Out_retval_  ITextRangeProvider **pRetVal);
          
          DECLSPEC_XFGVIRT(ITextRangeProvider, Compare)
          HRESULT ( STDMETHODCALLTYPE *Compare )( 
              __RPC__in ITextRangeProvider2 * This,
              /* [annotation][in] */ 
              _In_  ITextRangeProvider *range,
              /* [annotation][retval][out] */ 
              _Out_retval_  BOOL *pRetVal);
          
          DECLSPEC_XFGVIRT(ITextRangeProvider, CompareEndpoints)
          HRESULT ( STDMETHODCALLTYPE *CompareEndpoints )( 
              __RPC__in ITextRangeProvider2 * This,
              /* [annotation][in] */ 
              _In_  enum TextPatternRangeEndpoint endpoint,
              /* [annotation][in] */ 
              _In_  ITextRangeProvider *targetRange,
              /* [annotation][in] */ 
              _In_  enum TextPatternRangeEndpoint targetEndpoint,
              /* [annotation][retval][out] */ 
              _Out_retval_  int *pRetVal);
          
          DECLSPEC_XFGVIRT(ITextRangeProvider, ExpandToEnclosingUnit)
          HRESULT ( STDMETHODCALLTYPE *ExpandToEnclosingUnit )( 
              __RPC__in ITextRangeProvider2 * This,
              /* [annotation][in] */ 
              _In_  enum TextUnit unit);
          
          DECLSPEC_XFGVIRT(ITextRangeProvider, FindAttribute)
          HRESULT ( STDMETHODCALLTYPE *FindAttribute )( 
              __RPC__in ITextRangeProvider2 * This,
              /* [annotation][in] */ 
              _In_  TEXTATTRIBUTEID attributeId,
              /* [annotation][in] */ 
              _In_  VARIANT val,
              /* [annotation][in] */ 
              _In_  BOOL backward,
              /* [annotation][retval][out] */ 
              _Out_retval_  ITextRangeProvider **pRetVal);
          
          DECLSPEC_XFGVIRT(ITextRangeProvider, FindText)
          HRESULT ( STDMETHODCALLTYPE *FindText )( 
              __RPC__in ITextRangeProvider2 * This,
              /* [annotation][in] */ 
              _In_  BSTR text,
              /* [annotation][in] */ 
              _In_  BOOL backward,
              /* [annotation][in] */ 
              _In_  BOOL ignoreCase,
              /* [annotation][retval][out] */ 
              _Out_retval_  ITextRangeProvider **pRetVal);
          
          DECLSPEC_XFGVIRT(ITextRangeProvider, GetAttributeValue)
          HRESULT ( STDMETHODCALLTYPE *GetAttributeValue )( 
              __RPC__in ITextRangeProvider2 * This,
              /* [annotation][in] */ 
              _In_  TEXTATTRIBUTEID attributeId,
              /* [annotation][retval][out] */ 
              _Out_retval_  VARIANT *pRetVal);
          
          DECLSPEC_XFGVIRT(ITextRangeProvider, GetBoundingRectangles)
          HRESULT ( STDMETHODCALLTYPE *GetBoundingRectangles )( 
              __RPC__in ITextRangeProvider2 * This,
              /* [annotation][retval][out] */ 
              _Out_retval_  SAFEARRAY * *pRetVal);
          
          DECLSPEC_XFGVIRT(ITextRangeProvider, GetEnclosingElement)
          HRESULT ( STDMETHODCALLTYPE *GetEnclosingElement )( 
              __RPC__in ITextRangeProvider2 * This,
              /* [annotation][retval][out] */ 
              _Out_retval_  IRawElementProviderSimple **pRetVal);
          
          DECLSPEC_XFGVIRT(ITextRangeProvider, GetText)
          HRESULT ( STDMETHODCALLTYPE *GetText )( 
              __RPC__in ITextRangeProvider2 * This,
              /* [annotation][in] */ 
              _In_  int maxLength,
              /* [annotation][retval][out] */ 
              _Out_retval_  BSTR *pRetVal);
          
          DECLSPEC_XFGVIRT(ITextRangeProvider, Move)
          HRESULT ( STDMETHODCALLTYPE *Move )( 
              __RPC__in ITextRangeProvider2 * This,
              /* [annotation][in] */ 
              _In_  enum TextUnit unit,
              /* [annotation][in] */ 
              _In_  int count,
              /* [annotation][retval][out] */ 
              _Out_retval_  int *pRetVal);
          
          DECLSPEC_XFGVIRT(ITextRangeProvider, MoveEndpointByUnit)
          HRESULT ( STDMETHODCALLTYPE *MoveEndpointByUnit )( 
              __RPC__in ITextRangeProvider2 * This,
              /* [annotation][in] */ 
              _In_  enum TextPatternRangeEndpoint endpoint,
              /* [annotation][in] */ 
              _In_  enum TextUnit unit,
              /* [annotation][in] */ 
              _In_  int count,
              /* [annotation][retval][out] */ 
              _Out_retval_  int *pRetVal);
          
          DECLSPEC_XFGVIRT(ITextRangeProvider, MoveEndpointByRange)
          HRESULT ( STDMETHODCALLTYPE *MoveEndpointByRange )( 
              __RPC__in ITextRangeProvider2 * This,
              /* [annotation][in] */ 
              _In_  enum TextPatternRangeEndpoint endpoint,
              /* [annotation][in] */ 
              _In_  ITextRangeProvider *targetRange,
              /* [annotation][in] */ 
              _In_  enum TextPatternRangeEndpoint targetEndpoint);
          
          DECLSPEC_XFGVIRT(ITextRangeProvider, Select)
          HRESULT ( STDMETHODCALLTYPE *Select )( 
              __RPC__in ITextRangeProvider2 * This);
          
          DECLSPEC_XFGVIRT(ITextRangeProvider, AddToSelection)
          HRESULT ( STDMETHODCALLTYPE *AddToSelection )( 
              __RPC__in ITextRangeProvider2 * This);
          
          DECLSPEC_XFGVIRT(ITextRangeProvider, RemoveFromSelection)
          HRESULT ( STDMETHODCALLTYPE *RemoveFromSelection )( 
              __RPC__in ITextRangeProvider2 * This);
          
          DECLSPEC_XFGVIRT(ITextRangeProvider, ScrollIntoView)
          HRESULT ( STDMETHODCALLTYPE *ScrollIntoView )( 
              __RPC__in ITextRangeProvider2 * This,
              /* [annotation][in] */ 
              _In_  BOOL alignToTop);
          
          DECLSPEC_XFGVIRT(ITextRangeProvider, GetChildren)
          HRESULT ( STDMETHODCALLTYPE *GetChildren )( 
              __RPC__in ITextRangeProvider2 * This,
              /* [annotation][retval][out] */ 
              _Out_retval_  SAFEARRAY * *pRetVal);
          
          DECLSPEC_XFGVIRT(ITextRangeProvider2, ShowContextMenu)
          HRESULT ( STDMETHODCALLTYPE *ShowContextMenu )( 
              __RPC__in ITextRangeProvider2 * This);
          
          END_INTERFACE
      } ITextRangeProvider2Vtbl;
  
      interface ITextRangeProvider2
      {
          CONST_VTBL struct ITextRangeProvider2Vtbl *lpVtbl;
      };
  
      
  
  #ifdef COBJMACROS
  
  
  #define ITextRangeProvider2_QueryInterface(This,riid,ppvObject)	\
      ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
  
  #define ITextRangeProvider2_AddRef(This)	\
      ( (This)->lpVtbl -> AddRef(This) ) 
  
  #define ITextRangeProvider2_Release(This)	\
      ( (This)->lpVtbl -> Release(This) ) 
  
  
  #define ITextRangeProvider2_Clone(This,pRetVal)	\
      ( (This)->lpVtbl -> Clone(This,pRetVal) ) 
  
  #define ITextRangeProvider2_Compare(This,range,pRetVal)	\
      ( (This)->lpVtbl -> Compare(This,range,pRetVal) ) 
  
  #define ITextRangeProvider2_CompareEndpoints(This,endpoint,targetRange,targetEndpoint,pRetVal)	\
      ( (This)->lpVtbl -> CompareEndpoints(This,endpoint,targetRange,targetEndpoint,pRetVal) ) 
  
  #define ITextRangeProvider2_ExpandToEnclosingUnit(This,unit)	\
      ( (This)->lpVtbl -> ExpandToEnclosingUnit(This,unit) ) 
  
  #define ITextRangeProvider2_FindAttribute(This,attributeId,val,backward,pRetVal)	\
      ( (This)->lpVtbl -> FindAttribute(This,attributeId,val,backward,pRetVal) ) 
  
  #define ITextRangeProvider2_FindText(This,text,backward,ignoreCase,pRetVal)	\
      ( (This)->lpVtbl -> FindText(This,text,backward,ignoreCase,pRetVal) ) 
  
  #define ITextRangeProvider2_GetAttributeValue(This,attributeId,pRetVal)	\
      ( (This)->lpVtbl -> GetAttributeValue(This,attributeId,pRetVal) ) 
  
  #define ITextRangeProvider2_GetBoundingRectangles(This,pRetVal)	\
      ( (This)->lpVtbl -> GetBoundingRectangles(This,pRetVal) ) 
  
  #define ITextRangeProvider2_GetEnclosingElement(This,pRetVal)	\
      ( (This)->lpVtbl -> GetEnclosingElement(This,pRetVal) ) 
  
  #define ITextRangeProvider2_GetText(This,maxLength,pRetVal)	\
      ( (This)->lpVtbl -> GetText(This,maxLength,pRetVal) ) 
  
  #define ITextRangeProvider2_Move(This,unit,count,pRetVal)	\
      ( (This)->lpVtbl -> Move(This,unit,count,pRetVal) ) 
  
  #define ITextRangeProvider2_MoveEndpointByUnit(This,endpoint,unit,count,pRetVal)	\
      ( (This)->lpVtbl -> MoveEndpointByUnit(This,endpoint,unit,count,pRetVal) ) 
  
  #define ITextRangeProvider2_MoveEndpointByRange(This,endpoint,targetRange,targetEndpoint)	\
      ( (This)->lpVtbl -> MoveEndpointByRange(This,endpoint,targetRange,targetEndpoint) ) 
  
  #define ITextRangeProvider2_Select(This)	\
      ( (This)->lpVtbl -> Select(This) ) 
  
  #define ITextRangeProvider2_AddToSelection(This)	\
      ( (This)->lpVtbl -> AddToSelection(This) ) 
  
  #define ITextRangeProvider2_RemoveFromSelection(This)	\
      ( (This)->lpVtbl -> RemoveFromSelection(This) ) 
  
  #define ITextRangeProvider2_ScrollIntoView(This,alignToTop)	\
      ( (This)->lpVtbl -> ScrollIntoView(This,alignToTop) ) 
  
  #define ITextRangeProvider2_GetChildren(This,pRetVal)	\
      ( (This)->lpVtbl -> GetChildren(This,pRetVal) ) 
  
  
  #define ITextRangeProvider2_ShowContextMenu(This)	\
      ( (This)->lpVtbl -> ShowContextMenu(This) ) 
  
  #endif /* COBJMACROS */
  
  
  #endif 	/* C style interface */
  
  
  
  
  #endif 	/* __ITextRangeProvider2_INTERFACE_DEFINED__ */
  
  
  #ifndef __ITextChildProvider_INTERFACE_DEFINED__
  #define __ITextChildProvider_INTERFACE_DEFINED__
  
  /* interface ITextChildProvider */
  /* [oleautomation][unique][uuid][object] */ 
  
  
  EXTERN_C const IID IID_ITextChildProvider;
  
  #if defined(__cplusplus) && !defined(CINTERFACE)
      
      MIDL_INTERFACE("4c2de2b9-c88f-4f88-a111-f1d336b7d1a9")
      ITextChildProvider : public IUnknown
      {
      public:
          virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_TextContainer( 
              /* [annotation][retval][out] */ 
              _Out_retval_  IRawElementProviderSimple **pRetVal) = 0;
          
          virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_TextRange( 
              /* [annotation][retval][out] */ 
              _Out_retval_  ITextRangeProvider **pRetVal) = 0;
          
      };
      
      
  #else 	/* C style interface */
  
      typedef struct ITextChildProviderVtbl
      {
          BEGIN_INTERFACE
          
          DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
          HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
              __RPC__in ITextChildProvider * This,
              /* [annotation][in] */ 
              _In_  REFIID riid,
              /* [annotation][iid_is][out] */ 
              _COM_Outptr_  void **ppvObject);
          
          DECLSPEC_XFGVIRT(IUnknown, AddRef)
          ULONG ( STDMETHODCALLTYPE *AddRef )( 
              __RPC__in ITextChildProvider * This);
          
          DECLSPEC_XFGVIRT(IUnknown, Release)
          ULONG ( STDMETHODCALLTYPE *Release )( 
              __RPC__in ITextChildProvider * This);
          
          DECLSPEC_XFGVIRT(ITextChildProvider, get_TextContainer)
          /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_TextContainer )( 
              __RPC__in ITextChildProvider * This,
              /* [annotation][retval][out] */ 
              _Out_retval_  IRawElementProviderSimple **pRetVal);
          
          DECLSPEC_XFGVIRT(ITextChildProvider, get_TextRange)
          /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_TextRange )( 
              __RPC__in ITextChildProvider * This,
              /* [annotation][retval][out] */ 
              _Out_retval_  ITextRangeProvider **pRetVal);
          
          END_INTERFACE
      } ITextChildProviderVtbl;
  
      interface ITextChildProvider
      {
          CONST_VTBL struct ITextChildProviderVtbl *lpVtbl;
      };
  
      
  
  #ifdef COBJMACROS
  
  
  #define ITextChildProvider_QueryInterface(This,riid,ppvObject)	\
      ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
  
  #define ITextChildProvider_AddRef(This)	\
      ( (This)->lpVtbl -> AddRef(This) ) 
  
  #define ITextChildProvider_Release(This)	\
      ( (This)->lpVtbl -> Release(This) ) 
  
  
  #define ITextChildProvider_get_TextContainer(This,pRetVal)	\
      ( (This)->lpVtbl -> get_TextContainer(This,pRetVal) ) 
  
  #define ITextChildProvider_get_TextRange(This,pRetVal)	\
      ( (This)->lpVtbl -> get_TextRange(This,pRetVal) ) 
  
  #endif /* COBJMACROS */
  
  
  #endif 	/* C style interface */
  
  
  
  
  #endif 	/* __ITextChildProvider_INTERFACE_DEFINED__ */
  
  
  #ifndef __ICustomNavigationProvider_INTERFACE_DEFINED__
  #define __ICustomNavigationProvider_INTERFACE_DEFINED__
  
  /* interface ICustomNavigationProvider */
  /* [oleautomation][unique][uuid][object] */ 
  
  
  EXTERN_C const IID IID_ICustomNavigationProvider;
  
  #if defined(__cplusplus) && !defined(CINTERFACE)
      
      MIDL_INTERFACE("2062A28A-8C07-4B94-8E12-7037C622AEB8")
      ICustomNavigationProvider : public IUnknown
      {
      public:
          virtual HRESULT STDMETHODCALLTYPE Navigate( 
              /* [annotation][in] */ 
              _In_  enum NavigateDirection direction,
              /* [annotation][retval][out] */ 
              _Out_retval_  IRawElementProviderSimple **pRetVal) = 0;
          
      };
      
      
  #else 	/* C style interface */
  
      typedef struct ICustomNavigationProviderVtbl
      {
          BEGIN_INTERFACE
          
          DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
          HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
              __RPC__in ICustomNavigationProvider * This,
              /* [annotation][in] */ 
              _In_  REFIID riid,
              /* [annotation][iid_is][out] */ 
              _COM_Outptr_  void **ppvObject);
          
          DECLSPEC_XFGVIRT(IUnknown, AddRef)
          ULONG ( STDMETHODCALLTYPE *AddRef )( 
              __RPC__in ICustomNavigationProvider * This);
          
          DECLSPEC_XFGVIRT(IUnknown, Release)
          ULONG ( STDMETHODCALLTYPE *Release )( 
              __RPC__in ICustomNavigationProvider * This);
          
          DECLSPEC_XFGVIRT(ICustomNavigationProvider, Navigate)
          HRESULT ( STDMETHODCALLTYPE *Navigate )( 
              __RPC__in ICustomNavigationProvider * This,
              /* [annotation][in] */ 
              _In_  enum NavigateDirection direction,
              /* [annotation][retval][out] */ 
              _Out_retval_  IRawElementProviderSimple **pRetVal);
          
          END_INTERFACE
      } ICustomNavigationProviderVtbl;
  
      interface ICustomNavigationProvider
      {
          CONST_VTBL struct ICustomNavigationProviderVtbl *lpVtbl;
      };
  
      
  
  #ifdef COBJMACROS
  
  
  #define ICustomNavigationProvider_QueryInterface(This,riid,ppvObject)	\
      ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
  
  #define ICustomNavigationProvider_AddRef(This)	\
      ( (This)->lpVtbl -> AddRef(This) ) 
  
  #define ICustomNavigationProvider_Release(This)	\
      ( (This)->lpVtbl -> Release(This) ) 
  
  
  #define ICustomNavigationProvider_Navigate(This,direction,pRetVal)	\
      ( (This)->lpVtbl -> Navigate(This,direction,pRetVal) ) 
  
  #endif /* COBJMACROS */
  
  
  #endif 	/* C style interface */
  
  
  
  
  #endif 	/* __ICustomNavigationProvider_INTERFACE_DEFINED__ */
  
  
  #ifndef __IUIAutomationPatternInstance_INTERFACE_DEFINED__
  #define __IUIAutomationPatternInstance_INTERFACE_DEFINED__
  
  /* interface IUIAutomationPatternInstance */
  /* [oleautomation][unique][uuid][object] */ 
  
  
  EXTERN_C const IID IID_IUIAutomationPatternInstance;
  
  #if defined(__cplusplus) && !defined(CINTERFACE)
      
      MIDL_INTERFACE("c03a7fe4-9431-409f-bed8-ae7c2299bc8d")
      IUIAutomationPatternInstance : public IUnknown
      {
      public:
          virtual /* [local] */ HRESULT STDMETHODCALLTYPE GetProperty( 
              /* [annotation][in] */ 
              _In_  UINT index,
              /* [annotation][in] */ 
              _In_  BOOL cached,
              /* [annotation][in] */ 
              _In_  enum UIAutomationType type,
              /* [annotation][out] */ 
              _Out_  void *pPtr) = 0;
          
          virtual /* [local] */ HRESULT STDMETHODCALLTYPE CallMethod( 
              /* [annotation][in] */ 
              _In_  UINT index,
              /* [annotation][in] */ 
              _In_  const struct UIAutomationParameter *pParams,
              /* [annotation][in] */ 
              _In_  UINT cParams) = 0;
          
      };
      
      
  #else 	/* C style interface */
  
      typedef struct IUIAutomationPatternInstanceVtbl
      {
          BEGIN_INTERFACE
          
          DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
          HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
              __RPC__in IUIAutomationPatternInstance * This,
              /* [annotation][in] */ 
              _In_  REFIID riid,
              /* [annotation][iid_is][out] */ 
              _COM_Outptr_  void **ppvObject);
          
          DECLSPEC_XFGVIRT(IUnknown, AddRef)
          ULONG ( STDMETHODCALLTYPE *AddRef )( 
              __RPC__in IUIAutomationPatternInstance * This);
          
          DECLSPEC_XFGVIRT(IUnknown, Release)
          ULONG ( STDMETHODCALLTYPE *Release )( 
              __RPC__in IUIAutomationPatternInstance * This);
          
          DECLSPEC_XFGVIRT(IUIAutomationPatternInstance, GetProperty)
          /* [local] */ HRESULT ( STDMETHODCALLTYPE *GetProperty )( 
              IUIAutomationPatternInstance * This,
              /* [annotation][in] */ 
              _In_  UINT index,
              /* [annotation][in] */ 
              _In_  BOOL cached,
              /* [annotation][in] */ 
              _In_  enum UIAutomationType type,
              /* [annotation][out] */ 
              _Out_  void *pPtr);
          
          DECLSPEC_XFGVIRT(IUIAutomationPatternInstance, CallMethod)
          /* [local] */ HRESULT ( STDMETHODCALLTYPE *CallMethod )( 
              IUIAutomationPatternInstance * This,
              /* [annotation][in] */ 
              _In_  UINT index,
              /* [annotation][in] */ 
              _In_  const struct UIAutomationParameter *pParams,
              /* [annotation][in] */ 
              _In_  UINT cParams);
          
          END_INTERFACE
      } IUIAutomationPatternInstanceVtbl;
  
      interface IUIAutomationPatternInstance
      {
          CONST_VTBL struct IUIAutomationPatternInstanceVtbl *lpVtbl;
      };
  
      
  
  #ifdef COBJMACROS
  
  
  #define IUIAutomationPatternInstance_QueryInterface(This,riid,ppvObject)	\
      ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
  
  #define IUIAutomationPatternInstance_AddRef(This)	\
      ( (This)->lpVtbl -> AddRef(This) ) 
  
  #define IUIAutomationPatternInstance_Release(This)	\
      ( (This)->lpVtbl -> Release(This) ) 
  
  
  #define IUIAutomationPatternInstance_GetProperty(This,index,cached,type,pPtr)	\
      ( (This)->lpVtbl -> GetProperty(This,index,cached,type,pPtr) ) 
  
  #define IUIAutomationPatternInstance_CallMethod(This,index,pParams,cParams)	\
      ( (This)->lpVtbl -> CallMethod(This,index,pParams,cParams) ) 
  
  #endif /* COBJMACROS */
  
  
  #endif 	/* C style interface */
  
  
  
  
  #endif 	/* __IUIAutomationPatternInstance_INTERFACE_DEFINED__ */
  
  
  #ifndef __IUIAutomationPatternHandler_INTERFACE_DEFINED__
  #define __IUIAutomationPatternHandler_INTERFACE_DEFINED__
  
  /* interface IUIAutomationPatternHandler */
  /* [oleautomation][unique][uuid][object] */ 
  
  
  EXTERN_C const IID IID_IUIAutomationPatternHandler;
  
  #if defined(__cplusplus) && !defined(CINTERFACE)
      
      MIDL_INTERFACE("d97022f3-a947-465e-8b2a-ac4315fa54e8")
      IUIAutomationPatternHandler : public IUnknown
      {
      public:
          virtual HRESULT STDMETHODCALLTYPE CreateClientWrapper( 
              /* [annotation][in] */ 
              _In_  IUIAutomationPatternInstance *pPatternInstance,
              /* [annotation][out] */ 
              _Out_  IUnknown **pClientWrapper) = 0;
          
          virtual /* [local] */ HRESULT STDMETHODCALLTYPE Dispatch( 
              /* [annotation][in] */ 
              _In_  IUnknown *pTarget,
              /* [annotation][in] */ 
              _In_  UINT index,
              /* [annotation][in] */ 
              _In_  const struct UIAutomationParameter *pParams,
              /* [annotation][in] */ 
              _In_  UINT cParams) = 0;
          
      };
      
      
  #else 	/* C style interface */
  
      typedef struct IUIAutomationPatternHandlerVtbl
      {
          BEGIN_INTERFACE
          
          DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
          HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
              __RPC__in IUIAutomationPatternHandler * This,
              /* [annotation][in] */ 
              _In_  REFIID riid,
              /* [annotation][iid_is][out] */ 
              _COM_Outptr_  void **ppvObject);
          
          DECLSPEC_XFGVIRT(IUnknown, AddRef)
          ULONG ( STDMETHODCALLTYPE *AddRef )( 
              __RPC__in IUIAutomationPatternHandler * This);
          
          DECLSPEC_XFGVIRT(IUnknown, Release)
          ULONG ( STDMETHODCALLTYPE *Release )( 
              __RPC__in IUIAutomationPatternHandler * This);
          
          DECLSPEC_XFGVIRT(IUIAutomationPatternHandler, CreateClientWrapper)
          HRESULT ( STDMETHODCALLTYPE *CreateClientWrapper )( 
              __RPC__in IUIAutomationPatternHandler * This,
              /* [annotation][in] */ 
              _In_  IUIAutomationPatternInstance *pPatternInstance,
              /* [annotation][out] */ 
              _Out_  IUnknown **pClientWrapper);
          
          DECLSPEC_XFGVIRT(IUIAutomationPatternHandler, Dispatch)
          /* [local] */ HRESULT ( STDMETHODCALLTYPE *Dispatch )( 
              IUIAutomationPatternHandler * This,
              /* [annotation][in] */ 
              _In_  IUnknown *pTarget,
              /* [annotation][in] */ 
              _In_  UINT index,
              /* [annotation][in] */ 
              _In_  const struct UIAutomationParameter *pParams,
              /* [annotation][in] */ 
              _In_  UINT cParams);
          
          END_INTERFACE
      } IUIAutomationPatternHandlerVtbl;
  
      interface IUIAutomationPatternHandler
      {
          CONST_VTBL struct IUIAutomationPatternHandlerVtbl *lpVtbl;
      };
  
      
  
  #ifdef COBJMACROS
  
  
  #define IUIAutomationPatternHandler_QueryInterface(This,riid,ppvObject)	\
      ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
  
  #define IUIAutomationPatternHandler_AddRef(This)	\
      ( (This)->lpVtbl -> AddRef(This) ) 
  
  #define IUIAutomationPatternHandler_Release(This)	\
      ( (This)->lpVtbl -> Release(This) ) 
  
  
  #define IUIAutomationPatternHandler_CreateClientWrapper(This,pPatternInstance,pClientWrapper)	\
      ( (This)->lpVtbl -> CreateClientWrapper(This,pPatternInstance,pClientWrapper) ) 
  
  #define IUIAutomationPatternHandler_Dispatch(This,pTarget,index,pParams,cParams)	\
      ( (This)->lpVtbl -> Dispatch(This,pTarget,index,pParams,cParams) ) 
  
  #endif /* COBJMACROS */
  
  
  #endif 	/* C style interface */
  
  
  
  
  #endif 	/* __IUIAutomationPatternHandler_INTERFACE_DEFINED__ */
  
  
  #ifndef __IUIAutomationRegistrar_INTERFACE_DEFINED__
  #define __IUIAutomationRegistrar_INTERFACE_DEFINED__
  
  /* interface IUIAutomationRegistrar */
  /* [oleautomation][unique][uuid][object] */ 
  
  
  EXTERN_C const IID IID_IUIAutomationRegistrar;
  
  #if defined(__cplusplus) && !defined(CINTERFACE)
      
      MIDL_INTERFACE("8609c4ec-4a1a-4d88-a357-5a66e060e1cf")
      IUIAutomationRegistrar : public IUnknown
      {
      public:
          virtual HRESULT STDMETHODCALLTYPE RegisterProperty( 
              /* [annotation][in] */ 
              _In_  const struct UIAutomationPropertyInfo *property,
              /* [annotation][out] */ 
              _Out_  PROPERTYID *propertyId) = 0;
          
          virtual HRESULT STDMETHODCALLTYPE RegisterEvent( 
              /* [annotation][in] */ 
              _In_  const struct UIAutomationEventInfo *event,
              /* [annotation][out] */ 
              _Out_  EVENTID *eventId) = 0;
          
          virtual HRESULT STDMETHODCALLTYPE RegisterPattern( 
              /* [annotation][in] */ 
              _In_  const struct UIAutomationPatternInfo *pattern,
              /* [annotation][out] */ 
              _Out_  PATTERNID *pPatternId,
              /* [annotation][out] */ 
              _Out_  PROPERTYID *pPatternAvailablePropertyId,
              /* [annotation][in] */ 
              _In_  UINT propertyIdCount,
              /* [annotation][size_is][out] */ 
              _Out_writes_(propertyIdCount)  PROPERTYID *pPropertyIds,
              /* [annotation][in] */ 
              _In_  UINT eventIdCount,
              /* [annotation][size_is][out] */ 
              _Out_writes_(eventIdCount)  EVENTID *pEventIds) = 0;
          
      };
      
      
  #else 	/* C style interface */
  
      typedef struct IUIAutomationRegistrarVtbl
      {
          BEGIN_INTERFACE
          
          DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
          HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
              __RPC__in IUIAutomationRegistrar * This,
              /* [annotation][in] */ 
              _In_  REFIID riid,
              /* [annotation][iid_is][out] */ 
              _COM_Outptr_  void **ppvObject);
          
          DECLSPEC_XFGVIRT(IUnknown, AddRef)
          ULONG ( STDMETHODCALLTYPE *AddRef )( 
              __RPC__in IUIAutomationRegistrar * This);
          
          DECLSPEC_XFGVIRT(IUnknown, Release)
          ULONG ( STDMETHODCALLTYPE *Release )( 
              __RPC__in IUIAutomationRegistrar * This);
          
          DECLSPEC_XFGVIRT(IUIAutomationRegistrar, RegisterProperty)
          HRESULT ( STDMETHODCALLTYPE *RegisterProperty )( 
              __RPC__in IUIAutomationRegistrar * This,
              /* [annotation][in] */ 
              _In_  const struct UIAutomationPropertyInfo *property,
              /* [annotation][out] */ 
              _Out_  PROPERTYID *propertyId);
          
          DECLSPEC_XFGVIRT(IUIAutomationRegistrar, RegisterEvent)
          HRESULT ( STDMETHODCALLTYPE *RegisterEvent )( 
              __RPC__in IUIAutomationRegistrar * This,
              /* [annotation][in] */ 
              _In_  const struct UIAutomationEventInfo *event,
              /* [annotation][out] */ 
              _Out_  EVENTID *eventId);
          
          DECLSPEC_XFGVIRT(IUIAutomationRegistrar, RegisterPattern)
          HRESULT ( STDMETHODCALLTYPE *RegisterPattern )( 
              __RPC__in IUIAutomationRegistrar * This,
              /* [annotation][in] */ 
              _In_  const struct UIAutomationPatternInfo *pattern,
              /* [annotation][out] */ 
              _Out_  PATTERNID *pPatternId,
              /* [annotation][out] */ 
              _Out_  PROPERTYID *pPatternAvailablePropertyId,
              /* [annotation][in] */ 
              _In_  UINT propertyIdCount,
              /* [annotation][size_is][out] */ 
              _Out_writes_(propertyIdCount)  PROPERTYID *pPropertyIds,
              /* [annotation][in] */ 
              _In_  UINT eventIdCount,
              /* [annotation][size_is][out] */ 
              _Out_writes_(eventIdCount)  EVENTID *pEventIds);
          
          END_INTERFACE
      } IUIAutomationRegistrarVtbl;
  
      interface IUIAutomationRegistrar
      {
          CONST_VTBL struct IUIAutomationRegistrarVtbl *lpVtbl;
      };
  
      
  
  #ifdef COBJMACROS
  
  
  #define IUIAutomationRegistrar_QueryInterface(This,riid,ppvObject)	\
      ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
  
  #define IUIAutomationRegistrar_AddRef(This)	\
      ( (This)->lpVtbl -> AddRef(This) ) 
  
  #define IUIAutomationRegistrar_Release(This)	\
      ( (This)->lpVtbl -> Release(This) ) 
  
  
  #define IUIAutomationRegistrar_RegisterProperty(This,property,propertyId)	\
      ( (This)->lpVtbl -> RegisterProperty(This,property,propertyId) ) 
  
  #define IUIAutomationRegistrar_RegisterEvent(This,event,eventId)	\
      ( (This)->lpVtbl -> RegisterEvent(This,event,eventId) ) 
  
  #define IUIAutomationRegistrar_RegisterPattern(This,pattern,pPatternId,pPatternAvailablePropertyId,propertyIdCount,pPropertyIds,eventIdCount,pEventIds)	\
      ( (This)->lpVtbl -> RegisterPattern(This,pattern,pPatternId,pPatternAvailablePropertyId,propertyIdCount,pPropertyIds,eventIdCount,pEventIds) ) 
  
  #endif /* COBJMACROS */
  
  
  #endif 	/* C style interface */
  
  
  
  
  #endif 	/* __IUIAutomationRegistrar_INTERFACE_DEFINED__ */
  
  
  EXTERN_C const CLSID CLSID_CUIAutomationRegistrar;
  
  #ifdef __cplusplus
  
  class DECLSPEC_UUID("6e29fabf-9977-42d1-8d0e-ca7e61ad87e6")
  CUIAutomationRegistrar;
  #endif
  #endif /* __UIA_LIBRARY_DEFINED__ */
  
  /* Additional Prototypes for ALL interfaces */
  
  /* end of Additional Prototypes */
  
  #ifdef __cplusplus
  }
  #endif
  
  #endif
  
  
  