master
    1/*** Autogenerated by WIDL 10.4 from include/uiautomationclient.idl - Do not edit ***/
    2
    3#ifdef _WIN32
    4#ifndef __REQUIRED_RPCNDR_H_VERSION__
    5#define __REQUIRED_RPCNDR_H_VERSION__ 475
    6#endif
    7#include <rpc.h>
    8#include <rpcndr.h>
    9#endif
   10
   11#ifndef COM_NO_WINDOWS_H
   12#include <windows.h>
   13#include <ole2.h>
   14#endif
   15
   16#ifndef __uiautomationclient_h__
   17#define __uiautomationclient_h__
   18
   19/* Forward declarations */
   20
   21#ifndef __IUIAutomationCondition_FWD_DEFINED__
   22#define __IUIAutomationCondition_FWD_DEFINED__
   23typedef interface IUIAutomationCondition IUIAutomationCondition;
   24#ifdef __cplusplus
   25interface IUIAutomationCondition;
   26#endif /* __cplusplus */
   27#endif
   28
   29#ifndef __IUIAutomationBoolCondition_FWD_DEFINED__
   30#define __IUIAutomationBoolCondition_FWD_DEFINED__
   31typedef interface IUIAutomationBoolCondition IUIAutomationBoolCondition;
   32#ifdef __cplusplus
   33interface IUIAutomationBoolCondition;
   34#endif /* __cplusplus */
   35#endif
   36
   37#ifndef __IUIAutomationPropertyCondition_FWD_DEFINED__
   38#define __IUIAutomationPropertyCondition_FWD_DEFINED__
   39typedef interface IUIAutomationPropertyCondition IUIAutomationPropertyCondition;
   40#ifdef __cplusplus
   41interface IUIAutomationPropertyCondition;
   42#endif /* __cplusplus */
   43#endif
   44
   45#ifndef __IUIAutomationAndCondition_FWD_DEFINED__
   46#define __IUIAutomationAndCondition_FWD_DEFINED__
   47typedef interface IUIAutomationAndCondition IUIAutomationAndCondition;
   48#ifdef __cplusplus
   49interface IUIAutomationAndCondition;
   50#endif /* __cplusplus */
   51#endif
   52
   53#ifndef __IUIAutomationOrCondition_FWD_DEFINED__
   54#define __IUIAutomationOrCondition_FWD_DEFINED__
   55typedef interface IUIAutomationOrCondition IUIAutomationOrCondition;
   56#ifdef __cplusplus
   57interface IUIAutomationOrCondition;
   58#endif /* __cplusplus */
   59#endif
   60
   61#ifndef __IUIAutomationNotCondition_FWD_DEFINED__
   62#define __IUIAutomationNotCondition_FWD_DEFINED__
   63typedef interface IUIAutomationNotCondition IUIAutomationNotCondition;
   64#ifdef __cplusplus
   65interface IUIAutomationNotCondition;
   66#endif /* __cplusplus */
   67#endif
   68
   69#ifndef __IUIAutomationCacheRequest_FWD_DEFINED__
   70#define __IUIAutomationCacheRequest_FWD_DEFINED__
   71typedef interface IUIAutomationCacheRequest IUIAutomationCacheRequest;
   72#ifdef __cplusplus
   73interface IUIAutomationCacheRequest;
   74#endif /* __cplusplus */
   75#endif
   76
   77#ifndef __IUIAutomationTreeWalker_FWD_DEFINED__
   78#define __IUIAutomationTreeWalker_FWD_DEFINED__
   79typedef interface IUIAutomationTreeWalker IUIAutomationTreeWalker;
   80#ifdef __cplusplus
   81interface IUIAutomationTreeWalker;
   82#endif /* __cplusplus */
   83#endif
   84
   85#ifndef __IUIAutomationEventHandler_FWD_DEFINED__
   86#define __IUIAutomationEventHandler_FWD_DEFINED__
   87typedef interface IUIAutomationEventHandler IUIAutomationEventHandler;
   88#ifdef __cplusplus
   89interface IUIAutomationEventHandler;
   90#endif /* __cplusplus */
   91#endif
   92
   93#ifndef __IUIAutomationPropertyChangedEventHandler_FWD_DEFINED__
   94#define __IUIAutomationPropertyChangedEventHandler_FWD_DEFINED__
   95typedef interface IUIAutomationPropertyChangedEventHandler IUIAutomationPropertyChangedEventHandler;
   96#ifdef __cplusplus
   97interface IUIAutomationPropertyChangedEventHandler;
   98#endif /* __cplusplus */
   99#endif
  100
  101#ifndef __IUIAutomationStructureChangedEventHandler_FWD_DEFINED__
  102#define __IUIAutomationStructureChangedEventHandler_FWD_DEFINED__
  103typedef interface IUIAutomationStructureChangedEventHandler IUIAutomationStructureChangedEventHandler;
  104#ifdef __cplusplus
  105interface IUIAutomationStructureChangedEventHandler;
  106#endif /* __cplusplus */
  107#endif
  108
  109#ifndef __IUIAutomationFocusChangedEventHandler_FWD_DEFINED__
  110#define __IUIAutomationFocusChangedEventHandler_FWD_DEFINED__
  111typedef interface IUIAutomationFocusChangedEventHandler IUIAutomationFocusChangedEventHandler;
  112#ifdef __cplusplus
  113interface IUIAutomationFocusChangedEventHandler;
  114#endif /* __cplusplus */
  115#endif
  116
  117#ifndef __IUIAutomationTextEditTextChangedEventHandler_FWD_DEFINED__
  118#define __IUIAutomationTextEditTextChangedEventHandler_FWD_DEFINED__
  119typedef interface IUIAutomationTextEditTextChangedEventHandler IUIAutomationTextEditTextChangedEventHandler;
  120#ifdef __cplusplus
  121interface IUIAutomationTextEditTextChangedEventHandler;
  122#endif /* __cplusplus */
  123#endif
  124
  125#ifndef __IUIAutomationChangesEventHandler_FWD_DEFINED__
  126#define __IUIAutomationChangesEventHandler_FWD_DEFINED__
  127typedef interface IUIAutomationChangesEventHandler IUIAutomationChangesEventHandler;
  128#ifdef __cplusplus
  129interface IUIAutomationChangesEventHandler;
  130#endif /* __cplusplus */
  131#endif
  132
  133#ifndef __IUIAutomationNotificationEventHandler_FWD_DEFINED__
  134#define __IUIAutomationNotificationEventHandler_FWD_DEFINED__
  135typedef interface IUIAutomationNotificationEventHandler IUIAutomationNotificationEventHandler;
  136#ifdef __cplusplus
  137interface IUIAutomationNotificationEventHandler;
  138#endif /* __cplusplus */
  139#endif
  140
  141#ifndef __IUIAutomationInvokePattern_FWD_DEFINED__
  142#define __IUIAutomationInvokePattern_FWD_DEFINED__
  143typedef interface IUIAutomationInvokePattern IUIAutomationInvokePattern;
  144#ifdef __cplusplus
  145interface IUIAutomationInvokePattern;
  146#endif /* __cplusplus */
  147#endif
  148
  149#ifndef __IUIAutomationDockPattern_FWD_DEFINED__
  150#define __IUIAutomationDockPattern_FWD_DEFINED__
  151typedef interface IUIAutomationDockPattern IUIAutomationDockPattern;
  152#ifdef __cplusplus
  153interface IUIAutomationDockPattern;
  154#endif /* __cplusplus */
  155#endif
  156
  157#ifndef __IUIAutomationExpandCollapsePattern_FWD_DEFINED__
  158#define __IUIAutomationExpandCollapsePattern_FWD_DEFINED__
  159typedef interface IUIAutomationExpandCollapsePattern IUIAutomationExpandCollapsePattern;
  160#ifdef __cplusplus
  161interface IUIAutomationExpandCollapsePattern;
  162#endif /* __cplusplus */
  163#endif
  164
  165#ifndef __IUIAutomationGridPattern_FWD_DEFINED__
  166#define __IUIAutomationGridPattern_FWD_DEFINED__
  167typedef interface IUIAutomationGridPattern IUIAutomationGridPattern;
  168#ifdef __cplusplus
  169interface IUIAutomationGridPattern;
  170#endif /* __cplusplus */
  171#endif
  172
  173#ifndef __IUIAutomationGridItemPattern_FWD_DEFINED__
  174#define __IUIAutomationGridItemPattern_FWD_DEFINED__
  175typedef interface IUIAutomationGridItemPattern IUIAutomationGridItemPattern;
  176#ifdef __cplusplus
  177interface IUIAutomationGridItemPattern;
  178#endif /* __cplusplus */
  179#endif
  180
  181#ifndef __IUIAutomationMultipleViewPattern_FWD_DEFINED__
  182#define __IUIAutomationMultipleViewPattern_FWD_DEFINED__
  183typedef interface IUIAutomationMultipleViewPattern IUIAutomationMultipleViewPattern;
  184#ifdef __cplusplus
  185interface IUIAutomationMultipleViewPattern;
  186#endif /* __cplusplus */
  187#endif
  188
  189#ifndef __IUIAutomationObjectModelPattern_FWD_DEFINED__
  190#define __IUIAutomationObjectModelPattern_FWD_DEFINED__
  191typedef interface IUIAutomationObjectModelPattern IUIAutomationObjectModelPattern;
  192#ifdef __cplusplus
  193interface IUIAutomationObjectModelPattern;
  194#endif /* __cplusplus */
  195#endif
  196
  197#ifndef __IUIAutomationRangeValuePattern_FWD_DEFINED__
  198#define __IUIAutomationRangeValuePattern_FWD_DEFINED__
  199typedef interface IUIAutomationRangeValuePattern IUIAutomationRangeValuePattern;
  200#ifdef __cplusplus
  201interface IUIAutomationRangeValuePattern;
  202#endif /* __cplusplus */
  203#endif
  204
  205#ifndef __IUIAutomationScrollPattern_FWD_DEFINED__
  206#define __IUIAutomationScrollPattern_FWD_DEFINED__
  207typedef interface IUIAutomationScrollPattern IUIAutomationScrollPattern;
  208#ifdef __cplusplus
  209interface IUIAutomationScrollPattern;
  210#endif /* __cplusplus */
  211#endif
  212
  213#ifndef __IUIAutomationScrollItemPattern_FWD_DEFINED__
  214#define __IUIAutomationScrollItemPattern_FWD_DEFINED__
  215typedef interface IUIAutomationScrollItemPattern IUIAutomationScrollItemPattern;
  216#ifdef __cplusplus
  217interface IUIAutomationScrollItemPattern;
  218#endif /* __cplusplus */
  219#endif
  220
  221#ifndef __IUIAutomationSelectionPattern_FWD_DEFINED__
  222#define __IUIAutomationSelectionPattern_FWD_DEFINED__
  223typedef interface IUIAutomationSelectionPattern IUIAutomationSelectionPattern;
  224#ifdef __cplusplus
  225interface IUIAutomationSelectionPattern;
  226#endif /* __cplusplus */
  227#endif
  228
  229#ifndef __IUIAutomationSelectionItemPattern_FWD_DEFINED__
  230#define __IUIAutomationSelectionItemPattern_FWD_DEFINED__
  231typedef interface IUIAutomationSelectionItemPattern IUIAutomationSelectionItemPattern;
  232#ifdef __cplusplus
  233interface IUIAutomationSelectionItemPattern;
  234#endif /* __cplusplus */
  235#endif
  236
  237#ifndef __IUIAutomationSynchronizedInputPattern_FWD_DEFINED__
  238#define __IUIAutomationSynchronizedInputPattern_FWD_DEFINED__
  239typedef interface IUIAutomationSynchronizedInputPattern IUIAutomationSynchronizedInputPattern;
  240#ifdef __cplusplus
  241interface IUIAutomationSynchronizedInputPattern;
  242#endif /* __cplusplus */
  243#endif
  244
  245#ifndef __IUIAutomationTablePattern_FWD_DEFINED__
  246#define __IUIAutomationTablePattern_FWD_DEFINED__
  247typedef interface IUIAutomationTablePattern IUIAutomationTablePattern;
  248#ifdef __cplusplus
  249interface IUIAutomationTablePattern;
  250#endif /* __cplusplus */
  251#endif
  252
  253#ifndef __IUIAutomationTableItemPattern_FWD_DEFINED__
  254#define __IUIAutomationTableItemPattern_FWD_DEFINED__
  255typedef interface IUIAutomationTableItemPattern IUIAutomationTableItemPattern;
  256#ifdef __cplusplus
  257interface IUIAutomationTableItemPattern;
  258#endif /* __cplusplus */
  259#endif
  260
  261#ifndef __IUIAutomationTogglePattern_FWD_DEFINED__
  262#define __IUIAutomationTogglePattern_FWD_DEFINED__
  263typedef interface IUIAutomationTogglePattern IUIAutomationTogglePattern;
  264#ifdef __cplusplus
  265interface IUIAutomationTogglePattern;
  266#endif /* __cplusplus */
  267#endif
  268
  269#ifndef __IUIAutomationTransformPattern_FWD_DEFINED__
  270#define __IUIAutomationTransformPattern_FWD_DEFINED__
  271typedef interface IUIAutomationTransformPattern IUIAutomationTransformPattern;
  272#ifdef __cplusplus
  273interface IUIAutomationTransformPattern;
  274#endif /* __cplusplus */
  275#endif
  276
  277#ifndef __IUIAutomationValuePattern_FWD_DEFINED__
  278#define __IUIAutomationValuePattern_FWD_DEFINED__
  279typedef interface IUIAutomationValuePattern IUIAutomationValuePattern;
  280#ifdef __cplusplus
  281interface IUIAutomationValuePattern;
  282#endif /* __cplusplus */
  283#endif
  284
  285#ifndef __IUIAutomationWindowPattern_FWD_DEFINED__
  286#define __IUIAutomationWindowPattern_FWD_DEFINED__
  287typedef interface IUIAutomationWindowPattern IUIAutomationWindowPattern;
  288#ifdef __cplusplus
  289interface IUIAutomationWindowPattern;
  290#endif /* __cplusplus */
  291#endif
  292
  293#ifndef __IUIAutomationTextRange_FWD_DEFINED__
  294#define __IUIAutomationTextRange_FWD_DEFINED__
  295typedef interface IUIAutomationTextRange IUIAutomationTextRange;
  296#ifdef __cplusplus
  297interface IUIAutomationTextRange;
  298#endif /* __cplusplus */
  299#endif
  300
  301#ifndef __IUIAutomationTextRange2_FWD_DEFINED__
  302#define __IUIAutomationTextRange2_FWD_DEFINED__
  303typedef interface IUIAutomationTextRange2 IUIAutomationTextRange2;
  304#ifdef __cplusplus
  305interface IUIAutomationTextRange2;
  306#endif /* __cplusplus */
  307#endif
  308
  309#ifndef __IUIAutomationTextRangeArray_FWD_DEFINED__
  310#define __IUIAutomationTextRangeArray_FWD_DEFINED__
  311typedef interface IUIAutomationTextRangeArray IUIAutomationTextRangeArray;
  312#ifdef __cplusplus
  313interface IUIAutomationTextRangeArray;
  314#endif /* __cplusplus */
  315#endif
  316
  317#ifndef __IUIAutomationTextPattern_FWD_DEFINED__
  318#define __IUIAutomationTextPattern_FWD_DEFINED__
  319typedef interface IUIAutomationTextPattern IUIAutomationTextPattern;
  320#ifdef __cplusplus
  321interface IUIAutomationTextPattern;
  322#endif /* __cplusplus */
  323#endif
  324
  325#ifndef __IUIAutomationTextPattern2_FWD_DEFINED__
  326#define __IUIAutomationTextPattern2_FWD_DEFINED__
  327typedef interface IUIAutomationTextPattern2 IUIAutomationTextPattern2;
  328#ifdef __cplusplus
  329interface IUIAutomationTextPattern2;
  330#endif /* __cplusplus */
  331#endif
  332
  333#ifndef __IUIAutomationTextEditPattern_FWD_DEFINED__
  334#define __IUIAutomationTextEditPattern_FWD_DEFINED__
  335typedef interface IUIAutomationTextEditPattern IUIAutomationTextEditPattern;
  336#ifdef __cplusplus
  337interface IUIAutomationTextEditPattern;
  338#endif /* __cplusplus */
  339#endif
  340
  341#ifndef __IUIAutomationCustomNavigationPattern_FWD_DEFINED__
  342#define __IUIAutomationCustomNavigationPattern_FWD_DEFINED__
  343typedef interface IUIAutomationCustomNavigationPattern IUIAutomationCustomNavigationPattern;
  344#ifdef __cplusplus
  345interface IUIAutomationCustomNavigationPattern;
  346#endif /* __cplusplus */
  347#endif
  348
  349#ifndef __IUIAutomationActiveTextPositionChangedEventHandler_FWD_DEFINED__
  350#define __IUIAutomationActiveTextPositionChangedEventHandler_FWD_DEFINED__
  351typedef interface IUIAutomationActiveTextPositionChangedEventHandler IUIAutomationActiveTextPositionChangedEventHandler;
  352#ifdef __cplusplus
  353interface IUIAutomationActiveTextPositionChangedEventHandler;
  354#endif /* __cplusplus */
  355#endif
  356
  357#ifndef __IUIAutomationLegacyIAccessiblePattern_FWD_DEFINED__
  358#define __IUIAutomationLegacyIAccessiblePattern_FWD_DEFINED__
  359typedef interface IUIAutomationLegacyIAccessiblePattern IUIAutomationLegacyIAccessiblePattern;
  360#ifdef __cplusplus
  361interface IUIAutomationLegacyIAccessiblePattern;
  362#endif /* __cplusplus */
  363#endif
  364
  365#ifndef __IUIAutomationItemContainerPattern_FWD_DEFINED__
  366#define __IUIAutomationItemContainerPattern_FWD_DEFINED__
  367typedef interface IUIAutomationItemContainerPattern IUIAutomationItemContainerPattern;
  368#ifdef __cplusplus
  369interface IUIAutomationItemContainerPattern;
  370#endif /* __cplusplus */
  371#endif
  372
  373#ifndef __IUIAutomationVirtualizedItemPattern_FWD_DEFINED__
  374#define __IUIAutomationVirtualizedItemPattern_FWD_DEFINED__
  375typedef interface IUIAutomationVirtualizedItemPattern IUIAutomationVirtualizedItemPattern;
  376#ifdef __cplusplus
  377interface IUIAutomationVirtualizedItemPattern;
  378#endif /* __cplusplus */
  379#endif
  380
  381#ifndef __IUIAutomationAnnotationPattern_FWD_DEFINED__
  382#define __IUIAutomationAnnotationPattern_FWD_DEFINED__
  383typedef interface IUIAutomationAnnotationPattern IUIAutomationAnnotationPattern;
  384#ifdef __cplusplus
  385interface IUIAutomationAnnotationPattern;
  386#endif /* __cplusplus */
  387#endif
  388
  389#ifndef __IUIAutomationStylesPattern_FWD_DEFINED__
  390#define __IUIAutomationStylesPattern_FWD_DEFINED__
  391typedef interface IUIAutomationStylesPattern IUIAutomationStylesPattern;
  392#ifdef __cplusplus
  393interface IUIAutomationStylesPattern;
  394#endif /* __cplusplus */
  395#endif
  396
  397#ifndef __IUIAutomationSpreadsheetPattern_FWD_DEFINED__
  398#define __IUIAutomationSpreadsheetPattern_FWD_DEFINED__
  399typedef interface IUIAutomationSpreadsheetPattern IUIAutomationSpreadsheetPattern;
  400#ifdef __cplusplus
  401interface IUIAutomationSpreadsheetPattern;
  402#endif /* __cplusplus */
  403#endif
  404
  405#ifndef __IUIAutomationSpreadsheetItemPattern_FWD_DEFINED__
  406#define __IUIAutomationSpreadsheetItemPattern_FWD_DEFINED__
  407typedef interface IUIAutomationSpreadsheetItemPattern IUIAutomationSpreadsheetItemPattern;
  408#ifdef __cplusplus
  409interface IUIAutomationSpreadsheetItemPattern;
  410#endif /* __cplusplus */
  411#endif
  412
  413#ifndef __IUIAutomationTransformPattern2_FWD_DEFINED__
  414#define __IUIAutomationTransformPattern2_FWD_DEFINED__
  415typedef interface IUIAutomationTransformPattern2 IUIAutomationTransformPattern2;
  416#ifdef __cplusplus
  417interface IUIAutomationTransformPattern2;
  418#endif /* __cplusplus */
  419#endif
  420
  421#ifndef __IUIAutomationTextChildPattern_FWD_DEFINED__
  422#define __IUIAutomationTextChildPattern_FWD_DEFINED__
  423typedef interface IUIAutomationTextChildPattern IUIAutomationTextChildPattern;
  424#ifdef __cplusplus
  425interface IUIAutomationTextChildPattern;
  426#endif /* __cplusplus */
  427#endif
  428
  429#ifndef __IUIAutomationDragPattern_FWD_DEFINED__
  430#define __IUIAutomationDragPattern_FWD_DEFINED__
  431typedef interface IUIAutomationDragPattern IUIAutomationDragPattern;
  432#ifdef __cplusplus
  433interface IUIAutomationDragPattern;
  434#endif /* __cplusplus */
  435#endif
  436
  437#ifndef __IUIAutomationDropTargetPattern_FWD_DEFINED__
  438#define __IUIAutomationDropTargetPattern_FWD_DEFINED__
  439typedef interface IUIAutomationDropTargetPattern IUIAutomationDropTargetPattern;
  440#ifdef __cplusplus
  441interface IUIAutomationDropTargetPattern;
  442#endif /* __cplusplus */
  443#endif
  444
  445#ifndef __IUIAutomationElement_FWD_DEFINED__
  446#define __IUIAutomationElement_FWD_DEFINED__
  447typedef interface IUIAutomationElement IUIAutomationElement;
  448#ifdef __cplusplus
  449interface IUIAutomationElement;
  450#endif /* __cplusplus */
  451#endif
  452
  453#ifndef __IUIAutomationElement2_FWD_DEFINED__
  454#define __IUIAutomationElement2_FWD_DEFINED__
  455typedef interface IUIAutomationElement2 IUIAutomationElement2;
  456#ifdef __cplusplus
  457interface IUIAutomationElement2;
  458#endif /* __cplusplus */
  459#endif
  460
  461#ifndef __IUIAutomationElement3_FWD_DEFINED__
  462#define __IUIAutomationElement3_FWD_DEFINED__
  463typedef interface IUIAutomationElement3 IUIAutomationElement3;
  464#ifdef __cplusplus
  465interface IUIAutomationElement3;
  466#endif /* __cplusplus */
  467#endif
  468
  469#ifndef __IUIAutomationElement4_FWD_DEFINED__
  470#define __IUIAutomationElement4_FWD_DEFINED__
  471typedef interface IUIAutomationElement4 IUIAutomationElement4;
  472#ifdef __cplusplus
  473interface IUIAutomationElement4;
  474#endif /* __cplusplus */
  475#endif
  476
  477#ifndef __IUIAutomationElement5_FWD_DEFINED__
  478#define __IUIAutomationElement5_FWD_DEFINED__
  479typedef interface IUIAutomationElement5 IUIAutomationElement5;
  480#ifdef __cplusplus
  481interface IUIAutomationElement5;
  482#endif /* __cplusplus */
  483#endif
  484
  485#ifndef __IUIAutomationElement6_FWD_DEFINED__
  486#define __IUIAutomationElement6_FWD_DEFINED__
  487typedef interface IUIAutomationElement6 IUIAutomationElement6;
  488#ifdef __cplusplus
  489interface IUIAutomationElement6;
  490#endif /* __cplusplus */
  491#endif
  492
  493#ifndef __IUIAutomationElement7_FWD_DEFINED__
  494#define __IUIAutomationElement7_FWD_DEFINED__
  495typedef interface IUIAutomationElement7 IUIAutomationElement7;
  496#ifdef __cplusplus
  497interface IUIAutomationElement7;
  498#endif /* __cplusplus */
  499#endif
  500
  501#ifndef __IUIAutomationElement8_FWD_DEFINED__
  502#define __IUIAutomationElement8_FWD_DEFINED__
  503typedef interface IUIAutomationElement8 IUIAutomationElement8;
  504#ifdef __cplusplus
  505interface IUIAutomationElement8;
  506#endif /* __cplusplus */
  507#endif
  508
  509#ifndef __IUIAutomationElement9_FWD_DEFINED__
  510#define __IUIAutomationElement9_FWD_DEFINED__
  511typedef interface IUIAutomationElement9 IUIAutomationElement9;
  512#ifdef __cplusplus
  513interface IUIAutomationElement9;
  514#endif /* __cplusplus */
  515#endif
  516
  517#ifndef __IUIAutomationElementArray_FWD_DEFINED__
  518#define __IUIAutomationElementArray_FWD_DEFINED__
  519typedef interface IUIAutomationElementArray IUIAutomationElementArray;
  520#ifdef __cplusplus
  521interface IUIAutomationElementArray;
  522#endif /* __cplusplus */
  523#endif
  524
  525#ifndef __IUIAutomationProxyFactory_FWD_DEFINED__
  526#define __IUIAutomationProxyFactory_FWD_DEFINED__
  527typedef interface IUIAutomationProxyFactory IUIAutomationProxyFactory;
  528#ifdef __cplusplus
  529interface IUIAutomationProxyFactory;
  530#endif /* __cplusplus */
  531#endif
  532
  533#ifndef __IUIAutomationProxyFactoryEntry_FWD_DEFINED__
  534#define __IUIAutomationProxyFactoryEntry_FWD_DEFINED__
  535typedef interface IUIAutomationProxyFactoryEntry IUIAutomationProxyFactoryEntry;
  536#ifdef __cplusplus
  537interface IUIAutomationProxyFactoryEntry;
  538#endif /* __cplusplus */
  539#endif
  540
  541#ifndef __IUIAutomationProxyFactoryMapping_FWD_DEFINED__
  542#define __IUIAutomationProxyFactoryMapping_FWD_DEFINED__
  543typedef interface IUIAutomationProxyFactoryMapping IUIAutomationProxyFactoryMapping;
  544#ifdef __cplusplus
  545interface IUIAutomationProxyFactoryMapping;
  546#endif /* __cplusplus */
  547#endif
  548
  549#ifndef __IUIAutomationEventHandlerGroup_FWD_DEFINED__
  550#define __IUIAutomationEventHandlerGroup_FWD_DEFINED__
  551typedef interface IUIAutomationEventHandlerGroup IUIAutomationEventHandlerGroup;
  552#ifdef __cplusplus
  553interface IUIAutomationEventHandlerGroup;
  554#endif /* __cplusplus */
  555#endif
  556
  557#ifndef __IUIAutomation_FWD_DEFINED__
  558#define __IUIAutomation_FWD_DEFINED__
  559typedef interface IUIAutomation IUIAutomation;
  560#ifdef __cplusplus
  561interface IUIAutomation;
  562#endif /* __cplusplus */
  563#endif
  564
  565#ifndef __IUIAutomation2_FWD_DEFINED__
  566#define __IUIAutomation2_FWD_DEFINED__
  567typedef interface IUIAutomation2 IUIAutomation2;
  568#ifdef __cplusplus
  569interface IUIAutomation2;
  570#endif /* __cplusplus */
  571#endif
  572
  573#ifndef __IUIAutomation3_FWD_DEFINED__
  574#define __IUIAutomation3_FWD_DEFINED__
  575typedef interface IUIAutomation3 IUIAutomation3;
  576#ifdef __cplusplus
  577interface IUIAutomation3;
  578#endif /* __cplusplus */
  579#endif
  580
  581#ifndef __IUIAutomation4_FWD_DEFINED__
  582#define __IUIAutomation4_FWD_DEFINED__
  583typedef interface IUIAutomation4 IUIAutomation4;
  584#ifdef __cplusplus
  585interface IUIAutomation4;
  586#endif /* __cplusplus */
  587#endif
  588
  589#ifndef __IUIAutomation5_FWD_DEFINED__
  590#define __IUIAutomation5_FWD_DEFINED__
  591typedef interface IUIAutomation5 IUIAutomation5;
  592#ifdef __cplusplus
  593interface IUIAutomation5;
  594#endif /* __cplusplus */
  595#endif
  596
  597#ifndef __IUIAutomation6_FWD_DEFINED__
  598#define __IUIAutomation6_FWD_DEFINED__
  599typedef interface IUIAutomation6 IUIAutomation6;
  600#ifdef __cplusplus
  601interface IUIAutomation6;
  602#endif /* __cplusplus */
  603#endif
  604
  605#ifndef __CUIAutomation_FWD_DEFINED__
  606#define __CUIAutomation_FWD_DEFINED__
  607#ifdef __cplusplus
  608typedef class CUIAutomation CUIAutomation;
  609#else
  610typedef struct CUIAutomation CUIAutomation;
  611#endif /* defined __cplusplus */
  612#endif /* defined __CUIAutomation_FWD_DEFINED__ */
  613
  614#ifndef __CUIAutomation8_FWD_DEFINED__
  615#define __CUIAutomation8_FWD_DEFINED__
  616#ifdef __cplusplus
  617typedef class CUIAutomation8 CUIAutomation8;
  618#else
  619typedef struct CUIAutomation8 CUIAutomation8;
  620#endif /* defined __cplusplus */
  621#endif /* defined __CUIAutomation8_FWD_DEFINED__ */
  622
  623/* Headers for imported files */
  624
  625#include <uiautomationcore.h>
  626
  627#ifdef __cplusplus
  628extern "C" {
  629#endif
  630
  631#ifndef _INC_UIAUTOMATIONCOREAPI
  632enum TreeScope {
  633    TreeScope_Element = 0x1,
  634    TreeScope_Children = 0x2,
  635    TreeScope_Descendants = 0x4,
  636    TreeScope_Parent = 0x8,
  637    TreeScope_Ancestors = 0x10,
  638    TreeScope_Subtree = (TreeScope_Element | TreeScope_Children) | TreeScope_Descendants
  639};
  640enum PropertyConditionFlags {
  641    PropertyConditionFlags_None = 0x0,
  642    PropertyConditionFlags_IgnoreCase = 0x1
  643};
  644enum AutomationElementMode {
  645    AutomationElementMode_None = 0x0,
  646    AutomationElementMode_Full = 0x1
  647};
  648enum TreeTraversalOptions {
  649    TreeTraversalOptions_Default = 0x0,
  650    TreeTraversalOptions_PostOrder = 0x1,
  651    TreeTraversalOptions_LastToFirstOrder = 0x2
  652};
  653enum ConnectionRecoveryBehaviorOptions {
  654    ConnectionRecoveryBehaviorOptions_Disabled = 0x0,
  655    ConnectionRecoveryBehaviorOptions_Enabled = 0x1
  656};
  657enum CoalesceEventsOptions {
  658    CoalesceEventsOptions_Disabled = 0x0,
  659    CoalesceEventsOptions_Enabled = 0x1
  660};
  661#endif
  662struct ExtendedProperty {
  663    BSTR PropertyName;
  664    BSTR PropertyValue;
  665};
  666typedef void *UIA_HWND;
  667#ifndef __UIAutomationClient_LIBRARY_DEFINED__
  668#define __UIAutomationClient_LIBRARY_DEFINED__
  669
  670DEFINE_GUID(LIBID_UIAutomationClient, 0x944de083, 0x8fb8, 0x45cf, 0xbc,0xb7, 0xc4,0x77,0xac,0xb2,0xf8,0x97);
  671
  672#ifndef __UIA_PatternIds_MODULE_DEFINED__
  673#define __UIA_PatternIds_MODULE_DEFINED__
  674#define UIA_InvokePatternId (10000)
  675
  676#define UIA_SelectionPatternId (10001)
  677
  678#define UIA_ValuePatternId (10002)
  679
  680#define UIA_RangeValuePatternId (10003)
  681
  682#define UIA_ScrollPatternId (10004)
  683
  684#define UIA_ExpandCollapsePatternId (10005)
  685
  686#define UIA_GridPatternId (10006)
  687
  688#define UIA_GridItemPatternId (10007)
  689
  690#define UIA_MultipleViewPatternId (10008)
  691
  692#define UIA_WindowPatternId (10009)
  693
  694#define UIA_SelectionItemPatternId (10010)
  695
  696#define UIA_DockPatternId (10011)
  697
  698#define UIA_TablePatternId (10012)
  699
  700#define UIA_TableItemPatternId (10013)
  701
  702#define UIA_TextPatternId (10014)
  703
  704#define UIA_TogglePatternId (10015)
  705
  706#define UIA_TransformPatternId (10016)
  707
  708#define UIA_ScrollItemPatternId (10017)
  709
  710#define UIA_LegacyIAccessiblePatternId (10018)
  711
  712#define UIA_ItemContainerPatternId (10019)
  713
  714#define UIA_VirtualizedItemPatternId (10020)
  715
  716#define UIA_SynchronizedInputPatternId (10021)
  717
  718#define UIA_ObjectModelPatternId (10022)
  719
  720#define UIA_AnnotationPatternId (10023)
  721
  722#define UIA_TextPattern2Id (10024)
  723
  724#define UIA_StylesPatternId (10025)
  725
  726#define UIA_SpreadsheetPatternId (10026)
  727
  728#define UIA_SpreadsheetItemPatternId (10027)
  729
  730#define UIA_TransformPattern2Id (10028)
  731
  732#define UIA_TextChildPatternId (10029)
  733
  734#define UIA_DragPatternId (10030)
  735
  736#define UIA_DropTargetPatternId (10031)
  737
  738#define UIA_TextEditPatternId (10032)
  739
  740#define UIA_CustomNavigationPatternId (10033)
  741
  742#endif /* __UIA_PatternIds_MODULE_DEFINED__ */
  743#ifndef __UIA_EventIds_MODULE_DEFINED__
  744#define __UIA_EventIds_MODULE_DEFINED__
  745#define UIA_ToolTipOpenedEventId (20000)
  746
  747#define UIA_ToolTipClosedEventId (20001)
  748
  749#define UIA_StructureChangedEventId (20002)
  750
  751#define UIA_MenuOpenedEventId (20003)
  752
  753#define UIA_AutomationPropertyChangedEventId (20004)
  754
  755#define UIA_AutomationFocusChangedEventId (20005)
  756
  757#define UIA_AsyncContentLoadedEventId (20006)
  758
  759#define UIA_MenuClosedEventId (20007)
  760
  761#define UIA_LayoutInvalidatedEventId (20008)
  762
  763#define UIA_Invoke_InvokedEventId (20009)
  764
  765#define UIA_SelectionItem_ElementAddedToSelectionEventId (20010)
  766
  767#define UIA_SelectionItem_ElementRemovedFromSelectionEventId (20011)
  768
  769#define UIA_SelectionItem_ElementSelectedEventId (20012)
  770
  771#define UIA_Selection_InvalidatedEventId (20013)
  772
  773#define UIA_Text_TextSelectionChangedEventId (20014)
  774
  775#define UIA_Text_TextChangedEventId (20015)
  776
  777#define UIA_Window_WindowOpenedEventId (20016)
  778
  779#define UIA_Window_WindowClosedEventId (20017)
  780
  781#define UIA_MenuModeStartEventId (20018)
  782
  783#define UIA_MenuModeEndEventId (20019)
  784
  785#define UIA_InputReachedTargetEventId (20020)
  786
  787#define UIA_InputReachedOtherElementEventId (20021)
  788
  789#define UIA_InputDiscardedEventId (20022)
  790
  791#define UIA_SystemAlertEventId (20023)
  792
  793#define UIA_LiveRegionChangedEventId (20024)
  794
  795#define UIA_HostedFragmentRootsInvalidatedEventId (20025)
  796
  797#define UIA_Drag_DragStartEventId (20026)
  798
  799#define UIA_Drag_DragCancelEventId (20027)
  800
  801#define UIA_Drag_DragCompleteEventId (20028)
  802
  803#define UIA_DropTarget_DragEnterEventId (20029)
  804
  805#define UIA_DropTarget_DragLeaveEventId (20030)
  806
  807#define UIA_DropTarget_DroppedEventId (20031)
  808
  809#define UIA_TextEdit_TextChangedEventId (20032)
  810
  811#define UIA_TextEdit_ConversionTargetChangedEventId (20033)
  812
  813#define UIA_ChangesEventId (20034)
  814
  815#define UIA_NotificationEventId (20035)
  816
  817#endif /* __UIA_EventIds_MODULE_DEFINED__ */
  818#ifndef __UIA_PropertyIds_MODULE_DEFINED__
  819#define __UIA_PropertyIds_MODULE_DEFINED__
  820#define UIA_RuntimeIdPropertyId (30000)
  821
  822#define UIA_BoundingRectanglePropertyId (30001)
  823
  824#define UIA_ProcessIdPropertyId (30002)
  825
  826#define UIA_ControlTypePropertyId (30003)
  827
  828#define UIA_LocalizedControlTypePropertyId (30004)
  829
  830#define UIA_NamePropertyId (30005)
  831
  832#define UIA_AcceleratorKeyPropertyId (30006)
  833
  834#define UIA_AccessKeyPropertyId (30007)
  835
  836#define UIA_HasKeyboardFocusPropertyId (30008)
  837
  838#define UIA_IsKeyboardFocusablePropertyId (30009)
  839
  840#define UIA_IsEnabledPropertyId (30010)
  841
  842#define UIA_AutomationIdPropertyId (30011)
  843
  844#define UIA_ClassNamePropertyId (30012)
  845
  846#define UIA_HelpTextPropertyId (30013)
  847
  848#define UIA_ClickablePointPropertyId (30014)
  849
  850#define UIA_CulturePropertyId (30015)
  851
  852#define UIA_IsControlElementPropertyId (30016)
  853
  854#define UIA_IsContentElementPropertyId (30017)
  855
  856#define UIA_LabeledByPropertyId (30018)
  857
  858#define UIA_IsPasswordPropertyId (30019)
  859
  860#define UIA_NativeWindowHandlePropertyId (30020)
  861
  862#define UIA_ItemTypePropertyId (30021)
  863
  864#define UIA_IsOffscreenPropertyId (30022)
  865
  866#define UIA_OrientationPropertyId (30023)
  867
  868#define UIA_FrameworkIdPropertyId (30024)
  869
  870#define UIA_IsRequiredForFormPropertyId (30025)
  871
  872#define UIA_ItemStatusPropertyId (30026)
  873
  874#define UIA_IsDockPatternAvailablePropertyId (30027)
  875
  876#define UIA_IsExpandCollapsePatternAvailablePropertyId (30028)
  877
  878#define UIA_IsGridItemPatternAvailablePropertyId (30029)
  879
  880#define UIA_IsGridPatternAvailablePropertyId (30030)
  881
  882#define UIA_IsInvokePatternAvailablePropertyId (30031)
  883
  884#define UIA_IsMultipleViewPatternAvailablePropertyId (30032)
  885
  886#define UIA_IsRangeValuePatternAvailablePropertyId (30033)
  887
  888#define UIA_IsScrollPatternAvailablePropertyId (30034)
  889
  890#define UIA_IsScrollItemPatternAvailablePropertyId (30035)
  891
  892#define UIA_IsSelectionItemPatternAvailablePropertyId (30036)
  893
  894#define UIA_IsSelectionPatternAvailablePropertyId (30037)
  895
  896#define UIA_IsTablePatternAvailablePropertyId (30038)
  897
  898#define UIA_IsTableItemPatternAvailablePropertyId (30039)
  899
  900#define UIA_IsTextPatternAvailablePropertyId (30040)
  901
  902#define UIA_IsTogglePatternAvailablePropertyId (30041)
  903
  904#define UIA_IsTransformPatternAvailablePropertyId (30042)
  905
  906#define UIA_IsValuePatternAvailablePropertyId (30043)
  907
  908#define UIA_IsWindowPatternAvailablePropertyId (30044)
  909
  910#define UIA_ValueValuePropertyId (30045)
  911
  912#define UIA_ValueIsReadOnlyPropertyId (30046)
  913
  914#define UIA_RangeValueValuePropertyId (30047)
  915
  916#define UIA_RangeValueIsReadOnlyPropertyId (30048)
  917
  918#define UIA_RangeValueMinimumPropertyId (30049)
  919
  920#define UIA_RangeValueMaximumPropertyId (30050)
  921
  922#define UIA_RangeValueLargeChangePropertyId (30051)
  923
  924#define UIA_RangeValueSmallChangePropertyId (30052)
  925
  926#define UIA_ScrollHorizontalScrollPercentPropertyId (30053)
  927
  928#define UIA_ScrollHorizontalViewSizePropertyId (30054)
  929
  930#define UIA_ScrollVerticalScrollPercentPropertyId (30055)
  931
  932#define UIA_ScrollVerticalViewSizePropertyId (30056)
  933
  934#define UIA_ScrollHorizontallyScrollablePropertyId (30057)
  935
  936#define UIA_ScrollVerticallyScrollablePropertyId (30058)
  937
  938#define UIA_SelectionSelectionPropertyId (30059)
  939
  940#define UIA_SelectionCanSelectMultiplePropertyId (30060)
  941
  942#define UIA_SelectionIsSelectionRequiredPropertyId (30061)
  943
  944#define UIA_GridRowCountPropertyId (30062)
  945
  946#define UIA_GridColumnCountPropertyId (30063)
  947
  948#define UIA_GridItemRowPropertyId (30064)
  949
  950#define UIA_GridItemColumnPropertyId (30065)
  951
  952#define UIA_GridItemRowSpanPropertyId (30066)
  953
  954#define UIA_GridItemColumnSpanPropertyId (30067)
  955
  956#define UIA_GridItemContainingGridPropertyId (30068)
  957
  958#define UIA_DockDockPositionPropertyId (30069)
  959
  960#define UIA_ExpandCollapseExpandCollapseStatePropertyId (30070)
  961
  962#define UIA_MultipleViewCurrentViewPropertyId (30071)
  963
  964#define UIA_MultipleViewSupportedViewsPropertyId (30072)
  965
  966#define UIA_WindowCanMaximizePropertyId (30073)
  967
  968#define UIA_WindowCanMinimizePropertyId (30074)
  969
  970#define UIA_WindowWindowVisualStatePropertyId (30075)
  971
  972#define UIA_WindowWindowInteractionStatePropertyId (30076)
  973
  974#define UIA_WindowIsModalPropertyId (30077)
  975
  976#define UIA_WindowIsTopmostPropertyId (30078)
  977
  978#define UIA_SelectionItemIsSelectedPropertyId (30079)
  979
  980#define UIA_SelectionItemSelectionContainerPropertyId (30080)
  981
  982#define UIA_TableRowHeadersPropertyId (30081)
  983
  984#define UIA_TableColumnHeadersPropertyId (30082)
  985
  986#define UIA_TableRowOrColumnMajorPropertyId (30083)
  987
  988#define UIA_TableItemRowHeaderItemsPropertyId (30084)
  989
  990#define UIA_TableItemColumnHeaderItemsPropertyId (30085)
  991
  992#define UIA_ToggleToggleStatePropertyId (30086)
  993
  994#define UIA_TransformCanMovePropertyId (30087)
  995
  996#define UIA_TransformCanResizePropertyId (30088)
  997
  998#define UIA_TransformCanRotatePropertyId (30089)
  999
 1000#define UIA_IsLegacyIAccessiblePatternAvailablePropertyId (30090)
 1001
 1002#define UIA_LegacyIAccessibleChildIdPropertyId (30091)
 1003
 1004#define UIA_LegacyIAccessibleNamePropertyId (30092)
 1005
 1006#define UIA_LegacyIAccessibleValuePropertyId (30093)
 1007
 1008#define UIA_LegacyIAccessibleDescriptionPropertyId (30094)
 1009
 1010#define UIA_LegacyIAccessibleRolePropertyId (30095)
 1011
 1012#define UIA_LegacyIAccessibleStatePropertyId (30096)
 1013
 1014#define UIA_LegacyIAccessibleHelpPropertyId (30097)
 1015
 1016#define UIA_LegacyIAccessibleKeyboardShortcutPropertyId (30098)
 1017
 1018#define UIA_LegacyIAccessibleSelectionPropertyId (30099)
 1019
 1020#define UIA_LegacyIAccessibleDefaultActionPropertyId (30100)
 1021
 1022#define UIA_AriaRolePropertyId (30101)
 1023
 1024#define UIA_AriaPropertiesPropertyId (30102)
 1025
 1026#define UIA_IsDataValidForFormPropertyId (30103)
 1027
 1028#define UIA_ControllerForPropertyId (30104)
 1029
 1030#define UIA_DescribedByPropertyId (30105)
 1031
 1032#define UIA_FlowsToPropertyId (30106)
 1033
 1034#define UIA_ProviderDescriptionPropertyId (30107)
 1035
 1036#define UIA_IsItemContainerPatternAvailablePropertyId (30108)
 1037
 1038#define UIA_IsVirtualizedItemPatternAvailablePropertyId (30109)
 1039
 1040#define UIA_IsSynchronizedInputPatternAvailablePropertyId (30110)
 1041
 1042#define UIA_OptimizeForVisualContentPropertyId (30111)
 1043
 1044#define UIA_IsObjectModelPatternAvailablePropertyId (30112)
 1045
 1046#define UIA_AnnotationAnnotationTypeIdPropertyId (30113)
 1047
 1048#define UIA_AnnotationAnnotationTypeNamePropertyId (30114)
 1049
 1050#define UIA_AnnotationAuthorPropertyId (30115)
 1051
 1052#define UIA_AnnotationDateTimePropertyId (30116)
 1053
 1054#define UIA_AnnotationTargetPropertyId (30117)
 1055
 1056#define UIA_IsAnnotationPatternAvailablePropertyId (30118)
 1057
 1058#define UIA_IsTextPattern2AvailablePropertyId (30119)
 1059
 1060#define UIA_StylesStyleIdPropertyId (30120)
 1061
 1062#define UIA_StylesStyleNamePropertyId (30121)
 1063
 1064#define UIA_StylesFillColorPropertyId (30122)
 1065
 1066#define UIA_StylesFillPatternStylePropertyId (30123)
 1067
 1068#define UIA_StylesShapePropertyId (30124)
 1069
 1070#define UIA_StylesFillPatternColorPropertyId (30125)
 1071
 1072#define UIA_StylesExtendedPropertiesPropertyId (30126)
 1073
 1074#define UIA_IsStylesPatternAvailablePropertyId (30127)
 1075
 1076#define UIA_IsSpreadsheetPatternAvailablePropertyId (30128)
 1077
 1078#define UIA_SpreadsheetItemFormulaPropertyId (30129)
 1079
 1080#define UIA_SpreadsheetItemAnnotationObjectsPropertyId (30130)
 1081
 1082#define UIA_SpreadsheetItemAnnotationTypesPropertyId (30131)
 1083
 1084#define UIA_IsSpreadsheetItemPatternAvailablePropertyId (30132)
 1085
 1086#define UIA_Transform2CanZoomPropertyId (30133)
 1087
 1088#define UIA_IsTransformPattern2AvailablePropertyId (30134)
 1089
 1090#define UIA_LiveSettingPropertyId (30135)
 1091
 1092#define UIA_IsTextChildPatternAvailablePropertyId (30136)
 1093
 1094#define UIA_IsDragPatternAvailablePropertyId (30137)
 1095
 1096#define UIA_DragIsGrabbedPropertyId (30138)
 1097
 1098#define UIA_DragDropEffectPropertyId (30139)
 1099
 1100#define UIA_DragDropEffectsPropertyId (30140)
 1101
 1102#define UIA_IsDropTargetPatternAvailablePropertyId (30141)
 1103
 1104#define UIA_DropTargetDropTargetEffectPropertyId (30142)
 1105
 1106#define UIA_DropTargetDropTargetEffectsPropertyId (30143)
 1107
 1108#define UIA_DragGrabbedItemsPropertyId (30144)
 1109
 1110#define UIA_Transform2ZoomLevelPropertyId (30145)
 1111
 1112#define UIA_Transform2ZoomMinimumPropertyId (30146)
 1113
 1114#define UIA_Transform2ZoomMaximumPropertyId (30147)
 1115
 1116#define UIA_FlowsFromPropertyId (30148)
 1117
 1118#define UIA_IsTextEditPatternAvailablePropertyId (30149)
 1119
 1120#define UIA_IsPeripheralPropertyId (30150)
 1121
 1122#define UIA_IsCustomNavigationPatternAvailablePropertyId (30151)
 1123
 1124#define UIA_PositionInSetPropertyId (30152)
 1125
 1126#define UIA_SizeOfSetPropertyId (30153)
 1127
 1128#define UIA_LevelPropertyId (30154)
 1129
 1130#define UIA_AnnotationTypesPropertyId (30155)
 1131
 1132#define UIA_AnnotationObjectsPropertyId (30156)
 1133
 1134#define UIA_LandmarkTypePropertyId (30157)
 1135
 1136#define UIA_LocalizedLandmarkTypePropertyId (30158)
 1137
 1138#define UIA_FullDescriptionPropertyId (30159)
 1139
 1140#define UIA_FillColorPropertyId (30160)
 1141
 1142#define UIA_OutlineColorPropertyId (30161)
 1143
 1144#define UIA_FillTypePropertyId (30162)
 1145
 1146#define UIA_VisualEffectsPropertyId (30163)
 1147
 1148#define UIA_OutlineThicknessPropertyId (30164)
 1149
 1150#define UIA_CenterPointPropertyId (30165)
 1151
 1152#define UIA_RotationPropertyId (30166)
 1153
 1154#define UIA_SizePropertyId (30167)
 1155
 1156#define UIA_IsSelectionPattern2AvailablePropertyId (30168)
 1157
 1158#define UIA_Selection2FirstSelectedItemPropertyId (30169)
 1159
 1160#define UIA_Selection2LastSelectedItemPropertyId (30170)
 1161
 1162#define UIA_Selection2CurrentSelectedItemPropertyId (30171)
 1163
 1164#define UIA_Selection2ItemCountPropertyId (30172)
 1165
 1166#define UIA_HeadingLevelPropertyId (30173)
 1167
 1168#define UIA_IsDialogPropertyId (30174)
 1169
 1170#endif /* __UIA_PropertyIds_MODULE_DEFINED__ */
 1171#ifndef __UIA_TextAttributeIds_MODULE_DEFINED__
 1172#define __UIA_TextAttributeIds_MODULE_DEFINED__
 1173#define UIA_AnimationStyleAttributeId (40000)
 1174
 1175#define UIA_BackgroundColorAttributeId (40001)
 1176
 1177#define UIA_BulletStyleAttributeId (40002)
 1178
 1179#define UIA_CapStyleAttributeId (40003)
 1180
 1181#define UIA_CultureAttributeId (40004)
 1182
 1183#define UIA_FontNameAttributeId (40005)
 1184
 1185#define UIA_FontSizeAttributeId (40006)
 1186
 1187#define UIA_FontWeightAttributeId (40007)
 1188
 1189#define UIA_ForegroundColorAttributeId (40008)
 1190
 1191#define UIA_HorizontalTextAlignmentAttributeId (40009)
 1192
 1193#define UIA_IndentationFirstLineAttributeId (40010)
 1194
 1195#define UIA_IndentationLeadingAttributeId (40011)
 1196
 1197#define UIA_IndentationTrailingAttributeId (40012)
 1198
 1199#define UIA_IsHiddenAttributeId (40013)
 1200
 1201#define UIA_IsItalicAttributeId (40014)
 1202
 1203#define UIA_IsReadOnlyAttributeId (40015)
 1204
 1205#define UIA_IsSubscriptAttributeId (40016)
 1206
 1207#define UIA_IsSuperscriptAttributeId (40017)
 1208
 1209#define UIA_MarginBottomAttributeId (40018)
 1210
 1211#define UIA_MarginLeadingAttributeId (40019)
 1212
 1213#define UIA_MarginTopAttributeId (40020)
 1214
 1215#define UIA_MarginTrailingAttributeId (40021)
 1216
 1217#define UIA_OutlineStylesAttributeId (40022)
 1218
 1219#define UIA_OverlineColorAttributeId (40023)
 1220
 1221#define UIA_OverlineStyleAttributeId (40024)
 1222
 1223#define UIA_StrikethroughColorAttributeId (40025)
 1224
 1225#define UIA_StrikethroughStyleAttributeId (40026)
 1226
 1227#define UIA_TabsAttributeId (40027)
 1228
 1229#define UIA_TextFlowDirectionsAttributeId (40028)
 1230
 1231#define UIA_UnderlineColorAttributeId (40029)
 1232
 1233#define UIA_UnderlineStyleAttributeId (40030)
 1234
 1235#define UIA_AnnotationTypesAttributeId (40031)
 1236
 1237#define UIA_AnnotationObjectsAttributeId (40032)
 1238
 1239#define UIA_StyleNameAttributeId (40033)
 1240
 1241#define UIA_StyleIdAttributeId (40034)
 1242
 1243#define UIA_LinkAttributeId (40035)
 1244
 1245#define UIA_IsActiveAttributeId (40036)
 1246
 1247#define UIA_SelectionActiveEndAttributeId (40037)
 1248
 1249#define UIA_CaretPositionAttributeId (40038)
 1250
 1251#define UIA_CaretBidiModeAttributeId (40039)
 1252
 1253#define UIA_LineSpacingAttributeId (40040)
 1254
 1255#define UIA_BeforeParagraphSpacingAttributeId (40041)
 1256
 1257#define UIA_AfterParagraphSpacingAttributeId (40042)
 1258
 1259#define UIA_SayAsInterpretAsAttributeId (40043)
 1260
 1261#endif /* __UIA_TextAttributeIds_MODULE_DEFINED__ */
 1262#ifndef __UIA_ControlTypeIds_MODULE_DEFINED__
 1263#define __UIA_ControlTypeIds_MODULE_DEFINED__
 1264#define UIA_ButtonControlTypeId (50000)
 1265
 1266#define UIA_CalendarControlTypeId (50001)
 1267
 1268#define UIA_CheckBoxControlTypeId (50002)
 1269
 1270#define UIA_ComboBoxControlTypeId (50003)
 1271
 1272#define UIA_EditControlTypeId (50004)
 1273
 1274#define UIA_HyperlinkControlTypeId (50005)
 1275
 1276#define UIA_ImageControlTypeId (50006)
 1277
 1278#define UIA_ListItemControlTypeId (50007)
 1279
 1280#define UIA_ListControlTypeId (50008)
 1281
 1282#define UIA_MenuControlTypeId (50009)
 1283
 1284#define UIA_MenuBarControlTypeId (50010)
 1285
 1286#define UIA_MenuItemControlTypeId (50011)
 1287
 1288#define UIA_ProgressBarControlTypeId (50012)
 1289
 1290#define UIA_RadioButtonControlTypeId (50013)
 1291
 1292#define UIA_ScrollBarControlTypeId (50014)
 1293
 1294#define UIA_SliderControlTypeId (50015)
 1295
 1296#define UIA_SpinnerControlTypeId (50016)
 1297
 1298#define UIA_StatusBarControlTypeId (50017)
 1299
 1300#define UIA_TabControlTypeId (50018)
 1301
 1302#define UIA_TabItemControlTypeId (50019)
 1303
 1304#define UIA_TextControlTypeId (50020)
 1305
 1306#define UIA_ToolBarControlTypeId (50021)
 1307
 1308#define UIA_ToolTipControlTypeId (50022)
 1309
 1310#define UIA_TreeControlTypeId (50023)
 1311
 1312#define UIA_TreeItemControlTypeId (50024)
 1313
 1314#define UIA_CustomControlTypeId (50025)
 1315
 1316#define UIA_GroupControlTypeId (50026)
 1317
 1318#define UIA_ThumbControlTypeId (50027)
 1319
 1320#define UIA_DataGridControlTypeId (50028)
 1321
 1322#define UIA_DataItemControlTypeId (50029)
 1323
 1324#define UIA_DocumentControlTypeId (50030)
 1325
 1326#define UIA_SplitButtonControlTypeId (50031)
 1327
 1328#define UIA_WindowControlTypeId (50032)
 1329
 1330#define UIA_PaneControlTypeId (50033)
 1331
 1332#define UIA_HeaderControlTypeId (50034)
 1333
 1334#define UIA_HeaderItemControlTypeId (50035)
 1335
 1336#define UIA_TableControlTypeId (50036)
 1337
 1338#define UIA_TitleBarControlTypeId (50037)
 1339
 1340#define UIA_SeparatorControlTypeId (50038)
 1341
 1342#define UIA_SemanticZoomControlTypeId (50039)
 1343
 1344#define UIA_AppBarControlTypeId (50040)
 1345
 1346#endif /* __UIA_ControlTypeIds_MODULE_DEFINED__ */
 1347#ifndef __UIA_AnnotationTypes_MODULE_DEFINED__
 1348#define __UIA_AnnotationTypes_MODULE_DEFINED__
 1349#define AnnotationType_Unknown (60000)
 1350
 1351#define AnnotationType_SpellingError (60001)
 1352
 1353#define AnnotationType_GrammarError (60002)
 1354
 1355#define AnnotationType_Comment (60003)
 1356
 1357#define AnnotationType_FormulaError (60004)
 1358
 1359#define AnnotationType_TrackChanges (60005)
 1360
 1361#define AnnotationType_Header (60006)
 1362
 1363#define AnnotationType_Footer (60007)
 1364
 1365#define AnnotationType_Highlighted (60008)
 1366
 1367#define AnnotationType_Endnote (60009)
 1368
 1369#define AnnotationType_Footnote (60010)
 1370
 1371#define AnnotationType_InsertionChange (60011)
 1372
 1373#define AnnotationType_DeletionChange (60012)
 1374
 1375#define AnnotationType_MoveChange (60013)
 1376
 1377#define AnnotationType_FormatChange (60014)
 1378
 1379#define AnnotationType_UnsyncedChange (60015)
 1380
 1381#define AnnotationType_EditingLockedChange (60016)
 1382
 1383#define AnnotationType_ExternalChange (60017)
 1384
 1385#define AnnotationType_ConflictingChange (60018)
 1386
 1387#define AnnotationType_Author (60019)
 1388
 1389#define AnnotationType_AdvancedProofingIssue (60020)
 1390
 1391#define AnnotationType_DataValidationError (60021)
 1392
 1393#define AnnotationType_CircularReferenceError (60022)
 1394
 1395#define AnnotationType_Mathematics (60023)
 1396
 1397#define AnnotationType_Sensitive (60024)
 1398
 1399#endif /* __UIA_AnnotationTypes_MODULE_DEFINED__ */
 1400#ifndef __UIA_StyleIds_MODULE_DEFINED__
 1401#define __UIA_StyleIds_MODULE_DEFINED__
 1402#define StyleId_Custom (70000)
 1403
 1404#define StyleId_Heading1 (70001)
 1405
 1406#define StyleId_Heading2 (70002)
 1407
 1408#define StyleId_Heading3 (70003)
 1409
 1410#define StyleId_Heading4 (70004)
 1411
 1412#define StyleId_Heading5 (70005)
 1413
 1414#define StyleId_Heading6 (70006)
 1415
 1416#define StyleId_Heading7 (70007)
 1417
 1418#define StyleId_Heading8 (70008)
 1419
 1420#define StyleId_Heading9 (70009)
 1421
 1422#define StyleId_Title (70010)
 1423
 1424#define StyleId_Subtitle (70011)
 1425
 1426#define StyleId_Normal (70012)
 1427
 1428#define StyleId_Emphasis (70013)
 1429
 1430#define StyleId_Quote (70014)
 1431
 1432#define StyleId_BulletedList (70015)
 1433
 1434#define StyleId_NumberedList (70016)
 1435
 1436#endif /* __UIA_StyleIds_MODULE_DEFINED__ */
 1437#ifndef __UIA_LandmarkTypeIds_MODULE_DEFINED__
 1438#define __UIA_LandmarkTypeIds_MODULE_DEFINED__
 1439#define UIA_CustomLandmarkTypeId (80000)
 1440
 1441#define UIA_FormLandmarkTypeId (80001)
 1442
 1443#define UIA_MainLandmarkTypeId (80002)
 1444
 1445#define UIA_NavigationLandmarkTypeId (80003)
 1446
 1447#define UIA_SearchLandmarkTypeId (80004)
 1448
 1449#endif /* __UIA_LandmarkTypeIds_MODULE_DEFINED__ */
 1450#ifndef __IUIAutomationElement_FWD_DEFINED__
 1451#define __IUIAutomationElement_FWD_DEFINED__
 1452typedef interface IUIAutomationElement IUIAutomationElement;
 1453#ifdef __cplusplus
 1454interface IUIAutomationElement;
 1455#endif /* __cplusplus */
 1456#endif
 1457
 1458#ifndef __IUIAutomationElementArray_FWD_DEFINED__
 1459#define __IUIAutomationElementArray_FWD_DEFINED__
 1460typedef interface IUIAutomationElementArray IUIAutomationElementArray;
 1461#ifdef __cplusplus
 1462interface IUIAutomationElementArray;
 1463#endif /* __cplusplus */
 1464#endif
 1465
 1466/*****************************************************************************
 1467 * IUIAutomationCondition interface
 1468 */
 1469#ifndef __IUIAutomationCondition_INTERFACE_DEFINED__
 1470#define __IUIAutomationCondition_INTERFACE_DEFINED__
 1471
 1472DEFINE_GUID(IID_IUIAutomationCondition, 0x352ffba8, 0x0973, 0x437c, 0xa6,0x1f, 0xf6,0x4c,0xaf,0xd8,0x1d,0xf9);
 1473#if defined(__cplusplus) && !defined(CINTERFACE)
 1474MIDL_INTERFACE("352ffba8-0973-437c-a61f-f64cafd81df9")
 1475IUIAutomationCondition : public IUnknown
 1476{
 1477};
 1478#ifdef __CRT_UUID_DECL
 1479__CRT_UUID_DECL(IUIAutomationCondition, 0x352ffba8, 0x0973, 0x437c, 0xa6,0x1f, 0xf6,0x4c,0xaf,0xd8,0x1d,0xf9)
 1480#endif
 1481#else
 1482typedef struct IUIAutomationConditionVtbl {
 1483    BEGIN_INTERFACE
 1484
 1485    /*** IUnknown methods ***/
 1486    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 1487        IUIAutomationCondition *This,
 1488        REFIID riid,
 1489        void **ppvObject);
 1490
 1491    ULONG (STDMETHODCALLTYPE *AddRef)(
 1492        IUIAutomationCondition *This);
 1493
 1494    ULONG (STDMETHODCALLTYPE *Release)(
 1495        IUIAutomationCondition *This);
 1496
 1497    END_INTERFACE
 1498} IUIAutomationConditionVtbl;
 1499
 1500interface IUIAutomationCondition {
 1501    CONST_VTBL IUIAutomationConditionVtbl* lpVtbl;
 1502};
 1503
 1504#ifdef COBJMACROS
 1505#ifndef WIDL_C_INLINE_WRAPPERS
 1506/*** IUnknown methods ***/
 1507#define IUIAutomationCondition_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 1508#define IUIAutomationCondition_AddRef(This) (This)->lpVtbl->AddRef(This)
 1509#define IUIAutomationCondition_Release(This) (This)->lpVtbl->Release(This)
 1510#else
 1511/*** IUnknown methods ***/
 1512static inline HRESULT IUIAutomationCondition_QueryInterface(IUIAutomationCondition* This,REFIID riid,void **ppvObject) {
 1513    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 1514}
 1515static inline ULONG IUIAutomationCondition_AddRef(IUIAutomationCondition* This) {
 1516    return This->lpVtbl->AddRef(This);
 1517}
 1518static inline ULONG IUIAutomationCondition_Release(IUIAutomationCondition* This) {
 1519    return This->lpVtbl->Release(This);
 1520}
 1521#endif
 1522#endif
 1523
 1524#endif
 1525
 1526
 1527#endif  /* __IUIAutomationCondition_INTERFACE_DEFINED__ */
 1528
 1529/*****************************************************************************
 1530 * IUIAutomationBoolCondition interface
 1531 */
 1532#ifndef __IUIAutomationBoolCondition_INTERFACE_DEFINED__
 1533#define __IUIAutomationBoolCondition_INTERFACE_DEFINED__
 1534
 1535DEFINE_GUID(IID_IUIAutomationBoolCondition, 0x1b4e1f2e, 0x75eb, 0x4d0b, 0x89,0x52, 0x5a,0x69,0x98,0x8e,0x23,0x07);
 1536#if defined(__cplusplus) && !defined(CINTERFACE)
 1537MIDL_INTERFACE("1b4e1f2e-75eb-4d0b-8952-5a69988e2307")
 1538IUIAutomationBoolCondition : public IUIAutomationCondition
 1539{
 1540    virtual HRESULT STDMETHODCALLTYPE get_BooleanValue(
 1541        WINBOOL *boolVal) = 0;
 1542
 1543};
 1544#ifdef __CRT_UUID_DECL
 1545__CRT_UUID_DECL(IUIAutomationBoolCondition, 0x1b4e1f2e, 0x75eb, 0x4d0b, 0x89,0x52, 0x5a,0x69,0x98,0x8e,0x23,0x07)
 1546#endif
 1547#else
 1548typedef struct IUIAutomationBoolConditionVtbl {
 1549    BEGIN_INTERFACE
 1550
 1551    /*** IUnknown methods ***/
 1552    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 1553        IUIAutomationBoolCondition *This,
 1554        REFIID riid,
 1555        void **ppvObject);
 1556
 1557    ULONG (STDMETHODCALLTYPE *AddRef)(
 1558        IUIAutomationBoolCondition *This);
 1559
 1560    ULONG (STDMETHODCALLTYPE *Release)(
 1561        IUIAutomationBoolCondition *This);
 1562
 1563    /*** IUIAutomationBoolCondition methods ***/
 1564    HRESULT (STDMETHODCALLTYPE *get_BooleanValue)(
 1565        IUIAutomationBoolCondition *This,
 1566        WINBOOL *boolVal);
 1567
 1568    END_INTERFACE
 1569} IUIAutomationBoolConditionVtbl;
 1570
 1571interface IUIAutomationBoolCondition {
 1572    CONST_VTBL IUIAutomationBoolConditionVtbl* lpVtbl;
 1573};
 1574
 1575#ifdef COBJMACROS
 1576#ifndef WIDL_C_INLINE_WRAPPERS
 1577/*** IUnknown methods ***/
 1578#define IUIAutomationBoolCondition_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 1579#define IUIAutomationBoolCondition_AddRef(This) (This)->lpVtbl->AddRef(This)
 1580#define IUIAutomationBoolCondition_Release(This) (This)->lpVtbl->Release(This)
 1581/*** IUIAutomationBoolCondition methods ***/
 1582#define IUIAutomationBoolCondition_get_BooleanValue(This,boolVal) (This)->lpVtbl->get_BooleanValue(This,boolVal)
 1583#else
 1584/*** IUnknown methods ***/
 1585static inline HRESULT IUIAutomationBoolCondition_QueryInterface(IUIAutomationBoolCondition* This,REFIID riid,void **ppvObject) {
 1586    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 1587}
 1588static inline ULONG IUIAutomationBoolCondition_AddRef(IUIAutomationBoolCondition* This) {
 1589    return This->lpVtbl->AddRef(This);
 1590}
 1591static inline ULONG IUIAutomationBoolCondition_Release(IUIAutomationBoolCondition* This) {
 1592    return This->lpVtbl->Release(This);
 1593}
 1594/*** IUIAutomationBoolCondition methods ***/
 1595static inline HRESULT IUIAutomationBoolCondition_get_BooleanValue(IUIAutomationBoolCondition* This,WINBOOL *boolVal) {
 1596    return This->lpVtbl->get_BooleanValue(This,boolVal);
 1597}
 1598#endif
 1599#endif
 1600
 1601#endif
 1602
 1603
 1604#endif  /* __IUIAutomationBoolCondition_INTERFACE_DEFINED__ */
 1605
 1606/*****************************************************************************
 1607 * IUIAutomationPropertyCondition interface
 1608 */
 1609#ifndef __IUIAutomationPropertyCondition_INTERFACE_DEFINED__
 1610#define __IUIAutomationPropertyCondition_INTERFACE_DEFINED__
 1611
 1612DEFINE_GUID(IID_IUIAutomationPropertyCondition, 0x99ebf2cb, 0x5578, 0x4267, 0x9a,0xd4, 0xaf,0xd6,0xea,0x77,0xe9,0x4b);
 1613#if defined(__cplusplus) && !defined(CINTERFACE)
 1614MIDL_INTERFACE("99ebf2cb-5578-4267-9ad4-afd6ea77e94b")
 1615IUIAutomationPropertyCondition : public IUIAutomationCondition
 1616{
 1617    virtual HRESULT STDMETHODCALLTYPE get_PropertyId(
 1618        PROPERTYID *propertyId) = 0;
 1619
 1620    virtual HRESULT STDMETHODCALLTYPE get_PropertyValue(
 1621        VARIANT *propertyValue) = 0;
 1622
 1623    virtual HRESULT STDMETHODCALLTYPE get_PropertyConditionFlags(
 1624        enum PropertyConditionFlags *flags) = 0;
 1625
 1626};
 1627#ifdef __CRT_UUID_DECL
 1628__CRT_UUID_DECL(IUIAutomationPropertyCondition, 0x99ebf2cb, 0x5578, 0x4267, 0x9a,0xd4, 0xaf,0xd6,0xea,0x77,0xe9,0x4b)
 1629#endif
 1630#else
 1631typedef struct IUIAutomationPropertyConditionVtbl {
 1632    BEGIN_INTERFACE
 1633
 1634    /*** IUnknown methods ***/
 1635    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 1636        IUIAutomationPropertyCondition *This,
 1637        REFIID riid,
 1638        void **ppvObject);
 1639
 1640    ULONG (STDMETHODCALLTYPE *AddRef)(
 1641        IUIAutomationPropertyCondition *This);
 1642
 1643    ULONG (STDMETHODCALLTYPE *Release)(
 1644        IUIAutomationPropertyCondition *This);
 1645
 1646    /*** IUIAutomationPropertyCondition methods ***/
 1647    HRESULT (STDMETHODCALLTYPE *get_PropertyId)(
 1648        IUIAutomationPropertyCondition *This,
 1649        PROPERTYID *propertyId);
 1650
 1651    HRESULT (STDMETHODCALLTYPE *get_PropertyValue)(
 1652        IUIAutomationPropertyCondition *This,
 1653        VARIANT *propertyValue);
 1654
 1655    HRESULT (STDMETHODCALLTYPE *get_PropertyConditionFlags)(
 1656        IUIAutomationPropertyCondition *This,
 1657        enum PropertyConditionFlags *flags);
 1658
 1659    END_INTERFACE
 1660} IUIAutomationPropertyConditionVtbl;
 1661
 1662interface IUIAutomationPropertyCondition {
 1663    CONST_VTBL IUIAutomationPropertyConditionVtbl* lpVtbl;
 1664};
 1665
 1666#ifdef COBJMACROS
 1667#ifndef WIDL_C_INLINE_WRAPPERS
 1668/*** IUnknown methods ***/
 1669#define IUIAutomationPropertyCondition_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 1670#define IUIAutomationPropertyCondition_AddRef(This) (This)->lpVtbl->AddRef(This)
 1671#define IUIAutomationPropertyCondition_Release(This) (This)->lpVtbl->Release(This)
 1672/*** IUIAutomationPropertyCondition methods ***/
 1673#define IUIAutomationPropertyCondition_get_PropertyId(This,propertyId) (This)->lpVtbl->get_PropertyId(This,propertyId)
 1674#define IUIAutomationPropertyCondition_get_PropertyValue(This,propertyValue) (This)->lpVtbl->get_PropertyValue(This,propertyValue)
 1675#define IUIAutomationPropertyCondition_get_PropertyConditionFlags(This,flags) (This)->lpVtbl->get_PropertyConditionFlags(This,flags)
 1676#else
 1677/*** IUnknown methods ***/
 1678static inline HRESULT IUIAutomationPropertyCondition_QueryInterface(IUIAutomationPropertyCondition* This,REFIID riid,void **ppvObject) {
 1679    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 1680}
 1681static inline ULONG IUIAutomationPropertyCondition_AddRef(IUIAutomationPropertyCondition* This) {
 1682    return This->lpVtbl->AddRef(This);
 1683}
 1684static inline ULONG IUIAutomationPropertyCondition_Release(IUIAutomationPropertyCondition* This) {
 1685    return This->lpVtbl->Release(This);
 1686}
 1687/*** IUIAutomationPropertyCondition methods ***/
 1688static inline HRESULT IUIAutomationPropertyCondition_get_PropertyId(IUIAutomationPropertyCondition* This,PROPERTYID *propertyId) {
 1689    return This->lpVtbl->get_PropertyId(This,propertyId);
 1690}
 1691static inline HRESULT IUIAutomationPropertyCondition_get_PropertyValue(IUIAutomationPropertyCondition* This,VARIANT *propertyValue) {
 1692    return This->lpVtbl->get_PropertyValue(This,propertyValue);
 1693}
 1694static inline HRESULT IUIAutomationPropertyCondition_get_PropertyConditionFlags(IUIAutomationPropertyCondition* This,enum PropertyConditionFlags *flags) {
 1695    return This->lpVtbl->get_PropertyConditionFlags(This,flags);
 1696}
 1697#endif
 1698#endif
 1699
 1700#endif
 1701
 1702
 1703#endif  /* __IUIAutomationPropertyCondition_INTERFACE_DEFINED__ */
 1704
 1705/*****************************************************************************
 1706 * IUIAutomationAndCondition interface
 1707 */
 1708#ifndef __IUIAutomationAndCondition_INTERFACE_DEFINED__
 1709#define __IUIAutomationAndCondition_INTERFACE_DEFINED__
 1710
 1711DEFINE_GUID(IID_IUIAutomationAndCondition, 0xa7d0af36, 0xb912, 0x45fe, 0x98,0x55, 0x09,0x1d,0xdc,0x17,0x4a,0xec);
 1712#if defined(__cplusplus) && !defined(CINTERFACE)
 1713MIDL_INTERFACE("a7d0af36-b912-45fe-9855-091ddc174aec")
 1714IUIAutomationAndCondition : public IUIAutomationCondition
 1715{
 1716    virtual HRESULT STDMETHODCALLTYPE get_ChildCount(
 1717        int *childCount) = 0;
 1718
 1719    virtual HRESULT STDMETHODCALLTYPE GetChildrenAsNativeArray(
 1720        IUIAutomationCondition ***childArray,
 1721        int *childArrayCount) = 0;
 1722
 1723    virtual HRESULT STDMETHODCALLTYPE GetChildren(
 1724        SAFEARRAY **childArray) = 0;
 1725
 1726};
 1727#ifdef __CRT_UUID_DECL
 1728__CRT_UUID_DECL(IUIAutomationAndCondition, 0xa7d0af36, 0xb912, 0x45fe, 0x98,0x55, 0x09,0x1d,0xdc,0x17,0x4a,0xec)
 1729#endif
 1730#else
 1731typedef struct IUIAutomationAndConditionVtbl {
 1732    BEGIN_INTERFACE
 1733
 1734    /*** IUnknown methods ***/
 1735    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 1736        IUIAutomationAndCondition *This,
 1737        REFIID riid,
 1738        void **ppvObject);
 1739
 1740    ULONG (STDMETHODCALLTYPE *AddRef)(
 1741        IUIAutomationAndCondition *This);
 1742
 1743    ULONG (STDMETHODCALLTYPE *Release)(
 1744        IUIAutomationAndCondition *This);
 1745
 1746    /*** IUIAutomationAndCondition methods ***/
 1747    HRESULT (STDMETHODCALLTYPE *get_ChildCount)(
 1748        IUIAutomationAndCondition *This,
 1749        int *childCount);
 1750
 1751    HRESULT (STDMETHODCALLTYPE *GetChildrenAsNativeArray)(
 1752        IUIAutomationAndCondition *This,
 1753        IUIAutomationCondition ***childArray,
 1754        int *childArrayCount);
 1755
 1756    HRESULT (STDMETHODCALLTYPE *GetChildren)(
 1757        IUIAutomationAndCondition *This,
 1758        SAFEARRAY **childArray);
 1759
 1760    END_INTERFACE
 1761} IUIAutomationAndConditionVtbl;
 1762
 1763interface IUIAutomationAndCondition {
 1764    CONST_VTBL IUIAutomationAndConditionVtbl* lpVtbl;
 1765};
 1766
 1767#ifdef COBJMACROS
 1768#ifndef WIDL_C_INLINE_WRAPPERS
 1769/*** IUnknown methods ***/
 1770#define IUIAutomationAndCondition_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 1771#define IUIAutomationAndCondition_AddRef(This) (This)->lpVtbl->AddRef(This)
 1772#define IUIAutomationAndCondition_Release(This) (This)->lpVtbl->Release(This)
 1773/*** IUIAutomationAndCondition methods ***/
 1774#define IUIAutomationAndCondition_get_ChildCount(This,childCount) (This)->lpVtbl->get_ChildCount(This,childCount)
 1775#define IUIAutomationAndCondition_GetChildrenAsNativeArray(This,childArray,childArrayCount) (This)->lpVtbl->GetChildrenAsNativeArray(This,childArray,childArrayCount)
 1776#define IUIAutomationAndCondition_GetChildren(This,childArray) (This)->lpVtbl->GetChildren(This,childArray)
 1777#else
 1778/*** IUnknown methods ***/
 1779static inline HRESULT IUIAutomationAndCondition_QueryInterface(IUIAutomationAndCondition* This,REFIID riid,void **ppvObject) {
 1780    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 1781}
 1782static inline ULONG IUIAutomationAndCondition_AddRef(IUIAutomationAndCondition* This) {
 1783    return This->lpVtbl->AddRef(This);
 1784}
 1785static inline ULONG IUIAutomationAndCondition_Release(IUIAutomationAndCondition* This) {
 1786    return This->lpVtbl->Release(This);
 1787}
 1788/*** IUIAutomationAndCondition methods ***/
 1789static inline HRESULT IUIAutomationAndCondition_get_ChildCount(IUIAutomationAndCondition* This,int *childCount) {
 1790    return This->lpVtbl->get_ChildCount(This,childCount);
 1791}
 1792static inline HRESULT IUIAutomationAndCondition_GetChildrenAsNativeArray(IUIAutomationAndCondition* This,IUIAutomationCondition ***childArray,int *childArrayCount) {
 1793    return This->lpVtbl->GetChildrenAsNativeArray(This,childArray,childArrayCount);
 1794}
 1795static inline HRESULT IUIAutomationAndCondition_GetChildren(IUIAutomationAndCondition* This,SAFEARRAY **childArray) {
 1796    return This->lpVtbl->GetChildren(This,childArray);
 1797}
 1798#endif
 1799#endif
 1800
 1801#endif
 1802
 1803
 1804#endif  /* __IUIAutomationAndCondition_INTERFACE_DEFINED__ */
 1805
 1806/*****************************************************************************
 1807 * IUIAutomationOrCondition interface
 1808 */
 1809#ifndef __IUIAutomationOrCondition_INTERFACE_DEFINED__
 1810#define __IUIAutomationOrCondition_INTERFACE_DEFINED__
 1811
 1812DEFINE_GUID(IID_IUIAutomationOrCondition, 0x8753f032, 0x3db1, 0x47b5, 0xa1,0xfc, 0x6e,0x34,0xa2,0x66,0xc7,0x12);
 1813#if defined(__cplusplus) && !defined(CINTERFACE)
 1814MIDL_INTERFACE("8753f032-3db1-47b5-a1fc-6e34a266c712")
 1815IUIAutomationOrCondition : public IUIAutomationCondition
 1816{
 1817    virtual HRESULT STDMETHODCALLTYPE get_ChildCount(
 1818        int *childCount) = 0;
 1819
 1820    virtual HRESULT STDMETHODCALLTYPE GetChildrenAsNativeArray(
 1821        IUIAutomationCondition ***childArray,
 1822        int *childArrayCount) = 0;
 1823
 1824    virtual HRESULT STDMETHODCALLTYPE GetChildren(
 1825        SAFEARRAY **childArray) = 0;
 1826
 1827};
 1828#ifdef __CRT_UUID_DECL
 1829__CRT_UUID_DECL(IUIAutomationOrCondition, 0x8753f032, 0x3db1, 0x47b5, 0xa1,0xfc, 0x6e,0x34,0xa2,0x66,0xc7,0x12)
 1830#endif
 1831#else
 1832typedef struct IUIAutomationOrConditionVtbl {
 1833    BEGIN_INTERFACE
 1834
 1835    /*** IUnknown methods ***/
 1836    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 1837        IUIAutomationOrCondition *This,
 1838        REFIID riid,
 1839        void **ppvObject);
 1840
 1841    ULONG (STDMETHODCALLTYPE *AddRef)(
 1842        IUIAutomationOrCondition *This);
 1843
 1844    ULONG (STDMETHODCALLTYPE *Release)(
 1845        IUIAutomationOrCondition *This);
 1846
 1847    /*** IUIAutomationOrCondition methods ***/
 1848    HRESULT (STDMETHODCALLTYPE *get_ChildCount)(
 1849        IUIAutomationOrCondition *This,
 1850        int *childCount);
 1851
 1852    HRESULT (STDMETHODCALLTYPE *GetChildrenAsNativeArray)(
 1853        IUIAutomationOrCondition *This,
 1854        IUIAutomationCondition ***childArray,
 1855        int *childArrayCount);
 1856
 1857    HRESULT (STDMETHODCALLTYPE *GetChildren)(
 1858        IUIAutomationOrCondition *This,
 1859        SAFEARRAY **childArray);
 1860
 1861    END_INTERFACE
 1862} IUIAutomationOrConditionVtbl;
 1863
 1864interface IUIAutomationOrCondition {
 1865    CONST_VTBL IUIAutomationOrConditionVtbl* lpVtbl;
 1866};
 1867
 1868#ifdef COBJMACROS
 1869#ifndef WIDL_C_INLINE_WRAPPERS
 1870/*** IUnknown methods ***/
 1871#define IUIAutomationOrCondition_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 1872#define IUIAutomationOrCondition_AddRef(This) (This)->lpVtbl->AddRef(This)
 1873#define IUIAutomationOrCondition_Release(This) (This)->lpVtbl->Release(This)
 1874/*** IUIAutomationOrCondition methods ***/
 1875#define IUIAutomationOrCondition_get_ChildCount(This,childCount) (This)->lpVtbl->get_ChildCount(This,childCount)
 1876#define IUIAutomationOrCondition_GetChildrenAsNativeArray(This,childArray,childArrayCount) (This)->lpVtbl->GetChildrenAsNativeArray(This,childArray,childArrayCount)
 1877#define IUIAutomationOrCondition_GetChildren(This,childArray) (This)->lpVtbl->GetChildren(This,childArray)
 1878#else
 1879/*** IUnknown methods ***/
 1880static inline HRESULT IUIAutomationOrCondition_QueryInterface(IUIAutomationOrCondition* This,REFIID riid,void **ppvObject) {
 1881    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 1882}
 1883static inline ULONG IUIAutomationOrCondition_AddRef(IUIAutomationOrCondition* This) {
 1884    return This->lpVtbl->AddRef(This);
 1885}
 1886static inline ULONG IUIAutomationOrCondition_Release(IUIAutomationOrCondition* This) {
 1887    return This->lpVtbl->Release(This);
 1888}
 1889/*** IUIAutomationOrCondition methods ***/
 1890static inline HRESULT IUIAutomationOrCondition_get_ChildCount(IUIAutomationOrCondition* This,int *childCount) {
 1891    return This->lpVtbl->get_ChildCount(This,childCount);
 1892}
 1893static inline HRESULT IUIAutomationOrCondition_GetChildrenAsNativeArray(IUIAutomationOrCondition* This,IUIAutomationCondition ***childArray,int *childArrayCount) {
 1894    return This->lpVtbl->GetChildrenAsNativeArray(This,childArray,childArrayCount);
 1895}
 1896static inline HRESULT IUIAutomationOrCondition_GetChildren(IUIAutomationOrCondition* This,SAFEARRAY **childArray) {
 1897    return This->lpVtbl->GetChildren(This,childArray);
 1898}
 1899#endif
 1900#endif
 1901
 1902#endif
 1903
 1904
 1905#endif  /* __IUIAutomationOrCondition_INTERFACE_DEFINED__ */
 1906
 1907/*****************************************************************************
 1908 * IUIAutomationNotCondition interface
 1909 */
 1910#ifndef __IUIAutomationNotCondition_INTERFACE_DEFINED__
 1911#define __IUIAutomationNotCondition_INTERFACE_DEFINED__
 1912
 1913DEFINE_GUID(IID_IUIAutomationNotCondition, 0xf528b657, 0x847b, 0x498c, 0x88,0x96, 0xd5,0x2b,0x56,0x54,0x07,0xa1);
 1914#if defined(__cplusplus) && !defined(CINTERFACE)
 1915MIDL_INTERFACE("f528b657-847b-498c-8896-d52b565407a1")
 1916IUIAutomationNotCondition : public IUIAutomationCondition
 1917{
 1918    virtual HRESULT STDMETHODCALLTYPE GetChild(
 1919        IUIAutomationCondition **condition) = 0;
 1920
 1921};
 1922#ifdef __CRT_UUID_DECL
 1923__CRT_UUID_DECL(IUIAutomationNotCondition, 0xf528b657, 0x847b, 0x498c, 0x88,0x96, 0xd5,0x2b,0x56,0x54,0x07,0xa1)
 1924#endif
 1925#else
 1926typedef struct IUIAutomationNotConditionVtbl {
 1927    BEGIN_INTERFACE
 1928
 1929    /*** IUnknown methods ***/
 1930    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 1931        IUIAutomationNotCondition *This,
 1932        REFIID riid,
 1933        void **ppvObject);
 1934
 1935    ULONG (STDMETHODCALLTYPE *AddRef)(
 1936        IUIAutomationNotCondition *This);
 1937
 1938    ULONG (STDMETHODCALLTYPE *Release)(
 1939        IUIAutomationNotCondition *This);
 1940
 1941    /*** IUIAutomationNotCondition methods ***/
 1942    HRESULT (STDMETHODCALLTYPE *GetChild)(
 1943        IUIAutomationNotCondition *This,
 1944        IUIAutomationCondition **condition);
 1945
 1946    END_INTERFACE
 1947} IUIAutomationNotConditionVtbl;
 1948
 1949interface IUIAutomationNotCondition {
 1950    CONST_VTBL IUIAutomationNotConditionVtbl* lpVtbl;
 1951};
 1952
 1953#ifdef COBJMACROS
 1954#ifndef WIDL_C_INLINE_WRAPPERS
 1955/*** IUnknown methods ***/
 1956#define IUIAutomationNotCondition_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 1957#define IUIAutomationNotCondition_AddRef(This) (This)->lpVtbl->AddRef(This)
 1958#define IUIAutomationNotCondition_Release(This) (This)->lpVtbl->Release(This)
 1959/*** IUIAutomationNotCondition methods ***/
 1960#define IUIAutomationNotCondition_GetChild(This,condition) (This)->lpVtbl->GetChild(This,condition)
 1961#else
 1962/*** IUnknown methods ***/
 1963static inline HRESULT IUIAutomationNotCondition_QueryInterface(IUIAutomationNotCondition* This,REFIID riid,void **ppvObject) {
 1964    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 1965}
 1966static inline ULONG IUIAutomationNotCondition_AddRef(IUIAutomationNotCondition* This) {
 1967    return This->lpVtbl->AddRef(This);
 1968}
 1969static inline ULONG IUIAutomationNotCondition_Release(IUIAutomationNotCondition* This) {
 1970    return This->lpVtbl->Release(This);
 1971}
 1972/*** IUIAutomationNotCondition methods ***/
 1973static inline HRESULT IUIAutomationNotCondition_GetChild(IUIAutomationNotCondition* This,IUIAutomationCondition **condition) {
 1974    return This->lpVtbl->GetChild(This,condition);
 1975}
 1976#endif
 1977#endif
 1978
 1979#endif
 1980
 1981
 1982#endif  /* __IUIAutomationNotCondition_INTERFACE_DEFINED__ */
 1983
 1984/*****************************************************************************
 1985 * IUIAutomationCacheRequest interface
 1986 */
 1987#ifndef __IUIAutomationCacheRequest_INTERFACE_DEFINED__
 1988#define __IUIAutomationCacheRequest_INTERFACE_DEFINED__
 1989
 1990DEFINE_GUID(IID_IUIAutomationCacheRequest, 0xb32a92b5, 0xbc25, 0x4078, 0x9c,0x08, 0xd7,0xee,0x95,0xc4,0x8e,0x03);
 1991#if defined(__cplusplus) && !defined(CINTERFACE)
 1992MIDL_INTERFACE("b32a92b5-bc25-4078-9c08-d7ee95c48e03")
 1993IUIAutomationCacheRequest : public IUnknown
 1994{
 1995    virtual HRESULT STDMETHODCALLTYPE AddProperty(
 1996        PROPERTYID propertyId) = 0;
 1997
 1998    virtual HRESULT STDMETHODCALLTYPE AddPattern(
 1999        PATTERNID patternId) = 0;
 2000
 2001    virtual HRESULT STDMETHODCALLTYPE Clone(
 2002        IUIAutomationCacheRequest **clonedRequest) = 0;
 2003
 2004    virtual HRESULT STDMETHODCALLTYPE get_TreeScope(
 2005        enum TreeScope *scope) = 0;
 2006
 2007    virtual HRESULT STDMETHODCALLTYPE put_TreeScope(
 2008        enum TreeScope scope) = 0;
 2009
 2010    virtual HRESULT STDMETHODCALLTYPE get_TreeFilter(
 2011        IUIAutomationCondition **filter) = 0;
 2012
 2013    virtual HRESULT STDMETHODCALLTYPE put_TreeFilter(
 2014        IUIAutomationCondition *filter) = 0;
 2015
 2016    virtual HRESULT STDMETHODCALLTYPE get_AutomationElementMode(
 2017        enum AutomationElementMode *mode) = 0;
 2018
 2019    virtual HRESULT STDMETHODCALLTYPE put_AutomationElementMode(
 2020        enum AutomationElementMode mode) = 0;
 2021
 2022};
 2023#ifdef __CRT_UUID_DECL
 2024__CRT_UUID_DECL(IUIAutomationCacheRequest, 0xb32a92b5, 0xbc25, 0x4078, 0x9c,0x08, 0xd7,0xee,0x95,0xc4,0x8e,0x03)
 2025#endif
 2026#else
 2027typedef struct IUIAutomationCacheRequestVtbl {
 2028    BEGIN_INTERFACE
 2029
 2030    /*** IUnknown methods ***/
 2031    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 2032        IUIAutomationCacheRequest *This,
 2033        REFIID riid,
 2034        void **ppvObject);
 2035
 2036    ULONG (STDMETHODCALLTYPE *AddRef)(
 2037        IUIAutomationCacheRequest *This);
 2038
 2039    ULONG (STDMETHODCALLTYPE *Release)(
 2040        IUIAutomationCacheRequest *This);
 2041
 2042    /*** IUIAutomationCacheRequest methods ***/
 2043    HRESULT (STDMETHODCALLTYPE *AddProperty)(
 2044        IUIAutomationCacheRequest *This,
 2045        PROPERTYID propertyId);
 2046
 2047    HRESULT (STDMETHODCALLTYPE *AddPattern)(
 2048        IUIAutomationCacheRequest *This,
 2049        PATTERNID patternId);
 2050
 2051    HRESULT (STDMETHODCALLTYPE *Clone)(
 2052        IUIAutomationCacheRequest *This,
 2053        IUIAutomationCacheRequest **clonedRequest);
 2054
 2055    HRESULT (STDMETHODCALLTYPE *get_TreeScope)(
 2056        IUIAutomationCacheRequest *This,
 2057        enum TreeScope *scope);
 2058
 2059    HRESULT (STDMETHODCALLTYPE *put_TreeScope)(
 2060        IUIAutomationCacheRequest *This,
 2061        enum TreeScope scope);
 2062
 2063    HRESULT (STDMETHODCALLTYPE *get_TreeFilter)(
 2064        IUIAutomationCacheRequest *This,
 2065        IUIAutomationCondition **filter);
 2066
 2067    HRESULT (STDMETHODCALLTYPE *put_TreeFilter)(
 2068        IUIAutomationCacheRequest *This,
 2069        IUIAutomationCondition *filter);
 2070
 2071    HRESULT (STDMETHODCALLTYPE *get_AutomationElementMode)(
 2072        IUIAutomationCacheRequest *This,
 2073        enum AutomationElementMode *mode);
 2074
 2075    HRESULT (STDMETHODCALLTYPE *put_AutomationElementMode)(
 2076        IUIAutomationCacheRequest *This,
 2077        enum AutomationElementMode mode);
 2078
 2079    END_INTERFACE
 2080} IUIAutomationCacheRequestVtbl;
 2081
 2082interface IUIAutomationCacheRequest {
 2083    CONST_VTBL IUIAutomationCacheRequestVtbl* lpVtbl;
 2084};
 2085
 2086#ifdef COBJMACROS
 2087#ifndef WIDL_C_INLINE_WRAPPERS
 2088/*** IUnknown methods ***/
 2089#define IUIAutomationCacheRequest_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 2090#define IUIAutomationCacheRequest_AddRef(This) (This)->lpVtbl->AddRef(This)
 2091#define IUIAutomationCacheRequest_Release(This) (This)->lpVtbl->Release(This)
 2092/*** IUIAutomationCacheRequest methods ***/
 2093#define IUIAutomationCacheRequest_AddProperty(This,propertyId) (This)->lpVtbl->AddProperty(This,propertyId)
 2094#define IUIAutomationCacheRequest_AddPattern(This,patternId) (This)->lpVtbl->AddPattern(This,patternId)
 2095#define IUIAutomationCacheRequest_Clone(This,clonedRequest) (This)->lpVtbl->Clone(This,clonedRequest)
 2096#define IUIAutomationCacheRequest_get_TreeScope(This,scope) (This)->lpVtbl->get_TreeScope(This,scope)
 2097#define IUIAutomationCacheRequest_put_TreeScope(This,scope) (This)->lpVtbl->put_TreeScope(This,scope)
 2098#define IUIAutomationCacheRequest_get_TreeFilter(This,filter) (This)->lpVtbl->get_TreeFilter(This,filter)
 2099#define IUIAutomationCacheRequest_put_TreeFilter(This,filter) (This)->lpVtbl->put_TreeFilter(This,filter)
 2100#define IUIAutomationCacheRequest_get_AutomationElementMode(This,mode) (This)->lpVtbl->get_AutomationElementMode(This,mode)
 2101#define IUIAutomationCacheRequest_put_AutomationElementMode(This,mode) (This)->lpVtbl->put_AutomationElementMode(This,mode)
 2102#else
 2103/*** IUnknown methods ***/
 2104static inline HRESULT IUIAutomationCacheRequest_QueryInterface(IUIAutomationCacheRequest* This,REFIID riid,void **ppvObject) {
 2105    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 2106}
 2107static inline ULONG IUIAutomationCacheRequest_AddRef(IUIAutomationCacheRequest* This) {
 2108    return This->lpVtbl->AddRef(This);
 2109}
 2110static inline ULONG IUIAutomationCacheRequest_Release(IUIAutomationCacheRequest* This) {
 2111    return This->lpVtbl->Release(This);
 2112}
 2113/*** IUIAutomationCacheRequest methods ***/
 2114static inline HRESULT IUIAutomationCacheRequest_AddProperty(IUIAutomationCacheRequest* This,PROPERTYID propertyId) {
 2115    return This->lpVtbl->AddProperty(This,propertyId);
 2116}
 2117static inline HRESULT IUIAutomationCacheRequest_AddPattern(IUIAutomationCacheRequest* This,PATTERNID patternId) {
 2118    return This->lpVtbl->AddPattern(This,patternId);
 2119}
 2120static inline HRESULT IUIAutomationCacheRequest_Clone(IUIAutomationCacheRequest* This,IUIAutomationCacheRequest **clonedRequest) {
 2121    return This->lpVtbl->Clone(This,clonedRequest);
 2122}
 2123static inline HRESULT IUIAutomationCacheRequest_get_TreeScope(IUIAutomationCacheRequest* This,enum TreeScope *scope) {
 2124    return This->lpVtbl->get_TreeScope(This,scope);
 2125}
 2126static inline HRESULT IUIAutomationCacheRequest_put_TreeScope(IUIAutomationCacheRequest* This,enum TreeScope scope) {
 2127    return This->lpVtbl->put_TreeScope(This,scope);
 2128}
 2129static inline HRESULT IUIAutomationCacheRequest_get_TreeFilter(IUIAutomationCacheRequest* This,IUIAutomationCondition **filter) {
 2130    return This->lpVtbl->get_TreeFilter(This,filter);
 2131}
 2132static inline HRESULT IUIAutomationCacheRequest_put_TreeFilter(IUIAutomationCacheRequest* This,IUIAutomationCondition *filter) {
 2133    return This->lpVtbl->put_TreeFilter(This,filter);
 2134}
 2135static inline HRESULT IUIAutomationCacheRequest_get_AutomationElementMode(IUIAutomationCacheRequest* This,enum AutomationElementMode *mode) {
 2136    return This->lpVtbl->get_AutomationElementMode(This,mode);
 2137}
 2138static inline HRESULT IUIAutomationCacheRequest_put_AutomationElementMode(IUIAutomationCacheRequest* This,enum AutomationElementMode mode) {
 2139    return This->lpVtbl->put_AutomationElementMode(This,mode);
 2140}
 2141#endif
 2142#endif
 2143
 2144#endif
 2145
 2146
 2147#endif  /* __IUIAutomationCacheRequest_INTERFACE_DEFINED__ */
 2148
 2149/*****************************************************************************
 2150 * IUIAutomationTreeWalker interface
 2151 */
 2152#ifndef __IUIAutomationTreeWalker_INTERFACE_DEFINED__
 2153#define __IUIAutomationTreeWalker_INTERFACE_DEFINED__
 2154
 2155DEFINE_GUID(IID_IUIAutomationTreeWalker, 0x4042c624, 0x389c, 0x4afc, 0xa6,0x30, 0x9d,0xf8,0x54,0xa5,0x41,0xfc);
 2156#if defined(__cplusplus) && !defined(CINTERFACE)
 2157MIDL_INTERFACE("4042c624-389c-4afc-a630-9df854a541fc")
 2158IUIAutomationTreeWalker : public IUnknown
 2159{
 2160    virtual HRESULT STDMETHODCALLTYPE GetParentElement(
 2161        IUIAutomationElement *element,
 2162        IUIAutomationElement **parent) = 0;
 2163
 2164    virtual HRESULT STDMETHODCALLTYPE GetFirstChildElement(
 2165        IUIAutomationElement *element,
 2166        IUIAutomationElement **first) = 0;
 2167
 2168    virtual HRESULT STDMETHODCALLTYPE GetLastChildElement(
 2169        IUIAutomationElement *element,
 2170        IUIAutomationElement **last) = 0;
 2171
 2172    virtual HRESULT STDMETHODCALLTYPE GetNextSiblingElement(
 2173        IUIAutomationElement *element,
 2174        IUIAutomationElement **next) = 0;
 2175
 2176    virtual HRESULT STDMETHODCALLTYPE GetPreviousSiblingElement(
 2177        IUIAutomationElement *element,
 2178        IUIAutomationElement **previous) = 0;
 2179
 2180    virtual HRESULT STDMETHODCALLTYPE NormalizeElement(
 2181        IUIAutomationElement *element,
 2182        IUIAutomationElement **normalized) = 0;
 2183
 2184    virtual HRESULT STDMETHODCALLTYPE GetParentElementBuildCache(
 2185        IUIAutomationElement *element,
 2186        IUIAutomationCacheRequest *cacheRequest,
 2187        IUIAutomationElement **parent) = 0;
 2188
 2189    virtual HRESULT STDMETHODCALLTYPE GetFirstChildElementBuildCache(
 2190        IUIAutomationElement *element,
 2191        IUIAutomationCacheRequest *cacheRequest,
 2192        IUIAutomationElement **first) = 0;
 2193
 2194    virtual HRESULT STDMETHODCALLTYPE GetLastChildElementBuildCache(
 2195        IUIAutomationElement *element,
 2196        IUIAutomationCacheRequest *cacheRequest,
 2197        IUIAutomationElement **last) = 0;
 2198
 2199    virtual HRESULT STDMETHODCALLTYPE GetNextSiblingElementBuildCache(
 2200        IUIAutomationElement *element,
 2201        IUIAutomationCacheRequest *cacheRequest,
 2202        IUIAutomationElement **next) = 0;
 2203
 2204    virtual HRESULT STDMETHODCALLTYPE GetPreviousSiblingElementBuildCache(
 2205        IUIAutomationElement *element,
 2206        IUIAutomationCacheRequest *cacheRequest,
 2207        IUIAutomationElement **previous) = 0;
 2208
 2209    virtual HRESULT STDMETHODCALLTYPE NormalizeElementBuildCache(
 2210        IUIAutomationElement *element,
 2211        IUIAutomationCacheRequest *cacheRequest,
 2212        IUIAutomationElement **normalized) = 0;
 2213
 2214    virtual HRESULT STDMETHODCALLTYPE get_Condition(
 2215        IUIAutomationCondition **condition) = 0;
 2216
 2217};
 2218#ifdef __CRT_UUID_DECL
 2219__CRT_UUID_DECL(IUIAutomationTreeWalker, 0x4042c624, 0x389c, 0x4afc, 0xa6,0x30, 0x9d,0xf8,0x54,0xa5,0x41,0xfc)
 2220#endif
 2221#else
 2222typedef struct IUIAutomationTreeWalkerVtbl {
 2223    BEGIN_INTERFACE
 2224
 2225    /*** IUnknown methods ***/
 2226    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 2227        IUIAutomationTreeWalker *This,
 2228        REFIID riid,
 2229        void **ppvObject);
 2230
 2231    ULONG (STDMETHODCALLTYPE *AddRef)(
 2232        IUIAutomationTreeWalker *This);
 2233
 2234    ULONG (STDMETHODCALLTYPE *Release)(
 2235        IUIAutomationTreeWalker *This);
 2236
 2237    /*** IUIAutomationTreeWalker methods ***/
 2238    HRESULT (STDMETHODCALLTYPE *GetParentElement)(
 2239        IUIAutomationTreeWalker *This,
 2240        IUIAutomationElement *element,
 2241        IUIAutomationElement **parent);
 2242
 2243    HRESULT (STDMETHODCALLTYPE *GetFirstChildElement)(
 2244        IUIAutomationTreeWalker *This,
 2245        IUIAutomationElement *element,
 2246        IUIAutomationElement **first);
 2247
 2248    HRESULT (STDMETHODCALLTYPE *GetLastChildElement)(
 2249        IUIAutomationTreeWalker *This,
 2250        IUIAutomationElement *element,
 2251        IUIAutomationElement **last);
 2252
 2253    HRESULT (STDMETHODCALLTYPE *GetNextSiblingElement)(
 2254        IUIAutomationTreeWalker *This,
 2255        IUIAutomationElement *element,
 2256        IUIAutomationElement **next);
 2257
 2258    HRESULT (STDMETHODCALLTYPE *GetPreviousSiblingElement)(
 2259        IUIAutomationTreeWalker *This,
 2260        IUIAutomationElement *element,
 2261        IUIAutomationElement **previous);
 2262
 2263    HRESULT (STDMETHODCALLTYPE *NormalizeElement)(
 2264        IUIAutomationTreeWalker *This,
 2265        IUIAutomationElement *element,
 2266        IUIAutomationElement **normalized);
 2267
 2268    HRESULT (STDMETHODCALLTYPE *GetParentElementBuildCache)(
 2269        IUIAutomationTreeWalker *This,
 2270        IUIAutomationElement *element,
 2271        IUIAutomationCacheRequest *cacheRequest,
 2272        IUIAutomationElement **parent);
 2273
 2274    HRESULT (STDMETHODCALLTYPE *GetFirstChildElementBuildCache)(
 2275        IUIAutomationTreeWalker *This,
 2276        IUIAutomationElement *element,
 2277        IUIAutomationCacheRequest *cacheRequest,
 2278        IUIAutomationElement **first);
 2279
 2280    HRESULT (STDMETHODCALLTYPE *GetLastChildElementBuildCache)(
 2281        IUIAutomationTreeWalker *This,
 2282        IUIAutomationElement *element,
 2283        IUIAutomationCacheRequest *cacheRequest,
 2284        IUIAutomationElement **last);
 2285
 2286    HRESULT (STDMETHODCALLTYPE *GetNextSiblingElementBuildCache)(
 2287        IUIAutomationTreeWalker *This,
 2288        IUIAutomationElement *element,
 2289        IUIAutomationCacheRequest *cacheRequest,
 2290        IUIAutomationElement **next);
 2291
 2292    HRESULT (STDMETHODCALLTYPE *GetPreviousSiblingElementBuildCache)(
 2293        IUIAutomationTreeWalker *This,
 2294        IUIAutomationElement *element,
 2295        IUIAutomationCacheRequest *cacheRequest,
 2296        IUIAutomationElement **previous);
 2297
 2298    HRESULT (STDMETHODCALLTYPE *NormalizeElementBuildCache)(
 2299        IUIAutomationTreeWalker *This,
 2300        IUIAutomationElement *element,
 2301        IUIAutomationCacheRequest *cacheRequest,
 2302        IUIAutomationElement **normalized);
 2303
 2304    HRESULT (STDMETHODCALLTYPE *get_Condition)(
 2305        IUIAutomationTreeWalker *This,
 2306        IUIAutomationCondition **condition);
 2307
 2308    END_INTERFACE
 2309} IUIAutomationTreeWalkerVtbl;
 2310
 2311interface IUIAutomationTreeWalker {
 2312    CONST_VTBL IUIAutomationTreeWalkerVtbl* lpVtbl;
 2313};
 2314
 2315#ifdef COBJMACROS
 2316#ifndef WIDL_C_INLINE_WRAPPERS
 2317/*** IUnknown methods ***/
 2318#define IUIAutomationTreeWalker_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 2319#define IUIAutomationTreeWalker_AddRef(This) (This)->lpVtbl->AddRef(This)
 2320#define IUIAutomationTreeWalker_Release(This) (This)->lpVtbl->Release(This)
 2321/*** IUIAutomationTreeWalker methods ***/
 2322#define IUIAutomationTreeWalker_GetParentElement(This,element,parent) (This)->lpVtbl->GetParentElement(This,element,parent)
 2323#define IUIAutomationTreeWalker_GetFirstChildElement(This,element,first) (This)->lpVtbl->GetFirstChildElement(This,element,first)
 2324#define IUIAutomationTreeWalker_GetLastChildElement(This,element,last) (This)->lpVtbl->GetLastChildElement(This,element,last)
 2325#define IUIAutomationTreeWalker_GetNextSiblingElement(This,element,next) (This)->lpVtbl->GetNextSiblingElement(This,element,next)
 2326#define IUIAutomationTreeWalker_GetPreviousSiblingElement(This,element,previous) (This)->lpVtbl->GetPreviousSiblingElement(This,element,previous)
 2327#define IUIAutomationTreeWalker_NormalizeElement(This,element,normalized) (This)->lpVtbl->NormalizeElement(This,element,normalized)
 2328#define IUIAutomationTreeWalker_GetParentElementBuildCache(This,element,cacheRequest,parent) (This)->lpVtbl->GetParentElementBuildCache(This,element,cacheRequest,parent)
 2329#define IUIAutomationTreeWalker_GetFirstChildElementBuildCache(This,element,cacheRequest,first) (This)->lpVtbl->GetFirstChildElementBuildCache(This,element,cacheRequest,first)
 2330#define IUIAutomationTreeWalker_GetLastChildElementBuildCache(This,element,cacheRequest,last) (This)->lpVtbl->GetLastChildElementBuildCache(This,element,cacheRequest,last)
 2331#define IUIAutomationTreeWalker_GetNextSiblingElementBuildCache(This,element,cacheRequest,next) (This)->lpVtbl->GetNextSiblingElementBuildCache(This,element,cacheRequest,next)
 2332#define IUIAutomationTreeWalker_GetPreviousSiblingElementBuildCache(This,element,cacheRequest,previous) (This)->lpVtbl->GetPreviousSiblingElementBuildCache(This,element,cacheRequest,previous)
 2333#define IUIAutomationTreeWalker_NormalizeElementBuildCache(This,element,cacheRequest,normalized) (This)->lpVtbl->NormalizeElementBuildCache(This,element,cacheRequest,normalized)
 2334#define IUIAutomationTreeWalker_get_Condition(This,condition) (This)->lpVtbl->get_Condition(This,condition)
 2335#else
 2336/*** IUnknown methods ***/
 2337static inline HRESULT IUIAutomationTreeWalker_QueryInterface(IUIAutomationTreeWalker* This,REFIID riid,void **ppvObject) {
 2338    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 2339}
 2340static inline ULONG IUIAutomationTreeWalker_AddRef(IUIAutomationTreeWalker* This) {
 2341    return This->lpVtbl->AddRef(This);
 2342}
 2343static inline ULONG IUIAutomationTreeWalker_Release(IUIAutomationTreeWalker* This) {
 2344    return This->lpVtbl->Release(This);
 2345}
 2346/*** IUIAutomationTreeWalker methods ***/
 2347static inline HRESULT IUIAutomationTreeWalker_GetParentElement(IUIAutomationTreeWalker* This,IUIAutomationElement *element,IUIAutomationElement **parent) {
 2348    return This->lpVtbl->GetParentElement(This,element,parent);
 2349}
 2350static inline HRESULT IUIAutomationTreeWalker_GetFirstChildElement(IUIAutomationTreeWalker* This,IUIAutomationElement *element,IUIAutomationElement **first) {
 2351    return This->lpVtbl->GetFirstChildElement(This,element,first);
 2352}
 2353static inline HRESULT IUIAutomationTreeWalker_GetLastChildElement(IUIAutomationTreeWalker* This,IUIAutomationElement *element,IUIAutomationElement **last) {
 2354    return This->lpVtbl->GetLastChildElement(This,element,last);
 2355}
 2356static inline HRESULT IUIAutomationTreeWalker_GetNextSiblingElement(IUIAutomationTreeWalker* This,IUIAutomationElement *element,IUIAutomationElement **next) {
 2357    return This->lpVtbl->GetNextSiblingElement(This,element,next);
 2358}
 2359static inline HRESULT IUIAutomationTreeWalker_GetPreviousSiblingElement(IUIAutomationTreeWalker* This,IUIAutomationElement *element,IUIAutomationElement **previous) {
 2360    return This->lpVtbl->GetPreviousSiblingElement(This,element,previous);
 2361}
 2362static inline HRESULT IUIAutomationTreeWalker_NormalizeElement(IUIAutomationTreeWalker* This,IUIAutomationElement *element,IUIAutomationElement **normalized) {
 2363    return This->lpVtbl->NormalizeElement(This,element,normalized);
 2364}
 2365static inline HRESULT IUIAutomationTreeWalker_GetParentElementBuildCache(IUIAutomationTreeWalker* This,IUIAutomationElement *element,IUIAutomationCacheRequest *cacheRequest,IUIAutomationElement **parent) {
 2366    return This->lpVtbl->GetParentElementBuildCache(This,element,cacheRequest,parent);
 2367}
 2368static inline HRESULT IUIAutomationTreeWalker_GetFirstChildElementBuildCache(IUIAutomationTreeWalker* This,IUIAutomationElement *element,IUIAutomationCacheRequest *cacheRequest,IUIAutomationElement **first) {
 2369    return This->lpVtbl->GetFirstChildElementBuildCache(This,element,cacheRequest,first);
 2370}
 2371static inline HRESULT IUIAutomationTreeWalker_GetLastChildElementBuildCache(IUIAutomationTreeWalker* This,IUIAutomationElement *element,IUIAutomationCacheRequest *cacheRequest,IUIAutomationElement **last) {
 2372    return This->lpVtbl->GetLastChildElementBuildCache(This,element,cacheRequest,last);
 2373}
 2374static inline HRESULT IUIAutomationTreeWalker_GetNextSiblingElementBuildCache(IUIAutomationTreeWalker* This,IUIAutomationElement *element,IUIAutomationCacheRequest *cacheRequest,IUIAutomationElement **next) {
 2375    return This->lpVtbl->GetNextSiblingElementBuildCache(This,element,cacheRequest,next);
 2376}
 2377static inline HRESULT IUIAutomationTreeWalker_GetPreviousSiblingElementBuildCache(IUIAutomationTreeWalker* This,IUIAutomationElement *element,IUIAutomationCacheRequest *cacheRequest,IUIAutomationElement **previous) {
 2378    return This->lpVtbl->GetPreviousSiblingElementBuildCache(This,element,cacheRequest,previous);
 2379}
 2380static inline HRESULT IUIAutomationTreeWalker_NormalizeElementBuildCache(IUIAutomationTreeWalker* This,IUIAutomationElement *element,IUIAutomationCacheRequest *cacheRequest,IUIAutomationElement **normalized) {
 2381    return This->lpVtbl->NormalizeElementBuildCache(This,element,cacheRequest,normalized);
 2382}
 2383static inline HRESULT IUIAutomationTreeWalker_get_Condition(IUIAutomationTreeWalker* This,IUIAutomationCondition **condition) {
 2384    return This->lpVtbl->get_Condition(This,condition);
 2385}
 2386#endif
 2387#endif
 2388
 2389#endif
 2390
 2391
 2392#endif  /* __IUIAutomationTreeWalker_INTERFACE_DEFINED__ */
 2393
 2394/*****************************************************************************
 2395 * IUIAutomationEventHandler interface
 2396 */
 2397#ifndef __IUIAutomationEventHandler_INTERFACE_DEFINED__
 2398#define __IUIAutomationEventHandler_INTERFACE_DEFINED__
 2399
 2400DEFINE_GUID(IID_IUIAutomationEventHandler, 0x146c3c17, 0xf12e, 0x4e22, 0x8c,0x27, 0xf8,0x94,0xb9,0xb7,0x9c,0x69);
 2401#if defined(__cplusplus) && !defined(CINTERFACE)
 2402MIDL_INTERFACE("146c3c17-f12e-4e22-8c27-f894b9b79c69")
 2403IUIAutomationEventHandler : public IUnknown
 2404{
 2405    virtual HRESULT STDMETHODCALLTYPE HandleAutomationEvent(
 2406        IUIAutomationElement *sender,
 2407        EVENTID eventId) = 0;
 2408
 2409};
 2410#ifdef __CRT_UUID_DECL
 2411__CRT_UUID_DECL(IUIAutomationEventHandler, 0x146c3c17, 0xf12e, 0x4e22, 0x8c,0x27, 0xf8,0x94,0xb9,0xb7,0x9c,0x69)
 2412#endif
 2413#else
 2414typedef struct IUIAutomationEventHandlerVtbl {
 2415    BEGIN_INTERFACE
 2416
 2417    /*** IUnknown methods ***/
 2418    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 2419        IUIAutomationEventHandler *This,
 2420        REFIID riid,
 2421        void **ppvObject);
 2422
 2423    ULONG (STDMETHODCALLTYPE *AddRef)(
 2424        IUIAutomationEventHandler *This);
 2425
 2426    ULONG (STDMETHODCALLTYPE *Release)(
 2427        IUIAutomationEventHandler *This);
 2428
 2429    /*** IUIAutomationEventHandler methods ***/
 2430    HRESULT (STDMETHODCALLTYPE *HandleAutomationEvent)(
 2431        IUIAutomationEventHandler *This,
 2432        IUIAutomationElement *sender,
 2433        EVENTID eventId);
 2434
 2435    END_INTERFACE
 2436} IUIAutomationEventHandlerVtbl;
 2437
 2438interface IUIAutomationEventHandler {
 2439    CONST_VTBL IUIAutomationEventHandlerVtbl* lpVtbl;
 2440};
 2441
 2442#ifdef COBJMACROS
 2443#ifndef WIDL_C_INLINE_WRAPPERS
 2444/*** IUnknown methods ***/
 2445#define IUIAutomationEventHandler_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 2446#define IUIAutomationEventHandler_AddRef(This) (This)->lpVtbl->AddRef(This)
 2447#define IUIAutomationEventHandler_Release(This) (This)->lpVtbl->Release(This)
 2448/*** IUIAutomationEventHandler methods ***/
 2449#define IUIAutomationEventHandler_HandleAutomationEvent(This,sender,eventId) (This)->lpVtbl->HandleAutomationEvent(This,sender,eventId)
 2450#else
 2451/*** IUnknown methods ***/
 2452static inline HRESULT IUIAutomationEventHandler_QueryInterface(IUIAutomationEventHandler* This,REFIID riid,void **ppvObject) {
 2453    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 2454}
 2455static inline ULONG IUIAutomationEventHandler_AddRef(IUIAutomationEventHandler* This) {
 2456    return This->lpVtbl->AddRef(This);
 2457}
 2458static inline ULONG IUIAutomationEventHandler_Release(IUIAutomationEventHandler* This) {
 2459    return This->lpVtbl->Release(This);
 2460}
 2461/*** IUIAutomationEventHandler methods ***/
 2462static inline HRESULT IUIAutomationEventHandler_HandleAutomationEvent(IUIAutomationEventHandler* This,IUIAutomationElement *sender,EVENTID eventId) {
 2463    return This->lpVtbl->HandleAutomationEvent(This,sender,eventId);
 2464}
 2465#endif
 2466#endif
 2467
 2468#endif
 2469
 2470
 2471#endif  /* __IUIAutomationEventHandler_INTERFACE_DEFINED__ */
 2472
 2473/*****************************************************************************
 2474 * IUIAutomationPropertyChangedEventHandler interface
 2475 */
 2476#ifndef __IUIAutomationPropertyChangedEventHandler_INTERFACE_DEFINED__
 2477#define __IUIAutomationPropertyChangedEventHandler_INTERFACE_DEFINED__
 2478
 2479DEFINE_GUID(IID_IUIAutomationPropertyChangedEventHandler, 0x40cd37d4, 0xc756, 0x4b0c, 0x8c,0x6f, 0xbd,0xdf,0xee,0xb1,0x3b,0x50);
 2480#if defined(__cplusplus) && !defined(CINTERFACE)
 2481MIDL_INTERFACE("40cd37d4-c756-4b0c-8c6f-bddfeeb13b50")
 2482IUIAutomationPropertyChangedEventHandler : public IUnknown
 2483{
 2484    virtual HRESULT STDMETHODCALLTYPE HandlePropertyChangedEvent(
 2485        IUIAutomationElement *sender,
 2486        PROPERTYID propertyId,
 2487        VARIANT newValue) = 0;
 2488
 2489};
 2490#ifdef __CRT_UUID_DECL
 2491__CRT_UUID_DECL(IUIAutomationPropertyChangedEventHandler, 0x40cd37d4, 0xc756, 0x4b0c, 0x8c,0x6f, 0xbd,0xdf,0xee,0xb1,0x3b,0x50)
 2492#endif
 2493#else
 2494typedef struct IUIAutomationPropertyChangedEventHandlerVtbl {
 2495    BEGIN_INTERFACE
 2496
 2497    /*** IUnknown methods ***/
 2498    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 2499        IUIAutomationPropertyChangedEventHandler *This,
 2500        REFIID riid,
 2501        void **ppvObject);
 2502
 2503    ULONG (STDMETHODCALLTYPE *AddRef)(
 2504        IUIAutomationPropertyChangedEventHandler *This);
 2505
 2506    ULONG (STDMETHODCALLTYPE *Release)(
 2507        IUIAutomationPropertyChangedEventHandler *This);
 2508
 2509    /*** IUIAutomationPropertyChangedEventHandler methods ***/
 2510    HRESULT (STDMETHODCALLTYPE *HandlePropertyChangedEvent)(
 2511        IUIAutomationPropertyChangedEventHandler *This,
 2512        IUIAutomationElement *sender,
 2513        PROPERTYID propertyId,
 2514        VARIANT newValue);
 2515
 2516    END_INTERFACE
 2517} IUIAutomationPropertyChangedEventHandlerVtbl;
 2518
 2519interface IUIAutomationPropertyChangedEventHandler {
 2520    CONST_VTBL IUIAutomationPropertyChangedEventHandlerVtbl* lpVtbl;
 2521};
 2522
 2523#ifdef COBJMACROS
 2524#ifndef WIDL_C_INLINE_WRAPPERS
 2525/*** IUnknown methods ***/
 2526#define IUIAutomationPropertyChangedEventHandler_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 2527#define IUIAutomationPropertyChangedEventHandler_AddRef(This) (This)->lpVtbl->AddRef(This)
 2528#define IUIAutomationPropertyChangedEventHandler_Release(This) (This)->lpVtbl->Release(This)
 2529/*** IUIAutomationPropertyChangedEventHandler methods ***/
 2530#define IUIAutomationPropertyChangedEventHandler_HandlePropertyChangedEvent(This,sender,propertyId,newValue) (This)->lpVtbl->HandlePropertyChangedEvent(This,sender,propertyId,newValue)
 2531#else
 2532/*** IUnknown methods ***/
 2533static inline HRESULT IUIAutomationPropertyChangedEventHandler_QueryInterface(IUIAutomationPropertyChangedEventHandler* This,REFIID riid,void **ppvObject) {
 2534    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 2535}
 2536static inline ULONG IUIAutomationPropertyChangedEventHandler_AddRef(IUIAutomationPropertyChangedEventHandler* This) {
 2537    return This->lpVtbl->AddRef(This);
 2538}
 2539static inline ULONG IUIAutomationPropertyChangedEventHandler_Release(IUIAutomationPropertyChangedEventHandler* This) {
 2540    return This->lpVtbl->Release(This);
 2541}
 2542/*** IUIAutomationPropertyChangedEventHandler methods ***/
 2543static inline HRESULT IUIAutomationPropertyChangedEventHandler_HandlePropertyChangedEvent(IUIAutomationPropertyChangedEventHandler* This,IUIAutomationElement *sender,PROPERTYID propertyId,VARIANT newValue) {
 2544    return This->lpVtbl->HandlePropertyChangedEvent(This,sender,propertyId,newValue);
 2545}
 2546#endif
 2547#endif
 2548
 2549#endif
 2550
 2551
 2552#endif  /* __IUIAutomationPropertyChangedEventHandler_INTERFACE_DEFINED__ */
 2553
 2554/*****************************************************************************
 2555 * IUIAutomationStructureChangedEventHandler interface
 2556 */
 2557#ifndef __IUIAutomationStructureChangedEventHandler_INTERFACE_DEFINED__
 2558#define __IUIAutomationStructureChangedEventHandler_INTERFACE_DEFINED__
 2559
 2560DEFINE_GUID(IID_IUIAutomationStructureChangedEventHandler, 0xe81d1b4e, 0x11c5, 0x42f8, 0x97,0x54, 0xe7,0x03,0x6c,0x79,0xf0,0x54);
 2561#if defined(__cplusplus) && !defined(CINTERFACE)
 2562MIDL_INTERFACE("e81d1b4e-11c5-42f8-9754-e7036c79f054")
 2563IUIAutomationStructureChangedEventHandler : public IUnknown
 2564{
 2565    virtual HRESULT STDMETHODCALLTYPE HandleStructureChangedEvent(
 2566        IUIAutomationElement *sender,
 2567        enum StructureChangeType changeType,
 2568        SAFEARRAY *runtimeId) = 0;
 2569
 2570};
 2571#ifdef __CRT_UUID_DECL
 2572__CRT_UUID_DECL(IUIAutomationStructureChangedEventHandler, 0xe81d1b4e, 0x11c5, 0x42f8, 0x97,0x54, 0xe7,0x03,0x6c,0x79,0xf0,0x54)
 2573#endif
 2574#else
 2575typedef struct IUIAutomationStructureChangedEventHandlerVtbl {
 2576    BEGIN_INTERFACE
 2577
 2578    /*** IUnknown methods ***/
 2579    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 2580        IUIAutomationStructureChangedEventHandler *This,
 2581        REFIID riid,
 2582        void **ppvObject);
 2583
 2584    ULONG (STDMETHODCALLTYPE *AddRef)(
 2585        IUIAutomationStructureChangedEventHandler *This);
 2586
 2587    ULONG (STDMETHODCALLTYPE *Release)(
 2588        IUIAutomationStructureChangedEventHandler *This);
 2589
 2590    /*** IUIAutomationStructureChangedEventHandler methods ***/
 2591    HRESULT (STDMETHODCALLTYPE *HandleStructureChangedEvent)(
 2592        IUIAutomationStructureChangedEventHandler *This,
 2593        IUIAutomationElement *sender,
 2594        enum StructureChangeType changeType,
 2595        SAFEARRAY *runtimeId);
 2596
 2597    END_INTERFACE
 2598} IUIAutomationStructureChangedEventHandlerVtbl;
 2599
 2600interface IUIAutomationStructureChangedEventHandler {
 2601    CONST_VTBL IUIAutomationStructureChangedEventHandlerVtbl* lpVtbl;
 2602};
 2603
 2604#ifdef COBJMACROS
 2605#ifndef WIDL_C_INLINE_WRAPPERS
 2606/*** IUnknown methods ***/
 2607#define IUIAutomationStructureChangedEventHandler_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 2608#define IUIAutomationStructureChangedEventHandler_AddRef(This) (This)->lpVtbl->AddRef(This)
 2609#define IUIAutomationStructureChangedEventHandler_Release(This) (This)->lpVtbl->Release(This)
 2610/*** IUIAutomationStructureChangedEventHandler methods ***/
 2611#define IUIAutomationStructureChangedEventHandler_HandleStructureChangedEvent(This,sender,changeType,runtimeId) (This)->lpVtbl->HandleStructureChangedEvent(This,sender,changeType,runtimeId)
 2612#else
 2613/*** IUnknown methods ***/
 2614static inline HRESULT IUIAutomationStructureChangedEventHandler_QueryInterface(IUIAutomationStructureChangedEventHandler* This,REFIID riid,void **ppvObject) {
 2615    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 2616}
 2617static inline ULONG IUIAutomationStructureChangedEventHandler_AddRef(IUIAutomationStructureChangedEventHandler* This) {
 2618    return This->lpVtbl->AddRef(This);
 2619}
 2620static inline ULONG IUIAutomationStructureChangedEventHandler_Release(IUIAutomationStructureChangedEventHandler* This) {
 2621    return This->lpVtbl->Release(This);
 2622}
 2623/*** IUIAutomationStructureChangedEventHandler methods ***/
 2624static inline HRESULT IUIAutomationStructureChangedEventHandler_HandleStructureChangedEvent(IUIAutomationStructureChangedEventHandler* This,IUIAutomationElement *sender,enum StructureChangeType changeType,SAFEARRAY *runtimeId) {
 2625    return This->lpVtbl->HandleStructureChangedEvent(This,sender,changeType,runtimeId);
 2626}
 2627#endif
 2628#endif
 2629
 2630#endif
 2631
 2632
 2633#endif  /* __IUIAutomationStructureChangedEventHandler_INTERFACE_DEFINED__ */
 2634
 2635/*****************************************************************************
 2636 * IUIAutomationFocusChangedEventHandler interface
 2637 */
 2638#ifndef __IUIAutomationFocusChangedEventHandler_INTERFACE_DEFINED__
 2639#define __IUIAutomationFocusChangedEventHandler_INTERFACE_DEFINED__
 2640
 2641DEFINE_GUID(IID_IUIAutomationFocusChangedEventHandler, 0xc270f6b5, 0x5c69, 0x4290, 0x97,0x45, 0x7a,0x7f,0x97,0x16,0x94,0x68);
 2642#if defined(__cplusplus) && !defined(CINTERFACE)
 2643MIDL_INTERFACE("c270f6b5-5c69-4290-9745-7a7f97169468")
 2644IUIAutomationFocusChangedEventHandler : public IUnknown
 2645{
 2646    virtual HRESULT STDMETHODCALLTYPE HandleFocusChangedEvent(
 2647        IUIAutomationElement *sender) = 0;
 2648
 2649};
 2650#ifdef __CRT_UUID_DECL
 2651__CRT_UUID_DECL(IUIAutomationFocusChangedEventHandler, 0xc270f6b5, 0x5c69, 0x4290, 0x97,0x45, 0x7a,0x7f,0x97,0x16,0x94,0x68)
 2652#endif
 2653#else
 2654typedef struct IUIAutomationFocusChangedEventHandlerVtbl {
 2655    BEGIN_INTERFACE
 2656
 2657    /*** IUnknown methods ***/
 2658    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 2659        IUIAutomationFocusChangedEventHandler *This,
 2660        REFIID riid,
 2661        void **ppvObject);
 2662
 2663    ULONG (STDMETHODCALLTYPE *AddRef)(
 2664        IUIAutomationFocusChangedEventHandler *This);
 2665
 2666    ULONG (STDMETHODCALLTYPE *Release)(
 2667        IUIAutomationFocusChangedEventHandler *This);
 2668
 2669    /*** IUIAutomationFocusChangedEventHandler methods ***/
 2670    HRESULT (STDMETHODCALLTYPE *HandleFocusChangedEvent)(
 2671        IUIAutomationFocusChangedEventHandler *This,
 2672        IUIAutomationElement *sender);
 2673
 2674    END_INTERFACE
 2675} IUIAutomationFocusChangedEventHandlerVtbl;
 2676
 2677interface IUIAutomationFocusChangedEventHandler {
 2678    CONST_VTBL IUIAutomationFocusChangedEventHandlerVtbl* lpVtbl;
 2679};
 2680
 2681#ifdef COBJMACROS
 2682#ifndef WIDL_C_INLINE_WRAPPERS
 2683/*** IUnknown methods ***/
 2684#define IUIAutomationFocusChangedEventHandler_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 2685#define IUIAutomationFocusChangedEventHandler_AddRef(This) (This)->lpVtbl->AddRef(This)
 2686#define IUIAutomationFocusChangedEventHandler_Release(This) (This)->lpVtbl->Release(This)
 2687/*** IUIAutomationFocusChangedEventHandler methods ***/
 2688#define IUIAutomationFocusChangedEventHandler_HandleFocusChangedEvent(This,sender) (This)->lpVtbl->HandleFocusChangedEvent(This,sender)
 2689#else
 2690/*** IUnknown methods ***/
 2691static inline HRESULT IUIAutomationFocusChangedEventHandler_QueryInterface(IUIAutomationFocusChangedEventHandler* This,REFIID riid,void **ppvObject) {
 2692    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 2693}
 2694static inline ULONG IUIAutomationFocusChangedEventHandler_AddRef(IUIAutomationFocusChangedEventHandler* This) {
 2695    return This->lpVtbl->AddRef(This);
 2696}
 2697static inline ULONG IUIAutomationFocusChangedEventHandler_Release(IUIAutomationFocusChangedEventHandler* This) {
 2698    return This->lpVtbl->Release(This);
 2699}
 2700/*** IUIAutomationFocusChangedEventHandler methods ***/
 2701static inline HRESULT IUIAutomationFocusChangedEventHandler_HandleFocusChangedEvent(IUIAutomationFocusChangedEventHandler* This,IUIAutomationElement *sender) {
 2702    return This->lpVtbl->HandleFocusChangedEvent(This,sender);
 2703}
 2704#endif
 2705#endif
 2706
 2707#endif
 2708
 2709
 2710#endif  /* __IUIAutomationFocusChangedEventHandler_INTERFACE_DEFINED__ */
 2711
 2712/*****************************************************************************
 2713 * IUIAutomationTextEditTextChangedEventHandler interface
 2714 */
 2715#ifndef __IUIAutomationTextEditTextChangedEventHandler_INTERFACE_DEFINED__
 2716#define __IUIAutomationTextEditTextChangedEventHandler_INTERFACE_DEFINED__
 2717
 2718DEFINE_GUID(IID_IUIAutomationTextEditTextChangedEventHandler, 0x92faa680, 0xe704, 0x4156, 0x93,0x1a, 0xe3,0x2d,0x5b,0xb3,0x8f,0x3f);
 2719#if defined(__cplusplus) && !defined(CINTERFACE)
 2720MIDL_INTERFACE("92faa680-e704-4156-931a-e32d5bb38f3f")
 2721IUIAutomationTextEditTextChangedEventHandler : public IUnknown
 2722{
 2723    virtual HRESULT STDMETHODCALLTYPE HandleTextEditTextChangedEvent(
 2724        IUIAutomationElement *sender,
 2725        enum TextEditChangeType textEditChangeType,
 2726        SAFEARRAY *eventStrings) = 0;
 2727
 2728};
 2729#ifdef __CRT_UUID_DECL
 2730__CRT_UUID_DECL(IUIAutomationTextEditTextChangedEventHandler, 0x92faa680, 0xe704, 0x4156, 0x93,0x1a, 0xe3,0x2d,0x5b,0xb3,0x8f,0x3f)
 2731#endif
 2732#else
 2733typedef struct IUIAutomationTextEditTextChangedEventHandlerVtbl {
 2734    BEGIN_INTERFACE
 2735
 2736    /*** IUnknown methods ***/
 2737    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 2738        IUIAutomationTextEditTextChangedEventHandler *This,
 2739        REFIID riid,
 2740        void **ppvObject);
 2741
 2742    ULONG (STDMETHODCALLTYPE *AddRef)(
 2743        IUIAutomationTextEditTextChangedEventHandler *This);
 2744
 2745    ULONG (STDMETHODCALLTYPE *Release)(
 2746        IUIAutomationTextEditTextChangedEventHandler *This);
 2747
 2748    /*** IUIAutomationTextEditTextChangedEventHandler methods ***/
 2749    HRESULT (STDMETHODCALLTYPE *HandleTextEditTextChangedEvent)(
 2750        IUIAutomationTextEditTextChangedEventHandler *This,
 2751        IUIAutomationElement *sender,
 2752        enum TextEditChangeType textEditChangeType,
 2753        SAFEARRAY *eventStrings);
 2754
 2755    END_INTERFACE
 2756} IUIAutomationTextEditTextChangedEventHandlerVtbl;
 2757
 2758interface IUIAutomationTextEditTextChangedEventHandler {
 2759    CONST_VTBL IUIAutomationTextEditTextChangedEventHandlerVtbl* lpVtbl;
 2760};
 2761
 2762#ifdef COBJMACROS
 2763#ifndef WIDL_C_INLINE_WRAPPERS
 2764/*** IUnknown methods ***/
 2765#define IUIAutomationTextEditTextChangedEventHandler_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 2766#define IUIAutomationTextEditTextChangedEventHandler_AddRef(This) (This)->lpVtbl->AddRef(This)
 2767#define IUIAutomationTextEditTextChangedEventHandler_Release(This) (This)->lpVtbl->Release(This)
 2768/*** IUIAutomationTextEditTextChangedEventHandler methods ***/
 2769#define IUIAutomationTextEditTextChangedEventHandler_HandleTextEditTextChangedEvent(This,sender,textEditChangeType,eventStrings) (This)->lpVtbl->HandleTextEditTextChangedEvent(This,sender,textEditChangeType,eventStrings)
 2770#else
 2771/*** IUnknown methods ***/
 2772static inline HRESULT IUIAutomationTextEditTextChangedEventHandler_QueryInterface(IUIAutomationTextEditTextChangedEventHandler* This,REFIID riid,void **ppvObject) {
 2773    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 2774}
 2775static inline ULONG IUIAutomationTextEditTextChangedEventHandler_AddRef(IUIAutomationTextEditTextChangedEventHandler* This) {
 2776    return This->lpVtbl->AddRef(This);
 2777}
 2778static inline ULONG IUIAutomationTextEditTextChangedEventHandler_Release(IUIAutomationTextEditTextChangedEventHandler* This) {
 2779    return This->lpVtbl->Release(This);
 2780}
 2781/*** IUIAutomationTextEditTextChangedEventHandler methods ***/
 2782static inline HRESULT IUIAutomationTextEditTextChangedEventHandler_HandleTextEditTextChangedEvent(IUIAutomationTextEditTextChangedEventHandler* This,IUIAutomationElement *sender,enum TextEditChangeType textEditChangeType,SAFEARRAY *eventStrings) {
 2783    return This->lpVtbl->HandleTextEditTextChangedEvent(This,sender,textEditChangeType,eventStrings);
 2784}
 2785#endif
 2786#endif
 2787
 2788#endif
 2789
 2790
 2791#endif  /* __IUIAutomationTextEditTextChangedEventHandler_INTERFACE_DEFINED__ */
 2792
 2793/*****************************************************************************
 2794 * IUIAutomationChangesEventHandler interface
 2795 */
 2796#ifndef __IUIAutomationChangesEventHandler_INTERFACE_DEFINED__
 2797#define __IUIAutomationChangesEventHandler_INTERFACE_DEFINED__
 2798
 2799DEFINE_GUID(IID_IUIAutomationChangesEventHandler, 0x58edca55, 0x2c3e, 0x4980, 0xb1,0xb9, 0x56,0xc1,0x7f,0x27,0xa2,0xa0);
 2800#if defined(__cplusplus) && !defined(CINTERFACE)
 2801MIDL_INTERFACE("58edca55-2c3e-4980-b1b9-56c17f27a2a0")
 2802IUIAutomationChangesEventHandler : public IUnknown
 2803{
 2804    virtual HRESULT STDMETHODCALLTYPE HandleChangesEvent(
 2805        IUIAutomationElement *sender,
 2806        struct UiaChangeInfo *uiaChanges,
 2807        int changesCount) = 0;
 2808
 2809};
 2810#ifdef __CRT_UUID_DECL
 2811__CRT_UUID_DECL(IUIAutomationChangesEventHandler, 0x58edca55, 0x2c3e, 0x4980, 0xb1,0xb9, 0x56,0xc1,0x7f,0x27,0xa2,0xa0)
 2812#endif
 2813#else
 2814typedef struct IUIAutomationChangesEventHandlerVtbl {
 2815    BEGIN_INTERFACE
 2816
 2817    /*** IUnknown methods ***/
 2818    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 2819        IUIAutomationChangesEventHandler *This,
 2820        REFIID riid,
 2821        void **ppvObject);
 2822
 2823    ULONG (STDMETHODCALLTYPE *AddRef)(
 2824        IUIAutomationChangesEventHandler *This);
 2825
 2826    ULONG (STDMETHODCALLTYPE *Release)(
 2827        IUIAutomationChangesEventHandler *This);
 2828
 2829    /*** IUIAutomationChangesEventHandler methods ***/
 2830    HRESULT (STDMETHODCALLTYPE *HandleChangesEvent)(
 2831        IUIAutomationChangesEventHandler *This,
 2832        IUIAutomationElement *sender,
 2833        struct UiaChangeInfo *uiaChanges,
 2834        int changesCount);
 2835
 2836    END_INTERFACE
 2837} IUIAutomationChangesEventHandlerVtbl;
 2838
 2839interface IUIAutomationChangesEventHandler {
 2840    CONST_VTBL IUIAutomationChangesEventHandlerVtbl* lpVtbl;
 2841};
 2842
 2843#ifdef COBJMACROS
 2844#ifndef WIDL_C_INLINE_WRAPPERS
 2845/*** IUnknown methods ***/
 2846#define IUIAutomationChangesEventHandler_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 2847#define IUIAutomationChangesEventHandler_AddRef(This) (This)->lpVtbl->AddRef(This)
 2848#define IUIAutomationChangesEventHandler_Release(This) (This)->lpVtbl->Release(This)
 2849/*** IUIAutomationChangesEventHandler methods ***/
 2850#define IUIAutomationChangesEventHandler_HandleChangesEvent(This,sender,uiaChanges,changesCount) (This)->lpVtbl->HandleChangesEvent(This,sender,uiaChanges,changesCount)
 2851#else
 2852/*** IUnknown methods ***/
 2853static inline HRESULT IUIAutomationChangesEventHandler_QueryInterface(IUIAutomationChangesEventHandler* This,REFIID riid,void **ppvObject) {
 2854    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 2855}
 2856static inline ULONG IUIAutomationChangesEventHandler_AddRef(IUIAutomationChangesEventHandler* This) {
 2857    return This->lpVtbl->AddRef(This);
 2858}
 2859static inline ULONG IUIAutomationChangesEventHandler_Release(IUIAutomationChangesEventHandler* This) {
 2860    return This->lpVtbl->Release(This);
 2861}
 2862/*** IUIAutomationChangesEventHandler methods ***/
 2863static inline HRESULT IUIAutomationChangesEventHandler_HandleChangesEvent(IUIAutomationChangesEventHandler* This,IUIAutomationElement *sender,struct UiaChangeInfo *uiaChanges,int changesCount) {
 2864    return This->lpVtbl->HandleChangesEvent(This,sender,uiaChanges,changesCount);
 2865}
 2866#endif
 2867#endif
 2868
 2869#endif
 2870
 2871
 2872#endif  /* __IUIAutomationChangesEventHandler_INTERFACE_DEFINED__ */
 2873
 2874/*****************************************************************************
 2875 * IUIAutomationNotificationEventHandler interface
 2876 */
 2877#ifndef __IUIAutomationNotificationEventHandler_INTERFACE_DEFINED__
 2878#define __IUIAutomationNotificationEventHandler_INTERFACE_DEFINED__
 2879
 2880DEFINE_GUID(IID_IUIAutomationNotificationEventHandler, 0xc7cb2637, 0xe6c2, 0x4d0c, 0x85,0xde, 0x49,0x48,0xc0,0x21,0x75,0xc7);
 2881#if defined(__cplusplus) && !defined(CINTERFACE)
 2882MIDL_INTERFACE("c7cb2637-e6c2-4d0c-85de-4948c02175c7")
 2883IUIAutomationNotificationEventHandler : public IUnknown
 2884{
 2885    virtual HRESULT STDMETHODCALLTYPE HandleNotificationEvent(
 2886        IUIAutomationElement *sender,
 2887        enum NotificationKind notificationKind,
 2888        enum NotificationProcessing notificationProcessing,
 2889        BSTR displayString,
 2890        BSTR activityId) = 0;
 2891
 2892};
 2893#ifdef __CRT_UUID_DECL
 2894__CRT_UUID_DECL(IUIAutomationNotificationEventHandler, 0xc7cb2637, 0xe6c2, 0x4d0c, 0x85,0xde, 0x49,0x48,0xc0,0x21,0x75,0xc7)
 2895#endif
 2896#else
 2897typedef struct IUIAutomationNotificationEventHandlerVtbl {
 2898    BEGIN_INTERFACE
 2899
 2900    /*** IUnknown methods ***/
 2901    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 2902        IUIAutomationNotificationEventHandler *This,
 2903        REFIID riid,
 2904        void **ppvObject);
 2905
 2906    ULONG (STDMETHODCALLTYPE *AddRef)(
 2907        IUIAutomationNotificationEventHandler *This);
 2908
 2909    ULONG (STDMETHODCALLTYPE *Release)(
 2910        IUIAutomationNotificationEventHandler *This);
 2911
 2912    /*** IUIAutomationNotificationEventHandler methods ***/
 2913    HRESULT (STDMETHODCALLTYPE *HandleNotificationEvent)(
 2914        IUIAutomationNotificationEventHandler *This,
 2915        IUIAutomationElement *sender,
 2916        enum NotificationKind notificationKind,
 2917        enum NotificationProcessing notificationProcessing,
 2918        BSTR displayString,
 2919        BSTR activityId);
 2920
 2921    END_INTERFACE
 2922} IUIAutomationNotificationEventHandlerVtbl;
 2923
 2924interface IUIAutomationNotificationEventHandler {
 2925    CONST_VTBL IUIAutomationNotificationEventHandlerVtbl* lpVtbl;
 2926};
 2927
 2928#ifdef COBJMACROS
 2929#ifndef WIDL_C_INLINE_WRAPPERS
 2930/*** IUnknown methods ***/
 2931#define IUIAutomationNotificationEventHandler_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 2932#define IUIAutomationNotificationEventHandler_AddRef(This) (This)->lpVtbl->AddRef(This)
 2933#define IUIAutomationNotificationEventHandler_Release(This) (This)->lpVtbl->Release(This)
 2934/*** IUIAutomationNotificationEventHandler methods ***/
 2935#define IUIAutomationNotificationEventHandler_HandleNotificationEvent(This,sender,notificationKind,notificationProcessing,displayString,activityId) (This)->lpVtbl->HandleNotificationEvent(This,sender,notificationKind,notificationProcessing,displayString,activityId)
 2936#else
 2937/*** IUnknown methods ***/
 2938static inline HRESULT IUIAutomationNotificationEventHandler_QueryInterface(IUIAutomationNotificationEventHandler* This,REFIID riid,void **ppvObject) {
 2939    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 2940}
 2941static inline ULONG IUIAutomationNotificationEventHandler_AddRef(IUIAutomationNotificationEventHandler* This) {
 2942    return This->lpVtbl->AddRef(This);
 2943}
 2944static inline ULONG IUIAutomationNotificationEventHandler_Release(IUIAutomationNotificationEventHandler* This) {
 2945    return This->lpVtbl->Release(This);
 2946}
 2947/*** IUIAutomationNotificationEventHandler methods ***/
 2948static inline HRESULT IUIAutomationNotificationEventHandler_HandleNotificationEvent(IUIAutomationNotificationEventHandler* This,IUIAutomationElement *sender,enum NotificationKind notificationKind,enum NotificationProcessing notificationProcessing,BSTR displayString,BSTR activityId) {
 2949    return This->lpVtbl->HandleNotificationEvent(This,sender,notificationKind,notificationProcessing,displayString,activityId);
 2950}
 2951#endif
 2952#endif
 2953
 2954#endif
 2955
 2956
 2957#endif  /* __IUIAutomationNotificationEventHandler_INTERFACE_DEFINED__ */
 2958
 2959/*****************************************************************************
 2960 * IUIAutomationInvokePattern interface
 2961 */
 2962#ifndef __IUIAutomationInvokePattern_INTERFACE_DEFINED__
 2963#define __IUIAutomationInvokePattern_INTERFACE_DEFINED__
 2964
 2965DEFINE_GUID(IID_IUIAutomationInvokePattern, 0xfb377fbe, 0x8ea6, 0x46d5, 0x9c,0x73, 0x64,0x99,0x64,0x2d,0x30,0x59);
 2966#if defined(__cplusplus) && !defined(CINTERFACE)
 2967MIDL_INTERFACE("fb377fbe-8ea6-46d5-9c73-6499642d3059")
 2968IUIAutomationInvokePattern : public IUnknown
 2969{
 2970    virtual HRESULT STDMETHODCALLTYPE Invoke(
 2971        ) = 0;
 2972
 2973};
 2974#ifdef __CRT_UUID_DECL
 2975__CRT_UUID_DECL(IUIAutomationInvokePattern, 0xfb377fbe, 0x8ea6, 0x46d5, 0x9c,0x73, 0x64,0x99,0x64,0x2d,0x30,0x59)
 2976#endif
 2977#else
 2978typedef struct IUIAutomationInvokePatternVtbl {
 2979    BEGIN_INTERFACE
 2980
 2981    /*** IUnknown methods ***/
 2982    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 2983        IUIAutomationInvokePattern *This,
 2984        REFIID riid,
 2985        void **ppvObject);
 2986
 2987    ULONG (STDMETHODCALLTYPE *AddRef)(
 2988        IUIAutomationInvokePattern *This);
 2989
 2990    ULONG (STDMETHODCALLTYPE *Release)(
 2991        IUIAutomationInvokePattern *This);
 2992
 2993    /*** IUIAutomationInvokePattern methods ***/
 2994    HRESULT (STDMETHODCALLTYPE *Invoke)(
 2995        IUIAutomationInvokePattern *This);
 2996
 2997    END_INTERFACE
 2998} IUIAutomationInvokePatternVtbl;
 2999
 3000interface IUIAutomationInvokePattern {
 3001    CONST_VTBL IUIAutomationInvokePatternVtbl* lpVtbl;
 3002};
 3003
 3004#ifdef COBJMACROS
 3005#ifndef WIDL_C_INLINE_WRAPPERS
 3006/*** IUnknown methods ***/
 3007#define IUIAutomationInvokePattern_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 3008#define IUIAutomationInvokePattern_AddRef(This) (This)->lpVtbl->AddRef(This)
 3009#define IUIAutomationInvokePattern_Release(This) (This)->lpVtbl->Release(This)
 3010/*** IUIAutomationInvokePattern methods ***/
 3011#define IUIAutomationInvokePattern_Invoke(This) (This)->lpVtbl->Invoke(This)
 3012#else
 3013/*** IUnknown methods ***/
 3014static inline HRESULT IUIAutomationInvokePattern_QueryInterface(IUIAutomationInvokePattern* This,REFIID riid,void **ppvObject) {
 3015    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 3016}
 3017static inline ULONG IUIAutomationInvokePattern_AddRef(IUIAutomationInvokePattern* This) {
 3018    return This->lpVtbl->AddRef(This);
 3019}
 3020static inline ULONG IUIAutomationInvokePattern_Release(IUIAutomationInvokePattern* This) {
 3021    return This->lpVtbl->Release(This);
 3022}
 3023/*** IUIAutomationInvokePattern methods ***/
 3024static inline HRESULT IUIAutomationInvokePattern_Invoke(IUIAutomationInvokePattern* This) {
 3025    return This->lpVtbl->Invoke(This);
 3026}
 3027#endif
 3028#endif
 3029
 3030#endif
 3031
 3032
 3033#endif  /* __IUIAutomationInvokePattern_INTERFACE_DEFINED__ */
 3034
 3035/*****************************************************************************
 3036 * IUIAutomationDockPattern interface
 3037 */
 3038#ifndef __IUIAutomationDockPattern_INTERFACE_DEFINED__
 3039#define __IUIAutomationDockPattern_INTERFACE_DEFINED__
 3040
 3041DEFINE_GUID(IID_IUIAutomationDockPattern, 0xfde5ef97, 0x1464, 0x48f6, 0x90,0xbf, 0x43,0xd0,0x94,0x8e,0x86,0xec);
 3042#if defined(__cplusplus) && !defined(CINTERFACE)
 3043MIDL_INTERFACE("fde5ef97-1464-48f6-90bf-43d0948e86ec")
 3044IUIAutomationDockPattern : public IUnknown
 3045{
 3046    virtual HRESULT STDMETHODCALLTYPE SetDockPosition(
 3047        enum DockPosition dockPos) = 0;
 3048
 3049    virtual HRESULT STDMETHODCALLTYPE get_CurrentDockPosition(
 3050        enum DockPosition *retVal) = 0;
 3051
 3052    virtual HRESULT STDMETHODCALLTYPE get_CachedDockPosition(
 3053        enum DockPosition *retVal) = 0;
 3054
 3055};
 3056#ifdef __CRT_UUID_DECL
 3057__CRT_UUID_DECL(IUIAutomationDockPattern, 0xfde5ef97, 0x1464, 0x48f6, 0x90,0xbf, 0x43,0xd0,0x94,0x8e,0x86,0xec)
 3058#endif
 3059#else
 3060typedef struct IUIAutomationDockPatternVtbl {
 3061    BEGIN_INTERFACE
 3062
 3063    /*** IUnknown methods ***/
 3064    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 3065        IUIAutomationDockPattern *This,
 3066        REFIID riid,
 3067        void **ppvObject);
 3068
 3069    ULONG (STDMETHODCALLTYPE *AddRef)(
 3070        IUIAutomationDockPattern *This);
 3071
 3072    ULONG (STDMETHODCALLTYPE *Release)(
 3073        IUIAutomationDockPattern *This);
 3074
 3075    /*** IUIAutomationDockPattern methods ***/
 3076    HRESULT (STDMETHODCALLTYPE *SetDockPosition)(
 3077        IUIAutomationDockPattern *This,
 3078        enum DockPosition dockPos);
 3079
 3080    HRESULT (STDMETHODCALLTYPE *get_CurrentDockPosition)(
 3081        IUIAutomationDockPattern *This,
 3082        enum DockPosition *retVal);
 3083
 3084    HRESULT (STDMETHODCALLTYPE *get_CachedDockPosition)(
 3085        IUIAutomationDockPattern *This,
 3086        enum DockPosition *retVal);
 3087
 3088    END_INTERFACE
 3089} IUIAutomationDockPatternVtbl;
 3090
 3091interface IUIAutomationDockPattern {
 3092    CONST_VTBL IUIAutomationDockPatternVtbl* lpVtbl;
 3093};
 3094
 3095#ifdef COBJMACROS
 3096#ifndef WIDL_C_INLINE_WRAPPERS
 3097/*** IUnknown methods ***/
 3098#define IUIAutomationDockPattern_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 3099#define IUIAutomationDockPattern_AddRef(This) (This)->lpVtbl->AddRef(This)
 3100#define IUIAutomationDockPattern_Release(This) (This)->lpVtbl->Release(This)
 3101/*** IUIAutomationDockPattern methods ***/
 3102#define IUIAutomationDockPattern_SetDockPosition(This,dockPos) (This)->lpVtbl->SetDockPosition(This,dockPos)
 3103#define IUIAutomationDockPattern_get_CurrentDockPosition(This,retVal) (This)->lpVtbl->get_CurrentDockPosition(This,retVal)
 3104#define IUIAutomationDockPattern_get_CachedDockPosition(This,retVal) (This)->lpVtbl->get_CachedDockPosition(This,retVal)
 3105#else
 3106/*** IUnknown methods ***/
 3107static inline HRESULT IUIAutomationDockPattern_QueryInterface(IUIAutomationDockPattern* This,REFIID riid,void **ppvObject) {
 3108    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 3109}
 3110static inline ULONG IUIAutomationDockPattern_AddRef(IUIAutomationDockPattern* This) {
 3111    return This->lpVtbl->AddRef(This);
 3112}
 3113static inline ULONG IUIAutomationDockPattern_Release(IUIAutomationDockPattern* This) {
 3114    return This->lpVtbl->Release(This);
 3115}
 3116/*** IUIAutomationDockPattern methods ***/
 3117static inline HRESULT IUIAutomationDockPattern_SetDockPosition(IUIAutomationDockPattern* This,enum DockPosition dockPos) {
 3118    return This->lpVtbl->SetDockPosition(This,dockPos);
 3119}
 3120static inline HRESULT IUIAutomationDockPattern_get_CurrentDockPosition(IUIAutomationDockPattern* This,enum DockPosition *retVal) {
 3121    return This->lpVtbl->get_CurrentDockPosition(This,retVal);
 3122}
 3123static inline HRESULT IUIAutomationDockPattern_get_CachedDockPosition(IUIAutomationDockPattern* This,enum DockPosition *retVal) {
 3124    return This->lpVtbl->get_CachedDockPosition(This,retVal);
 3125}
 3126#endif
 3127#endif
 3128
 3129#endif
 3130
 3131
 3132#endif  /* __IUIAutomationDockPattern_INTERFACE_DEFINED__ */
 3133
 3134/*****************************************************************************
 3135 * IUIAutomationExpandCollapsePattern interface
 3136 */
 3137#ifndef __IUIAutomationExpandCollapsePattern_INTERFACE_DEFINED__
 3138#define __IUIAutomationExpandCollapsePattern_INTERFACE_DEFINED__
 3139
 3140DEFINE_GUID(IID_IUIAutomationExpandCollapsePattern, 0x619be086, 0x1f4e, 0x4ee4, 0xba,0xfa, 0x21,0x01,0x28,0x73,0x87,0x30);
 3141#if defined(__cplusplus) && !defined(CINTERFACE)
 3142MIDL_INTERFACE("619be086-1f4e-4ee4-bafa-210128738730")
 3143IUIAutomationExpandCollapsePattern : public IUnknown
 3144{
 3145    virtual HRESULT STDMETHODCALLTYPE Expand(
 3146        ) = 0;
 3147
 3148    virtual HRESULT STDMETHODCALLTYPE Collapse(
 3149        ) = 0;
 3150
 3151    virtual HRESULT STDMETHODCALLTYPE get_CurrentExpandCollapseState(
 3152        enum ExpandCollapseState *retVal) = 0;
 3153
 3154    virtual HRESULT STDMETHODCALLTYPE get_CachedExpandCollapseState(
 3155        enum ExpandCollapseState *retVal) = 0;
 3156
 3157};
 3158#ifdef __CRT_UUID_DECL
 3159__CRT_UUID_DECL(IUIAutomationExpandCollapsePattern, 0x619be086, 0x1f4e, 0x4ee4, 0xba,0xfa, 0x21,0x01,0x28,0x73,0x87,0x30)
 3160#endif
 3161#else
 3162typedef struct IUIAutomationExpandCollapsePatternVtbl {
 3163    BEGIN_INTERFACE
 3164
 3165    /*** IUnknown methods ***/
 3166    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 3167        IUIAutomationExpandCollapsePattern *This,
 3168        REFIID riid,
 3169        void **ppvObject);
 3170
 3171    ULONG (STDMETHODCALLTYPE *AddRef)(
 3172        IUIAutomationExpandCollapsePattern *This);
 3173
 3174    ULONG (STDMETHODCALLTYPE *Release)(
 3175        IUIAutomationExpandCollapsePattern *This);
 3176
 3177    /*** IUIAutomationExpandCollapsePattern methods ***/
 3178    HRESULT (STDMETHODCALLTYPE *Expand)(
 3179        IUIAutomationExpandCollapsePattern *This);
 3180
 3181    HRESULT (STDMETHODCALLTYPE *Collapse)(
 3182        IUIAutomationExpandCollapsePattern *This);
 3183
 3184    HRESULT (STDMETHODCALLTYPE *get_CurrentExpandCollapseState)(
 3185        IUIAutomationExpandCollapsePattern *This,
 3186        enum ExpandCollapseState *retVal);
 3187
 3188    HRESULT (STDMETHODCALLTYPE *get_CachedExpandCollapseState)(
 3189        IUIAutomationExpandCollapsePattern *This,
 3190        enum ExpandCollapseState *retVal);
 3191
 3192    END_INTERFACE
 3193} IUIAutomationExpandCollapsePatternVtbl;
 3194
 3195interface IUIAutomationExpandCollapsePattern {
 3196    CONST_VTBL IUIAutomationExpandCollapsePatternVtbl* lpVtbl;
 3197};
 3198
 3199#ifdef COBJMACROS
 3200#ifndef WIDL_C_INLINE_WRAPPERS
 3201/*** IUnknown methods ***/
 3202#define IUIAutomationExpandCollapsePattern_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 3203#define IUIAutomationExpandCollapsePattern_AddRef(This) (This)->lpVtbl->AddRef(This)
 3204#define IUIAutomationExpandCollapsePattern_Release(This) (This)->lpVtbl->Release(This)
 3205/*** IUIAutomationExpandCollapsePattern methods ***/
 3206#define IUIAutomationExpandCollapsePattern_Expand(This) (This)->lpVtbl->Expand(This)
 3207#define IUIAutomationExpandCollapsePattern_Collapse(This) (This)->lpVtbl->Collapse(This)
 3208#define IUIAutomationExpandCollapsePattern_get_CurrentExpandCollapseState(This,retVal) (This)->lpVtbl->get_CurrentExpandCollapseState(This,retVal)
 3209#define IUIAutomationExpandCollapsePattern_get_CachedExpandCollapseState(This,retVal) (This)->lpVtbl->get_CachedExpandCollapseState(This,retVal)
 3210#else
 3211/*** IUnknown methods ***/
 3212static inline HRESULT IUIAutomationExpandCollapsePattern_QueryInterface(IUIAutomationExpandCollapsePattern* This,REFIID riid,void **ppvObject) {
 3213    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 3214}
 3215static inline ULONG IUIAutomationExpandCollapsePattern_AddRef(IUIAutomationExpandCollapsePattern* This) {
 3216    return This->lpVtbl->AddRef(This);
 3217}
 3218static inline ULONG IUIAutomationExpandCollapsePattern_Release(IUIAutomationExpandCollapsePattern* This) {
 3219    return This->lpVtbl->Release(This);
 3220}
 3221/*** IUIAutomationExpandCollapsePattern methods ***/
 3222static inline HRESULT IUIAutomationExpandCollapsePattern_Expand(IUIAutomationExpandCollapsePattern* This) {
 3223    return This->lpVtbl->Expand(This);
 3224}
 3225static inline HRESULT IUIAutomationExpandCollapsePattern_Collapse(IUIAutomationExpandCollapsePattern* This) {
 3226    return This->lpVtbl->Collapse(This);
 3227}
 3228static inline HRESULT IUIAutomationExpandCollapsePattern_get_CurrentExpandCollapseState(IUIAutomationExpandCollapsePattern* This,enum ExpandCollapseState *retVal) {
 3229    return This->lpVtbl->get_CurrentExpandCollapseState(This,retVal);
 3230}
 3231static inline HRESULT IUIAutomationExpandCollapsePattern_get_CachedExpandCollapseState(IUIAutomationExpandCollapsePattern* This,enum ExpandCollapseState *retVal) {
 3232    return This->lpVtbl->get_CachedExpandCollapseState(This,retVal);
 3233}
 3234#endif
 3235#endif
 3236
 3237#endif
 3238
 3239
 3240#endif  /* __IUIAutomationExpandCollapsePattern_INTERFACE_DEFINED__ */
 3241
 3242/*****************************************************************************
 3243 * IUIAutomationGridPattern interface
 3244 */
 3245#ifndef __IUIAutomationGridPattern_INTERFACE_DEFINED__
 3246#define __IUIAutomationGridPattern_INTERFACE_DEFINED__
 3247
 3248DEFINE_GUID(IID_IUIAutomationGridPattern, 0x414c3cdc, 0x856b, 0x4f5b, 0x85,0x38, 0x31,0x31,0xc6,0x30,0x25,0x50);
 3249#if defined(__cplusplus) && !defined(CINTERFACE)
 3250MIDL_INTERFACE("414c3cdc-856b-4f5b-8538-3131c6302550")
 3251IUIAutomationGridPattern : public IUnknown
 3252{
 3253    virtual HRESULT STDMETHODCALLTYPE GetItem(
 3254        int row,
 3255        int column,
 3256        IUIAutomationElement **element) = 0;
 3257
 3258    virtual HRESULT STDMETHODCALLTYPE get_CurrentRowCount(
 3259        int *retVal) = 0;
 3260
 3261    virtual HRESULT STDMETHODCALLTYPE get_CurrentColumnCount(
 3262        int *retVal) = 0;
 3263
 3264    virtual HRESULT STDMETHODCALLTYPE get_CachedRowCount(
 3265        int *retVal) = 0;
 3266
 3267    virtual HRESULT STDMETHODCALLTYPE get_CachedColumnCount(
 3268        int *retVal) = 0;
 3269
 3270};
 3271#ifdef __CRT_UUID_DECL
 3272__CRT_UUID_DECL(IUIAutomationGridPattern, 0x414c3cdc, 0x856b, 0x4f5b, 0x85,0x38, 0x31,0x31,0xc6,0x30,0x25,0x50)
 3273#endif
 3274#else
 3275typedef struct IUIAutomationGridPatternVtbl {
 3276    BEGIN_INTERFACE
 3277
 3278    /*** IUnknown methods ***/
 3279    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 3280        IUIAutomationGridPattern *This,
 3281        REFIID riid,
 3282        void **ppvObject);
 3283
 3284    ULONG (STDMETHODCALLTYPE *AddRef)(
 3285        IUIAutomationGridPattern *This);
 3286
 3287    ULONG (STDMETHODCALLTYPE *Release)(
 3288        IUIAutomationGridPattern *This);
 3289
 3290    /*** IUIAutomationGridPattern methods ***/
 3291    HRESULT (STDMETHODCALLTYPE *GetItem)(
 3292        IUIAutomationGridPattern *This,
 3293        int row,
 3294        int column,
 3295        IUIAutomationElement **element);
 3296
 3297    HRESULT (STDMETHODCALLTYPE *get_CurrentRowCount)(
 3298        IUIAutomationGridPattern *This,
 3299        int *retVal);
 3300
 3301    HRESULT (STDMETHODCALLTYPE *get_CurrentColumnCount)(
 3302        IUIAutomationGridPattern *This,
 3303        int *retVal);
 3304
 3305    HRESULT (STDMETHODCALLTYPE *get_CachedRowCount)(
 3306        IUIAutomationGridPattern *This,
 3307        int *retVal);
 3308
 3309    HRESULT (STDMETHODCALLTYPE *get_CachedColumnCount)(
 3310        IUIAutomationGridPattern *This,
 3311        int *retVal);
 3312
 3313    END_INTERFACE
 3314} IUIAutomationGridPatternVtbl;
 3315
 3316interface IUIAutomationGridPattern {
 3317    CONST_VTBL IUIAutomationGridPatternVtbl* lpVtbl;
 3318};
 3319
 3320#ifdef COBJMACROS
 3321#ifndef WIDL_C_INLINE_WRAPPERS
 3322/*** IUnknown methods ***/
 3323#define IUIAutomationGridPattern_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 3324#define IUIAutomationGridPattern_AddRef(This) (This)->lpVtbl->AddRef(This)
 3325#define IUIAutomationGridPattern_Release(This) (This)->lpVtbl->Release(This)
 3326/*** IUIAutomationGridPattern methods ***/
 3327#define IUIAutomationGridPattern_GetItem(This,row,column,element) (This)->lpVtbl->GetItem(This,row,column,element)
 3328#define IUIAutomationGridPattern_get_CurrentRowCount(This,retVal) (This)->lpVtbl->get_CurrentRowCount(This,retVal)
 3329#define IUIAutomationGridPattern_get_CurrentColumnCount(This,retVal) (This)->lpVtbl->get_CurrentColumnCount(This,retVal)
 3330#define IUIAutomationGridPattern_get_CachedRowCount(This,retVal) (This)->lpVtbl->get_CachedRowCount(This,retVal)
 3331#define IUIAutomationGridPattern_get_CachedColumnCount(This,retVal) (This)->lpVtbl->get_CachedColumnCount(This,retVal)
 3332#else
 3333/*** IUnknown methods ***/
 3334static inline HRESULT IUIAutomationGridPattern_QueryInterface(IUIAutomationGridPattern* This,REFIID riid,void **ppvObject) {
 3335    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 3336}
 3337static inline ULONG IUIAutomationGridPattern_AddRef(IUIAutomationGridPattern* This) {
 3338    return This->lpVtbl->AddRef(This);
 3339}
 3340static inline ULONG IUIAutomationGridPattern_Release(IUIAutomationGridPattern* This) {
 3341    return This->lpVtbl->Release(This);
 3342}
 3343/*** IUIAutomationGridPattern methods ***/
 3344static inline HRESULT IUIAutomationGridPattern_GetItem(IUIAutomationGridPattern* This,int row,int column,IUIAutomationElement **element) {
 3345    return This->lpVtbl->GetItem(This,row,column,element);
 3346}
 3347static inline HRESULT IUIAutomationGridPattern_get_CurrentRowCount(IUIAutomationGridPattern* This,int *retVal) {
 3348    return This->lpVtbl->get_CurrentRowCount(This,retVal);
 3349}
 3350static inline HRESULT IUIAutomationGridPattern_get_CurrentColumnCount(IUIAutomationGridPattern* This,int *retVal) {
 3351    return This->lpVtbl->get_CurrentColumnCount(This,retVal);
 3352}
 3353static inline HRESULT IUIAutomationGridPattern_get_CachedRowCount(IUIAutomationGridPattern* This,int *retVal) {
 3354    return This->lpVtbl->get_CachedRowCount(This,retVal);
 3355}
 3356static inline HRESULT IUIAutomationGridPattern_get_CachedColumnCount(IUIAutomationGridPattern* This,int *retVal) {
 3357    return This->lpVtbl->get_CachedColumnCount(This,retVal);
 3358}
 3359#endif
 3360#endif
 3361
 3362#endif
 3363
 3364
 3365#endif  /* __IUIAutomationGridPattern_INTERFACE_DEFINED__ */
 3366
 3367/*****************************************************************************
 3368 * IUIAutomationGridItemPattern interface
 3369 */
 3370#ifndef __IUIAutomationGridItemPattern_INTERFACE_DEFINED__
 3371#define __IUIAutomationGridItemPattern_INTERFACE_DEFINED__
 3372
 3373DEFINE_GUID(IID_IUIAutomationGridItemPattern, 0x78f8ef57, 0x66c3, 0x4e09, 0xbd,0x7c, 0xe7,0x9b,0x20,0x04,0x89,0x4d);
 3374#if defined(__cplusplus) && !defined(CINTERFACE)
 3375MIDL_INTERFACE("78f8ef57-66c3-4e09-bd7c-e79b2004894d")
 3376IUIAutomationGridItemPattern : public IUnknown
 3377{
 3378    virtual HRESULT STDMETHODCALLTYPE get_CurrentContainingGrid(
 3379        IUIAutomationElement **retVal) = 0;
 3380
 3381    virtual HRESULT STDMETHODCALLTYPE get_CurrentRow(
 3382        int *retVal) = 0;
 3383
 3384    virtual HRESULT STDMETHODCALLTYPE get_CurrentColumn(
 3385        int *retVal) = 0;
 3386
 3387    virtual HRESULT STDMETHODCALLTYPE get_CurrentRowSpan(
 3388        int *retVal) = 0;
 3389
 3390    virtual HRESULT STDMETHODCALLTYPE get_CurrentColumnSpan(
 3391        int *retVal) = 0;
 3392
 3393    virtual HRESULT STDMETHODCALLTYPE get_CachedContainingGrid(
 3394        IUIAutomationElement **retVal) = 0;
 3395
 3396    virtual HRESULT STDMETHODCALLTYPE get_CachedRow(
 3397        int *retVal) = 0;
 3398
 3399    virtual HRESULT STDMETHODCALLTYPE get_CachedColumn(
 3400        int *retVal) = 0;
 3401
 3402    virtual HRESULT STDMETHODCALLTYPE get_CachedRowSpan(
 3403        int *retVal) = 0;
 3404
 3405    virtual HRESULT STDMETHODCALLTYPE get_CachedColumnSpan(
 3406        int *retVal) = 0;
 3407
 3408};
 3409#ifdef __CRT_UUID_DECL
 3410__CRT_UUID_DECL(IUIAutomationGridItemPattern, 0x78f8ef57, 0x66c3, 0x4e09, 0xbd,0x7c, 0xe7,0x9b,0x20,0x04,0x89,0x4d)
 3411#endif
 3412#else
 3413typedef struct IUIAutomationGridItemPatternVtbl {
 3414    BEGIN_INTERFACE
 3415
 3416    /*** IUnknown methods ***/
 3417    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 3418        IUIAutomationGridItemPattern *This,
 3419        REFIID riid,
 3420        void **ppvObject);
 3421
 3422    ULONG (STDMETHODCALLTYPE *AddRef)(
 3423        IUIAutomationGridItemPattern *This);
 3424
 3425    ULONG (STDMETHODCALLTYPE *Release)(
 3426        IUIAutomationGridItemPattern *This);
 3427
 3428    /*** IUIAutomationGridItemPattern methods ***/
 3429    HRESULT (STDMETHODCALLTYPE *get_CurrentContainingGrid)(
 3430        IUIAutomationGridItemPattern *This,
 3431        IUIAutomationElement **retVal);
 3432
 3433    HRESULT (STDMETHODCALLTYPE *get_CurrentRow)(
 3434        IUIAutomationGridItemPattern *This,
 3435        int *retVal);
 3436
 3437    HRESULT (STDMETHODCALLTYPE *get_CurrentColumn)(
 3438        IUIAutomationGridItemPattern *This,
 3439        int *retVal);
 3440
 3441    HRESULT (STDMETHODCALLTYPE *get_CurrentRowSpan)(
 3442        IUIAutomationGridItemPattern *This,
 3443        int *retVal);
 3444
 3445    HRESULT (STDMETHODCALLTYPE *get_CurrentColumnSpan)(
 3446        IUIAutomationGridItemPattern *This,
 3447        int *retVal);
 3448
 3449    HRESULT (STDMETHODCALLTYPE *get_CachedContainingGrid)(
 3450        IUIAutomationGridItemPattern *This,
 3451        IUIAutomationElement **retVal);
 3452
 3453    HRESULT (STDMETHODCALLTYPE *get_CachedRow)(
 3454        IUIAutomationGridItemPattern *This,
 3455        int *retVal);
 3456
 3457    HRESULT (STDMETHODCALLTYPE *get_CachedColumn)(
 3458        IUIAutomationGridItemPattern *This,
 3459        int *retVal);
 3460
 3461    HRESULT (STDMETHODCALLTYPE *get_CachedRowSpan)(
 3462        IUIAutomationGridItemPattern *This,
 3463        int *retVal);
 3464
 3465    HRESULT (STDMETHODCALLTYPE *get_CachedColumnSpan)(
 3466        IUIAutomationGridItemPattern *This,
 3467        int *retVal);
 3468
 3469    END_INTERFACE
 3470} IUIAutomationGridItemPatternVtbl;
 3471
 3472interface IUIAutomationGridItemPattern {
 3473    CONST_VTBL IUIAutomationGridItemPatternVtbl* lpVtbl;
 3474};
 3475
 3476#ifdef COBJMACROS
 3477#ifndef WIDL_C_INLINE_WRAPPERS
 3478/*** IUnknown methods ***/
 3479#define IUIAutomationGridItemPattern_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 3480#define IUIAutomationGridItemPattern_AddRef(This) (This)->lpVtbl->AddRef(This)
 3481#define IUIAutomationGridItemPattern_Release(This) (This)->lpVtbl->Release(This)
 3482/*** IUIAutomationGridItemPattern methods ***/
 3483#define IUIAutomationGridItemPattern_get_CurrentContainingGrid(This,retVal) (This)->lpVtbl->get_CurrentContainingGrid(This,retVal)
 3484#define IUIAutomationGridItemPattern_get_CurrentRow(This,retVal) (This)->lpVtbl->get_CurrentRow(This,retVal)
 3485#define IUIAutomationGridItemPattern_get_CurrentColumn(This,retVal) (This)->lpVtbl->get_CurrentColumn(This,retVal)
 3486#define IUIAutomationGridItemPattern_get_CurrentRowSpan(This,retVal) (This)->lpVtbl->get_CurrentRowSpan(This,retVal)
 3487#define IUIAutomationGridItemPattern_get_CurrentColumnSpan(This,retVal) (This)->lpVtbl->get_CurrentColumnSpan(This,retVal)
 3488#define IUIAutomationGridItemPattern_get_CachedContainingGrid(This,retVal) (This)->lpVtbl->get_CachedContainingGrid(This,retVal)
 3489#define IUIAutomationGridItemPattern_get_CachedRow(This,retVal) (This)->lpVtbl->get_CachedRow(This,retVal)
 3490#define IUIAutomationGridItemPattern_get_CachedColumn(This,retVal) (This)->lpVtbl->get_CachedColumn(This,retVal)
 3491#define IUIAutomationGridItemPattern_get_CachedRowSpan(This,retVal) (This)->lpVtbl->get_CachedRowSpan(This,retVal)
 3492#define IUIAutomationGridItemPattern_get_CachedColumnSpan(This,retVal) (This)->lpVtbl->get_CachedColumnSpan(This,retVal)
 3493#else
 3494/*** IUnknown methods ***/
 3495static inline HRESULT IUIAutomationGridItemPattern_QueryInterface(IUIAutomationGridItemPattern* This,REFIID riid,void **ppvObject) {
 3496    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 3497}
 3498static inline ULONG IUIAutomationGridItemPattern_AddRef(IUIAutomationGridItemPattern* This) {
 3499    return This->lpVtbl->AddRef(This);
 3500}
 3501static inline ULONG IUIAutomationGridItemPattern_Release(IUIAutomationGridItemPattern* This) {
 3502    return This->lpVtbl->Release(This);
 3503}
 3504/*** IUIAutomationGridItemPattern methods ***/
 3505static inline HRESULT IUIAutomationGridItemPattern_get_CurrentContainingGrid(IUIAutomationGridItemPattern* This,IUIAutomationElement **retVal) {
 3506    return This->lpVtbl->get_CurrentContainingGrid(This,retVal);
 3507}
 3508static inline HRESULT IUIAutomationGridItemPattern_get_CurrentRow(IUIAutomationGridItemPattern* This,int *retVal) {
 3509    return This->lpVtbl->get_CurrentRow(This,retVal);
 3510}
 3511static inline HRESULT IUIAutomationGridItemPattern_get_CurrentColumn(IUIAutomationGridItemPattern* This,int *retVal) {
 3512    return This->lpVtbl->get_CurrentColumn(This,retVal);
 3513}
 3514static inline HRESULT IUIAutomationGridItemPattern_get_CurrentRowSpan(IUIAutomationGridItemPattern* This,int *retVal) {
 3515    return This->lpVtbl->get_CurrentRowSpan(This,retVal);
 3516}
 3517static inline HRESULT IUIAutomationGridItemPattern_get_CurrentColumnSpan(IUIAutomationGridItemPattern* This,int *retVal) {
 3518    return This->lpVtbl->get_CurrentColumnSpan(This,retVal);
 3519}
 3520static inline HRESULT IUIAutomationGridItemPattern_get_CachedContainingGrid(IUIAutomationGridItemPattern* This,IUIAutomationElement **retVal) {
 3521    return This->lpVtbl->get_CachedContainingGrid(This,retVal);
 3522}
 3523static inline HRESULT IUIAutomationGridItemPattern_get_CachedRow(IUIAutomationGridItemPattern* This,int *retVal) {
 3524    return This->lpVtbl->get_CachedRow(This,retVal);
 3525}
 3526static inline HRESULT IUIAutomationGridItemPattern_get_CachedColumn(IUIAutomationGridItemPattern* This,int *retVal) {
 3527    return This->lpVtbl->get_CachedColumn(This,retVal);
 3528}
 3529static inline HRESULT IUIAutomationGridItemPattern_get_CachedRowSpan(IUIAutomationGridItemPattern* This,int *retVal) {
 3530    return This->lpVtbl->get_CachedRowSpan(This,retVal);
 3531}
 3532static inline HRESULT IUIAutomationGridItemPattern_get_CachedColumnSpan(IUIAutomationGridItemPattern* This,int *retVal) {
 3533    return This->lpVtbl->get_CachedColumnSpan(This,retVal);
 3534}
 3535#endif
 3536#endif
 3537
 3538#endif
 3539
 3540
 3541#endif  /* __IUIAutomationGridItemPattern_INTERFACE_DEFINED__ */
 3542
 3543/*****************************************************************************
 3544 * IUIAutomationMultipleViewPattern interface
 3545 */
 3546#ifndef __IUIAutomationMultipleViewPattern_INTERFACE_DEFINED__
 3547#define __IUIAutomationMultipleViewPattern_INTERFACE_DEFINED__
 3548
 3549DEFINE_GUID(IID_IUIAutomationMultipleViewPattern, 0x8d253c91, 0x1dc5, 0x4bb5, 0xb1,0x8f, 0xad,0xe1,0x6f,0xa4,0x95,0xe8);
 3550#if defined(__cplusplus) && !defined(CINTERFACE)
 3551MIDL_INTERFACE("8d253c91-1dc5-4bb5-b18f-ade16fa495e8")
 3552IUIAutomationMultipleViewPattern : public IUnknown
 3553{
 3554    virtual HRESULT STDMETHODCALLTYPE GetViewName(
 3555        int view,
 3556        BSTR *name) = 0;
 3557
 3558    virtual HRESULT STDMETHODCALLTYPE SetCurrentView(
 3559        int view) = 0;
 3560
 3561    virtual HRESULT STDMETHODCALLTYPE get_CurrentCurrentView(
 3562        int *retVal) = 0;
 3563
 3564    virtual HRESULT STDMETHODCALLTYPE GetCurrentSupportedViews(
 3565        SAFEARRAY **retVal) = 0;
 3566
 3567    virtual HRESULT STDMETHODCALLTYPE get_CachedCurrentView(
 3568        int *retVal) = 0;
 3569
 3570    virtual HRESULT STDMETHODCALLTYPE GetCachedSupportedViews(
 3571        SAFEARRAY **retVal) = 0;
 3572
 3573};
 3574#ifdef __CRT_UUID_DECL
 3575__CRT_UUID_DECL(IUIAutomationMultipleViewPattern, 0x8d253c91, 0x1dc5, 0x4bb5, 0xb1,0x8f, 0xad,0xe1,0x6f,0xa4,0x95,0xe8)
 3576#endif
 3577#else
 3578typedef struct IUIAutomationMultipleViewPatternVtbl {
 3579    BEGIN_INTERFACE
 3580
 3581    /*** IUnknown methods ***/
 3582    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 3583        IUIAutomationMultipleViewPattern *This,
 3584        REFIID riid,
 3585        void **ppvObject);
 3586
 3587    ULONG (STDMETHODCALLTYPE *AddRef)(
 3588        IUIAutomationMultipleViewPattern *This);
 3589
 3590    ULONG (STDMETHODCALLTYPE *Release)(
 3591        IUIAutomationMultipleViewPattern *This);
 3592
 3593    /*** IUIAutomationMultipleViewPattern methods ***/
 3594    HRESULT (STDMETHODCALLTYPE *GetViewName)(
 3595        IUIAutomationMultipleViewPattern *This,
 3596        int view,
 3597        BSTR *name);
 3598
 3599    HRESULT (STDMETHODCALLTYPE *SetCurrentView)(
 3600        IUIAutomationMultipleViewPattern *This,
 3601        int view);
 3602
 3603    HRESULT (STDMETHODCALLTYPE *get_CurrentCurrentView)(
 3604        IUIAutomationMultipleViewPattern *This,
 3605        int *retVal);
 3606
 3607    HRESULT (STDMETHODCALLTYPE *GetCurrentSupportedViews)(
 3608        IUIAutomationMultipleViewPattern *This,
 3609        SAFEARRAY **retVal);
 3610
 3611    HRESULT (STDMETHODCALLTYPE *get_CachedCurrentView)(
 3612        IUIAutomationMultipleViewPattern *This,
 3613        int *retVal);
 3614
 3615    HRESULT (STDMETHODCALLTYPE *GetCachedSupportedViews)(
 3616        IUIAutomationMultipleViewPattern *This,
 3617        SAFEARRAY **retVal);
 3618
 3619    END_INTERFACE
 3620} IUIAutomationMultipleViewPatternVtbl;
 3621
 3622interface IUIAutomationMultipleViewPattern {
 3623    CONST_VTBL IUIAutomationMultipleViewPatternVtbl* lpVtbl;
 3624};
 3625
 3626#ifdef COBJMACROS
 3627#ifndef WIDL_C_INLINE_WRAPPERS
 3628/*** IUnknown methods ***/
 3629#define IUIAutomationMultipleViewPattern_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 3630#define IUIAutomationMultipleViewPattern_AddRef(This) (This)->lpVtbl->AddRef(This)
 3631#define IUIAutomationMultipleViewPattern_Release(This) (This)->lpVtbl->Release(This)
 3632/*** IUIAutomationMultipleViewPattern methods ***/
 3633#define IUIAutomationMultipleViewPattern_GetViewName(This,view,name) (This)->lpVtbl->GetViewName(This,view,name)
 3634#define IUIAutomationMultipleViewPattern_SetCurrentView(This,view) (This)->lpVtbl->SetCurrentView(This,view)
 3635#define IUIAutomationMultipleViewPattern_get_CurrentCurrentView(This,retVal) (This)->lpVtbl->get_CurrentCurrentView(This,retVal)
 3636#define IUIAutomationMultipleViewPattern_GetCurrentSupportedViews(This,retVal) (This)->lpVtbl->GetCurrentSupportedViews(This,retVal)
 3637#define IUIAutomationMultipleViewPattern_get_CachedCurrentView(This,retVal) (This)->lpVtbl->get_CachedCurrentView(This,retVal)
 3638#define IUIAutomationMultipleViewPattern_GetCachedSupportedViews(This,retVal) (This)->lpVtbl->GetCachedSupportedViews(This,retVal)
 3639#else
 3640/*** IUnknown methods ***/
 3641static inline HRESULT IUIAutomationMultipleViewPattern_QueryInterface(IUIAutomationMultipleViewPattern* This,REFIID riid,void **ppvObject) {
 3642    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 3643}
 3644static inline ULONG IUIAutomationMultipleViewPattern_AddRef(IUIAutomationMultipleViewPattern* This) {
 3645    return This->lpVtbl->AddRef(This);
 3646}
 3647static inline ULONG IUIAutomationMultipleViewPattern_Release(IUIAutomationMultipleViewPattern* This) {
 3648    return This->lpVtbl->Release(This);
 3649}
 3650/*** IUIAutomationMultipleViewPattern methods ***/
 3651static inline HRESULT IUIAutomationMultipleViewPattern_GetViewName(IUIAutomationMultipleViewPattern* This,int view,BSTR *name) {
 3652    return This->lpVtbl->GetViewName(This,view,name);
 3653}
 3654static inline HRESULT IUIAutomationMultipleViewPattern_SetCurrentView(IUIAutomationMultipleViewPattern* This,int view) {
 3655    return This->lpVtbl->SetCurrentView(This,view);
 3656}
 3657static inline HRESULT IUIAutomationMultipleViewPattern_get_CurrentCurrentView(IUIAutomationMultipleViewPattern* This,int *retVal) {
 3658    return This->lpVtbl->get_CurrentCurrentView(This,retVal);
 3659}
 3660static inline HRESULT IUIAutomationMultipleViewPattern_GetCurrentSupportedViews(IUIAutomationMultipleViewPattern* This,SAFEARRAY **retVal) {
 3661    return This->lpVtbl->GetCurrentSupportedViews(This,retVal);
 3662}
 3663static inline HRESULT IUIAutomationMultipleViewPattern_get_CachedCurrentView(IUIAutomationMultipleViewPattern* This,int *retVal) {
 3664    return This->lpVtbl->get_CachedCurrentView(This,retVal);
 3665}
 3666static inline HRESULT IUIAutomationMultipleViewPattern_GetCachedSupportedViews(IUIAutomationMultipleViewPattern* This,SAFEARRAY **retVal) {
 3667    return This->lpVtbl->GetCachedSupportedViews(This,retVal);
 3668}
 3669#endif
 3670#endif
 3671
 3672#endif
 3673
 3674
 3675#endif  /* __IUIAutomationMultipleViewPattern_INTERFACE_DEFINED__ */
 3676
 3677/*****************************************************************************
 3678 * IUIAutomationObjectModelPattern interface
 3679 */
 3680#ifndef __IUIAutomationObjectModelPattern_INTERFACE_DEFINED__
 3681#define __IUIAutomationObjectModelPattern_INTERFACE_DEFINED__
 3682
 3683DEFINE_GUID(IID_IUIAutomationObjectModelPattern, 0x71c284b3, 0xc14d, 0x4d14, 0x98,0x1e, 0x19,0x75,0x1b,0x0d,0x75,0x6d);
 3684#if defined(__cplusplus) && !defined(CINTERFACE)
 3685MIDL_INTERFACE("71c284b3-c14d-4d14-981e-19751b0d756d")
 3686IUIAutomationObjectModelPattern : public IUnknown
 3687{
 3688    virtual HRESULT STDMETHODCALLTYPE GetUnderlyingObjectModel(
 3689        IUnknown **retVal) = 0;
 3690
 3691};
 3692#ifdef __CRT_UUID_DECL
 3693__CRT_UUID_DECL(IUIAutomationObjectModelPattern, 0x71c284b3, 0xc14d, 0x4d14, 0x98,0x1e, 0x19,0x75,0x1b,0x0d,0x75,0x6d)
 3694#endif
 3695#else
 3696typedef struct IUIAutomationObjectModelPatternVtbl {
 3697    BEGIN_INTERFACE
 3698
 3699    /*** IUnknown methods ***/
 3700    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 3701        IUIAutomationObjectModelPattern *This,
 3702        REFIID riid,
 3703        void **ppvObject);
 3704
 3705    ULONG (STDMETHODCALLTYPE *AddRef)(
 3706        IUIAutomationObjectModelPattern *This);
 3707
 3708    ULONG (STDMETHODCALLTYPE *Release)(
 3709        IUIAutomationObjectModelPattern *This);
 3710
 3711    /*** IUIAutomationObjectModelPattern methods ***/
 3712    HRESULT (STDMETHODCALLTYPE *GetUnderlyingObjectModel)(
 3713        IUIAutomationObjectModelPattern *This,
 3714        IUnknown **retVal);
 3715
 3716    END_INTERFACE
 3717} IUIAutomationObjectModelPatternVtbl;
 3718
 3719interface IUIAutomationObjectModelPattern {
 3720    CONST_VTBL IUIAutomationObjectModelPatternVtbl* lpVtbl;
 3721};
 3722
 3723#ifdef COBJMACROS
 3724#ifndef WIDL_C_INLINE_WRAPPERS
 3725/*** IUnknown methods ***/
 3726#define IUIAutomationObjectModelPattern_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 3727#define IUIAutomationObjectModelPattern_AddRef(This) (This)->lpVtbl->AddRef(This)
 3728#define IUIAutomationObjectModelPattern_Release(This) (This)->lpVtbl->Release(This)
 3729/*** IUIAutomationObjectModelPattern methods ***/
 3730#define IUIAutomationObjectModelPattern_GetUnderlyingObjectModel(This,retVal) (This)->lpVtbl->GetUnderlyingObjectModel(This,retVal)
 3731#else
 3732/*** IUnknown methods ***/
 3733static inline HRESULT IUIAutomationObjectModelPattern_QueryInterface(IUIAutomationObjectModelPattern* This,REFIID riid,void **ppvObject) {
 3734    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 3735}
 3736static inline ULONG IUIAutomationObjectModelPattern_AddRef(IUIAutomationObjectModelPattern* This) {
 3737    return This->lpVtbl->AddRef(This);
 3738}
 3739static inline ULONG IUIAutomationObjectModelPattern_Release(IUIAutomationObjectModelPattern* This) {
 3740    return This->lpVtbl->Release(This);
 3741}
 3742/*** IUIAutomationObjectModelPattern methods ***/
 3743static inline HRESULT IUIAutomationObjectModelPattern_GetUnderlyingObjectModel(IUIAutomationObjectModelPattern* This,IUnknown **retVal) {
 3744    return This->lpVtbl->GetUnderlyingObjectModel(This,retVal);
 3745}
 3746#endif
 3747#endif
 3748
 3749#endif
 3750
 3751
 3752#endif  /* __IUIAutomationObjectModelPattern_INTERFACE_DEFINED__ */
 3753
 3754/*****************************************************************************
 3755 * IUIAutomationRangeValuePattern interface
 3756 */
 3757#ifndef __IUIAutomationRangeValuePattern_INTERFACE_DEFINED__
 3758#define __IUIAutomationRangeValuePattern_INTERFACE_DEFINED__
 3759
 3760DEFINE_GUID(IID_IUIAutomationRangeValuePattern, 0x59213f4f, 0x7346, 0x49e5, 0xb1,0x20, 0x80,0x55,0x59,0x87,0xa1,0x48);
 3761#if defined(__cplusplus) && !defined(CINTERFACE)
 3762MIDL_INTERFACE("59213f4f-7346-49e5-b120-80555987a148")
 3763IUIAutomationRangeValuePattern : public IUnknown
 3764{
 3765    virtual HRESULT STDMETHODCALLTYPE SetValue(
 3766        double val) = 0;
 3767
 3768    virtual HRESULT STDMETHODCALLTYPE get_CurrentValue(
 3769        double *retVal) = 0;
 3770
 3771    virtual HRESULT STDMETHODCALLTYPE get_CurrentIsReadOnly(
 3772        WINBOOL *retVal) = 0;
 3773
 3774    virtual HRESULT STDMETHODCALLTYPE get_CurrentMaximum(
 3775        double *retVal) = 0;
 3776
 3777    virtual HRESULT STDMETHODCALLTYPE get_CurrentMinimum(
 3778        double *retVal) = 0;
 3779
 3780    virtual HRESULT STDMETHODCALLTYPE get_CurrentLargeChange(
 3781        double *retVal) = 0;
 3782
 3783    virtual HRESULT STDMETHODCALLTYPE get_CurrentSmallChange(
 3784        double *retVal) = 0;
 3785
 3786    virtual HRESULT STDMETHODCALLTYPE get_CachedValue(
 3787        double *retVal) = 0;
 3788
 3789    virtual HRESULT STDMETHODCALLTYPE get_CachedIsReadOnly(
 3790        WINBOOL *retVal) = 0;
 3791
 3792    virtual HRESULT STDMETHODCALLTYPE get_CachedMaximum(
 3793        double *retVal) = 0;
 3794
 3795    virtual HRESULT STDMETHODCALLTYPE get_CachedMinimum(
 3796        double *retVal) = 0;
 3797
 3798    virtual HRESULT STDMETHODCALLTYPE get_CachedLargeChange(
 3799        double *retVal) = 0;
 3800
 3801    virtual HRESULT STDMETHODCALLTYPE get_CachedSmallChange(
 3802        double *retVal) = 0;
 3803
 3804};
 3805#ifdef __CRT_UUID_DECL
 3806__CRT_UUID_DECL(IUIAutomationRangeValuePattern, 0x59213f4f, 0x7346, 0x49e5, 0xb1,0x20, 0x80,0x55,0x59,0x87,0xa1,0x48)
 3807#endif
 3808#else
 3809typedef struct IUIAutomationRangeValuePatternVtbl {
 3810    BEGIN_INTERFACE
 3811
 3812    /*** IUnknown methods ***/
 3813    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 3814        IUIAutomationRangeValuePattern *This,
 3815        REFIID riid,
 3816        void **ppvObject);
 3817
 3818    ULONG (STDMETHODCALLTYPE *AddRef)(
 3819        IUIAutomationRangeValuePattern *This);
 3820
 3821    ULONG (STDMETHODCALLTYPE *Release)(
 3822        IUIAutomationRangeValuePattern *This);
 3823
 3824    /*** IUIAutomationRangeValuePattern methods ***/
 3825    HRESULT (STDMETHODCALLTYPE *SetValue)(
 3826        IUIAutomationRangeValuePattern *This,
 3827        double val);
 3828
 3829    HRESULT (STDMETHODCALLTYPE *get_CurrentValue)(
 3830        IUIAutomationRangeValuePattern *This,
 3831        double *retVal);
 3832
 3833    HRESULT (STDMETHODCALLTYPE *get_CurrentIsReadOnly)(
 3834        IUIAutomationRangeValuePattern *This,
 3835        WINBOOL *retVal);
 3836
 3837    HRESULT (STDMETHODCALLTYPE *get_CurrentMaximum)(
 3838        IUIAutomationRangeValuePattern *This,
 3839        double *retVal);
 3840
 3841    HRESULT (STDMETHODCALLTYPE *get_CurrentMinimum)(
 3842        IUIAutomationRangeValuePattern *This,
 3843        double *retVal);
 3844
 3845    HRESULT (STDMETHODCALLTYPE *get_CurrentLargeChange)(
 3846        IUIAutomationRangeValuePattern *This,
 3847        double *retVal);
 3848
 3849    HRESULT (STDMETHODCALLTYPE *get_CurrentSmallChange)(
 3850        IUIAutomationRangeValuePattern *This,
 3851        double *retVal);
 3852
 3853    HRESULT (STDMETHODCALLTYPE *get_CachedValue)(
 3854        IUIAutomationRangeValuePattern *This,
 3855        double *retVal);
 3856
 3857    HRESULT (STDMETHODCALLTYPE *get_CachedIsReadOnly)(
 3858        IUIAutomationRangeValuePattern *This,
 3859        WINBOOL *retVal);
 3860
 3861    HRESULT (STDMETHODCALLTYPE *get_CachedMaximum)(
 3862        IUIAutomationRangeValuePattern *This,
 3863        double *retVal);
 3864
 3865    HRESULT (STDMETHODCALLTYPE *get_CachedMinimum)(
 3866        IUIAutomationRangeValuePattern *This,
 3867        double *retVal);
 3868
 3869    HRESULT (STDMETHODCALLTYPE *get_CachedLargeChange)(
 3870        IUIAutomationRangeValuePattern *This,
 3871        double *retVal);
 3872
 3873    HRESULT (STDMETHODCALLTYPE *get_CachedSmallChange)(
 3874        IUIAutomationRangeValuePattern *This,
 3875        double *retVal);
 3876
 3877    END_INTERFACE
 3878} IUIAutomationRangeValuePatternVtbl;
 3879
 3880interface IUIAutomationRangeValuePattern {
 3881    CONST_VTBL IUIAutomationRangeValuePatternVtbl* lpVtbl;
 3882};
 3883
 3884#ifdef COBJMACROS
 3885#ifndef WIDL_C_INLINE_WRAPPERS
 3886/*** IUnknown methods ***/
 3887#define IUIAutomationRangeValuePattern_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 3888#define IUIAutomationRangeValuePattern_AddRef(This) (This)->lpVtbl->AddRef(This)
 3889#define IUIAutomationRangeValuePattern_Release(This) (This)->lpVtbl->Release(This)
 3890/*** IUIAutomationRangeValuePattern methods ***/
 3891#define IUIAutomationRangeValuePattern_SetValue(This,val) (This)->lpVtbl->SetValue(This,val)
 3892#define IUIAutomationRangeValuePattern_get_CurrentValue(This,retVal) (This)->lpVtbl->get_CurrentValue(This,retVal)
 3893#define IUIAutomationRangeValuePattern_get_CurrentIsReadOnly(This,retVal) (This)->lpVtbl->get_CurrentIsReadOnly(This,retVal)
 3894#define IUIAutomationRangeValuePattern_get_CurrentMaximum(This,retVal) (This)->lpVtbl->get_CurrentMaximum(This,retVal)
 3895#define IUIAutomationRangeValuePattern_get_CurrentMinimum(This,retVal) (This)->lpVtbl->get_CurrentMinimum(This,retVal)
 3896#define IUIAutomationRangeValuePattern_get_CurrentLargeChange(This,retVal) (This)->lpVtbl->get_CurrentLargeChange(This,retVal)
 3897#define IUIAutomationRangeValuePattern_get_CurrentSmallChange(This,retVal) (This)->lpVtbl->get_CurrentSmallChange(This,retVal)
 3898#define IUIAutomationRangeValuePattern_get_CachedValue(This,retVal) (This)->lpVtbl->get_CachedValue(This,retVal)
 3899#define IUIAutomationRangeValuePattern_get_CachedIsReadOnly(This,retVal) (This)->lpVtbl->get_CachedIsReadOnly(This,retVal)
 3900#define IUIAutomationRangeValuePattern_get_CachedMaximum(This,retVal) (This)->lpVtbl->get_CachedMaximum(This,retVal)
 3901#define IUIAutomationRangeValuePattern_get_CachedMinimum(This,retVal) (This)->lpVtbl->get_CachedMinimum(This,retVal)
 3902#define IUIAutomationRangeValuePattern_get_CachedLargeChange(This,retVal) (This)->lpVtbl->get_CachedLargeChange(This,retVal)
 3903#define IUIAutomationRangeValuePattern_get_CachedSmallChange(This,retVal) (This)->lpVtbl->get_CachedSmallChange(This,retVal)
 3904#else
 3905/*** IUnknown methods ***/
 3906static inline HRESULT IUIAutomationRangeValuePattern_QueryInterface(IUIAutomationRangeValuePattern* This,REFIID riid,void **ppvObject) {
 3907    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 3908}
 3909static inline ULONG IUIAutomationRangeValuePattern_AddRef(IUIAutomationRangeValuePattern* This) {
 3910    return This->lpVtbl->AddRef(This);
 3911}
 3912static inline ULONG IUIAutomationRangeValuePattern_Release(IUIAutomationRangeValuePattern* This) {
 3913    return This->lpVtbl->Release(This);
 3914}
 3915/*** IUIAutomationRangeValuePattern methods ***/
 3916static inline HRESULT IUIAutomationRangeValuePattern_SetValue(IUIAutomationRangeValuePattern* This,double val) {
 3917    return This->lpVtbl->SetValue(This,val);
 3918}
 3919static inline HRESULT IUIAutomationRangeValuePattern_get_CurrentValue(IUIAutomationRangeValuePattern* This,double *retVal) {
 3920    return This->lpVtbl->get_CurrentValue(This,retVal);
 3921}
 3922static inline HRESULT IUIAutomationRangeValuePattern_get_CurrentIsReadOnly(IUIAutomationRangeValuePattern* This,WINBOOL *retVal) {
 3923    return This->lpVtbl->get_CurrentIsReadOnly(This,retVal);
 3924}
 3925static inline HRESULT IUIAutomationRangeValuePattern_get_CurrentMaximum(IUIAutomationRangeValuePattern* This,double *retVal) {
 3926    return This->lpVtbl->get_CurrentMaximum(This,retVal);
 3927}
 3928static inline HRESULT IUIAutomationRangeValuePattern_get_CurrentMinimum(IUIAutomationRangeValuePattern* This,double *retVal) {
 3929    return This->lpVtbl->get_CurrentMinimum(This,retVal);
 3930}
 3931static inline HRESULT IUIAutomationRangeValuePattern_get_CurrentLargeChange(IUIAutomationRangeValuePattern* This,double *retVal) {
 3932    return This->lpVtbl->get_CurrentLargeChange(This,retVal);
 3933}
 3934static inline HRESULT IUIAutomationRangeValuePattern_get_CurrentSmallChange(IUIAutomationRangeValuePattern* This,double *retVal) {
 3935    return This->lpVtbl->get_CurrentSmallChange(This,retVal);
 3936}
 3937static inline HRESULT IUIAutomationRangeValuePattern_get_CachedValue(IUIAutomationRangeValuePattern* This,double *retVal) {
 3938    return This->lpVtbl->get_CachedValue(This,retVal);
 3939}
 3940static inline HRESULT IUIAutomationRangeValuePattern_get_CachedIsReadOnly(IUIAutomationRangeValuePattern* This,WINBOOL *retVal) {
 3941    return This->lpVtbl->get_CachedIsReadOnly(This,retVal);
 3942}
 3943static inline HRESULT IUIAutomationRangeValuePattern_get_CachedMaximum(IUIAutomationRangeValuePattern* This,double *retVal) {
 3944    return This->lpVtbl->get_CachedMaximum(This,retVal);
 3945}
 3946static inline HRESULT IUIAutomationRangeValuePattern_get_CachedMinimum(IUIAutomationRangeValuePattern* This,double *retVal) {
 3947    return This->lpVtbl->get_CachedMinimum(This,retVal);
 3948}
 3949static inline HRESULT IUIAutomationRangeValuePattern_get_CachedLargeChange(IUIAutomationRangeValuePattern* This,double *retVal) {
 3950    return This->lpVtbl->get_CachedLargeChange(This,retVal);
 3951}
 3952static inline HRESULT IUIAutomationRangeValuePattern_get_CachedSmallChange(IUIAutomationRangeValuePattern* This,double *retVal) {
 3953    return This->lpVtbl->get_CachedSmallChange(This,retVal);
 3954}
 3955#endif
 3956#endif
 3957
 3958#endif
 3959
 3960
 3961#endif  /* __IUIAutomationRangeValuePattern_INTERFACE_DEFINED__ */
 3962
 3963/*****************************************************************************
 3964 * IUIAutomationScrollPattern interface
 3965 */
 3966#ifndef __IUIAutomationScrollPattern_INTERFACE_DEFINED__
 3967#define __IUIAutomationScrollPattern_INTERFACE_DEFINED__
 3968
 3969DEFINE_GUID(IID_IUIAutomationScrollPattern, 0x88f4d42a, 0xe881, 0x459d, 0xa7,0x7c, 0x73,0xbb,0xbb,0x7e,0x02,0xdc);
 3970#if defined(__cplusplus) && !defined(CINTERFACE)
 3971MIDL_INTERFACE("88f4d42a-e881-459d-a77c-73bbbb7e02dc")
 3972IUIAutomationScrollPattern : public IUnknown
 3973{
 3974    virtual HRESULT STDMETHODCALLTYPE Scroll(
 3975        enum ScrollAmount horizontalAmount,
 3976        enum ScrollAmount verticalAmount) = 0;
 3977
 3978    virtual HRESULT STDMETHODCALLTYPE SetScrollPercent(
 3979        double horizontalPercent,
 3980        double verticalPercent) = 0;
 3981
 3982    virtual HRESULT STDMETHODCALLTYPE get_CurrentHorizontalScrollPercent(
 3983        double *retVal) = 0;
 3984
 3985    virtual HRESULT STDMETHODCALLTYPE get_CurrentVerticalScrollPercent(
 3986        double *retVal) = 0;
 3987
 3988    virtual HRESULT STDMETHODCALLTYPE get_CurrentHorizontalViewSize(
 3989        double *retVal) = 0;
 3990
 3991    virtual HRESULT STDMETHODCALLTYPE get_CurrentVerticalViewSize(
 3992        double *retVal) = 0;
 3993
 3994    virtual HRESULT STDMETHODCALLTYPE get_CurrentHorizontallyScrollable(
 3995        WINBOOL *retVal) = 0;
 3996
 3997    virtual HRESULT STDMETHODCALLTYPE get_CurrentVerticallyScrollable(
 3998        WINBOOL *retVal) = 0;
 3999
 4000    virtual HRESULT STDMETHODCALLTYPE get_CachedHorizontalScrollPercent(
 4001        double *retVal) = 0;
 4002
 4003    virtual HRESULT STDMETHODCALLTYPE get_CachedVerticalScrollPercent(
 4004        double *retVal) = 0;
 4005
 4006    virtual HRESULT STDMETHODCALLTYPE get_CachedHorizontalViewSize(
 4007        double *retVal) = 0;
 4008
 4009    virtual HRESULT STDMETHODCALLTYPE get_CachedVerticalViewSize(
 4010        double *retVal) = 0;
 4011
 4012    virtual HRESULT STDMETHODCALLTYPE get_CachedHorizontallyScrollable(
 4013        WINBOOL *retVal) = 0;
 4014
 4015    virtual HRESULT STDMETHODCALLTYPE get_CachedVerticallyScrollable(
 4016        WINBOOL *retVal) = 0;
 4017
 4018};
 4019#ifdef __CRT_UUID_DECL
 4020__CRT_UUID_DECL(IUIAutomationScrollPattern, 0x88f4d42a, 0xe881, 0x459d, 0xa7,0x7c, 0x73,0xbb,0xbb,0x7e,0x02,0xdc)
 4021#endif
 4022#else
 4023typedef struct IUIAutomationScrollPatternVtbl {
 4024    BEGIN_INTERFACE
 4025
 4026    /*** IUnknown methods ***/
 4027    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 4028        IUIAutomationScrollPattern *This,
 4029        REFIID riid,
 4030        void **ppvObject);
 4031
 4032    ULONG (STDMETHODCALLTYPE *AddRef)(
 4033        IUIAutomationScrollPattern *This);
 4034
 4035    ULONG (STDMETHODCALLTYPE *Release)(
 4036        IUIAutomationScrollPattern *This);
 4037
 4038    /*** IUIAutomationScrollPattern methods ***/
 4039    HRESULT (STDMETHODCALLTYPE *Scroll)(
 4040        IUIAutomationScrollPattern *This,
 4041        enum ScrollAmount horizontalAmount,
 4042        enum ScrollAmount verticalAmount);
 4043
 4044    HRESULT (STDMETHODCALLTYPE *SetScrollPercent)(
 4045        IUIAutomationScrollPattern *This,
 4046        double horizontalPercent,
 4047        double verticalPercent);
 4048
 4049    HRESULT (STDMETHODCALLTYPE *get_CurrentHorizontalScrollPercent)(
 4050        IUIAutomationScrollPattern *This,
 4051        double *retVal);
 4052
 4053    HRESULT (STDMETHODCALLTYPE *get_CurrentVerticalScrollPercent)(
 4054        IUIAutomationScrollPattern *This,
 4055        double *retVal);
 4056
 4057    HRESULT (STDMETHODCALLTYPE *get_CurrentHorizontalViewSize)(
 4058        IUIAutomationScrollPattern *This,
 4059        double *retVal);
 4060
 4061    HRESULT (STDMETHODCALLTYPE *get_CurrentVerticalViewSize)(
 4062        IUIAutomationScrollPattern *This,
 4063        double *retVal);
 4064
 4065    HRESULT (STDMETHODCALLTYPE *get_CurrentHorizontallyScrollable)(
 4066        IUIAutomationScrollPattern *This,
 4067        WINBOOL *retVal);
 4068
 4069    HRESULT (STDMETHODCALLTYPE *get_CurrentVerticallyScrollable)(
 4070        IUIAutomationScrollPattern *This,
 4071        WINBOOL *retVal);
 4072
 4073    HRESULT (STDMETHODCALLTYPE *get_CachedHorizontalScrollPercent)(
 4074        IUIAutomationScrollPattern *This,
 4075        double *retVal);
 4076
 4077    HRESULT (STDMETHODCALLTYPE *get_CachedVerticalScrollPercent)(
 4078        IUIAutomationScrollPattern *This,
 4079        double *retVal);
 4080
 4081    HRESULT (STDMETHODCALLTYPE *get_CachedHorizontalViewSize)(
 4082        IUIAutomationScrollPattern *This,
 4083        double *retVal);
 4084
 4085    HRESULT (STDMETHODCALLTYPE *get_CachedVerticalViewSize)(
 4086        IUIAutomationScrollPattern *This,
 4087        double *retVal);
 4088
 4089    HRESULT (STDMETHODCALLTYPE *get_CachedHorizontallyScrollable)(
 4090        IUIAutomationScrollPattern *This,
 4091        WINBOOL *retVal);
 4092
 4093    HRESULT (STDMETHODCALLTYPE *get_CachedVerticallyScrollable)(
 4094        IUIAutomationScrollPattern *This,
 4095        WINBOOL *retVal);
 4096
 4097    END_INTERFACE
 4098} IUIAutomationScrollPatternVtbl;
 4099
 4100interface IUIAutomationScrollPattern {
 4101    CONST_VTBL IUIAutomationScrollPatternVtbl* lpVtbl;
 4102};
 4103
 4104#ifdef COBJMACROS
 4105#ifndef WIDL_C_INLINE_WRAPPERS
 4106/*** IUnknown methods ***/
 4107#define IUIAutomationScrollPattern_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 4108#define IUIAutomationScrollPattern_AddRef(This) (This)->lpVtbl->AddRef(This)
 4109#define IUIAutomationScrollPattern_Release(This) (This)->lpVtbl->Release(This)
 4110/*** IUIAutomationScrollPattern methods ***/
 4111#define IUIAutomationScrollPattern_Scroll(This,horizontalAmount,verticalAmount) (This)->lpVtbl->Scroll(This,horizontalAmount,verticalAmount)
 4112#define IUIAutomationScrollPattern_SetScrollPercent(This,horizontalPercent,verticalPercent) (This)->lpVtbl->SetScrollPercent(This,horizontalPercent,verticalPercent)
 4113#define IUIAutomationScrollPattern_get_CurrentHorizontalScrollPercent(This,retVal) (This)->lpVtbl->get_CurrentHorizontalScrollPercent(This,retVal)
 4114#define IUIAutomationScrollPattern_get_CurrentVerticalScrollPercent(This,retVal) (This)->lpVtbl->get_CurrentVerticalScrollPercent(This,retVal)
 4115#define IUIAutomationScrollPattern_get_CurrentHorizontalViewSize(This,retVal) (This)->lpVtbl->get_CurrentHorizontalViewSize(This,retVal)
 4116#define IUIAutomationScrollPattern_get_CurrentVerticalViewSize(This,retVal) (This)->lpVtbl->get_CurrentVerticalViewSize(This,retVal)
 4117#define IUIAutomationScrollPattern_get_CurrentHorizontallyScrollable(This,retVal) (This)->lpVtbl->get_CurrentHorizontallyScrollable(This,retVal)
 4118#define IUIAutomationScrollPattern_get_CurrentVerticallyScrollable(This,retVal) (This)->lpVtbl->get_CurrentVerticallyScrollable(This,retVal)
 4119#define IUIAutomationScrollPattern_get_CachedHorizontalScrollPercent(This,retVal) (This)->lpVtbl->get_CachedHorizontalScrollPercent(This,retVal)
 4120#define IUIAutomationScrollPattern_get_CachedVerticalScrollPercent(This,retVal) (This)->lpVtbl->get_CachedVerticalScrollPercent(This,retVal)
 4121#define IUIAutomationScrollPattern_get_CachedHorizontalViewSize(This,retVal) (This)->lpVtbl->get_CachedHorizontalViewSize(This,retVal)
 4122#define IUIAutomationScrollPattern_get_CachedVerticalViewSize(This,retVal) (This)->lpVtbl->get_CachedVerticalViewSize(This,retVal)
 4123#define IUIAutomationScrollPattern_get_CachedHorizontallyScrollable(This,retVal) (This)->lpVtbl->get_CachedHorizontallyScrollable(This,retVal)
 4124#define IUIAutomationScrollPattern_get_CachedVerticallyScrollable(This,retVal) (This)->lpVtbl->get_CachedVerticallyScrollable(This,retVal)
 4125#else
 4126/*** IUnknown methods ***/
 4127static inline HRESULT IUIAutomationScrollPattern_QueryInterface(IUIAutomationScrollPattern* This,REFIID riid,void **ppvObject) {
 4128    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 4129}
 4130static inline ULONG IUIAutomationScrollPattern_AddRef(IUIAutomationScrollPattern* This) {
 4131    return This->lpVtbl->AddRef(This);
 4132}
 4133static inline ULONG IUIAutomationScrollPattern_Release(IUIAutomationScrollPattern* This) {
 4134    return This->lpVtbl->Release(This);
 4135}
 4136/*** IUIAutomationScrollPattern methods ***/
 4137static inline HRESULT IUIAutomationScrollPattern_Scroll(IUIAutomationScrollPattern* This,enum ScrollAmount horizontalAmount,enum ScrollAmount verticalAmount) {
 4138    return This->lpVtbl->Scroll(This,horizontalAmount,verticalAmount);
 4139}
 4140static inline HRESULT IUIAutomationScrollPattern_SetScrollPercent(IUIAutomationScrollPattern* This,double horizontalPercent,double verticalPercent) {
 4141    return This->lpVtbl->SetScrollPercent(This,horizontalPercent,verticalPercent);
 4142}
 4143static inline HRESULT IUIAutomationScrollPattern_get_CurrentHorizontalScrollPercent(IUIAutomationScrollPattern* This,double *retVal) {
 4144    return This->lpVtbl->get_CurrentHorizontalScrollPercent(This,retVal);
 4145}
 4146static inline HRESULT IUIAutomationScrollPattern_get_CurrentVerticalScrollPercent(IUIAutomationScrollPattern* This,double *retVal) {
 4147    return This->lpVtbl->get_CurrentVerticalScrollPercent(This,retVal);
 4148}
 4149static inline HRESULT IUIAutomationScrollPattern_get_CurrentHorizontalViewSize(IUIAutomationScrollPattern* This,double *retVal) {
 4150    return This->lpVtbl->get_CurrentHorizontalViewSize(This,retVal);
 4151}
 4152static inline HRESULT IUIAutomationScrollPattern_get_CurrentVerticalViewSize(IUIAutomationScrollPattern* This,double *retVal) {
 4153    return This->lpVtbl->get_CurrentVerticalViewSize(This,retVal);
 4154}
 4155static inline HRESULT IUIAutomationScrollPattern_get_CurrentHorizontallyScrollable(IUIAutomationScrollPattern* This,WINBOOL *retVal) {
 4156    return This->lpVtbl->get_CurrentHorizontallyScrollable(This,retVal);
 4157}
 4158static inline HRESULT IUIAutomationScrollPattern_get_CurrentVerticallyScrollable(IUIAutomationScrollPattern* This,WINBOOL *retVal) {
 4159    return This->lpVtbl->get_CurrentVerticallyScrollable(This,retVal);
 4160}
 4161static inline HRESULT IUIAutomationScrollPattern_get_CachedHorizontalScrollPercent(IUIAutomationScrollPattern* This,double *retVal) {
 4162    return This->lpVtbl->get_CachedHorizontalScrollPercent(This,retVal);
 4163}
 4164static inline HRESULT IUIAutomationScrollPattern_get_CachedVerticalScrollPercent(IUIAutomationScrollPattern* This,double *retVal) {
 4165    return This->lpVtbl->get_CachedVerticalScrollPercent(This,retVal);
 4166}
 4167static inline HRESULT IUIAutomationScrollPattern_get_CachedHorizontalViewSize(IUIAutomationScrollPattern* This,double *retVal) {
 4168    return This->lpVtbl->get_CachedHorizontalViewSize(This,retVal);
 4169}
 4170static inline HRESULT IUIAutomationScrollPattern_get_CachedVerticalViewSize(IUIAutomationScrollPattern* This,double *retVal) {
 4171    return This->lpVtbl->get_CachedVerticalViewSize(This,retVal);
 4172}
 4173static inline HRESULT IUIAutomationScrollPattern_get_CachedHorizontallyScrollable(IUIAutomationScrollPattern* This,WINBOOL *retVal) {
 4174    return This->lpVtbl->get_CachedHorizontallyScrollable(This,retVal);
 4175}
 4176static inline HRESULT IUIAutomationScrollPattern_get_CachedVerticallyScrollable(IUIAutomationScrollPattern* This,WINBOOL *retVal) {
 4177    return This->lpVtbl->get_CachedVerticallyScrollable(This,retVal);
 4178}
 4179#endif
 4180#endif
 4181
 4182#endif
 4183
 4184
 4185#endif  /* __IUIAutomationScrollPattern_INTERFACE_DEFINED__ */
 4186
 4187/*****************************************************************************
 4188 * IUIAutomationScrollItemPattern interface
 4189 */
 4190#ifndef __IUIAutomationScrollItemPattern_INTERFACE_DEFINED__
 4191#define __IUIAutomationScrollItemPattern_INTERFACE_DEFINED__
 4192
 4193DEFINE_GUID(IID_IUIAutomationScrollItemPattern, 0xb488300f, 0xd015, 0x4f19, 0x9c,0x29, 0xbb,0x59,0x5e,0x36,0x45,0xef);
 4194#if defined(__cplusplus) && !defined(CINTERFACE)
 4195MIDL_INTERFACE("b488300f-d015-4f19-9c29-bb595e3645ef")
 4196IUIAutomationScrollItemPattern : public IUnknown
 4197{
 4198    virtual HRESULT STDMETHODCALLTYPE ScrollIntoView(
 4199        ) = 0;
 4200
 4201};
 4202#ifdef __CRT_UUID_DECL
 4203__CRT_UUID_DECL(IUIAutomationScrollItemPattern, 0xb488300f, 0xd015, 0x4f19, 0x9c,0x29, 0xbb,0x59,0x5e,0x36,0x45,0xef)
 4204#endif
 4205#else
 4206typedef struct IUIAutomationScrollItemPatternVtbl {
 4207    BEGIN_INTERFACE
 4208
 4209    /*** IUnknown methods ***/
 4210    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 4211        IUIAutomationScrollItemPattern *This,
 4212        REFIID riid,
 4213        void **ppvObject);
 4214
 4215    ULONG (STDMETHODCALLTYPE *AddRef)(
 4216        IUIAutomationScrollItemPattern *This);
 4217
 4218    ULONG (STDMETHODCALLTYPE *Release)(
 4219        IUIAutomationScrollItemPattern *This);
 4220
 4221    /*** IUIAutomationScrollItemPattern methods ***/
 4222    HRESULT (STDMETHODCALLTYPE *ScrollIntoView)(
 4223        IUIAutomationScrollItemPattern *This);
 4224
 4225    END_INTERFACE
 4226} IUIAutomationScrollItemPatternVtbl;
 4227
 4228interface IUIAutomationScrollItemPattern {
 4229    CONST_VTBL IUIAutomationScrollItemPatternVtbl* lpVtbl;
 4230};
 4231
 4232#ifdef COBJMACROS
 4233#ifndef WIDL_C_INLINE_WRAPPERS
 4234/*** IUnknown methods ***/
 4235#define IUIAutomationScrollItemPattern_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 4236#define IUIAutomationScrollItemPattern_AddRef(This) (This)->lpVtbl->AddRef(This)
 4237#define IUIAutomationScrollItemPattern_Release(This) (This)->lpVtbl->Release(This)
 4238/*** IUIAutomationScrollItemPattern methods ***/
 4239#define IUIAutomationScrollItemPattern_ScrollIntoView(This) (This)->lpVtbl->ScrollIntoView(This)
 4240#else
 4241/*** IUnknown methods ***/
 4242static inline HRESULT IUIAutomationScrollItemPattern_QueryInterface(IUIAutomationScrollItemPattern* This,REFIID riid,void **ppvObject) {
 4243    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 4244}
 4245static inline ULONG IUIAutomationScrollItemPattern_AddRef(IUIAutomationScrollItemPattern* This) {
 4246    return This->lpVtbl->AddRef(This);
 4247}
 4248static inline ULONG IUIAutomationScrollItemPattern_Release(IUIAutomationScrollItemPattern* This) {
 4249    return This->lpVtbl->Release(This);
 4250}
 4251/*** IUIAutomationScrollItemPattern methods ***/
 4252static inline HRESULT IUIAutomationScrollItemPattern_ScrollIntoView(IUIAutomationScrollItemPattern* This) {
 4253    return This->lpVtbl->ScrollIntoView(This);
 4254}
 4255#endif
 4256#endif
 4257
 4258#endif
 4259
 4260
 4261#endif  /* __IUIAutomationScrollItemPattern_INTERFACE_DEFINED__ */
 4262
 4263/*****************************************************************************
 4264 * IUIAutomationSelectionPattern interface
 4265 */
 4266#ifndef __IUIAutomationSelectionPattern_INTERFACE_DEFINED__
 4267#define __IUIAutomationSelectionPattern_INTERFACE_DEFINED__
 4268
 4269DEFINE_GUID(IID_IUIAutomationSelectionPattern, 0x5ed5202e, 0xb2ac, 0x47a6, 0xb6,0x38, 0x4b,0x0b,0xf1,0x40,0xd7,0x8e);
 4270#if defined(__cplusplus) && !defined(CINTERFACE)
 4271MIDL_INTERFACE("5ed5202e-b2ac-47a6-b638-4b0bf140d78e")
 4272IUIAutomationSelectionPattern : public IUnknown
 4273{
 4274    virtual HRESULT STDMETHODCALLTYPE GetCurrentSelection(
 4275        IUIAutomationElementArray **retVal) = 0;
 4276
 4277    virtual HRESULT STDMETHODCALLTYPE get_CurrentCanSelectMultiple(
 4278        WINBOOL *retVal) = 0;
 4279
 4280    virtual HRESULT STDMETHODCALLTYPE get_CurrentIsSelectionRequired(
 4281        WINBOOL *retVal) = 0;
 4282
 4283    virtual HRESULT STDMETHODCALLTYPE GetCachedSelection(
 4284        IUIAutomationElementArray **retVal) = 0;
 4285
 4286    virtual HRESULT STDMETHODCALLTYPE get_CachedCanSelectMultiple(
 4287        WINBOOL *retVal) = 0;
 4288
 4289    virtual HRESULT STDMETHODCALLTYPE get_CachedIsSelectionRequired(
 4290        WINBOOL *retVal) = 0;
 4291
 4292};
 4293#ifdef __CRT_UUID_DECL
 4294__CRT_UUID_DECL(IUIAutomationSelectionPattern, 0x5ed5202e, 0xb2ac, 0x47a6, 0xb6,0x38, 0x4b,0x0b,0xf1,0x40,0xd7,0x8e)
 4295#endif
 4296#else
 4297typedef struct IUIAutomationSelectionPatternVtbl {
 4298    BEGIN_INTERFACE
 4299
 4300    /*** IUnknown methods ***/
 4301    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 4302        IUIAutomationSelectionPattern *This,
 4303        REFIID riid,
 4304        void **ppvObject);
 4305
 4306    ULONG (STDMETHODCALLTYPE *AddRef)(
 4307        IUIAutomationSelectionPattern *This);
 4308
 4309    ULONG (STDMETHODCALLTYPE *Release)(
 4310        IUIAutomationSelectionPattern *This);
 4311
 4312    /*** IUIAutomationSelectionPattern methods ***/
 4313    HRESULT (STDMETHODCALLTYPE *GetCurrentSelection)(
 4314        IUIAutomationSelectionPattern *This,
 4315        IUIAutomationElementArray **retVal);
 4316
 4317    HRESULT (STDMETHODCALLTYPE *get_CurrentCanSelectMultiple)(
 4318        IUIAutomationSelectionPattern *This,
 4319        WINBOOL *retVal);
 4320
 4321    HRESULT (STDMETHODCALLTYPE *get_CurrentIsSelectionRequired)(
 4322        IUIAutomationSelectionPattern *This,
 4323        WINBOOL *retVal);
 4324
 4325    HRESULT (STDMETHODCALLTYPE *GetCachedSelection)(
 4326        IUIAutomationSelectionPattern *This,
 4327        IUIAutomationElementArray **retVal);
 4328
 4329    HRESULT (STDMETHODCALLTYPE *get_CachedCanSelectMultiple)(
 4330        IUIAutomationSelectionPattern *This,
 4331        WINBOOL *retVal);
 4332
 4333    HRESULT (STDMETHODCALLTYPE *get_CachedIsSelectionRequired)(
 4334        IUIAutomationSelectionPattern *This,
 4335        WINBOOL *retVal);
 4336
 4337    END_INTERFACE
 4338} IUIAutomationSelectionPatternVtbl;
 4339
 4340interface IUIAutomationSelectionPattern {
 4341    CONST_VTBL IUIAutomationSelectionPatternVtbl* lpVtbl;
 4342};
 4343
 4344#ifdef COBJMACROS
 4345#ifndef WIDL_C_INLINE_WRAPPERS
 4346/*** IUnknown methods ***/
 4347#define IUIAutomationSelectionPattern_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 4348#define IUIAutomationSelectionPattern_AddRef(This) (This)->lpVtbl->AddRef(This)
 4349#define IUIAutomationSelectionPattern_Release(This) (This)->lpVtbl->Release(This)
 4350/*** IUIAutomationSelectionPattern methods ***/
 4351#define IUIAutomationSelectionPattern_GetCurrentSelection(This,retVal) (This)->lpVtbl->GetCurrentSelection(This,retVal)
 4352#define IUIAutomationSelectionPattern_get_CurrentCanSelectMultiple(This,retVal) (This)->lpVtbl->get_CurrentCanSelectMultiple(This,retVal)
 4353#define IUIAutomationSelectionPattern_get_CurrentIsSelectionRequired(This,retVal) (This)->lpVtbl->get_CurrentIsSelectionRequired(This,retVal)
 4354#define IUIAutomationSelectionPattern_GetCachedSelection(This,retVal) (This)->lpVtbl->GetCachedSelection(This,retVal)
 4355#define IUIAutomationSelectionPattern_get_CachedCanSelectMultiple(This,retVal) (This)->lpVtbl->get_CachedCanSelectMultiple(This,retVal)
 4356#define IUIAutomationSelectionPattern_get_CachedIsSelectionRequired(This,retVal) (This)->lpVtbl->get_CachedIsSelectionRequired(This,retVal)
 4357#else
 4358/*** IUnknown methods ***/
 4359static inline HRESULT IUIAutomationSelectionPattern_QueryInterface(IUIAutomationSelectionPattern* This,REFIID riid,void **ppvObject) {
 4360    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 4361}
 4362static inline ULONG IUIAutomationSelectionPattern_AddRef(IUIAutomationSelectionPattern* This) {
 4363    return This->lpVtbl->AddRef(This);
 4364}
 4365static inline ULONG IUIAutomationSelectionPattern_Release(IUIAutomationSelectionPattern* This) {
 4366    return This->lpVtbl->Release(This);
 4367}
 4368/*** IUIAutomationSelectionPattern methods ***/
 4369static inline HRESULT IUIAutomationSelectionPattern_GetCurrentSelection(IUIAutomationSelectionPattern* This,IUIAutomationElementArray **retVal) {
 4370    return This->lpVtbl->GetCurrentSelection(This,retVal);
 4371}
 4372static inline HRESULT IUIAutomationSelectionPattern_get_CurrentCanSelectMultiple(IUIAutomationSelectionPattern* This,WINBOOL *retVal) {
 4373    return This->lpVtbl->get_CurrentCanSelectMultiple(This,retVal);
 4374}
 4375static inline HRESULT IUIAutomationSelectionPattern_get_CurrentIsSelectionRequired(IUIAutomationSelectionPattern* This,WINBOOL *retVal) {
 4376    return This->lpVtbl->get_CurrentIsSelectionRequired(This,retVal);
 4377}
 4378static inline HRESULT IUIAutomationSelectionPattern_GetCachedSelection(IUIAutomationSelectionPattern* This,IUIAutomationElementArray **retVal) {
 4379    return This->lpVtbl->GetCachedSelection(This,retVal);
 4380}
 4381static inline HRESULT IUIAutomationSelectionPattern_get_CachedCanSelectMultiple(IUIAutomationSelectionPattern* This,WINBOOL *retVal) {
 4382    return This->lpVtbl->get_CachedCanSelectMultiple(This,retVal);
 4383}
 4384static inline HRESULT IUIAutomationSelectionPattern_get_CachedIsSelectionRequired(IUIAutomationSelectionPattern* This,WINBOOL *retVal) {
 4385    return This->lpVtbl->get_CachedIsSelectionRequired(This,retVal);
 4386}
 4387#endif
 4388#endif
 4389
 4390#endif
 4391
 4392
 4393#endif  /* __IUIAutomationSelectionPattern_INTERFACE_DEFINED__ */
 4394
 4395/*****************************************************************************
 4396 * IUIAutomationSelectionItemPattern interface
 4397 */
 4398#ifndef __IUIAutomationSelectionItemPattern_INTERFACE_DEFINED__
 4399#define __IUIAutomationSelectionItemPattern_INTERFACE_DEFINED__
 4400
 4401DEFINE_GUID(IID_IUIAutomationSelectionItemPattern, 0xa8efa66a, 0x0fda, 0x421a, 0x91,0x94, 0x38,0x02,0x1f,0x35,0x78,0xea);
 4402#if defined(__cplusplus) && !defined(CINTERFACE)
 4403MIDL_INTERFACE("a8efa66a-0fda-421a-9194-38021f3578ea")
 4404IUIAutomationSelectionItemPattern : public IUnknown
 4405{
 4406    virtual HRESULT STDMETHODCALLTYPE Select(
 4407        ) = 0;
 4408
 4409    virtual HRESULT STDMETHODCALLTYPE AddToSelection(
 4410        ) = 0;
 4411
 4412    virtual HRESULT STDMETHODCALLTYPE RemoveFromSelection(
 4413        ) = 0;
 4414
 4415    virtual HRESULT STDMETHODCALLTYPE get_CurrentIsSelected(
 4416        WINBOOL *retVal) = 0;
 4417
 4418    virtual HRESULT STDMETHODCALLTYPE get_CurrentSelectionContainer(
 4419        IUIAutomationElement **retVal) = 0;
 4420
 4421    virtual HRESULT STDMETHODCALLTYPE get_CachedIsSelected(
 4422        WINBOOL *retVal) = 0;
 4423
 4424    virtual HRESULT STDMETHODCALLTYPE get_CachedSelectionContainer(
 4425        IUIAutomationElement **retVal) = 0;
 4426
 4427};
 4428#ifdef __CRT_UUID_DECL
 4429__CRT_UUID_DECL(IUIAutomationSelectionItemPattern, 0xa8efa66a, 0x0fda, 0x421a, 0x91,0x94, 0x38,0x02,0x1f,0x35,0x78,0xea)
 4430#endif
 4431#else
 4432typedef struct IUIAutomationSelectionItemPatternVtbl {
 4433    BEGIN_INTERFACE
 4434
 4435    /*** IUnknown methods ***/
 4436    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 4437        IUIAutomationSelectionItemPattern *This,
 4438        REFIID riid,
 4439        void **ppvObject);
 4440
 4441    ULONG (STDMETHODCALLTYPE *AddRef)(
 4442        IUIAutomationSelectionItemPattern *This);
 4443
 4444    ULONG (STDMETHODCALLTYPE *Release)(
 4445        IUIAutomationSelectionItemPattern *This);
 4446
 4447    /*** IUIAutomationSelectionItemPattern methods ***/
 4448    HRESULT (STDMETHODCALLTYPE *Select)(
 4449        IUIAutomationSelectionItemPattern *This);
 4450
 4451    HRESULT (STDMETHODCALLTYPE *AddToSelection)(
 4452        IUIAutomationSelectionItemPattern *This);
 4453
 4454    HRESULT (STDMETHODCALLTYPE *RemoveFromSelection)(
 4455        IUIAutomationSelectionItemPattern *This);
 4456
 4457    HRESULT (STDMETHODCALLTYPE *get_CurrentIsSelected)(
 4458        IUIAutomationSelectionItemPattern *This,
 4459        WINBOOL *retVal);
 4460
 4461    HRESULT (STDMETHODCALLTYPE *get_CurrentSelectionContainer)(
 4462        IUIAutomationSelectionItemPattern *This,
 4463        IUIAutomationElement **retVal);
 4464
 4465    HRESULT (STDMETHODCALLTYPE *get_CachedIsSelected)(
 4466        IUIAutomationSelectionItemPattern *This,
 4467        WINBOOL *retVal);
 4468
 4469    HRESULT (STDMETHODCALLTYPE *get_CachedSelectionContainer)(
 4470        IUIAutomationSelectionItemPattern *This,
 4471        IUIAutomationElement **retVal);
 4472
 4473    END_INTERFACE
 4474} IUIAutomationSelectionItemPatternVtbl;
 4475
 4476interface IUIAutomationSelectionItemPattern {
 4477    CONST_VTBL IUIAutomationSelectionItemPatternVtbl* lpVtbl;
 4478};
 4479
 4480#ifdef COBJMACROS
 4481#ifndef WIDL_C_INLINE_WRAPPERS
 4482/*** IUnknown methods ***/
 4483#define IUIAutomationSelectionItemPattern_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 4484#define IUIAutomationSelectionItemPattern_AddRef(This) (This)->lpVtbl->AddRef(This)
 4485#define IUIAutomationSelectionItemPattern_Release(This) (This)->lpVtbl->Release(This)
 4486/*** IUIAutomationSelectionItemPattern methods ***/
 4487#define IUIAutomationSelectionItemPattern_Select(This) (This)->lpVtbl->Select(This)
 4488#define IUIAutomationSelectionItemPattern_AddToSelection(This) (This)->lpVtbl->AddToSelection(This)
 4489#define IUIAutomationSelectionItemPattern_RemoveFromSelection(This) (This)->lpVtbl->RemoveFromSelection(This)
 4490#define IUIAutomationSelectionItemPattern_get_CurrentIsSelected(This,retVal) (This)->lpVtbl->get_CurrentIsSelected(This,retVal)
 4491#define IUIAutomationSelectionItemPattern_get_CurrentSelectionContainer(This,retVal) (This)->lpVtbl->get_CurrentSelectionContainer(This,retVal)
 4492#define IUIAutomationSelectionItemPattern_get_CachedIsSelected(This,retVal) (This)->lpVtbl->get_CachedIsSelected(This,retVal)
 4493#define IUIAutomationSelectionItemPattern_get_CachedSelectionContainer(This,retVal) (This)->lpVtbl->get_CachedSelectionContainer(This,retVal)
 4494#else
 4495/*** IUnknown methods ***/
 4496static inline HRESULT IUIAutomationSelectionItemPattern_QueryInterface(IUIAutomationSelectionItemPattern* This,REFIID riid,void **ppvObject) {
 4497    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 4498}
 4499static inline ULONG IUIAutomationSelectionItemPattern_AddRef(IUIAutomationSelectionItemPattern* This) {
 4500    return This->lpVtbl->AddRef(This);
 4501}
 4502static inline ULONG IUIAutomationSelectionItemPattern_Release(IUIAutomationSelectionItemPattern* This) {
 4503    return This->lpVtbl->Release(This);
 4504}
 4505/*** IUIAutomationSelectionItemPattern methods ***/
 4506static inline HRESULT IUIAutomationSelectionItemPattern_Select(IUIAutomationSelectionItemPattern* This) {
 4507    return This->lpVtbl->Select(This);
 4508}
 4509static inline HRESULT IUIAutomationSelectionItemPattern_AddToSelection(IUIAutomationSelectionItemPattern* This) {
 4510    return This->lpVtbl->AddToSelection(This);
 4511}
 4512static inline HRESULT IUIAutomationSelectionItemPattern_RemoveFromSelection(IUIAutomationSelectionItemPattern* This) {
 4513    return This->lpVtbl->RemoveFromSelection(This);
 4514}
 4515static inline HRESULT IUIAutomationSelectionItemPattern_get_CurrentIsSelected(IUIAutomationSelectionItemPattern* This,WINBOOL *retVal) {
 4516    return This->lpVtbl->get_CurrentIsSelected(This,retVal);
 4517}
 4518static inline HRESULT IUIAutomationSelectionItemPattern_get_CurrentSelectionContainer(IUIAutomationSelectionItemPattern* This,IUIAutomationElement **retVal) {
 4519    return This->lpVtbl->get_CurrentSelectionContainer(This,retVal);
 4520}
 4521static inline HRESULT IUIAutomationSelectionItemPattern_get_CachedIsSelected(IUIAutomationSelectionItemPattern* This,WINBOOL *retVal) {
 4522    return This->lpVtbl->get_CachedIsSelected(This,retVal);
 4523}
 4524static inline HRESULT IUIAutomationSelectionItemPattern_get_CachedSelectionContainer(IUIAutomationSelectionItemPattern* This,IUIAutomationElement **retVal) {
 4525    return This->lpVtbl->get_CachedSelectionContainer(This,retVal);
 4526}
 4527#endif
 4528#endif
 4529
 4530#endif
 4531
 4532
 4533#endif  /* __IUIAutomationSelectionItemPattern_INTERFACE_DEFINED__ */
 4534
 4535/*****************************************************************************
 4536 * IUIAutomationSynchronizedInputPattern interface
 4537 */
 4538#ifndef __IUIAutomationSynchronizedInputPattern_INTERFACE_DEFINED__
 4539#define __IUIAutomationSynchronizedInputPattern_INTERFACE_DEFINED__
 4540
 4541DEFINE_GUID(IID_IUIAutomationSynchronizedInputPattern, 0x2233be0b, 0xafb7, 0x448b, 0x9f,0xda, 0x3b,0x37,0x8a,0xa5,0xea,0xe1);
 4542#if defined(__cplusplus) && !defined(CINTERFACE)
 4543MIDL_INTERFACE("2233be0b-afb7-448b-9fda-3b378aa5eae1")
 4544IUIAutomationSynchronizedInputPattern : public IUnknown
 4545{
 4546    virtual HRESULT STDMETHODCALLTYPE StartListening(
 4547        enum SynchronizedInputType inputType) = 0;
 4548
 4549    virtual HRESULT STDMETHODCALLTYPE Cancel(
 4550        ) = 0;
 4551
 4552};
 4553#ifdef __CRT_UUID_DECL
 4554__CRT_UUID_DECL(IUIAutomationSynchronizedInputPattern, 0x2233be0b, 0xafb7, 0x448b, 0x9f,0xda, 0x3b,0x37,0x8a,0xa5,0xea,0xe1)
 4555#endif
 4556#else
 4557typedef struct IUIAutomationSynchronizedInputPatternVtbl {
 4558    BEGIN_INTERFACE
 4559
 4560    /*** IUnknown methods ***/
 4561    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 4562        IUIAutomationSynchronizedInputPattern *This,
 4563        REFIID riid,
 4564        void **ppvObject);
 4565
 4566    ULONG (STDMETHODCALLTYPE *AddRef)(
 4567        IUIAutomationSynchronizedInputPattern *This);
 4568
 4569    ULONG (STDMETHODCALLTYPE *Release)(
 4570        IUIAutomationSynchronizedInputPattern *This);
 4571
 4572    /*** IUIAutomationSynchronizedInputPattern methods ***/
 4573    HRESULT (STDMETHODCALLTYPE *StartListening)(
 4574        IUIAutomationSynchronizedInputPattern *This,
 4575        enum SynchronizedInputType inputType);
 4576
 4577    HRESULT (STDMETHODCALLTYPE *Cancel)(
 4578        IUIAutomationSynchronizedInputPattern *This);
 4579
 4580    END_INTERFACE
 4581} IUIAutomationSynchronizedInputPatternVtbl;
 4582
 4583interface IUIAutomationSynchronizedInputPattern {
 4584    CONST_VTBL IUIAutomationSynchronizedInputPatternVtbl* lpVtbl;
 4585};
 4586
 4587#ifdef COBJMACROS
 4588#ifndef WIDL_C_INLINE_WRAPPERS
 4589/*** IUnknown methods ***/
 4590#define IUIAutomationSynchronizedInputPattern_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 4591#define IUIAutomationSynchronizedInputPattern_AddRef(This) (This)->lpVtbl->AddRef(This)
 4592#define IUIAutomationSynchronizedInputPattern_Release(This) (This)->lpVtbl->Release(This)
 4593/*** IUIAutomationSynchronizedInputPattern methods ***/
 4594#define IUIAutomationSynchronizedInputPattern_StartListening(This,inputType) (This)->lpVtbl->StartListening(This,inputType)
 4595#define IUIAutomationSynchronizedInputPattern_Cancel(This) (This)->lpVtbl->Cancel(This)
 4596#else
 4597/*** IUnknown methods ***/
 4598static inline HRESULT IUIAutomationSynchronizedInputPattern_QueryInterface(IUIAutomationSynchronizedInputPattern* This,REFIID riid,void **ppvObject) {
 4599    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 4600}
 4601static inline ULONG IUIAutomationSynchronizedInputPattern_AddRef(IUIAutomationSynchronizedInputPattern* This) {
 4602    return This->lpVtbl->AddRef(This);
 4603}
 4604static inline ULONG IUIAutomationSynchronizedInputPattern_Release(IUIAutomationSynchronizedInputPattern* This) {
 4605    return This->lpVtbl->Release(This);
 4606}
 4607/*** IUIAutomationSynchronizedInputPattern methods ***/
 4608static inline HRESULT IUIAutomationSynchronizedInputPattern_StartListening(IUIAutomationSynchronizedInputPattern* This,enum SynchronizedInputType inputType) {
 4609    return This->lpVtbl->StartListening(This,inputType);
 4610}
 4611static inline HRESULT IUIAutomationSynchronizedInputPattern_Cancel(IUIAutomationSynchronizedInputPattern* This) {
 4612    return This->lpVtbl->Cancel(This);
 4613}
 4614#endif
 4615#endif
 4616
 4617#endif
 4618
 4619
 4620#endif  /* __IUIAutomationSynchronizedInputPattern_INTERFACE_DEFINED__ */
 4621
 4622/*****************************************************************************
 4623 * IUIAutomationTablePattern interface
 4624 */
 4625#ifndef __IUIAutomationTablePattern_INTERFACE_DEFINED__
 4626#define __IUIAutomationTablePattern_INTERFACE_DEFINED__
 4627
 4628DEFINE_GUID(IID_IUIAutomationTablePattern, 0x620e691c, 0xea96, 0x4710, 0xa8,0x50, 0x75,0x4b,0x24,0xce,0x24,0x17);
 4629#if defined(__cplusplus) && !defined(CINTERFACE)
 4630MIDL_INTERFACE("620e691c-ea96-4710-a850-754b24ce2417")
 4631IUIAutomationTablePattern : public IUnknown
 4632{
 4633    virtual HRESULT STDMETHODCALLTYPE GetCurrentRowHeaders(
 4634        IUIAutomationElementArray **retVal) = 0;
 4635
 4636    virtual HRESULT STDMETHODCALLTYPE GetCurrentColumnHeaders(
 4637        IUIAutomationElementArray **retVal) = 0;
 4638
 4639    virtual HRESULT STDMETHODCALLTYPE get_CurrentRowOrColumnMajor(
 4640        enum RowOrColumnMajor *retVal) = 0;
 4641
 4642    virtual HRESULT STDMETHODCALLTYPE GetCachedRowHeaders(
 4643        IUIAutomationElementArray **retVal) = 0;
 4644
 4645    virtual HRESULT STDMETHODCALLTYPE GetCachedColumnHeaders(
 4646        IUIAutomationElementArray **retVal) = 0;
 4647
 4648    virtual HRESULT STDMETHODCALLTYPE get_CachedRowOrColumnMajor(
 4649        enum RowOrColumnMajor *retVal) = 0;
 4650
 4651};
 4652#ifdef __CRT_UUID_DECL
 4653__CRT_UUID_DECL(IUIAutomationTablePattern, 0x620e691c, 0xea96, 0x4710, 0xa8,0x50, 0x75,0x4b,0x24,0xce,0x24,0x17)
 4654#endif
 4655#else
 4656typedef struct IUIAutomationTablePatternVtbl {
 4657    BEGIN_INTERFACE
 4658
 4659    /*** IUnknown methods ***/
 4660    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 4661        IUIAutomationTablePattern *This,
 4662        REFIID riid,
 4663        void **ppvObject);
 4664
 4665    ULONG (STDMETHODCALLTYPE *AddRef)(
 4666        IUIAutomationTablePattern *This);
 4667
 4668    ULONG (STDMETHODCALLTYPE *Release)(
 4669        IUIAutomationTablePattern *This);
 4670
 4671    /*** IUIAutomationTablePattern methods ***/
 4672    HRESULT (STDMETHODCALLTYPE *GetCurrentRowHeaders)(
 4673        IUIAutomationTablePattern *This,
 4674        IUIAutomationElementArray **retVal);
 4675
 4676    HRESULT (STDMETHODCALLTYPE *GetCurrentColumnHeaders)(
 4677        IUIAutomationTablePattern *This,
 4678        IUIAutomationElementArray **retVal);
 4679
 4680    HRESULT (STDMETHODCALLTYPE *get_CurrentRowOrColumnMajor)(
 4681        IUIAutomationTablePattern *This,
 4682        enum RowOrColumnMajor *retVal);
 4683
 4684    HRESULT (STDMETHODCALLTYPE *GetCachedRowHeaders)(
 4685        IUIAutomationTablePattern *This,
 4686        IUIAutomationElementArray **retVal);
 4687
 4688    HRESULT (STDMETHODCALLTYPE *GetCachedColumnHeaders)(
 4689        IUIAutomationTablePattern *This,
 4690        IUIAutomationElementArray **retVal);
 4691
 4692    HRESULT (STDMETHODCALLTYPE *get_CachedRowOrColumnMajor)(
 4693        IUIAutomationTablePattern *This,
 4694        enum RowOrColumnMajor *retVal);
 4695
 4696    END_INTERFACE
 4697} IUIAutomationTablePatternVtbl;
 4698
 4699interface IUIAutomationTablePattern {
 4700    CONST_VTBL IUIAutomationTablePatternVtbl* lpVtbl;
 4701};
 4702
 4703#ifdef COBJMACROS
 4704#ifndef WIDL_C_INLINE_WRAPPERS
 4705/*** IUnknown methods ***/
 4706#define IUIAutomationTablePattern_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 4707#define IUIAutomationTablePattern_AddRef(This) (This)->lpVtbl->AddRef(This)
 4708#define IUIAutomationTablePattern_Release(This) (This)->lpVtbl->Release(This)
 4709/*** IUIAutomationTablePattern methods ***/
 4710#define IUIAutomationTablePattern_GetCurrentRowHeaders(This,retVal) (This)->lpVtbl->GetCurrentRowHeaders(This,retVal)
 4711#define IUIAutomationTablePattern_GetCurrentColumnHeaders(This,retVal) (This)->lpVtbl->GetCurrentColumnHeaders(This,retVal)
 4712#define IUIAutomationTablePattern_get_CurrentRowOrColumnMajor(This,retVal) (This)->lpVtbl->get_CurrentRowOrColumnMajor(This,retVal)
 4713#define IUIAutomationTablePattern_GetCachedRowHeaders(This,retVal) (This)->lpVtbl->GetCachedRowHeaders(This,retVal)
 4714#define IUIAutomationTablePattern_GetCachedColumnHeaders(This,retVal) (This)->lpVtbl->GetCachedColumnHeaders(This,retVal)
 4715#define IUIAutomationTablePattern_get_CachedRowOrColumnMajor(This,retVal) (This)->lpVtbl->get_CachedRowOrColumnMajor(This,retVal)
 4716#else
 4717/*** IUnknown methods ***/
 4718static inline HRESULT IUIAutomationTablePattern_QueryInterface(IUIAutomationTablePattern* This,REFIID riid,void **ppvObject) {
 4719    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 4720}
 4721static inline ULONG IUIAutomationTablePattern_AddRef(IUIAutomationTablePattern* This) {
 4722    return This->lpVtbl->AddRef(This);
 4723}
 4724static inline ULONG IUIAutomationTablePattern_Release(IUIAutomationTablePattern* This) {
 4725    return This->lpVtbl->Release(This);
 4726}
 4727/*** IUIAutomationTablePattern methods ***/
 4728static inline HRESULT IUIAutomationTablePattern_GetCurrentRowHeaders(IUIAutomationTablePattern* This,IUIAutomationElementArray **retVal) {
 4729    return This->lpVtbl->GetCurrentRowHeaders(This,retVal);
 4730}
 4731static inline HRESULT IUIAutomationTablePattern_GetCurrentColumnHeaders(IUIAutomationTablePattern* This,IUIAutomationElementArray **retVal) {
 4732    return This->lpVtbl->GetCurrentColumnHeaders(This,retVal);
 4733}
 4734static inline HRESULT IUIAutomationTablePattern_get_CurrentRowOrColumnMajor(IUIAutomationTablePattern* This,enum RowOrColumnMajor *retVal) {
 4735    return This->lpVtbl->get_CurrentRowOrColumnMajor(This,retVal);
 4736}
 4737static inline HRESULT IUIAutomationTablePattern_GetCachedRowHeaders(IUIAutomationTablePattern* This,IUIAutomationElementArray **retVal) {
 4738    return This->lpVtbl->GetCachedRowHeaders(This,retVal);
 4739}
 4740static inline HRESULT IUIAutomationTablePattern_GetCachedColumnHeaders(IUIAutomationTablePattern* This,IUIAutomationElementArray **retVal) {
 4741    return This->lpVtbl->GetCachedColumnHeaders(This,retVal);
 4742}
 4743static inline HRESULT IUIAutomationTablePattern_get_CachedRowOrColumnMajor(IUIAutomationTablePattern* This,enum RowOrColumnMajor *retVal) {
 4744    return This->lpVtbl->get_CachedRowOrColumnMajor(This,retVal);
 4745}
 4746#endif
 4747#endif
 4748
 4749#endif
 4750
 4751
 4752#endif  /* __IUIAutomationTablePattern_INTERFACE_DEFINED__ */
 4753
 4754/*****************************************************************************
 4755 * IUIAutomationTableItemPattern interface
 4756 */
 4757#ifndef __IUIAutomationTableItemPattern_INTERFACE_DEFINED__
 4758#define __IUIAutomationTableItemPattern_INTERFACE_DEFINED__
 4759
 4760DEFINE_GUID(IID_IUIAutomationTableItemPattern, 0x0b964eb3, 0xef2e, 0x4464, 0x9c,0x79, 0x61,0xd6,0x17,0x37,0xa2,0x7e);
 4761#if defined(__cplusplus) && !defined(CINTERFACE)
 4762MIDL_INTERFACE("0b964eb3-ef2e-4464-9c79-61d61737a27e")
 4763IUIAutomationTableItemPattern : public IUnknown
 4764{
 4765    virtual HRESULT STDMETHODCALLTYPE GetCurrentRowHeaderItems(
 4766        IUIAutomationElementArray **retVal) = 0;
 4767
 4768    virtual HRESULT STDMETHODCALLTYPE GetCurrentColumnHeaderItems(
 4769        IUIAutomationElementArray **retVal) = 0;
 4770
 4771    virtual HRESULT STDMETHODCALLTYPE GetCachedRowHeaderItems(
 4772        IUIAutomationElementArray **retVal) = 0;
 4773
 4774    virtual HRESULT STDMETHODCALLTYPE GetCachedColumnHeaderItems(
 4775        IUIAutomationElementArray **retVal) = 0;
 4776
 4777};
 4778#ifdef __CRT_UUID_DECL
 4779__CRT_UUID_DECL(IUIAutomationTableItemPattern, 0x0b964eb3, 0xef2e, 0x4464, 0x9c,0x79, 0x61,0xd6,0x17,0x37,0xa2,0x7e)
 4780#endif
 4781#else
 4782typedef struct IUIAutomationTableItemPatternVtbl {
 4783    BEGIN_INTERFACE
 4784
 4785    /*** IUnknown methods ***/
 4786    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 4787        IUIAutomationTableItemPattern *This,
 4788        REFIID riid,
 4789        void **ppvObject);
 4790
 4791    ULONG (STDMETHODCALLTYPE *AddRef)(
 4792        IUIAutomationTableItemPattern *This);
 4793
 4794    ULONG (STDMETHODCALLTYPE *Release)(
 4795        IUIAutomationTableItemPattern *This);
 4796
 4797    /*** IUIAutomationTableItemPattern methods ***/
 4798    HRESULT (STDMETHODCALLTYPE *GetCurrentRowHeaderItems)(
 4799        IUIAutomationTableItemPattern *This,
 4800        IUIAutomationElementArray **retVal);
 4801
 4802    HRESULT (STDMETHODCALLTYPE *GetCurrentColumnHeaderItems)(
 4803        IUIAutomationTableItemPattern *This,
 4804        IUIAutomationElementArray **retVal);
 4805
 4806    HRESULT (STDMETHODCALLTYPE *GetCachedRowHeaderItems)(
 4807        IUIAutomationTableItemPattern *This,
 4808        IUIAutomationElementArray **retVal);
 4809
 4810    HRESULT (STDMETHODCALLTYPE *GetCachedColumnHeaderItems)(
 4811        IUIAutomationTableItemPattern *This,
 4812        IUIAutomationElementArray **retVal);
 4813
 4814    END_INTERFACE
 4815} IUIAutomationTableItemPatternVtbl;
 4816
 4817interface IUIAutomationTableItemPattern {
 4818    CONST_VTBL IUIAutomationTableItemPatternVtbl* lpVtbl;
 4819};
 4820
 4821#ifdef COBJMACROS
 4822#ifndef WIDL_C_INLINE_WRAPPERS
 4823/*** IUnknown methods ***/
 4824#define IUIAutomationTableItemPattern_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 4825#define IUIAutomationTableItemPattern_AddRef(This) (This)->lpVtbl->AddRef(This)
 4826#define IUIAutomationTableItemPattern_Release(This) (This)->lpVtbl->Release(This)
 4827/*** IUIAutomationTableItemPattern methods ***/
 4828#define IUIAutomationTableItemPattern_GetCurrentRowHeaderItems(This,retVal) (This)->lpVtbl->GetCurrentRowHeaderItems(This,retVal)
 4829#define IUIAutomationTableItemPattern_GetCurrentColumnHeaderItems(This,retVal) (This)->lpVtbl->GetCurrentColumnHeaderItems(This,retVal)
 4830#define IUIAutomationTableItemPattern_GetCachedRowHeaderItems(This,retVal) (This)->lpVtbl->GetCachedRowHeaderItems(This,retVal)
 4831#define IUIAutomationTableItemPattern_GetCachedColumnHeaderItems(This,retVal) (This)->lpVtbl->GetCachedColumnHeaderItems(This,retVal)
 4832#else
 4833/*** IUnknown methods ***/
 4834static inline HRESULT IUIAutomationTableItemPattern_QueryInterface(IUIAutomationTableItemPattern* This,REFIID riid,void **ppvObject) {
 4835    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 4836}
 4837static inline ULONG IUIAutomationTableItemPattern_AddRef(IUIAutomationTableItemPattern* This) {
 4838    return This->lpVtbl->AddRef(This);
 4839}
 4840static inline ULONG IUIAutomationTableItemPattern_Release(IUIAutomationTableItemPattern* This) {
 4841    return This->lpVtbl->Release(This);
 4842}
 4843/*** IUIAutomationTableItemPattern methods ***/
 4844static inline HRESULT IUIAutomationTableItemPattern_GetCurrentRowHeaderItems(IUIAutomationTableItemPattern* This,IUIAutomationElementArray **retVal) {
 4845    return This->lpVtbl->GetCurrentRowHeaderItems(This,retVal);
 4846}
 4847static inline HRESULT IUIAutomationTableItemPattern_GetCurrentColumnHeaderItems(IUIAutomationTableItemPattern* This,IUIAutomationElementArray **retVal) {
 4848    return This->lpVtbl->GetCurrentColumnHeaderItems(This,retVal);
 4849}
 4850static inline HRESULT IUIAutomationTableItemPattern_GetCachedRowHeaderItems(IUIAutomationTableItemPattern* This,IUIAutomationElementArray **retVal) {
 4851    return This->lpVtbl->GetCachedRowHeaderItems(This,retVal);
 4852}
 4853static inline HRESULT IUIAutomationTableItemPattern_GetCachedColumnHeaderItems(IUIAutomationTableItemPattern* This,IUIAutomationElementArray **retVal) {
 4854    return This->lpVtbl->GetCachedColumnHeaderItems(This,retVal);
 4855}
 4856#endif
 4857#endif
 4858
 4859#endif
 4860
 4861
 4862#endif  /* __IUIAutomationTableItemPattern_INTERFACE_DEFINED__ */
 4863
 4864/*****************************************************************************
 4865 * IUIAutomationTogglePattern interface
 4866 */
 4867#ifndef __IUIAutomationTogglePattern_INTERFACE_DEFINED__
 4868#define __IUIAutomationTogglePattern_INTERFACE_DEFINED__
 4869
 4870DEFINE_GUID(IID_IUIAutomationTogglePattern, 0x94cf8058, 0x9b8d, 0x4ab9, 0x8b,0xfd, 0x4c,0xd0,0xa3,0x3c,0x8c,0x70);
 4871#if defined(__cplusplus) && !defined(CINTERFACE)
 4872MIDL_INTERFACE("94cf8058-9b8d-4ab9-8bfd-4cd0a33c8c70")
 4873IUIAutomationTogglePattern : public IUnknown
 4874{
 4875    virtual HRESULT STDMETHODCALLTYPE Toggle(
 4876        ) = 0;
 4877
 4878    virtual HRESULT STDMETHODCALLTYPE get_CurrentToggleState(
 4879        enum ToggleState *retVal) = 0;
 4880
 4881    virtual HRESULT STDMETHODCALLTYPE get_CachedToggleState(
 4882        enum ToggleState *retVal) = 0;
 4883
 4884};
 4885#ifdef __CRT_UUID_DECL
 4886__CRT_UUID_DECL(IUIAutomationTogglePattern, 0x94cf8058, 0x9b8d, 0x4ab9, 0x8b,0xfd, 0x4c,0xd0,0xa3,0x3c,0x8c,0x70)
 4887#endif
 4888#else
 4889typedef struct IUIAutomationTogglePatternVtbl {
 4890    BEGIN_INTERFACE
 4891
 4892    /*** IUnknown methods ***/
 4893    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 4894        IUIAutomationTogglePattern *This,
 4895        REFIID riid,
 4896        void **ppvObject);
 4897
 4898    ULONG (STDMETHODCALLTYPE *AddRef)(
 4899        IUIAutomationTogglePattern *This);
 4900
 4901    ULONG (STDMETHODCALLTYPE *Release)(
 4902        IUIAutomationTogglePattern *This);
 4903
 4904    /*** IUIAutomationTogglePattern methods ***/
 4905    HRESULT (STDMETHODCALLTYPE *Toggle)(
 4906        IUIAutomationTogglePattern *This);
 4907
 4908    HRESULT (STDMETHODCALLTYPE *get_CurrentToggleState)(
 4909        IUIAutomationTogglePattern *This,
 4910        enum ToggleState *retVal);
 4911
 4912    HRESULT (STDMETHODCALLTYPE *get_CachedToggleState)(
 4913        IUIAutomationTogglePattern *This,
 4914        enum ToggleState *retVal);
 4915
 4916    END_INTERFACE
 4917} IUIAutomationTogglePatternVtbl;
 4918
 4919interface IUIAutomationTogglePattern {
 4920    CONST_VTBL IUIAutomationTogglePatternVtbl* lpVtbl;
 4921};
 4922
 4923#ifdef COBJMACROS
 4924#ifndef WIDL_C_INLINE_WRAPPERS
 4925/*** IUnknown methods ***/
 4926#define IUIAutomationTogglePattern_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 4927#define IUIAutomationTogglePattern_AddRef(This) (This)->lpVtbl->AddRef(This)
 4928#define IUIAutomationTogglePattern_Release(This) (This)->lpVtbl->Release(This)
 4929/*** IUIAutomationTogglePattern methods ***/
 4930#define IUIAutomationTogglePattern_Toggle(This) (This)->lpVtbl->Toggle(This)
 4931#define IUIAutomationTogglePattern_get_CurrentToggleState(This,retVal) (This)->lpVtbl->get_CurrentToggleState(This,retVal)
 4932#define IUIAutomationTogglePattern_get_CachedToggleState(This,retVal) (This)->lpVtbl->get_CachedToggleState(This,retVal)
 4933#else
 4934/*** IUnknown methods ***/
 4935static inline HRESULT IUIAutomationTogglePattern_QueryInterface(IUIAutomationTogglePattern* This,REFIID riid,void **ppvObject) {
 4936    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 4937}
 4938static inline ULONG IUIAutomationTogglePattern_AddRef(IUIAutomationTogglePattern* This) {
 4939    return This->lpVtbl->AddRef(This);
 4940}
 4941static inline ULONG IUIAutomationTogglePattern_Release(IUIAutomationTogglePattern* This) {
 4942    return This->lpVtbl->Release(This);
 4943}
 4944/*** IUIAutomationTogglePattern methods ***/
 4945static inline HRESULT IUIAutomationTogglePattern_Toggle(IUIAutomationTogglePattern* This) {
 4946    return This->lpVtbl->Toggle(This);
 4947}
 4948static inline HRESULT IUIAutomationTogglePattern_get_CurrentToggleState(IUIAutomationTogglePattern* This,enum ToggleState *retVal) {
 4949    return This->lpVtbl->get_CurrentToggleState(This,retVal);
 4950}
 4951static inline HRESULT IUIAutomationTogglePattern_get_CachedToggleState(IUIAutomationTogglePattern* This,enum ToggleState *retVal) {
 4952    return This->lpVtbl->get_CachedToggleState(This,retVal);
 4953}
 4954#endif
 4955#endif
 4956
 4957#endif
 4958
 4959
 4960#endif  /* __IUIAutomationTogglePattern_INTERFACE_DEFINED__ */
 4961
 4962/*****************************************************************************
 4963 * IUIAutomationTransformPattern interface
 4964 */
 4965#ifndef __IUIAutomationTransformPattern_INTERFACE_DEFINED__
 4966#define __IUIAutomationTransformPattern_INTERFACE_DEFINED__
 4967
 4968DEFINE_GUID(IID_IUIAutomationTransformPattern, 0xa9b55844, 0xa55d, 0x4ef0, 0x92,0x6d, 0x56,0x9c,0x16,0xff,0x89,0xbb);
 4969#if defined(__cplusplus) && !defined(CINTERFACE)
 4970MIDL_INTERFACE("a9b55844-a55d-4ef0-926d-569c16ff89bb")
 4971IUIAutomationTransformPattern : public IUnknown
 4972{
 4973    virtual HRESULT STDMETHODCALLTYPE Move(
 4974        double x,
 4975        double y) = 0;
 4976
 4977    virtual HRESULT STDMETHODCALLTYPE Resize(
 4978        double width,
 4979        double height) = 0;
 4980
 4981    virtual HRESULT STDMETHODCALLTYPE Rotate(
 4982        double degrees) = 0;
 4983
 4984    virtual HRESULT STDMETHODCALLTYPE get_CurrentCanMove(
 4985        WINBOOL *retVal) = 0;
 4986
 4987    virtual HRESULT STDMETHODCALLTYPE get_CurrentCanResize(
 4988        WINBOOL *retVal) = 0;
 4989
 4990    virtual HRESULT STDMETHODCALLTYPE get_CurrentCanRotate(
 4991        WINBOOL *retVal) = 0;
 4992
 4993    virtual HRESULT STDMETHODCALLTYPE get_CachedCanMove(
 4994        WINBOOL *retVal) = 0;
 4995
 4996    virtual HRESULT STDMETHODCALLTYPE get_CachedCanResize(
 4997        WINBOOL *retVal) = 0;
 4998
 4999    virtual HRESULT STDMETHODCALLTYPE get_CachedCanRotate(
 5000        WINBOOL *retVal) = 0;
 5001
 5002};
 5003#ifdef __CRT_UUID_DECL
 5004__CRT_UUID_DECL(IUIAutomationTransformPattern, 0xa9b55844, 0xa55d, 0x4ef0, 0x92,0x6d, 0x56,0x9c,0x16,0xff,0x89,0xbb)
 5005#endif
 5006#else
 5007typedef struct IUIAutomationTransformPatternVtbl {
 5008    BEGIN_INTERFACE
 5009
 5010    /*** IUnknown methods ***/
 5011    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 5012        IUIAutomationTransformPattern *This,
 5013        REFIID riid,
 5014        void **ppvObject);
 5015
 5016    ULONG (STDMETHODCALLTYPE *AddRef)(
 5017        IUIAutomationTransformPattern *This);
 5018
 5019    ULONG (STDMETHODCALLTYPE *Release)(
 5020        IUIAutomationTransformPattern *This);
 5021
 5022    /*** IUIAutomationTransformPattern methods ***/
 5023    HRESULT (STDMETHODCALLTYPE *Move)(
 5024        IUIAutomationTransformPattern *This,
 5025        double x,
 5026        double y);
 5027
 5028    HRESULT (STDMETHODCALLTYPE *Resize)(
 5029        IUIAutomationTransformPattern *This,
 5030        double width,
 5031        double height);
 5032
 5033    HRESULT (STDMETHODCALLTYPE *Rotate)(
 5034        IUIAutomationTransformPattern *This,
 5035        double degrees);
 5036
 5037    HRESULT (STDMETHODCALLTYPE *get_CurrentCanMove)(
 5038        IUIAutomationTransformPattern *This,
 5039        WINBOOL *retVal);
 5040
 5041    HRESULT (STDMETHODCALLTYPE *get_CurrentCanResize)(
 5042        IUIAutomationTransformPattern *This,
 5043        WINBOOL *retVal);
 5044
 5045    HRESULT (STDMETHODCALLTYPE *get_CurrentCanRotate)(
 5046        IUIAutomationTransformPattern *This,
 5047        WINBOOL *retVal);
 5048
 5049    HRESULT (STDMETHODCALLTYPE *get_CachedCanMove)(
 5050        IUIAutomationTransformPattern *This,
 5051        WINBOOL *retVal);
 5052
 5053    HRESULT (STDMETHODCALLTYPE *get_CachedCanResize)(
 5054        IUIAutomationTransformPattern *This,
 5055        WINBOOL *retVal);
 5056
 5057    HRESULT (STDMETHODCALLTYPE *get_CachedCanRotate)(
 5058        IUIAutomationTransformPattern *This,
 5059        WINBOOL *retVal);
 5060
 5061    END_INTERFACE
 5062} IUIAutomationTransformPatternVtbl;
 5063
 5064interface IUIAutomationTransformPattern {
 5065    CONST_VTBL IUIAutomationTransformPatternVtbl* lpVtbl;
 5066};
 5067
 5068#ifdef COBJMACROS
 5069#ifndef WIDL_C_INLINE_WRAPPERS
 5070/*** IUnknown methods ***/
 5071#define IUIAutomationTransformPattern_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 5072#define IUIAutomationTransformPattern_AddRef(This) (This)->lpVtbl->AddRef(This)
 5073#define IUIAutomationTransformPattern_Release(This) (This)->lpVtbl->Release(This)
 5074/*** IUIAutomationTransformPattern methods ***/
 5075#define IUIAutomationTransformPattern_Move(This,x,y) (This)->lpVtbl->Move(This,x,y)
 5076#define IUIAutomationTransformPattern_Resize(This,width,height) (This)->lpVtbl->Resize(This,width,height)
 5077#define IUIAutomationTransformPattern_Rotate(This,degrees) (This)->lpVtbl->Rotate(This,degrees)
 5078#define IUIAutomationTransformPattern_get_CurrentCanMove(This,retVal) (This)->lpVtbl->get_CurrentCanMove(This,retVal)
 5079#define IUIAutomationTransformPattern_get_CurrentCanResize(This,retVal) (This)->lpVtbl->get_CurrentCanResize(This,retVal)
 5080#define IUIAutomationTransformPattern_get_CurrentCanRotate(This,retVal) (This)->lpVtbl->get_CurrentCanRotate(This,retVal)
 5081#define IUIAutomationTransformPattern_get_CachedCanMove(This,retVal) (This)->lpVtbl->get_CachedCanMove(This,retVal)
 5082#define IUIAutomationTransformPattern_get_CachedCanResize(This,retVal) (This)->lpVtbl->get_CachedCanResize(This,retVal)
 5083#define IUIAutomationTransformPattern_get_CachedCanRotate(This,retVal) (This)->lpVtbl->get_CachedCanRotate(This,retVal)
 5084#else
 5085/*** IUnknown methods ***/
 5086static inline HRESULT IUIAutomationTransformPattern_QueryInterface(IUIAutomationTransformPattern* This,REFIID riid,void **ppvObject) {
 5087    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 5088}
 5089static inline ULONG IUIAutomationTransformPattern_AddRef(IUIAutomationTransformPattern* This) {
 5090    return This->lpVtbl->AddRef(This);
 5091}
 5092static inline ULONG IUIAutomationTransformPattern_Release(IUIAutomationTransformPattern* This) {
 5093    return This->lpVtbl->Release(This);
 5094}
 5095/*** IUIAutomationTransformPattern methods ***/
 5096static inline HRESULT IUIAutomationTransformPattern_Move(IUIAutomationTransformPattern* This,double x,double y) {
 5097    return This->lpVtbl->Move(This,x,y);
 5098}
 5099static inline HRESULT IUIAutomationTransformPattern_Resize(IUIAutomationTransformPattern* This,double width,double height) {
 5100    return This->lpVtbl->Resize(This,width,height);
 5101}
 5102static inline HRESULT IUIAutomationTransformPattern_Rotate(IUIAutomationTransformPattern* This,double degrees) {
 5103    return This->lpVtbl->Rotate(This,degrees);
 5104}
 5105static inline HRESULT IUIAutomationTransformPattern_get_CurrentCanMove(IUIAutomationTransformPattern* This,WINBOOL *retVal) {
 5106    return This->lpVtbl->get_CurrentCanMove(This,retVal);
 5107}
 5108static inline HRESULT IUIAutomationTransformPattern_get_CurrentCanResize(IUIAutomationTransformPattern* This,WINBOOL *retVal) {
 5109    return This->lpVtbl->get_CurrentCanResize(This,retVal);
 5110}
 5111static inline HRESULT IUIAutomationTransformPattern_get_CurrentCanRotate(IUIAutomationTransformPattern* This,WINBOOL *retVal) {
 5112    return This->lpVtbl->get_CurrentCanRotate(This,retVal);
 5113}
 5114static inline HRESULT IUIAutomationTransformPattern_get_CachedCanMove(IUIAutomationTransformPattern* This,WINBOOL *retVal) {
 5115    return This->lpVtbl->get_CachedCanMove(This,retVal);
 5116}
 5117static inline HRESULT IUIAutomationTransformPattern_get_CachedCanResize(IUIAutomationTransformPattern* This,WINBOOL *retVal) {
 5118    return This->lpVtbl->get_CachedCanResize(This,retVal);
 5119}
 5120static inline HRESULT IUIAutomationTransformPattern_get_CachedCanRotate(IUIAutomationTransformPattern* This,WINBOOL *retVal) {
 5121    return This->lpVtbl->get_CachedCanRotate(This,retVal);
 5122}
 5123#endif
 5124#endif
 5125
 5126#endif
 5127
 5128
 5129#endif  /* __IUIAutomationTransformPattern_INTERFACE_DEFINED__ */
 5130
 5131/*****************************************************************************
 5132 * IUIAutomationValuePattern interface
 5133 */
 5134#ifndef __IUIAutomationValuePattern_INTERFACE_DEFINED__
 5135#define __IUIAutomationValuePattern_INTERFACE_DEFINED__
 5136
 5137DEFINE_GUID(IID_IUIAutomationValuePattern, 0xa94cd8b1, 0x0844, 0x4cd6, 0x9d,0x2d, 0x64,0x05,0x37,0xab,0x39,0xe9);
 5138#if defined(__cplusplus) && !defined(CINTERFACE)
 5139MIDL_INTERFACE("a94cd8b1-0844-4cd6-9d2d-640537ab39e9")
 5140IUIAutomationValuePattern : public IUnknown
 5141{
 5142    virtual HRESULT STDMETHODCALLTYPE SetValue(
 5143        BSTR val) = 0;
 5144
 5145    virtual HRESULT STDMETHODCALLTYPE get_CurrentValue(
 5146        BSTR *retVal) = 0;
 5147
 5148    virtual HRESULT STDMETHODCALLTYPE get_CurrentIsReadOnly(
 5149        WINBOOL *retVal) = 0;
 5150
 5151    virtual HRESULT STDMETHODCALLTYPE get_CachedValue(
 5152        BSTR *retVal) = 0;
 5153
 5154    virtual HRESULT STDMETHODCALLTYPE get_CachedIsReadOnly(
 5155        WINBOOL *retVal) = 0;
 5156
 5157};
 5158#ifdef __CRT_UUID_DECL
 5159__CRT_UUID_DECL(IUIAutomationValuePattern, 0xa94cd8b1, 0x0844, 0x4cd6, 0x9d,0x2d, 0x64,0x05,0x37,0xab,0x39,0xe9)
 5160#endif
 5161#else
 5162typedef struct IUIAutomationValuePatternVtbl {
 5163    BEGIN_INTERFACE
 5164
 5165    /*** IUnknown methods ***/
 5166    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 5167        IUIAutomationValuePattern *This,
 5168        REFIID riid,
 5169        void **ppvObject);
 5170
 5171    ULONG (STDMETHODCALLTYPE *AddRef)(
 5172        IUIAutomationValuePattern *This);
 5173
 5174    ULONG (STDMETHODCALLTYPE *Release)(
 5175        IUIAutomationValuePattern *This);
 5176
 5177    /*** IUIAutomationValuePattern methods ***/
 5178    HRESULT (STDMETHODCALLTYPE *SetValue)(
 5179        IUIAutomationValuePattern *This,
 5180        BSTR val);
 5181
 5182    HRESULT (STDMETHODCALLTYPE *get_CurrentValue)(
 5183        IUIAutomationValuePattern *This,
 5184        BSTR *retVal);
 5185
 5186    HRESULT (STDMETHODCALLTYPE *get_CurrentIsReadOnly)(
 5187        IUIAutomationValuePattern *This,
 5188        WINBOOL *retVal);
 5189
 5190    HRESULT (STDMETHODCALLTYPE *get_CachedValue)(
 5191        IUIAutomationValuePattern *This,
 5192        BSTR *retVal);
 5193
 5194    HRESULT (STDMETHODCALLTYPE *get_CachedIsReadOnly)(
 5195        IUIAutomationValuePattern *This,
 5196        WINBOOL *retVal);
 5197
 5198    END_INTERFACE
 5199} IUIAutomationValuePatternVtbl;
 5200
 5201interface IUIAutomationValuePattern {
 5202    CONST_VTBL IUIAutomationValuePatternVtbl* lpVtbl;
 5203};
 5204
 5205#ifdef COBJMACROS
 5206#ifndef WIDL_C_INLINE_WRAPPERS
 5207/*** IUnknown methods ***/
 5208#define IUIAutomationValuePattern_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 5209#define IUIAutomationValuePattern_AddRef(This) (This)->lpVtbl->AddRef(This)
 5210#define IUIAutomationValuePattern_Release(This) (This)->lpVtbl->Release(This)
 5211/*** IUIAutomationValuePattern methods ***/
 5212#define IUIAutomationValuePattern_SetValue(This,val) (This)->lpVtbl->SetValue(This,val)
 5213#define IUIAutomationValuePattern_get_CurrentValue(This,retVal) (This)->lpVtbl->get_CurrentValue(This,retVal)
 5214#define IUIAutomationValuePattern_get_CurrentIsReadOnly(This,retVal) (This)->lpVtbl->get_CurrentIsReadOnly(This,retVal)
 5215#define IUIAutomationValuePattern_get_CachedValue(This,retVal) (This)->lpVtbl->get_CachedValue(This,retVal)
 5216#define IUIAutomationValuePattern_get_CachedIsReadOnly(This,retVal) (This)->lpVtbl->get_CachedIsReadOnly(This,retVal)
 5217#else
 5218/*** IUnknown methods ***/
 5219static inline HRESULT IUIAutomationValuePattern_QueryInterface(IUIAutomationValuePattern* This,REFIID riid,void **ppvObject) {
 5220    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 5221}
 5222static inline ULONG IUIAutomationValuePattern_AddRef(IUIAutomationValuePattern* This) {
 5223    return This->lpVtbl->AddRef(This);
 5224}
 5225static inline ULONG IUIAutomationValuePattern_Release(IUIAutomationValuePattern* This) {
 5226    return This->lpVtbl->Release(This);
 5227}
 5228/*** IUIAutomationValuePattern methods ***/
 5229static inline HRESULT IUIAutomationValuePattern_SetValue(IUIAutomationValuePattern* This,BSTR val) {
 5230    return This->lpVtbl->SetValue(This,val);
 5231}
 5232static inline HRESULT IUIAutomationValuePattern_get_CurrentValue(IUIAutomationValuePattern* This,BSTR *retVal) {
 5233    return This->lpVtbl->get_CurrentValue(This,retVal);
 5234}
 5235static inline HRESULT IUIAutomationValuePattern_get_CurrentIsReadOnly(IUIAutomationValuePattern* This,WINBOOL *retVal) {
 5236    return This->lpVtbl->get_CurrentIsReadOnly(This,retVal);
 5237}
 5238static inline HRESULT IUIAutomationValuePattern_get_CachedValue(IUIAutomationValuePattern* This,BSTR *retVal) {
 5239    return This->lpVtbl->get_CachedValue(This,retVal);
 5240}
 5241static inline HRESULT IUIAutomationValuePattern_get_CachedIsReadOnly(IUIAutomationValuePattern* This,WINBOOL *retVal) {
 5242    return This->lpVtbl->get_CachedIsReadOnly(This,retVal);
 5243}
 5244#endif
 5245#endif
 5246
 5247#endif
 5248
 5249
 5250#endif  /* __IUIAutomationValuePattern_INTERFACE_DEFINED__ */
 5251
 5252/*****************************************************************************
 5253 * IUIAutomationWindowPattern interface
 5254 */
 5255#ifndef __IUIAutomationWindowPattern_INTERFACE_DEFINED__
 5256#define __IUIAutomationWindowPattern_INTERFACE_DEFINED__
 5257
 5258DEFINE_GUID(IID_IUIAutomationWindowPattern, 0x0faef453, 0x9208, 0x43ef, 0xbb,0xb2, 0x3b,0x48,0x51,0x77,0x86,0x4f);
 5259#if defined(__cplusplus) && !defined(CINTERFACE)
 5260MIDL_INTERFACE("0faef453-9208-43ef-bbb2-3b485177864f")
 5261IUIAutomationWindowPattern : public IUnknown
 5262{
 5263    virtual HRESULT STDMETHODCALLTYPE Close(
 5264        ) = 0;
 5265
 5266    virtual HRESULT STDMETHODCALLTYPE WaitForInputIdle(
 5267        int milliseconds,
 5268        WINBOOL *success) = 0;
 5269
 5270    virtual HRESULT STDMETHODCALLTYPE SetWindowVisualState(
 5271        enum WindowVisualState state) = 0;
 5272
 5273    virtual HRESULT STDMETHODCALLTYPE get_CurrentCanMaximize(
 5274        WINBOOL *retVal) = 0;
 5275
 5276    virtual HRESULT STDMETHODCALLTYPE get_CurrentCanMinimize(
 5277        WINBOOL *retVal) = 0;
 5278
 5279    virtual HRESULT STDMETHODCALLTYPE get_CurrentIsModal(
 5280        WINBOOL *retVal) = 0;
 5281
 5282    virtual HRESULT STDMETHODCALLTYPE get_CurrentIsTopmost(
 5283        WINBOOL *retVal) = 0;
 5284
 5285    virtual HRESULT STDMETHODCALLTYPE get_CurrentWindowVisualState(
 5286        enum WindowVisualState *retVal) = 0;
 5287
 5288    virtual HRESULT STDMETHODCALLTYPE get_CurrentWindowInteractionState(
 5289        enum WindowInteractionState *retVal) = 0;
 5290
 5291    virtual HRESULT STDMETHODCALLTYPE get_CachedCanMaximize(
 5292        WINBOOL *retVal) = 0;
 5293
 5294    virtual HRESULT STDMETHODCALLTYPE get_CachedCanMinimize(
 5295        WINBOOL *retVal) = 0;
 5296
 5297    virtual HRESULT STDMETHODCALLTYPE get_CachedIsModal(
 5298        WINBOOL *retVal) = 0;
 5299
 5300    virtual HRESULT STDMETHODCALLTYPE get_CachedIsTopmost(
 5301        WINBOOL *retVal) = 0;
 5302
 5303    virtual HRESULT STDMETHODCALLTYPE get_CachedWindowVisualState(
 5304        enum WindowVisualState *retVal) = 0;
 5305
 5306    virtual HRESULT STDMETHODCALLTYPE get_CachedWindowInteractionState(
 5307        enum WindowInteractionState *retVal) = 0;
 5308
 5309};
 5310#ifdef __CRT_UUID_DECL
 5311__CRT_UUID_DECL(IUIAutomationWindowPattern, 0x0faef453, 0x9208, 0x43ef, 0xbb,0xb2, 0x3b,0x48,0x51,0x77,0x86,0x4f)
 5312#endif
 5313#else
 5314typedef struct IUIAutomationWindowPatternVtbl {
 5315    BEGIN_INTERFACE
 5316
 5317    /*** IUnknown methods ***/
 5318    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 5319        IUIAutomationWindowPattern *This,
 5320        REFIID riid,
 5321        void **ppvObject);
 5322
 5323    ULONG (STDMETHODCALLTYPE *AddRef)(
 5324        IUIAutomationWindowPattern *This);
 5325
 5326    ULONG (STDMETHODCALLTYPE *Release)(
 5327        IUIAutomationWindowPattern *This);
 5328
 5329    /*** IUIAutomationWindowPattern methods ***/
 5330    HRESULT (STDMETHODCALLTYPE *Close)(
 5331        IUIAutomationWindowPattern *This);
 5332
 5333    HRESULT (STDMETHODCALLTYPE *WaitForInputIdle)(
 5334        IUIAutomationWindowPattern *This,
 5335        int milliseconds,
 5336        WINBOOL *success);
 5337
 5338    HRESULT (STDMETHODCALLTYPE *SetWindowVisualState)(
 5339        IUIAutomationWindowPattern *This,
 5340        enum WindowVisualState state);
 5341
 5342    HRESULT (STDMETHODCALLTYPE *get_CurrentCanMaximize)(
 5343        IUIAutomationWindowPattern *This,
 5344        WINBOOL *retVal);
 5345
 5346    HRESULT (STDMETHODCALLTYPE *get_CurrentCanMinimize)(
 5347        IUIAutomationWindowPattern *This,
 5348        WINBOOL *retVal);
 5349
 5350    HRESULT (STDMETHODCALLTYPE *get_CurrentIsModal)(
 5351        IUIAutomationWindowPattern *This,
 5352        WINBOOL *retVal);
 5353
 5354    HRESULT (STDMETHODCALLTYPE *get_CurrentIsTopmost)(
 5355        IUIAutomationWindowPattern *This,
 5356        WINBOOL *retVal);
 5357
 5358    HRESULT (STDMETHODCALLTYPE *get_CurrentWindowVisualState)(
 5359        IUIAutomationWindowPattern *This,
 5360        enum WindowVisualState *retVal);
 5361
 5362    HRESULT (STDMETHODCALLTYPE *get_CurrentWindowInteractionState)(
 5363        IUIAutomationWindowPattern *This,
 5364        enum WindowInteractionState *retVal);
 5365
 5366    HRESULT (STDMETHODCALLTYPE *get_CachedCanMaximize)(
 5367        IUIAutomationWindowPattern *This,
 5368        WINBOOL *retVal);
 5369
 5370    HRESULT (STDMETHODCALLTYPE *get_CachedCanMinimize)(
 5371        IUIAutomationWindowPattern *This,
 5372        WINBOOL *retVal);
 5373
 5374    HRESULT (STDMETHODCALLTYPE *get_CachedIsModal)(
 5375        IUIAutomationWindowPattern *This,
 5376        WINBOOL *retVal);
 5377
 5378    HRESULT (STDMETHODCALLTYPE *get_CachedIsTopmost)(
 5379        IUIAutomationWindowPattern *This,
 5380        WINBOOL *retVal);
 5381
 5382    HRESULT (STDMETHODCALLTYPE *get_CachedWindowVisualState)(
 5383        IUIAutomationWindowPattern *This,
 5384        enum WindowVisualState *retVal);
 5385
 5386    HRESULT (STDMETHODCALLTYPE *get_CachedWindowInteractionState)(
 5387        IUIAutomationWindowPattern *This,
 5388        enum WindowInteractionState *retVal);
 5389
 5390    END_INTERFACE
 5391} IUIAutomationWindowPatternVtbl;
 5392
 5393interface IUIAutomationWindowPattern {
 5394    CONST_VTBL IUIAutomationWindowPatternVtbl* lpVtbl;
 5395};
 5396
 5397#ifdef COBJMACROS
 5398#ifndef WIDL_C_INLINE_WRAPPERS
 5399/*** IUnknown methods ***/
 5400#define IUIAutomationWindowPattern_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 5401#define IUIAutomationWindowPattern_AddRef(This) (This)->lpVtbl->AddRef(This)
 5402#define IUIAutomationWindowPattern_Release(This) (This)->lpVtbl->Release(This)
 5403/*** IUIAutomationWindowPattern methods ***/
 5404#define IUIAutomationWindowPattern_Close(This) (This)->lpVtbl->Close(This)
 5405#define IUIAutomationWindowPattern_WaitForInputIdle(This,milliseconds,success) (This)->lpVtbl->WaitForInputIdle(This,milliseconds,success)
 5406#define IUIAutomationWindowPattern_SetWindowVisualState(This,state) (This)->lpVtbl->SetWindowVisualState(This,state)
 5407#define IUIAutomationWindowPattern_get_CurrentCanMaximize(This,retVal) (This)->lpVtbl->get_CurrentCanMaximize(This,retVal)
 5408#define IUIAutomationWindowPattern_get_CurrentCanMinimize(This,retVal) (This)->lpVtbl->get_CurrentCanMinimize(This,retVal)
 5409#define IUIAutomationWindowPattern_get_CurrentIsModal(This,retVal) (This)->lpVtbl->get_CurrentIsModal(This,retVal)
 5410#define IUIAutomationWindowPattern_get_CurrentIsTopmost(This,retVal) (This)->lpVtbl->get_CurrentIsTopmost(This,retVal)
 5411#define IUIAutomationWindowPattern_get_CurrentWindowVisualState(This,retVal) (This)->lpVtbl->get_CurrentWindowVisualState(This,retVal)
 5412#define IUIAutomationWindowPattern_get_CurrentWindowInteractionState(This,retVal) (This)->lpVtbl->get_CurrentWindowInteractionState(This,retVal)
 5413#define IUIAutomationWindowPattern_get_CachedCanMaximize(This,retVal) (This)->lpVtbl->get_CachedCanMaximize(This,retVal)
 5414#define IUIAutomationWindowPattern_get_CachedCanMinimize(This,retVal) (This)->lpVtbl->get_CachedCanMinimize(This,retVal)
 5415#define IUIAutomationWindowPattern_get_CachedIsModal(This,retVal) (This)->lpVtbl->get_CachedIsModal(This,retVal)
 5416#define IUIAutomationWindowPattern_get_CachedIsTopmost(This,retVal) (This)->lpVtbl->get_CachedIsTopmost(This,retVal)
 5417#define IUIAutomationWindowPattern_get_CachedWindowVisualState(This,retVal) (This)->lpVtbl->get_CachedWindowVisualState(This,retVal)
 5418#define IUIAutomationWindowPattern_get_CachedWindowInteractionState(This,retVal) (This)->lpVtbl->get_CachedWindowInteractionState(This,retVal)
 5419#else
 5420/*** IUnknown methods ***/
 5421static inline HRESULT IUIAutomationWindowPattern_QueryInterface(IUIAutomationWindowPattern* This,REFIID riid,void **ppvObject) {
 5422    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 5423}
 5424static inline ULONG IUIAutomationWindowPattern_AddRef(IUIAutomationWindowPattern* This) {
 5425    return This->lpVtbl->AddRef(This);
 5426}
 5427static inline ULONG IUIAutomationWindowPattern_Release(IUIAutomationWindowPattern* This) {
 5428    return This->lpVtbl->Release(This);
 5429}
 5430/*** IUIAutomationWindowPattern methods ***/
 5431static inline HRESULT IUIAutomationWindowPattern_Close(IUIAutomationWindowPattern* This) {
 5432    return This->lpVtbl->Close(This);
 5433}
 5434static inline HRESULT IUIAutomationWindowPattern_WaitForInputIdle(IUIAutomationWindowPattern* This,int milliseconds,WINBOOL *success) {
 5435    return This->lpVtbl->WaitForInputIdle(This,milliseconds,success);
 5436}
 5437static inline HRESULT IUIAutomationWindowPattern_SetWindowVisualState(IUIAutomationWindowPattern* This,enum WindowVisualState state) {
 5438    return This->lpVtbl->SetWindowVisualState(This,state);
 5439}
 5440static inline HRESULT IUIAutomationWindowPattern_get_CurrentCanMaximize(IUIAutomationWindowPattern* This,WINBOOL *retVal) {
 5441    return This->lpVtbl->get_CurrentCanMaximize(This,retVal);
 5442}
 5443static inline HRESULT IUIAutomationWindowPattern_get_CurrentCanMinimize(IUIAutomationWindowPattern* This,WINBOOL *retVal) {
 5444    return This->lpVtbl->get_CurrentCanMinimize(This,retVal);
 5445}
 5446static inline HRESULT IUIAutomationWindowPattern_get_CurrentIsModal(IUIAutomationWindowPattern* This,WINBOOL *retVal) {
 5447    return This->lpVtbl->get_CurrentIsModal(This,retVal);
 5448}
 5449static inline HRESULT IUIAutomationWindowPattern_get_CurrentIsTopmost(IUIAutomationWindowPattern* This,WINBOOL *retVal) {
 5450    return This->lpVtbl->get_CurrentIsTopmost(This,retVal);
 5451}
 5452static inline HRESULT IUIAutomationWindowPattern_get_CurrentWindowVisualState(IUIAutomationWindowPattern* This,enum WindowVisualState *retVal) {
 5453    return This->lpVtbl->get_CurrentWindowVisualState(This,retVal);
 5454}
 5455static inline HRESULT IUIAutomationWindowPattern_get_CurrentWindowInteractionState(IUIAutomationWindowPattern* This,enum WindowInteractionState *retVal) {
 5456    return This->lpVtbl->get_CurrentWindowInteractionState(This,retVal);
 5457}
 5458static inline HRESULT IUIAutomationWindowPattern_get_CachedCanMaximize(IUIAutomationWindowPattern* This,WINBOOL *retVal) {
 5459    return This->lpVtbl->get_CachedCanMaximize(This,retVal);
 5460}
 5461static inline HRESULT IUIAutomationWindowPattern_get_CachedCanMinimize(IUIAutomationWindowPattern* This,WINBOOL *retVal) {
 5462    return This->lpVtbl->get_CachedCanMinimize(This,retVal);
 5463}
 5464static inline HRESULT IUIAutomationWindowPattern_get_CachedIsModal(IUIAutomationWindowPattern* This,WINBOOL *retVal) {
 5465    return This->lpVtbl->get_CachedIsModal(This,retVal);
 5466}
 5467static inline HRESULT IUIAutomationWindowPattern_get_CachedIsTopmost(IUIAutomationWindowPattern* This,WINBOOL *retVal) {
 5468    return This->lpVtbl->get_CachedIsTopmost(This,retVal);
 5469}
 5470static inline HRESULT IUIAutomationWindowPattern_get_CachedWindowVisualState(IUIAutomationWindowPattern* This,enum WindowVisualState *retVal) {
 5471    return This->lpVtbl->get_CachedWindowVisualState(This,retVal);
 5472}
 5473static inline HRESULT IUIAutomationWindowPattern_get_CachedWindowInteractionState(IUIAutomationWindowPattern* This,enum WindowInteractionState *retVal) {
 5474    return This->lpVtbl->get_CachedWindowInteractionState(This,retVal);
 5475}
 5476#endif
 5477#endif
 5478
 5479#endif
 5480
 5481
 5482#endif  /* __IUIAutomationWindowPattern_INTERFACE_DEFINED__ */
 5483
 5484/*****************************************************************************
 5485 * IUIAutomationTextRange interface
 5486 */
 5487#ifndef __IUIAutomationTextRange_INTERFACE_DEFINED__
 5488#define __IUIAutomationTextRange_INTERFACE_DEFINED__
 5489
 5490DEFINE_GUID(IID_IUIAutomationTextRange, 0xa543cc6a, 0xf4ae, 0x494b, 0x82,0x39, 0xc8,0x14,0x48,0x11,0x87,0xa8);
 5491#if defined(__cplusplus) && !defined(CINTERFACE)
 5492MIDL_INTERFACE("a543cc6a-f4ae-494b-8239-c814481187a8")
 5493IUIAutomationTextRange : public IUnknown
 5494{
 5495    virtual HRESULT STDMETHODCALLTYPE Clone(
 5496        IUIAutomationTextRange **clonedRange) = 0;
 5497
 5498    virtual HRESULT STDMETHODCALLTYPE Compare(
 5499        IUIAutomationTextRange *range,
 5500        WINBOOL *areSame) = 0;
 5501
 5502    virtual HRESULT STDMETHODCALLTYPE CompareEndpoints(
 5503        enum TextPatternRangeEndpoint srcEndPoint,
 5504        IUIAutomationTextRange *range,
 5505        enum TextPatternRangeEndpoint targetEndPoint,
 5506        int *compValue) = 0;
 5507
 5508    virtual HRESULT STDMETHODCALLTYPE ExpandToEnclosingUnit(
 5509        enum TextUnit textUnit) = 0;
 5510
 5511    virtual HRESULT STDMETHODCALLTYPE FindAttribute(
 5512        TEXTATTRIBUTEID attr,
 5513        VARIANT val,
 5514        WINBOOL backward,
 5515        IUIAutomationTextRange **found) = 0;
 5516
 5517    virtual HRESULT STDMETHODCALLTYPE FindText(
 5518        BSTR text,
 5519        WINBOOL backward,
 5520        WINBOOL ignoreCase,
 5521        IUIAutomationTextRange **found) = 0;
 5522
 5523    virtual HRESULT STDMETHODCALLTYPE GetAttributeValue(
 5524        TEXTATTRIBUTEID attr,
 5525        VARIANT *value) = 0;
 5526
 5527    virtual HRESULT STDMETHODCALLTYPE GetBoundingRectangles(
 5528        SAFEARRAY **boundingRects) = 0;
 5529
 5530    virtual HRESULT STDMETHODCALLTYPE GetEnclosingElement(
 5531        IUIAutomationElement **enclosingElement) = 0;
 5532
 5533    virtual HRESULT STDMETHODCALLTYPE GetText(
 5534        int maxLength,
 5535        BSTR *text) = 0;
 5536
 5537    virtual HRESULT STDMETHODCALLTYPE Move(
 5538        enum TextUnit unit,
 5539        int count,
 5540        int *moved) = 0;
 5541
 5542    virtual HRESULT STDMETHODCALLTYPE MoveEndpointByUnit(
 5543        enum TextPatternRangeEndpoint endpoint,
 5544        enum TextUnit unit,
 5545        int count,
 5546        int *moved) = 0;
 5547
 5548    virtual HRESULT STDMETHODCALLTYPE MoveEndpointByRange(
 5549        enum TextPatternRangeEndpoint srcEndPoint,
 5550        IUIAutomationTextRange *range,
 5551        enum TextPatternRangeEndpoint targetEndPoint) = 0;
 5552
 5553    virtual HRESULT STDMETHODCALLTYPE Select(
 5554        ) = 0;
 5555
 5556    virtual HRESULT STDMETHODCALLTYPE AddToSelection(
 5557        ) = 0;
 5558
 5559    virtual HRESULT STDMETHODCALLTYPE RemoveFromSelection(
 5560        ) = 0;
 5561
 5562    virtual HRESULT STDMETHODCALLTYPE ScrollIntoView(
 5563        WINBOOL alignToTop) = 0;
 5564
 5565    virtual HRESULT STDMETHODCALLTYPE GetChildren(
 5566        IUIAutomationElementArray **children) = 0;
 5567
 5568};
 5569#ifdef __CRT_UUID_DECL
 5570__CRT_UUID_DECL(IUIAutomationTextRange, 0xa543cc6a, 0xf4ae, 0x494b, 0x82,0x39, 0xc8,0x14,0x48,0x11,0x87,0xa8)
 5571#endif
 5572#else
 5573typedef struct IUIAutomationTextRangeVtbl {
 5574    BEGIN_INTERFACE
 5575
 5576    /*** IUnknown methods ***/
 5577    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 5578        IUIAutomationTextRange *This,
 5579        REFIID riid,
 5580        void **ppvObject);
 5581
 5582    ULONG (STDMETHODCALLTYPE *AddRef)(
 5583        IUIAutomationTextRange *This);
 5584
 5585    ULONG (STDMETHODCALLTYPE *Release)(
 5586        IUIAutomationTextRange *This);
 5587
 5588    /*** IUIAutomationTextRange methods ***/
 5589    HRESULT (STDMETHODCALLTYPE *Clone)(
 5590        IUIAutomationTextRange *This,
 5591        IUIAutomationTextRange **clonedRange);
 5592
 5593    HRESULT (STDMETHODCALLTYPE *Compare)(
 5594        IUIAutomationTextRange *This,
 5595        IUIAutomationTextRange *range,
 5596        WINBOOL *areSame);
 5597
 5598    HRESULT (STDMETHODCALLTYPE *CompareEndpoints)(
 5599        IUIAutomationTextRange *This,
 5600        enum TextPatternRangeEndpoint srcEndPoint,
 5601        IUIAutomationTextRange *range,
 5602        enum TextPatternRangeEndpoint targetEndPoint,
 5603        int *compValue);
 5604
 5605    HRESULT (STDMETHODCALLTYPE *ExpandToEnclosingUnit)(
 5606        IUIAutomationTextRange *This,
 5607        enum TextUnit textUnit);
 5608
 5609    HRESULT (STDMETHODCALLTYPE *FindAttribute)(
 5610        IUIAutomationTextRange *This,
 5611        TEXTATTRIBUTEID attr,
 5612        VARIANT val,
 5613        WINBOOL backward,
 5614        IUIAutomationTextRange **found);
 5615
 5616    HRESULT (STDMETHODCALLTYPE *FindText)(
 5617        IUIAutomationTextRange *This,
 5618        BSTR text,
 5619        WINBOOL backward,
 5620        WINBOOL ignoreCase,
 5621        IUIAutomationTextRange **found);
 5622
 5623    HRESULT (STDMETHODCALLTYPE *GetAttributeValue)(
 5624        IUIAutomationTextRange *This,
 5625        TEXTATTRIBUTEID attr,
 5626        VARIANT *value);
 5627
 5628    HRESULT (STDMETHODCALLTYPE *GetBoundingRectangles)(
 5629        IUIAutomationTextRange *This,
 5630        SAFEARRAY **boundingRects);
 5631
 5632    HRESULT (STDMETHODCALLTYPE *GetEnclosingElement)(
 5633        IUIAutomationTextRange *This,
 5634        IUIAutomationElement **enclosingElement);
 5635
 5636    HRESULT (STDMETHODCALLTYPE *GetText)(
 5637        IUIAutomationTextRange *This,
 5638        int maxLength,
 5639        BSTR *text);
 5640
 5641    HRESULT (STDMETHODCALLTYPE *Move)(
 5642        IUIAutomationTextRange *This,
 5643        enum TextUnit unit,
 5644        int count,
 5645        int *moved);
 5646
 5647    HRESULT (STDMETHODCALLTYPE *MoveEndpointByUnit)(
 5648        IUIAutomationTextRange *This,
 5649        enum TextPatternRangeEndpoint endpoint,
 5650        enum TextUnit unit,
 5651        int count,
 5652        int *moved);
 5653
 5654    HRESULT (STDMETHODCALLTYPE *MoveEndpointByRange)(
 5655        IUIAutomationTextRange *This,
 5656        enum TextPatternRangeEndpoint srcEndPoint,
 5657        IUIAutomationTextRange *range,
 5658        enum TextPatternRangeEndpoint targetEndPoint);
 5659
 5660    HRESULT (STDMETHODCALLTYPE *Select)(
 5661        IUIAutomationTextRange *This);
 5662
 5663    HRESULT (STDMETHODCALLTYPE *AddToSelection)(
 5664        IUIAutomationTextRange *This);
 5665
 5666    HRESULT (STDMETHODCALLTYPE *RemoveFromSelection)(
 5667        IUIAutomationTextRange *This);
 5668
 5669    HRESULT (STDMETHODCALLTYPE *ScrollIntoView)(
 5670        IUIAutomationTextRange *This,
 5671        WINBOOL alignToTop);
 5672
 5673    HRESULT (STDMETHODCALLTYPE *GetChildren)(
 5674        IUIAutomationTextRange *This,
 5675        IUIAutomationElementArray **children);
 5676
 5677    END_INTERFACE
 5678} IUIAutomationTextRangeVtbl;
 5679
 5680interface IUIAutomationTextRange {
 5681    CONST_VTBL IUIAutomationTextRangeVtbl* lpVtbl;
 5682};
 5683
 5684#ifdef COBJMACROS
 5685#ifndef WIDL_C_INLINE_WRAPPERS
 5686/*** IUnknown methods ***/
 5687#define IUIAutomationTextRange_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 5688#define IUIAutomationTextRange_AddRef(This) (This)->lpVtbl->AddRef(This)
 5689#define IUIAutomationTextRange_Release(This) (This)->lpVtbl->Release(This)
 5690/*** IUIAutomationTextRange methods ***/
 5691#define IUIAutomationTextRange_Clone(This,clonedRange) (This)->lpVtbl->Clone(This,clonedRange)
 5692#define IUIAutomationTextRange_Compare(This,range,areSame) (This)->lpVtbl->Compare(This,range,areSame)
 5693#define IUIAutomationTextRange_CompareEndpoints(This,srcEndPoint,range,targetEndPoint,compValue) (This)->lpVtbl->CompareEndpoints(This,srcEndPoint,range,targetEndPoint,compValue)
 5694#define IUIAutomationTextRange_ExpandToEnclosingUnit(This,textUnit) (This)->lpVtbl->ExpandToEnclosingUnit(This,textUnit)
 5695#define IUIAutomationTextRange_FindAttribute(This,attr,val,backward,found) (This)->lpVtbl->FindAttribute(This,attr,val,backward,found)
 5696#define IUIAutomationTextRange_FindText(This,text,backward,ignoreCase,found) (This)->lpVtbl->FindText(This,text,backward,ignoreCase,found)
 5697#define IUIAutomationTextRange_GetAttributeValue(This,attr,value) (This)->lpVtbl->GetAttributeValue(This,attr,value)
 5698#define IUIAutomationTextRange_GetBoundingRectangles(This,boundingRects) (This)->lpVtbl->GetBoundingRectangles(This,boundingRects)
 5699#define IUIAutomationTextRange_GetEnclosingElement(This,enclosingElement) (This)->lpVtbl->GetEnclosingElement(This,enclosingElement)
 5700#define IUIAutomationTextRange_GetText(This,maxLength,text) (This)->lpVtbl->GetText(This,maxLength,text)
 5701#define IUIAutomationTextRange_Move(This,unit,count,moved) (This)->lpVtbl->Move(This,unit,count,moved)
 5702#define IUIAutomationTextRange_MoveEndpointByUnit(This,endpoint,unit,count,moved) (This)->lpVtbl->MoveEndpointByUnit(This,endpoint,unit,count,moved)
 5703#define IUIAutomationTextRange_MoveEndpointByRange(This,srcEndPoint,range,targetEndPoint) (This)->lpVtbl->MoveEndpointByRange(This,srcEndPoint,range,targetEndPoint)
 5704#define IUIAutomationTextRange_Select(This) (This)->lpVtbl->Select(This)
 5705#define IUIAutomationTextRange_AddToSelection(This) (This)->lpVtbl->AddToSelection(This)
 5706#define IUIAutomationTextRange_RemoveFromSelection(This) (This)->lpVtbl->RemoveFromSelection(This)
 5707#define IUIAutomationTextRange_ScrollIntoView(This,alignToTop) (This)->lpVtbl->ScrollIntoView(This,alignToTop)
 5708#define IUIAutomationTextRange_GetChildren(This,children) (This)->lpVtbl->GetChildren(This,children)
 5709#else
 5710/*** IUnknown methods ***/
 5711static inline HRESULT IUIAutomationTextRange_QueryInterface(IUIAutomationTextRange* This,REFIID riid,void **ppvObject) {
 5712    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 5713}
 5714static inline ULONG IUIAutomationTextRange_AddRef(IUIAutomationTextRange* This) {
 5715    return This->lpVtbl->AddRef(This);
 5716}
 5717static inline ULONG IUIAutomationTextRange_Release(IUIAutomationTextRange* This) {
 5718    return This->lpVtbl->Release(This);
 5719}
 5720/*** IUIAutomationTextRange methods ***/
 5721static inline HRESULT IUIAutomationTextRange_Clone(IUIAutomationTextRange* This,IUIAutomationTextRange **clonedRange) {
 5722    return This->lpVtbl->Clone(This,clonedRange);
 5723}
 5724static inline HRESULT IUIAutomationTextRange_Compare(IUIAutomationTextRange* This,IUIAutomationTextRange *range,WINBOOL *areSame) {
 5725    return This->lpVtbl->Compare(This,range,areSame);
 5726}
 5727static inline HRESULT IUIAutomationTextRange_CompareEndpoints(IUIAutomationTextRange* This,enum TextPatternRangeEndpoint srcEndPoint,IUIAutomationTextRange *range,enum TextPatternRangeEndpoint targetEndPoint,int *compValue) {
 5728    return This->lpVtbl->CompareEndpoints(This,srcEndPoint,range,targetEndPoint,compValue);
 5729}
 5730static inline HRESULT IUIAutomationTextRange_ExpandToEnclosingUnit(IUIAutomationTextRange* This,enum TextUnit textUnit) {
 5731    return This->lpVtbl->ExpandToEnclosingUnit(This,textUnit);
 5732}
 5733static inline HRESULT IUIAutomationTextRange_FindAttribute(IUIAutomationTextRange* This,TEXTATTRIBUTEID attr,VARIANT val,WINBOOL backward,IUIAutomationTextRange **found) {
 5734    return This->lpVtbl->FindAttribute(This,attr,val,backward,found);
 5735}
 5736static inline HRESULT IUIAutomationTextRange_FindText(IUIAutomationTextRange* This,BSTR text,WINBOOL backward,WINBOOL ignoreCase,IUIAutomationTextRange **found) {
 5737    return This->lpVtbl->FindText(This,text,backward,ignoreCase,found);
 5738}
 5739static inline HRESULT IUIAutomationTextRange_GetAttributeValue(IUIAutomationTextRange* This,TEXTATTRIBUTEID attr,VARIANT *value) {
 5740    return This->lpVtbl->GetAttributeValue(This,attr,value);
 5741}
 5742static inline HRESULT IUIAutomationTextRange_GetBoundingRectangles(IUIAutomationTextRange* This,SAFEARRAY **boundingRects) {
 5743    return This->lpVtbl->GetBoundingRectangles(This,boundingRects);
 5744}
 5745static inline HRESULT IUIAutomationTextRange_GetEnclosingElement(IUIAutomationTextRange* This,IUIAutomationElement **enclosingElement) {
 5746    return This->lpVtbl->GetEnclosingElement(This,enclosingElement);
 5747}
 5748static inline HRESULT IUIAutomationTextRange_GetText(IUIAutomationTextRange* This,int maxLength,BSTR *text) {
 5749    return This->lpVtbl->GetText(This,maxLength,text);
 5750}
 5751static inline HRESULT IUIAutomationTextRange_Move(IUIAutomationTextRange* This,enum TextUnit unit,int count,int *moved) {
 5752    return This->lpVtbl->Move(This,unit,count,moved);
 5753}
 5754static inline HRESULT IUIAutomationTextRange_MoveEndpointByUnit(IUIAutomationTextRange* This,enum TextPatternRangeEndpoint endpoint,enum TextUnit unit,int count,int *moved) {
 5755    return This->lpVtbl->MoveEndpointByUnit(This,endpoint,unit,count,moved);
 5756}
 5757static inline HRESULT IUIAutomationTextRange_MoveEndpointByRange(IUIAutomationTextRange* This,enum TextPatternRangeEndpoint srcEndPoint,IUIAutomationTextRange *range,enum TextPatternRangeEndpoint targetEndPoint) {
 5758    return This->lpVtbl->MoveEndpointByRange(This,srcEndPoint,range,targetEndPoint);
 5759}
 5760static inline HRESULT IUIAutomationTextRange_Select(IUIAutomationTextRange* This) {
 5761    return This->lpVtbl->Select(This);
 5762}
 5763static inline HRESULT IUIAutomationTextRange_AddToSelection(IUIAutomationTextRange* This) {
 5764    return This->lpVtbl->AddToSelection(This);
 5765}
 5766static inline HRESULT IUIAutomationTextRange_RemoveFromSelection(IUIAutomationTextRange* This) {
 5767    return This->lpVtbl->RemoveFromSelection(This);
 5768}
 5769static inline HRESULT IUIAutomationTextRange_ScrollIntoView(IUIAutomationTextRange* This,WINBOOL alignToTop) {
 5770    return This->lpVtbl->ScrollIntoView(This,alignToTop);
 5771}
 5772static inline HRESULT IUIAutomationTextRange_GetChildren(IUIAutomationTextRange* This,IUIAutomationElementArray **children) {
 5773    return This->lpVtbl->GetChildren(This,children);
 5774}
 5775#endif
 5776#endif
 5777
 5778#endif
 5779
 5780
 5781#endif  /* __IUIAutomationTextRange_INTERFACE_DEFINED__ */
 5782
 5783/*****************************************************************************
 5784 * IUIAutomationTextRange2 interface
 5785 */
 5786#ifndef __IUIAutomationTextRange2_INTERFACE_DEFINED__
 5787#define __IUIAutomationTextRange2_INTERFACE_DEFINED__
 5788
 5789DEFINE_GUID(IID_IUIAutomationTextRange2, 0xbb9b40e0, 0x5e04, 0x46bd, 0x9b,0xe0, 0x4b,0x60,0x1b,0x9a,0xfa,0xd4);
 5790#if defined(__cplusplus) && !defined(CINTERFACE)
 5791MIDL_INTERFACE("bb9b40e0-5e04-46bd-9be0-4b601b9afad4")
 5792IUIAutomationTextRange2 : public IUIAutomationTextRange
 5793{
 5794    virtual HRESULT STDMETHODCALLTYPE ShowContextMenu(
 5795        ) = 0;
 5796
 5797};
 5798#ifdef __CRT_UUID_DECL
 5799__CRT_UUID_DECL(IUIAutomationTextRange2, 0xbb9b40e0, 0x5e04, 0x46bd, 0x9b,0xe0, 0x4b,0x60,0x1b,0x9a,0xfa,0xd4)
 5800#endif
 5801#else
 5802typedef struct IUIAutomationTextRange2Vtbl {
 5803    BEGIN_INTERFACE
 5804
 5805    /*** IUnknown methods ***/
 5806    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 5807        IUIAutomationTextRange2 *This,
 5808        REFIID riid,
 5809        void **ppvObject);
 5810
 5811    ULONG (STDMETHODCALLTYPE *AddRef)(
 5812        IUIAutomationTextRange2 *This);
 5813
 5814    ULONG (STDMETHODCALLTYPE *Release)(
 5815        IUIAutomationTextRange2 *This);
 5816
 5817    /*** IUIAutomationTextRange methods ***/
 5818    HRESULT (STDMETHODCALLTYPE *Clone)(
 5819        IUIAutomationTextRange2 *This,
 5820        IUIAutomationTextRange **clonedRange);
 5821
 5822    HRESULT (STDMETHODCALLTYPE *Compare)(
 5823        IUIAutomationTextRange2 *This,
 5824        IUIAutomationTextRange *range,
 5825        WINBOOL *areSame);
 5826
 5827    HRESULT (STDMETHODCALLTYPE *CompareEndpoints)(
 5828        IUIAutomationTextRange2 *This,
 5829        enum TextPatternRangeEndpoint srcEndPoint,
 5830        IUIAutomationTextRange *range,
 5831        enum TextPatternRangeEndpoint targetEndPoint,
 5832        int *compValue);
 5833
 5834    HRESULT (STDMETHODCALLTYPE *ExpandToEnclosingUnit)(
 5835        IUIAutomationTextRange2 *This,
 5836        enum TextUnit textUnit);
 5837
 5838    HRESULT (STDMETHODCALLTYPE *FindAttribute)(
 5839        IUIAutomationTextRange2 *This,
 5840        TEXTATTRIBUTEID attr,
 5841        VARIANT val,
 5842        WINBOOL backward,
 5843        IUIAutomationTextRange **found);
 5844
 5845    HRESULT (STDMETHODCALLTYPE *FindText)(
 5846        IUIAutomationTextRange2 *This,
 5847        BSTR text,
 5848        WINBOOL backward,
 5849        WINBOOL ignoreCase,
 5850        IUIAutomationTextRange **found);
 5851
 5852    HRESULT (STDMETHODCALLTYPE *GetAttributeValue)(
 5853        IUIAutomationTextRange2 *This,
 5854        TEXTATTRIBUTEID attr,
 5855        VARIANT *value);
 5856
 5857    HRESULT (STDMETHODCALLTYPE *GetBoundingRectangles)(
 5858        IUIAutomationTextRange2 *This,
 5859        SAFEARRAY **boundingRects);
 5860
 5861    HRESULT (STDMETHODCALLTYPE *GetEnclosingElement)(
 5862        IUIAutomationTextRange2 *This,
 5863        IUIAutomationElement **enclosingElement);
 5864
 5865    HRESULT (STDMETHODCALLTYPE *GetText)(
 5866        IUIAutomationTextRange2 *This,
 5867        int maxLength,
 5868        BSTR *text);
 5869
 5870    HRESULT (STDMETHODCALLTYPE *Move)(
 5871        IUIAutomationTextRange2 *This,
 5872        enum TextUnit unit,
 5873        int count,
 5874        int *moved);
 5875
 5876    HRESULT (STDMETHODCALLTYPE *MoveEndpointByUnit)(
 5877        IUIAutomationTextRange2 *This,
 5878        enum TextPatternRangeEndpoint endpoint,
 5879        enum TextUnit unit,
 5880        int count,
 5881        int *moved);
 5882
 5883    HRESULT (STDMETHODCALLTYPE *MoveEndpointByRange)(
 5884        IUIAutomationTextRange2 *This,
 5885        enum TextPatternRangeEndpoint srcEndPoint,
 5886        IUIAutomationTextRange *range,
 5887        enum TextPatternRangeEndpoint targetEndPoint);
 5888
 5889    HRESULT (STDMETHODCALLTYPE *Select)(
 5890        IUIAutomationTextRange2 *This);
 5891
 5892    HRESULT (STDMETHODCALLTYPE *AddToSelection)(
 5893        IUIAutomationTextRange2 *This);
 5894
 5895    HRESULT (STDMETHODCALLTYPE *RemoveFromSelection)(
 5896        IUIAutomationTextRange2 *This);
 5897
 5898    HRESULT (STDMETHODCALLTYPE *ScrollIntoView)(
 5899        IUIAutomationTextRange2 *This,
 5900        WINBOOL alignToTop);
 5901
 5902    HRESULT (STDMETHODCALLTYPE *GetChildren)(
 5903        IUIAutomationTextRange2 *This,
 5904        IUIAutomationElementArray **children);
 5905
 5906    /*** IUIAutomationTextRange2 methods ***/
 5907    HRESULT (STDMETHODCALLTYPE *ShowContextMenu)(
 5908        IUIAutomationTextRange2 *This);
 5909
 5910    END_INTERFACE
 5911} IUIAutomationTextRange2Vtbl;
 5912
 5913interface IUIAutomationTextRange2 {
 5914    CONST_VTBL IUIAutomationTextRange2Vtbl* lpVtbl;
 5915};
 5916
 5917#ifdef COBJMACROS
 5918#ifndef WIDL_C_INLINE_WRAPPERS
 5919/*** IUnknown methods ***/
 5920#define IUIAutomationTextRange2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 5921#define IUIAutomationTextRange2_AddRef(This) (This)->lpVtbl->AddRef(This)
 5922#define IUIAutomationTextRange2_Release(This) (This)->lpVtbl->Release(This)
 5923/*** IUIAutomationTextRange methods ***/
 5924#define IUIAutomationTextRange2_Clone(This,clonedRange) (This)->lpVtbl->Clone(This,clonedRange)
 5925#define IUIAutomationTextRange2_Compare(This,range,areSame) (This)->lpVtbl->Compare(This,range,areSame)
 5926#define IUIAutomationTextRange2_CompareEndpoints(This,srcEndPoint,range,targetEndPoint,compValue) (This)->lpVtbl->CompareEndpoints(This,srcEndPoint,range,targetEndPoint,compValue)
 5927#define IUIAutomationTextRange2_ExpandToEnclosingUnit(This,textUnit) (This)->lpVtbl->ExpandToEnclosingUnit(This,textUnit)
 5928#define IUIAutomationTextRange2_FindAttribute(This,attr,val,backward,found) (This)->lpVtbl->FindAttribute(This,attr,val,backward,found)
 5929#define IUIAutomationTextRange2_FindText(This,text,backward,ignoreCase,found) (This)->lpVtbl->FindText(This,text,backward,ignoreCase,found)
 5930#define IUIAutomationTextRange2_GetAttributeValue(This,attr,value) (This)->lpVtbl->GetAttributeValue(This,attr,value)
 5931#define IUIAutomationTextRange2_GetBoundingRectangles(This,boundingRects) (This)->lpVtbl->GetBoundingRectangles(This,boundingRects)
 5932#define IUIAutomationTextRange2_GetEnclosingElement(This,enclosingElement) (This)->lpVtbl->GetEnclosingElement(This,enclosingElement)
 5933#define IUIAutomationTextRange2_GetText(This,maxLength,text) (This)->lpVtbl->GetText(This,maxLength,text)
 5934#define IUIAutomationTextRange2_Move(This,unit,count,moved) (This)->lpVtbl->Move(This,unit,count,moved)
 5935#define IUIAutomationTextRange2_MoveEndpointByUnit(This,endpoint,unit,count,moved) (This)->lpVtbl->MoveEndpointByUnit(This,endpoint,unit,count,moved)
 5936#define IUIAutomationTextRange2_MoveEndpointByRange(This,srcEndPoint,range,targetEndPoint) (This)->lpVtbl->MoveEndpointByRange(This,srcEndPoint,range,targetEndPoint)
 5937#define IUIAutomationTextRange2_Select(This) (This)->lpVtbl->Select(This)
 5938#define IUIAutomationTextRange2_AddToSelection(This) (This)->lpVtbl->AddToSelection(This)
 5939#define IUIAutomationTextRange2_RemoveFromSelection(This) (This)->lpVtbl->RemoveFromSelection(This)
 5940#define IUIAutomationTextRange2_ScrollIntoView(This,alignToTop) (This)->lpVtbl->ScrollIntoView(This,alignToTop)
 5941#define IUIAutomationTextRange2_GetChildren(This,children) (This)->lpVtbl->GetChildren(This,children)
 5942/*** IUIAutomationTextRange2 methods ***/
 5943#define IUIAutomationTextRange2_ShowContextMenu(This) (This)->lpVtbl->ShowContextMenu(This)
 5944#else
 5945/*** IUnknown methods ***/
 5946static inline HRESULT IUIAutomationTextRange2_QueryInterface(IUIAutomationTextRange2* This,REFIID riid,void **ppvObject) {
 5947    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 5948}
 5949static inline ULONG IUIAutomationTextRange2_AddRef(IUIAutomationTextRange2* This) {
 5950    return This->lpVtbl->AddRef(This);
 5951}
 5952static inline ULONG IUIAutomationTextRange2_Release(IUIAutomationTextRange2* This) {
 5953    return This->lpVtbl->Release(This);
 5954}
 5955/*** IUIAutomationTextRange methods ***/
 5956static inline HRESULT IUIAutomationTextRange2_Clone(IUIAutomationTextRange2* This,IUIAutomationTextRange **clonedRange) {
 5957    return This->lpVtbl->Clone(This,clonedRange);
 5958}
 5959static inline HRESULT IUIAutomationTextRange2_Compare(IUIAutomationTextRange2* This,IUIAutomationTextRange *range,WINBOOL *areSame) {
 5960    return This->lpVtbl->Compare(This,range,areSame);
 5961}
 5962static inline HRESULT IUIAutomationTextRange2_CompareEndpoints(IUIAutomationTextRange2* This,enum TextPatternRangeEndpoint srcEndPoint,IUIAutomationTextRange *range,enum TextPatternRangeEndpoint targetEndPoint,int *compValue) {
 5963    return This->lpVtbl->CompareEndpoints(This,srcEndPoint,range,targetEndPoint,compValue);
 5964}
 5965static inline HRESULT IUIAutomationTextRange2_ExpandToEnclosingUnit(IUIAutomationTextRange2* This,enum TextUnit textUnit) {
 5966    return This->lpVtbl->ExpandToEnclosingUnit(This,textUnit);
 5967}
 5968static inline HRESULT IUIAutomationTextRange2_FindAttribute(IUIAutomationTextRange2* This,TEXTATTRIBUTEID attr,VARIANT val,WINBOOL backward,IUIAutomationTextRange **found) {
 5969    return This->lpVtbl->FindAttribute(This,attr,val,backward,found);
 5970}
 5971static inline HRESULT IUIAutomationTextRange2_FindText(IUIAutomationTextRange2* This,BSTR text,WINBOOL backward,WINBOOL ignoreCase,IUIAutomationTextRange **found) {
 5972    return This->lpVtbl->FindText(This,text,backward,ignoreCase,found);
 5973}
 5974static inline HRESULT IUIAutomationTextRange2_GetAttributeValue(IUIAutomationTextRange2* This,TEXTATTRIBUTEID attr,VARIANT *value) {
 5975    return This->lpVtbl->GetAttributeValue(This,attr,value);
 5976}
 5977static inline HRESULT IUIAutomationTextRange2_GetBoundingRectangles(IUIAutomationTextRange2* This,SAFEARRAY **boundingRects) {
 5978    return This->lpVtbl->GetBoundingRectangles(This,boundingRects);
 5979}
 5980static inline HRESULT IUIAutomationTextRange2_GetEnclosingElement(IUIAutomationTextRange2* This,IUIAutomationElement **enclosingElement) {
 5981    return This->lpVtbl->GetEnclosingElement(This,enclosingElement);
 5982}
 5983static inline HRESULT IUIAutomationTextRange2_GetText(IUIAutomationTextRange2* This,int maxLength,BSTR *text) {
 5984    return This->lpVtbl->GetText(This,maxLength,text);
 5985}
 5986static inline HRESULT IUIAutomationTextRange2_Move(IUIAutomationTextRange2* This,enum TextUnit unit,int count,int *moved) {
 5987    return This->lpVtbl->Move(This,unit,count,moved);
 5988}
 5989static inline HRESULT IUIAutomationTextRange2_MoveEndpointByUnit(IUIAutomationTextRange2* This,enum TextPatternRangeEndpoint endpoint,enum TextUnit unit,int count,int *moved) {
 5990    return This->lpVtbl->MoveEndpointByUnit(This,endpoint,unit,count,moved);
 5991}
 5992static inline HRESULT IUIAutomationTextRange2_MoveEndpointByRange(IUIAutomationTextRange2* This,enum TextPatternRangeEndpoint srcEndPoint,IUIAutomationTextRange *range,enum TextPatternRangeEndpoint targetEndPoint) {
 5993    return This->lpVtbl->MoveEndpointByRange(This,srcEndPoint,range,targetEndPoint);
 5994}
 5995static inline HRESULT IUIAutomationTextRange2_Select(IUIAutomationTextRange2* This) {
 5996    return This->lpVtbl->Select(This);
 5997}
 5998static inline HRESULT IUIAutomationTextRange2_AddToSelection(IUIAutomationTextRange2* This) {
 5999    return This->lpVtbl->AddToSelection(This);
 6000}
 6001static inline HRESULT IUIAutomationTextRange2_RemoveFromSelection(IUIAutomationTextRange2* This) {
 6002    return This->lpVtbl->RemoveFromSelection(This);
 6003}
 6004static inline HRESULT IUIAutomationTextRange2_ScrollIntoView(IUIAutomationTextRange2* This,WINBOOL alignToTop) {
 6005    return This->lpVtbl->ScrollIntoView(This,alignToTop);
 6006}
 6007static inline HRESULT IUIAutomationTextRange2_GetChildren(IUIAutomationTextRange2* This,IUIAutomationElementArray **children) {
 6008    return This->lpVtbl->GetChildren(This,children);
 6009}
 6010/*** IUIAutomationTextRange2 methods ***/
 6011static inline HRESULT IUIAutomationTextRange2_ShowContextMenu(IUIAutomationTextRange2* This) {
 6012    return This->lpVtbl->ShowContextMenu(This);
 6013}
 6014#endif
 6015#endif
 6016
 6017#endif
 6018
 6019
 6020#endif  /* __IUIAutomationTextRange2_INTERFACE_DEFINED__ */
 6021
 6022/*****************************************************************************
 6023 * IUIAutomationTextRangeArray interface
 6024 */
 6025#ifndef __IUIAutomationTextRangeArray_INTERFACE_DEFINED__
 6026#define __IUIAutomationTextRangeArray_INTERFACE_DEFINED__
 6027
 6028DEFINE_GUID(IID_IUIAutomationTextRangeArray, 0xce4ae76a, 0xe717, 0x4c98, 0x81,0xea, 0x47,0x37,0x1d,0x02,0x8e,0xb6);
 6029#if defined(__cplusplus) && !defined(CINTERFACE)
 6030MIDL_INTERFACE("ce4ae76a-e717-4c98-81ea-47371d028eb6")
 6031IUIAutomationTextRangeArray : public IUnknown
 6032{
 6033    virtual HRESULT STDMETHODCALLTYPE get_Length(
 6034        int *length) = 0;
 6035
 6036    virtual HRESULT STDMETHODCALLTYPE GetElement(
 6037        int index,
 6038        IUIAutomationTextRange **element) = 0;
 6039
 6040};
 6041#ifdef __CRT_UUID_DECL
 6042__CRT_UUID_DECL(IUIAutomationTextRangeArray, 0xce4ae76a, 0xe717, 0x4c98, 0x81,0xea, 0x47,0x37,0x1d,0x02,0x8e,0xb6)
 6043#endif
 6044#else
 6045typedef struct IUIAutomationTextRangeArrayVtbl {
 6046    BEGIN_INTERFACE
 6047
 6048    /*** IUnknown methods ***/
 6049    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 6050        IUIAutomationTextRangeArray *This,
 6051        REFIID riid,
 6052        void **ppvObject);
 6053
 6054    ULONG (STDMETHODCALLTYPE *AddRef)(
 6055        IUIAutomationTextRangeArray *This);
 6056
 6057    ULONG (STDMETHODCALLTYPE *Release)(
 6058        IUIAutomationTextRangeArray *This);
 6059
 6060    /*** IUIAutomationTextRangeArray methods ***/
 6061    HRESULT (STDMETHODCALLTYPE *get_Length)(
 6062        IUIAutomationTextRangeArray *This,
 6063        int *length);
 6064
 6065    HRESULT (STDMETHODCALLTYPE *GetElement)(
 6066        IUIAutomationTextRangeArray *This,
 6067        int index,
 6068        IUIAutomationTextRange **element);
 6069
 6070    END_INTERFACE
 6071} IUIAutomationTextRangeArrayVtbl;
 6072
 6073interface IUIAutomationTextRangeArray {
 6074    CONST_VTBL IUIAutomationTextRangeArrayVtbl* lpVtbl;
 6075};
 6076
 6077#ifdef COBJMACROS
 6078#ifndef WIDL_C_INLINE_WRAPPERS
 6079/*** IUnknown methods ***/
 6080#define IUIAutomationTextRangeArray_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 6081#define IUIAutomationTextRangeArray_AddRef(This) (This)->lpVtbl->AddRef(This)
 6082#define IUIAutomationTextRangeArray_Release(This) (This)->lpVtbl->Release(This)
 6083/*** IUIAutomationTextRangeArray methods ***/
 6084#define IUIAutomationTextRangeArray_get_Length(This,length) (This)->lpVtbl->get_Length(This,length)
 6085#define IUIAutomationTextRangeArray_GetElement(This,index,element) (This)->lpVtbl->GetElement(This,index,element)
 6086#else
 6087/*** IUnknown methods ***/
 6088static inline HRESULT IUIAutomationTextRangeArray_QueryInterface(IUIAutomationTextRangeArray* This,REFIID riid,void **ppvObject) {
 6089    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 6090}
 6091static inline ULONG IUIAutomationTextRangeArray_AddRef(IUIAutomationTextRangeArray* This) {
 6092    return This->lpVtbl->AddRef(This);
 6093}
 6094static inline ULONG IUIAutomationTextRangeArray_Release(IUIAutomationTextRangeArray* This) {
 6095    return This->lpVtbl->Release(This);
 6096}
 6097/*** IUIAutomationTextRangeArray methods ***/
 6098static inline HRESULT IUIAutomationTextRangeArray_get_Length(IUIAutomationTextRangeArray* This,int *length) {
 6099    return This->lpVtbl->get_Length(This,length);
 6100}
 6101static inline HRESULT IUIAutomationTextRangeArray_GetElement(IUIAutomationTextRangeArray* This,int index,IUIAutomationTextRange **element) {
 6102    return This->lpVtbl->GetElement(This,index,element);
 6103}
 6104#endif
 6105#endif
 6106
 6107#endif
 6108
 6109
 6110#endif  /* __IUIAutomationTextRangeArray_INTERFACE_DEFINED__ */
 6111
 6112/*****************************************************************************
 6113 * IUIAutomationTextPattern interface
 6114 */
 6115#ifndef __IUIAutomationTextPattern_INTERFACE_DEFINED__
 6116#define __IUIAutomationTextPattern_INTERFACE_DEFINED__
 6117
 6118DEFINE_GUID(IID_IUIAutomationTextPattern, 0x32eba289, 0x3583, 0x42c9, 0x9c,0x59, 0x3b,0x6d,0x9a,0x1e,0x9b,0x6a);
 6119#if defined(__cplusplus) && !defined(CINTERFACE)
 6120MIDL_INTERFACE("32eba289-3583-42c9-9c59-3b6d9a1e9b6a")
 6121IUIAutomationTextPattern : public IUnknown
 6122{
 6123    virtual HRESULT STDMETHODCALLTYPE RangeFromPoint(
 6124        POINT pt,
 6125        IUIAutomationTextRange **range) = 0;
 6126
 6127    virtual HRESULT STDMETHODCALLTYPE RangeFromChild(
 6128        IUIAutomationElement *child,
 6129        IUIAutomationTextRange **range) = 0;
 6130
 6131    virtual HRESULT STDMETHODCALLTYPE GetSelection(
 6132        IUIAutomationTextRangeArray **ranges) = 0;
 6133
 6134    virtual HRESULT STDMETHODCALLTYPE GetVisibleRanges(
 6135        IUIAutomationTextRangeArray **ranges) = 0;
 6136
 6137    virtual HRESULT STDMETHODCALLTYPE get_DocumentRange(
 6138        IUIAutomationTextRange **range) = 0;
 6139
 6140    virtual HRESULT STDMETHODCALLTYPE get_SupportedTextSelection(
 6141        enum SupportedTextSelection *supportedTextSelection) = 0;
 6142
 6143};
 6144#ifdef __CRT_UUID_DECL
 6145__CRT_UUID_DECL(IUIAutomationTextPattern, 0x32eba289, 0x3583, 0x42c9, 0x9c,0x59, 0x3b,0x6d,0x9a,0x1e,0x9b,0x6a)
 6146#endif
 6147#else
 6148typedef struct IUIAutomationTextPatternVtbl {
 6149    BEGIN_INTERFACE
 6150
 6151    /*** IUnknown methods ***/
 6152    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 6153        IUIAutomationTextPattern *This,
 6154        REFIID riid,
 6155        void **ppvObject);
 6156
 6157    ULONG (STDMETHODCALLTYPE *AddRef)(
 6158        IUIAutomationTextPattern *This);
 6159
 6160    ULONG (STDMETHODCALLTYPE *Release)(
 6161        IUIAutomationTextPattern *This);
 6162
 6163    /*** IUIAutomationTextPattern methods ***/
 6164    HRESULT (STDMETHODCALLTYPE *RangeFromPoint)(
 6165        IUIAutomationTextPattern *This,
 6166        POINT pt,
 6167        IUIAutomationTextRange **range);
 6168
 6169    HRESULT (STDMETHODCALLTYPE *RangeFromChild)(
 6170        IUIAutomationTextPattern *This,
 6171        IUIAutomationElement *child,
 6172        IUIAutomationTextRange **range);
 6173
 6174    HRESULT (STDMETHODCALLTYPE *GetSelection)(
 6175        IUIAutomationTextPattern *This,
 6176        IUIAutomationTextRangeArray **ranges);
 6177
 6178    HRESULT (STDMETHODCALLTYPE *GetVisibleRanges)(
 6179        IUIAutomationTextPattern *This,
 6180        IUIAutomationTextRangeArray **ranges);
 6181
 6182    HRESULT (STDMETHODCALLTYPE *get_DocumentRange)(
 6183        IUIAutomationTextPattern *This,
 6184        IUIAutomationTextRange **range);
 6185
 6186    HRESULT (STDMETHODCALLTYPE *get_SupportedTextSelection)(
 6187        IUIAutomationTextPattern *This,
 6188        enum SupportedTextSelection *supportedTextSelection);
 6189
 6190    END_INTERFACE
 6191} IUIAutomationTextPatternVtbl;
 6192
 6193interface IUIAutomationTextPattern {
 6194    CONST_VTBL IUIAutomationTextPatternVtbl* lpVtbl;
 6195};
 6196
 6197#ifdef COBJMACROS
 6198#ifndef WIDL_C_INLINE_WRAPPERS
 6199/*** IUnknown methods ***/
 6200#define IUIAutomationTextPattern_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 6201#define IUIAutomationTextPattern_AddRef(This) (This)->lpVtbl->AddRef(This)
 6202#define IUIAutomationTextPattern_Release(This) (This)->lpVtbl->Release(This)
 6203/*** IUIAutomationTextPattern methods ***/
 6204#define IUIAutomationTextPattern_RangeFromPoint(This,pt,range) (This)->lpVtbl->RangeFromPoint(This,pt,range)
 6205#define IUIAutomationTextPattern_RangeFromChild(This,child,range) (This)->lpVtbl->RangeFromChild(This,child,range)
 6206#define IUIAutomationTextPattern_GetSelection(This,ranges) (This)->lpVtbl->GetSelection(This,ranges)
 6207#define IUIAutomationTextPattern_GetVisibleRanges(This,ranges) (This)->lpVtbl->GetVisibleRanges(This,ranges)
 6208#define IUIAutomationTextPattern_get_DocumentRange(This,range) (This)->lpVtbl->get_DocumentRange(This,range)
 6209#define IUIAutomationTextPattern_get_SupportedTextSelection(This,supportedTextSelection) (This)->lpVtbl->get_SupportedTextSelection(This,supportedTextSelection)
 6210#else
 6211/*** IUnknown methods ***/
 6212static inline HRESULT IUIAutomationTextPattern_QueryInterface(IUIAutomationTextPattern* This,REFIID riid,void **ppvObject) {
 6213    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 6214}
 6215static inline ULONG IUIAutomationTextPattern_AddRef(IUIAutomationTextPattern* This) {
 6216    return This->lpVtbl->AddRef(This);
 6217}
 6218static inline ULONG IUIAutomationTextPattern_Release(IUIAutomationTextPattern* This) {
 6219    return This->lpVtbl->Release(This);
 6220}
 6221/*** IUIAutomationTextPattern methods ***/
 6222static inline HRESULT IUIAutomationTextPattern_RangeFromPoint(IUIAutomationTextPattern* This,POINT pt,IUIAutomationTextRange **range) {
 6223    return This->lpVtbl->RangeFromPoint(This,pt,range);
 6224}
 6225static inline HRESULT IUIAutomationTextPattern_RangeFromChild(IUIAutomationTextPattern* This,IUIAutomationElement *child,IUIAutomationTextRange **range) {
 6226    return This->lpVtbl->RangeFromChild(This,child,range);
 6227}
 6228static inline HRESULT IUIAutomationTextPattern_GetSelection(IUIAutomationTextPattern* This,IUIAutomationTextRangeArray **ranges) {
 6229    return This->lpVtbl->GetSelection(This,ranges);
 6230}
 6231static inline HRESULT IUIAutomationTextPattern_GetVisibleRanges(IUIAutomationTextPattern* This,IUIAutomationTextRangeArray **ranges) {
 6232    return This->lpVtbl->GetVisibleRanges(This,ranges);
 6233}
 6234static inline HRESULT IUIAutomationTextPattern_get_DocumentRange(IUIAutomationTextPattern* This,IUIAutomationTextRange **range) {
 6235    return This->lpVtbl->get_DocumentRange(This,range);
 6236}
 6237static inline HRESULT IUIAutomationTextPattern_get_SupportedTextSelection(IUIAutomationTextPattern* This,enum SupportedTextSelection *supportedTextSelection) {
 6238    return This->lpVtbl->get_SupportedTextSelection(This,supportedTextSelection);
 6239}
 6240#endif
 6241#endif
 6242
 6243#endif
 6244
 6245
 6246#endif  /* __IUIAutomationTextPattern_INTERFACE_DEFINED__ */
 6247
 6248/*****************************************************************************
 6249 * IUIAutomationTextPattern2 interface
 6250 */
 6251#ifndef __IUIAutomationTextPattern2_INTERFACE_DEFINED__
 6252#define __IUIAutomationTextPattern2_INTERFACE_DEFINED__
 6253
 6254DEFINE_GUID(IID_IUIAutomationTextPattern2, 0x506a921a, 0xfcc9, 0x409f, 0xb2,0x3b, 0x37,0xeb,0x74,0x10,0x68,0x72);
 6255#if defined(__cplusplus) && !defined(CINTERFACE)
 6256MIDL_INTERFACE("506a921a-fcc9-409f-b23b-37eb74106872")
 6257IUIAutomationTextPattern2 : public IUIAutomationTextPattern
 6258{
 6259    virtual HRESULT STDMETHODCALLTYPE RangeFromAnnotation(
 6260        IUIAutomationElement *annotation,
 6261        IUIAutomationTextRange **range) = 0;
 6262
 6263    virtual HRESULT STDMETHODCALLTYPE GetCaretRange(
 6264        WINBOOL *isActive,
 6265        IUIAutomationTextRange **range) = 0;
 6266
 6267};
 6268#ifdef __CRT_UUID_DECL
 6269__CRT_UUID_DECL(IUIAutomationTextPattern2, 0x506a921a, 0xfcc9, 0x409f, 0xb2,0x3b, 0x37,0xeb,0x74,0x10,0x68,0x72)
 6270#endif
 6271#else
 6272typedef struct IUIAutomationTextPattern2Vtbl {
 6273    BEGIN_INTERFACE
 6274
 6275    /*** IUnknown methods ***/
 6276    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 6277        IUIAutomationTextPattern2 *This,
 6278        REFIID riid,
 6279        void **ppvObject);
 6280
 6281    ULONG (STDMETHODCALLTYPE *AddRef)(
 6282        IUIAutomationTextPattern2 *This);
 6283
 6284    ULONG (STDMETHODCALLTYPE *Release)(
 6285        IUIAutomationTextPattern2 *This);
 6286
 6287    /*** IUIAutomationTextPattern methods ***/
 6288    HRESULT (STDMETHODCALLTYPE *RangeFromPoint)(
 6289        IUIAutomationTextPattern2 *This,
 6290        POINT pt,
 6291        IUIAutomationTextRange **range);
 6292
 6293    HRESULT (STDMETHODCALLTYPE *RangeFromChild)(
 6294        IUIAutomationTextPattern2 *This,
 6295        IUIAutomationElement *child,
 6296        IUIAutomationTextRange **range);
 6297
 6298    HRESULT (STDMETHODCALLTYPE *GetSelection)(
 6299        IUIAutomationTextPattern2 *This,
 6300        IUIAutomationTextRangeArray **ranges);
 6301
 6302    HRESULT (STDMETHODCALLTYPE *GetVisibleRanges)(
 6303        IUIAutomationTextPattern2 *This,
 6304        IUIAutomationTextRangeArray **ranges);
 6305
 6306    HRESULT (STDMETHODCALLTYPE *get_DocumentRange)(
 6307        IUIAutomationTextPattern2 *This,
 6308        IUIAutomationTextRange **range);
 6309
 6310    HRESULT (STDMETHODCALLTYPE *get_SupportedTextSelection)(
 6311        IUIAutomationTextPattern2 *This,
 6312        enum SupportedTextSelection *supportedTextSelection);
 6313
 6314    /*** IUIAutomationTextPattern2 methods ***/
 6315    HRESULT (STDMETHODCALLTYPE *RangeFromAnnotation)(
 6316        IUIAutomationTextPattern2 *This,
 6317        IUIAutomationElement *annotation,
 6318        IUIAutomationTextRange **range);
 6319
 6320    HRESULT (STDMETHODCALLTYPE *GetCaretRange)(
 6321        IUIAutomationTextPattern2 *This,
 6322        WINBOOL *isActive,
 6323        IUIAutomationTextRange **range);
 6324
 6325    END_INTERFACE
 6326} IUIAutomationTextPattern2Vtbl;
 6327
 6328interface IUIAutomationTextPattern2 {
 6329    CONST_VTBL IUIAutomationTextPattern2Vtbl* lpVtbl;
 6330};
 6331
 6332#ifdef COBJMACROS
 6333#ifndef WIDL_C_INLINE_WRAPPERS
 6334/*** IUnknown methods ***/
 6335#define IUIAutomationTextPattern2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 6336#define IUIAutomationTextPattern2_AddRef(This) (This)->lpVtbl->AddRef(This)
 6337#define IUIAutomationTextPattern2_Release(This) (This)->lpVtbl->Release(This)
 6338/*** IUIAutomationTextPattern methods ***/
 6339#define IUIAutomationTextPattern2_RangeFromPoint(This,pt,range) (This)->lpVtbl->RangeFromPoint(This,pt,range)
 6340#define IUIAutomationTextPattern2_RangeFromChild(This,child,range) (This)->lpVtbl->RangeFromChild(This,child,range)
 6341#define IUIAutomationTextPattern2_GetSelection(This,ranges) (This)->lpVtbl->GetSelection(This,ranges)
 6342#define IUIAutomationTextPattern2_GetVisibleRanges(This,ranges) (This)->lpVtbl->GetVisibleRanges(This,ranges)
 6343#define IUIAutomationTextPattern2_get_DocumentRange(This,range) (This)->lpVtbl->get_DocumentRange(This,range)
 6344#define IUIAutomationTextPattern2_get_SupportedTextSelection(This,supportedTextSelection) (This)->lpVtbl->get_SupportedTextSelection(This,supportedTextSelection)
 6345/*** IUIAutomationTextPattern2 methods ***/
 6346#define IUIAutomationTextPattern2_RangeFromAnnotation(This,annotation,range) (This)->lpVtbl->RangeFromAnnotation(This,annotation,range)
 6347#define IUIAutomationTextPattern2_GetCaretRange(This,isActive,range) (This)->lpVtbl->GetCaretRange(This,isActive,range)
 6348#else
 6349/*** IUnknown methods ***/
 6350static inline HRESULT IUIAutomationTextPattern2_QueryInterface(IUIAutomationTextPattern2* This,REFIID riid,void **ppvObject) {
 6351    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 6352}
 6353static inline ULONG IUIAutomationTextPattern2_AddRef(IUIAutomationTextPattern2* This) {
 6354    return This->lpVtbl->AddRef(This);
 6355}
 6356static inline ULONG IUIAutomationTextPattern2_Release(IUIAutomationTextPattern2* This) {
 6357    return This->lpVtbl->Release(This);
 6358}
 6359/*** IUIAutomationTextPattern methods ***/
 6360static inline HRESULT IUIAutomationTextPattern2_RangeFromPoint(IUIAutomationTextPattern2* This,POINT pt,IUIAutomationTextRange **range) {
 6361    return This->lpVtbl->RangeFromPoint(This,pt,range);
 6362}
 6363static inline HRESULT IUIAutomationTextPattern2_RangeFromChild(IUIAutomationTextPattern2* This,IUIAutomationElement *child,IUIAutomationTextRange **range) {
 6364    return This->lpVtbl->RangeFromChild(This,child,range);
 6365}
 6366static inline HRESULT IUIAutomationTextPattern2_GetSelection(IUIAutomationTextPattern2* This,IUIAutomationTextRangeArray **ranges) {
 6367    return This->lpVtbl->GetSelection(This,ranges);
 6368}
 6369static inline HRESULT IUIAutomationTextPattern2_GetVisibleRanges(IUIAutomationTextPattern2* This,IUIAutomationTextRangeArray **ranges) {
 6370    return This->lpVtbl->GetVisibleRanges(This,ranges);
 6371}
 6372static inline HRESULT IUIAutomationTextPattern2_get_DocumentRange(IUIAutomationTextPattern2* This,IUIAutomationTextRange **range) {
 6373    return This->lpVtbl->get_DocumentRange(This,range);
 6374}
 6375static inline HRESULT IUIAutomationTextPattern2_get_SupportedTextSelection(IUIAutomationTextPattern2* This,enum SupportedTextSelection *supportedTextSelection) {
 6376    return This->lpVtbl->get_SupportedTextSelection(This,supportedTextSelection);
 6377}
 6378/*** IUIAutomationTextPattern2 methods ***/
 6379static inline HRESULT IUIAutomationTextPattern2_RangeFromAnnotation(IUIAutomationTextPattern2* This,IUIAutomationElement *annotation,IUIAutomationTextRange **range) {
 6380    return This->lpVtbl->RangeFromAnnotation(This,annotation,range);
 6381}
 6382static inline HRESULT IUIAutomationTextPattern2_GetCaretRange(IUIAutomationTextPattern2* This,WINBOOL *isActive,IUIAutomationTextRange **range) {
 6383    return This->lpVtbl->GetCaretRange(This,isActive,range);
 6384}
 6385#endif
 6386#endif
 6387
 6388#endif
 6389
 6390
 6391#endif  /* __IUIAutomationTextPattern2_INTERFACE_DEFINED__ */
 6392
 6393/*****************************************************************************
 6394 * IUIAutomationTextEditPattern interface
 6395 */
 6396#ifndef __IUIAutomationTextEditPattern_INTERFACE_DEFINED__
 6397#define __IUIAutomationTextEditPattern_INTERFACE_DEFINED__
 6398
 6399DEFINE_GUID(IID_IUIAutomationTextEditPattern, 0x17e21576, 0x996c, 0x4870, 0x99,0xd9, 0xbf,0xf3,0x23,0x38,0x0c,0x06);
 6400#if defined(__cplusplus) && !defined(CINTERFACE)
 6401MIDL_INTERFACE("17e21576-996c-4870-99d9-bff323380c06")
 6402IUIAutomationTextEditPattern : public IUIAutomationTextPattern
 6403{
 6404    virtual HRESULT STDMETHODCALLTYPE GetActiveComposition(
 6405        IUIAutomationTextRange **range) = 0;
 6406
 6407    virtual HRESULT STDMETHODCALLTYPE GetConversionTarget(
 6408        IUIAutomationTextRange **range) = 0;
 6409
 6410};
 6411#ifdef __CRT_UUID_DECL
 6412__CRT_UUID_DECL(IUIAutomationTextEditPattern, 0x17e21576, 0x996c, 0x4870, 0x99,0xd9, 0xbf,0xf3,0x23,0x38,0x0c,0x06)
 6413#endif
 6414#else
 6415typedef struct IUIAutomationTextEditPatternVtbl {
 6416    BEGIN_INTERFACE
 6417
 6418    /*** IUnknown methods ***/
 6419    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 6420        IUIAutomationTextEditPattern *This,
 6421        REFIID riid,
 6422        void **ppvObject);
 6423
 6424    ULONG (STDMETHODCALLTYPE *AddRef)(
 6425        IUIAutomationTextEditPattern *This);
 6426
 6427    ULONG (STDMETHODCALLTYPE *Release)(
 6428        IUIAutomationTextEditPattern *This);
 6429
 6430    /*** IUIAutomationTextPattern methods ***/
 6431    HRESULT (STDMETHODCALLTYPE *RangeFromPoint)(
 6432        IUIAutomationTextEditPattern *This,
 6433        POINT pt,
 6434        IUIAutomationTextRange **range);
 6435
 6436    HRESULT (STDMETHODCALLTYPE *RangeFromChild)(
 6437        IUIAutomationTextEditPattern *This,
 6438        IUIAutomationElement *child,
 6439        IUIAutomationTextRange **range);
 6440
 6441    HRESULT (STDMETHODCALLTYPE *GetSelection)(
 6442        IUIAutomationTextEditPattern *This,
 6443        IUIAutomationTextRangeArray **ranges);
 6444
 6445    HRESULT (STDMETHODCALLTYPE *GetVisibleRanges)(
 6446        IUIAutomationTextEditPattern *This,
 6447        IUIAutomationTextRangeArray **ranges);
 6448
 6449    HRESULT (STDMETHODCALLTYPE *get_DocumentRange)(
 6450        IUIAutomationTextEditPattern *This,
 6451        IUIAutomationTextRange **range);
 6452
 6453    HRESULT (STDMETHODCALLTYPE *get_SupportedTextSelection)(
 6454        IUIAutomationTextEditPattern *This,
 6455        enum SupportedTextSelection *supportedTextSelection);
 6456
 6457    /*** IUIAutomationTextEditPattern methods ***/
 6458    HRESULT (STDMETHODCALLTYPE *GetActiveComposition)(
 6459        IUIAutomationTextEditPattern *This,
 6460        IUIAutomationTextRange **range);
 6461
 6462    HRESULT (STDMETHODCALLTYPE *GetConversionTarget)(
 6463        IUIAutomationTextEditPattern *This,
 6464        IUIAutomationTextRange **range);
 6465
 6466    END_INTERFACE
 6467} IUIAutomationTextEditPatternVtbl;
 6468
 6469interface IUIAutomationTextEditPattern {
 6470    CONST_VTBL IUIAutomationTextEditPatternVtbl* lpVtbl;
 6471};
 6472
 6473#ifdef COBJMACROS
 6474#ifndef WIDL_C_INLINE_WRAPPERS
 6475/*** IUnknown methods ***/
 6476#define IUIAutomationTextEditPattern_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 6477#define IUIAutomationTextEditPattern_AddRef(This) (This)->lpVtbl->AddRef(This)
 6478#define IUIAutomationTextEditPattern_Release(This) (This)->lpVtbl->Release(This)
 6479/*** IUIAutomationTextPattern methods ***/
 6480#define IUIAutomationTextEditPattern_RangeFromPoint(This,pt,range) (This)->lpVtbl->RangeFromPoint(This,pt,range)
 6481#define IUIAutomationTextEditPattern_RangeFromChild(This,child,range) (This)->lpVtbl->RangeFromChild(This,child,range)
 6482#define IUIAutomationTextEditPattern_GetSelection(This,ranges) (This)->lpVtbl->GetSelection(This,ranges)
 6483#define IUIAutomationTextEditPattern_GetVisibleRanges(This,ranges) (This)->lpVtbl->GetVisibleRanges(This,ranges)
 6484#define IUIAutomationTextEditPattern_get_DocumentRange(This,range) (This)->lpVtbl->get_DocumentRange(This,range)
 6485#define IUIAutomationTextEditPattern_get_SupportedTextSelection(This,supportedTextSelection) (This)->lpVtbl->get_SupportedTextSelection(This,supportedTextSelection)
 6486/*** IUIAutomationTextEditPattern methods ***/
 6487#define IUIAutomationTextEditPattern_GetActiveComposition(This,range) (This)->lpVtbl->GetActiveComposition(This,range)
 6488#define IUIAutomationTextEditPattern_GetConversionTarget(This,range) (This)->lpVtbl->GetConversionTarget(This,range)
 6489#else
 6490/*** IUnknown methods ***/
 6491static inline HRESULT IUIAutomationTextEditPattern_QueryInterface(IUIAutomationTextEditPattern* This,REFIID riid,void **ppvObject) {
 6492    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 6493}
 6494static inline ULONG IUIAutomationTextEditPattern_AddRef(IUIAutomationTextEditPattern* This) {
 6495    return This->lpVtbl->AddRef(This);
 6496}
 6497static inline ULONG IUIAutomationTextEditPattern_Release(IUIAutomationTextEditPattern* This) {
 6498    return This->lpVtbl->Release(This);
 6499}
 6500/*** IUIAutomationTextPattern methods ***/
 6501static inline HRESULT IUIAutomationTextEditPattern_RangeFromPoint(IUIAutomationTextEditPattern* This,POINT pt,IUIAutomationTextRange **range) {
 6502    return This->lpVtbl->RangeFromPoint(This,pt,range);
 6503}
 6504static inline HRESULT IUIAutomationTextEditPattern_RangeFromChild(IUIAutomationTextEditPattern* This,IUIAutomationElement *child,IUIAutomationTextRange **range) {
 6505    return This->lpVtbl->RangeFromChild(This,child,range);
 6506}
 6507static inline HRESULT IUIAutomationTextEditPattern_GetSelection(IUIAutomationTextEditPattern* This,IUIAutomationTextRangeArray **ranges) {
 6508    return This->lpVtbl->GetSelection(This,ranges);
 6509}
 6510static inline HRESULT IUIAutomationTextEditPattern_GetVisibleRanges(IUIAutomationTextEditPattern* This,IUIAutomationTextRangeArray **ranges) {
 6511    return This->lpVtbl->GetVisibleRanges(This,ranges);
 6512}
 6513static inline HRESULT IUIAutomationTextEditPattern_get_DocumentRange(IUIAutomationTextEditPattern* This,IUIAutomationTextRange **range) {
 6514    return This->lpVtbl->get_DocumentRange(This,range);
 6515}
 6516static inline HRESULT IUIAutomationTextEditPattern_get_SupportedTextSelection(IUIAutomationTextEditPattern* This,enum SupportedTextSelection *supportedTextSelection) {
 6517    return This->lpVtbl->get_SupportedTextSelection(This,supportedTextSelection);
 6518}
 6519/*** IUIAutomationTextEditPattern methods ***/
 6520static inline HRESULT IUIAutomationTextEditPattern_GetActiveComposition(IUIAutomationTextEditPattern* This,IUIAutomationTextRange **range) {
 6521    return This->lpVtbl->GetActiveComposition(This,range);
 6522}
 6523static inline HRESULT IUIAutomationTextEditPattern_GetConversionTarget(IUIAutomationTextEditPattern* This,IUIAutomationTextRange **range) {
 6524    return This->lpVtbl->GetConversionTarget(This,range);
 6525}
 6526#endif
 6527#endif
 6528
 6529#endif
 6530
 6531
 6532#endif  /* __IUIAutomationTextEditPattern_INTERFACE_DEFINED__ */
 6533
 6534/*****************************************************************************
 6535 * IUIAutomationCustomNavigationPattern interface
 6536 */
 6537#ifndef __IUIAutomationCustomNavigationPattern_INTERFACE_DEFINED__
 6538#define __IUIAutomationCustomNavigationPattern_INTERFACE_DEFINED__
 6539
 6540DEFINE_GUID(IID_IUIAutomationCustomNavigationPattern, 0x01ea217a, 0x1766, 0x47ed, 0xa6,0xcc, 0xac,0xf4,0x92,0x85,0x4b,0x1f);
 6541#if defined(__cplusplus) && !defined(CINTERFACE)
 6542MIDL_INTERFACE("01ea217a-1766-47ed-a6cc-acf492854b1f")
 6543IUIAutomationCustomNavigationPattern : public IUnknown
 6544{
 6545    virtual HRESULT STDMETHODCALLTYPE Navigate(
 6546        enum NavigateDirection direction,
 6547        IUIAutomationElement **pRetVal) = 0;
 6548
 6549};
 6550#ifdef __CRT_UUID_DECL
 6551__CRT_UUID_DECL(IUIAutomationCustomNavigationPattern, 0x01ea217a, 0x1766, 0x47ed, 0xa6,0xcc, 0xac,0xf4,0x92,0x85,0x4b,0x1f)
 6552#endif
 6553#else
 6554typedef struct IUIAutomationCustomNavigationPatternVtbl {
 6555    BEGIN_INTERFACE
 6556
 6557    /*** IUnknown methods ***/
 6558    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 6559        IUIAutomationCustomNavigationPattern *This,
 6560        REFIID riid,
 6561        void **ppvObject);
 6562
 6563    ULONG (STDMETHODCALLTYPE *AddRef)(
 6564        IUIAutomationCustomNavigationPattern *This);
 6565
 6566    ULONG (STDMETHODCALLTYPE *Release)(
 6567        IUIAutomationCustomNavigationPattern *This);
 6568
 6569    /*** IUIAutomationCustomNavigationPattern methods ***/
 6570    HRESULT (STDMETHODCALLTYPE *Navigate)(
 6571        IUIAutomationCustomNavigationPattern *This,
 6572        enum NavigateDirection direction,
 6573        IUIAutomationElement **pRetVal);
 6574
 6575    END_INTERFACE
 6576} IUIAutomationCustomNavigationPatternVtbl;
 6577
 6578interface IUIAutomationCustomNavigationPattern {
 6579    CONST_VTBL IUIAutomationCustomNavigationPatternVtbl* lpVtbl;
 6580};
 6581
 6582#ifdef COBJMACROS
 6583#ifndef WIDL_C_INLINE_WRAPPERS
 6584/*** IUnknown methods ***/
 6585#define IUIAutomationCustomNavigationPattern_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 6586#define IUIAutomationCustomNavigationPattern_AddRef(This) (This)->lpVtbl->AddRef(This)
 6587#define IUIAutomationCustomNavigationPattern_Release(This) (This)->lpVtbl->Release(This)
 6588/*** IUIAutomationCustomNavigationPattern methods ***/
 6589#define IUIAutomationCustomNavigationPattern_Navigate(This,direction,pRetVal) (This)->lpVtbl->Navigate(This,direction,pRetVal)
 6590#else
 6591/*** IUnknown methods ***/
 6592static inline HRESULT IUIAutomationCustomNavigationPattern_QueryInterface(IUIAutomationCustomNavigationPattern* This,REFIID riid,void **ppvObject) {
 6593    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 6594}
 6595static inline ULONG IUIAutomationCustomNavigationPattern_AddRef(IUIAutomationCustomNavigationPattern* This) {
 6596    return This->lpVtbl->AddRef(This);
 6597}
 6598static inline ULONG IUIAutomationCustomNavigationPattern_Release(IUIAutomationCustomNavigationPattern* This) {
 6599    return This->lpVtbl->Release(This);
 6600}
 6601/*** IUIAutomationCustomNavigationPattern methods ***/
 6602static inline HRESULT IUIAutomationCustomNavigationPattern_Navigate(IUIAutomationCustomNavigationPattern* This,enum NavigateDirection direction,IUIAutomationElement **pRetVal) {
 6603    return This->lpVtbl->Navigate(This,direction,pRetVal);
 6604}
 6605#endif
 6606#endif
 6607
 6608#endif
 6609
 6610
 6611#endif  /* __IUIAutomationCustomNavigationPattern_INTERFACE_DEFINED__ */
 6612
 6613/*****************************************************************************
 6614 * IUIAutomationActiveTextPositionChangedEventHandler interface
 6615 */
 6616#ifndef __IUIAutomationActiveTextPositionChangedEventHandler_INTERFACE_DEFINED__
 6617#define __IUIAutomationActiveTextPositionChangedEventHandler_INTERFACE_DEFINED__
 6618
 6619DEFINE_GUID(IID_IUIAutomationActiveTextPositionChangedEventHandler, 0xf97933b0, 0x8dae, 0x4496, 0x89,0x97, 0x5b,0xa0,0x15,0xfe,0x0d,0x82);
 6620#if defined(__cplusplus) && !defined(CINTERFACE)
 6621MIDL_INTERFACE("f97933b0-8dae-4496-8997-5ba015fe0d82")
 6622IUIAutomationActiveTextPositionChangedEventHandler : public IUnknown
 6623{
 6624    virtual HRESULT STDMETHODCALLTYPE HandleActiveTextPositionChangedEvent(
 6625        IUIAutomationElement *sender,
 6626        IUIAutomationTextRange *range) = 0;
 6627
 6628};
 6629#ifdef __CRT_UUID_DECL
 6630__CRT_UUID_DECL(IUIAutomationActiveTextPositionChangedEventHandler, 0xf97933b0, 0x8dae, 0x4496, 0x89,0x97, 0x5b,0xa0,0x15,0xfe,0x0d,0x82)
 6631#endif
 6632#else
 6633typedef struct IUIAutomationActiveTextPositionChangedEventHandlerVtbl {
 6634    BEGIN_INTERFACE
 6635
 6636    /*** IUnknown methods ***/
 6637    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 6638        IUIAutomationActiveTextPositionChangedEventHandler *This,
 6639        REFIID riid,
 6640        void **ppvObject);
 6641
 6642    ULONG (STDMETHODCALLTYPE *AddRef)(
 6643        IUIAutomationActiveTextPositionChangedEventHandler *This);
 6644
 6645    ULONG (STDMETHODCALLTYPE *Release)(
 6646        IUIAutomationActiveTextPositionChangedEventHandler *This);
 6647
 6648    /*** IUIAutomationActiveTextPositionChangedEventHandler methods ***/
 6649    HRESULT (STDMETHODCALLTYPE *HandleActiveTextPositionChangedEvent)(
 6650        IUIAutomationActiveTextPositionChangedEventHandler *This,
 6651        IUIAutomationElement *sender,
 6652        IUIAutomationTextRange *range);
 6653
 6654    END_INTERFACE
 6655} IUIAutomationActiveTextPositionChangedEventHandlerVtbl;
 6656
 6657interface IUIAutomationActiveTextPositionChangedEventHandler {
 6658    CONST_VTBL IUIAutomationActiveTextPositionChangedEventHandlerVtbl* lpVtbl;
 6659};
 6660
 6661#ifdef COBJMACROS
 6662#ifndef WIDL_C_INLINE_WRAPPERS
 6663/*** IUnknown methods ***/
 6664#define IUIAutomationActiveTextPositionChangedEventHandler_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 6665#define IUIAutomationActiveTextPositionChangedEventHandler_AddRef(This) (This)->lpVtbl->AddRef(This)
 6666#define IUIAutomationActiveTextPositionChangedEventHandler_Release(This) (This)->lpVtbl->Release(This)
 6667/*** IUIAutomationActiveTextPositionChangedEventHandler methods ***/
 6668#define IUIAutomationActiveTextPositionChangedEventHandler_HandleActiveTextPositionChangedEvent(This,sender,range) (This)->lpVtbl->HandleActiveTextPositionChangedEvent(This,sender,range)
 6669#else
 6670/*** IUnknown methods ***/
 6671static inline HRESULT IUIAutomationActiveTextPositionChangedEventHandler_QueryInterface(IUIAutomationActiveTextPositionChangedEventHandler* This,REFIID riid,void **ppvObject) {
 6672    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 6673}
 6674static inline ULONG IUIAutomationActiveTextPositionChangedEventHandler_AddRef(IUIAutomationActiveTextPositionChangedEventHandler* This) {
 6675    return This->lpVtbl->AddRef(This);
 6676}
 6677static inline ULONG IUIAutomationActiveTextPositionChangedEventHandler_Release(IUIAutomationActiveTextPositionChangedEventHandler* This) {
 6678    return This->lpVtbl->Release(This);
 6679}
 6680/*** IUIAutomationActiveTextPositionChangedEventHandler methods ***/
 6681static inline HRESULT IUIAutomationActiveTextPositionChangedEventHandler_HandleActiveTextPositionChangedEvent(IUIAutomationActiveTextPositionChangedEventHandler* This,IUIAutomationElement *sender,IUIAutomationTextRange *range) {
 6682    return This->lpVtbl->HandleActiveTextPositionChangedEvent(This,sender,range);
 6683}
 6684#endif
 6685#endif
 6686
 6687#endif
 6688
 6689
 6690#endif  /* __IUIAutomationActiveTextPositionChangedEventHandler_INTERFACE_DEFINED__ */
 6691
 6692/*****************************************************************************
 6693 * IUIAutomationLegacyIAccessiblePattern interface
 6694 */
 6695#ifndef __IUIAutomationLegacyIAccessiblePattern_INTERFACE_DEFINED__
 6696#define __IUIAutomationLegacyIAccessiblePattern_INTERFACE_DEFINED__
 6697
 6698DEFINE_GUID(IID_IUIAutomationLegacyIAccessiblePattern, 0x828055ad, 0x355b, 0x4435, 0x86,0xd5, 0x3b,0x51,0xc1,0x4a,0x9b,0x1b);
 6699#if defined(__cplusplus) && !defined(CINTERFACE)
 6700MIDL_INTERFACE("828055ad-355b-4435-86d5-3b51c14a9b1b")
 6701IUIAutomationLegacyIAccessiblePattern : public IUnknown
 6702{
 6703    virtual HRESULT STDMETHODCALLTYPE Select(
 6704        LONG flagsSelect) = 0;
 6705
 6706    virtual HRESULT STDMETHODCALLTYPE DoDefaultAction(
 6707        ) = 0;
 6708
 6709    virtual HRESULT STDMETHODCALLTYPE SetValue(
 6710        LPCWSTR szValue) = 0;
 6711
 6712    virtual HRESULT STDMETHODCALLTYPE get_CurrentChildId(
 6713        int *pRetVal) = 0;
 6714
 6715    virtual HRESULT STDMETHODCALLTYPE get_CurrentName(
 6716        BSTR *pszName) = 0;
 6717
 6718    virtual HRESULT STDMETHODCALLTYPE get_CurrentValue(
 6719        BSTR *pszValue) = 0;
 6720
 6721    virtual HRESULT STDMETHODCALLTYPE get_CurrentDescription(
 6722        BSTR *pszDescription) = 0;
 6723
 6724    virtual HRESULT STDMETHODCALLTYPE get_CurrentRole(
 6725        DWORD *pdwRole) = 0;
 6726
 6727    virtual HRESULT STDMETHODCALLTYPE get_CurrentState(
 6728        DWORD *pdwState) = 0;
 6729
 6730    virtual HRESULT STDMETHODCALLTYPE get_CurrentHelp(
 6731        BSTR *pszHelp) = 0;
 6732
 6733    virtual HRESULT STDMETHODCALLTYPE get_CurrentKeyboardShortcut(
 6734        BSTR *pszKeyboardShortcut) = 0;
 6735
 6736    virtual HRESULT STDMETHODCALLTYPE GetCurrentSelection(
 6737        IUIAutomationElementArray **pvarSelectedChildren) = 0;
 6738
 6739    virtual HRESULT STDMETHODCALLTYPE get_CurrentDefaultAction(
 6740        BSTR *pszDefaultAction) = 0;
 6741
 6742    virtual HRESULT STDMETHODCALLTYPE get_CachedChildId(
 6743        int *pRetVal) = 0;
 6744
 6745    virtual HRESULT STDMETHODCALLTYPE get_CachedName(
 6746        BSTR *pszName) = 0;
 6747
 6748    virtual HRESULT STDMETHODCALLTYPE get_CachedValue(
 6749        BSTR *pszValue) = 0;
 6750
 6751    virtual HRESULT STDMETHODCALLTYPE get_CachedDescription(
 6752        BSTR *pszDescription) = 0;
 6753
 6754    virtual HRESULT STDMETHODCALLTYPE get_CachedRole(
 6755        DWORD *pdwRole) = 0;
 6756
 6757    virtual HRESULT STDMETHODCALLTYPE get_CachedState(
 6758        DWORD *pdwState) = 0;
 6759
 6760    virtual HRESULT STDMETHODCALLTYPE get_CachedHelp(
 6761        BSTR *pszHelp) = 0;
 6762
 6763    virtual HRESULT STDMETHODCALLTYPE get_CachedKeyboardShortcut(
 6764        BSTR *pszKeyboardShortcut) = 0;
 6765
 6766    virtual HRESULT STDMETHODCALLTYPE GetCachedSelection(
 6767        IUIAutomationElementArray **pvarSelectedChildren) = 0;
 6768
 6769    virtual HRESULT STDMETHODCALLTYPE get_CachedDefaultAction(
 6770        BSTR *pszDefaultAction) = 0;
 6771
 6772    virtual HRESULT STDMETHODCALLTYPE GetIAccessible(
 6773        IAccessible **ppAccessible) = 0;
 6774
 6775};
 6776#ifdef __CRT_UUID_DECL
 6777__CRT_UUID_DECL(IUIAutomationLegacyIAccessiblePattern, 0x828055ad, 0x355b, 0x4435, 0x86,0xd5, 0x3b,0x51,0xc1,0x4a,0x9b,0x1b)
 6778#endif
 6779#else
 6780typedef struct IUIAutomationLegacyIAccessiblePatternVtbl {
 6781    BEGIN_INTERFACE
 6782
 6783    /*** IUnknown methods ***/
 6784    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 6785        IUIAutomationLegacyIAccessiblePattern *This,
 6786        REFIID riid,
 6787        void **ppvObject);
 6788
 6789    ULONG (STDMETHODCALLTYPE *AddRef)(
 6790        IUIAutomationLegacyIAccessiblePattern *This);
 6791
 6792    ULONG (STDMETHODCALLTYPE *Release)(
 6793        IUIAutomationLegacyIAccessiblePattern *This);
 6794
 6795    /*** IUIAutomationLegacyIAccessiblePattern methods ***/
 6796    HRESULT (STDMETHODCALLTYPE *Select)(
 6797        IUIAutomationLegacyIAccessiblePattern *This,
 6798        LONG flagsSelect);
 6799
 6800    HRESULT (STDMETHODCALLTYPE *DoDefaultAction)(
 6801        IUIAutomationLegacyIAccessiblePattern *This);
 6802
 6803    HRESULT (STDMETHODCALLTYPE *SetValue)(
 6804        IUIAutomationLegacyIAccessiblePattern *This,
 6805        LPCWSTR szValue);
 6806
 6807    HRESULT (STDMETHODCALLTYPE *get_CurrentChildId)(
 6808        IUIAutomationLegacyIAccessiblePattern *This,
 6809        int *pRetVal);
 6810
 6811    HRESULT (STDMETHODCALLTYPE *get_CurrentName)(
 6812        IUIAutomationLegacyIAccessiblePattern *This,
 6813        BSTR *pszName);
 6814
 6815    HRESULT (STDMETHODCALLTYPE *get_CurrentValue)(
 6816        IUIAutomationLegacyIAccessiblePattern *This,
 6817        BSTR *pszValue);
 6818
 6819    HRESULT (STDMETHODCALLTYPE *get_CurrentDescription)(
 6820        IUIAutomationLegacyIAccessiblePattern *This,
 6821        BSTR *pszDescription);
 6822
 6823    HRESULT (STDMETHODCALLTYPE *get_CurrentRole)(
 6824        IUIAutomationLegacyIAccessiblePattern *This,
 6825        DWORD *pdwRole);
 6826
 6827    HRESULT (STDMETHODCALLTYPE *get_CurrentState)(
 6828        IUIAutomationLegacyIAccessiblePattern *This,
 6829        DWORD *pdwState);
 6830
 6831    HRESULT (STDMETHODCALLTYPE *get_CurrentHelp)(
 6832        IUIAutomationLegacyIAccessiblePattern *This,
 6833        BSTR *pszHelp);
 6834
 6835    HRESULT (STDMETHODCALLTYPE *get_CurrentKeyboardShortcut)(
 6836        IUIAutomationLegacyIAccessiblePattern *This,
 6837        BSTR *pszKeyboardShortcut);
 6838
 6839    HRESULT (STDMETHODCALLTYPE *GetCurrentSelection)(
 6840        IUIAutomationLegacyIAccessiblePattern *This,
 6841        IUIAutomationElementArray **pvarSelectedChildren);
 6842
 6843    HRESULT (STDMETHODCALLTYPE *get_CurrentDefaultAction)(
 6844        IUIAutomationLegacyIAccessiblePattern *This,
 6845        BSTR *pszDefaultAction);
 6846
 6847    HRESULT (STDMETHODCALLTYPE *get_CachedChildId)(
 6848        IUIAutomationLegacyIAccessiblePattern *This,
 6849        int *pRetVal);
 6850
 6851    HRESULT (STDMETHODCALLTYPE *get_CachedName)(
 6852        IUIAutomationLegacyIAccessiblePattern *This,
 6853        BSTR *pszName);
 6854
 6855    HRESULT (STDMETHODCALLTYPE *get_CachedValue)(
 6856        IUIAutomationLegacyIAccessiblePattern *This,
 6857        BSTR *pszValue);
 6858
 6859    HRESULT (STDMETHODCALLTYPE *get_CachedDescription)(
 6860        IUIAutomationLegacyIAccessiblePattern *This,
 6861        BSTR *pszDescription);
 6862
 6863    HRESULT (STDMETHODCALLTYPE *get_CachedRole)(
 6864        IUIAutomationLegacyIAccessiblePattern *This,
 6865        DWORD *pdwRole);
 6866
 6867    HRESULT (STDMETHODCALLTYPE *get_CachedState)(
 6868        IUIAutomationLegacyIAccessiblePattern *This,
 6869        DWORD *pdwState);
 6870
 6871    HRESULT (STDMETHODCALLTYPE *get_CachedHelp)(
 6872        IUIAutomationLegacyIAccessiblePattern *This,
 6873        BSTR *pszHelp);
 6874
 6875    HRESULT (STDMETHODCALLTYPE *get_CachedKeyboardShortcut)(
 6876        IUIAutomationLegacyIAccessiblePattern *This,
 6877        BSTR *pszKeyboardShortcut);
 6878
 6879    HRESULT (STDMETHODCALLTYPE *GetCachedSelection)(
 6880        IUIAutomationLegacyIAccessiblePattern *This,
 6881        IUIAutomationElementArray **pvarSelectedChildren);
 6882
 6883    HRESULT (STDMETHODCALLTYPE *get_CachedDefaultAction)(
 6884        IUIAutomationLegacyIAccessiblePattern *This,
 6885        BSTR *pszDefaultAction);
 6886
 6887    HRESULT (STDMETHODCALLTYPE *GetIAccessible)(
 6888        IUIAutomationLegacyIAccessiblePattern *This,
 6889        IAccessible **ppAccessible);
 6890
 6891    END_INTERFACE
 6892} IUIAutomationLegacyIAccessiblePatternVtbl;
 6893
 6894interface IUIAutomationLegacyIAccessiblePattern {
 6895    CONST_VTBL IUIAutomationLegacyIAccessiblePatternVtbl* lpVtbl;
 6896};
 6897
 6898#ifdef COBJMACROS
 6899#ifndef WIDL_C_INLINE_WRAPPERS
 6900/*** IUnknown methods ***/
 6901#define IUIAutomationLegacyIAccessiblePattern_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 6902#define IUIAutomationLegacyIAccessiblePattern_AddRef(This) (This)->lpVtbl->AddRef(This)
 6903#define IUIAutomationLegacyIAccessiblePattern_Release(This) (This)->lpVtbl->Release(This)
 6904/*** IUIAutomationLegacyIAccessiblePattern methods ***/
 6905#define IUIAutomationLegacyIAccessiblePattern_Select(This,flagsSelect) (This)->lpVtbl->Select(This,flagsSelect)
 6906#define IUIAutomationLegacyIAccessiblePattern_DoDefaultAction(This) (This)->lpVtbl->DoDefaultAction(This)
 6907#define IUIAutomationLegacyIAccessiblePattern_SetValue(This,szValue) (This)->lpVtbl->SetValue(This,szValue)
 6908#define IUIAutomationLegacyIAccessiblePattern_get_CurrentChildId(This,pRetVal) (This)->lpVtbl->get_CurrentChildId(This,pRetVal)
 6909#define IUIAutomationLegacyIAccessiblePattern_get_CurrentName(This,pszName) (This)->lpVtbl->get_CurrentName(This,pszName)
 6910#define IUIAutomationLegacyIAccessiblePattern_get_CurrentValue(This,pszValue) (This)->lpVtbl->get_CurrentValue(This,pszValue)
 6911#define IUIAutomationLegacyIAccessiblePattern_get_CurrentDescription(This,pszDescription) (This)->lpVtbl->get_CurrentDescription(This,pszDescription)
 6912#define IUIAutomationLegacyIAccessiblePattern_get_CurrentRole(This,pdwRole) (This)->lpVtbl->get_CurrentRole(This,pdwRole)
 6913#define IUIAutomationLegacyIAccessiblePattern_get_CurrentState(This,pdwState) (This)->lpVtbl->get_CurrentState(This,pdwState)
 6914#define IUIAutomationLegacyIAccessiblePattern_get_CurrentHelp(This,pszHelp) (This)->lpVtbl->get_CurrentHelp(This,pszHelp)
 6915#define IUIAutomationLegacyIAccessiblePattern_get_CurrentKeyboardShortcut(This,pszKeyboardShortcut) (This)->lpVtbl->get_CurrentKeyboardShortcut(This,pszKeyboardShortcut)
 6916#define IUIAutomationLegacyIAccessiblePattern_GetCurrentSelection(This,pvarSelectedChildren) (This)->lpVtbl->GetCurrentSelection(This,pvarSelectedChildren)
 6917#define IUIAutomationLegacyIAccessiblePattern_get_CurrentDefaultAction(This,pszDefaultAction) (This)->lpVtbl->get_CurrentDefaultAction(This,pszDefaultAction)
 6918#define IUIAutomationLegacyIAccessiblePattern_get_CachedChildId(This,pRetVal) (This)->lpVtbl->get_CachedChildId(This,pRetVal)
 6919#define IUIAutomationLegacyIAccessiblePattern_get_CachedName(This,pszName) (This)->lpVtbl->get_CachedName(This,pszName)
 6920#define IUIAutomationLegacyIAccessiblePattern_get_CachedValue(This,pszValue) (This)->lpVtbl->get_CachedValue(This,pszValue)
 6921#define IUIAutomationLegacyIAccessiblePattern_get_CachedDescription(This,pszDescription) (This)->lpVtbl->get_CachedDescription(This,pszDescription)
 6922#define IUIAutomationLegacyIAccessiblePattern_get_CachedRole(This,pdwRole) (This)->lpVtbl->get_CachedRole(This,pdwRole)
 6923#define IUIAutomationLegacyIAccessiblePattern_get_CachedState(This,pdwState) (This)->lpVtbl->get_CachedState(This,pdwState)
 6924#define IUIAutomationLegacyIAccessiblePattern_get_CachedHelp(This,pszHelp) (This)->lpVtbl->get_CachedHelp(This,pszHelp)
 6925#define IUIAutomationLegacyIAccessiblePattern_get_CachedKeyboardShortcut(This,pszKeyboardShortcut) (This)->lpVtbl->get_CachedKeyboardShortcut(This,pszKeyboardShortcut)
 6926#define IUIAutomationLegacyIAccessiblePattern_GetCachedSelection(This,pvarSelectedChildren) (This)->lpVtbl->GetCachedSelection(This,pvarSelectedChildren)
 6927#define IUIAutomationLegacyIAccessiblePattern_get_CachedDefaultAction(This,pszDefaultAction) (This)->lpVtbl->get_CachedDefaultAction(This,pszDefaultAction)
 6928#define IUIAutomationLegacyIAccessiblePattern_GetIAccessible(This,ppAccessible) (This)->lpVtbl->GetIAccessible(This,ppAccessible)
 6929#else
 6930/*** IUnknown methods ***/
 6931static inline HRESULT IUIAutomationLegacyIAccessiblePattern_QueryInterface(IUIAutomationLegacyIAccessiblePattern* This,REFIID riid,void **ppvObject) {
 6932    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 6933}
 6934static inline ULONG IUIAutomationLegacyIAccessiblePattern_AddRef(IUIAutomationLegacyIAccessiblePattern* This) {
 6935    return This->lpVtbl->AddRef(This);
 6936}
 6937static inline ULONG IUIAutomationLegacyIAccessiblePattern_Release(IUIAutomationLegacyIAccessiblePattern* This) {
 6938    return This->lpVtbl->Release(This);
 6939}
 6940/*** IUIAutomationLegacyIAccessiblePattern methods ***/
 6941static inline HRESULT IUIAutomationLegacyIAccessiblePattern_Select(IUIAutomationLegacyIAccessiblePattern* This,LONG flagsSelect) {
 6942    return This->lpVtbl->Select(This,flagsSelect);
 6943}
 6944static inline HRESULT IUIAutomationLegacyIAccessiblePattern_DoDefaultAction(IUIAutomationLegacyIAccessiblePattern* This) {
 6945    return This->lpVtbl->DoDefaultAction(This);
 6946}
 6947static inline HRESULT IUIAutomationLegacyIAccessiblePattern_SetValue(IUIAutomationLegacyIAccessiblePattern* This,LPCWSTR szValue) {
 6948    return This->lpVtbl->SetValue(This,szValue);
 6949}
 6950static inline HRESULT IUIAutomationLegacyIAccessiblePattern_get_CurrentChildId(IUIAutomationLegacyIAccessiblePattern* This,int *pRetVal) {
 6951    return This->lpVtbl->get_CurrentChildId(This,pRetVal);
 6952}
 6953static inline HRESULT IUIAutomationLegacyIAccessiblePattern_get_CurrentName(IUIAutomationLegacyIAccessiblePattern* This,BSTR *pszName) {
 6954    return This->lpVtbl->get_CurrentName(This,pszName);
 6955}
 6956static inline HRESULT IUIAutomationLegacyIAccessiblePattern_get_CurrentValue(IUIAutomationLegacyIAccessiblePattern* This,BSTR *pszValue) {
 6957    return This->lpVtbl->get_CurrentValue(This,pszValue);
 6958}
 6959static inline HRESULT IUIAutomationLegacyIAccessiblePattern_get_CurrentDescription(IUIAutomationLegacyIAccessiblePattern* This,BSTR *pszDescription) {
 6960    return This->lpVtbl->get_CurrentDescription(This,pszDescription);
 6961}
 6962static inline HRESULT IUIAutomationLegacyIAccessiblePattern_get_CurrentRole(IUIAutomationLegacyIAccessiblePattern* This,DWORD *pdwRole) {
 6963    return This->lpVtbl->get_CurrentRole(This,pdwRole);
 6964}
 6965static inline HRESULT IUIAutomationLegacyIAccessiblePattern_get_CurrentState(IUIAutomationLegacyIAccessiblePattern* This,DWORD *pdwState) {
 6966    return This->lpVtbl->get_CurrentState(This,pdwState);
 6967}
 6968static inline HRESULT IUIAutomationLegacyIAccessiblePattern_get_CurrentHelp(IUIAutomationLegacyIAccessiblePattern* This,BSTR *pszHelp) {
 6969    return This->lpVtbl->get_CurrentHelp(This,pszHelp);
 6970}
 6971static inline HRESULT IUIAutomationLegacyIAccessiblePattern_get_CurrentKeyboardShortcut(IUIAutomationLegacyIAccessiblePattern* This,BSTR *pszKeyboardShortcut) {
 6972    return This->lpVtbl->get_CurrentKeyboardShortcut(This,pszKeyboardShortcut);
 6973}
 6974static inline HRESULT IUIAutomationLegacyIAccessiblePattern_GetCurrentSelection(IUIAutomationLegacyIAccessiblePattern* This,IUIAutomationElementArray **pvarSelectedChildren) {
 6975    return This->lpVtbl->GetCurrentSelection(This,pvarSelectedChildren);
 6976}
 6977static inline HRESULT IUIAutomationLegacyIAccessiblePattern_get_CurrentDefaultAction(IUIAutomationLegacyIAccessiblePattern* This,BSTR *pszDefaultAction) {
 6978    return This->lpVtbl->get_CurrentDefaultAction(This,pszDefaultAction);
 6979}
 6980static inline HRESULT IUIAutomationLegacyIAccessiblePattern_get_CachedChildId(IUIAutomationLegacyIAccessiblePattern* This,int *pRetVal) {
 6981    return This->lpVtbl->get_CachedChildId(This,pRetVal);
 6982}
 6983static inline HRESULT IUIAutomationLegacyIAccessiblePattern_get_CachedName(IUIAutomationLegacyIAccessiblePattern* This,BSTR *pszName) {
 6984    return This->lpVtbl->get_CachedName(This,pszName);
 6985}
 6986static inline HRESULT IUIAutomationLegacyIAccessiblePattern_get_CachedValue(IUIAutomationLegacyIAccessiblePattern* This,BSTR *pszValue) {
 6987    return This->lpVtbl->get_CachedValue(This,pszValue);
 6988}
 6989static inline HRESULT IUIAutomationLegacyIAccessiblePattern_get_CachedDescription(IUIAutomationLegacyIAccessiblePattern* This,BSTR *pszDescription) {
 6990    return This->lpVtbl->get_CachedDescription(This,pszDescription);
 6991}
 6992static inline HRESULT IUIAutomationLegacyIAccessiblePattern_get_CachedRole(IUIAutomationLegacyIAccessiblePattern* This,DWORD *pdwRole) {
 6993    return This->lpVtbl->get_CachedRole(This,pdwRole);
 6994}
 6995static inline HRESULT IUIAutomationLegacyIAccessiblePattern_get_CachedState(IUIAutomationLegacyIAccessiblePattern* This,DWORD *pdwState) {
 6996    return This->lpVtbl->get_CachedState(This,pdwState);
 6997}
 6998static inline HRESULT IUIAutomationLegacyIAccessiblePattern_get_CachedHelp(IUIAutomationLegacyIAccessiblePattern* This,BSTR *pszHelp) {
 6999    return This->lpVtbl->get_CachedHelp(This,pszHelp);
 7000}
 7001static inline HRESULT IUIAutomationLegacyIAccessiblePattern_get_CachedKeyboardShortcut(IUIAutomationLegacyIAccessiblePattern* This,BSTR *pszKeyboardShortcut) {
 7002    return This->lpVtbl->get_CachedKeyboardShortcut(This,pszKeyboardShortcut);
 7003}
 7004static inline HRESULT IUIAutomationLegacyIAccessiblePattern_GetCachedSelection(IUIAutomationLegacyIAccessiblePattern* This,IUIAutomationElementArray **pvarSelectedChildren) {
 7005    return This->lpVtbl->GetCachedSelection(This,pvarSelectedChildren);
 7006}
 7007static inline HRESULT IUIAutomationLegacyIAccessiblePattern_get_CachedDefaultAction(IUIAutomationLegacyIAccessiblePattern* This,BSTR *pszDefaultAction) {
 7008    return This->lpVtbl->get_CachedDefaultAction(This,pszDefaultAction);
 7009}
 7010static inline HRESULT IUIAutomationLegacyIAccessiblePattern_GetIAccessible(IUIAutomationLegacyIAccessiblePattern* This,IAccessible **ppAccessible) {
 7011    return This->lpVtbl->GetIAccessible(This,ppAccessible);
 7012}
 7013#endif
 7014#endif
 7015
 7016#endif
 7017
 7018
 7019#endif  /* __IUIAutomationLegacyIAccessiblePattern_INTERFACE_DEFINED__ */
 7020
 7021/*****************************************************************************
 7022 * IUIAutomationItemContainerPattern interface
 7023 */
 7024#ifndef __IUIAutomationItemContainerPattern_INTERFACE_DEFINED__
 7025#define __IUIAutomationItemContainerPattern_INTERFACE_DEFINED__
 7026
 7027DEFINE_GUID(IID_IUIAutomationItemContainerPattern, 0xc690fdb2, 0x27a8, 0x423c, 0x81,0x2d, 0x42,0x97,0x73,0xc9,0x08,0x4e);
 7028#if defined(__cplusplus) && !defined(CINTERFACE)
 7029MIDL_INTERFACE("c690fdb2-27a8-423c-812d-429773c9084e")
 7030IUIAutomationItemContainerPattern : public IUnknown
 7031{
 7032    virtual HRESULT STDMETHODCALLTYPE FindItemByProperty(
 7033        IUIAutomationElement *pStartAfter,
 7034        PROPERTYID propertyId,
 7035        VARIANT value,
 7036        IUIAutomationElement **pFound) = 0;
 7037
 7038};
 7039#ifdef __CRT_UUID_DECL
 7040__CRT_UUID_DECL(IUIAutomationItemContainerPattern, 0xc690fdb2, 0x27a8, 0x423c, 0x81,0x2d, 0x42,0x97,0x73,0xc9,0x08,0x4e)
 7041#endif
 7042#else
 7043typedef struct IUIAutomationItemContainerPatternVtbl {
 7044    BEGIN_INTERFACE
 7045
 7046    /*** IUnknown methods ***/
 7047    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 7048        IUIAutomationItemContainerPattern *This,
 7049        REFIID riid,
 7050        void **ppvObject);
 7051
 7052    ULONG (STDMETHODCALLTYPE *AddRef)(
 7053        IUIAutomationItemContainerPattern *This);
 7054
 7055    ULONG (STDMETHODCALLTYPE *Release)(
 7056        IUIAutomationItemContainerPattern *This);
 7057
 7058    /*** IUIAutomationItemContainerPattern methods ***/
 7059    HRESULT (STDMETHODCALLTYPE *FindItemByProperty)(
 7060        IUIAutomationItemContainerPattern *This,
 7061        IUIAutomationElement *pStartAfter,
 7062        PROPERTYID propertyId,
 7063        VARIANT value,
 7064        IUIAutomationElement **pFound);
 7065
 7066    END_INTERFACE
 7067} IUIAutomationItemContainerPatternVtbl;
 7068
 7069interface IUIAutomationItemContainerPattern {
 7070    CONST_VTBL IUIAutomationItemContainerPatternVtbl* lpVtbl;
 7071};
 7072
 7073#ifdef COBJMACROS
 7074#ifndef WIDL_C_INLINE_WRAPPERS
 7075/*** IUnknown methods ***/
 7076#define IUIAutomationItemContainerPattern_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 7077#define IUIAutomationItemContainerPattern_AddRef(This) (This)->lpVtbl->AddRef(This)
 7078#define IUIAutomationItemContainerPattern_Release(This) (This)->lpVtbl->Release(This)
 7079/*** IUIAutomationItemContainerPattern methods ***/
 7080#define IUIAutomationItemContainerPattern_FindItemByProperty(This,pStartAfter,propertyId,value,pFound) (This)->lpVtbl->FindItemByProperty(This,pStartAfter,propertyId,value,pFound)
 7081#else
 7082/*** IUnknown methods ***/
 7083static inline HRESULT IUIAutomationItemContainerPattern_QueryInterface(IUIAutomationItemContainerPattern* This,REFIID riid,void **ppvObject) {
 7084    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 7085}
 7086static inline ULONG IUIAutomationItemContainerPattern_AddRef(IUIAutomationItemContainerPattern* This) {
 7087    return This->lpVtbl->AddRef(This);
 7088}
 7089static inline ULONG IUIAutomationItemContainerPattern_Release(IUIAutomationItemContainerPattern* This) {
 7090    return This->lpVtbl->Release(This);
 7091}
 7092/*** IUIAutomationItemContainerPattern methods ***/
 7093static inline HRESULT IUIAutomationItemContainerPattern_FindItemByProperty(IUIAutomationItemContainerPattern* This,IUIAutomationElement *pStartAfter,PROPERTYID propertyId,VARIANT value,IUIAutomationElement **pFound) {
 7094    return This->lpVtbl->FindItemByProperty(This,pStartAfter,propertyId,value,pFound);
 7095}
 7096#endif
 7097#endif
 7098
 7099#endif
 7100
 7101
 7102#endif  /* __IUIAutomationItemContainerPattern_INTERFACE_DEFINED__ */
 7103
 7104/*****************************************************************************
 7105 * IUIAutomationVirtualizedItemPattern interface
 7106 */
 7107#ifndef __IUIAutomationVirtualizedItemPattern_INTERFACE_DEFINED__
 7108#define __IUIAutomationVirtualizedItemPattern_INTERFACE_DEFINED__
 7109
 7110DEFINE_GUID(IID_IUIAutomationVirtualizedItemPattern, 0x6ba3d7a6, 0x04cf, 0x4f11, 0x87,0x93, 0xa8,0xd1,0xcd,0xe9,0x96,0x9f);
 7111#if defined(__cplusplus) && !defined(CINTERFACE)
 7112MIDL_INTERFACE("6ba3d7a6-04cf-4f11-8793-a8d1cde9969f")
 7113IUIAutomationVirtualizedItemPattern : public IUnknown
 7114{
 7115    virtual HRESULT STDMETHODCALLTYPE Realize(
 7116        ) = 0;
 7117
 7118};
 7119#ifdef __CRT_UUID_DECL
 7120__CRT_UUID_DECL(IUIAutomationVirtualizedItemPattern, 0x6ba3d7a6, 0x04cf, 0x4f11, 0x87,0x93, 0xa8,0xd1,0xcd,0xe9,0x96,0x9f)
 7121#endif
 7122#else
 7123typedef struct IUIAutomationVirtualizedItemPatternVtbl {
 7124    BEGIN_INTERFACE
 7125
 7126    /*** IUnknown methods ***/
 7127    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 7128        IUIAutomationVirtualizedItemPattern *This,
 7129        REFIID riid,
 7130        void **ppvObject);
 7131
 7132    ULONG (STDMETHODCALLTYPE *AddRef)(
 7133        IUIAutomationVirtualizedItemPattern *This);
 7134
 7135    ULONG (STDMETHODCALLTYPE *Release)(
 7136        IUIAutomationVirtualizedItemPattern *This);
 7137
 7138    /*** IUIAutomationVirtualizedItemPattern methods ***/
 7139    HRESULT (STDMETHODCALLTYPE *Realize)(
 7140        IUIAutomationVirtualizedItemPattern *This);
 7141
 7142    END_INTERFACE
 7143} IUIAutomationVirtualizedItemPatternVtbl;
 7144
 7145interface IUIAutomationVirtualizedItemPattern {
 7146    CONST_VTBL IUIAutomationVirtualizedItemPatternVtbl* lpVtbl;
 7147};
 7148
 7149#ifdef COBJMACROS
 7150#ifndef WIDL_C_INLINE_WRAPPERS
 7151/*** IUnknown methods ***/
 7152#define IUIAutomationVirtualizedItemPattern_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 7153#define IUIAutomationVirtualizedItemPattern_AddRef(This) (This)->lpVtbl->AddRef(This)
 7154#define IUIAutomationVirtualizedItemPattern_Release(This) (This)->lpVtbl->Release(This)
 7155/*** IUIAutomationVirtualizedItemPattern methods ***/
 7156#define IUIAutomationVirtualizedItemPattern_Realize(This) (This)->lpVtbl->Realize(This)
 7157#else
 7158/*** IUnknown methods ***/
 7159static inline HRESULT IUIAutomationVirtualizedItemPattern_QueryInterface(IUIAutomationVirtualizedItemPattern* This,REFIID riid,void **ppvObject) {
 7160    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 7161}
 7162static inline ULONG IUIAutomationVirtualizedItemPattern_AddRef(IUIAutomationVirtualizedItemPattern* This) {
 7163    return This->lpVtbl->AddRef(This);
 7164}
 7165static inline ULONG IUIAutomationVirtualizedItemPattern_Release(IUIAutomationVirtualizedItemPattern* This) {
 7166    return This->lpVtbl->Release(This);
 7167}
 7168/*** IUIAutomationVirtualizedItemPattern methods ***/
 7169static inline HRESULT IUIAutomationVirtualizedItemPattern_Realize(IUIAutomationVirtualizedItemPattern* This) {
 7170    return This->lpVtbl->Realize(This);
 7171}
 7172#endif
 7173#endif
 7174
 7175#endif
 7176
 7177
 7178#endif  /* __IUIAutomationVirtualizedItemPattern_INTERFACE_DEFINED__ */
 7179
 7180/*****************************************************************************
 7181 * IUIAutomationAnnotationPattern interface
 7182 */
 7183#ifndef __IUIAutomationAnnotationPattern_INTERFACE_DEFINED__
 7184#define __IUIAutomationAnnotationPattern_INTERFACE_DEFINED__
 7185
 7186DEFINE_GUID(IID_IUIAutomationAnnotationPattern, 0x9a175b21, 0x339e, 0x41b1, 0x8e,0x8b, 0x62,0x3f,0x6b,0x68,0x10,0x98);
 7187#if defined(__cplusplus) && !defined(CINTERFACE)
 7188MIDL_INTERFACE("9a175b21-339e-41b1-8e8b-623f6b681098")
 7189IUIAutomationAnnotationPattern : public IUnknown
 7190{
 7191    virtual HRESULT STDMETHODCALLTYPE get_CurrentAnnotationTypeId(
 7192        int *retVal) = 0;
 7193
 7194    virtual HRESULT STDMETHODCALLTYPE get_CurrentAnnotationTypeName(
 7195        BSTR *retVal) = 0;
 7196
 7197    virtual HRESULT STDMETHODCALLTYPE get_CurrentAuthor(
 7198        BSTR *retVal) = 0;
 7199
 7200    virtual HRESULT STDMETHODCALLTYPE get_CurrentDateTime(
 7201        BSTR *retVal) = 0;
 7202
 7203    virtual HRESULT STDMETHODCALLTYPE get_CurrentTarget(
 7204        IUIAutomationElement **retVal) = 0;
 7205
 7206    virtual HRESULT STDMETHODCALLTYPE get_CachedAnnotationTypeId(
 7207        int *retVal) = 0;
 7208
 7209    virtual HRESULT STDMETHODCALLTYPE get_CachedAnnotationTypeName(
 7210        BSTR *retVal) = 0;
 7211
 7212    virtual HRESULT STDMETHODCALLTYPE get_CachedAuthor(
 7213        BSTR *retVal) = 0;
 7214
 7215    virtual HRESULT STDMETHODCALLTYPE get_CachedDateTime(
 7216        BSTR *retVal) = 0;
 7217
 7218    virtual HRESULT STDMETHODCALLTYPE get_CachedTarget(
 7219        IUIAutomationElement **retVal) = 0;
 7220
 7221};
 7222#ifdef __CRT_UUID_DECL
 7223__CRT_UUID_DECL(IUIAutomationAnnotationPattern, 0x9a175b21, 0x339e, 0x41b1, 0x8e,0x8b, 0x62,0x3f,0x6b,0x68,0x10,0x98)
 7224#endif
 7225#else
 7226typedef struct IUIAutomationAnnotationPatternVtbl {
 7227    BEGIN_INTERFACE
 7228
 7229    /*** IUnknown methods ***/
 7230    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 7231        IUIAutomationAnnotationPattern *This,
 7232        REFIID riid,
 7233        void **ppvObject);
 7234
 7235    ULONG (STDMETHODCALLTYPE *AddRef)(
 7236        IUIAutomationAnnotationPattern *This);
 7237
 7238    ULONG (STDMETHODCALLTYPE *Release)(
 7239        IUIAutomationAnnotationPattern *This);
 7240
 7241    /*** IUIAutomationAnnotationPattern methods ***/
 7242    HRESULT (STDMETHODCALLTYPE *get_CurrentAnnotationTypeId)(
 7243        IUIAutomationAnnotationPattern *This,
 7244        int *retVal);
 7245
 7246    HRESULT (STDMETHODCALLTYPE *get_CurrentAnnotationTypeName)(
 7247        IUIAutomationAnnotationPattern *This,
 7248        BSTR *retVal);
 7249
 7250    HRESULT (STDMETHODCALLTYPE *get_CurrentAuthor)(
 7251        IUIAutomationAnnotationPattern *This,
 7252        BSTR *retVal);
 7253
 7254    HRESULT (STDMETHODCALLTYPE *get_CurrentDateTime)(
 7255        IUIAutomationAnnotationPattern *This,
 7256        BSTR *retVal);
 7257
 7258    HRESULT (STDMETHODCALLTYPE *get_CurrentTarget)(
 7259        IUIAutomationAnnotationPattern *This,
 7260        IUIAutomationElement **retVal);
 7261
 7262    HRESULT (STDMETHODCALLTYPE *get_CachedAnnotationTypeId)(
 7263        IUIAutomationAnnotationPattern *This,
 7264        int *retVal);
 7265
 7266    HRESULT (STDMETHODCALLTYPE *get_CachedAnnotationTypeName)(
 7267        IUIAutomationAnnotationPattern *This,
 7268        BSTR *retVal);
 7269
 7270    HRESULT (STDMETHODCALLTYPE *get_CachedAuthor)(
 7271        IUIAutomationAnnotationPattern *This,
 7272        BSTR *retVal);
 7273
 7274    HRESULT (STDMETHODCALLTYPE *get_CachedDateTime)(
 7275        IUIAutomationAnnotationPattern *This,
 7276        BSTR *retVal);
 7277
 7278    HRESULT (STDMETHODCALLTYPE *get_CachedTarget)(
 7279        IUIAutomationAnnotationPattern *This,
 7280        IUIAutomationElement **retVal);
 7281
 7282    END_INTERFACE
 7283} IUIAutomationAnnotationPatternVtbl;
 7284
 7285interface IUIAutomationAnnotationPattern {
 7286    CONST_VTBL IUIAutomationAnnotationPatternVtbl* lpVtbl;
 7287};
 7288
 7289#ifdef COBJMACROS
 7290#ifndef WIDL_C_INLINE_WRAPPERS
 7291/*** IUnknown methods ***/
 7292#define IUIAutomationAnnotationPattern_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 7293#define IUIAutomationAnnotationPattern_AddRef(This) (This)->lpVtbl->AddRef(This)
 7294#define IUIAutomationAnnotationPattern_Release(This) (This)->lpVtbl->Release(This)
 7295/*** IUIAutomationAnnotationPattern methods ***/
 7296#define IUIAutomationAnnotationPattern_get_CurrentAnnotationTypeId(This,retVal) (This)->lpVtbl->get_CurrentAnnotationTypeId(This,retVal)
 7297#define IUIAutomationAnnotationPattern_get_CurrentAnnotationTypeName(This,retVal) (This)->lpVtbl->get_CurrentAnnotationTypeName(This,retVal)
 7298#define IUIAutomationAnnotationPattern_get_CurrentAuthor(This,retVal) (This)->lpVtbl->get_CurrentAuthor(This,retVal)
 7299#define IUIAutomationAnnotationPattern_get_CurrentDateTime(This,retVal) (This)->lpVtbl->get_CurrentDateTime(This,retVal)
 7300#define IUIAutomationAnnotationPattern_get_CurrentTarget(This,retVal) (This)->lpVtbl->get_CurrentTarget(This,retVal)
 7301#define IUIAutomationAnnotationPattern_get_CachedAnnotationTypeId(This,retVal) (This)->lpVtbl->get_CachedAnnotationTypeId(This,retVal)
 7302#define IUIAutomationAnnotationPattern_get_CachedAnnotationTypeName(This,retVal) (This)->lpVtbl->get_CachedAnnotationTypeName(This,retVal)
 7303#define IUIAutomationAnnotationPattern_get_CachedAuthor(This,retVal) (This)->lpVtbl->get_CachedAuthor(This,retVal)
 7304#define IUIAutomationAnnotationPattern_get_CachedDateTime(This,retVal) (This)->lpVtbl->get_CachedDateTime(This,retVal)
 7305#define IUIAutomationAnnotationPattern_get_CachedTarget(This,retVal) (This)->lpVtbl->get_CachedTarget(This,retVal)
 7306#else
 7307/*** IUnknown methods ***/
 7308static inline HRESULT IUIAutomationAnnotationPattern_QueryInterface(IUIAutomationAnnotationPattern* This,REFIID riid,void **ppvObject) {
 7309    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 7310}
 7311static inline ULONG IUIAutomationAnnotationPattern_AddRef(IUIAutomationAnnotationPattern* This) {
 7312    return This->lpVtbl->AddRef(This);
 7313}
 7314static inline ULONG IUIAutomationAnnotationPattern_Release(IUIAutomationAnnotationPattern* This) {
 7315    return This->lpVtbl->Release(This);
 7316}
 7317/*** IUIAutomationAnnotationPattern methods ***/
 7318static inline HRESULT IUIAutomationAnnotationPattern_get_CurrentAnnotationTypeId(IUIAutomationAnnotationPattern* This,int *retVal) {
 7319    return This->lpVtbl->get_CurrentAnnotationTypeId(This,retVal);
 7320}
 7321static inline HRESULT IUIAutomationAnnotationPattern_get_CurrentAnnotationTypeName(IUIAutomationAnnotationPattern* This,BSTR *retVal) {
 7322    return This->lpVtbl->get_CurrentAnnotationTypeName(This,retVal);
 7323}
 7324static inline HRESULT IUIAutomationAnnotationPattern_get_CurrentAuthor(IUIAutomationAnnotationPattern* This,BSTR *retVal) {
 7325    return This->lpVtbl->get_CurrentAuthor(This,retVal);
 7326}
 7327static inline HRESULT IUIAutomationAnnotationPattern_get_CurrentDateTime(IUIAutomationAnnotationPattern* This,BSTR *retVal) {
 7328    return This->lpVtbl->get_CurrentDateTime(This,retVal);
 7329}
 7330static inline HRESULT IUIAutomationAnnotationPattern_get_CurrentTarget(IUIAutomationAnnotationPattern* This,IUIAutomationElement **retVal) {
 7331    return This->lpVtbl->get_CurrentTarget(This,retVal);
 7332}
 7333static inline HRESULT IUIAutomationAnnotationPattern_get_CachedAnnotationTypeId(IUIAutomationAnnotationPattern* This,int *retVal) {
 7334    return This->lpVtbl->get_CachedAnnotationTypeId(This,retVal);
 7335}
 7336static inline HRESULT IUIAutomationAnnotationPattern_get_CachedAnnotationTypeName(IUIAutomationAnnotationPattern* This,BSTR *retVal) {
 7337    return This->lpVtbl->get_CachedAnnotationTypeName(This,retVal);
 7338}
 7339static inline HRESULT IUIAutomationAnnotationPattern_get_CachedAuthor(IUIAutomationAnnotationPattern* This,BSTR *retVal) {
 7340    return This->lpVtbl->get_CachedAuthor(This,retVal);
 7341}
 7342static inline HRESULT IUIAutomationAnnotationPattern_get_CachedDateTime(IUIAutomationAnnotationPattern* This,BSTR *retVal) {
 7343    return This->lpVtbl->get_CachedDateTime(This,retVal);
 7344}
 7345static inline HRESULT IUIAutomationAnnotationPattern_get_CachedTarget(IUIAutomationAnnotationPattern* This,IUIAutomationElement **retVal) {
 7346    return This->lpVtbl->get_CachedTarget(This,retVal);
 7347}
 7348#endif
 7349#endif
 7350
 7351#endif
 7352
 7353
 7354#endif  /* __IUIAutomationAnnotationPattern_INTERFACE_DEFINED__ */
 7355
 7356/*****************************************************************************
 7357 * IUIAutomationStylesPattern interface
 7358 */
 7359#ifndef __IUIAutomationStylesPattern_INTERFACE_DEFINED__
 7360#define __IUIAutomationStylesPattern_INTERFACE_DEFINED__
 7361
 7362DEFINE_GUID(IID_IUIAutomationStylesPattern, 0x85b5f0a2, 0xbd79, 0x484a, 0xad,0x2b, 0x38,0x8c,0x98,0x38,0xd5,0xfb);
 7363#if defined(__cplusplus) && !defined(CINTERFACE)
 7364MIDL_INTERFACE("85b5f0a2-bd79-484a-ad2b-388c9838d5fb")
 7365IUIAutomationStylesPattern : public IUnknown
 7366{
 7367    virtual HRESULT STDMETHODCALLTYPE get_CurrentStyleId(
 7368        int *retVal) = 0;
 7369
 7370    virtual HRESULT STDMETHODCALLTYPE get_CurrentStyleName(
 7371        BSTR *retVal) = 0;
 7372
 7373    virtual HRESULT STDMETHODCALLTYPE get_CurrentFillColor(
 7374        int *retVal) = 0;
 7375
 7376    virtual HRESULT STDMETHODCALLTYPE get_CurrentFillPatternStyle(
 7377        BSTR *retVal) = 0;
 7378
 7379    virtual HRESULT STDMETHODCALLTYPE get_CurrentShape(
 7380        BSTR *retVal) = 0;
 7381
 7382    virtual HRESULT STDMETHODCALLTYPE get_CurrentFillPatternColor(
 7383        int *retVal) = 0;
 7384
 7385    virtual HRESULT STDMETHODCALLTYPE get_CurrentExtendedProperties(
 7386        BSTR *retVal) = 0;
 7387
 7388    virtual HRESULT STDMETHODCALLTYPE GetCurrentExtendedPropertiesAsArray(
 7389        struct ExtendedProperty **propertyArray,
 7390        int *propertyCount) = 0;
 7391
 7392    virtual HRESULT STDMETHODCALLTYPE get_CachedStyleId(
 7393        int *retVal) = 0;
 7394
 7395    virtual HRESULT STDMETHODCALLTYPE get_CachedStyleName(
 7396        BSTR *retVal) = 0;
 7397
 7398    virtual HRESULT STDMETHODCALLTYPE get_CachedFillColor(
 7399        int *retVal) = 0;
 7400
 7401    virtual HRESULT STDMETHODCALLTYPE get_CachedFillPatternStyle(
 7402        BSTR *retVal) = 0;
 7403
 7404    virtual HRESULT STDMETHODCALLTYPE get_CachedShape(
 7405        BSTR *retVal) = 0;
 7406
 7407    virtual HRESULT STDMETHODCALLTYPE get_CachedFillPatternColor(
 7408        int *retVal) = 0;
 7409
 7410    virtual HRESULT STDMETHODCALLTYPE get_CachedExtendedProperties(
 7411        BSTR *retVal) = 0;
 7412
 7413    virtual HRESULT STDMETHODCALLTYPE GetCachedExtendedPropertiesAsArray(
 7414        struct ExtendedProperty **propertyArray,
 7415        int *propertyCount) = 0;
 7416
 7417};
 7418#ifdef __CRT_UUID_DECL
 7419__CRT_UUID_DECL(IUIAutomationStylesPattern, 0x85b5f0a2, 0xbd79, 0x484a, 0xad,0x2b, 0x38,0x8c,0x98,0x38,0xd5,0xfb)
 7420#endif
 7421#else
 7422typedef struct IUIAutomationStylesPatternVtbl {
 7423    BEGIN_INTERFACE
 7424
 7425    /*** IUnknown methods ***/
 7426    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 7427        IUIAutomationStylesPattern *This,
 7428        REFIID riid,
 7429        void **ppvObject);
 7430
 7431    ULONG (STDMETHODCALLTYPE *AddRef)(
 7432        IUIAutomationStylesPattern *This);
 7433
 7434    ULONG (STDMETHODCALLTYPE *Release)(
 7435        IUIAutomationStylesPattern *This);
 7436
 7437    /*** IUIAutomationStylesPattern methods ***/
 7438    HRESULT (STDMETHODCALLTYPE *get_CurrentStyleId)(
 7439        IUIAutomationStylesPattern *This,
 7440        int *retVal);
 7441
 7442    HRESULT (STDMETHODCALLTYPE *get_CurrentStyleName)(
 7443        IUIAutomationStylesPattern *This,
 7444        BSTR *retVal);
 7445
 7446    HRESULT (STDMETHODCALLTYPE *get_CurrentFillColor)(
 7447        IUIAutomationStylesPattern *This,
 7448        int *retVal);
 7449
 7450    HRESULT (STDMETHODCALLTYPE *get_CurrentFillPatternStyle)(
 7451        IUIAutomationStylesPattern *This,
 7452        BSTR *retVal);
 7453
 7454    HRESULT (STDMETHODCALLTYPE *get_CurrentShape)(
 7455        IUIAutomationStylesPattern *This,
 7456        BSTR *retVal);
 7457
 7458    HRESULT (STDMETHODCALLTYPE *get_CurrentFillPatternColor)(
 7459        IUIAutomationStylesPattern *This,
 7460        int *retVal);
 7461
 7462    HRESULT (STDMETHODCALLTYPE *get_CurrentExtendedProperties)(
 7463        IUIAutomationStylesPattern *This,
 7464        BSTR *retVal);
 7465
 7466    HRESULT (STDMETHODCALLTYPE *GetCurrentExtendedPropertiesAsArray)(
 7467        IUIAutomationStylesPattern *This,
 7468        struct ExtendedProperty **propertyArray,
 7469        int *propertyCount);
 7470
 7471    HRESULT (STDMETHODCALLTYPE *get_CachedStyleId)(
 7472        IUIAutomationStylesPattern *This,
 7473        int *retVal);
 7474
 7475    HRESULT (STDMETHODCALLTYPE *get_CachedStyleName)(
 7476        IUIAutomationStylesPattern *This,
 7477        BSTR *retVal);
 7478
 7479    HRESULT (STDMETHODCALLTYPE *get_CachedFillColor)(
 7480        IUIAutomationStylesPattern *This,
 7481        int *retVal);
 7482
 7483    HRESULT (STDMETHODCALLTYPE *get_CachedFillPatternStyle)(
 7484        IUIAutomationStylesPattern *This,
 7485        BSTR *retVal);
 7486
 7487    HRESULT (STDMETHODCALLTYPE *get_CachedShape)(
 7488        IUIAutomationStylesPattern *This,
 7489        BSTR *retVal);
 7490
 7491    HRESULT (STDMETHODCALLTYPE *get_CachedFillPatternColor)(
 7492        IUIAutomationStylesPattern *This,
 7493        int *retVal);
 7494
 7495    HRESULT (STDMETHODCALLTYPE *get_CachedExtendedProperties)(
 7496        IUIAutomationStylesPattern *This,
 7497        BSTR *retVal);
 7498
 7499    HRESULT (STDMETHODCALLTYPE *GetCachedExtendedPropertiesAsArray)(
 7500        IUIAutomationStylesPattern *This,
 7501        struct ExtendedProperty **propertyArray,
 7502        int *propertyCount);
 7503
 7504    END_INTERFACE
 7505} IUIAutomationStylesPatternVtbl;
 7506
 7507interface IUIAutomationStylesPattern {
 7508    CONST_VTBL IUIAutomationStylesPatternVtbl* lpVtbl;
 7509};
 7510
 7511#ifdef COBJMACROS
 7512#ifndef WIDL_C_INLINE_WRAPPERS
 7513/*** IUnknown methods ***/
 7514#define IUIAutomationStylesPattern_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 7515#define IUIAutomationStylesPattern_AddRef(This) (This)->lpVtbl->AddRef(This)
 7516#define IUIAutomationStylesPattern_Release(This) (This)->lpVtbl->Release(This)
 7517/*** IUIAutomationStylesPattern methods ***/
 7518#define IUIAutomationStylesPattern_get_CurrentStyleId(This,retVal) (This)->lpVtbl->get_CurrentStyleId(This,retVal)
 7519#define IUIAutomationStylesPattern_get_CurrentStyleName(This,retVal) (This)->lpVtbl->get_CurrentStyleName(This,retVal)
 7520#define IUIAutomationStylesPattern_get_CurrentFillColor(This,retVal) (This)->lpVtbl->get_CurrentFillColor(This,retVal)
 7521#define IUIAutomationStylesPattern_get_CurrentFillPatternStyle(This,retVal) (This)->lpVtbl->get_CurrentFillPatternStyle(This,retVal)
 7522#define IUIAutomationStylesPattern_get_CurrentShape(This,retVal) (This)->lpVtbl->get_CurrentShape(This,retVal)
 7523#define IUIAutomationStylesPattern_get_CurrentFillPatternColor(This,retVal) (This)->lpVtbl->get_CurrentFillPatternColor(This,retVal)
 7524#define IUIAutomationStylesPattern_get_CurrentExtendedProperties(This,retVal) (This)->lpVtbl->get_CurrentExtendedProperties(This,retVal)
 7525#define IUIAutomationStylesPattern_GetCurrentExtendedPropertiesAsArray(This,propertyArray,propertyCount) (This)->lpVtbl->GetCurrentExtendedPropertiesAsArray(This,propertyArray,propertyCount)
 7526#define IUIAutomationStylesPattern_get_CachedStyleId(This,retVal) (This)->lpVtbl->get_CachedStyleId(This,retVal)
 7527#define IUIAutomationStylesPattern_get_CachedStyleName(This,retVal) (This)->lpVtbl->get_CachedStyleName(This,retVal)
 7528#define IUIAutomationStylesPattern_get_CachedFillColor(This,retVal) (This)->lpVtbl->get_CachedFillColor(This,retVal)
 7529#define IUIAutomationStylesPattern_get_CachedFillPatternStyle(This,retVal) (This)->lpVtbl->get_CachedFillPatternStyle(This,retVal)
 7530#define IUIAutomationStylesPattern_get_CachedShape(This,retVal) (This)->lpVtbl->get_CachedShape(This,retVal)
 7531#define IUIAutomationStylesPattern_get_CachedFillPatternColor(This,retVal) (This)->lpVtbl->get_CachedFillPatternColor(This,retVal)
 7532#define IUIAutomationStylesPattern_get_CachedExtendedProperties(This,retVal) (This)->lpVtbl->get_CachedExtendedProperties(This,retVal)
 7533#define IUIAutomationStylesPattern_GetCachedExtendedPropertiesAsArray(This,propertyArray,propertyCount) (This)->lpVtbl->GetCachedExtendedPropertiesAsArray(This,propertyArray,propertyCount)
 7534#else
 7535/*** IUnknown methods ***/
 7536static inline HRESULT IUIAutomationStylesPattern_QueryInterface(IUIAutomationStylesPattern* This,REFIID riid,void **ppvObject) {
 7537    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 7538}
 7539static inline ULONG IUIAutomationStylesPattern_AddRef(IUIAutomationStylesPattern* This) {
 7540    return This->lpVtbl->AddRef(This);
 7541}
 7542static inline ULONG IUIAutomationStylesPattern_Release(IUIAutomationStylesPattern* This) {
 7543    return This->lpVtbl->Release(This);
 7544}
 7545/*** IUIAutomationStylesPattern methods ***/
 7546static inline HRESULT IUIAutomationStylesPattern_get_CurrentStyleId(IUIAutomationStylesPattern* This,int *retVal) {
 7547    return This->lpVtbl->get_CurrentStyleId(This,retVal);
 7548}
 7549static inline HRESULT IUIAutomationStylesPattern_get_CurrentStyleName(IUIAutomationStylesPattern* This,BSTR *retVal) {
 7550    return This->lpVtbl->get_CurrentStyleName(This,retVal);
 7551}
 7552static inline HRESULT IUIAutomationStylesPattern_get_CurrentFillColor(IUIAutomationStylesPattern* This,int *retVal) {
 7553    return This->lpVtbl->get_CurrentFillColor(This,retVal);
 7554}
 7555static inline HRESULT IUIAutomationStylesPattern_get_CurrentFillPatternStyle(IUIAutomationStylesPattern* This,BSTR *retVal) {
 7556    return This->lpVtbl->get_CurrentFillPatternStyle(This,retVal);
 7557}
 7558static inline HRESULT IUIAutomationStylesPattern_get_CurrentShape(IUIAutomationStylesPattern* This,BSTR *retVal) {
 7559    return This->lpVtbl->get_CurrentShape(This,retVal);
 7560}
 7561static inline HRESULT IUIAutomationStylesPattern_get_CurrentFillPatternColor(IUIAutomationStylesPattern* This,int *retVal) {
 7562    return This->lpVtbl->get_CurrentFillPatternColor(This,retVal);
 7563}
 7564static inline HRESULT IUIAutomationStylesPattern_get_CurrentExtendedProperties(IUIAutomationStylesPattern* This,BSTR *retVal) {
 7565    return This->lpVtbl->get_CurrentExtendedProperties(This,retVal);
 7566}
 7567static inline HRESULT IUIAutomationStylesPattern_GetCurrentExtendedPropertiesAsArray(IUIAutomationStylesPattern* This,struct ExtendedProperty **propertyArray,int *propertyCount) {
 7568    return This->lpVtbl->GetCurrentExtendedPropertiesAsArray(This,propertyArray,propertyCount);
 7569}
 7570static inline HRESULT IUIAutomationStylesPattern_get_CachedStyleId(IUIAutomationStylesPattern* This,int *retVal) {
 7571    return This->lpVtbl->get_CachedStyleId(This,retVal);
 7572}
 7573static inline HRESULT IUIAutomationStylesPattern_get_CachedStyleName(IUIAutomationStylesPattern* This,BSTR *retVal) {
 7574    return This->lpVtbl->get_CachedStyleName(This,retVal);
 7575}
 7576static inline HRESULT IUIAutomationStylesPattern_get_CachedFillColor(IUIAutomationStylesPattern* This,int *retVal) {
 7577    return This->lpVtbl->get_CachedFillColor(This,retVal);
 7578}
 7579static inline HRESULT IUIAutomationStylesPattern_get_CachedFillPatternStyle(IUIAutomationStylesPattern* This,BSTR *retVal) {
 7580    return This->lpVtbl->get_CachedFillPatternStyle(This,retVal);
 7581}
 7582static inline HRESULT IUIAutomationStylesPattern_get_CachedShape(IUIAutomationStylesPattern* This,BSTR *retVal) {
 7583    return This->lpVtbl->get_CachedShape(This,retVal);
 7584}
 7585static inline HRESULT IUIAutomationStylesPattern_get_CachedFillPatternColor(IUIAutomationStylesPattern* This,int *retVal) {
 7586    return This->lpVtbl->get_CachedFillPatternColor(This,retVal);
 7587}
 7588static inline HRESULT IUIAutomationStylesPattern_get_CachedExtendedProperties(IUIAutomationStylesPattern* This,BSTR *retVal) {
 7589    return This->lpVtbl->get_CachedExtendedProperties(This,retVal);
 7590}
 7591static inline HRESULT IUIAutomationStylesPattern_GetCachedExtendedPropertiesAsArray(IUIAutomationStylesPattern* This,struct ExtendedProperty **propertyArray,int *propertyCount) {
 7592    return This->lpVtbl->GetCachedExtendedPropertiesAsArray(This,propertyArray,propertyCount);
 7593}
 7594#endif
 7595#endif
 7596
 7597#endif
 7598
 7599
 7600#endif  /* __IUIAutomationStylesPattern_INTERFACE_DEFINED__ */
 7601
 7602/*****************************************************************************
 7603 * IUIAutomationSpreadsheetPattern interface
 7604 */
 7605#ifndef __IUIAutomationSpreadsheetPattern_INTERFACE_DEFINED__
 7606#define __IUIAutomationSpreadsheetPattern_INTERFACE_DEFINED__
 7607
 7608DEFINE_GUID(IID_IUIAutomationSpreadsheetPattern, 0x7517a7c8, 0xfaae, 0x4de9, 0x9f,0x08, 0x29,0xb9,0x1e,0x85,0x95,0xc1);
 7609#if defined(__cplusplus) && !defined(CINTERFACE)
 7610MIDL_INTERFACE("7517a7c8-faae-4de9-9f08-29b91e8595c1")
 7611IUIAutomationSpreadsheetPattern : public IUnknown
 7612{
 7613    virtual HRESULT STDMETHODCALLTYPE GetItemByName(
 7614        BSTR name,
 7615        IUIAutomationElement **element) = 0;
 7616
 7617};
 7618#ifdef __CRT_UUID_DECL
 7619__CRT_UUID_DECL(IUIAutomationSpreadsheetPattern, 0x7517a7c8, 0xfaae, 0x4de9, 0x9f,0x08, 0x29,0xb9,0x1e,0x85,0x95,0xc1)
 7620#endif
 7621#else
 7622typedef struct IUIAutomationSpreadsheetPatternVtbl {
 7623    BEGIN_INTERFACE
 7624
 7625    /*** IUnknown methods ***/
 7626    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 7627        IUIAutomationSpreadsheetPattern *This,
 7628        REFIID riid,
 7629        void **ppvObject);
 7630
 7631    ULONG (STDMETHODCALLTYPE *AddRef)(
 7632        IUIAutomationSpreadsheetPattern *This);
 7633
 7634    ULONG (STDMETHODCALLTYPE *Release)(
 7635        IUIAutomationSpreadsheetPattern *This);
 7636
 7637    /*** IUIAutomationSpreadsheetPattern methods ***/
 7638    HRESULT (STDMETHODCALLTYPE *GetItemByName)(
 7639        IUIAutomationSpreadsheetPattern *This,
 7640        BSTR name,
 7641        IUIAutomationElement **element);
 7642
 7643    END_INTERFACE
 7644} IUIAutomationSpreadsheetPatternVtbl;
 7645
 7646interface IUIAutomationSpreadsheetPattern {
 7647    CONST_VTBL IUIAutomationSpreadsheetPatternVtbl* lpVtbl;
 7648};
 7649
 7650#ifdef COBJMACROS
 7651#ifndef WIDL_C_INLINE_WRAPPERS
 7652/*** IUnknown methods ***/
 7653#define IUIAutomationSpreadsheetPattern_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 7654#define IUIAutomationSpreadsheetPattern_AddRef(This) (This)->lpVtbl->AddRef(This)
 7655#define IUIAutomationSpreadsheetPattern_Release(This) (This)->lpVtbl->Release(This)
 7656/*** IUIAutomationSpreadsheetPattern methods ***/
 7657#define IUIAutomationSpreadsheetPattern_GetItemByName(This,name,element) (This)->lpVtbl->GetItemByName(This,name,element)
 7658#else
 7659/*** IUnknown methods ***/
 7660static inline HRESULT IUIAutomationSpreadsheetPattern_QueryInterface(IUIAutomationSpreadsheetPattern* This,REFIID riid,void **ppvObject) {
 7661    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 7662}
 7663static inline ULONG IUIAutomationSpreadsheetPattern_AddRef(IUIAutomationSpreadsheetPattern* This) {
 7664    return This->lpVtbl->AddRef(This);
 7665}
 7666static inline ULONG IUIAutomationSpreadsheetPattern_Release(IUIAutomationSpreadsheetPattern* This) {
 7667    return This->lpVtbl->Release(This);
 7668}
 7669/*** IUIAutomationSpreadsheetPattern methods ***/
 7670static inline HRESULT IUIAutomationSpreadsheetPattern_GetItemByName(IUIAutomationSpreadsheetPattern* This,BSTR name,IUIAutomationElement **element) {
 7671    return This->lpVtbl->GetItemByName(This,name,element);
 7672}
 7673#endif
 7674#endif
 7675
 7676#endif
 7677
 7678
 7679#endif  /* __IUIAutomationSpreadsheetPattern_INTERFACE_DEFINED__ */
 7680
 7681/*****************************************************************************
 7682 * IUIAutomationSpreadsheetItemPattern interface
 7683 */
 7684#ifndef __IUIAutomationSpreadsheetItemPattern_INTERFACE_DEFINED__
 7685#define __IUIAutomationSpreadsheetItemPattern_INTERFACE_DEFINED__
 7686
 7687DEFINE_GUID(IID_IUIAutomationSpreadsheetItemPattern, 0x7d4fb86c, 0x8d34, 0x40e1, 0x8e,0x83, 0x62,0xc1,0x52,0x04,0xe3,0x35);
 7688#if defined(__cplusplus) && !defined(CINTERFACE)
 7689MIDL_INTERFACE("7d4fb86c-8d34-40e1-8e83-62c15204e335")
 7690IUIAutomationSpreadsheetItemPattern : public IUnknown
 7691{
 7692    virtual HRESULT STDMETHODCALLTYPE get_CurrentFormula(
 7693        BSTR *retVal) = 0;
 7694
 7695    virtual HRESULT STDMETHODCALLTYPE GetCurrentAnnotationObjects(
 7696        IUIAutomationElementArray **retVal) = 0;
 7697
 7698    virtual HRESULT STDMETHODCALLTYPE GetCurrentAnnotationTypes(
 7699        SAFEARRAY **retVal) = 0;
 7700
 7701    virtual HRESULT STDMETHODCALLTYPE get_CachedFormula(
 7702        BSTR *retVal) = 0;
 7703
 7704    virtual HRESULT STDMETHODCALLTYPE GetCachedAnnotationObjects(
 7705        IUIAutomationElementArray **retVal) = 0;
 7706
 7707    virtual HRESULT STDMETHODCALLTYPE GetCachedAnnotationTypes(
 7708        SAFEARRAY **retVal) = 0;
 7709
 7710};
 7711#ifdef __CRT_UUID_DECL
 7712__CRT_UUID_DECL(IUIAutomationSpreadsheetItemPattern, 0x7d4fb86c, 0x8d34, 0x40e1, 0x8e,0x83, 0x62,0xc1,0x52,0x04,0xe3,0x35)
 7713#endif
 7714#else
 7715typedef struct IUIAutomationSpreadsheetItemPatternVtbl {
 7716    BEGIN_INTERFACE
 7717
 7718    /*** IUnknown methods ***/
 7719    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 7720        IUIAutomationSpreadsheetItemPattern *This,
 7721        REFIID riid,
 7722        void **ppvObject);
 7723
 7724    ULONG (STDMETHODCALLTYPE *AddRef)(
 7725        IUIAutomationSpreadsheetItemPattern *This);
 7726
 7727    ULONG (STDMETHODCALLTYPE *Release)(
 7728        IUIAutomationSpreadsheetItemPattern *This);
 7729
 7730    /*** IUIAutomationSpreadsheetItemPattern methods ***/
 7731    HRESULT (STDMETHODCALLTYPE *get_CurrentFormula)(
 7732        IUIAutomationSpreadsheetItemPattern *This,
 7733        BSTR *retVal);
 7734
 7735    HRESULT (STDMETHODCALLTYPE *GetCurrentAnnotationObjects)(
 7736        IUIAutomationSpreadsheetItemPattern *This,
 7737        IUIAutomationElementArray **retVal);
 7738
 7739    HRESULT (STDMETHODCALLTYPE *GetCurrentAnnotationTypes)(
 7740        IUIAutomationSpreadsheetItemPattern *This,
 7741        SAFEARRAY **retVal);
 7742
 7743    HRESULT (STDMETHODCALLTYPE *get_CachedFormula)(
 7744        IUIAutomationSpreadsheetItemPattern *This,
 7745        BSTR *retVal);
 7746
 7747    HRESULT (STDMETHODCALLTYPE *GetCachedAnnotationObjects)(
 7748        IUIAutomationSpreadsheetItemPattern *This,
 7749        IUIAutomationElementArray **retVal);
 7750
 7751    HRESULT (STDMETHODCALLTYPE *GetCachedAnnotationTypes)(
 7752        IUIAutomationSpreadsheetItemPattern *This,
 7753        SAFEARRAY **retVal);
 7754
 7755    END_INTERFACE
 7756} IUIAutomationSpreadsheetItemPatternVtbl;
 7757
 7758interface IUIAutomationSpreadsheetItemPattern {
 7759    CONST_VTBL IUIAutomationSpreadsheetItemPatternVtbl* lpVtbl;
 7760};
 7761
 7762#ifdef COBJMACROS
 7763#ifndef WIDL_C_INLINE_WRAPPERS
 7764/*** IUnknown methods ***/
 7765#define IUIAutomationSpreadsheetItemPattern_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 7766#define IUIAutomationSpreadsheetItemPattern_AddRef(This) (This)->lpVtbl->AddRef(This)
 7767#define IUIAutomationSpreadsheetItemPattern_Release(This) (This)->lpVtbl->Release(This)
 7768/*** IUIAutomationSpreadsheetItemPattern methods ***/
 7769#define IUIAutomationSpreadsheetItemPattern_get_CurrentFormula(This,retVal) (This)->lpVtbl->get_CurrentFormula(This,retVal)
 7770#define IUIAutomationSpreadsheetItemPattern_GetCurrentAnnotationObjects(This,retVal) (This)->lpVtbl->GetCurrentAnnotationObjects(This,retVal)
 7771#define IUIAutomationSpreadsheetItemPattern_GetCurrentAnnotationTypes(This,retVal) (This)->lpVtbl->GetCurrentAnnotationTypes(This,retVal)
 7772#define IUIAutomationSpreadsheetItemPattern_get_CachedFormula(This,retVal) (This)->lpVtbl->get_CachedFormula(This,retVal)
 7773#define IUIAutomationSpreadsheetItemPattern_GetCachedAnnotationObjects(This,retVal) (This)->lpVtbl->GetCachedAnnotationObjects(This,retVal)
 7774#define IUIAutomationSpreadsheetItemPattern_GetCachedAnnotationTypes(This,retVal) (This)->lpVtbl->GetCachedAnnotationTypes(This,retVal)
 7775#else
 7776/*** IUnknown methods ***/
 7777static inline HRESULT IUIAutomationSpreadsheetItemPattern_QueryInterface(IUIAutomationSpreadsheetItemPattern* This,REFIID riid,void **ppvObject) {
 7778    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 7779}
 7780static inline ULONG IUIAutomationSpreadsheetItemPattern_AddRef(IUIAutomationSpreadsheetItemPattern* This) {
 7781    return This->lpVtbl->AddRef(This);
 7782}
 7783static inline ULONG IUIAutomationSpreadsheetItemPattern_Release(IUIAutomationSpreadsheetItemPattern* This) {
 7784    return This->lpVtbl->Release(This);
 7785}
 7786/*** IUIAutomationSpreadsheetItemPattern methods ***/
 7787static inline HRESULT IUIAutomationSpreadsheetItemPattern_get_CurrentFormula(IUIAutomationSpreadsheetItemPattern* This,BSTR *retVal) {
 7788    return This->lpVtbl->get_CurrentFormula(This,retVal);
 7789}
 7790static inline HRESULT IUIAutomationSpreadsheetItemPattern_GetCurrentAnnotationObjects(IUIAutomationSpreadsheetItemPattern* This,IUIAutomationElementArray **retVal) {
 7791    return This->lpVtbl->GetCurrentAnnotationObjects(This,retVal);
 7792}
 7793static inline HRESULT IUIAutomationSpreadsheetItemPattern_GetCurrentAnnotationTypes(IUIAutomationSpreadsheetItemPattern* This,SAFEARRAY **retVal) {
 7794    return This->lpVtbl->GetCurrentAnnotationTypes(This,retVal);
 7795}
 7796static inline HRESULT IUIAutomationSpreadsheetItemPattern_get_CachedFormula(IUIAutomationSpreadsheetItemPattern* This,BSTR *retVal) {
 7797    return This->lpVtbl->get_CachedFormula(This,retVal);
 7798}
 7799static inline HRESULT IUIAutomationSpreadsheetItemPattern_GetCachedAnnotationObjects(IUIAutomationSpreadsheetItemPattern* This,IUIAutomationElementArray **retVal) {
 7800    return This->lpVtbl->GetCachedAnnotationObjects(This,retVal);
 7801}
 7802static inline HRESULT IUIAutomationSpreadsheetItemPattern_GetCachedAnnotationTypes(IUIAutomationSpreadsheetItemPattern* This,SAFEARRAY **retVal) {
 7803    return This->lpVtbl->GetCachedAnnotationTypes(This,retVal);
 7804}
 7805#endif
 7806#endif
 7807
 7808#endif
 7809
 7810
 7811#endif  /* __IUIAutomationSpreadsheetItemPattern_INTERFACE_DEFINED__ */
 7812
 7813/*****************************************************************************
 7814 * IUIAutomationTransformPattern2 interface
 7815 */
 7816#ifndef __IUIAutomationTransformPattern2_INTERFACE_DEFINED__
 7817#define __IUIAutomationTransformPattern2_INTERFACE_DEFINED__
 7818
 7819DEFINE_GUID(IID_IUIAutomationTransformPattern2, 0x6d74d017, 0x6ecb, 0x4381, 0xb3,0x8b, 0x3c,0x17,0xa4,0x8f,0xf1,0xc2);
 7820#if defined(__cplusplus) && !defined(CINTERFACE)
 7821MIDL_INTERFACE("6d74d017-6ecb-4381-b38b-3c17a48ff1c2")
 7822IUIAutomationTransformPattern2 : public IUIAutomationTransformPattern
 7823{
 7824    virtual HRESULT STDMETHODCALLTYPE Zoom(
 7825        double zoomValue) = 0;
 7826
 7827    virtual HRESULT STDMETHODCALLTYPE ZoomByUnit(
 7828        enum ZoomUnit zoomUnit) = 0;
 7829
 7830    virtual HRESULT STDMETHODCALLTYPE get_CurrentCanZoom(
 7831        WINBOOL *retVal) = 0;
 7832
 7833    virtual HRESULT STDMETHODCALLTYPE get_CachedCanZoom(
 7834        WINBOOL *retVal) = 0;
 7835
 7836    virtual HRESULT STDMETHODCALLTYPE get_CurrentZoomLevel(
 7837        double *retVal) = 0;
 7838
 7839    virtual HRESULT STDMETHODCALLTYPE get_CachedZoomLevel(
 7840        double *retVal) = 0;
 7841
 7842    virtual HRESULT STDMETHODCALLTYPE get_CurrentZoomMinimum(
 7843        double *retVal) = 0;
 7844
 7845    virtual HRESULT STDMETHODCALLTYPE get_CachedZoomMinimum(
 7846        double *retVal) = 0;
 7847
 7848    virtual HRESULT STDMETHODCALLTYPE get_CurrentZoomMaximum(
 7849        double *retVal) = 0;
 7850
 7851    virtual HRESULT STDMETHODCALLTYPE get_CachedZoomMaximum(
 7852        double *retVal) = 0;
 7853
 7854};
 7855#ifdef __CRT_UUID_DECL
 7856__CRT_UUID_DECL(IUIAutomationTransformPattern2, 0x6d74d017, 0x6ecb, 0x4381, 0xb3,0x8b, 0x3c,0x17,0xa4,0x8f,0xf1,0xc2)
 7857#endif
 7858#else
 7859typedef struct IUIAutomationTransformPattern2Vtbl {
 7860    BEGIN_INTERFACE
 7861
 7862    /*** IUnknown methods ***/
 7863    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 7864        IUIAutomationTransformPattern2 *This,
 7865        REFIID riid,
 7866        void **ppvObject);
 7867
 7868    ULONG (STDMETHODCALLTYPE *AddRef)(
 7869        IUIAutomationTransformPattern2 *This);
 7870
 7871    ULONG (STDMETHODCALLTYPE *Release)(
 7872        IUIAutomationTransformPattern2 *This);
 7873
 7874    /*** IUIAutomationTransformPattern methods ***/
 7875    HRESULT (STDMETHODCALLTYPE *Move)(
 7876        IUIAutomationTransformPattern2 *This,
 7877        double x,
 7878        double y);
 7879
 7880    HRESULT (STDMETHODCALLTYPE *Resize)(
 7881        IUIAutomationTransformPattern2 *This,
 7882        double width,
 7883        double height);
 7884
 7885    HRESULT (STDMETHODCALLTYPE *Rotate)(
 7886        IUIAutomationTransformPattern2 *This,
 7887        double degrees);
 7888
 7889    HRESULT (STDMETHODCALLTYPE *get_CurrentCanMove)(
 7890        IUIAutomationTransformPattern2 *This,
 7891        WINBOOL *retVal);
 7892
 7893    HRESULT (STDMETHODCALLTYPE *get_CurrentCanResize)(
 7894        IUIAutomationTransformPattern2 *This,
 7895        WINBOOL *retVal);
 7896
 7897    HRESULT (STDMETHODCALLTYPE *get_CurrentCanRotate)(
 7898        IUIAutomationTransformPattern2 *This,
 7899        WINBOOL *retVal);
 7900
 7901    HRESULT (STDMETHODCALLTYPE *get_CachedCanMove)(
 7902        IUIAutomationTransformPattern2 *This,
 7903        WINBOOL *retVal);
 7904
 7905    HRESULT (STDMETHODCALLTYPE *get_CachedCanResize)(
 7906        IUIAutomationTransformPattern2 *This,
 7907        WINBOOL *retVal);
 7908
 7909    HRESULT (STDMETHODCALLTYPE *get_CachedCanRotate)(
 7910        IUIAutomationTransformPattern2 *This,
 7911        WINBOOL *retVal);
 7912
 7913    /*** IUIAutomationTransformPattern2 methods ***/
 7914    HRESULT (STDMETHODCALLTYPE *Zoom)(
 7915        IUIAutomationTransformPattern2 *This,
 7916        double zoomValue);
 7917
 7918    HRESULT (STDMETHODCALLTYPE *ZoomByUnit)(
 7919        IUIAutomationTransformPattern2 *This,
 7920        enum ZoomUnit zoomUnit);
 7921
 7922    HRESULT (STDMETHODCALLTYPE *get_CurrentCanZoom)(
 7923        IUIAutomationTransformPattern2 *This,
 7924        WINBOOL *retVal);
 7925
 7926    HRESULT (STDMETHODCALLTYPE *get_CachedCanZoom)(
 7927        IUIAutomationTransformPattern2 *This,
 7928        WINBOOL *retVal);
 7929
 7930    HRESULT (STDMETHODCALLTYPE *get_CurrentZoomLevel)(
 7931        IUIAutomationTransformPattern2 *This,
 7932        double *retVal);
 7933
 7934    HRESULT (STDMETHODCALLTYPE *get_CachedZoomLevel)(
 7935        IUIAutomationTransformPattern2 *This,
 7936        double *retVal);
 7937
 7938    HRESULT (STDMETHODCALLTYPE *get_CurrentZoomMinimum)(
 7939        IUIAutomationTransformPattern2 *This,
 7940        double *retVal);
 7941
 7942    HRESULT (STDMETHODCALLTYPE *get_CachedZoomMinimum)(
 7943        IUIAutomationTransformPattern2 *This,
 7944        double *retVal);
 7945
 7946    HRESULT (STDMETHODCALLTYPE *get_CurrentZoomMaximum)(
 7947        IUIAutomationTransformPattern2 *This,
 7948        double *retVal);
 7949
 7950    HRESULT (STDMETHODCALLTYPE *get_CachedZoomMaximum)(
 7951        IUIAutomationTransformPattern2 *This,
 7952        double *retVal);
 7953
 7954    END_INTERFACE
 7955} IUIAutomationTransformPattern2Vtbl;
 7956
 7957interface IUIAutomationTransformPattern2 {
 7958    CONST_VTBL IUIAutomationTransformPattern2Vtbl* lpVtbl;
 7959};
 7960
 7961#ifdef COBJMACROS
 7962#ifndef WIDL_C_INLINE_WRAPPERS
 7963/*** IUnknown methods ***/
 7964#define IUIAutomationTransformPattern2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 7965#define IUIAutomationTransformPattern2_AddRef(This) (This)->lpVtbl->AddRef(This)
 7966#define IUIAutomationTransformPattern2_Release(This) (This)->lpVtbl->Release(This)
 7967/*** IUIAutomationTransformPattern methods ***/
 7968#define IUIAutomationTransformPattern2_Move(This,x,y) (This)->lpVtbl->Move(This,x,y)
 7969#define IUIAutomationTransformPattern2_Resize(This,width,height) (This)->lpVtbl->Resize(This,width,height)
 7970#define IUIAutomationTransformPattern2_Rotate(This,degrees) (This)->lpVtbl->Rotate(This,degrees)
 7971#define IUIAutomationTransformPattern2_get_CurrentCanMove(This,retVal) (This)->lpVtbl->get_CurrentCanMove(This,retVal)
 7972#define IUIAutomationTransformPattern2_get_CurrentCanResize(This,retVal) (This)->lpVtbl->get_CurrentCanResize(This,retVal)
 7973#define IUIAutomationTransformPattern2_get_CurrentCanRotate(This,retVal) (This)->lpVtbl->get_CurrentCanRotate(This,retVal)
 7974#define IUIAutomationTransformPattern2_get_CachedCanMove(This,retVal) (This)->lpVtbl->get_CachedCanMove(This,retVal)
 7975#define IUIAutomationTransformPattern2_get_CachedCanResize(This,retVal) (This)->lpVtbl->get_CachedCanResize(This,retVal)
 7976#define IUIAutomationTransformPattern2_get_CachedCanRotate(This,retVal) (This)->lpVtbl->get_CachedCanRotate(This,retVal)
 7977/*** IUIAutomationTransformPattern2 methods ***/
 7978#define IUIAutomationTransformPattern2_Zoom(This,zoomValue) (This)->lpVtbl->Zoom(This,zoomValue)
 7979#define IUIAutomationTransformPattern2_ZoomByUnit(This,zoomUnit) (This)->lpVtbl->ZoomByUnit(This,zoomUnit)
 7980#define IUIAutomationTransformPattern2_get_CurrentCanZoom(This,retVal) (This)->lpVtbl->get_CurrentCanZoom(This,retVal)
 7981#define IUIAutomationTransformPattern2_get_CachedCanZoom(This,retVal) (This)->lpVtbl->get_CachedCanZoom(This,retVal)
 7982#define IUIAutomationTransformPattern2_get_CurrentZoomLevel(This,retVal) (This)->lpVtbl->get_CurrentZoomLevel(This,retVal)
 7983#define IUIAutomationTransformPattern2_get_CachedZoomLevel(This,retVal) (This)->lpVtbl->get_CachedZoomLevel(This,retVal)
 7984#define IUIAutomationTransformPattern2_get_CurrentZoomMinimum(This,retVal) (This)->lpVtbl->get_CurrentZoomMinimum(This,retVal)
 7985#define IUIAutomationTransformPattern2_get_CachedZoomMinimum(This,retVal) (This)->lpVtbl->get_CachedZoomMinimum(This,retVal)
 7986#define IUIAutomationTransformPattern2_get_CurrentZoomMaximum(This,retVal) (This)->lpVtbl->get_CurrentZoomMaximum(This,retVal)
 7987#define IUIAutomationTransformPattern2_get_CachedZoomMaximum(This,retVal) (This)->lpVtbl->get_CachedZoomMaximum(This,retVal)
 7988#else
 7989/*** IUnknown methods ***/
 7990static inline HRESULT IUIAutomationTransformPattern2_QueryInterface(IUIAutomationTransformPattern2* This,REFIID riid,void **ppvObject) {
 7991    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 7992}
 7993static inline ULONG IUIAutomationTransformPattern2_AddRef(IUIAutomationTransformPattern2* This) {
 7994    return This->lpVtbl->AddRef(This);
 7995}
 7996static inline ULONG IUIAutomationTransformPattern2_Release(IUIAutomationTransformPattern2* This) {
 7997    return This->lpVtbl->Release(This);
 7998}
 7999/*** IUIAutomationTransformPattern methods ***/
 8000static inline HRESULT IUIAutomationTransformPattern2_Move(IUIAutomationTransformPattern2* This,double x,double y) {
 8001    return This->lpVtbl->Move(This,x,y);
 8002}
 8003static inline HRESULT IUIAutomationTransformPattern2_Resize(IUIAutomationTransformPattern2* This,double width,double height) {
 8004    return This->lpVtbl->Resize(This,width,height);
 8005}
 8006static inline HRESULT IUIAutomationTransformPattern2_Rotate(IUIAutomationTransformPattern2* This,double degrees) {
 8007    return This->lpVtbl->Rotate(This,degrees);
 8008}
 8009static inline HRESULT IUIAutomationTransformPattern2_get_CurrentCanMove(IUIAutomationTransformPattern2* This,WINBOOL *retVal) {
 8010    return This->lpVtbl->get_CurrentCanMove(This,retVal);
 8011}
 8012static inline HRESULT IUIAutomationTransformPattern2_get_CurrentCanResize(IUIAutomationTransformPattern2* This,WINBOOL *retVal) {
 8013    return This->lpVtbl->get_CurrentCanResize(This,retVal);
 8014}
 8015static inline HRESULT IUIAutomationTransformPattern2_get_CurrentCanRotate(IUIAutomationTransformPattern2* This,WINBOOL *retVal) {
 8016    return This->lpVtbl->get_CurrentCanRotate(This,retVal);
 8017}
 8018static inline HRESULT IUIAutomationTransformPattern2_get_CachedCanMove(IUIAutomationTransformPattern2* This,WINBOOL *retVal) {
 8019    return This->lpVtbl->get_CachedCanMove(This,retVal);
 8020}
 8021static inline HRESULT IUIAutomationTransformPattern2_get_CachedCanResize(IUIAutomationTransformPattern2* This,WINBOOL *retVal) {
 8022    return This->lpVtbl->get_CachedCanResize(This,retVal);
 8023}
 8024static inline HRESULT IUIAutomationTransformPattern2_get_CachedCanRotate(IUIAutomationTransformPattern2* This,WINBOOL *retVal) {
 8025    return This->lpVtbl->get_CachedCanRotate(This,retVal);
 8026}
 8027/*** IUIAutomationTransformPattern2 methods ***/
 8028static inline HRESULT IUIAutomationTransformPattern2_Zoom(IUIAutomationTransformPattern2* This,double zoomValue) {
 8029    return This->lpVtbl->Zoom(This,zoomValue);
 8030}
 8031static inline HRESULT IUIAutomationTransformPattern2_ZoomByUnit(IUIAutomationTransformPattern2* This,enum ZoomUnit zoomUnit) {
 8032    return This->lpVtbl->ZoomByUnit(This,zoomUnit);
 8033}
 8034static inline HRESULT IUIAutomationTransformPattern2_get_CurrentCanZoom(IUIAutomationTransformPattern2* This,WINBOOL *retVal) {
 8035    return This->lpVtbl->get_CurrentCanZoom(This,retVal);
 8036}
 8037static inline HRESULT IUIAutomationTransformPattern2_get_CachedCanZoom(IUIAutomationTransformPattern2* This,WINBOOL *retVal) {
 8038    return This->lpVtbl->get_CachedCanZoom(This,retVal);
 8039}
 8040static inline HRESULT IUIAutomationTransformPattern2_get_CurrentZoomLevel(IUIAutomationTransformPattern2* This,double *retVal) {
 8041    return This->lpVtbl->get_CurrentZoomLevel(This,retVal);
 8042}
 8043static inline HRESULT IUIAutomationTransformPattern2_get_CachedZoomLevel(IUIAutomationTransformPattern2* This,double *retVal) {
 8044    return This->lpVtbl->get_CachedZoomLevel(This,retVal);
 8045}
 8046static inline HRESULT IUIAutomationTransformPattern2_get_CurrentZoomMinimum(IUIAutomationTransformPattern2* This,double *retVal) {
 8047    return This->lpVtbl->get_CurrentZoomMinimum(This,retVal);
 8048}
 8049static inline HRESULT IUIAutomationTransformPattern2_get_CachedZoomMinimum(IUIAutomationTransformPattern2* This,double *retVal) {
 8050    return This->lpVtbl->get_CachedZoomMinimum(This,retVal);
 8051}
 8052static inline HRESULT IUIAutomationTransformPattern2_get_CurrentZoomMaximum(IUIAutomationTransformPattern2* This,double *retVal) {
 8053    return This->lpVtbl->get_CurrentZoomMaximum(This,retVal);
 8054}
 8055static inline HRESULT IUIAutomationTransformPattern2_get_CachedZoomMaximum(IUIAutomationTransformPattern2* This,double *retVal) {
 8056    return This->lpVtbl->get_CachedZoomMaximum(This,retVal);
 8057}
 8058#endif
 8059#endif
 8060
 8061#endif
 8062
 8063
 8064#endif  /* __IUIAutomationTransformPattern2_INTERFACE_DEFINED__ */
 8065
 8066/*****************************************************************************
 8067 * IUIAutomationTextChildPattern interface
 8068 */
 8069#ifndef __IUIAutomationTextChildPattern_INTERFACE_DEFINED__
 8070#define __IUIAutomationTextChildPattern_INTERFACE_DEFINED__
 8071
 8072DEFINE_GUID(IID_IUIAutomationTextChildPattern, 0x6552b038, 0xae05, 0x40c8, 0xab,0xfd, 0xaa,0x08,0x35,0x2a,0xab,0x86);
 8073#if defined(__cplusplus) && !defined(CINTERFACE)
 8074MIDL_INTERFACE("6552b038-ae05-40c8-abfd-aa08352aab86")
 8075IUIAutomationTextChildPattern : public IUnknown
 8076{
 8077    virtual HRESULT STDMETHODCALLTYPE get_TextContainer(
 8078        IUIAutomationElement **container) = 0;
 8079
 8080    virtual HRESULT STDMETHODCALLTYPE get_TextRange(
 8081        IUIAutomationTextRange **range) = 0;
 8082
 8083};
 8084#ifdef __CRT_UUID_DECL
 8085__CRT_UUID_DECL(IUIAutomationTextChildPattern, 0x6552b038, 0xae05, 0x40c8, 0xab,0xfd, 0xaa,0x08,0x35,0x2a,0xab,0x86)
 8086#endif
 8087#else
 8088typedef struct IUIAutomationTextChildPatternVtbl {
 8089    BEGIN_INTERFACE
 8090
 8091    /*** IUnknown methods ***/
 8092    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 8093        IUIAutomationTextChildPattern *This,
 8094        REFIID riid,
 8095        void **ppvObject);
 8096
 8097    ULONG (STDMETHODCALLTYPE *AddRef)(
 8098        IUIAutomationTextChildPattern *This);
 8099
 8100    ULONG (STDMETHODCALLTYPE *Release)(
 8101        IUIAutomationTextChildPattern *This);
 8102
 8103    /*** IUIAutomationTextChildPattern methods ***/
 8104    HRESULT (STDMETHODCALLTYPE *get_TextContainer)(
 8105        IUIAutomationTextChildPattern *This,
 8106        IUIAutomationElement **container);
 8107
 8108    HRESULT (STDMETHODCALLTYPE *get_TextRange)(
 8109        IUIAutomationTextChildPattern *This,
 8110        IUIAutomationTextRange **range);
 8111
 8112    END_INTERFACE
 8113} IUIAutomationTextChildPatternVtbl;
 8114
 8115interface IUIAutomationTextChildPattern {
 8116    CONST_VTBL IUIAutomationTextChildPatternVtbl* lpVtbl;
 8117};
 8118
 8119#ifdef COBJMACROS
 8120#ifndef WIDL_C_INLINE_WRAPPERS
 8121/*** IUnknown methods ***/
 8122#define IUIAutomationTextChildPattern_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 8123#define IUIAutomationTextChildPattern_AddRef(This) (This)->lpVtbl->AddRef(This)
 8124#define IUIAutomationTextChildPattern_Release(This) (This)->lpVtbl->Release(This)
 8125/*** IUIAutomationTextChildPattern methods ***/
 8126#define IUIAutomationTextChildPattern_get_TextContainer(This,container) (This)->lpVtbl->get_TextContainer(This,container)
 8127#define IUIAutomationTextChildPattern_get_TextRange(This,range) (This)->lpVtbl->get_TextRange(This,range)
 8128#else
 8129/*** IUnknown methods ***/
 8130static inline HRESULT IUIAutomationTextChildPattern_QueryInterface(IUIAutomationTextChildPattern* This,REFIID riid,void **ppvObject) {
 8131    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 8132}
 8133static inline ULONG IUIAutomationTextChildPattern_AddRef(IUIAutomationTextChildPattern* This) {
 8134    return This->lpVtbl->AddRef(This);
 8135}
 8136static inline ULONG IUIAutomationTextChildPattern_Release(IUIAutomationTextChildPattern* This) {
 8137    return This->lpVtbl->Release(This);
 8138}
 8139/*** IUIAutomationTextChildPattern methods ***/
 8140static inline HRESULT IUIAutomationTextChildPattern_get_TextContainer(IUIAutomationTextChildPattern* This,IUIAutomationElement **container) {
 8141    return This->lpVtbl->get_TextContainer(This,container);
 8142}
 8143static inline HRESULT IUIAutomationTextChildPattern_get_TextRange(IUIAutomationTextChildPattern* This,IUIAutomationTextRange **range) {
 8144    return This->lpVtbl->get_TextRange(This,range);
 8145}
 8146#endif
 8147#endif
 8148
 8149#endif
 8150
 8151
 8152#endif  /* __IUIAutomationTextChildPattern_INTERFACE_DEFINED__ */
 8153
 8154/*****************************************************************************
 8155 * IUIAutomationDragPattern interface
 8156 */
 8157#ifndef __IUIAutomationDragPattern_INTERFACE_DEFINED__
 8158#define __IUIAutomationDragPattern_INTERFACE_DEFINED__
 8159
 8160DEFINE_GUID(IID_IUIAutomationDragPattern, 0x1dc7b570, 0x1f54, 0x4bad, 0xbc,0xda, 0xd3,0x6a,0x72,0x2f,0xb7,0xbd);
 8161#if defined(__cplusplus) && !defined(CINTERFACE)
 8162MIDL_INTERFACE("1dc7b570-1f54-4bad-bcda-d36a722fb7bd")
 8163IUIAutomationDragPattern : public IUnknown
 8164{
 8165    virtual HRESULT STDMETHODCALLTYPE get_CurrentIsGrabbed(
 8166        WINBOOL *retVal) = 0;
 8167
 8168    virtual HRESULT STDMETHODCALLTYPE get_CachedIsGrabbed(
 8169        WINBOOL *retVal) = 0;
 8170
 8171    virtual HRESULT STDMETHODCALLTYPE get_CurrentDropEffect(
 8172        BSTR *retVal) = 0;
 8173
 8174    virtual HRESULT STDMETHODCALLTYPE get_CachedDropEffect(
 8175        BSTR *retVal) = 0;
 8176
 8177    virtual HRESULT STDMETHODCALLTYPE get_CurrentDropEffects(
 8178        SAFEARRAY **retVal) = 0;
 8179
 8180    virtual HRESULT STDMETHODCALLTYPE get_CachedDropEffects(
 8181        SAFEARRAY **retVal) = 0;
 8182
 8183    virtual HRESULT STDMETHODCALLTYPE GetCurrentGrabbedItems(
 8184        IUIAutomationElementArray **retVal) = 0;
 8185
 8186    virtual HRESULT STDMETHODCALLTYPE GetCachedGrabbedItems(
 8187        IUIAutomationElementArray **retVal) = 0;
 8188
 8189};
 8190#ifdef __CRT_UUID_DECL
 8191__CRT_UUID_DECL(IUIAutomationDragPattern, 0x1dc7b570, 0x1f54, 0x4bad, 0xbc,0xda, 0xd3,0x6a,0x72,0x2f,0xb7,0xbd)
 8192#endif
 8193#else
 8194typedef struct IUIAutomationDragPatternVtbl {
 8195    BEGIN_INTERFACE
 8196
 8197    /*** IUnknown methods ***/
 8198    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 8199        IUIAutomationDragPattern *This,
 8200        REFIID riid,
 8201        void **ppvObject);
 8202
 8203    ULONG (STDMETHODCALLTYPE *AddRef)(
 8204        IUIAutomationDragPattern *This);
 8205
 8206    ULONG (STDMETHODCALLTYPE *Release)(
 8207        IUIAutomationDragPattern *This);
 8208
 8209    /*** IUIAutomationDragPattern methods ***/
 8210    HRESULT (STDMETHODCALLTYPE *get_CurrentIsGrabbed)(
 8211        IUIAutomationDragPattern *This,
 8212        WINBOOL *retVal);
 8213
 8214    HRESULT (STDMETHODCALLTYPE *get_CachedIsGrabbed)(
 8215        IUIAutomationDragPattern *This,
 8216        WINBOOL *retVal);
 8217
 8218    HRESULT (STDMETHODCALLTYPE *get_CurrentDropEffect)(
 8219        IUIAutomationDragPattern *This,
 8220        BSTR *retVal);
 8221
 8222    HRESULT (STDMETHODCALLTYPE *get_CachedDropEffect)(
 8223        IUIAutomationDragPattern *This,
 8224        BSTR *retVal);
 8225
 8226    HRESULT (STDMETHODCALLTYPE *get_CurrentDropEffects)(
 8227        IUIAutomationDragPattern *This,
 8228        SAFEARRAY **retVal);
 8229
 8230    HRESULT (STDMETHODCALLTYPE *get_CachedDropEffects)(
 8231        IUIAutomationDragPattern *This,
 8232        SAFEARRAY **retVal);
 8233
 8234    HRESULT (STDMETHODCALLTYPE *GetCurrentGrabbedItems)(
 8235        IUIAutomationDragPattern *This,
 8236        IUIAutomationElementArray **retVal);
 8237
 8238    HRESULT (STDMETHODCALLTYPE *GetCachedGrabbedItems)(
 8239        IUIAutomationDragPattern *This,
 8240        IUIAutomationElementArray **retVal);
 8241
 8242    END_INTERFACE
 8243} IUIAutomationDragPatternVtbl;
 8244
 8245interface IUIAutomationDragPattern {
 8246    CONST_VTBL IUIAutomationDragPatternVtbl* lpVtbl;
 8247};
 8248
 8249#ifdef COBJMACROS
 8250#ifndef WIDL_C_INLINE_WRAPPERS
 8251/*** IUnknown methods ***/
 8252#define IUIAutomationDragPattern_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 8253#define IUIAutomationDragPattern_AddRef(This) (This)->lpVtbl->AddRef(This)
 8254#define IUIAutomationDragPattern_Release(This) (This)->lpVtbl->Release(This)
 8255/*** IUIAutomationDragPattern methods ***/
 8256#define IUIAutomationDragPattern_get_CurrentIsGrabbed(This,retVal) (This)->lpVtbl->get_CurrentIsGrabbed(This,retVal)
 8257#define IUIAutomationDragPattern_get_CachedIsGrabbed(This,retVal) (This)->lpVtbl->get_CachedIsGrabbed(This,retVal)
 8258#define IUIAutomationDragPattern_get_CurrentDropEffect(This,retVal) (This)->lpVtbl->get_CurrentDropEffect(This,retVal)
 8259#define IUIAutomationDragPattern_get_CachedDropEffect(This,retVal) (This)->lpVtbl->get_CachedDropEffect(This,retVal)
 8260#define IUIAutomationDragPattern_get_CurrentDropEffects(This,retVal) (This)->lpVtbl->get_CurrentDropEffects(This,retVal)
 8261#define IUIAutomationDragPattern_get_CachedDropEffects(This,retVal) (This)->lpVtbl->get_CachedDropEffects(This,retVal)
 8262#define IUIAutomationDragPattern_GetCurrentGrabbedItems(This,retVal) (This)->lpVtbl->GetCurrentGrabbedItems(This,retVal)
 8263#define IUIAutomationDragPattern_GetCachedGrabbedItems(This,retVal) (This)->lpVtbl->GetCachedGrabbedItems(This,retVal)
 8264#else
 8265/*** IUnknown methods ***/
 8266static inline HRESULT IUIAutomationDragPattern_QueryInterface(IUIAutomationDragPattern* This,REFIID riid,void **ppvObject) {
 8267    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 8268}
 8269static inline ULONG IUIAutomationDragPattern_AddRef(IUIAutomationDragPattern* This) {
 8270    return This->lpVtbl->AddRef(This);
 8271}
 8272static inline ULONG IUIAutomationDragPattern_Release(IUIAutomationDragPattern* This) {
 8273    return This->lpVtbl->Release(This);
 8274}
 8275/*** IUIAutomationDragPattern methods ***/
 8276static inline HRESULT IUIAutomationDragPattern_get_CurrentIsGrabbed(IUIAutomationDragPattern* This,WINBOOL *retVal) {
 8277    return This->lpVtbl->get_CurrentIsGrabbed(This,retVal);
 8278}
 8279static inline HRESULT IUIAutomationDragPattern_get_CachedIsGrabbed(IUIAutomationDragPattern* This,WINBOOL *retVal) {
 8280    return This->lpVtbl->get_CachedIsGrabbed(This,retVal);
 8281}
 8282static inline HRESULT IUIAutomationDragPattern_get_CurrentDropEffect(IUIAutomationDragPattern* This,BSTR *retVal) {
 8283    return This->lpVtbl->get_CurrentDropEffect(This,retVal);
 8284}
 8285static inline HRESULT IUIAutomationDragPattern_get_CachedDropEffect(IUIAutomationDragPattern* This,BSTR *retVal) {
 8286    return This->lpVtbl->get_CachedDropEffect(This,retVal);
 8287}
 8288static inline HRESULT IUIAutomationDragPattern_get_CurrentDropEffects(IUIAutomationDragPattern* This,SAFEARRAY **retVal) {
 8289    return This->lpVtbl->get_CurrentDropEffects(This,retVal);
 8290}
 8291static inline HRESULT IUIAutomationDragPattern_get_CachedDropEffects(IUIAutomationDragPattern* This,SAFEARRAY **retVal) {
 8292    return This->lpVtbl->get_CachedDropEffects(This,retVal);
 8293}
 8294static inline HRESULT IUIAutomationDragPattern_GetCurrentGrabbedItems(IUIAutomationDragPattern* This,IUIAutomationElementArray **retVal) {
 8295    return This->lpVtbl->GetCurrentGrabbedItems(This,retVal);
 8296}
 8297static inline HRESULT IUIAutomationDragPattern_GetCachedGrabbedItems(IUIAutomationDragPattern* This,IUIAutomationElementArray **retVal) {
 8298    return This->lpVtbl->GetCachedGrabbedItems(This,retVal);
 8299}
 8300#endif
 8301#endif
 8302
 8303#endif
 8304
 8305
 8306#endif  /* __IUIAutomationDragPattern_INTERFACE_DEFINED__ */
 8307
 8308/*****************************************************************************
 8309 * IUIAutomationDropTargetPattern interface
 8310 */
 8311#ifndef __IUIAutomationDropTargetPattern_INTERFACE_DEFINED__
 8312#define __IUIAutomationDropTargetPattern_INTERFACE_DEFINED__
 8313
 8314DEFINE_GUID(IID_IUIAutomationDropTargetPattern, 0x69a095f7, 0xeee4, 0x430e, 0xa4,0x6b, 0xfb,0x73,0xb1,0xae,0x39,0xa5);
 8315#if defined(__cplusplus) && !defined(CINTERFACE)
 8316MIDL_INTERFACE("69a095f7-eee4-430e-a46b-fb73b1ae39a5")
 8317IUIAutomationDropTargetPattern : public IUnknown
 8318{
 8319    virtual HRESULT STDMETHODCALLTYPE get_CurrentDropTargetEffect(
 8320        BSTR *retVal) = 0;
 8321
 8322    virtual HRESULT STDMETHODCALLTYPE get_CachedDropTargetEffect(
 8323        BSTR *retVal) = 0;
 8324
 8325    virtual HRESULT STDMETHODCALLTYPE get_CurrentDropTargetEffects(
 8326        SAFEARRAY **retVal) = 0;
 8327
 8328    virtual HRESULT STDMETHODCALLTYPE get_CachedDropTargetEffects(
 8329        SAFEARRAY **retVal) = 0;
 8330
 8331};
 8332#ifdef __CRT_UUID_DECL
 8333__CRT_UUID_DECL(IUIAutomationDropTargetPattern, 0x69a095f7, 0xeee4, 0x430e, 0xa4,0x6b, 0xfb,0x73,0xb1,0xae,0x39,0xa5)
 8334#endif
 8335#else
 8336typedef struct IUIAutomationDropTargetPatternVtbl {
 8337    BEGIN_INTERFACE
 8338
 8339    /*** IUnknown methods ***/
 8340    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 8341        IUIAutomationDropTargetPattern *This,
 8342        REFIID riid,
 8343        void **ppvObject);
 8344
 8345    ULONG (STDMETHODCALLTYPE *AddRef)(
 8346        IUIAutomationDropTargetPattern *This);
 8347
 8348    ULONG (STDMETHODCALLTYPE *Release)(
 8349        IUIAutomationDropTargetPattern *This);
 8350
 8351    /*** IUIAutomationDropTargetPattern methods ***/
 8352    HRESULT (STDMETHODCALLTYPE *get_CurrentDropTargetEffect)(
 8353        IUIAutomationDropTargetPattern *This,
 8354        BSTR *retVal);
 8355
 8356    HRESULT (STDMETHODCALLTYPE *get_CachedDropTargetEffect)(
 8357        IUIAutomationDropTargetPattern *This,
 8358        BSTR *retVal);
 8359
 8360    HRESULT (STDMETHODCALLTYPE *get_CurrentDropTargetEffects)(
 8361        IUIAutomationDropTargetPattern *This,
 8362        SAFEARRAY **retVal);
 8363
 8364    HRESULT (STDMETHODCALLTYPE *get_CachedDropTargetEffects)(
 8365        IUIAutomationDropTargetPattern *This,
 8366        SAFEARRAY **retVal);
 8367
 8368    END_INTERFACE
 8369} IUIAutomationDropTargetPatternVtbl;
 8370
 8371interface IUIAutomationDropTargetPattern {
 8372    CONST_VTBL IUIAutomationDropTargetPatternVtbl* lpVtbl;
 8373};
 8374
 8375#ifdef COBJMACROS
 8376#ifndef WIDL_C_INLINE_WRAPPERS
 8377/*** IUnknown methods ***/
 8378#define IUIAutomationDropTargetPattern_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 8379#define IUIAutomationDropTargetPattern_AddRef(This) (This)->lpVtbl->AddRef(This)
 8380#define IUIAutomationDropTargetPattern_Release(This) (This)->lpVtbl->Release(This)
 8381/*** IUIAutomationDropTargetPattern methods ***/
 8382#define IUIAutomationDropTargetPattern_get_CurrentDropTargetEffect(This,retVal) (This)->lpVtbl->get_CurrentDropTargetEffect(This,retVal)
 8383#define IUIAutomationDropTargetPattern_get_CachedDropTargetEffect(This,retVal) (This)->lpVtbl->get_CachedDropTargetEffect(This,retVal)
 8384#define IUIAutomationDropTargetPattern_get_CurrentDropTargetEffects(This,retVal) (This)->lpVtbl->get_CurrentDropTargetEffects(This,retVal)
 8385#define IUIAutomationDropTargetPattern_get_CachedDropTargetEffects(This,retVal) (This)->lpVtbl->get_CachedDropTargetEffects(This,retVal)
 8386#else
 8387/*** IUnknown methods ***/
 8388static inline HRESULT IUIAutomationDropTargetPattern_QueryInterface(IUIAutomationDropTargetPattern* This,REFIID riid,void **ppvObject) {
 8389    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 8390}
 8391static inline ULONG IUIAutomationDropTargetPattern_AddRef(IUIAutomationDropTargetPattern* This) {
 8392    return This->lpVtbl->AddRef(This);
 8393}
 8394static inline ULONG IUIAutomationDropTargetPattern_Release(IUIAutomationDropTargetPattern* This) {
 8395    return This->lpVtbl->Release(This);
 8396}
 8397/*** IUIAutomationDropTargetPattern methods ***/
 8398static inline HRESULT IUIAutomationDropTargetPattern_get_CurrentDropTargetEffect(IUIAutomationDropTargetPattern* This,BSTR *retVal) {
 8399    return This->lpVtbl->get_CurrentDropTargetEffect(This,retVal);
 8400}
 8401static inline HRESULT IUIAutomationDropTargetPattern_get_CachedDropTargetEffect(IUIAutomationDropTargetPattern* This,BSTR *retVal) {
 8402    return This->lpVtbl->get_CachedDropTargetEffect(This,retVal);
 8403}
 8404static inline HRESULT IUIAutomationDropTargetPattern_get_CurrentDropTargetEffects(IUIAutomationDropTargetPattern* This,SAFEARRAY **retVal) {
 8405    return This->lpVtbl->get_CurrentDropTargetEffects(This,retVal);
 8406}
 8407static inline HRESULT IUIAutomationDropTargetPattern_get_CachedDropTargetEffects(IUIAutomationDropTargetPattern* This,SAFEARRAY **retVal) {
 8408    return This->lpVtbl->get_CachedDropTargetEffects(This,retVal);
 8409}
 8410#endif
 8411#endif
 8412
 8413#endif
 8414
 8415
 8416#endif  /* __IUIAutomationDropTargetPattern_INTERFACE_DEFINED__ */
 8417
 8418/*****************************************************************************
 8419 * IUIAutomationElement interface
 8420 */
 8421#ifndef __IUIAutomationElement_INTERFACE_DEFINED__
 8422#define __IUIAutomationElement_INTERFACE_DEFINED__
 8423
 8424DEFINE_GUID(IID_IUIAutomationElement, 0xd22108aa, 0x8ac5, 0x49a5, 0x83,0x7b, 0x37,0xbb,0xb3,0xd7,0x59,0x1e);
 8425#if defined(__cplusplus) && !defined(CINTERFACE)
 8426MIDL_INTERFACE("d22108aa-8ac5-49a5-837b-37bbb3d7591e")
 8427IUIAutomationElement : public IUnknown
 8428{
 8429    virtual HRESULT STDMETHODCALLTYPE SetFocus(
 8430        ) = 0;
 8431
 8432    virtual HRESULT STDMETHODCALLTYPE GetRuntimeId(
 8433        SAFEARRAY **runtimeId) = 0;
 8434
 8435    virtual HRESULT STDMETHODCALLTYPE FindFirst(
 8436        enum TreeScope scope,
 8437        IUIAutomationCondition *condition,
 8438        IUIAutomationElement **found) = 0;
 8439
 8440    virtual HRESULT STDMETHODCALLTYPE FindAll(
 8441        enum TreeScope scope,
 8442        IUIAutomationCondition *condition,
 8443        IUIAutomationElementArray **found) = 0;
 8444
 8445    virtual HRESULT STDMETHODCALLTYPE FindFirstBuildCache(
 8446        enum TreeScope scope,
 8447        IUIAutomationCondition *condition,
 8448        IUIAutomationCacheRequest *cacheRequest,
 8449        IUIAutomationElement **found) = 0;
 8450
 8451    virtual HRESULT STDMETHODCALLTYPE FindAllBuildCache(
 8452        enum TreeScope scope,
 8453        IUIAutomationCondition *condition,
 8454        IUIAutomationCacheRequest *cacheRequest,
 8455        IUIAutomationElementArray **found) = 0;
 8456
 8457    virtual HRESULT STDMETHODCALLTYPE BuildUpdatedCache(
 8458        IUIAutomationCacheRequest *cacheRequest,
 8459        IUIAutomationElement **updatedElement) = 0;
 8460
 8461    virtual HRESULT STDMETHODCALLTYPE GetCurrentPropertyValue(
 8462        PROPERTYID propertyId,
 8463        VARIANT *retVal) = 0;
 8464
 8465    virtual HRESULT STDMETHODCALLTYPE GetCurrentPropertyValueEx(
 8466        PROPERTYID propertyId,
 8467        WINBOOL ignoreDefaultValue,
 8468        VARIANT *retVal) = 0;
 8469
 8470    virtual HRESULT STDMETHODCALLTYPE GetCachedPropertyValue(
 8471        PROPERTYID propertyId,
 8472        VARIANT *retVal) = 0;
 8473
 8474    virtual HRESULT STDMETHODCALLTYPE GetCachedPropertyValueEx(
 8475        PROPERTYID propertyId,
 8476        WINBOOL ignoreDefaultValue,
 8477        VARIANT *retVal) = 0;
 8478
 8479    virtual HRESULT STDMETHODCALLTYPE GetCurrentPatternAs(
 8480        PATTERNID patternId,
 8481        REFIID riid,
 8482        void **patternObject) = 0;
 8483
 8484    virtual HRESULT STDMETHODCALLTYPE GetCachedPatternAs(
 8485        PATTERNID patternId,
 8486        REFIID riid,
 8487        void **patternObject) = 0;
 8488
 8489    virtual HRESULT STDMETHODCALLTYPE GetCurrentPattern(
 8490        PATTERNID patternId,
 8491        IUnknown **patternObject) = 0;
 8492
 8493    virtual HRESULT STDMETHODCALLTYPE GetCachedPattern(
 8494        PATTERNID patternId,
 8495        IUnknown **patternObject) = 0;
 8496
 8497    virtual HRESULT STDMETHODCALLTYPE GetCachedParent(
 8498        IUIAutomationElement **parent) = 0;
 8499
 8500    virtual HRESULT STDMETHODCALLTYPE GetCachedChildren(
 8501        IUIAutomationElementArray **children) = 0;
 8502
 8503    virtual HRESULT STDMETHODCALLTYPE get_CurrentProcessId(
 8504        int *retVal) = 0;
 8505
 8506    virtual HRESULT STDMETHODCALLTYPE get_CurrentControlType(
 8507        CONTROLTYPEID *retVal) = 0;
 8508
 8509    virtual HRESULT STDMETHODCALLTYPE get_CurrentLocalizedControlType(
 8510        BSTR *retVal) = 0;
 8511
 8512    virtual HRESULT STDMETHODCALLTYPE get_CurrentName(
 8513        BSTR *retVal) = 0;
 8514
 8515    virtual HRESULT STDMETHODCALLTYPE get_CurrentAcceleratorKey(
 8516        BSTR *retVal) = 0;
 8517
 8518    virtual HRESULT STDMETHODCALLTYPE get_CurrentAccessKey(
 8519        BSTR *retVal) = 0;
 8520
 8521    virtual HRESULT STDMETHODCALLTYPE get_CurrentHasKeyboardFocus(
 8522        WINBOOL *retVal) = 0;
 8523
 8524    virtual HRESULT STDMETHODCALLTYPE get_CurrentIsKeyboardFocusable(
 8525        WINBOOL *retVal) = 0;
 8526
 8527    virtual HRESULT STDMETHODCALLTYPE get_CurrentIsEnabled(
 8528        WINBOOL *retVal) = 0;
 8529
 8530    virtual HRESULT STDMETHODCALLTYPE get_CurrentAutomationId(
 8531        BSTR *retVal) = 0;
 8532
 8533    virtual HRESULT STDMETHODCALLTYPE get_CurrentClassName(
 8534        BSTR *retVal) = 0;
 8535
 8536    virtual HRESULT STDMETHODCALLTYPE get_CurrentHelpText(
 8537        BSTR *retVal) = 0;
 8538
 8539    virtual HRESULT STDMETHODCALLTYPE get_CurrentCulture(
 8540        int *retVal) = 0;
 8541
 8542    virtual HRESULT STDMETHODCALLTYPE get_CurrentIsControlElement(
 8543        WINBOOL *retVal) = 0;
 8544
 8545    virtual HRESULT STDMETHODCALLTYPE get_CurrentIsContentElement(
 8546        WINBOOL *retVal) = 0;
 8547
 8548    virtual HRESULT STDMETHODCALLTYPE get_CurrentIsPassword(
 8549        WINBOOL *retVal) = 0;
 8550
 8551    virtual HRESULT STDMETHODCALLTYPE get_CurrentNativeWindowHandle(
 8552        UIA_HWND *retVal) = 0;
 8553
 8554    virtual HRESULT STDMETHODCALLTYPE get_CurrentItemType(
 8555        BSTR *retVal) = 0;
 8556
 8557    virtual HRESULT STDMETHODCALLTYPE get_CurrentIsOffscreen(
 8558        WINBOOL *retVal) = 0;
 8559
 8560    virtual HRESULT STDMETHODCALLTYPE get_CurrentOrientation(
 8561        enum OrientationType *retVal) = 0;
 8562
 8563    virtual HRESULT STDMETHODCALLTYPE get_CurrentFrameworkId(
 8564        BSTR *retVal) = 0;
 8565
 8566    virtual HRESULT STDMETHODCALLTYPE get_CurrentIsRequiredForForm(
 8567        WINBOOL *retVal) = 0;
 8568
 8569    virtual HRESULT STDMETHODCALLTYPE get_CurrentItemStatus(
 8570        BSTR *retVal) = 0;
 8571
 8572    virtual HRESULT STDMETHODCALLTYPE get_CurrentBoundingRectangle(
 8573        RECT *retVal) = 0;
 8574
 8575    virtual HRESULT STDMETHODCALLTYPE get_CurrentLabeledBy(
 8576        IUIAutomationElement **retVal) = 0;
 8577
 8578    virtual HRESULT STDMETHODCALLTYPE get_CurrentAriaRole(
 8579        BSTR *retVal) = 0;
 8580
 8581    virtual HRESULT STDMETHODCALLTYPE get_CurrentAriaProperties(
 8582        BSTR *retVal) = 0;
 8583
 8584    virtual HRESULT STDMETHODCALLTYPE get_CurrentIsDataValidForForm(
 8585        WINBOOL *retVal) = 0;
 8586
 8587    virtual HRESULT STDMETHODCALLTYPE get_CurrentControllerFor(
 8588        IUIAutomationElementArray **retVal) = 0;
 8589
 8590    virtual HRESULT STDMETHODCALLTYPE get_CurrentDescribedBy(
 8591        IUIAutomationElementArray **retVal) = 0;
 8592
 8593    virtual HRESULT STDMETHODCALLTYPE get_CurrentFlowsTo(
 8594        IUIAutomationElementArray **retVal) = 0;
 8595
 8596    virtual HRESULT STDMETHODCALLTYPE get_CurrentProviderDescription(
 8597        BSTR *retVal) = 0;
 8598
 8599    virtual HRESULT STDMETHODCALLTYPE get_CachedProcessId(
 8600        int *retVal) = 0;
 8601
 8602    virtual HRESULT STDMETHODCALLTYPE get_CachedControlType(
 8603        CONTROLTYPEID *retVal) = 0;
 8604
 8605    virtual HRESULT STDMETHODCALLTYPE get_CachedLocalizedControlType(
 8606        BSTR *retVal) = 0;
 8607
 8608    virtual HRESULT STDMETHODCALLTYPE get_CachedName(
 8609        BSTR *retVal) = 0;
 8610
 8611    virtual HRESULT STDMETHODCALLTYPE get_CachedAcceleratorKey(
 8612        BSTR *retVal) = 0;
 8613
 8614    virtual HRESULT STDMETHODCALLTYPE get_CachedAccessKey(
 8615        BSTR *retVal) = 0;
 8616
 8617    virtual HRESULT STDMETHODCALLTYPE get_CachedHasKeyboardFocus(
 8618        WINBOOL *retVal) = 0;
 8619
 8620    virtual HRESULT STDMETHODCALLTYPE get_CachedIsKeyboardFocusable(
 8621        WINBOOL *retVal) = 0;
 8622
 8623    virtual HRESULT STDMETHODCALLTYPE get_CachedIsEnabled(
 8624        WINBOOL *retVal) = 0;
 8625
 8626    virtual HRESULT STDMETHODCALLTYPE get_CachedAutomationId(
 8627        BSTR *retVal) = 0;
 8628
 8629    virtual HRESULT STDMETHODCALLTYPE get_CachedClassName(
 8630        BSTR *retVal) = 0;
 8631
 8632    virtual HRESULT STDMETHODCALLTYPE get_CachedHelpText(
 8633        BSTR *retVal) = 0;
 8634
 8635    virtual HRESULT STDMETHODCALLTYPE get_CachedCulture(
 8636        int *retVal) = 0;
 8637
 8638    virtual HRESULT STDMETHODCALLTYPE get_CachedIsControlElement(
 8639        WINBOOL *retVal) = 0;
 8640
 8641    virtual HRESULT STDMETHODCALLTYPE get_CachedIsContentElement(
 8642        WINBOOL *retVal) = 0;
 8643
 8644    virtual HRESULT STDMETHODCALLTYPE get_CachedIsPassword(
 8645        WINBOOL *retVal) = 0;
 8646
 8647    virtual HRESULT STDMETHODCALLTYPE get_CachedNativeWindowHandle(
 8648        UIA_HWND *retVal) = 0;
 8649
 8650    virtual HRESULT STDMETHODCALLTYPE get_CachedItemType(
 8651        BSTR *retVal) = 0;
 8652
 8653    virtual HRESULT STDMETHODCALLTYPE get_CachedIsOffscreen(
 8654        WINBOOL *retVal) = 0;
 8655
 8656    virtual HRESULT STDMETHODCALLTYPE get_CachedOrientation(
 8657        enum OrientationType *retVal) = 0;
 8658
 8659    virtual HRESULT STDMETHODCALLTYPE get_CachedFrameworkId(
 8660        BSTR *retVal) = 0;
 8661
 8662    virtual HRESULT STDMETHODCALLTYPE get_CachedIsRequiredForForm(
 8663        WINBOOL *retVal) = 0;
 8664
 8665    virtual HRESULT STDMETHODCALLTYPE get_CachedItemStatus(
 8666        BSTR *retVal) = 0;
 8667
 8668    virtual HRESULT STDMETHODCALLTYPE get_CachedBoundingRectangle(
 8669        RECT *retVal) = 0;
 8670
 8671    virtual HRESULT STDMETHODCALLTYPE get_CachedLabeledBy(
 8672        IUIAutomationElement **retVal) = 0;
 8673
 8674    virtual HRESULT STDMETHODCALLTYPE get_CachedAriaRole(
 8675        BSTR *retVal) = 0;
 8676
 8677    virtual HRESULT STDMETHODCALLTYPE get_CachedAriaProperties(
 8678        BSTR *retVal) = 0;
 8679
 8680    virtual HRESULT STDMETHODCALLTYPE get_CachedIsDataValidForForm(
 8681        WINBOOL *retVal) = 0;
 8682
 8683    virtual HRESULT STDMETHODCALLTYPE get_CachedControllerFor(
 8684        IUIAutomationElementArray **retVal) = 0;
 8685
 8686    virtual HRESULT STDMETHODCALLTYPE get_CachedDescribedBy(
 8687        IUIAutomationElementArray **retVal) = 0;
 8688
 8689    virtual HRESULT STDMETHODCALLTYPE get_CachedFlowsTo(
 8690        IUIAutomationElementArray **retVal) = 0;
 8691
 8692    virtual HRESULT STDMETHODCALLTYPE get_CachedProviderDescription(
 8693        BSTR *retVal) = 0;
 8694
 8695    virtual HRESULT STDMETHODCALLTYPE GetClickablePoint(
 8696        POINT *clickable,
 8697        WINBOOL *gotClickable) = 0;
 8698
 8699};
 8700#ifdef __CRT_UUID_DECL
 8701__CRT_UUID_DECL(IUIAutomationElement, 0xd22108aa, 0x8ac5, 0x49a5, 0x83,0x7b, 0x37,0xbb,0xb3,0xd7,0x59,0x1e)
 8702#endif
 8703#else
 8704typedef struct IUIAutomationElementVtbl {
 8705    BEGIN_INTERFACE
 8706
 8707    /*** IUnknown methods ***/
 8708    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 8709        IUIAutomationElement *This,
 8710        REFIID riid,
 8711        void **ppvObject);
 8712
 8713    ULONG (STDMETHODCALLTYPE *AddRef)(
 8714        IUIAutomationElement *This);
 8715
 8716    ULONG (STDMETHODCALLTYPE *Release)(
 8717        IUIAutomationElement *This);
 8718
 8719    /*** IUIAutomationElement methods ***/
 8720    HRESULT (STDMETHODCALLTYPE *SetFocus)(
 8721        IUIAutomationElement *This);
 8722
 8723    HRESULT (STDMETHODCALLTYPE *GetRuntimeId)(
 8724        IUIAutomationElement *This,
 8725        SAFEARRAY **runtimeId);
 8726
 8727    HRESULT (STDMETHODCALLTYPE *FindFirst)(
 8728        IUIAutomationElement *This,
 8729        enum TreeScope scope,
 8730        IUIAutomationCondition *condition,
 8731        IUIAutomationElement **found);
 8732
 8733    HRESULT (STDMETHODCALLTYPE *FindAll)(
 8734        IUIAutomationElement *This,
 8735        enum TreeScope scope,
 8736        IUIAutomationCondition *condition,
 8737        IUIAutomationElementArray **found);
 8738
 8739    HRESULT (STDMETHODCALLTYPE *FindFirstBuildCache)(
 8740        IUIAutomationElement *This,
 8741        enum TreeScope scope,
 8742        IUIAutomationCondition *condition,
 8743        IUIAutomationCacheRequest *cacheRequest,
 8744        IUIAutomationElement **found);
 8745
 8746    HRESULT (STDMETHODCALLTYPE *FindAllBuildCache)(
 8747        IUIAutomationElement *This,
 8748        enum TreeScope scope,
 8749        IUIAutomationCondition *condition,
 8750        IUIAutomationCacheRequest *cacheRequest,
 8751        IUIAutomationElementArray **found);
 8752
 8753    HRESULT (STDMETHODCALLTYPE *BuildUpdatedCache)(
 8754        IUIAutomationElement *This,
 8755        IUIAutomationCacheRequest *cacheRequest,
 8756        IUIAutomationElement **updatedElement);
 8757
 8758    HRESULT (STDMETHODCALLTYPE *GetCurrentPropertyValue)(
 8759        IUIAutomationElement *This,
 8760        PROPERTYID propertyId,
 8761        VARIANT *retVal);
 8762
 8763    HRESULT (STDMETHODCALLTYPE *GetCurrentPropertyValueEx)(
 8764        IUIAutomationElement *This,
 8765        PROPERTYID propertyId,
 8766        WINBOOL ignoreDefaultValue,
 8767        VARIANT *retVal);
 8768
 8769    HRESULT (STDMETHODCALLTYPE *GetCachedPropertyValue)(
 8770        IUIAutomationElement *This,
 8771        PROPERTYID propertyId,
 8772        VARIANT *retVal);
 8773
 8774    HRESULT (STDMETHODCALLTYPE *GetCachedPropertyValueEx)(
 8775        IUIAutomationElement *This,
 8776        PROPERTYID propertyId,
 8777        WINBOOL ignoreDefaultValue,
 8778        VARIANT *retVal);
 8779
 8780    HRESULT (STDMETHODCALLTYPE *GetCurrentPatternAs)(
 8781        IUIAutomationElement *This,
 8782        PATTERNID patternId,
 8783        REFIID riid,
 8784        void **patternObject);
 8785
 8786    HRESULT (STDMETHODCALLTYPE *GetCachedPatternAs)(
 8787        IUIAutomationElement *This,
 8788        PATTERNID patternId,
 8789        REFIID riid,
 8790        void **patternObject);
 8791
 8792    HRESULT (STDMETHODCALLTYPE *GetCurrentPattern)(
 8793        IUIAutomationElement *This,
 8794        PATTERNID patternId,
 8795        IUnknown **patternObject);
 8796
 8797    HRESULT (STDMETHODCALLTYPE *GetCachedPattern)(
 8798        IUIAutomationElement *This,
 8799        PATTERNID patternId,
 8800        IUnknown **patternObject);
 8801
 8802    HRESULT (STDMETHODCALLTYPE *GetCachedParent)(
 8803        IUIAutomationElement *This,
 8804        IUIAutomationElement **parent);
 8805
 8806    HRESULT (STDMETHODCALLTYPE *GetCachedChildren)(
 8807        IUIAutomationElement *This,
 8808        IUIAutomationElementArray **children);
 8809
 8810    HRESULT (STDMETHODCALLTYPE *get_CurrentProcessId)(
 8811        IUIAutomationElement *This,
 8812        int *retVal);
 8813
 8814    HRESULT (STDMETHODCALLTYPE *get_CurrentControlType)(
 8815        IUIAutomationElement *This,
 8816        CONTROLTYPEID *retVal);
 8817
 8818    HRESULT (STDMETHODCALLTYPE *get_CurrentLocalizedControlType)(
 8819        IUIAutomationElement *This,
 8820        BSTR *retVal);
 8821
 8822    HRESULT (STDMETHODCALLTYPE *get_CurrentName)(
 8823        IUIAutomationElement *This,
 8824        BSTR *retVal);
 8825
 8826    HRESULT (STDMETHODCALLTYPE *get_CurrentAcceleratorKey)(
 8827        IUIAutomationElement *This,
 8828        BSTR *retVal);
 8829
 8830    HRESULT (STDMETHODCALLTYPE *get_CurrentAccessKey)(
 8831        IUIAutomationElement *This,
 8832        BSTR *retVal);
 8833
 8834    HRESULT (STDMETHODCALLTYPE *get_CurrentHasKeyboardFocus)(
 8835        IUIAutomationElement *This,
 8836        WINBOOL *retVal);
 8837
 8838    HRESULT (STDMETHODCALLTYPE *get_CurrentIsKeyboardFocusable)(
 8839        IUIAutomationElement *This,
 8840        WINBOOL *retVal);
 8841
 8842    HRESULT (STDMETHODCALLTYPE *get_CurrentIsEnabled)(
 8843        IUIAutomationElement *This,
 8844        WINBOOL *retVal);
 8845
 8846    HRESULT (STDMETHODCALLTYPE *get_CurrentAutomationId)(
 8847        IUIAutomationElement *This,
 8848        BSTR *retVal);
 8849
 8850    HRESULT (STDMETHODCALLTYPE *get_CurrentClassName)(
 8851        IUIAutomationElement *This,
 8852        BSTR *retVal);
 8853
 8854    HRESULT (STDMETHODCALLTYPE *get_CurrentHelpText)(
 8855        IUIAutomationElement *This,
 8856        BSTR *retVal);
 8857
 8858    HRESULT (STDMETHODCALLTYPE *get_CurrentCulture)(
 8859        IUIAutomationElement *This,
 8860        int *retVal);
 8861
 8862    HRESULT (STDMETHODCALLTYPE *get_CurrentIsControlElement)(
 8863        IUIAutomationElement *This,
 8864        WINBOOL *retVal);
 8865
 8866    HRESULT (STDMETHODCALLTYPE *get_CurrentIsContentElement)(
 8867        IUIAutomationElement *This,
 8868        WINBOOL *retVal);
 8869
 8870    HRESULT (STDMETHODCALLTYPE *get_CurrentIsPassword)(
 8871        IUIAutomationElement *This,
 8872        WINBOOL *retVal);
 8873
 8874    HRESULT (STDMETHODCALLTYPE *get_CurrentNativeWindowHandle)(
 8875        IUIAutomationElement *This,
 8876        UIA_HWND *retVal);
 8877
 8878    HRESULT (STDMETHODCALLTYPE *get_CurrentItemType)(
 8879        IUIAutomationElement *This,
 8880        BSTR *retVal);
 8881
 8882    HRESULT (STDMETHODCALLTYPE *get_CurrentIsOffscreen)(
 8883        IUIAutomationElement *This,
 8884        WINBOOL *retVal);
 8885
 8886    HRESULT (STDMETHODCALLTYPE *get_CurrentOrientation)(
 8887        IUIAutomationElement *This,
 8888        enum OrientationType *retVal);
 8889
 8890    HRESULT (STDMETHODCALLTYPE *get_CurrentFrameworkId)(
 8891        IUIAutomationElement *This,
 8892        BSTR *retVal);
 8893
 8894    HRESULT (STDMETHODCALLTYPE *get_CurrentIsRequiredForForm)(
 8895        IUIAutomationElement *This,
 8896        WINBOOL *retVal);
 8897
 8898    HRESULT (STDMETHODCALLTYPE *get_CurrentItemStatus)(
 8899        IUIAutomationElement *This,
 8900        BSTR *retVal);
 8901
 8902    HRESULT (STDMETHODCALLTYPE *get_CurrentBoundingRectangle)(
 8903        IUIAutomationElement *This,
 8904        RECT *retVal);
 8905
 8906    HRESULT (STDMETHODCALLTYPE *get_CurrentLabeledBy)(
 8907        IUIAutomationElement *This,
 8908        IUIAutomationElement **retVal);
 8909
 8910    HRESULT (STDMETHODCALLTYPE *get_CurrentAriaRole)(
 8911        IUIAutomationElement *This,
 8912        BSTR *retVal);
 8913
 8914    HRESULT (STDMETHODCALLTYPE *get_CurrentAriaProperties)(
 8915        IUIAutomationElement *This,
 8916        BSTR *retVal);
 8917
 8918    HRESULT (STDMETHODCALLTYPE *get_CurrentIsDataValidForForm)(
 8919        IUIAutomationElement *This,
 8920        WINBOOL *retVal);
 8921
 8922    HRESULT (STDMETHODCALLTYPE *get_CurrentControllerFor)(
 8923        IUIAutomationElement *This,
 8924        IUIAutomationElementArray **retVal);
 8925
 8926    HRESULT (STDMETHODCALLTYPE *get_CurrentDescribedBy)(
 8927        IUIAutomationElement *This,
 8928        IUIAutomationElementArray **retVal);
 8929
 8930    HRESULT (STDMETHODCALLTYPE *get_CurrentFlowsTo)(
 8931        IUIAutomationElement *This,
 8932        IUIAutomationElementArray **retVal);
 8933
 8934    HRESULT (STDMETHODCALLTYPE *get_CurrentProviderDescription)(
 8935        IUIAutomationElement *This,
 8936        BSTR *retVal);
 8937
 8938    HRESULT (STDMETHODCALLTYPE *get_CachedProcessId)(
 8939        IUIAutomationElement *This,
 8940        int *retVal);
 8941
 8942    HRESULT (STDMETHODCALLTYPE *get_CachedControlType)(
 8943        IUIAutomationElement *This,
 8944        CONTROLTYPEID *retVal);
 8945
 8946    HRESULT (STDMETHODCALLTYPE *get_CachedLocalizedControlType)(
 8947        IUIAutomationElement *This,
 8948        BSTR *retVal);
 8949
 8950    HRESULT (STDMETHODCALLTYPE *get_CachedName)(
 8951        IUIAutomationElement *This,
 8952        BSTR *retVal);
 8953
 8954    HRESULT (STDMETHODCALLTYPE *get_CachedAcceleratorKey)(
 8955        IUIAutomationElement *This,
 8956        BSTR *retVal);
 8957
 8958    HRESULT (STDMETHODCALLTYPE *get_CachedAccessKey)(
 8959        IUIAutomationElement *This,
 8960        BSTR *retVal);
 8961
 8962    HRESULT (STDMETHODCALLTYPE *get_CachedHasKeyboardFocus)(
 8963        IUIAutomationElement *This,
 8964        WINBOOL *retVal);
 8965
 8966    HRESULT (STDMETHODCALLTYPE *get_CachedIsKeyboardFocusable)(
 8967        IUIAutomationElement *This,
 8968        WINBOOL *retVal);
 8969
 8970    HRESULT (STDMETHODCALLTYPE *get_CachedIsEnabled)(
 8971        IUIAutomationElement *This,
 8972        WINBOOL *retVal);
 8973
 8974    HRESULT (STDMETHODCALLTYPE *get_CachedAutomationId)(
 8975        IUIAutomationElement *This,
 8976        BSTR *retVal);
 8977
 8978    HRESULT (STDMETHODCALLTYPE *get_CachedClassName)(
 8979        IUIAutomationElement *This,
 8980        BSTR *retVal);
 8981
 8982    HRESULT (STDMETHODCALLTYPE *get_CachedHelpText)(
 8983        IUIAutomationElement *This,
 8984        BSTR *retVal);
 8985
 8986    HRESULT (STDMETHODCALLTYPE *get_CachedCulture)(
 8987        IUIAutomationElement *This,
 8988        int *retVal);
 8989
 8990    HRESULT (STDMETHODCALLTYPE *get_CachedIsControlElement)(
 8991        IUIAutomationElement *This,
 8992        WINBOOL *retVal);
 8993
 8994    HRESULT (STDMETHODCALLTYPE *get_CachedIsContentElement)(
 8995        IUIAutomationElement *This,
 8996        WINBOOL *retVal);
 8997
 8998    HRESULT (STDMETHODCALLTYPE *get_CachedIsPassword)(
 8999        IUIAutomationElement *This,
 9000        WINBOOL *retVal);
 9001
 9002    HRESULT (STDMETHODCALLTYPE *get_CachedNativeWindowHandle)(
 9003        IUIAutomationElement *This,
 9004        UIA_HWND *retVal);
 9005
 9006    HRESULT (STDMETHODCALLTYPE *get_CachedItemType)(
 9007        IUIAutomationElement *This,
 9008        BSTR *retVal);
 9009
 9010    HRESULT (STDMETHODCALLTYPE *get_CachedIsOffscreen)(
 9011        IUIAutomationElement *This,
 9012        WINBOOL *retVal);
 9013
 9014    HRESULT (STDMETHODCALLTYPE *get_CachedOrientation)(
 9015        IUIAutomationElement *This,
 9016        enum OrientationType *retVal);
 9017
 9018    HRESULT (STDMETHODCALLTYPE *get_CachedFrameworkId)(
 9019        IUIAutomationElement *This,
 9020        BSTR *retVal);
 9021
 9022    HRESULT (STDMETHODCALLTYPE *get_CachedIsRequiredForForm)(
 9023        IUIAutomationElement *This,
 9024        WINBOOL *retVal);
 9025
 9026    HRESULT (STDMETHODCALLTYPE *get_CachedItemStatus)(
 9027        IUIAutomationElement *This,
 9028        BSTR *retVal);
 9029
 9030    HRESULT (STDMETHODCALLTYPE *get_CachedBoundingRectangle)(
 9031        IUIAutomationElement *This,
 9032        RECT *retVal);
 9033
 9034    HRESULT (STDMETHODCALLTYPE *get_CachedLabeledBy)(
 9035        IUIAutomationElement *This,
 9036        IUIAutomationElement **retVal);
 9037
 9038    HRESULT (STDMETHODCALLTYPE *get_CachedAriaRole)(
 9039        IUIAutomationElement *This,
 9040        BSTR *retVal);
 9041
 9042    HRESULT (STDMETHODCALLTYPE *get_CachedAriaProperties)(
 9043        IUIAutomationElement *This,
 9044        BSTR *retVal);
 9045
 9046    HRESULT (STDMETHODCALLTYPE *get_CachedIsDataValidForForm)(
 9047        IUIAutomationElement *This,
 9048        WINBOOL *retVal);
 9049
 9050    HRESULT (STDMETHODCALLTYPE *get_CachedControllerFor)(
 9051        IUIAutomationElement *This,
 9052        IUIAutomationElementArray **retVal);
 9053
 9054    HRESULT (STDMETHODCALLTYPE *get_CachedDescribedBy)(
 9055        IUIAutomationElement *This,
 9056        IUIAutomationElementArray **retVal);
 9057
 9058    HRESULT (STDMETHODCALLTYPE *get_CachedFlowsTo)(
 9059        IUIAutomationElement *This,
 9060        IUIAutomationElementArray **retVal);
 9061
 9062    HRESULT (STDMETHODCALLTYPE *get_CachedProviderDescription)(
 9063        IUIAutomationElement *This,
 9064        BSTR *retVal);
 9065
 9066    HRESULT (STDMETHODCALLTYPE *GetClickablePoint)(
 9067        IUIAutomationElement *This,
 9068        POINT *clickable,
 9069        WINBOOL *gotClickable);
 9070
 9071    END_INTERFACE
 9072} IUIAutomationElementVtbl;
 9073
 9074interface IUIAutomationElement {
 9075    CONST_VTBL IUIAutomationElementVtbl* lpVtbl;
 9076};
 9077
 9078#ifdef COBJMACROS
 9079#ifndef WIDL_C_INLINE_WRAPPERS
 9080/*** IUnknown methods ***/
 9081#define IUIAutomationElement_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 9082#define IUIAutomationElement_AddRef(This) (This)->lpVtbl->AddRef(This)
 9083#define IUIAutomationElement_Release(This) (This)->lpVtbl->Release(This)
 9084/*** IUIAutomationElement methods ***/
 9085#define IUIAutomationElement_SetFocus(This) (This)->lpVtbl->SetFocus(This)
 9086#define IUIAutomationElement_GetRuntimeId(This,runtimeId) (This)->lpVtbl->GetRuntimeId(This,runtimeId)
 9087#define IUIAutomationElement_FindFirst(This,scope,condition,found) (This)->lpVtbl->FindFirst(This,scope,condition,found)
 9088#define IUIAutomationElement_FindAll(This,scope,condition,found) (This)->lpVtbl->FindAll(This,scope,condition,found)
 9089#define IUIAutomationElement_FindFirstBuildCache(This,scope,condition,cacheRequest,found) (This)->lpVtbl->FindFirstBuildCache(This,scope,condition,cacheRequest,found)
 9090#define IUIAutomationElement_FindAllBuildCache(This,scope,condition,cacheRequest,found) (This)->lpVtbl->FindAllBuildCache(This,scope,condition,cacheRequest,found)
 9091#define IUIAutomationElement_BuildUpdatedCache(This,cacheRequest,updatedElement) (This)->lpVtbl->BuildUpdatedCache(This,cacheRequest,updatedElement)
 9092#define IUIAutomationElement_GetCurrentPropertyValue(This,propertyId,retVal) (This)->lpVtbl->GetCurrentPropertyValue(This,propertyId,retVal)
 9093#define IUIAutomationElement_GetCurrentPropertyValueEx(This,propertyId,ignoreDefaultValue,retVal) (This)->lpVtbl->GetCurrentPropertyValueEx(This,propertyId,ignoreDefaultValue,retVal)
 9094#define IUIAutomationElement_GetCachedPropertyValue(This,propertyId,retVal) (This)->lpVtbl->GetCachedPropertyValue(This,propertyId,retVal)
 9095#define IUIAutomationElement_GetCachedPropertyValueEx(This,propertyId,ignoreDefaultValue,retVal) (This)->lpVtbl->GetCachedPropertyValueEx(This,propertyId,ignoreDefaultValue,retVal)
 9096#define IUIAutomationElement_GetCurrentPatternAs(This,patternId,riid,patternObject) (This)->lpVtbl->GetCurrentPatternAs(This,patternId,riid,patternObject)
 9097#define IUIAutomationElement_GetCachedPatternAs(This,patternId,riid,patternObject) (This)->lpVtbl->GetCachedPatternAs(This,patternId,riid,patternObject)
 9098#define IUIAutomationElement_GetCurrentPattern(This,patternId,patternObject) (This)->lpVtbl->GetCurrentPattern(This,patternId,patternObject)
 9099#define IUIAutomationElement_GetCachedPattern(This,patternId,patternObject) (This)->lpVtbl->GetCachedPattern(This,patternId,patternObject)
 9100#define IUIAutomationElement_GetCachedParent(This,parent) (This)->lpVtbl->GetCachedParent(This,parent)
 9101#define IUIAutomationElement_GetCachedChildren(This,children) (This)->lpVtbl->GetCachedChildren(This,children)
 9102#define IUIAutomationElement_get_CurrentProcessId(This,retVal) (This)->lpVtbl->get_CurrentProcessId(This,retVal)
 9103#define IUIAutomationElement_get_CurrentControlType(This,retVal) (This)->lpVtbl->get_CurrentControlType(This,retVal)
 9104#define IUIAutomationElement_get_CurrentLocalizedControlType(This,retVal) (This)->lpVtbl->get_CurrentLocalizedControlType(This,retVal)
 9105#define IUIAutomationElement_get_CurrentName(This,retVal) (This)->lpVtbl->get_CurrentName(This,retVal)
 9106#define IUIAutomationElement_get_CurrentAcceleratorKey(This,retVal) (This)->lpVtbl->get_CurrentAcceleratorKey(This,retVal)
 9107#define IUIAutomationElement_get_CurrentAccessKey(This,retVal) (This)->lpVtbl->get_CurrentAccessKey(This,retVal)
 9108#define IUIAutomationElement_get_CurrentHasKeyboardFocus(This,retVal) (This)->lpVtbl->get_CurrentHasKeyboardFocus(This,retVal)
 9109#define IUIAutomationElement_get_CurrentIsKeyboardFocusable(This,retVal) (This)->lpVtbl->get_CurrentIsKeyboardFocusable(This,retVal)
 9110#define IUIAutomationElement_get_CurrentIsEnabled(This,retVal) (This)->lpVtbl->get_CurrentIsEnabled(This,retVal)
 9111#define IUIAutomationElement_get_CurrentAutomationId(This,retVal) (This)->lpVtbl->get_CurrentAutomationId(This,retVal)
 9112#define IUIAutomationElement_get_CurrentClassName(This,retVal) (This)->lpVtbl->get_CurrentClassName(This,retVal)
 9113#define IUIAutomationElement_get_CurrentHelpText(This,retVal) (This)->lpVtbl->get_CurrentHelpText(This,retVal)
 9114#define IUIAutomationElement_get_CurrentCulture(This,retVal) (This)->lpVtbl->get_CurrentCulture(This,retVal)
 9115#define IUIAutomationElement_get_CurrentIsControlElement(This,retVal) (This)->lpVtbl->get_CurrentIsControlElement(This,retVal)
 9116#define IUIAutomationElement_get_CurrentIsContentElement(This,retVal) (This)->lpVtbl->get_CurrentIsContentElement(This,retVal)
 9117#define IUIAutomationElement_get_CurrentIsPassword(This,retVal) (This)->lpVtbl->get_CurrentIsPassword(This,retVal)
 9118#define IUIAutomationElement_get_CurrentNativeWindowHandle(This,retVal) (This)->lpVtbl->get_CurrentNativeWindowHandle(This,retVal)
 9119#define IUIAutomationElement_get_CurrentItemType(This,retVal) (This)->lpVtbl->get_CurrentItemType(This,retVal)
 9120#define IUIAutomationElement_get_CurrentIsOffscreen(This,retVal) (This)->lpVtbl->get_CurrentIsOffscreen(This,retVal)
 9121#define IUIAutomationElement_get_CurrentOrientation(This,retVal) (This)->lpVtbl->get_CurrentOrientation(This,retVal)
 9122#define IUIAutomationElement_get_CurrentFrameworkId(This,retVal) (This)->lpVtbl->get_CurrentFrameworkId(This,retVal)
 9123#define IUIAutomationElement_get_CurrentIsRequiredForForm(This,retVal) (This)->lpVtbl->get_CurrentIsRequiredForForm(This,retVal)
 9124#define IUIAutomationElement_get_CurrentItemStatus(This,retVal) (This)->lpVtbl->get_CurrentItemStatus(This,retVal)
 9125#define IUIAutomationElement_get_CurrentBoundingRectangle(This,retVal) (This)->lpVtbl->get_CurrentBoundingRectangle(This,retVal)
 9126#define IUIAutomationElement_get_CurrentLabeledBy(This,retVal) (This)->lpVtbl->get_CurrentLabeledBy(This,retVal)
 9127#define IUIAutomationElement_get_CurrentAriaRole(This,retVal) (This)->lpVtbl->get_CurrentAriaRole(This,retVal)
 9128#define IUIAutomationElement_get_CurrentAriaProperties(This,retVal) (This)->lpVtbl->get_CurrentAriaProperties(This,retVal)
 9129#define IUIAutomationElement_get_CurrentIsDataValidForForm(This,retVal) (This)->lpVtbl->get_CurrentIsDataValidForForm(This,retVal)
 9130#define IUIAutomationElement_get_CurrentControllerFor(This,retVal) (This)->lpVtbl->get_CurrentControllerFor(This,retVal)
 9131#define IUIAutomationElement_get_CurrentDescribedBy(This,retVal) (This)->lpVtbl->get_CurrentDescribedBy(This,retVal)
 9132#define IUIAutomationElement_get_CurrentFlowsTo(This,retVal) (This)->lpVtbl->get_CurrentFlowsTo(This,retVal)
 9133#define IUIAutomationElement_get_CurrentProviderDescription(This,retVal) (This)->lpVtbl->get_CurrentProviderDescription(This,retVal)
 9134#define IUIAutomationElement_get_CachedProcessId(This,retVal) (This)->lpVtbl->get_CachedProcessId(This,retVal)
 9135#define IUIAutomationElement_get_CachedControlType(This,retVal) (This)->lpVtbl->get_CachedControlType(This,retVal)
 9136#define IUIAutomationElement_get_CachedLocalizedControlType(This,retVal) (This)->lpVtbl->get_CachedLocalizedControlType(This,retVal)
 9137#define IUIAutomationElement_get_CachedName(This,retVal) (This)->lpVtbl->get_CachedName(This,retVal)
 9138#define IUIAutomationElement_get_CachedAcceleratorKey(This,retVal) (This)->lpVtbl->get_CachedAcceleratorKey(This,retVal)
 9139#define IUIAutomationElement_get_CachedAccessKey(This,retVal) (This)->lpVtbl->get_CachedAccessKey(This,retVal)
 9140#define IUIAutomationElement_get_CachedHasKeyboardFocus(This,retVal) (This)->lpVtbl->get_CachedHasKeyboardFocus(This,retVal)
 9141#define IUIAutomationElement_get_CachedIsKeyboardFocusable(This,retVal) (This)->lpVtbl->get_CachedIsKeyboardFocusable(This,retVal)
 9142#define IUIAutomationElement_get_CachedIsEnabled(This,retVal) (This)->lpVtbl->get_CachedIsEnabled(This,retVal)
 9143#define IUIAutomationElement_get_CachedAutomationId(This,retVal) (This)->lpVtbl->get_CachedAutomationId(This,retVal)
 9144#define IUIAutomationElement_get_CachedClassName(This,retVal) (This)->lpVtbl->get_CachedClassName(This,retVal)
 9145#define IUIAutomationElement_get_CachedHelpText(This,retVal) (This)->lpVtbl->get_CachedHelpText(This,retVal)
 9146#define IUIAutomationElement_get_CachedCulture(This,retVal) (This)->lpVtbl->get_CachedCulture(This,retVal)
 9147#define IUIAutomationElement_get_CachedIsControlElement(This,retVal) (This)->lpVtbl->get_CachedIsControlElement(This,retVal)
 9148#define IUIAutomationElement_get_CachedIsContentElement(This,retVal) (This)->lpVtbl->get_CachedIsContentElement(This,retVal)
 9149#define IUIAutomationElement_get_CachedIsPassword(This,retVal) (This)->lpVtbl->get_CachedIsPassword(This,retVal)
 9150#define IUIAutomationElement_get_CachedNativeWindowHandle(This,retVal) (This)->lpVtbl->get_CachedNativeWindowHandle(This,retVal)
 9151#define IUIAutomationElement_get_CachedItemType(This,retVal) (This)->lpVtbl->get_CachedItemType(This,retVal)
 9152#define IUIAutomationElement_get_CachedIsOffscreen(This,retVal) (This)->lpVtbl->get_CachedIsOffscreen(This,retVal)
 9153#define IUIAutomationElement_get_CachedOrientation(This,retVal) (This)->lpVtbl->get_CachedOrientation(This,retVal)
 9154#define IUIAutomationElement_get_CachedFrameworkId(This,retVal) (This)->lpVtbl->get_CachedFrameworkId(This,retVal)
 9155#define IUIAutomationElement_get_CachedIsRequiredForForm(This,retVal) (This)->lpVtbl->get_CachedIsRequiredForForm(This,retVal)
 9156#define IUIAutomationElement_get_CachedItemStatus(This,retVal) (This)->lpVtbl->get_CachedItemStatus(This,retVal)
 9157#define IUIAutomationElement_get_CachedBoundingRectangle(This,retVal) (This)->lpVtbl->get_CachedBoundingRectangle(This,retVal)
 9158#define IUIAutomationElement_get_CachedLabeledBy(This,retVal) (This)->lpVtbl->get_CachedLabeledBy(This,retVal)
 9159#define IUIAutomationElement_get_CachedAriaRole(This,retVal) (This)->lpVtbl->get_CachedAriaRole(This,retVal)
 9160#define IUIAutomationElement_get_CachedAriaProperties(This,retVal) (This)->lpVtbl->get_CachedAriaProperties(This,retVal)
 9161#define IUIAutomationElement_get_CachedIsDataValidForForm(This,retVal) (This)->lpVtbl->get_CachedIsDataValidForForm(This,retVal)
 9162#define IUIAutomationElement_get_CachedControllerFor(This,retVal) (This)->lpVtbl->get_CachedControllerFor(This,retVal)
 9163#define IUIAutomationElement_get_CachedDescribedBy(This,retVal) (This)->lpVtbl->get_CachedDescribedBy(This,retVal)
 9164#define IUIAutomationElement_get_CachedFlowsTo(This,retVal) (This)->lpVtbl->get_CachedFlowsTo(This,retVal)
 9165#define IUIAutomationElement_get_CachedProviderDescription(This,retVal) (This)->lpVtbl->get_CachedProviderDescription(This,retVal)
 9166#define IUIAutomationElement_GetClickablePoint(This,clickable,gotClickable) (This)->lpVtbl->GetClickablePoint(This,clickable,gotClickable)
 9167#else
 9168/*** IUnknown methods ***/
 9169static inline HRESULT IUIAutomationElement_QueryInterface(IUIAutomationElement* This,REFIID riid,void **ppvObject) {
 9170    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 9171}
 9172static inline ULONG IUIAutomationElement_AddRef(IUIAutomationElement* This) {
 9173    return This->lpVtbl->AddRef(This);
 9174}
 9175static inline ULONG IUIAutomationElement_Release(IUIAutomationElement* This) {
 9176    return This->lpVtbl->Release(This);
 9177}
 9178/*** IUIAutomationElement methods ***/
 9179static inline HRESULT IUIAutomationElement_SetFocus(IUIAutomationElement* This) {
 9180    return This->lpVtbl->SetFocus(This);
 9181}
 9182static inline HRESULT IUIAutomationElement_GetRuntimeId(IUIAutomationElement* This,SAFEARRAY **runtimeId) {
 9183    return This->lpVtbl->GetRuntimeId(This,runtimeId);
 9184}
 9185static inline HRESULT IUIAutomationElement_FindFirst(IUIAutomationElement* This,enum TreeScope scope,IUIAutomationCondition *condition,IUIAutomationElement **found) {
 9186    return This->lpVtbl->FindFirst(This,scope,condition,found);
 9187}
 9188static inline HRESULT IUIAutomationElement_FindAll(IUIAutomationElement* This,enum TreeScope scope,IUIAutomationCondition *condition,IUIAutomationElementArray **found) {
 9189    return This->lpVtbl->FindAll(This,scope,condition,found);
 9190}
 9191static inline HRESULT IUIAutomationElement_FindFirstBuildCache(IUIAutomationElement* This,enum TreeScope scope,IUIAutomationCondition *condition,IUIAutomationCacheRequest *cacheRequest,IUIAutomationElement **found) {
 9192    return This->lpVtbl->FindFirstBuildCache(This,scope,condition,cacheRequest,found);
 9193}
 9194static inline HRESULT IUIAutomationElement_FindAllBuildCache(IUIAutomationElement* This,enum TreeScope scope,IUIAutomationCondition *condition,IUIAutomationCacheRequest *cacheRequest,IUIAutomationElementArray **found) {
 9195    return This->lpVtbl->FindAllBuildCache(This,scope,condition,cacheRequest,found);
 9196}
 9197static inline HRESULT IUIAutomationElement_BuildUpdatedCache(IUIAutomationElement* This,IUIAutomationCacheRequest *cacheRequest,IUIAutomationElement **updatedElement) {
 9198    return This->lpVtbl->BuildUpdatedCache(This,cacheRequest,updatedElement);
 9199}
 9200static inline HRESULT IUIAutomationElement_GetCurrentPropertyValue(IUIAutomationElement* This,PROPERTYID propertyId,VARIANT *retVal) {
 9201    return This->lpVtbl->GetCurrentPropertyValue(This,propertyId,retVal);
 9202}
 9203static inline HRESULT IUIAutomationElement_GetCurrentPropertyValueEx(IUIAutomationElement* This,PROPERTYID propertyId,WINBOOL ignoreDefaultValue,VARIANT *retVal) {
 9204    return This->lpVtbl->GetCurrentPropertyValueEx(This,propertyId,ignoreDefaultValue,retVal);
 9205}
 9206static inline HRESULT IUIAutomationElement_GetCachedPropertyValue(IUIAutomationElement* This,PROPERTYID propertyId,VARIANT *retVal) {
 9207    return This->lpVtbl->GetCachedPropertyValue(This,propertyId,retVal);
 9208}
 9209static inline HRESULT IUIAutomationElement_GetCachedPropertyValueEx(IUIAutomationElement* This,PROPERTYID propertyId,WINBOOL ignoreDefaultValue,VARIANT *retVal) {
 9210    return This->lpVtbl->GetCachedPropertyValueEx(This,propertyId,ignoreDefaultValue,retVal);
 9211}
 9212static inline HRESULT IUIAutomationElement_GetCurrentPatternAs(IUIAutomationElement* This,PATTERNID patternId,REFIID riid,void **patternObject) {
 9213    return This->lpVtbl->GetCurrentPatternAs(This,patternId,riid,patternObject);
 9214}
 9215static inline HRESULT IUIAutomationElement_GetCachedPatternAs(IUIAutomationElement* This,PATTERNID patternId,REFIID riid,void **patternObject) {
 9216    return This->lpVtbl->GetCachedPatternAs(This,patternId,riid,patternObject);
 9217}
 9218static inline HRESULT IUIAutomationElement_GetCurrentPattern(IUIAutomationElement* This,PATTERNID patternId,IUnknown **patternObject) {
 9219    return This->lpVtbl->GetCurrentPattern(This,patternId,patternObject);
 9220}
 9221static inline HRESULT IUIAutomationElement_GetCachedPattern(IUIAutomationElement* This,PATTERNID patternId,IUnknown **patternObject) {
 9222    return This->lpVtbl->GetCachedPattern(This,patternId,patternObject);
 9223}
 9224static inline HRESULT IUIAutomationElement_GetCachedParent(IUIAutomationElement* This,IUIAutomationElement **parent) {
 9225    return This->lpVtbl->GetCachedParent(This,parent);
 9226}
 9227static inline HRESULT IUIAutomationElement_GetCachedChildren(IUIAutomationElement* This,IUIAutomationElementArray **children) {
 9228    return This->lpVtbl->GetCachedChildren(This,children);
 9229}
 9230static inline HRESULT IUIAutomationElement_get_CurrentProcessId(IUIAutomationElement* This,int *retVal) {
 9231    return This->lpVtbl->get_CurrentProcessId(This,retVal);
 9232}
 9233static inline HRESULT IUIAutomationElement_get_CurrentControlType(IUIAutomationElement* This,CONTROLTYPEID *retVal) {
 9234    return This->lpVtbl->get_CurrentControlType(This,retVal);
 9235}
 9236static inline HRESULT IUIAutomationElement_get_CurrentLocalizedControlType(IUIAutomationElement* This,BSTR *retVal) {
 9237    return This->lpVtbl->get_CurrentLocalizedControlType(This,retVal);
 9238}
 9239static inline HRESULT IUIAutomationElement_get_CurrentName(IUIAutomationElement* This,BSTR *retVal) {
 9240    return This->lpVtbl->get_CurrentName(This,retVal);
 9241}
 9242static inline HRESULT IUIAutomationElement_get_CurrentAcceleratorKey(IUIAutomationElement* This,BSTR *retVal) {
 9243    return This->lpVtbl->get_CurrentAcceleratorKey(This,retVal);
 9244}
 9245static inline HRESULT IUIAutomationElement_get_CurrentAccessKey(IUIAutomationElement* This,BSTR *retVal) {
 9246    return This->lpVtbl->get_CurrentAccessKey(This,retVal);
 9247}
 9248static inline HRESULT IUIAutomationElement_get_CurrentHasKeyboardFocus(IUIAutomationElement* This,WINBOOL *retVal) {
 9249    return This->lpVtbl->get_CurrentHasKeyboardFocus(This,retVal);
 9250}
 9251static inline HRESULT IUIAutomationElement_get_CurrentIsKeyboardFocusable(IUIAutomationElement* This,WINBOOL *retVal) {
 9252    return This->lpVtbl->get_CurrentIsKeyboardFocusable(This,retVal);
 9253}
 9254static inline HRESULT IUIAutomationElement_get_CurrentIsEnabled(IUIAutomationElement* This,WINBOOL *retVal) {
 9255    return This->lpVtbl->get_CurrentIsEnabled(This,retVal);
 9256}
 9257static inline HRESULT IUIAutomationElement_get_CurrentAutomationId(IUIAutomationElement* This,BSTR *retVal) {
 9258    return This->lpVtbl->get_CurrentAutomationId(This,retVal);
 9259}
 9260static inline HRESULT IUIAutomationElement_get_CurrentClassName(IUIAutomationElement* This,BSTR *retVal) {
 9261    return This->lpVtbl->get_CurrentClassName(This,retVal);
 9262}
 9263static inline HRESULT IUIAutomationElement_get_CurrentHelpText(IUIAutomationElement* This,BSTR *retVal) {
 9264    return This->lpVtbl->get_CurrentHelpText(This,retVal);
 9265}
 9266static inline HRESULT IUIAutomationElement_get_CurrentCulture(IUIAutomationElement* This,int *retVal) {
 9267    return This->lpVtbl->get_CurrentCulture(This,retVal);
 9268}
 9269static inline HRESULT IUIAutomationElement_get_CurrentIsControlElement(IUIAutomationElement* This,WINBOOL *retVal) {
 9270    return This->lpVtbl->get_CurrentIsControlElement(This,retVal);
 9271}
 9272static inline HRESULT IUIAutomationElement_get_CurrentIsContentElement(IUIAutomationElement* This,WINBOOL *retVal) {
 9273    return This->lpVtbl->get_CurrentIsContentElement(This,retVal);
 9274}
 9275static inline HRESULT IUIAutomationElement_get_CurrentIsPassword(IUIAutomationElement* This,WINBOOL *retVal) {
 9276    return This->lpVtbl->get_CurrentIsPassword(This,retVal);
 9277}
 9278static inline HRESULT IUIAutomationElement_get_CurrentNativeWindowHandle(IUIAutomationElement* This,UIA_HWND *retVal) {
 9279    return This->lpVtbl->get_CurrentNativeWindowHandle(This,retVal);
 9280}
 9281static inline HRESULT IUIAutomationElement_get_CurrentItemType(IUIAutomationElement* This,BSTR *retVal) {
 9282    return This->lpVtbl->get_CurrentItemType(This,retVal);
 9283}
 9284static inline HRESULT IUIAutomationElement_get_CurrentIsOffscreen(IUIAutomationElement* This,WINBOOL *retVal) {
 9285    return This->lpVtbl->get_CurrentIsOffscreen(This,retVal);
 9286}
 9287static inline HRESULT IUIAutomationElement_get_CurrentOrientation(IUIAutomationElement* This,enum OrientationType *retVal) {
 9288    return This->lpVtbl->get_CurrentOrientation(This,retVal);
 9289}
 9290static inline HRESULT IUIAutomationElement_get_CurrentFrameworkId(IUIAutomationElement* This,BSTR *retVal) {
 9291    return This->lpVtbl->get_CurrentFrameworkId(This,retVal);
 9292}
 9293static inline HRESULT IUIAutomationElement_get_CurrentIsRequiredForForm(IUIAutomationElement* This,WINBOOL *retVal) {
 9294    return This->lpVtbl->get_CurrentIsRequiredForForm(This,retVal);
 9295}
 9296static inline HRESULT IUIAutomationElement_get_CurrentItemStatus(IUIAutomationElement* This,BSTR *retVal) {
 9297    return This->lpVtbl->get_CurrentItemStatus(This,retVal);
 9298}
 9299static inline HRESULT IUIAutomationElement_get_CurrentBoundingRectangle(IUIAutomationElement* This,RECT *retVal) {
 9300    return This->lpVtbl->get_CurrentBoundingRectangle(This,retVal);
 9301}
 9302static inline HRESULT IUIAutomationElement_get_CurrentLabeledBy(IUIAutomationElement* This,IUIAutomationElement **retVal) {
 9303    return This->lpVtbl->get_CurrentLabeledBy(This,retVal);
 9304}
 9305static inline HRESULT IUIAutomationElement_get_CurrentAriaRole(IUIAutomationElement* This,BSTR *retVal) {
 9306    return This->lpVtbl->get_CurrentAriaRole(This,retVal);
 9307}
 9308static inline HRESULT IUIAutomationElement_get_CurrentAriaProperties(IUIAutomationElement* This,BSTR *retVal) {
 9309    return This->lpVtbl->get_CurrentAriaProperties(This,retVal);
 9310}
 9311static inline HRESULT IUIAutomationElement_get_CurrentIsDataValidForForm(IUIAutomationElement* This,WINBOOL *retVal) {
 9312    return This->lpVtbl->get_CurrentIsDataValidForForm(This,retVal);
 9313}
 9314static inline HRESULT IUIAutomationElement_get_CurrentControllerFor(IUIAutomationElement* This,IUIAutomationElementArray **retVal) {
 9315    return This->lpVtbl->get_CurrentControllerFor(This,retVal);
 9316}
 9317static inline HRESULT IUIAutomationElement_get_CurrentDescribedBy(IUIAutomationElement* This,IUIAutomationElementArray **retVal) {
 9318    return This->lpVtbl->get_CurrentDescribedBy(This,retVal);
 9319}
 9320static inline HRESULT IUIAutomationElement_get_CurrentFlowsTo(IUIAutomationElement* This,IUIAutomationElementArray **retVal) {
 9321    return This->lpVtbl->get_CurrentFlowsTo(This,retVal);
 9322}
 9323static inline HRESULT IUIAutomationElement_get_CurrentProviderDescription(IUIAutomationElement* This,BSTR *retVal) {
 9324    return This->lpVtbl->get_CurrentProviderDescription(This,retVal);
 9325}
 9326static inline HRESULT IUIAutomationElement_get_CachedProcessId(IUIAutomationElement* This,int *retVal) {
 9327    return This->lpVtbl->get_CachedProcessId(This,retVal);
 9328}
 9329static inline HRESULT IUIAutomationElement_get_CachedControlType(IUIAutomationElement* This,CONTROLTYPEID *retVal) {
 9330    return This->lpVtbl->get_CachedControlType(This,retVal);
 9331}
 9332static inline HRESULT IUIAutomationElement_get_CachedLocalizedControlType(IUIAutomationElement* This,BSTR *retVal) {
 9333    return This->lpVtbl->get_CachedLocalizedControlType(This,retVal);
 9334}
 9335static inline HRESULT IUIAutomationElement_get_CachedName(IUIAutomationElement* This,BSTR *retVal) {
 9336    return This->lpVtbl->get_CachedName(This,retVal);
 9337}
 9338static inline HRESULT IUIAutomationElement_get_CachedAcceleratorKey(IUIAutomationElement* This,BSTR *retVal) {
 9339    return This->lpVtbl->get_CachedAcceleratorKey(This,retVal);
 9340}
 9341static inline HRESULT IUIAutomationElement_get_CachedAccessKey(IUIAutomationElement* This,BSTR *retVal) {
 9342    return This->lpVtbl->get_CachedAccessKey(This,retVal);
 9343}
 9344static inline HRESULT IUIAutomationElement_get_CachedHasKeyboardFocus(IUIAutomationElement* This,WINBOOL *retVal) {
 9345    return This->lpVtbl->get_CachedHasKeyboardFocus(This,retVal);
 9346}
 9347static inline HRESULT IUIAutomationElement_get_CachedIsKeyboardFocusable(IUIAutomationElement* This,WINBOOL *retVal) {
 9348    return This->lpVtbl->get_CachedIsKeyboardFocusable(This,retVal);
 9349}
 9350static inline HRESULT IUIAutomationElement_get_CachedIsEnabled(IUIAutomationElement* This,WINBOOL *retVal) {
 9351    return This->lpVtbl->get_CachedIsEnabled(This,retVal);
 9352}
 9353static inline HRESULT IUIAutomationElement_get_CachedAutomationId(IUIAutomationElement* This,BSTR *retVal) {
 9354    return This->lpVtbl->get_CachedAutomationId(This,retVal);
 9355}
 9356static inline HRESULT IUIAutomationElement_get_CachedClassName(IUIAutomationElement* This,BSTR *retVal) {
 9357    return This->lpVtbl->get_CachedClassName(This,retVal);
 9358}
 9359static inline HRESULT IUIAutomationElement_get_CachedHelpText(IUIAutomationElement* This,BSTR *retVal) {
 9360    return This->lpVtbl->get_CachedHelpText(This,retVal);
 9361}
 9362static inline HRESULT IUIAutomationElement_get_CachedCulture(IUIAutomationElement* This,int *retVal) {
 9363    return This->lpVtbl->get_CachedCulture(This,retVal);
 9364}
 9365static inline HRESULT IUIAutomationElement_get_CachedIsControlElement(IUIAutomationElement* This,WINBOOL *retVal) {
 9366    return This->lpVtbl->get_CachedIsControlElement(This,retVal);
 9367}
 9368static inline HRESULT IUIAutomationElement_get_CachedIsContentElement(IUIAutomationElement* This,WINBOOL *retVal) {
 9369    return This->lpVtbl->get_CachedIsContentElement(This,retVal);
 9370}
 9371static inline HRESULT IUIAutomationElement_get_CachedIsPassword(IUIAutomationElement* This,WINBOOL *retVal) {
 9372    return This->lpVtbl->get_CachedIsPassword(This,retVal);
 9373}
 9374static inline HRESULT IUIAutomationElement_get_CachedNativeWindowHandle(IUIAutomationElement* This,UIA_HWND *retVal) {
 9375    return This->lpVtbl->get_CachedNativeWindowHandle(This,retVal);
 9376}
 9377static inline HRESULT IUIAutomationElement_get_CachedItemType(IUIAutomationElement* This,BSTR *retVal) {
 9378    return This->lpVtbl->get_CachedItemType(This,retVal);
 9379}
 9380static inline HRESULT IUIAutomationElement_get_CachedIsOffscreen(IUIAutomationElement* This,WINBOOL *retVal) {
 9381    return This->lpVtbl->get_CachedIsOffscreen(This,retVal);
 9382}
 9383static inline HRESULT IUIAutomationElement_get_CachedOrientation(IUIAutomationElement* This,enum OrientationType *retVal) {
 9384    return This->lpVtbl->get_CachedOrientation(This,retVal);
 9385}
 9386static inline HRESULT IUIAutomationElement_get_CachedFrameworkId(IUIAutomationElement* This,BSTR *retVal) {
 9387    return This->lpVtbl->get_CachedFrameworkId(This,retVal);
 9388}
 9389static inline HRESULT IUIAutomationElement_get_CachedIsRequiredForForm(IUIAutomationElement* This,WINBOOL *retVal) {
 9390    return This->lpVtbl->get_CachedIsRequiredForForm(This,retVal);
 9391}
 9392static inline HRESULT IUIAutomationElement_get_CachedItemStatus(IUIAutomationElement* This,BSTR *retVal) {
 9393    return This->lpVtbl->get_CachedItemStatus(This,retVal);
 9394}
 9395static inline HRESULT IUIAutomationElement_get_CachedBoundingRectangle(IUIAutomationElement* This,RECT *retVal) {
 9396    return This->lpVtbl->get_CachedBoundingRectangle(This,retVal);
 9397}
 9398static inline HRESULT IUIAutomationElement_get_CachedLabeledBy(IUIAutomationElement* This,IUIAutomationElement **retVal) {
 9399    return This->lpVtbl->get_CachedLabeledBy(This,retVal);
 9400}
 9401static inline HRESULT IUIAutomationElement_get_CachedAriaRole(IUIAutomationElement* This,BSTR *retVal) {
 9402    return This->lpVtbl->get_CachedAriaRole(This,retVal);
 9403}
 9404static inline HRESULT IUIAutomationElement_get_CachedAriaProperties(IUIAutomationElement* This,BSTR *retVal) {
 9405    return This->lpVtbl->get_CachedAriaProperties(This,retVal);
 9406}
 9407static inline HRESULT IUIAutomationElement_get_CachedIsDataValidForForm(IUIAutomationElement* This,WINBOOL *retVal) {
 9408    return This->lpVtbl->get_CachedIsDataValidForForm(This,retVal);
 9409}
 9410static inline HRESULT IUIAutomationElement_get_CachedControllerFor(IUIAutomationElement* This,IUIAutomationElementArray **retVal) {
 9411    return This->lpVtbl->get_CachedControllerFor(This,retVal);
 9412}
 9413static inline HRESULT IUIAutomationElement_get_CachedDescribedBy(IUIAutomationElement* This,IUIAutomationElementArray **retVal) {
 9414    return This->lpVtbl->get_CachedDescribedBy(This,retVal);
 9415}
 9416static inline HRESULT IUIAutomationElement_get_CachedFlowsTo(IUIAutomationElement* This,IUIAutomationElementArray **retVal) {
 9417    return This->lpVtbl->get_CachedFlowsTo(This,retVal);
 9418}
 9419static inline HRESULT IUIAutomationElement_get_CachedProviderDescription(IUIAutomationElement* This,BSTR *retVal) {
 9420    return This->lpVtbl->get_CachedProviderDescription(This,retVal);
 9421}
 9422static inline HRESULT IUIAutomationElement_GetClickablePoint(IUIAutomationElement* This,POINT *clickable,WINBOOL *gotClickable) {
 9423    return This->lpVtbl->GetClickablePoint(This,clickable,gotClickable);
 9424}
 9425#endif
 9426#endif
 9427
 9428#endif
 9429
 9430
 9431#endif  /* __IUIAutomationElement_INTERFACE_DEFINED__ */
 9432
 9433/*****************************************************************************
 9434 * IUIAutomationElement2 interface
 9435 */
 9436#ifndef __IUIAutomationElement2_INTERFACE_DEFINED__
 9437#define __IUIAutomationElement2_INTERFACE_DEFINED__
 9438
 9439DEFINE_GUID(IID_IUIAutomationElement2, 0x6749c683, 0xf70d, 0x4487, 0xa6,0x98, 0x5f,0x79,0xd5,0x52,0x90,0xd6);
 9440#if defined(__cplusplus) && !defined(CINTERFACE)
 9441MIDL_INTERFACE("6749c683-f70d-4487-a698-5f79d55290d6")
 9442IUIAutomationElement2 : public IUIAutomationElement
 9443{
 9444    virtual HRESULT STDMETHODCALLTYPE get_CurrentOptimizeForVisualContent(
 9445        WINBOOL *retVal) = 0;
 9446
 9447    virtual HRESULT STDMETHODCALLTYPE get_CachedOptimizeForVisualContent(
 9448        WINBOOL *retVal) = 0;
 9449
 9450    virtual HRESULT STDMETHODCALLTYPE get_CurrentLiveSetting(
 9451        enum LiveSetting *retVal) = 0;
 9452
 9453    virtual HRESULT STDMETHODCALLTYPE get_CachedLiveSetting(
 9454        enum LiveSetting *retVal) = 0;
 9455
 9456    virtual HRESULT STDMETHODCALLTYPE get_CurrentFlowsFrom(
 9457        IUIAutomationElementArray **retVal) = 0;
 9458
 9459    virtual HRESULT STDMETHODCALLTYPE get_CachedFlowsFrom(
 9460        IUIAutomationElementArray **retVal) = 0;
 9461
 9462};
 9463#ifdef __CRT_UUID_DECL
 9464__CRT_UUID_DECL(IUIAutomationElement2, 0x6749c683, 0xf70d, 0x4487, 0xa6,0x98, 0x5f,0x79,0xd5,0x52,0x90,0xd6)
 9465#endif
 9466#else
 9467typedef struct IUIAutomationElement2Vtbl {
 9468    BEGIN_INTERFACE
 9469
 9470    /*** IUnknown methods ***/
 9471    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 9472        IUIAutomationElement2 *This,
 9473        REFIID riid,
 9474        void **ppvObject);
 9475
 9476    ULONG (STDMETHODCALLTYPE *AddRef)(
 9477        IUIAutomationElement2 *This);
 9478
 9479    ULONG (STDMETHODCALLTYPE *Release)(
 9480        IUIAutomationElement2 *This);
 9481
 9482    /*** IUIAutomationElement methods ***/
 9483    HRESULT (STDMETHODCALLTYPE *SetFocus)(
 9484        IUIAutomationElement2 *This);
 9485
 9486    HRESULT (STDMETHODCALLTYPE *GetRuntimeId)(
 9487        IUIAutomationElement2 *This,
 9488        SAFEARRAY **runtimeId);
 9489
 9490    HRESULT (STDMETHODCALLTYPE *FindFirst)(
 9491        IUIAutomationElement2 *This,
 9492        enum TreeScope scope,
 9493        IUIAutomationCondition *condition,
 9494        IUIAutomationElement **found);
 9495
 9496    HRESULT (STDMETHODCALLTYPE *FindAll)(
 9497        IUIAutomationElement2 *This,
 9498        enum TreeScope scope,
 9499        IUIAutomationCondition *condition,
 9500        IUIAutomationElementArray **found);
 9501
 9502    HRESULT (STDMETHODCALLTYPE *FindFirstBuildCache)(
 9503        IUIAutomationElement2 *This,
 9504        enum TreeScope scope,
 9505        IUIAutomationCondition *condition,
 9506        IUIAutomationCacheRequest *cacheRequest,
 9507        IUIAutomationElement **found);
 9508
 9509    HRESULT (STDMETHODCALLTYPE *FindAllBuildCache)(
 9510        IUIAutomationElement2 *This,
 9511        enum TreeScope scope,
 9512        IUIAutomationCondition *condition,
 9513        IUIAutomationCacheRequest *cacheRequest,
 9514        IUIAutomationElementArray **found);
 9515
 9516    HRESULT (STDMETHODCALLTYPE *BuildUpdatedCache)(
 9517        IUIAutomationElement2 *This,
 9518        IUIAutomationCacheRequest *cacheRequest,
 9519        IUIAutomationElement **updatedElement);
 9520
 9521    HRESULT (STDMETHODCALLTYPE *GetCurrentPropertyValue)(
 9522        IUIAutomationElement2 *This,
 9523        PROPERTYID propertyId,
 9524        VARIANT *retVal);
 9525
 9526    HRESULT (STDMETHODCALLTYPE *GetCurrentPropertyValueEx)(
 9527        IUIAutomationElement2 *This,
 9528        PROPERTYID propertyId,
 9529        WINBOOL ignoreDefaultValue,
 9530        VARIANT *retVal);
 9531
 9532    HRESULT (STDMETHODCALLTYPE *GetCachedPropertyValue)(
 9533        IUIAutomationElement2 *This,
 9534        PROPERTYID propertyId,
 9535        VARIANT *retVal);
 9536
 9537    HRESULT (STDMETHODCALLTYPE *GetCachedPropertyValueEx)(
 9538        IUIAutomationElement2 *This,
 9539        PROPERTYID propertyId,
 9540        WINBOOL ignoreDefaultValue,
 9541        VARIANT *retVal);
 9542
 9543    HRESULT (STDMETHODCALLTYPE *GetCurrentPatternAs)(
 9544        IUIAutomationElement2 *This,
 9545        PATTERNID patternId,
 9546        REFIID riid,
 9547        void **patternObject);
 9548
 9549    HRESULT (STDMETHODCALLTYPE *GetCachedPatternAs)(
 9550        IUIAutomationElement2 *This,
 9551        PATTERNID patternId,
 9552        REFIID riid,
 9553        void **patternObject);
 9554
 9555    HRESULT (STDMETHODCALLTYPE *GetCurrentPattern)(
 9556        IUIAutomationElement2 *This,
 9557        PATTERNID patternId,
 9558        IUnknown **patternObject);
 9559
 9560    HRESULT (STDMETHODCALLTYPE *GetCachedPattern)(
 9561        IUIAutomationElement2 *This,
 9562        PATTERNID patternId,
 9563        IUnknown **patternObject);
 9564
 9565    HRESULT (STDMETHODCALLTYPE *GetCachedParent)(
 9566        IUIAutomationElement2 *This,
 9567        IUIAutomationElement **parent);
 9568
 9569    HRESULT (STDMETHODCALLTYPE *GetCachedChildren)(
 9570        IUIAutomationElement2 *This,
 9571        IUIAutomationElementArray **children);
 9572
 9573    HRESULT (STDMETHODCALLTYPE *get_CurrentProcessId)(
 9574        IUIAutomationElement2 *This,
 9575        int *retVal);
 9576
 9577    HRESULT (STDMETHODCALLTYPE *get_CurrentControlType)(
 9578        IUIAutomationElement2 *This,
 9579        CONTROLTYPEID *retVal);
 9580
 9581    HRESULT (STDMETHODCALLTYPE *get_CurrentLocalizedControlType)(
 9582        IUIAutomationElement2 *This,
 9583        BSTR *retVal);
 9584
 9585    HRESULT (STDMETHODCALLTYPE *get_CurrentName)(
 9586        IUIAutomationElement2 *This,
 9587        BSTR *retVal);
 9588
 9589    HRESULT (STDMETHODCALLTYPE *get_CurrentAcceleratorKey)(
 9590        IUIAutomationElement2 *This,
 9591        BSTR *retVal);
 9592
 9593    HRESULT (STDMETHODCALLTYPE *get_CurrentAccessKey)(
 9594        IUIAutomationElement2 *This,
 9595        BSTR *retVal);
 9596
 9597    HRESULT (STDMETHODCALLTYPE *get_CurrentHasKeyboardFocus)(
 9598        IUIAutomationElement2 *This,
 9599        WINBOOL *retVal);
 9600
 9601    HRESULT (STDMETHODCALLTYPE *get_CurrentIsKeyboardFocusable)(
 9602        IUIAutomationElement2 *This,
 9603        WINBOOL *retVal);
 9604
 9605    HRESULT (STDMETHODCALLTYPE *get_CurrentIsEnabled)(
 9606        IUIAutomationElement2 *This,
 9607        WINBOOL *retVal);
 9608
 9609    HRESULT (STDMETHODCALLTYPE *get_CurrentAutomationId)(
 9610        IUIAutomationElement2 *This,
 9611        BSTR *retVal);
 9612
 9613    HRESULT (STDMETHODCALLTYPE *get_CurrentClassName)(
 9614        IUIAutomationElement2 *This,
 9615        BSTR *retVal);
 9616
 9617    HRESULT (STDMETHODCALLTYPE *get_CurrentHelpText)(
 9618        IUIAutomationElement2 *This,
 9619        BSTR *retVal);
 9620
 9621    HRESULT (STDMETHODCALLTYPE *get_CurrentCulture)(
 9622        IUIAutomationElement2 *This,
 9623        int *retVal);
 9624
 9625    HRESULT (STDMETHODCALLTYPE *get_CurrentIsControlElement)(
 9626        IUIAutomationElement2 *This,
 9627        WINBOOL *retVal);
 9628
 9629    HRESULT (STDMETHODCALLTYPE *get_CurrentIsContentElement)(
 9630        IUIAutomationElement2 *This,
 9631        WINBOOL *retVal);
 9632
 9633    HRESULT (STDMETHODCALLTYPE *get_CurrentIsPassword)(
 9634        IUIAutomationElement2 *This,
 9635        WINBOOL *retVal);
 9636
 9637    HRESULT (STDMETHODCALLTYPE *get_CurrentNativeWindowHandle)(
 9638        IUIAutomationElement2 *This,
 9639        UIA_HWND *retVal);
 9640
 9641    HRESULT (STDMETHODCALLTYPE *get_CurrentItemType)(
 9642        IUIAutomationElement2 *This,
 9643        BSTR *retVal);
 9644
 9645    HRESULT (STDMETHODCALLTYPE *get_CurrentIsOffscreen)(
 9646        IUIAutomationElement2 *This,
 9647        WINBOOL *retVal);
 9648
 9649    HRESULT (STDMETHODCALLTYPE *get_CurrentOrientation)(
 9650        IUIAutomationElement2 *This,
 9651        enum OrientationType *retVal);
 9652
 9653    HRESULT (STDMETHODCALLTYPE *get_CurrentFrameworkId)(
 9654        IUIAutomationElement2 *This,
 9655        BSTR *retVal);
 9656
 9657    HRESULT (STDMETHODCALLTYPE *get_CurrentIsRequiredForForm)(
 9658        IUIAutomationElement2 *This,
 9659        WINBOOL *retVal);
 9660
 9661    HRESULT (STDMETHODCALLTYPE *get_CurrentItemStatus)(
 9662        IUIAutomationElement2 *This,
 9663        BSTR *retVal);
 9664
 9665    HRESULT (STDMETHODCALLTYPE *get_CurrentBoundingRectangle)(
 9666        IUIAutomationElement2 *This,
 9667        RECT *retVal);
 9668
 9669    HRESULT (STDMETHODCALLTYPE *get_CurrentLabeledBy)(
 9670        IUIAutomationElement2 *This,
 9671        IUIAutomationElement **retVal);
 9672
 9673    HRESULT (STDMETHODCALLTYPE *get_CurrentAriaRole)(
 9674        IUIAutomationElement2 *This,
 9675        BSTR *retVal);
 9676
 9677    HRESULT (STDMETHODCALLTYPE *get_CurrentAriaProperties)(
 9678        IUIAutomationElement2 *This,
 9679        BSTR *retVal);
 9680
 9681    HRESULT (STDMETHODCALLTYPE *get_CurrentIsDataValidForForm)(
 9682        IUIAutomationElement2 *This,
 9683        WINBOOL *retVal);
 9684
 9685    HRESULT (STDMETHODCALLTYPE *get_CurrentControllerFor)(
 9686        IUIAutomationElement2 *This,
 9687        IUIAutomationElementArray **retVal);
 9688
 9689    HRESULT (STDMETHODCALLTYPE *get_CurrentDescribedBy)(
 9690        IUIAutomationElement2 *This,
 9691        IUIAutomationElementArray **retVal);
 9692
 9693    HRESULT (STDMETHODCALLTYPE *get_CurrentFlowsTo)(
 9694        IUIAutomationElement2 *This,
 9695        IUIAutomationElementArray **retVal);
 9696
 9697    HRESULT (STDMETHODCALLTYPE *get_CurrentProviderDescription)(
 9698        IUIAutomationElement2 *This,
 9699        BSTR *retVal);
 9700
 9701    HRESULT (STDMETHODCALLTYPE *get_CachedProcessId)(
 9702        IUIAutomationElement2 *This,
 9703        int *retVal);
 9704
 9705    HRESULT (STDMETHODCALLTYPE *get_CachedControlType)(
 9706        IUIAutomationElement2 *This,
 9707        CONTROLTYPEID *retVal);
 9708
 9709    HRESULT (STDMETHODCALLTYPE *get_CachedLocalizedControlType)(
 9710        IUIAutomationElement2 *This,
 9711        BSTR *retVal);
 9712
 9713    HRESULT (STDMETHODCALLTYPE *get_CachedName)(
 9714        IUIAutomationElement2 *This,
 9715        BSTR *retVal);
 9716
 9717    HRESULT (STDMETHODCALLTYPE *get_CachedAcceleratorKey)(
 9718        IUIAutomationElement2 *This,
 9719        BSTR *retVal);
 9720
 9721    HRESULT (STDMETHODCALLTYPE *get_CachedAccessKey)(
 9722        IUIAutomationElement2 *This,
 9723        BSTR *retVal);
 9724
 9725    HRESULT (STDMETHODCALLTYPE *get_CachedHasKeyboardFocus)(
 9726        IUIAutomationElement2 *This,
 9727        WINBOOL *retVal);
 9728
 9729    HRESULT (STDMETHODCALLTYPE *get_CachedIsKeyboardFocusable)(
 9730        IUIAutomationElement2 *This,
 9731        WINBOOL *retVal);
 9732
 9733    HRESULT (STDMETHODCALLTYPE *get_CachedIsEnabled)(
 9734        IUIAutomationElement2 *This,
 9735        WINBOOL *retVal);
 9736
 9737    HRESULT (STDMETHODCALLTYPE *get_CachedAutomationId)(
 9738        IUIAutomationElement2 *This,
 9739        BSTR *retVal);
 9740
 9741    HRESULT (STDMETHODCALLTYPE *get_CachedClassName)(
 9742        IUIAutomationElement2 *This,
 9743        BSTR *retVal);
 9744
 9745    HRESULT (STDMETHODCALLTYPE *get_CachedHelpText)(
 9746        IUIAutomationElement2 *This,
 9747        BSTR *retVal);
 9748
 9749    HRESULT (STDMETHODCALLTYPE *get_CachedCulture)(
 9750        IUIAutomationElement2 *This,
 9751        int *retVal);
 9752
 9753    HRESULT (STDMETHODCALLTYPE *get_CachedIsControlElement)(
 9754        IUIAutomationElement2 *This,
 9755        WINBOOL *retVal);
 9756
 9757    HRESULT (STDMETHODCALLTYPE *get_CachedIsContentElement)(
 9758        IUIAutomationElement2 *This,
 9759        WINBOOL *retVal);
 9760
 9761    HRESULT (STDMETHODCALLTYPE *get_CachedIsPassword)(
 9762        IUIAutomationElement2 *This,
 9763        WINBOOL *retVal);
 9764
 9765    HRESULT (STDMETHODCALLTYPE *get_CachedNativeWindowHandle)(
 9766        IUIAutomationElement2 *This,
 9767        UIA_HWND *retVal);
 9768
 9769    HRESULT (STDMETHODCALLTYPE *get_CachedItemType)(
 9770        IUIAutomationElement2 *This,
 9771        BSTR *retVal);
 9772
 9773    HRESULT (STDMETHODCALLTYPE *get_CachedIsOffscreen)(
 9774        IUIAutomationElement2 *This,
 9775        WINBOOL *retVal);
 9776
 9777    HRESULT (STDMETHODCALLTYPE *get_CachedOrientation)(
 9778        IUIAutomationElement2 *This,
 9779        enum OrientationType *retVal);
 9780
 9781    HRESULT (STDMETHODCALLTYPE *get_CachedFrameworkId)(
 9782        IUIAutomationElement2 *This,
 9783        BSTR *retVal);
 9784
 9785    HRESULT (STDMETHODCALLTYPE *get_CachedIsRequiredForForm)(
 9786        IUIAutomationElement2 *This,
 9787        WINBOOL *retVal);
 9788
 9789    HRESULT (STDMETHODCALLTYPE *get_CachedItemStatus)(
 9790        IUIAutomationElement2 *This,
 9791        BSTR *retVal);
 9792
 9793    HRESULT (STDMETHODCALLTYPE *get_CachedBoundingRectangle)(
 9794        IUIAutomationElement2 *This,
 9795        RECT *retVal);
 9796
 9797    HRESULT (STDMETHODCALLTYPE *get_CachedLabeledBy)(
 9798        IUIAutomationElement2 *This,
 9799        IUIAutomationElement **retVal);
 9800
 9801    HRESULT (STDMETHODCALLTYPE *get_CachedAriaRole)(
 9802        IUIAutomationElement2 *This,
 9803        BSTR *retVal);
 9804
 9805    HRESULT (STDMETHODCALLTYPE *get_CachedAriaProperties)(
 9806        IUIAutomationElement2 *This,
 9807        BSTR *retVal);
 9808
 9809    HRESULT (STDMETHODCALLTYPE *get_CachedIsDataValidForForm)(
 9810        IUIAutomationElement2 *This,
 9811        WINBOOL *retVal);
 9812
 9813    HRESULT (STDMETHODCALLTYPE *get_CachedControllerFor)(
 9814        IUIAutomationElement2 *This,
 9815        IUIAutomationElementArray **retVal);
 9816
 9817    HRESULT (STDMETHODCALLTYPE *get_CachedDescribedBy)(
 9818        IUIAutomationElement2 *This,
 9819        IUIAutomationElementArray **retVal);
 9820
 9821    HRESULT (STDMETHODCALLTYPE *get_CachedFlowsTo)(
 9822        IUIAutomationElement2 *This,
 9823        IUIAutomationElementArray **retVal);
 9824
 9825    HRESULT (STDMETHODCALLTYPE *get_CachedProviderDescription)(
 9826        IUIAutomationElement2 *This,
 9827        BSTR *retVal);
 9828
 9829    HRESULT (STDMETHODCALLTYPE *GetClickablePoint)(
 9830        IUIAutomationElement2 *This,
 9831        POINT *clickable,
 9832        WINBOOL *gotClickable);
 9833
 9834    /*** IUIAutomationElement2 methods ***/
 9835    HRESULT (STDMETHODCALLTYPE *get_CurrentOptimizeForVisualContent)(
 9836        IUIAutomationElement2 *This,
 9837        WINBOOL *retVal);
 9838
 9839    HRESULT (STDMETHODCALLTYPE *get_CachedOptimizeForVisualContent)(
 9840        IUIAutomationElement2 *This,
 9841        WINBOOL *retVal);
 9842
 9843    HRESULT (STDMETHODCALLTYPE *get_CurrentLiveSetting)(
 9844        IUIAutomationElement2 *This,
 9845        enum LiveSetting *retVal);
 9846
 9847    HRESULT (STDMETHODCALLTYPE *get_CachedLiveSetting)(
 9848        IUIAutomationElement2 *This,
 9849        enum LiveSetting *retVal);
 9850
 9851    HRESULT (STDMETHODCALLTYPE *get_CurrentFlowsFrom)(
 9852        IUIAutomationElement2 *This,
 9853        IUIAutomationElementArray **retVal);
 9854
 9855    HRESULT (STDMETHODCALLTYPE *get_CachedFlowsFrom)(
 9856        IUIAutomationElement2 *This,
 9857        IUIAutomationElementArray **retVal);
 9858
 9859    END_INTERFACE
 9860} IUIAutomationElement2Vtbl;
 9861
 9862interface IUIAutomationElement2 {
 9863    CONST_VTBL IUIAutomationElement2Vtbl* lpVtbl;
 9864};
 9865
 9866#ifdef COBJMACROS
 9867#ifndef WIDL_C_INLINE_WRAPPERS
 9868/*** IUnknown methods ***/
 9869#define IUIAutomationElement2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 9870#define IUIAutomationElement2_AddRef(This) (This)->lpVtbl->AddRef(This)
 9871#define IUIAutomationElement2_Release(This) (This)->lpVtbl->Release(This)
 9872/*** IUIAutomationElement methods ***/
 9873#define IUIAutomationElement2_SetFocus(This) (This)->lpVtbl->SetFocus(This)
 9874#define IUIAutomationElement2_GetRuntimeId(This,runtimeId) (This)->lpVtbl->GetRuntimeId(This,runtimeId)
 9875#define IUIAutomationElement2_FindFirst(This,scope,condition,found) (This)->lpVtbl->FindFirst(This,scope,condition,found)
 9876#define IUIAutomationElement2_FindAll(This,scope,condition,found) (This)->lpVtbl->FindAll(This,scope,condition,found)
 9877#define IUIAutomationElement2_FindFirstBuildCache(This,scope,condition,cacheRequest,found) (This)->lpVtbl->FindFirstBuildCache(This,scope,condition,cacheRequest,found)
 9878#define IUIAutomationElement2_FindAllBuildCache(This,scope,condition,cacheRequest,found) (This)->lpVtbl->FindAllBuildCache(This,scope,condition,cacheRequest,found)
 9879#define IUIAutomationElement2_BuildUpdatedCache(This,cacheRequest,updatedElement) (This)->lpVtbl->BuildUpdatedCache(This,cacheRequest,updatedElement)
 9880#define IUIAutomationElement2_GetCurrentPropertyValue(This,propertyId,retVal) (This)->lpVtbl->GetCurrentPropertyValue(This,propertyId,retVal)
 9881#define IUIAutomationElement2_GetCurrentPropertyValueEx(This,propertyId,ignoreDefaultValue,retVal) (This)->lpVtbl->GetCurrentPropertyValueEx(This,propertyId,ignoreDefaultValue,retVal)
 9882#define IUIAutomationElement2_GetCachedPropertyValue(This,propertyId,retVal) (This)->lpVtbl->GetCachedPropertyValue(This,propertyId,retVal)
 9883#define IUIAutomationElement2_GetCachedPropertyValueEx(This,propertyId,ignoreDefaultValue,retVal) (This)->lpVtbl->GetCachedPropertyValueEx(This,propertyId,ignoreDefaultValue,retVal)
 9884#define IUIAutomationElement2_GetCurrentPatternAs(This,patternId,riid,patternObject) (This)->lpVtbl->GetCurrentPatternAs(This,patternId,riid,patternObject)
 9885#define IUIAutomationElement2_GetCachedPatternAs(This,patternId,riid,patternObject) (This)->lpVtbl->GetCachedPatternAs(This,patternId,riid,patternObject)
 9886#define IUIAutomationElement2_GetCurrentPattern(This,patternId,patternObject) (This)->lpVtbl->GetCurrentPattern(This,patternId,patternObject)
 9887#define IUIAutomationElement2_GetCachedPattern(This,patternId,patternObject) (This)->lpVtbl->GetCachedPattern(This,patternId,patternObject)
 9888#define IUIAutomationElement2_GetCachedParent(This,parent) (This)->lpVtbl->GetCachedParent(This,parent)
 9889#define IUIAutomationElement2_GetCachedChildren(This,children) (This)->lpVtbl->GetCachedChildren(This,children)
 9890#define IUIAutomationElement2_get_CurrentProcessId(This,retVal) (This)->lpVtbl->get_CurrentProcessId(This,retVal)
 9891#define IUIAutomationElement2_get_CurrentControlType(This,retVal) (This)->lpVtbl->get_CurrentControlType(This,retVal)
 9892#define IUIAutomationElement2_get_CurrentLocalizedControlType(This,retVal) (This)->lpVtbl->get_CurrentLocalizedControlType(This,retVal)
 9893#define IUIAutomationElement2_get_CurrentName(This,retVal) (This)->lpVtbl->get_CurrentName(This,retVal)
 9894#define IUIAutomationElement2_get_CurrentAcceleratorKey(This,retVal) (This)->lpVtbl->get_CurrentAcceleratorKey(This,retVal)
 9895#define IUIAutomationElement2_get_CurrentAccessKey(This,retVal) (This)->lpVtbl->get_CurrentAccessKey(This,retVal)
 9896#define IUIAutomationElement2_get_CurrentHasKeyboardFocus(This,retVal) (This)->lpVtbl->get_CurrentHasKeyboardFocus(This,retVal)
 9897#define IUIAutomationElement2_get_CurrentIsKeyboardFocusable(This,retVal) (This)->lpVtbl->get_CurrentIsKeyboardFocusable(This,retVal)
 9898#define IUIAutomationElement2_get_CurrentIsEnabled(This,retVal) (This)->lpVtbl->get_CurrentIsEnabled(This,retVal)
 9899#define IUIAutomationElement2_get_CurrentAutomationId(This,retVal) (This)->lpVtbl->get_CurrentAutomationId(This,retVal)
 9900#define IUIAutomationElement2_get_CurrentClassName(This,retVal) (This)->lpVtbl->get_CurrentClassName(This,retVal)
 9901#define IUIAutomationElement2_get_CurrentHelpText(This,retVal) (This)->lpVtbl->get_CurrentHelpText(This,retVal)
 9902#define IUIAutomationElement2_get_CurrentCulture(This,retVal) (This)->lpVtbl->get_CurrentCulture(This,retVal)
 9903#define IUIAutomationElement2_get_CurrentIsControlElement(This,retVal) (This)->lpVtbl->get_CurrentIsControlElement(This,retVal)
 9904#define IUIAutomationElement2_get_CurrentIsContentElement(This,retVal) (This)->lpVtbl->get_CurrentIsContentElement(This,retVal)
 9905#define IUIAutomationElement2_get_CurrentIsPassword(This,retVal) (This)->lpVtbl->get_CurrentIsPassword(This,retVal)
 9906#define IUIAutomationElement2_get_CurrentNativeWindowHandle(This,retVal) (This)->lpVtbl->get_CurrentNativeWindowHandle(This,retVal)
 9907#define IUIAutomationElement2_get_CurrentItemType(This,retVal) (This)->lpVtbl->get_CurrentItemType(This,retVal)
 9908#define IUIAutomationElement2_get_CurrentIsOffscreen(This,retVal) (This)->lpVtbl->get_CurrentIsOffscreen(This,retVal)
 9909#define IUIAutomationElement2_get_CurrentOrientation(This,retVal) (This)->lpVtbl->get_CurrentOrientation(This,retVal)
 9910#define IUIAutomationElement2_get_CurrentFrameworkId(This,retVal) (This)->lpVtbl->get_CurrentFrameworkId(This,retVal)
 9911#define IUIAutomationElement2_get_CurrentIsRequiredForForm(This,retVal) (This)->lpVtbl->get_CurrentIsRequiredForForm(This,retVal)
 9912#define IUIAutomationElement2_get_CurrentItemStatus(This,retVal) (This)->lpVtbl->get_CurrentItemStatus(This,retVal)
 9913#define IUIAutomationElement2_get_CurrentBoundingRectangle(This,retVal) (This)->lpVtbl->get_CurrentBoundingRectangle(This,retVal)
 9914#define IUIAutomationElement2_get_CurrentLabeledBy(This,retVal) (This)->lpVtbl->get_CurrentLabeledBy(This,retVal)
 9915#define IUIAutomationElement2_get_CurrentAriaRole(This,retVal) (This)->lpVtbl->get_CurrentAriaRole(This,retVal)
 9916#define IUIAutomationElement2_get_CurrentAriaProperties(This,retVal) (This)->lpVtbl->get_CurrentAriaProperties(This,retVal)
 9917#define IUIAutomationElement2_get_CurrentIsDataValidForForm(This,retVal) (This)->lpVtbl->get_CurrentIsDataValidForForm(This,retVal)
 9918#define IUIAutomationElement2_get_CurrentControllerFor(This,retVal) (This)->lpVtbl->get_CurrentControllerFor(This,retVal)
 9919#define IUIAutomationElement2_get_CurrentDescribedBy(This,retVal) (This)->lpVtbl->get_CurrentDescribedBy(This,retVal)
 9920#define IUIAutomationElement2_get_CurrentFlowsTo(This,retVal) (This)->lpVtbl->get_CurrentFlowsTo(This,retVal)
 9921#define IUIAutomationElement2_get_CurrentProviderDescription(This,retVal) (This)->lpVtbl->get_CurrentProviderDescription(This,retVal)
 9922#define IUIAutomationElement2_get_CachedProcessId(This,retVal) (This)->lpVtbl->get_CachedProcessId(This,retVal)
 9923#define IUIAutomationElement2_get_CachedControlType(This,retVal) (This)->lpVtbl->get_CachedControlType(This,retVal)
 9924#define IUIAutomationElement2_get_CachedLocalizedControlType(This,retVal) (This)->lpVtbl->get_CachedLocalizedControlType(This,retVal)
 9925#define IUIAutomationElement2_get_CachedName(This,retVal) (This)->lpVtbl->get_CachedName(This,retVal)
 9926#define IUIAutomationElement2_get_CachedAcceleratorKey(This,retVal) (This)->lpVtbl->get_CachedAcceleratorKey(This,retVal)
 9927#define IUIAutomationElement2_get_CachedAccessKey(This,retVal) (This)->lpVtbl->get_CachedAccessKey(This,retVal)
 9928#define IUIAutomationElement2_get_CachedHasKeyboardFocus(This,retVal) (This)->lpVtbl->get_CachedHasKeyboardFocus(This,retVal)
 9929#define IUIAutomationElement2_get_CachedIsKeyboardFocusable(This,retVal) (This)->lpVtbl->get_CachedIsKeyboardFocusable(This,retVal)
 9930#define IUIAutomationElement2_get_CachedIsEnabled(This,retVal) (This)->lpVtbl->get_CachedIsEnabled(This,retVal)
 9931#define IUIAutomationElement2_get_CachedAutomationId(This,retVal) (This)->lpVtbl->get_CachedAutomationId(This,retVal)
 9932#define IUIAutomationElement2_get_CachedClassName(This,retVal) (This)->lpVtbl->get_CachedClassName(This,retVal)
 9933#define IUIAutomationElement2_get_CachedHelpText(This,retVal) (This)->lpVtbl->get_CachedHelpText(This,retVal)
 9934#define IUIAutomationElement2_get_CachedCulture(This,retVal) (This)->lpVtbl->get_CachedCulture(This,retVal)
 9935#define IUIAutomationElement2_get_CachedIsControlElement(This,retVal) (This)->lpVtbl->get_CachedIsControlElement(This,retVal)
 9936#define IUIAutomationElement2_get_CachedIsContentElement(This,retVal) (This)->lpVtbl->get_CachedIsContentElement(This,retVal)
 9937#define IUIAutomationElement2_get_CachedIsPassword(This,retVal) (This)->lpVtbl->get_CachedIsPassword(This,retVal)
 9938#define IUIAutomationElement2_get_CachedNativeWindowHandle(This,retVal) (This)->lpVtbl->get_CachedNativeWindowHandle(This,retVal)
 9939#define IUIAutomationElement2_get_CachedItemType(This,retVal) (This)->lpVtbl->get_CachedItemType(This,retVal)
 9940#define IUIAutomationElement2_get_CachedIsOffscreen(This,retVal) (This)->lpVtbl->get_CachedIsOffscreen(This,retVal)
 9941#define IUIAutomationElement2_get_CachedOrientation(This,retVal) (This)->lpVtbl->get_CachedOrientation(This,retVal)
 9942#define IUIAutomationElement2_get_CachedFrameworkId(This,retVal) (This)->lpVtbl->get_CachedFrameworkId(This,retVal)
 9943#define IUIAutomationElement2_get_CachedIsRequiredForForm(This,retVal) (This)->lpVtbl->get_CachedIsRequiredForForm(This,retVal)
 9944#define IUIAutomationElement2_get_CachedItemStatus(This,retVal) (This)->lpVtbl->get_CachedItemStatus(This,retVal)
 9945#define IUIAutomationElement2_get_CachedBoundingRectangle(This,retVal) (This)->lpVtbl->get_CachedBoundingRectangle(This,retVal)
 9946#define IUIAutomationElement2_get_CachedLabeledBy(This,retVal) (This)->lpVtbl->get_CachedLabeledBy(This,retVal)
 9947#define IUIAutomationElement2_get_CachedAriaRole(This,retVal) (This)->lpVtbl->get_CachedAriaRole(This,retVal)
 9948#define IUIAutomationElement2_get_CachedAriaProperties(This,retVal) (This)->lpVtbl->get_CachedAriaProperties(This,retVal)
 9949#define IUIAutomationElement2_get_CachedIsDataValidForForm(This,retVal) (This)->lpVtbl->get_CachedIsDataValidForForm(This,retVal)
 9950#define IUIAutomationElement2_get_CachedControllerFor(This,retVal) (This)->lpVtbl->get_CachedControllerFor(This,retVal)
 9951#define IUIAutomationElement2_get_CachedDescribedBy(This,retVal) (This)->lpVtbl->get_CachedDescribedBy(This,retVal)
 9952#define IUIAutomationElement2_get_CachedFlowsTo(This,retVal) (This)->lpVtbl->get_CachedFlowsTo(This,retVal)
 9953#define IUIAutomationElement2_get_CachedProviderDescription(This,retVal) (This)->lpVtbl->get_CachedProviderDescription(This,retVal)
 9954#define IUIAutomationElement2_GetClickablePoint(This,clickable,gotClickable) (This)->lpVtbl->GetClickablePoint(This,clickable,gotClickable)
 9955/*** IUIAutomationElement2 methods ***/
 9956#define IUIAutomationElement2_get_CurrentOptimizeForVisualContent(This,retVal) (This)->lpVtbl->get_CurrentOptimizeForVisualContent(This,retVal)
 9957#define IUIAutomationElement2_get_CachedOptimizeForVisualContent(This,retVal) (This)->lpVtbl->get_CachedOptimizeForVisualContent(This,retVal)
 9958#define IUIAutomationElement2_get_CurrentLiveSetting(This,retVal) (This)->lpVtbl->get_CurrentLiveSetting(This,retVal)
 9959#define IUIAutomationElement2_get_CachedLiveSetting(This,retVal) (This)->lpVtbl->get_CachedLiveSetting(This,retVal)
 9960#define IUIAutomationElement2_get_CurrentFlowsFrom(This,retVal) (This)->lpVtbl->get_CurrentFlowsFrom(This,retVal)
 9961#define IUIAutomationElement2_get_CachedFlowsFrom(This,retVal) (This)->lpVtbl->get_CachedFlowsFrom(This,retVal)
 9962#else
 9963/*** IUnknown methods ***/
 9964static inline HRESULT IUIAutomationElement2_QueryInterface(IUIAutomationElement2* This,REFIID riid,void **ppvObject) {
 9965    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 9966}
 9967static inline ULONG IUIAutomationElement2_AddRef(IUIAutomationElement2* This) {
 9968    return This->lpVtbl->AddRef(This);
 9969}
 9970static inline ULONG IUIAutomationElement2_Release(IUIAutomationElement2* This) {
 9971    return This->lpVtbl->Release(This);
 9972}
 9973/*** IUIAutomationElement methods ***/
 9974static inline HRESULT IUIAutomationElement2_SetFocus(IUIAutomationElement2* This) {
 9975    return This->lpVtbl->SetFocus(This);
 9976}
 9977static inline HRESULT IUIAutomationElement2_GetRuntimeId(IUIAutomationElement2* This,SAFEARRAY **runtimeId) {
 9978    return This->lpVtbl->GetRuntimeId(This,runtimeId);
 9979}
 9980static inline HRESULT IUIAutomationElement2_FindFirst(IUIAutomationElement2* This,enum TreeScope scope,IUIAutomationCondition *condition,IUIAutomationElement **found) {
 9981    return This->lpVtbl->FindFirst(This,scope,condition,found);
 9982}
 9983static inline HRESULT IUIAutomationElement2_FindAll(IUIAutomationElement2* This,enum TreeScope scope,IUIAutomationCondition *condition,IUIAutomationElementArray **found) {
 9984    return This->lpVtbl->FindAll(This,scope,condition,found);
 9985}
 9986static inline HRESULT IUIAutomationElement2_FindFirstBuildCache(IUIAutomationElement2* This,enum TreeScope scope,IUIAutomationCondition *condition,IUIAutomationCacheRequest *cacheRequest,IUIAutomationElement **found) {
 9987    return This->lpVtbl->FindFirstBuildCache(This,scope,condition,cacheRequest,found);
 9988}
 9989static inline HRESULT IUIAutomationElement2_FindAllBuildCache(IUIAutomationElement2* This,enum TreeScope scope,IUIAutomationCondition *condition,IUIAutomationCacheRequest *cacheRequest,IUIAutomationElementArray **found) {
 9990    return This->lpVtbl->FindAllBuildCache(This,scope,condition,cacheRequest,found);
 9991}
 9992static inline HRESULT IUIAutomationElement2_BuildUpdatedCache(IUIAutomationElement2* This,IUIAutomationCacheRequest *cacheRequest,IUIAutomationElement **updatedElement) {
 9993    return This->lpVtbl->BuildUpdatedCache(This,cacheRequest,updatedElement);
 9994}
 9995static inline HRESULT IUIAutomationElement2_GetCurrentPropertyValue(IUIAutomationElement2* This,PROPERTYID propertyId,VARIANT *retVal) {
 9996    return This->lpVtbl->GetCurrentPropertyValue(This,propertyId,retVal);
 9997}
 9998static inline HRESULT IUIAutomationElement2_GetCurrentPropertyValueEx(IUIAutomationElement2* This,PROPERTYID propertyId,WINBOOL ignoreDefaultValue,VARIANT *retVal) {
 9999    return This->lpVtbl->GetCurrentPropertyValueEx(This,propertyId,ignoreDefaultValue,retVal);
10000}
10001static inline HRESULT IUIAutomationElement2_GetCachedPropertyValue(IUIAutomationElement2* This,PROPERTYID propertyId,VARIANT *retVal) {
10002    return This->lpVtbl->GetCachedPropertyValue(This,propertyId,retVal);
10003}
10004static inline HRESULT IUIAutomationElement2_GetCachedPropertyValueEx(IUIAutomationElement2* This,PROPERTYID propertyId,WINBOOL ignoreDefaultValue,VARIANT *retVal) {
10005    return This->lpVtbl->GetCachedPropertyValueEx(This,propertyId,ignoreDefaultValue,retVal);
10006}
10007static inline HRESULT IUIAutomationElement2_GetCurrentPatternAs(IUIAutomationElement2* This,PATTERNID patternId,REFIID riid,void **patternObject) {
10008    return This->lpVtbl->GetCurrentPatternAs(This,patternId,riid,patternObject);
10009}
10010static inline HRESULT IUIAutomationElement2_GetCachedPatternAs(IUIAutomationElement2* This,PATTERNID patternId,REFIID riid,void **patternObject) {
10011    return This->lpVtbl->GetCachedPatternAs(This,patternId,riid,patternObject);
10012}
10013static inline HRESULT IUIAutomationElement2_GetCurrentPattern(IUIAutomationElement2* This,PATTERNID patternId,IUnknown **patternObject) {
10014    return This->lpVtbl->GetCurrentPattern(This,patternId,patternObject);
10015}
10016static inline HRESULT IUIAutomationElement2_GetCachedPattern(IUIAutomationElement2* This,PATTERNID patternId,IUnknown **patternObject) {
10017    return This->lpVtbl->GetCachedPattern(This,patternId,patternObject);
10018}
10019static inline HRESULT IUIAutomationElement2_GetCachedParent(IUIAutomationElement2* This,IUIAutomationElement **parent) {
10020    return This->lpVtbl->GetCachedParent(This,parent);
10021}
10022static inline HRESULT IUIAutomationElement2_GetCachedChildren(IUIAutomationElement2* This,IUIAutomationElementArray **children) {
10023    return This->lpVtbl->GetCachedChildren(This,children);
10024}
10025static inline HRESULT IUIAutomationElement2_get_CurrentProcessId(IUIAutomationElement2* This,int *retVal) {
10026    return This->lpVtbl->get_CurrentProcessId(This,retVal);
10027}
10028static inline HRESULT IUIAutomationElement2_get_CurrentControlType(IUIAutomationElement2* This,CONTROLTYPEID *retVal) {
10029    return This->lpVtbl->get_CurrentControlType(This,retVal);
10030}
10031static inline HRESULT IUIAutomationElement2_get_CurrentLocalizedControlType(IUIAutomationElement2* This,BSTR *retVal) {
10032    return This->lpVtbl->get_CurrentLocalizedControlType(This,retVal);
10033}
10034static inline HRESULT IUIAutomationElement2_get_CurrentName(IUIAutomationElement2* This,BSTR *retVal) {
10035    return This->lpVtbl->get_CurrentName(This,retVal);
10036}
10037static inline HRESULT IUIAutomationElement2_get_CurrentAcceleratorKey(IUIAutomationElement2* This,BSTR *retVal) {
10038    return This->lpVtbl->get_CurrentAcceleratorKey(This,retVal);
10039}
10040static inline HRESULT IUIAutomationElement2_get_CurrentAccessKey(IUIAutomationElement2* This,BSTR *retVal) {
10041    return This->lpVtbl->get_CurrentAccessKey(This,retVal);
10042}
10043static inline HRESULT IUIAutomationElement2_get_CurrentHasKeyboardFocus(IUIAutomationElement2* This,WINBOOL *retVal) {
10044    return This->lpVtbl->get_CurrentHasKeyboardFocus(This,retVal);
10045}
10046static inline HRESULT IUIAutomationElement2_get_CurrentIsKeyboardFocusable(IUIAutomationElement2* This,WINBOOL *retVal) {
10047    return This->lpVtbl->get_CurrentIsKeyboardFocusable(This,retVal);
10048}
10049static inline HRESULT IUIAutomationElement2_get_CurrentIsEnabled(IUIAutomationElement2* This,WINBOOL *retVal) {
10050    return This->lpVtbl->get_CurrentIsEnabled(This,retVal);
10051}
10052static inline HRESULT IUIAutomationElement2_get_CurrentAutomationId(IUIAutomationElement2* This,BSTR *retVal) {
10053    return This->lpVtbl->get_CurrentAutomationId(This,retVal);
10054}
10055static inline HRESULT IUIAutomationElement2_get_CurrentClassName(IUIAutomationElement2* This,BSTR *retVal) {
10056    return This->lpVtbl->get_CurrentClassName(This,retVal);
10057}
10058static inline HRESULT IUIAutomationElement2_get_CurrentHelpText(IUIAutomationElement2* This,BSTR *retVal) {
10059    return This->lpVtbl->get_CurrentHelpText(This,retVal);
10060}
10061static inline HRESULT IUIAutomationElement2_get_CurrentCulture(IUIAutomationElement2* This,int *retVal) {
10062    return This->lpVtbl->get_CurrentCulture(This,retVal);
10063}
10064static inline HRESULT IUIAutomationElement2_get_CurrentIsControlElement(IUIAutomationElement2* This,WINBOOL *retVal) {
10065    return This->lpVtbl->get_CurrentIsControlElement(This,retVal);
10066}
10067static inline HRESULT IUIAutomationElement2_get_CurrentIsContentElement(IUIAutomationElement2* This,WINBOOL *retVal) {
10068    return This->lpVtbl->get_CurrentIsContentElement(This,retVal);
10069}
10070static inline HRESULT IUIAutomationElement2_get_CurrentIsPassword(IUIAutomationElement2* This,WINBOOL *retVal) {
10071    return This->lpVtbl->get_CurrentIsPassword(This,retVal);
10072}
10073static inline HRESULT IUIAutomationElement2_get_CurrentNativeWindowHandle(IUIAutomationElement2* This,UIA_HWND *retVal) {
10074    return This->lpVtbl->get_CurrentNativeWindowHandle(This,retVal);
10075}
10076static inline HRESULT IUIAutomationElement2_get_CurrentItemType(IUIAutomationElement2* This,BSTR *retVal) {
10077    return This->lpVtbl->get_CurrentItemType(This,retVal);
10078}
10079static inline HRESULT IUIAutomationElement2_get_CurrentIsOffscreen(IUIAutomationElement2* This,WINBOOL *retVal) {
10080    return This->lpVtbl->get_CurrentIsOffscreen(This,retVal);
10081}
10082static inline HRESULT IUIAutomationElement2_get_CurrentOrientation(IUIAutomationElement2* This,enum OrientationType *retVal) {
10083    return This->lpVtbl->get_CurrentOrientation(This,retVal);
10084}
10085static inline HRESULT IUIAutomationElement2_get_CurrentFrameworkId(IUIAutomationElement2* This,BSTR *retVal) {
10086    return This->lpVtbl->get_CurrentFrameworkId(This,retVal);
10087}
10088static inline HRESULT IUIAutomationElement2_get_CurrentIsRequiredForForm(IUIAutomationElement2* This,WINBOOL *retVal) {
10089    return This->lpVtbl->get_CurrentIsRequiredForForm(This,retVal);
10090}
10091static inline HRESULT IUIAutomationElement2_get_CurrentItemStatus(IUIAutomationElement2* This,BSTR *retVal) {
10092    return This->lpVtbl->get_CurrentItemStatus(This,retVal);
10093}
10094static inline HRESULT IUIAutomationElement2_get_CurrentBoundingRectangle(IUIAutomationElement2* This,RECT *retVal) {
10095    return This->lpVtbl->get_CurrentBoundingRectangle(This,retVal);
10096}
10097static inline HRESULT IUIAutomationElement2_get_CurrentLabeledBy(IUIAutomationElement2* This,IUIAutomationElement **retVal) {
10098    return This->lpVtbl->get_CurrentLabeledBy(This,retVal);
10099}
10100static inline HRESULT IUIAutomationElement2_get_CurrentAriaRole(IUIAutomationElement2* This,BSTR *retVal) {
10101    return This->lpVtbl->get_CurrentAriaRole(This,retVal);
10102}
10103static inline HRESULT IUIAutomationElement2_get_CurrentAriaProperties(IUIAutomationElement2* This,BSTR *retVal) {
10104    return This->lpVtbl->get_CurrentAriaProperties(This,retVal);
10105}
10106static inline HRESULT IUIAutomationElement2_get_CurrentIsDataValidForForm(IUIAutomationElement2* This,WINBOOL *retVal) {
10107    return This->lpVtbl->get_CurrentIsDataValidForForm(This,retVal);
10108}
10109static inline HRESULT IUIAutomationElement2_get_CurrentControllerFor(IUIAutomationElement2* This,IUIAutomationElementArray **retVal) {
10110    return This->lpVtbl->get_CurrentControllerFor(This,retVal);
10111}
10112static inline HRESULT IUIAutomationElement2_get_CurrentDescribedBy(IUIAutomationElement2* This,IUIAutomationElementArray **retVal) {
10113    return This->lpVtbl->get_CurrentDescribedBy(This,retVal);
10114}
10115static inline HRESULT IUIAutomationElement2_get_CurrentFlowsTo(IUIAutomationElement2* This,IUIAutomationElementArray **retVal) {
10116    return This->lpVtbl->get_CurrentFlowsTo(This,retVal);
10117}
10118static inline HRESULT IUIAutomationElement2_get_CurrentProviderDescription(IUIAutomationElement2* This,BSTR *retVal) {
10119    return This->lpVtbl->get_CurrentProviderDescription(This,retVal);
10120}
10121static inline HRESULT IUIAutomationElement2_get_CachedProcessId(IUIAutomationElement2* This,int *retVal) {
10122    return This->lpVtbl->get_CachedProcessId(This,retVal);
10123}
10124static inline HRESULT IUIAutomationElement2_get_CachedControlType(IUIAutomationElement2* This,CONTROLTYPEID *retVal) {
10125    return This->lpVtbl->get_CachedControlType(This,retVal);
10126}
10127static inline HRESULT IUIAutomationElement2_get_CachedLocalizedControlType(IUIAutomationElement2* This,BSTR *retVal) {
10128    return This->lpVtbl->get_CachedLocalizedControlType(This,retVal);
10129}
10130static inline HRESULT IUIAutomationElement2_get_CachedName(IUIAutomationElement2* This,BSTR *retVal) {
10131    return This->lpVtbl->get_CachedName(This,retVal);
10132}
10133static inline HRESULT IUIAutomationElement2_get_CachedAcceleratorKey(IUIAutomationElement2* This,BSTR *retVal) {
10134    return This->lpVtbl->get_CachedAcceleratorKey(This,retVal);
10135}
10136static inline HRESULT IUIAutomationElement2_get_CachedAccessKey(IUIAutomationElement2* This,BSTR *retVal) {
10137    return This->lpVtbl->get_CachedAccessKey(This,retVal);
10138}
10139static inline HRESULT IUIAutomationElement2_get_CachedHasKeyboardFocus(IUIAutomationElement2* This,WINBOOL *retVal) {
10140    return This->lpVtbl->get_CachedHasKeyboardFocus(This,retVal);
10141}
10142static inline HRESULT IUIAutomationElement2_get_CachedIsKeyboardFocusable(IUIAutomationElement2* This,WINBOOL *retVal) {
10143    return This->lpVtbl->get_CachedIsKeyboardFocusable(This,retVal);
10144}
10145static inline HRESULT IUIAutomationElement2_get_CachedIsEnabled(IUIAutomationElement2* This,WINBOOL *retVal) {
10146    return This->lpVtbl->get_CachedIsEnabled(This,retVal);
10147}
10148static inline HRESULT IUIAutomationElement2_get_CachedAutomationId(IUIAutomationElement2* This,BSTR *retVal) {
10149    return This->lpVtbl->get_CachedAutomationId(This,retVal);
10150}
10151static inline HRESULT IUIAutomationElement2_get_CachedClassName(IUIAutomationElement2* This,BSTR *retVal) {
10152    return This->lpVtbl->get_CachedClassName(This,retVal);
10153}
10154static inline HRESULT IUIAutomationElement2_get_CachedHelpText(IUIAutomationElement2* This,BSTR *retVal) {
10155    return This->lpVtbl->get_CachedHelpText(This,retVal);
10156}
10157static inline HRESULT IUIAutomationElement2_get_CachedCulture(IUIAutomationElement2* This,int *retVal) {
10158    return This->lpVtbl->get_CachedCulture(This,retVal);
10159}
10160static inline HRESULT IUIAutomationElement2_get_CachedIsControlElement(IUIAutomationElement2* This,WINBOOL *retVal) {
10161    return This->lpVtbl->get_CachedIsControlElement(This,retVal);
10162}
10163static inline HRESULT IUIAutomationElement2_get_CachedIsContentElement(IUIAutomationElement2* This,WINBOOL *retVal) {
10164    return This->lpVtbl->get_CachedIsContentElement(This,retVal);
10165}
10166static inline HRESULT IUIAutomationElement2_get_CachedIsPassword(IUIAutomationElement2* This,WINBOOL *retVal) {
10167    return This->lpVtbl->get_CachedIsPassword(This,retVal);
10168}
10169static inline HRESULT IUIAutomationElement2_get_CachedNativeWindowHandle(IUIAutomationElement2* This,UIA_HWND *retVal) {
10170    return This->lpVtbl->get_CachedNativeWindowHandle(This,retVal);
10171}
10172static inline HRESULT IUIAutomationElement2_get_CachedItemType(IUIAutomationElement2* This,BSTR *retVal) {
10173    return This->lpVtbl->get_CachedItemType(This,retVal);
10174}
10175static inline HRESULT IUIAutomationElement2_get_CachedIsOffscreen(IUIAutomationElement2* This,WINBOOL *retVal) {
10176    return This->lpVtbl->get_CachedIsOffscreen(This,retVal);
10177}
10178static inline HRESULT IUIAutomationElement2_get_CachedOrientation(IUIAutomationElement2* This,enum OrientationType *retVal) {
10179    return This->lpVtbl->get_CachedOrientation(This,retVal);
10180}
10181static inline HRESULT IUIAutomationElement2_get_CachedFrameworkId(IUIAutomationElement2* This,BSTR *retVal) {
10182    return This->lpVtbl->get_CachedFrameworkId(This,retVal);
10183}
10184static inline HRESULT IUIAutomationElement2_get_CachedIsRequiredForForm(IUIAutomationElement2* This,WINBOOL *retVal) {
10185    return This->lpVtbl->get_CachedIsRequiredForForm(This,retVal);
10186}
10187static inline HRESULT IUIAutomationElement2_get_CachedItemStatus(IUIAutomationElement2* This,BSTR *retVal) {
10188    return This->lpVtbl->get_CachedItemStatus(This,retVal);
10189}
10190static inline HRESULT IUIAutomationElement2_get_CachedBoundingRectangle(IUIAutomationElement2* This,RECT *retVal) {
10191    return This->lpVtbl->get_CachedBoundingRectangle(This,retVal);
10192}
10193static inline HRESULT IUIAutomationElement2_get_CachedLabeledBy(IUIAutomationElement2* This,IUIAutomationElement **retVal) {
10194    return This->lpVtbl->get_CachedLabeledBy(This,retVal);
10195}
10196static inline HRESULT IUIAutomationElement2_get_CachedAriaRole(IUIAutomationElement2* This,BSTR *retVal) {
10197    return This->lpVtbl->get_CachedAriaRole(This,retVal);
10198}
10199static inline HRESULT IUIAutomationElement2_get_CachedAriaProperties(IUIAutomationElement2* This,BSTR *retVal) {
10200    return This->lpVtbl->get_CachedAriaProperties(This,retVal);
10201}
10202static inline HRESULT IUIAutomationElement2_get_CachedIsDataValidForForm(IUIAutomationElement2* This,WINBOOL *retVal) {
10203    return This->lpVtbl->get_CachedIsDataValidForForm(This,retVal);
10204}
10205static inline HRESULT IUIAutomationElement2_get_CachedControllerFor(IUIAutomationElement2* This,IUIAutomationElementArray **retVal) {
10206    return This->lpVtbl->get_CachedControllerFor(This,retVal);
10207}
10208static inline HRESULT IUIAutomationElement2_get_CachedDescribedBy(IUIAutomationElement2* This,IUIAutomationElementArray **retVal) {
10209    return This->lpVtbl->get_CachedDescribedBy(This,retVal);
10210}
10211static inline HRESULT IUIAutomationElement2_get_CachedFlowsTo(IUIAutomationElement2* This,IUIAutomationElementArray **retVal) {
10212    return This->lpVtbl->get_CachedFlowsTo(This,retVal);
10213}
10214static inline HRESULT IUIAutomationElement2_get_CachedProviderDescription(IUIAutomationElement2* This,BSTR *retVal) {
10215    return This->lpVtbl->get_CachedProviderDescription(This,retVal);
10216}
10217static inline HRESULT IUIAutomationElement2_GetClickablePoint(IUIAutomationElement2* This,POINT *clickable,WINBOOL *gotClickable) {
10218    return This->lpVtbl->GetClickablePoint(This,clickable,gotClickable);
10219}
10220/*** IUIAutomationElement2 methods ***/
10221static inline HRESULT IUIAutomationElement2_get_CurrentOptimizeForVisualContent(IUIAutomationElement2* This,WINBOOL *retVal) {
10222    return This->lpVtbl->get_CurrentOptimizeForVisualContent(This,retVal);
10223}
10224static inline HRESULT IUIAutomationElement2_get_CachedOptimizeForVisualContent(IUIAutomationElement2* This,WINBOOL *retVal) {
10225    return This->lpVtbl->get_CachedOptimizeForVisualContent(This,retVal);
10226}
10227static inline HRESULT IUIAutomationElement2_get_CurrentLiveSetting(IUIAutomationElement2* This,enum LiveSetting *retVal) {
10228    return This->lpVtbl->get_CurrentLiveSetting(This,retVal);
10229}
10230static inline HRESULT IUIAutomationElement2_get_CachedLiveSetting(IUIAutomationElement2* This,enum LiveSetting *retVal) {
10231    return This->lpVtbl->get_CachedLiveSetting(This,retVal);
10232}
10233static inline HRESULT IUIAutomationElement2_get_CurrentFlowsFrom(IUIAutomationElement2* This,IUIAutomationElementArray **retVal) {
10234    return This->lpVtbl->get_CurrentFlowsFrom(This,retVal);
10235}
10236static inline HRESULT IUIAutomationElement2_get_CachedFlowsFrom(IUIAutomationElement2* This,IUIAutomationElementArray **retVal) {
10237    return This->lpVtbl->get_CachedFlowsFrom(This,retVal);
10238}
10239#endif
10240#endif
10241
10242#endif
10243
10244
10245#endif  /* __IUIAutomationElement2_INTERFACE_DEFINED__ */
10246
10247/*****************************************************************************
10248 * IUIAutomationElement3 interface
10249 */
10250#ifndef __IUIAutomationElement3_INTERFACE_DEFINED__
10251#define __IUIAutomationElement3_INTERFACE_DEFINED__
10252
10253DEFINE_GUID(IID_IUIAutomationElement3, 0x8471df34, 0xaee0, 0x4a01, 0xa7,0xde, 0x7d,0xb9,0xaf,0x12,0xc2,0x96);
10254#if defined(__cplusplus) && !defined(CINTERFACE)
10255MIDL_INTERFACE("8471df34-aee0-4a01-a7de-7db9af12c296")
10256IUIAutomationElement3 : public IUIAutomationElement2
10257{
10258    virtual HRESULT STDMETHODCALLTYPE ShowContextMenu(
10259        ) = 0;
10260
10261    virtual HRESULT STDMETHODCALLTYPE get_CurrentIsPeripheral(
10262        WINBOOL *retVal) = 0;
10263
10264    virtual HRESULT STDMETHODCALLTYPE get_CachedIsPeripheral(
10265        WINBOOL *retVal) = 0;
10266
10267};
10268#ifdef __CRT_UUID_DECL
10269__CRT_UUID_DECL(IUIAutomationElement3, 0x8471df34, 0xaee0, 0x4a01, 0xa7,0xde, 0x7d,0xb9,0xaf,0x12,0xc2,0x96)
10270#endif
10271#else
10272typedef struct IUIAutomationElement3Vtbl {
10273    BEGIN_INTERFACE
10274
10275    /*** IUnknown methods ***/
10276    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
10277        IUIAutomationElement3 *This,
10278        REFIID riid,
10279        void **ppvObject);
10280
10281    ULONG (STDMETHODCALLTYPE *AddRef)(
10282        IUIAutomationElement3 *This);
10283
10284    ULONG (STDMETHODCALLTYPE *Release)(
10285        IUIAutomationElement3 *This);
10286
10287    /*** IUIAutomationElement methods ***/
10288    HRESULT (STDMETHODCALLTYPE *SetFocus)(
10289        IUIAutomationElement3 *This);
10290
10291    HRESULT (STDMETHODCALLTYPE *GetRuntimeId)(
10292        IUIAutomationElement3 *This,
10293        SAFEARRAY **runtimeId);
10294
10295    HRESULT (STDMETHODCALLTYPE *FindFirst)(
10296        IUIAutomationElement3 *This,
10297        enum TreeScope scope,
10298        IUIAutomationCondition *condition,
10299        IUIAutomationElement **found);
10300
10301    HRESULT (STDMETHODCALLTYPE *FindAll)(
10302        IUIAutomationElement3 *This,
10303        enum TreeScope scope,
10304        IUIAutomationCondition *condition,
10305        IUIAutomationElementArray **found);
10306
10307    HRESULT (STDMETHODCALLTYPE *FindFirstBuildCache)(
10308        IUIAutomationElement3 *This,
10309        enum TreeScope scope,
10310        IUIAutomationCondition *condition,
10311        IUIAutomationCacheRequest *cacheRequest,
10312        IUIAutomationElement **found);
10313
10314    HRESULT (STDMETHODCALLTYPE *FindAllBuildCache)(
10315        IUIAutomationElement3 *This,
10316        enum TreeScope scope,
10317        IUIAutomationCondition *condition,
10318        IUIAutomationCacheRequest *cacheRequest,
10319        IUIAutomationElementArray **found);
10320
10321    HRESULT (STDMETHODCALLTYPE *BuildUpdatedCache)(
10322        IUIAutomationElement3 *This,
10323        IUIAutomationCacheRequest *cacheRequest,
10324        IUIAutomationElement **updatedElement);
10325
10326    HRESULT (STDMETHODCALLTYPE *GetCurrentPropertyValue)(
10327        IUIAutomationElement3 *This,
10328        PROPERTYID propertyId,
10329        VARIANT *retVal);
10330
10331    HRESULT (STDMETHODCALLTYPE *GetCurrentPropertyValueEx)(
10332        IUIAutomationElement3 *This,
10333        PROPERTYID propertyId,
10334        WINBOOL ignoreDefaultValue,
10335        VARIANT *retVal);
10336
10337    HRESULT (STDMETHODCALLTYPE *GetCachedPropertyValue)(
10338        IUIAutomationElement3 *This,
10339        PROPERTYID propertyId,
10340        VARIANT *retVal);
10341
10342    HRESULT (STDMETHODCALLTYPE *GetCachedPropertyValueEx)(
10343        IUIAutomationElement3 *This,
10344        PROPERTYID propertyId,
10345        WINBOOL ignoreDefaultValue,
10346        VARIANT *retVal);
10347
10348    HRESULT (STDMETHODCALLTYPE *GetCurrentPatternAs)(
10349        IUIAutomationElement3 *This,
10350        PATTERNID patternId,
10351        REFIID riid,
10352        void **patternObject);
10353
10354    HRESULT (STDMETHODCALLTYPE *GetCachedPatternAs)(
10355        IUIAutomationElement3 *This,
10356        PATTERNID patternId,
10357        REFIID riid,
10358        void **patternObject);
10359
10360    HRESULT (STDMETHODCALLTYPE *GetCurrentPattern)(
10361        IUIAutomationElement3 *This,
10362        PATTERNID patternId,
10363        IUnknown **patternObject);
10364
10365    HRESULT (STDMETHODCALLTYPE *GetCachedPattern)(
10366        IUIAutomationElement3 *This,
10367        PATTERNID patternId,
10368        IUnknown **patternObject);
10369
10370    HRESULT (STDMETHODCALLTYPE *GetCachedParent)(
10371        IUIAutomationElement3 *This,
10372        IUIAutomationElement **parent);
10373
10374    HRESULT (STDMETHODCALLTYPE *GetCachedChildren)(
10375        IUIAutomationElement3 *This,
10376        IUIAutomationElementArray **children);
10377
10378    HRESULT (STDMETHODCALLTYPE *get_CurrentProcessId)(
10379        IUIAutomationElement3 *This,
10380        int *retVal);
10381
10382    HRESULT (STDMETHODCALLTYPE *get_CurrentControlType)(
10383        IUIAutomationElement3 *This,
10384        CONTROLTYPEID *retVal);
10385
10386    HRESULT (STDMETHODCALLTYPE *get_CurrentLocalizedControlType)(
10387        IUIAutomationElement3 *This,
10388        BSTR *retVal);
10389
10390    HRESULT (STDMETHODCALLTYPE *get_CurrentName)(
10391        IUIAutomationElement3 *This,
10392        BSTR *retVal);
10393
10394    HRESULT (STDMETHODCALLTYPE *get_CurrentAcceleratorKey)(
10395        IUIAutomationElement3 *This,
10396        BSTR *retVal);
10397
10398    HRESULT (STDMETHODCALLTYPE *get_CurrentAccessKey)(
10399        IUIAutomationElement3 *This,
10400        BSTR *retVal);
10401
10402    HRESULT (STDMETHODCALLTYPE *get_CurrentHasKeyboardFocus)(
10403        IUIAutomationElement3 *This,
10404        WINBOOL *retVal);
10405
10406    HRESULT (STDMETHODCALLTYPE *get_CurrentIsKeyboardFocusable)(
10407        IUIAutomationElement3 *This,
10408        WINBOOL *retVal);
10409
10410    HRESULT (STDMETHODCALLTYPE *get_CurrentIsEnabled)(
10411        IUIAutomationElement3 *This,
10412        WINBOOL *retVal);
10413
10414    HRESULT (STDMETHODCALLTYPE *get_CurrentAutomationId)(
10415        IUIAutomationElement3 *This,
10416        BSTR *retVal);
10417
10418    HRESULT (STDMETHODCALLTYPE *get_CurrentClassName)(
10419        IUIAutomationElement3 *This,
10420        BSTR *retVal);
10421
10422    HRESULT (STDMETHODCALLTYPE *get_CurrentHelpText)(
10423        IUIAutomationElement3 *This,
10424        BSTR *retVal);
10425
10426    HRESULT (STDMETHODCALLTYPE *get_CurrentCulture)(
10427        IUIAutomationElement3 *This,
10428        int *retVal);
10429
10430    HRESULT (STDMETHODCALLTYPE *get_CurrentIsControlElement)(
10431        IUIAutomationElement3 *This,
10432        WINBOOL *retVal);
10433
10434    HRESULT (STDMETHODCALLTYPE *get_CurrentIsContentElement)(
10435        IUIAutomationElement3 *This,
10436        WINBOOL *retVal);
10437
10438    HRESULT (STDMETHODCALLTYPE *get_CurrentIsPassword)(
10439        IUIAutomationElement3 *This,
10440        WINBOOL *retVal);
10441
10442    HRESULT (STDMETHODCALLTYPE *get_CurrentNativeWindowHandle)(
10443        IUIAutomationElement3 *This,
10444        UIA_HWND *retVal);
10445
10446    HRESULT (STDMETHODCALLTYPE *get_CurrentItemType)(
10447        IUIAutomationElement3 *This,
10448        BSTR *retVal);
10449
10450    HRESULT (STDMETHODCALLTYPE *get_CurrentIsOffscreen)(
10451        IUIAutomationElement3 *This,
10452        WINBOOL *retVal);
10453
10454    HRESULT (STDMETHODCALLTYPE *get_CurrentOrientation)(
10455        IUIAutomationElement3 *This,
10456        enum OrientationType *retVal);
10457
10458    HRESULT (STDMETHODCALLTYPE *get_CurrentFrameworkId)(
10459        IUIAutomationElement3 *This,
10460        BSTR *retVal);
10461
10462    HRESULT (STDMETHODCALLTYPE *get_CurrentIsRequiredForForm)(
10463        IUIAutomationElement3 *This,
10464        WINBOOL *retVal);
10465
10466    HRESULT (STDMETHODCALLTYPE *get_CurrentItemStatus)(
10467        IUIAutomationElement3 *This,
10468        BSTR *retVal);
10469
10470    HRESULT (STDMETHODCALLTYPE *get_CurrentBoundingRectangle)(
10471        IUIAutomationElement3 *This,
10472        RECT *retVal);
10473
10474    HRESULT (STDMETHODCALLTYPE *get_CurrentLabeledBy)(
10475        IUIAutomationElement3 *This,
10476        IUIAutomationElement **retVal);
10477
10478    HRESULT (STDMETHODCALLTYPE *get_CurrentAriaRole)(
10479        IUIAutomationElement3 *This,
10480        BSTR *retVal);
10481
10482    HRESULT (STDMETHODCALLTYPE *get_CurrentAriaProperties)(
10483        IUIAutomationElement3 *This,
10484        BSTR *retVal);
10485
10486    HRESULT (STDMETHODCALLTYPE *get_CurrentIsDataValidForForm)(
10487        IUIAutomationElement3 *This,
10488        WINBOOL *retVal);
10489
10490    HRESULT (STDMETHODCALLTYPE *get_CurrentControllerFor)(
10491        IUIAutomationElement3 *This,
10492        IUIAutomationElementArray **retVal);
10493
10494    HRESULT (STDMETHODCALLTYPE *get_CurrentDescribedBy)(
10495        IUIAutomationElement3 *This,
10496        IUIAutomationElementArray **retVal);
10497
10498    HRESULT (STDMETHODCALLTYPE *get_CurrentFlowsTo)(
10499        IUIAutomationElement3 *This,
10500        IUIAutomationElementArray **retVal);
10501
10502    HRESULT (STDMETHODCALLTYPE *get_CurrentProviderDescription)(
10503        IUIAutomationElement3 *This,
10504        BSTR *retVal);
10505
10506    HRESULT (STDMETHODCALLTYPE *get_CachedProcessId)(
10507        IUIAutomationElement3 *This,
10508        int *retVal);
10509
10510    HRESULT (STDMETHODCALLTYPE *get_CachedControlType)(
10511        IUIAutomationElement3 *This,
10512        CONTROLTYPEID *retVal);
10513
10514    HRESULT (STDMETHODCALLTYPE *get_CachedLocalizedControlType)(
10515        IUIAutomationElement3 *This,
10516        BSTR *retVal);
10517
10518    HRESULT (STDMETHODCALLTYPE *get_CachedName)(
10519        IUIAutomationElement3 *This,
10520        BSTR *retVal);
10521
10522    HRESULT (STDMETHODCALLTYPE *get_CachedAcceleratorKey)(
10523        IUIAutomationElement3 *This,
10524        BSTR *retVal);
10525
10526    HRESULT (STDMETHODCALLTYPE *get_CachedAccessKey)(
10527        IUIAutomationElement3 *This,
10528        BSTR *retVal);
10529
10530    HRESULT (STDMETHODCALLTYPE *get_CachedHasKeyboardFocus)(
10531        IUIAutomationElement3 *This,
10532        WINBOOL *retVal);
10533
10534    HRESULT (STDMETHODCALLTYPE *get_CachedIsKeyboardFocusable)(
10535        IUIAutomationElement3 *This,
10536        WINBOOL *retVal);
10537
10538    HRESULT (STDMETHODCALLTYPE *get_CachedIsEnabled)(
10539        IUIAutomationElement3 *This,
10540        WINBOOL *retVal);
10541
10542    HRESULT (STDMETHODCALLTYPE *get_CachedAutomationId)(
10543        IUIAutomationElement3 *This,
10544        BSTR *retVal);
10545
10546    HRESULT (STDMETHODCALLTYPE *get_CachedClassName)(
10547        IUIAutomationElement3 *This,
10548        BSTR *retVal);
10549
10550    HRESULT (STDMETHODCALLTYPE *get_CachedHelpText)(
10551        IUIAutomationElement3 *This,
10552        BSTR *retVal);
10553
10554    HRESULT (STDMETHODCALLTYPE *get_CachedCulture)(
10555        IUIAutomationElement3 *This,
10556        int *retVal);
10557
10558    HRESULT (STDMETHODCALLTYPE *get_CachedIsControlElement)(
10559        IUIAutomationElement3 *This,
10560        WINBOOL *retVal);
10561
10562    HRESULT (STDMETHODCALLTYPE *get_CachedIsContentElement)(
10563        IUIAutomationElement3 *This,
10564        WINBOOL *retVal);
10565
10566    HRESULT (STDMETHODCALLTYPE *get_CachedIsPassword)(
10567        IUIAutomationElement3 *This,
10568        WINBOOL *retVal);
10569
10570    HRESULT (STDMETHODCALLTYPE *get_CachedNativeWindowHandle)(
10571        IUIAutomationElement3 *This,
10572        UIA_HWND *retVal);
10573
10574    HRESULT (STDMETHODCALLTYPE *get_CachedItemType)(
10575        IUIAutomationElement3 *This,
10576        BSTR *retVal);
10577
10578    HRESULT (STDMETHODCALLTYPE *get_CachedIsOffscreen)(
10579        IUIAutomationElement3 *This,
10580        WINBOOL *retVal);
10581
10582    HRESULT (STDMETHODCALLTYPE *get_CachedOrientation)(
10583        IUIAutomationElement3 *This,
10584        enum OrientationType *retVal);
10585
10586    HRESULT (STDMETHODCALLTYPE *get_CachedFrameworkId)(
10587        IUIAutomationElement3 *This,
10588        BSTR *retVal);
10589
10590    HRESULT (STDMETHODCALLTYPE *get_CachedIsRequiredForForm)(
10591        IUIAutomationElement3 *This,
10592        WINBOOL *retVal);
10593
10594    HRESULT (STDMETHODCALLTYPE *get_CachedItemStatus)(
10595        IUIAutomationElement3 *This,
10596        BSTR *retVal);
10597
10598    HRESULT (STDMETHODCALLTYPE *get_CachedBoundingRectangle)(
10599        IUIAutomationElement3 *This,
10600        RECT *retVal);
10601
10602    HRESULT (STDMETHODCALLTYPE *get_CachedLabeledBy)(
10603        IUIAutomationElement3 *This,
10604        IUIAutomationElement **retVal);
10605
10606    HRESULT (STDMETHODCALLTYPE *get_CachedAriaRole)(
10607        IUIAutomationElement3 *This,
10608        BSTR *retVal);
10609
10610    HRESULT (STDMETHODCALLTYPE *get_CachedAriaProperties)(
10611        IUIAutomationElement3 *This,
10612        BSTR *retVal);
10613
10614    HRESULT (STDMETHODCALLTYPE *get_CachedIsDataValidForForm)(
10615        IUIAutomationElement3 *This,
10616        WINBOOL *retVal);
10617
10618    HRESULT (STDMETHODCALLTYPE *get_CachedControllerFor)(
10619        IUIAutomationElement3 *This,
10620        IUIAutomationElementArray **retVal);
10621
10622    HRESULT (STDMETHODCALLTYPE *get_CachedDescribedBy)(
10623        IUIAutomationElement3 *This,
10624        IUIAutomationElementArray **retVal);
10625
10626    HRESULT (STDMETHODCALLTYPE *get_CachedFlowsTo)(
10627        IUIAutomationElement3 *This,
10628        IUIAutomationElementArray **retVal);
10629
10630    HRESULT (STDMETHODCALLTYPE *get_CachedProviderDescription)(
10631        IUIAutomationElement3 *This,
10632        BSTR *retVal);
10633
10634    HRESULT (STDMETHODCALLTYPE *GetClickablePoint)(
10635        IUIAutomationElement3 *This,
10636        POINT *clickable,
10637        WINBOOL *gotClickable);
10638
10639    /*** IUIAutomationElement2 methods ***/
10640    HRESULT (STDMETHODCALLTYPE *get_CurrentOptimizeForVisualContent)(
10641        IUIAutomationElement3 *This,
10642        WINBOOL *retVal);
10643
10644    HRESULT (STDMETHODCALLTYPE *get_CachedOptimizeForVisualContent)(
10645        IUIAutomationElement3 *This,
10646        WINBOOL *retVal);
10647
10648    HRESULT (STDMETHODCALLTYPE *get_CurrentLiveSetting)(
10649        IUIAutomationElement3 *This,
10650        enum LiveSetting *retVal);
10651
10652    HRESULT (STDMETHODCALLTYPE *get_CachedLiveSetting)(
10653        IUIAutomationElement3 *This,
10654        enum LiveSetting *retVal);
10655
10656    HRESULT (STDMETHODCALLTYPE *get_CurrentFlowsFrom)(
10657        IUIAutomationElement3 *This,
10658        IUIAutomationElementArray **retVal);
10659
10660    HRESULT (STDMETHODCALLTYPE *get_CachedFlowsFrom)(
10661        IUIAutomationElement3 *This,
10662        IUIAutomationElementArray **retVal);
10663
10664    /*** IUIAutomationElement3 methods ***/
10665    HRESULT (STDMETHODCALLTYPE *ShowContextMenu)(
10666        IUIAutomationElement3 *This);
10667
10668    HRESULT (STDMETHODCALLTYPE *get_CurrentIsPeripheral)(
10669        IUIAutomationElement3 *This,
10670        WINBOOL *retVal);
10671
10672    HRESULT (STDMETHODCALLTYPE *get_CachedIsPeripheral)(
10673        IUIAutomationElement3 *This,
10674        WINBOOL *retVal);
10675
10676    END_INTERFACE
10677} IUIAutomationElement3Vtbl;
10678
10679interface IUIAutomationElement3 {
10680    CONST_VTBL IUIAutomationElement3Vtbl* lpVtbl;
10681};
10682
10683#ifdef COBJMACROS
10684#ifndef WIDL_C_INLINE_WRAPPERS
10685/*** IUnknown methods ***/
10686#define IUIAutomationElement3_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
10687#define IUIAutomationElement3_AddRef(This) (This)->lpVtbl->AddRef(This)
10688#define IUIAutomationElement3_Release(This) (This)->lpVtbl->Release(This)
10689/*** IUIAutomationElement methods ***/
10690#define IUIAutomationElement3_SetFocus(This) (This)->lpVtbl->SetFocus(This)
10691#define IUIAutomationElement3_GetRuntimeId(This,runtimeId) (This)->lpVtbl->GetRuntimeId(This,runtimeId)
10692#define IUIAutomationElement3_FindFirst(This,scope,condition,found) (This)->lpVtbl->FindFirst(This,scope,condition,found)
10693#define IUIAutomationElement3_FindAll(This,scope,condition,found) (This)->lpVtbl->FindAll(This,scope,condition,found)
10694#define IUIAutomationElement3_FindFirstBuildCache(This,scope,condition,cacheRequest,found) (This)->lpVtbl->FindFirstBuildCache(This,scope,condition,cacheRequest,found)
10695#define IUIAutomationElement3_FindAllBuildCache(This,scope,condition,cacheRequest,found) (This)->lpVtbl->FindAllBuildCache(This,scope,condition,cacheRequest,found)
10696#define IUIAutomationElement3_BuildUpdatedCache(This,cacheRequest,updatedElement) (This)->lpVtbl->BuildUpdatedCache(This,cacheRequest,updatedElement)
10697#define IUIAutomationElement3_GetCurrentPropertyValue(This,propertyId,retVal) (This)->lpVtbl->GetCurrentPropertyValue(This,propertyId,retVal)
10698#define IUIAutomationElement3_GetCurrentPropertyValueEx(This,propertyId,ignoreDefaultValue,retVal) (This)->lpVtbl->GetCurrentPropertyValueEx(This,propertyId,ignoreDefaultValue,retVal)
10699#define IUIAutomationElement3_GetCachedPropertyValue(This,propertyId,retVal) (This)->lpVtbl->GetCachedPropertyValue(This,propertyId,retVal)
10700#define IUIAutomationElement3_GetCachedPropertyValueEx(This,propertyId,ignoreDefaultValue,retVal) (This)->lpVtbl->GetCachedPropertyValueEx(This,propertyId,ignoreDefaultValue,retVal)
10701#define IUIAutomationElement3_GetCurrentPatternAs(This,patternId,riid,patternObject) (This)->lpVtbl->GetCurrentPatternAs(This,patternId,riid,patternObject)
10702#define IUIAutomationElement3_GetCachedPatternAs(This,patternId,riid,patternObject) (This)->lpVtbl->GetCachedPatternAs(This,patternId,riid,patternObject)
10703#define IUIAutomationElement3_GetCurrentPattern(This,patternId,patternObject) (This)->lpVtbl->GetCurrentPattern(This,patternId,patternObject)
10704#define IUIAutomationElement3_GetCachedPattern(This,patternId,patternObject) (This)->lpVtbl->GetCachedPattern(This,patternId,patternObject)
10705#define IUIAutomationElement3_GetCachedParent(This,parent) (This)->lpVtbl->GetCachedParent(This,parent)
10706#define IUIAutomationElement3_GetCachedChildren(This,children) (This)->lpVtbl->GetCachedChildren(This,children)
10707#define IUIAutomationElement3_get_CurrentProcessId(This,retVal) (This)->lpVtbl->get_CurrentProcessId(This,retVal)
10708#define IUIAutomationElement3_get_CurrentControlType(This,retVal) (This)->lpVtbl->get_CurrentControlType(This,retVal)
10709#define IUIAutomationElement3_get_CurrentLocalizedControlType(This,retVal) (This)->lpVtbl->get_CurrentLocalizedControlType(This,retVal)
10710#define IUIAutomationElement3_get_CurrentName(This,retVal) (This)->lpVtbl->get_CurrentName(This,retVal)
10711#define IUIAutomationElement3_get_CurrentAcceleratorKey(This,retVal) (This)->lpVtbl->get_CurrentAcceleratorKey(This,retVal)
10712#define IUIAutomationElement3_get_CurrentAccessKey(This,retVal) (This)->lpVtbl->get_CurrentAccessKey(This,retVal)
10713#define IUIAutomationElement3_get_CurrentHasKeyboardFocus(This,retVal) (This)->lpVtbl->get_CurrentHasKeyboardFocus(This,retVal)
10714#define IUIAutomationElement3_get_CurrentIsKeyboardFocusable(This,retVal) (This)->lpVtbl->get_CurrentIsKeyboardFocusable(This,retVal)
10715#define IUIAutomationElement3_get_CurrentIsEnabled(This,retVal) (This)->lpVtbl->get_CurrentIsEnabled(This,retVal)
10716#define IUIAutomationElement3_get_CurrentAutomationId(This,retVal) (This)->lpVtbl->get_CurrentAutomationId(This,retVal)
10717#define IUIAutomationElement3_get_CurrentClassName(This,retVal) (This)->lpVtbl->get_CurrentClassName(This,retVal)
10718#define IUIAutomationElement3_get_CurrentHelpText(This,retVal) (This)->lpVtbl->get_CurrentHelpText(This,retVal)
10719#define IUIAutomationElement3_get_CurrentCulture(This,retVal) (This)->lpVtbl->get_CurrentCulture(This,retVal)
10720#define IUIAutomationElement3_get_CurrentIsControlElement(This,retVal) (This)->lpVtbl->get_CurrentIsControlElement(This,retVal)
10721#define IUIAutomationElement3_get_CurrentIsContentElement(This,retVal) (This)->lpVtbl->get_CurrentIsContentElement(This,retVal)
10722#define IUIAutomationElement3_get_CurrentIsPassword(This,retVal) (This)->lpVtbl->get_CurrentIsPassword(This,retVal)
10723#define IUIAutomationElement3_get_CurrentNativeWindowHandle(This,retVal) (This)->lpVtbl->get_CurrentNativeWindowHandle(This,retVal)
10724#define IUIAutomationElement3_get_CurrentItemType(This,retVal) (This)->lpVtbl->get_CurrentItemType(This,retVal)
10725#define IUIAutomationElement3_get_CurrentIsOffscreen(This,retVal) (This)->lpVtbl->get_CurrentIsOffscreen(This,retVal)
10726#define IUIAutomationElement3_get_CurrentOrientation(This,retVal) (This)->lpVtbl->get_CurrentOrientation(This,retVal)
10727#define IUIAutomationElement3_get_CurrentFrameworkId(This,retVal) (This)->lpVtbl->get_CurrentFrameworkId(This,retVal)
10728#define IUIAutomationElement3_get_CurrentIsRequiredForForm(This,retVal) (This)->lpVtbl->get_CurrentIsRequiredForForm(This,retVal)
10729#define IUIAutomationElement3_get_CurrentItemStatus(This,retVal) (This)->lpVtbl->get_CurrentItemStatus(This,retVal)
10730#define IUIAutomationElement3_get_CurrentBoundingRectangle(This,retVal) (This)->lpVtbl->get_CurrentBoundingRectangle(This,retVal)
10731#define IUIAutomationElement3_get_CurrentLabeledBy(This,retVal) (This)->lpVtbl->get_CurrentLabeledBy(This,retVal)
10732#define IUIAutomationElement3_get_CurrentAriaRole(This,retVal) (This)->lpVtbl->get_CurrentAriaRole(This,retVal)
10733#define IUIAutomationElement3_get_CurrentAriaProperties(This,retVal) (This)->lpVtbl->get_CurrentAriaProperties(This,retVal)
10734#define IUIAutomationElement3_get_CurrentIsDataValidForForm(This,retVal) (This)->lpVtbl->get_CurrentIsDataValidForForm(This,retVal)
10735#define IUIAutomationElement3_get_CurrentControllerFor(This,retVal) (This)->lpVtbl->get_CurrentControllerFor(This,retVal)
10736#define IUIAutomationElement3_get_CurrentDescribedBy(This,retVal) (This)->lpVtbl->get_CurrentDescribedBy(This,retVal)
10737#define IUIAutomationElement3_get_CurrentFlowsTo(This,retVal) (This)->lpVtbl->get_CurrentFlowsTo(This,retVal)
10738#define IUIAutomationElement3_get_CurrentProviderDescription(This,retVal) (This)->lpVtbl->get_CurrentProviderDescription(This,retVal)
10739#define IUIAutomationElement3_get_CachedProcessId(This,retVal) (This)->lpVtbl->get_CachedProcessId(This,retVal)
10740#define IUIAutomationElement3_get_CachedControlType(This,retVal) (This)->lpVtbl->get_CachedControlType(This,retVal)
10741#define IUIAutomationElement3_get_CachedLocalizedControlType(This,retVal) (This)->lpVtbl->get_CachedLocalizedControlType(This,retVal)
10742#define IUIAutomationElement3_get_CachedName(This,retVal) (This)->lpVtbl->get_CachedName(This,retVal)
10743#define IUIAutomationElement3_get_CachedAcceleratorKey(This,retVal) (This)->lpVtbl->get_CachedAcceleratorKey(This,retVal)
10744#define IUIAutomationElement3_get_CachedAccessKey(This,retVal) (This)->lpVtbl->get_CachedAccessKey(This,retVal)
10745#define IUIAutomationElement3_get_CachedHasKeyboardFocus(This,retVal) (This)->lpVtbl->get_CachedHasKeyboardFocus(This,retVal)
10746#define IUIAutomationElement3_get_CachedIsKeyboardFocusable(This,retVal) (This)->lpVtbl->get_CachedIsKeyboardFocusable(This,retVal)
10747#define IUIAutomationElement3_get_CachedIsEnabled(This,retVal) (This)->lpVtbl->get_CachedIsEnabled(This,retVal)
10748#define IUIAutomationElement3_get_CachedAutomationId(This,retVal) (This)->lpVtbl->get_CachedAutomationId(This,retVal)
10749#define IUIAutomationElement3_get_CachedClassName(This,retVal) (This)->lpVtbl->get_CachedClassName(This,retVal)
10750#define IUIAutomationElement3_get_CachedHelpText(This,retVal) (This)->lpVtbl->get_CachedHelpText(This,retVal)
10751#define IUIAutomationElement3_get_CachedCulture(This,retVal) (This)->lpVtbl->get_CachedCulture(This,retVal)
10752#define IUIAutomationElement3_get_CachedIsControlElement(This,retVal) (This)->lpVtbl->get_CachedIsControlElement(This,retVal)
10753#define IUIAutomationElement3_get_CachedIsContentElement(This,retVal) (This)->lpVtbl->get_CachedIsContentElement(This,retVal)
10754#define IUIAutomationElement3_get_CachedIsPassword(This,retVal) (This)->lpVtbl->get_CachedIsPassword(This,retVal)
10755#define IUIAutomationElement3_get_CachedNativeWindowHandle(This,retVal) (This)->lpVtbl->get_CachedNativeWindowHandle(This,retVal)
10756#define IUIAutomationElement3_get_CachedItemType(This,retVal) (This)->lpVtbl->get_CachedItemType(This,retVal)
10757#define IUIAutomationElement3_get_CachedIsOffscreen(This,retVal) (This)->lpVtbl->get_CachedIsOffscreen(This,retVal)
10758#define IUIAutomationElement3_get_CachedOrientation(This,retVal) (This)->lpVtbl->get_CachedOrientation(This,retVal)
10759#define IUIAutomationElement3_get_CachedFrameworkId(This,retVal) (This)->lpVtbl->get_CachedFrameworkId(This,retVal)
10760#define IUIAutomationElement3_get_CachedIsRequiredForForm(This,retVal) (This)->lpVtbl->get_CachedIsRequiredForForm(This,retVal)
10761#define IUIAutomationElement3_get_CachedItemStatus(This,retVal) (This)->lpVtbl->get_CachedItemStatus(This,retVal)
10762#define IUIAutomationElement3_get_CachedBoundingRectangle(This,retVal) (This)->lpVtbl->get_CachedBoundingRectangle(This,retVal)
10763#define IUIAutomationElement3_get_CachedLabeledBy(This,retVal) (This)->lpVtbl->get_CachedLabeledBy(This,retVal)
10764#define IUIAutomationElement3_get_CachedAriaRole(This,retVal) (This)->lpVtbl->get_CachedAriaRole(This,retVal)
10765#define IUIAutomationElement3_get_CachedAriaProperties(This,retVal) (This)->lpVtbl->get_CachedAriaProperties(This,retVal)
10766#define IUIAutomationElement3_get_CachedIsDataValidForForm(This,retVal) (This)->lpVtbl->get_CachedIsDataValidForForm(This,retVal)
10767#define IUIAutomationElement3_get_CachedControllerFor(This,retVal) (This)->lpVtbl->get_CachedControllerFor(This,retVal)
10768#define IUIAutomationElement3_get_CachedDescribedBy(This,retVal) (This)->lpVtbl->get_CachedDescribedBy(This,retVal)
10769#define IUIAutomationElement3_get_CachedFlowsTo(This,retVal) (This)->lpVtbl->get_CachedFlowsTo(This,retVal)
10770#define IUIAutomationElement3_get_CachedProviderDescription(This,retVal) (This)->lpVtbl->get_CachedProviderDescription(This,retVal)
10771#define IUIAutomationElement3_GetClickablePoint(This,clickable,gotClickable) (This)->lpVtbl->GetClickablePoint(This,clickable,gotClickable)
10772/*** IUIAutomationElement2 methods ***/
10773#define IUIAutomationElement3_get_CurrentOptimizeForVisualContent(This,retVal) (This)->lpVtbl->get_CurrentOptimizeForVisualContent(This,retVal)
10774#define IUIAutomationElement3_get_CachedOptimizeForVisualContent(This,retVal) (This)->lpVtbl->get_CachedOptimizeForVisualContent(This,retVal)
10775#define IUIAutomationElement3_get_CurrentLiveSetting(This,retVal) (This)->lpVtbl->get_CurrentLiveSetting(This,retVal)
10776#define IUIAutomationElement3_get_CachedLiveSetting(This,retVal) (This)->lpVtbl->get_CachedLiveSetting(This,retVal)
10777#define IUIAutomationElement3_get_CurrentFlowsFrom(This,retVal) (This)->lpVtbl->get_CurrentFlowsFrom(This,retVal)
10778#define IUIAutomationElement3_get_CachedFlowsFrom(This,retVal) (This)->lpVtbl->get_CachedFlowsFrom(This,retVal)
10779/*** IUIAutomationElement3 methods ***/
10780#define IUIAutomationElement3_ShowContextMenu(This) (This)->lpVtbl->ShowContextMenu(This)
10781#define IUIAutomationElement3_get_CurrentIsPeripheral(This,retVal) (This)->lpVtbl->get_CurrentIsPeripheral(This,retVal)
10782#define IUIAutomationElement3_get_CachedIsPeripheral(This,retVal) (This)->lpVtbl->get_CachedIsPeripheral(This,retVal)
10783#else
10784/*** IUnknown methods ***/
10785static inline HRESULT IUIAutomationElement3_QueryInterface(IUIAutomationElement3* This,REFIID riid,void **ppvObject) {
10786    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
10787}
10788static inline ULONG IUIAutomationElement3_AddRef(IUIAutomationElement3* This) {
10789    return This->lpVtbl->AddRef(This);
10790}
10791static inline ULONG IUIAutomationElement3_Release(IUIAutomationElement3* This) {
10792    return This->lpVtbl->Release(This);
10793}
10794/*** IUIAutomationElement methods ***/
10795static inline HRESULT IUIAutomationElement3_SetFocus(IUIAutomationElement3* This) {
10796    return This->lpVtbl->SetFocus(This);
10797}
10798static inline HRESULT IUIAutomationElement3_GetRuntimeId(IUIAutomationElement3* This,SAFEARRAY **runtimeId) {
10799    return This->lpVtbl->GetRuntimeId(This,runtimeId);
10800}
10801static inline HRESULT IUIAutomationElement3_FindFirst(IUIAutomationElement3* This,enum TreeScope scope,IUIAutomationCondition *condition,IUIAutomationElement **found) {
10802    return This->lpVtbl->FindFirst(This,scope,condition,found);
10803}
10804static inline HRESULT IUIAutomationElement3_FindAll(IUIAutomationElement3* This,enum TreeScope scope,IUIAutomationCondition *condition,IUIAutomationElementArray **found) {
10805    return This->lpVtbl->FindAll(This,scope,condition,found);
10806}
10807static inline HRESULT IUIAutomationElement3_FindFirstBuildCache(IUIAutomationElement3* This,enum TreeScope scope,IUIAutomationCondition *condition,IUIAutomationCacheRequest *cacheRequest,IUIAutomationElement **found) {
10808    return This->lpVtbl->FindFirstBuildCache(This,scope,condition,cacheRequest,found);
10809}
10810static inline HRESULT IUIAutomationElement3_FindAllBuildCache(IUIAutomationElement3* This,enum TreeScope scope,IUIAutomationCondition *condition,IUIAutomationCacheRequest *cacheRequest,IUIAutomationElementArray **found) {
10811    return This->lpVtbl->FindAllBuildCache(This,scope,condition,cacheRequest,found);
10812}
10813static inline HRESULT IUIAutomationElement3_BuildUpdatedCache(IUIAutomationElement3* This,IUIAutomationCacheRequest *cacheRequest,IUIAutomationElement **updatedElement) {
10814    return This->lpVtbl->BuildUpdatedCache(This,cacheRequest,updatedElement);
10815}
10816static inline HRESULT IUIAutomationElement3_GetCurrentPropertyValue(IUIAutomationElement3* This,PROPERTYID propertyId,VARIANT *retVal) {
10817    return This->lpVtbl->GetCurrentPropertyValue(This,propertyId,retVal);
10818}
10819static inline HRESULT IUIAutomationElement3_GetCurrentPropertyValueEx(IUIAutomationElement3* This,PROPERTYID propertyId,WINBOOL ignoreDefaultValue,VARIANT *retVal) {
10820    return This->lpVtbl->GetCurrentPropertyValueEx(This,propertyId,ignoreDefaultValue,retVal);
10821}
10822static inline HRESULT IUIAutomationElement3_GetCachedPropertyValue(IUIAutomationElement3* This,PROPERTYID propertyId,VARIANT *retVal) {
10823    return This->lpVtbl->GetCachedPropertyValue(This,propertyId,retVal);
10824}
10825static inline HRESULT IUIAutomationElement3_GetCachedPropertyValueEx(IUIAutomationElement3* This,PROPERTYID propertyId,WINBOOL ignoreDefaultValue,VARIANT *retVal) {
10826    return This->lpVtbl->GetCachedPropertyValueEx(This,propertyId,ignoreDefaultValue,retVal);
10827}
10828static inline HRESULT IUIAutomationElement3_GetCurrentPatternAs(IUIAutomationElement3* This,PATTERNID patternId,REFIID riid,void **patternObject) {
10829    return This->lpVtbl->GetCurrentPatternAs(This,patternId,riid,patternObject);
10830}
10831static inline HRESULT IUIAutomationElement3_GetCachedPatternAs(IUIAutomationElement3* This,PATTERNID patternId,REFIID riid,void **patternObject) {
10832    return This->lpVtbl->GetCachedPatternAs(This,patternId,riid,patternObject);
10833}
10834static inline HRESULT IUIAutomationElement3_GetCurrentPattern(IUIAutomationElement3* This,PATTERNID patternId,IUnknown **patternObject) {
10835    return This->lpVtbl->GetCurrentPattern(This,patternId,patternObject);
10836}
10837static inline HRESULT IUIAutomationElement3_GetCachedPattern(IUIAutomationElement3* This,PATTERNID patternId,IUnknown **patternObject) {
10838    return This->lpVtbl->GetCachedPattern(This,patternId,patternObject);
10839}
10840static inline HRESULT IUIAutomationElement3_GetCachedParent(IUIAutomationElement3* This,IUIAutomationElement **parent) {
10841    return This->lpVtbl->GetCachedParent(This,parent);
10842}
10843static inline HRESULT IUIAutomationElement3_GetCachedChildren(IUIAutomationElement3* This,IUIAutomationElementArray **children) {
10844    return This->lpVtbl->GetCachedChildren(This,children);
10845}
10846static inline HRESULT IUIAutomationElement3_get_CurrentProcessId(IUIAutomationElement3* This,int *retVal) {
10847    return This->lpVtbl->get_CurrentProcessId(This,retVal);
10848}
10849static inline HRESULT IUIAutomationElement3_get_CurrentControlType(IUIAutomationElement3* This,CONTROLTYPEID *retVal) {
10850    return This->lpVtbl->get_CurrentControlType(This,retVal);
10851}
10852static inline HRESULT IUIAutomationElement3_get_CurrentLocalizedControlType(IUIAutomationElement3* This,BSTR *retVal) {
10853    return This->lpVtbl->get_CurrentLocalizedControlType(This,retVal);
10854}
10855static inline HRESULT IUIAutomationElement3_get_CurrentName(IUIAutomationElement3* This,BSTR *retVal) {
10856    return This->lpVtbl->get_CurrentName(This,retVal);
10857}
10858static inline HRESULT IUIAutomationElement3_get_CurrentAcceleratorKey(IUIAutomationElement3* This,BSTR *retVal) {
10859    return This->lpVtbl->get_CurrentAcceleratorKey(This,retVal);
10860}
10861static inline HRESULT IUIAutomationElement3_get_CurrentAccessKey(IUIAutomationElement3* This,BSTR *retVal) {
10862    return This->lpVtbl->get_CurrentAccessKey(This,retVal);
10863}
10864static inline HRESULT IUIAutomationElement3_get_CurrentHasKeyboardFocus(IUIAutomationElement3* This,WINBOOL *retVal) {
10865    return This->lpVtbl->get_CurrentHasKeyboardFocus(This,retVal);
10866}
10867static inline HRESULT IUIAutomationElement3_get_CurrentIsKeyboardFocusable(IUIAutomationElement3* This,WINBOOL *retVal) {
10868    return This->lpVtbl->get_CurrentIsKeyboardFocusable(This,retVal);
10869}
10870static inline HRESULT IUIAutomationElement3_get_CurrentIsEnabled(IUIAutomationElement3* This,WINBOOL *retVal) {
10871    return This->lpVtbl->get_CurrentIsEnabled(This,retVal);
10872}
10873static inline HRESULT IUIAutomationElement3_get_CurrentAutomationId(IUIAutomationElement3* This,BSTR *retVal) {
10874    return This->lpVtbl->get_CurrentAutomationId(This,retVal);
10875}
10876static inline HRESULT IUIAutomationElement3_get_CurrentClassName(IUIAutomationElement3* This,BSTR *retVal) {
10877    return This->lpVtbl->get_CurrentClassName(This,retVal);
10878}
10879static inline HRESULT IUIAutomationElement3_get_CurrentHelpText(IUIAutomationElement3* This,BSTR *retVal) {
10880    return This->lpVtbl->get_CurrentHelpText(This,retVal);
10881}
10882static inline HRESULT IUIAutomationElement3_get_CurrentCulture(IUIAutomationElement3* This,int *retVal) {
10883    return This->lpVtbl->get_CurrentCulture(This,retVal);
10884}
10885static inline HRESULT IUIAutomationElement3_get_CurrentIsControlElement(IUIAutomationElement3* This,WINBOOL *retVal) {
10886    return This->lpVtbl->get_CurrentIsControlElement(This,retVal);
10887}
10888static inline HRESULT IUIAutomationElement3_get_CurrentIsContentElement(IUIAutomationElement3* This,WINBOOL *retVal) {
10889    return This->lpVtbl->get_CurrentIsContentElement(This,retVal);
10890}
10891static inline HRESULT IUIAutomationElement3_get_CurrentIsPassword(IUIAutomationElement3* This,WINBOOL *retVal) {
10892    return This->lpVtbl->get_CurrentIsPassword(This,retVal);
10893}
10894static inline HRESULT IUIAutomationElement3_get_CurrentNativeWindowHandle(IUIAutomationElement3* This,UIA_HWND *retVal) {
10895    return This->lpVtbl->get_CurrentNativeWindowHandle(This,retVal);
10896}
10897static inline HRESULT IUIAutomationElement3_get_CurrentItemType(IUIAutomationElement3* This,BSTR *retVal) {
10898    return This->lpVtbl->get_CurrentItemType(This,retVal);
10899}
10900static inline HRESULT IUIAutomationElement3_get_CurrentIsOffscreen(IUIAutomationElement3* This,WINBOOL *retVal) {
10901    return This->lpVtbl->get_CurrentIsOffscreen(This,retVal);
10902}
10903static inline HRESULT IUIAutomationElement3_get_CurrentOrientation(IUIAutomationElement3* This,enum OrientationType *retVal) {
10904    return This->lpVtbl->get_CurrentOrientation(This,retVal);
10905}
10906static inline HRESULT IUIAutomationElement3_get_CurrentFrameworkId(IUIAutomationElement3* This,BSTR *retVal) {
10907    return This->lpVtbl->get_CurrentFrameworkId(This,retVal);
10908}
10909static inline HRESULT IUIAutomationElement3_get_CurrentIsRequiredForForm(IUIAutomationElement3* This,WINBOOL *retVal) {
10910    return This->lpVtbl->get_CurrentIsRequiredForForm(This,retVal);
10911}
10912static inline HRESULT IUIAutomationElement3_get_CurrentItemStatus(IUIAutomationElement3* This,BSTR *retVal) {
10913    return This->lpVtbl->get_CurrentItemStatus(This,retVal);
10914}
10915static inline HRESULT IUIAutomationElement3_get_CurrentBoundingRectangle(IUIAutomationElement3* This,RECT *retVal) {
10916    return This->lpVtbl->get_CurrentBoundingRectangle(This,retVal);
10917}
10918static inline HRESULT IUIAutomationElement3_get_CurrentLabeledBy(IUIAutomationElement3* This,IUIAutomationElement **retVal) {
10919    return This->lpVtbl->get_CurrentLabeledBy(This,retVal);
10920}
10921static inline HRESULT IUIAutomationElement3_get_CurrentAriaRole(IUIAutomationElement3* This,BSTR *retVal) {
10922    return This->lpVtbl->get_CurrentAriaRole(This,retVal);
10923}
10924static inline HRESULT IUIAutomationElement3_get_CurrentAriaProperties(IUIAutomationElement3* This,BSTR *retVal) {
10925    return This->lpVtbl->get_CurrentAriaProperties(This,retVal);
10926}
10927static inline HRESULT IUIAutomationElement3_get_CurrentIsDataValidForForm(IUIAutomationElement3* This,WINBOOL *retVal) {
10928    return This->lpVtbl->get_CurrentIsDataValidForForm(This,retVal);
10929}
10930static inline HRESULT IUIAutomationElement3_get_CurrentControllerFor(IUIAutomationElement3* This,IUIAutomationElementArray **retVal) {
10931    return This->lpVtbl->get_CurrentControllerFor(This,retVal);
10932}
10933static inline HRESULT IUIAutomationElement3_get_CurrentDescribedBy(IUIAutomationElement3* This,IUIAutomationElementArray **retVal) {
10934    return This->lpVtbl->get_CurrentDescribedBy(This,retVal);
10935}
10936static inline HRESULT IUIAutomationElement3_get_CurrentFlowsTo(IUIAutomationElement3* This,IUIAutomationElementArray **retVal) {
10937    return This->lpVtbl->get_CurrentFlowsTo(This,retVal);
10938}
10939static inline HRESULT IUIAutomationElement3_get_CurrentProviderDescription(IUIAutomationElement3* This,BSTR *retVal) {
10940    return This->lpVtbl->get_CurrentProviderDescription(This,retVal);
10941}
10942static inline HRESULT IUIAutomationElement3_get_CachedProcessId(IUIAutomationElement3* This,int *retVal) {
10943    return This->lpVtbl->get_CachedProcessId(This,retVal);
10944}
10945static inline HRESULT IUIAutomationElement3_get_CachedControlType(IUIAutomationElement3* This,CONTROLTYPEID *retVal) {
10946    return This->lpVtbl->get_CachedControlType(This,retVal);
10947}
10948static inline HRESULT IUIAutomationElement3_get_CachedLocalizedControlType(IUIAutomationElement3* This,BSTR *retVal) {
10949    return This->lpVtbl->get_CachedLocalizedControlType(This,retVal);
10950}
10951static inline HRESULT IUIAutomationElement3_get_CachedName(IUIAutomationElement3* This,BSTR *retVal) {
10952    return This->lpVtbl->get_CachedName(This,retVal);
10953}
10954static inline HRESULT IUIAutomationElement3_get_CachedAcceleratorKey(IUIAutomationElement3* This,BSTR *retVal) {
10955    return This->lpVtbl->get_CachedAcceleratorKey(This,retVal);
10956}
10957static inline HRESULT IUIAutomationElement3_get_CachedAccessKey(IUIAutomationElement3* This,BSTR *retVal) {
10958    return This->lpVtbl->get_CachedAccessKey(This,retVal);
10959}
10960static inline HRESULT IUIAutomationElement3_get_CachedHasKeyboardFocus(IUIAutomationElement3* This,WINBOOL *retVal) {
10961    return This->lpVtbl->get_CachedHasKeyboardFocus(This,retVal);
10962}
10963static inline HRESULT IUIAutomationElement3_get_CachedIsKeyboardFocusable(IUIAutomationElement3* This,WINBOOL *retVal) {
10964    return This->lpVtbl->get_CachedIsKeyboardFocusable(This,retVal);
10965}
10966static inline HRESULT IUIAutomationElement3_get_CachedIsEnabled(IUIAutomationElement3* This,WINBOOL *retVal) {
10967    return This->lpVtbl->get_CachedIsEnabled(This,retVal);
10968}
10969static inline HRESULT IUIAutomationElement3_get_CachedAutomationId(IUIAutomationElement3* This,BSTR *retVal) {
10970    return This->lpVtbl->get_CachedAutomationId(This,retVal);
10971}
10972static inline HRESULT IUIAutomationElement3_get_CachedClassName(IUIAutomationElement3* This,BSTR *retVal) {
10973    return This->lpVtbl->get_CachedClassName(This,retVal);
10974}
10975static inline HRESULT IUIAutomationElement3_get_CachedHelpText(IUIAutomationElement3* This,BSTR *retVal) {
10976    return This->lpVtbl->get_CachedHelpText(This,retVal);
10977}
10978static inline HRESULT IUIAutomationElement3_get_CachedCulture(IUIAutomationElement3* This,int *retVal) {
10979    return This->lpVtbl->get_CachedCulture(This,retVal);
10980}
10981static inline HRESULT IUIAutomationElement3_get_CachedIsControlElement(IUIAutomationElement3* This,WINBOOL *retVal) {
10982    return This->lpVtbl->get_CachedIsControlElement(This,retVal);
10983}
10984static inline HRESULT IUIAutomationElement3_get_CachedIsContentElement(IUIAutomationElement3* This,WINBOOL *retVal) {
10985    return This->lpVtbl->get_CachedIsContentElement(This,retVal);
10986}
10987static inline HRESULT IUIAutomationElement3_get_CachedIsPassword(IUIAutomationElement3* This,WINBOOL *retVal) {
10988    return This->lpVtbl->get_CachedIsPassword(This,retVal);
10989}
10990static inline HRESULT IUIAutomationElement3_get_CachedNativeWindowHandle(IUIAutomationElement3* This,UIA_HWND *retVal) {
10991    return This->lpVtbl->get_CachedNativeWindowHandle(This,retVal);
10992}
10993static inline HRESULT IUIAutomationElement3_get_CachedItemType(IUIAutomationElement3* This,BSTR *retVal) {
10994    return This->lpVtbl->get_CachedItemType(This,retVal);
10995}
10996static inline HRESULT IUIAutomationElement3_get_CachedIsOffscreen(IUIAutomationElement3* This,WINBOOL *retVal) {
10997    return This->lpVtbl->get_CachedIsOffscreen(This,retVal);
10998}
10999static inline HRESULT IUIAutomationElement3_get_CachedOrientation(IUIAutomationElement3* This,enum OrientationType *retVal) {
11000    return This->lpVtbl->get_CachedOrientation(This,retVal);
11001}
11002static inline HRESULT IUIAutomationElement3_get_CachedFrameworkId(IUIAutomationElement3* This,BSTR *retVal) {
11003    return This->lpVtbl->get_CachedFrameworkId(This,retVal);
11004}
11005static inline HRESULT IUIAutomationElement3_get_CachedIsRequiredForForm(IUIAutomationElement3* This,WINBOOL *retVal) {
11006    return This->lpVtbl->get_CachedIsRequiredForForm(This,retVal);
11007}
11008static inline HRESULT IUIAutomationElement3_get_CachedItemStatus(IUIAutomationElement3* This,BSTR *retVal) {
11009    return This->lpVtbl->get_CachedItemStatus(This,retVal);
11010}
11011static inline HRESULT IUIAutomationElement3_get_CachedBoundingRectangle(IUIAutomationElement3* This,RECT *retVal) {
11012    return This->lpVtbl->get_CachedBoundingRectangle(This,retVal);
11013}
11014static inline HRESULT IUIAutomationElement3_get_CachedLabeledBy(IUIAutomationElement3* This,IUIAutomationElement **retVal) {
11015    return This->lpVtbl->get_CachedLabeledBy(This,retVal);
11016}
11017static inline HRESULT IUIAutomationElement3_get_CachedAriaRole(IUIAutomationElement3* This,BSTR *retVal) {
11018    return This->lpVtbl->get_CachedAriaRole(This,retVal);
11019}
11020static inline HRESULT IUIAutomationElement3_get_CachedAriaProperties(IUIAutomationElement3* This,BSTR *retVal) {
11021    return This->lpVtbl->get_CachedAriaProperties(This,retVal);
11022}
11023static inline HRESULT IUIAutomationElement3_get_CachedIsDataValidForForm(IUIAutomationElement3* This,WINBOOL *retVal) {
11024    return This->lpVtbl->get_CachedIsDataValidForForm(This,retVal);
11025}
11026static inline HRESULT IUIAutomationElement3_get_CachedControllerFor(IUIAutomationElement3* This,IUIAutomationElementArray **retVal) {
11027    return This->lpVtbl->get_CachedControllerFor(This,retVal);
11028}
11029static inline HRESULT IUIAutomationElement3_get_CachedDescribedBy(IUIAutomationElement3* This,IUIAutomationElementArray **retVal) {
11030    return This->lpVtbl->get_CachedDescribedBy(This,retVal);
11031}
11032static inline HRESULT IUIAutomationElement3_get_CachedFlowsTo(IUIAutomationElement3* This,IUIAutomationElementArray **retVal) {
11033    return This->lpVtbl->get_CachedFlowsTo(This,retVal);
11034}
11035static inline HRESULT IUIAutomationElement3_get_CachedProviderDescription(IUIAutomationElement3* This,BSTR *retVal) {
11036    return This->lpVtbl->get_CachedProviderDescription(This,retVal);
11037}
11038static inline HRESULT IUIAutomationElement3_GetClickablePoint(IUIAutomationElement3* This,POINT *clickable,WINBOOL *gotClickable) {
11039    return This->lpVtbl->GetClickablePoint(This,clickable,gotClickable);
11040}
11041/*** IUIAutomationElement2 methods ***/
11042static inline HRESULT IUIAutomationElement3_get_CurrentOptimizeForVisualContent(IUIAutomationElement3* This,WINBOOL *retVal) {
11043    return This->lpVtbl->get_CurrentOptimizeForVisualContent(This,retVal);
11044}
11045static inline HRESULT IUIAutomationElement3_get_CachedOptimizeForVisualContent(IUIAutomationElement3* This,WINBOOL *retVal) {
11046    return This->lpVtbl->get_CachedOptimizeForVisualContent(This,retVal);
11047}
11048static inline HRESULT IUIAutomationElement3_get_CurrentLiveSetting(IUIAutomationElement3* This,enum LiveSetting *retVal) {
11049    return This->lpVtbl->get_CurrentLiveSetting(This,retVal);
11050}
11051static inline HRESULT IUIAutomationElement3_get_CachedLiveSetting(IUIAutomationElement3* This,enum LiveSetting *retVal) {
11052    return This->lpVtbl->get_CachedLiveSetting(This,retVal);
11053}
11054static inline HRESULT IUIAutomationElement3_get_CurrentFlowsFrom(IUIAutomationElement3* This,IUIAutomationElementArray **retVal) {
11055    return This->lpVtbl->get_CurrentFlowsFrom(This,retVal);
11056}
11057static inline HRESULT IUIAutomationElement3_get_CachedFlowsFrom(IUIAutomationElement3* This,IUIAutomationElementArray **retVal) {
11058    return This->lpVtbl->get_CachedFlowsFrom(This,retVal);
11059}
11060/*** IUIAutomationElement3 methods ***/
11061static inline HRESULT IUIAutomationElement3_ShowContextMenu(IUIAutomationElement3* This) {
11062    return This->lpVtbl->ShowContextMenu(This);
11063}
11064static inline HRESULT IUIAutomationElement3_get_CurrentIsPeripheral(IUIAutomationElement3* This,WINBOOL *retVal) {
11065    return This->lpVtbl->get_CurrentIsPeripheral(This,retVal);
11066}
11067static inline HRESULT IUIAutomationElement3_get_CachedIsPeripheral(IUIAutomationElement3* This,WINBOOL *retVal) {
11068    return This->lpVtbl->get_CachedIsPeripheral(This,retVal);
11069}
11070#endif
11071#endif
11072
11073#endif
11074
11075
11076#endif  /* __IUIAutomationElement3_INTERFACE_DEFINED__ */
11077
11078/*****************************************************************************
11079 * IUIAutomationElement4 interface
11080 */
11081#ifndef __IUIAutomationElement4_INTERFACE_DEFINED__
11082#define __IUIAutomationElement4_INTERFACE_DEFINED__
11083
11084DEFINE_GUID(IID_IUIAutomationElement4, 0x3b6e233c, 0x52fb, 0x4063, 0xa4,0xc9, 0x77,0xc0,0x75,0xc2,0xa0,0x6b);
11085#if defined(__cplusplus) && !defined(CINTERFACE)
11086MIDL_INTERFACE("3b6e233c-52fb-4063-a4c9-77c075c2a06b")
11087IUIAutomationElement4 : public IUIAutomationElement3
11088{
11089    virtual HRESULT STDMETHODCALLTYPE get_CurrentPositionInSet(
11090        int *retVal) = 0;
11091
11092    virtual HRESULT STDMETHODCALLTYPE get_CurrentSizeOfSet(
11093        int *retVal) = 0;
11094
11095    virtual HRESULT STDMETHODCALLTYPE get_CurrentLevel(
11096        int *retVal) = 0;
11097
11098    virtual HRESULT STDMETHODCALLTYPE get_CurrentAnnotationTypes(
11099        SAFEARRAY **retVal) = 0;
11100
11101    virtual HRESULT STDMETHODCALLTYPE get_CurrentAnnotationObjects(
11102        IUIAutomationElementArray **retVal) = 0;
11103
11104    virtual HRESULT STDMETHODCALLTYPE get_CachedPositionInSet(
11105        int *retVal) = 0;
11106
11107    virtual HRESULT STDMETHODCALLTYPE get_CachedSizeOfSet(
11108        int *retVal) = 0;
11109
11110    virtual HRESULT STDMETHODCALLTYPE get_CachedLevel(
11111        int *retVal) = 0;
11112
11113    virtual HRESULT STDMETHODCALLTYPE get_CachedAnnotationTypes(
11114        SAFEARRAY **retVal) = 0;
11115
11116    virtual HRESULT STDMETHODCALLTYPE get_CachedAnnotationObjects(
11117        IUIAutomationElementArray **retVal) = 0;
11118
11119};
11120#ifdef __CRT_UUID_DECL
11121__CRT_UUID_DECL(IUIAutomationElement4, 0x3b6e233c, 0x52fb, 0x4063, 0xa4,0xc9, 0x77,0xc0,0x75,0xc2,0xa0,0x6b)
11122#endif
11123#else
11124typedef struct IUIAutomationElement4Vtbl {
11125    BEGIN_INTERFACE
11126
11127    /*** IUnknown methods ***/
11128    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
11129        IUIAutomationElement4 *This,
11130        REFIID riid,
11131        void **ppvObject);
11132
11133    ULONG (STDMETHODCALLTYPE *AddRef)(
11134        IUIAutomationElement4 *This);
11135
11136    ULONG (STDMETHODCALLTYPE *Release)(
11137        IUIAutomationElement4 *This);
11138
11139    /*** IUIAutomationElement methods ***/
11140    HRESULT (STDMETHODCALLTYPE *SetFocus)(
11141        IUIAutomationElement4 *This);
11142
11143    HRESULT (STDMETHODCALLTYPE *GetRuntimeId)(
11144        IUIAutomationElement4 *This,
11145        SAFEARRAY **runtimeId);
11146
11147    HRESULT (STDMETHODCALLTYPE *FindFirst)(
11148        IUIAutomationElement4 *This,
11149        enum TreeScope scope,
11150        IUIAutomationCondition *condition,
11151        IUIAutomationElement **found);
11152
11153    HRESULT (STDMETHODCALLTYPE *FindAll)(
11154        IUIAutomationElement4 *This,
11155        enum TreeScope scope,
11156        IUIAutomationCondition *condition,
11157        IUIAutomationElementArray **found);
11158
11159    HRESULT (STDMETHODCALLTYPE *FindFirstBuildCache)(
11160        IUIAutomationElement4 *This,
11161        enum TreeScope scope,
11162        IUIAutomationCondition *condition,
11163        IUIAutomationCacheRequest *cacheRequest,
11164        IUIAutomationElement **found);
11165
11166    HRESULT (STDMETHODCALLTYPE *FindAllBuildCache)(
11167        IUIAutomationElement4 *This,
11168        enum TreeScope scope,
11169        IUIAutomationCondition *condition,
11170        IUIAutomationCacheRequest *cacheRequest,
11171        IUIAutomationElementArray **found);
11172
11173    HRESULT (STDMETHODCALLTYPE *BuildUpdatedCache)(
11174        IUIAutomationElement4 *This,
11175        IUIAutomationCacheRequest *cacheRequest,
11176        IUIAutomationElement **updatedElement);
11177
11178    HRESULT (STDMETHODCALLTYPE *GetCurrentPropertyValue)(
11179        IUIAutomationElement4 *This,
11180        PROPERTYID propertyId,
11181        VARIANT *retVal);
11182
11183    HRESULT (STDMETHODCALLTYPE *GetCurrentPropertyValueEx)(
11184        IUIAutomationElement4 *This,
11185        PROPERTYID propertyId,
11186        WINBOOL ignoreDefaultValue,
11187        VARIANT *retVal);
11188
11189    HRESULT (STDMETHODCALLTYPE *GetCachedPropertyValue)(
11190        IUIAutomationElement4 *This,
11191        PROPERTYID propertyId,
11192        VARIANT *retVal);
11193
11194    HRESULT (STDMETHODCALLTYPE *GetCachedPropertyValueEx)(
11195        IUIAutomationElement4 *This,
11196        PROPERTYID propertyId,
11197        WINBOOL ignoreDefaultValue,
11198        VARIANT *retVal);
11199
11200    HRESULT (STDMETHODCALLTYPE *GetCurrentPatternAs)(
11201        IUIAutomationElement4 *This,
11202        PATTERNID patternId,
11203        REFIID riid,
11204        void **patternObject);
11205
11206    HRESULT (STDMETHODCALLTYPE *GetCachedPatternAs)(
11207        IUIAutomationElement4 *This,
11208        PATTERNID patternId,
11209        REFIID riid,
11210        void **patternObject);
11211
11212    HRESULT (STDMETHODCALLTYPE *GetCurrentPattern)(
11213        IUIAutomationElement4 *This,
11214        PATTERNID patternId,
11215        IUnknown **patternObject);
11216
11217    HRESULT (STDMETHODCALLTYPE *GetCachedPattern)(
11218        IUIAutomationElement4 *This,
11219        PATTERNID patternId,
11220        IUnknown **patternObject);
11221
11222    HRESULT (STDMETHODCALLTYPE *GetCachedParent)(
11223        IUIAutomationElement4 *This,
11224        IUIAutomationElement **parent);
11225
11226    HRESULT (STDMETHODCALLTYPE *GetCachedChildren)(
11227        IUIAutomationElement4 *This,
11228        IUIAutomationElementArray **children);
11229
11230    HRESULT (STDMETHODCALLTYPE *get_CurrentProcessId)(
11231        IUIAutomationElement4 *This,
11232        int *retVal);
11233
11234    HRESULT (STDMETHODCALLTYPE *get_CurrentControlType)(
11235        IUIAutomationElement4 *This,
11236        CONTROLTYPEID *retVal);
11237
11238    HRESULT (STDMETHODCALLTYPE *get_CurrentLocalizedControlType)(
11239        IUIAutomationElement4 *This,
11240        BSTR *retVal);
11241
11242    HRESULT (STDMETHODCALLTYPE *get_CurrentName)(
11243        IUIAutomationElement4 *This,
11244        BSTR *retVal);
11245
11246    HRESULT (STDMETHODCALLTYPE *get_CurrentAcceleratorKey)(
11247        IUIAutomationElement4 *This,
11248        BSTR *retVal);
11249
11250    HRESULT (STDMETHODCALLTYPE *get_CurrentAccessKey)(
11251        IUIAutomationElement4 *This,
11252        BSTR *retVal);
11253
11254    HRESULT (STDMETHODCALLTYPE *get_CurrentHasKeyboardFocus)(
11255        IUIAutomationElement4 *This,
11256        WINBOOL *retVal);
11257
11258    HRESULT (STDMETHODCALLTYPE *get_CurrentIsKeyboardFocusable)(
11259        IUIAutomationElement4 *This,
11260        WINBOOL *retVal);
11261
11262    HRESULT (STDMETHODCALLTYPE *get_CurrentIsEnabled)(
11263        IUIAutomationElement4 *This,
11264        WINBOOL *retVal);
11265
11266    HRESULT (STDMETHODCALLTYPE *get_CurrentAutomationId)(
11267        IUIAutomationElement4 *This,
11268        BSTR *retVal);
11269
11270    HRESULT (STDMETHODCALLTYPE *get_CurrentClassName)(
11271        IUIAutomationElement4 *This,
11272        BSTR *retVal);
11273
11274    HRESULT (STDMETHODCALLTYPE *get_CurrentHelpText)(
11275        IUIAutomationElement4 *This,
11276        BSTR *retVal);
11277
11278    HRESULT (STDMETHODCALLTYPE *get_CurrentCulture)(
11279        IUIAutomationElement4 *This,
11280        int *retVal);
11281
11282    HRESULT (STDMETHODCALLTYPE *get_CurrentIsControlElement)(
11283        IUIAutomationElement4 *This,
11284        WINBOOL *retVal);
11285
11286    HRESULT (STDMETHODCALLTYPE *get_CurrentIsContentElement)(
11287        IUIAutomationElement4 *This,
11288        WINBOOL *retVal);
11289
11290    HRESULT (STDMETHODCALLTYPE *get_CurrentIsPassword)(
11291        IUIAutomationElement4 *This,
11292        WINBOOL *retVal);
11293
11294    HRESULT (STDMETHODCALLTYPE *get_CurrentNativeWindowHandle)(
11295        IUIAutomationElement4 *This,
11296        UIA_HWND *retVal);
11297
11298    HRESULT (STDMETHODCALLTYPE *get_CurrentItemType)(
11299        IUIAutomationElement4 *This,
11300        BSTR *retVal);
11301
11302    HRESULT (STDMETHODCALLTYPE *get_CurrentIsOffscreen)(
11303        IUIAutomationElement4 *This,
11304        WINBOOL *retVal);
11305
11306    HRESULT (STDMETHODCALLTYPE *get_CurrentOrientation)(
11307        IUIAutomationElement4 *This,
11308        enum OrientationType *retVal);
11309
11310    HRESULT (STDMETHODCALLTYPE *get_CurrentFrameworkId)(
11311        IUIAutomationElement4 *This,
11312        BSTR *retVal);
11313
11314    HRESULT (STDMETHODCALLTYPE *get_CurrentIsRequiredForForm)(
11315        IUIAutomationElement4 *This,
11316        WINBOOL *retVal);
11317
11318    HRESULT (STDMETHODCALLTYPE *get_CurrentItemStatus)(
11319        IUIAutomationElement4 *This,
11320        BSTR *retVal);
11321
11322    HRESULT (STDMETHODCALLTYPE *get_CurrentBoundingRectangle)(
11323        IUIAutomationElement4 *This,
11324        RECT *retVal);
11325
11326    HRESULT (STDMETHODCALLTYPE *get_CurrentLabeledBy)(
11327        IUIAutomationElement4 *This,
11328        IUIAutomationElement **retVal);
11329
11330    HRESULT (STDMETHODCALLTYPE *get_CurrentAriaRole)(
11331        IUIAutomationElement4 *This,
11332        BSTR *retVal);
11333
11334    HRESULT (STDMETHODCALLTYPE *get_CurrentAriaProperties)(
11335        IUIAutomationElement4 *This,
11336        BSTR *retVal);
11337
11338    HRESULT (STDMETHODCALLTYPE *get_CurrentIsDataValidForForm)(
11339        IUIAutomationElement4 *This,
11340        WINBOOL *retVal);
11341
11342    HRESULT (STDMETHODCALLTYPE *get_CurrentControllerFor)(
11343        IUIAutomationElement4 *This,
11344        IUIAutomationElementArray **retVal);
11345
11346    HRESULT (STDMETHODCALLTYPE *get_CurrentDescribedBy)(
11347        IUIAutomationElement4 *This,
11348        IUIAutomationElementArray **retVal);
11349
11350    HRESULT (STDMETHODCALLTYPE *get_CurrentFlowsTo)(
11351        IUIAutomationElement4 *This,
11352        IUIAutomationElementArray **retVal);
11353
11354    HRESULT (STDMETHODCALLTYPE *get_CurrentProviderDescription)(
11355        IUIAutomationElement4 *This,
11356        BSTR *retVal);
11357
11358    HRESULT (STDMETHODCALLTYPE *get_CachedProcessId)(
11359        IUIAutomationElement4 *This,
11360        int *retVal);
11361
11362    HRESULT (STDMETHODCALLTYPE *get_CachedControlType)(
11363        IUIAutomationElement4 *This,
11364        CONTROLTYPEID *retVal);
11365
11366    HRESULT (STDMETHODCALLTYPE *get_CachedLocalizedControlType)(
11367        IUIAutomationElement4 *This,
11368        BSTR *retVal);
11369
11370    HRESULT (STDMETHODCALLTYPE *get_CachedName)(
11371        IUIAutomationElement4 *This,
11372        BSTR *retVal);
11373
11374    HRESULT (STDMETHODCALLTYPE *get_CachedAcceleratorKey)(
11375        IUIAutomationElement4 *This,
11376        BSTR *retVal);
11377
11378    HRESULT (STDMETHODCALLTYPE *get_CachedAccessKey)(
11379        IUIAutomationElement4 *This,
11380        BSTR *retVal);
11381
11382    HRESULT (STDMETHODCALLTYPE *get_CachedHasKeyboardFocus)(
11383        IUIAutomationElement4 *This,
11384        WINBOOL *retVal);
11385
11386    HRESULT (STDMETHODCALLTYPE *get_CachedIsKeyboardFocusable)(
11387        IUIAutomationElement4 *This,
11388        WINBOOL *retVal);
11389
11390    HRESULT (STDMETHODCALLTYPE *get_CachedIsEnabled)(
11391        IUIAutomationElement4 *This,
11392        WINBOOL *retVal);
11393
11394    HRESULT (STDMETHODCALLTYPE *get_CachedAutomationId)(
11395        IUIAutomationElement4 *This,
11396        BSTR *retVal);
11397
11398    HRESULT (STDMETHODCALLTYPE *get_CachedClassName)(
11399        IUIAutomationElement4 *This,
11400        BSTR *retVal);
11401
11402    HRESULT (STDMETHODCALLTYPE *get_CachedHelpText)(
11403        IUIAutomationElement4 *This,
11404        BSTR *retVal);
11405
11406    HRESULT (STDMETHODCALLTYPE *get_CachedCulture)(
11407        IUIAutomationElement4 *This,
11408        int *retVal);
11409
11410    HRESULT (STDMETHODCALLTYPE *get_CachedIsControlElement)(
11411        IUIAutomationElement4 *This,
11412        WINBOOL *retVal);
11413
11414    HRESULT (STDMETHODCALLTYPE *get_CachedIsContentElement)(
11415        IUIAutomationElement4 *This,
11416        WINBOOL *retVal);
11417
11418    HRESULT (STDMETHODCALLTYPE *get_CachedIsPassword)(
11419        IUIAutomationElement4 *This,
11420        WINBOOL *retVal);
11421
11422    HRESULT (STDMETHODCALLTYPE *get_CachedNativeWindowHandle)(
11423        IUIAutomationElement4 *This,
11424        UIA_HWND *retVal);
11425
11426    HRESULT (STDMETHODCALLTYPE *get_CachedItemType)(
11427        IUIAutomationElement4 *This,
11428        BSTR *retVal);
11429
11430    HRESULT (STDMETHODCALLTYPE *get_CachedIsOffscreen)(
11431        IUIAutomationElement4 *This,
11432        WINBOOL *retVal);
11433
11434    HRESULT (STDMETHODCALLTYPE *get_CachedOrientation)(
11435        IUIAutomationElement4 *This,
11436        enum OrientationType *retVal);
11437
11438    HRESULT (STDMETHODCALLTYPE *get_CachedFrameworkId)(
11439        IUIAutomationElement4 *This,
11440        BSTR *retVal);
11441
11442    HRESULT (STDMETHODCALLTYPE *get_CachedIsRequiredForForm)(
11443        IUIAutomationElement4 *This,
11444        WINBOOL *retVal);
11445
11446    HRESULT (STDMETHODCALLTYPE *get_CachedItemStatus)(
11447        IUIAutomationElement4 *This,
11448        BSTR *retVal);
11449
11450    HRESULT (STDMETHODCALLTYPE *get_CachedBoundingRectangle)(
11451        IUIAutomationElement4 *This,
11452        RECT *retVal);
11453
11454    HRESULT (STDMETHODCALLTYPE *get_CachedLabeledBy)(
11455        IUIAutomationElement4 *This,
11456        IUIAutomationElement **retVal);
11457
11458    HRESULT (STDMETHODCALLTYPE *get_CachedAriaRole)(
11459        IUIAutomationElement4 *This,
11460        BSTR *retVal);
11461
11462    HRESULT (STDMETHODCALLTYPE *get_CachedAriaProperties)(
11463        IUIAutomationElement4 *This,
11464        BSTR *retVal);
11465
11466    HRESULT (STDMETHODCALLTYPE *get_CachedIsDataValidForForm)(
11467        IUIAutomationElement4 *This,
11468        WINBOOL *retVal);
11469
11470    HRESULT (STDMETHODCALLTYPE *get_CachedControllerFor)(
11471        IUIAutomationElement4 *This,
11472        IUIAutomationElementArray **retVal);
11473
11474    HRESULT (STDMETHODCALLTYPE *get_CachedDescribedBy)(
11475        IUIAutomationElement4 *This,
11476        IUIAutomationElementArray **retVal);
11477
11478    HRESULT (STDMETHODCALLTYPE *get_CachedFlowsTo)(
11479        IUIAutomationElement4 *This,
11480        IUIAutomationElementArray **retVal);
11481
11482    HRESULT (STDMETHODCALLTYPE *get_CachedProviderDescription)(
11483        IUIAutomationElement4 *This,
11484        BSTR *retVal);
11485
11486    HRESULT (STDMETHODCALLTYPE *GetClickablePoint)(
11487        IUIAutomationElement4 *This,
11488        POINT *clickable,
11489        WINBOOL *gotClickable);
11490
11491    /*** IUIAutomationElement2 methods ***/
11492    HRESULT (STDMETHODCALLTYPE *get_CurrentOptimizeForVisualContent)(
11493        IUIAutomationElement4 *This,
11494        WINBOOL *retVal);
11495
11496    HRESULT (STDMETHODCALLTYPE *get_CachedOptimizeForVisualContent)(
11497        IUIAutomationElement4 *This,
11498        WINBOOL *retVal);
11499
11500    HRESULT (STDMETHODCALLTYPE *get_CurrentLiveSetting)(
11501        IUIAutomationElement4 *This,
11502        enum LiveSetting *retVal);
11503
11504    HRESULT (STDMETHODCALLTYPE *get_CachedLiveSetting)(
11505        IUIAutomationElement4 *This,
11506        enum LiveSetting *retVal);
11507
11508    HRESULT (STDMETHODCALLTYPE *get_CurrentFlowsFrom)(
11509        IUIAutomationElement4 *This,
11510        IUIAutomationElementArray **retVal);
11511
11512    HRESULT (STDMETHODCALLTYPE *get_CachedFlowsFrom)(
11513        IUIAutomationElement4 *This,
11514        IUIAutomationElementArray **retVal);
11515
11516    /*** IUIAutomationElement3 methods ***/
11517    HRESULT (STDMETHODCALLTYPE *ShowContextMenu)(
11518        IUIAutomationElement4 *This);
11519
11520    HRESULT (STDMETHODCALLTYPE *get_CurrentIsPeripheral)(
11521        IUIAutomationElement4 *This,
11522        WINBOOL *retVal);
11523
11524    HRESULT (STDMETHODCALLTYPE *get_CachedIsPeripheral)(
11525        IUIAutomationElement4 *This,
11526        WINBOOL *retVal);
11527
11528    /*** IUIAutomationElement4 methods ***/
11529    HRESULT (STDMETHODCALLTYPE *get_CurrentPositionInSet)(
11530        IUIAutomationElement4 *This,
11531        int *retVal);
11532
11533    HRESULT (STDMETHODCALLTYPE *get_CurrentSizeOfSet)(
11534        IUIAutomationElement4 *This,
11535        int *retVal);
11536
11537    HRESULT (STDMETHODCALLTYPE *get_CurrentLevel)(
11538        IUIAutomationElement4 *This,
11539        int *retVal);
11540
11541    HRESULT (STDMETHODCALLTYPE *get_CurrentAnnotationTypes)(
11542        IUIAutomationElement4 *This,
11543        SAFEARRAY **retVal);
11544
11545    HRESULT (STDMETHODCALLTYPE *get_CurrentAnnotationObjects)(
11546        IUIAutomationElement4 *This,
11547        IUIAutomationElementArray **retVal);
11548
11549    HRESULT (STDMETHODCALLTYPE *get_CachedPositionInSet)(
11550        IUIAutomationElement4 *This,
11551        int *retVal);
11552
11553    HRESULT (STDMETHODCALLTYPE *get_CachedSizeOfSet)(
11554        IUIAutomationElement4 *This,
11555        int *retVal);
11556
11557    HRESULT (STDMETHODCALLTYPE *get_CachedLevel)(
11558        IUIAutomationElement4 *This,
11559        int *retVal);
11560
11561    HRESULT (STDMETHODCALLTYPE *get_CachedAnnotationTypes)(
11562        IUIAutomationElement4 *This,
11563        SAFEARRAY **retVal);
11564
11565    HRESULT (STDMETHODCALLTYPE *get_CachedAnnotationObjects)(
11566        IUIAutomationElement4 *This,
11567        IUIAutomationElementArray **retVal);
11568
11569    END_INTERFACE
11570} IUIAutomationElement4Vtbl;
11571
11572interface IUIAutomationElement4 {
11573    CONST_VTBL IUIAutomationElement4Vtbl* lpVtbl;
11574};
11575
11576#ifdef COBJMACROS
11577#ifndef WIDL_C_INLINE_WRAPPERS
11578/*** IUnknown methods ***/
11579#define IUIAutomationElement4_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
11580#define IUIAutomationElement4_AddRef(This) (This)->lpVtbl->AddRef(This)
11581#define IUIAutomationElement4_Release(This) (This)->lpVtbl->Release(This)
11582/*** IUIAutomationElement methods ***/
11583#define IUIAutomationElement4_SetFocus(This) (This)->lpVtbl->SetFocus(This)
11584#define IUIAutomationElement4_GetRuntimeId(This,runtimeId) (This)->lpVtbl->GetRuntimeId(This,runtimeId)
11585#define IUIAutomationElement4_FindFirst(This,scope,condition,found) (This)->lpVtbl->FindFirst(This,scope,condition,found)
11586#define IUIAutomationElement4_FindAll(This,scope,condition,found) (This)->lpVtbl->FindAll(This,scope,condition,found)
11587#define IUIAutomationElement4_FindFirstBuildCache(This,scope,condition,cacheRequest,found) (This)->lpVtbl->FindFirstBuildCache(This,scope,condition,cacheRequest,found)
11588#define IUIAutomationElement4_FindAllBuildCache(This,scope,condition,cacheRequest,found) (This)->lpVtbl->FindAllBuildCache(This,scope,condition,cacheRequest,found)
11589#define IUIAutomationElement4_BuildUpdatedCache(This,cacheRequest,updatedElement) (This)->lpVtbl->BuildUpdatedCache(This,cacheRequest,updatedElement)
11590#define IUIAutomationElement4_GetCurrentPropertyValue(This,propertyId,retVal) (This)->lpVtbl->GetCurrentPropertyValue(This,propertyId,retVal)
11591#define IUIAutomationElement4_GetCurrentPropertyValueEx(This,propertyId,ignoreDefaultValue,retVal) (This)->lpVtbl->GetCurrentPropertyValueEx(This,propertyId,ignoreDefaultValue,retVal)
11592#define IUIAutomationElement4_GetCachedPropertyValue(This,propertyId,retVal) (This)->lpVtbl->GetCachedPropertyValue(This,propertyId,retVal)
11593#define IUIAutomationElement4_GetCachedPropertyValueEx(This,propertyId,ignoreDefaultValue,retVal) (This)->lpVtbl->GetCachedPropertyValueEx(This,propertyId,ignoreDefaultValue,retVal)
11594#define IUIAutomationElement4_GetCurrentPatternAs(This,patternId,riid,patternObject) (This)->lpVtbl->GetCurrentPatternAs(This,patternId,riid,patternObject)
11595#define IUIAutomationElement4_GetCachedPatternAs(This,patternId,riid,patternObject) (This)->lpVtbl->GetCachedPatternAs(This,patternId,riid,patternObject)
11596#define IUIAutomationElement4_GetCurrentPattern(This,patternId,patternObject) (This)->lpVtbl->GetCurrentPattern(This,patternId,patternObject)
11597#define IUIAutomationElement4_GetCachedPattern(This,patternId,patternObject) (This)->lpVtbl->GetCachedPattern(This,patternId,patternObject)
11598#define IUIAutomationElement4_GetCachedParent(This,parent) (This)->lpVtbl->GetCachedParent(This,parent)
11599#define IUIAutomationElement4_GetCachedChildren(This,children) (This)->lpVtbl->GetCachedChildren(This,children)
11600#define IUIAutomationElement4_get_CurrentProcessId(This,retVal) (This)->lpVtbl->get_CurrentProcessId(This,retVal)
11601#define IUIAutomationElement4_get_CurrentControlType(This,retVal) (This)->lpVtbl->get_CurrentControlType(This,retVal)
11602#define IUIAutomationElement4_get_CurrentLocalizedControlType(This,retVal) (This)->lpVtbl->get_CurrentLocalizedControlType(This,retVal)
11603#define IUIAutomationElement4_get_CurrentName(This,retVal) (This)->lpVtbl->get_CurrentName(This,retVal)
11604#define IUIAutomationElement4_get_CurrentAcceleratorKey(This,retVal) (This)->lpVtbl->get_CurrentAcceleratorKey(This,retVal)
11605#define IUIAutomationElement4_get_CurrentAccessKey(This,retVal) (This)->lpVtbl->get_CurrentAccessKey(This,retVal)
11606#define IUIAutomationElement4_get_CurrentHasKeyboardFocus(This,retVal) (This)->lpVtbl->get_CurrentHasKeyboardFocus(This,retVal)
11607#define IUIAutomationElement4_get_CurrentIsKeyboardFocusable(This,retVal) (This)->lpVtbl->get_CurrentIsKeyboardFocusable(This,retVal)
11608#define IUIAutomationElement4_get_CurrentIsEnabled(This,retVal) (This)->lpVtbl->get_CurrentIsEnabled(This,retVal)
11609#define IUIAutomationElement4_get_CurrentAutomationId(This,retVal) (This)->lpVtbl->get_CurrentAutomationId(This,retVal)
11610#define IUIAutomationElement4_get_CurrentClassName(This,retVal) (This)->lpVtbl->get_CurrentClassName(This,retVal)
11611#define IUIAutomationElement4_get_CurrentHelpText(This,retVal) (This)->lpVtbl->get_CurrentHelpText(This,retVal)
11612#define IUIAutomationElement4_get_CurrentCulture(This,retVal) (This)->lpVtbl->get_CurrentCulture(This,retVal)
11613#define IUIAutomationElement4_get_CurrentIsControlElement(This,retVal) (This)->lpVtbl->get_CurrentIsControlElement(This,retVal)
11614#define IUIAutomationElement4_get_CurrentIsContentElement(This,retVal) (This)->lpVtbl->get_CurrentIsContentElement(This,retVal)
11615#define IUIAutomationElement4_get_CurrentIsPassword(This,retVal) (This)->lpVtbl->get_CurrentIsPassword(This,retVal)
11616#define IUIAutomationElement4_get_CurrentNativeWindowHandle(This,retVal) (This)->lpVtbl->get_CurrentNativeWindowHandle(This,retVal)
11617#define IUIAutomationElement4_get_CurrentItemType(This,retVal) (This)->lpVtbl->get_CurrentItemType(This,retVal)
11618#define IUIAutomationElement4_get_CurrentIsOffscreen(This,retVal) (This)->lpVtbl->get_CurrentIsOffscreen(This,retVal)
11619#define IUIAutomationElement4_get_CurrentOrientation(This,retVal) (This)->lpVtbl->get_CurrentOrientation(This,retVal)
11620#define IUIAutomationElement4_get_CurrentFrameworkId(This,retVal) (This)->lpVtbl->get_CurrentFrameworkId(This,retVal)
11621#define IUIAutomationElement4_get_CurrentIsRequiredForForm(This,retVal) (This)->lpVtbl->get_CurrentIsRequiredForForm(This,retVal)
11622#define IUIAutomationElement4_get_CurrentItemStatus(This,retVal) (This)->lpVtbl->get_CurrentItemStatus(This,retVal)
11623#define IUIAutomationElement4_get_CurrentBoundingRectangle(This,retVal) (This)->lpVtbl->get_CurrentBoundingRectangle(This,retVal)
11624#define IUIAutomationElement4_get_CurrentLabeledBy(This,retVal) (This)->lpVtbl->get_CurrentLabeledBy(This,retVal)
11625#define IUIAutomationElement4_get_CurrentAriaRole(This,retVal) (This)->lpVtbl->get_CurrentAriaRole(This,retVal)
11626#define IUIAutomationElement4_get_CurrentAriaProperties(This,retVal) (This)->lpVtbl->get_CurrentAriaProperties(This,retVal)
11627#define IUIAutomationElement4_get_CurrentIsDataValidForForm(This,retVal) (This)->lpVtbl->get_CurrentIsDataValidForForm(This,retVal)
11628#define IUIAutomationElement4_get_CurrentControllerFor(This,retVal) (This)->lpVtbl->get_CurrentControllerFor(This,retVal)
11629#define IUIAutomationElement4_get_CurrentDescribedBy(This,retVal) (This)->lpVtbl->get_CurrentDescribedBy(This,retVal)
11630#define IUIAutomationElement4_get_CurrentFlowsTo(This,retVal) (This)->lpVtbl->get_CurrentFlowsTo(This,retVal)
11631#define IUIAutomationElement4_get_CurrentProviderDescription(This,retVal) (This)->lpVtbl->get_CurrentProviderDescription(This,retVal)
11632#define IUIAutomationElement4_get_CachedProcessId(This,retVal) (This)->lpVtbl->get_CachedProcessId(This,retVal)
11633#define IUIAutomationElement4_get_CachedControlType(This,retVal) (This)->lpVtbl->get_CachedControlType(This,retVal)
11634#define IUIAutomationElement4_get_CachedLocalizedControlType(This,retVal) (This)->lpVtbl->get_CachedLocalizedControlType(This,retVal)
11635#define IUIAutomationElement4_get_CachedName(This,retVal) (This)->lpVtbl->get_CachedName(This,retVal)
11636#define IUIAutomationElement4_get_CachedAcceleratorKey(This,retVal) (This)->lpVtbl->get_CachedAcceleratorKey(This,retVal)
11637#define IUIAutomationElement4_get_CachedAccessKey(This,retVal) (This)->lpVtbl->get_CachedAccessKey(This,retVal)
11638#define IUIAutomationElement4_get_CachedHasKeyboardFocus(This,retVal) (This)->lpVtbl->get_CachedHasKeyboardFocus(This,retVal)
11639#define IUIAutomationElement4_get_CachedIsKeyboardFocusable(This,retVal) (This)->lpVtbl->get_CachedIsKeyboardFocusable(This,retVal)
11640#define IUIAutomationElement4_get_CachedIsEnabled(This,retVal) (This)->lpVtbl->get_CachedIsEnabled(This,retVal)
11641#define IUIAutomationElement4_get_CachedAutomationId(This,retVal) (This)->lpVtbl->get_CachedAutomationId(This,retVal)
11642#define IUIAutomationElement4_get_CachedClassName(This,retVal) (This)->lpVtbl->get_CachedClassName(This,retVal)
11643#define IUIAutomationElement4_get_CachedHelpText(This,retVal) (This)->lpVtbl->get_CachedHelpText(This,retVal)
11644#define IUIAutomationElement4_get_CachedCulture(This,retVal) (This)->lpVtbl->get_CachedCulture(This,retVal)
11645#define IUIAutomationElement4_get_CachedIsControlElement(This,retVal) (This)->lpVtbl->get_CachedIsControlElement(This,retVal)
11646#define IUIAutomationElement4_get_CachedIsContentElement(This,retVal) (This)->lpVtbl->get_CachedIsContentElement(This,retVal)
11647#define IUIAutomationElement4_get_CachedIsPassword(This,retVal) (This)->lpVtbl->get_CachedIsPassword(This,retVal)
11648#define IUIAutomationElement4_get_CachedNativeWindowHandle(This,retVal) (This)->lpVtbl->get_CachedNativeWindowHandle(This,retVal)
11649#define IUIAutomationElement4_get_CachedItemType(This,retVal) (This)->lpVtbl->get_CachedItemType(This,retVal)
11650#define IUIAutomationElement4_get_CachedIsOffscreen(This,retVal) (This)->lpVtbl->get_CachedIsOffscreen(This,retVal)
11651#define IUIAutomationElement4_get_CachedOrientation(This,retVal) (This)->lpVtbl->get_CachedOrientation(This,retVal)
11652#define IUIAutomationElement4_get_CachedFrameworkId(This,retVal) (This)->lpVtbl->get_CachedFrameworkId(This,retVal)
11653#define IUIAutomationElement4_get_CachedIsRequiredForForm(This,retVal) (This)->lpVtbl->get_CachedIsRequiredForForm(This,retVal)
11654#define IUIAutomationElement4_get_CachedItemStatus(This,retVal) (This)->lpVtbl->get_CachedItemStatus(This,retVal)
11655#define IUIAutomationElement4_get_CachedBoundingRectangle(This,retVal) (This)->lpVtbl->get_CachedBoundingRectangle(This,retVal)
11656#define IUIAutomationElement4_get_CachedLabeledBy(This,retVal) (This)->lpVtbl->get_CachedLabeledBy(This,retVal)
11657#define IUIAutomationElement4_get_CachedAriaRole(This,retVal) (This)->lpVtbl->get_CachedAriaRole(This,retVal)
11658#define IUIAutomationElement4_get_CachedAriaProperties(This,retVal) (This)->lpVtbl->get_CachedAriaProperties(This,retVal)
11659#define IUIAutomationElement4_get_CachedIsDataValidForForm(This,retVal) (This)->lpVtbl->get_CachedIsDataValidForForm(This,retVal)
11660#define IUIAutomationElement4_get_CachedControllerFor(This,retVal) (This)->lpVtbl->get_CachedControllerFor(This,retVal)
11661#define IUIAutomationElement4_get_CachedDescribedBy(This,retVal) (This)->lpVtbl->get_CachedDescribedBy(This,retVal)
11662#define IUIAutomationElement4_get_CachedFlowsTo(This,retVal) (This)->lpVtbl->get_CachedFlowsTo(This,retVal)
11663#define IUIAutomationElement4_get_CachedProviderDescription(This,retVal) (This)->lpVtbl->get_CachedProviderDescription(This,retVal)
11664#define IUIAutomationElement4_GetClickablePoint(This,clickable,gotClickable) (This)->lpVtbl->GetClickablePoint(This,clickable,gotClickable)
11665/*** IUIAutomationElement2 methods ***/
11666#define IUIAutomationElement4_get_CurrentOptimizeForVisualContent(This,retVal) (This)->lpVtbl->get_CurrentOptimizeForVisualContent(This,retVal)
11667#define IUIAutomationElement4_get_CachedOptimizeForVisualContent(This,retVal) (This)->lpVtbl->get_CachedOptimizeForVisualContent(This,retVal)
11668#define IUIAutomationElement4_get_CurrentLiveSetting(This,retVal) (This)->lpVtbl->get_CurrentLiveSetting(This,retVal)
11669#define IUIAutomationElement4_get_CachedLiveSetting(This,retVal) (This)->lpVtbl->get_CachedLiveSetting(This,retVal)
11670#define IUIAutomationElement4_get_CurrentFlowsFrom(This,retVal) (This)->lpVtbl->get_CurrentFlowsFrom(This,retVal)
11671#define IUIAutomationElement4_get_CachedFlowsFrom(This,retVal) (This)->lpVtbl->get_CachedFlowsFrom(This,retVal)
11672/*** IUIAutomationElement3 methods ***/
11673#define IUIAutomationElement4_ShowContextMenu(This) (This)->lpVtbl->ShowContextMenu(This)
11674#define IUIAutomationElement4_get_CurrentIsPeripheral(This,retVal) (This)->lpVtbl->get_CurrentIsPeripheral(This,retVal)
11675#define IUIAutomationElement4_get_CachedIsPeripheral(This,retVal) (This)->lpVtbl->get_CachedIsPeripheral(This,retVal)
11676/*** IUIAutomationElement4 methods ***/
11677#define IUIAutomationElement4_get_CurrentPositionInSet(This,retVal) (This)->lpVtbl->get_CurrentPositionInSet(This,retVal)
11678#define IUIAutomationElement4_get_CurrentSizeOfSet(This,retVal) (This)->lpVtbl->get_CurrentSizeOfSet(This,retVal)
11679#define IUIAutomationElement4_get_CurrentLevel(This,retVal) (This)->lpVtbl->get_CurrentLevel(This,retVal)
11680#define IUIAutomationElement4_get_CurrentAnnotationTypes(This,retVal) (This)->lpVtbl->get_CurrentAnnotationTypes(This,retVal)
11681#define IUIAutomationElement4_get_CurrentAnnotationObjects(This,retVal) (This)->lpVtbl->get_CurrentAnnotationObjects(This,retVal)
11682#define IUIAutomationElement4_get_CachedPositionInSet(This,retVal) (This)->lpVtbl->get_CachedPositionInSet(This,retVal)
11683#define IUIAutomationElement4_get_CachedSizeOfSet(This,retVal) (This)->lpVtbl->get_CachedSizeOfSet(This,retVal)
11684#define IUIAutomationElement4_get_CachedLevel(This,retVal) (This)->lpVtbl->get_CachedLevel(This,retVal)
11685#define IUIAutomationElement4_get_CachedAnnotationTypes(This,retVal) (This)->lpVtbl->get_CachedAnnotationTypes(This,retVal)
11686#define IUIAutomationElement4_get_CachedAnnotationObjects(This,retVal) (This)->lpVtbl->get_CachedAnnotationObjects(This,retVal)
11687#else
11688/*** IUnknown methods ***/
11689static inline HRESULT IUIAutomationElement4_QueryInterface(IUIAutomationElement4* This,REFIID riid,void **ppvObject) {
11690    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
11691}
11692static inline ULONG IUIAutomationElement4_AddRef(IUIAutomationElement4* This) {
11693    return This->lpVtbl->AddRef(This);
11694}
11695static inline ULONG IUIAutomationElement4_Release(IUIAutomationElement4* This) {
11696    return This->lpVtbl->Release(This);
11697}
11698/*** IUIAutomationElement methods ***/
11699static inline HRESULT IUIAutomationElement4_SetFocus(IUIAutomationElement4* This) {
11700    return This->lpVtbl->SetFocus(This);
11701}
11702static inline HRESULT IUIAutomationElement4_GetRuntimeId(IUIAutomationElement4* This,SAFEARRAY **runtimeId) {
11703    return This->lpVtbl->GetRuntimeId(This,runtimeId);
11704}
11705static inline HRESULT IUIAutomationElement4_FindFirst(IUIAutomationElement4* This,enum TreeScope scope,IUIAutomationCondition *condition,IUIAutomationElement **found) {
11706    return This->lpVtbl->FindFirst(This,scope,condition,found);
11707}
11708static inline HRESULT IUIAutomationElement4_FindAll(IUIAutomationElement4* This,enum TreeScope scope,IUIAutomationCondition *condition,IUIAutomationElementArray **found) {
11709    return This->lpVtbl->FindAll(This,scope,condition,found);
11710}
11711static inline HRESULT IUIAutomationElement4_FindFirstBuildCache(IUIAutomationElement4* This,enum TreeScope scope,IUIAutomationCondition *condition,IUIAutomationCacheRequest *cacheRequest,IUIAutomationElement **found) {
11712    return This->lpVtbl->FindFirstBuildCache(This,scope,condition,cacheRequest,found);
11713}
11714static inline HRESULT IUIAutomationElement4_FindAllBuildCache(IUIAutomationElement4* This,enum TreeScope scope,IUIAutomationCondition *condition,IUIAutomationCacheRequest *cacheRequest,IUIAutomationElementArray **found) {
11715    return This->lpVtbl->FindAllBuildCache(This,scope,condition,cacheRequest,found);
11716}
11717static inline HRESULT IUIAutomationElement4_BuildUpdatedCache(IUIAutomationElement4* This,IUIAutomationCacheRequest *cacheRequest,IUIAutomationElement **updatedElement) {
11718    return This->lpVtbl->BuildUpdatedCache(This,cacheRequest,updatedElement);
11719}
11720static inline HRESULT IUIAutomationElement4_GetCurrentPropertyValue(IUIAutomationElement4* This,PROPERTYID propertyId,VARIANT *retVal) {
11721    return This->lpVtbl->GetCurrentPropertyValue(This,propertyId,retVal);
11722}
11723static inline HRESULT IUIAutomationElement4_GetCurrentPropertyValueEx(IUIAutomationElement4* This,PROPERTYID propertyId,WINBOOL ignoreDefaultValue,VARIANT *retVal) {
11724    return This->lpVtbl->GetCurrentPropertyValueEx(This,propertyId,ignoreDefaultValue,retVal);
11725}
11726static inline HRESULT IUIAutomationElement4_GetCachedPropertyValue(IUIAutomationElement4* This,PROPERTYID propertyId,VARIANT *retVal) {
11727    return This->lpVtbl->GetCachedPropertyValue(This,propertyId,retVal);
11728}
11729static inline HRESULT IUIAutomationElement4_GetCachedPropertyValueEx(IUIAutomationElement4* This,PROPERTYID propertyId,WINBOOL ignoreDefaultValue,VARIANT *retVal) {
11730    return This->lpVtbl->GetCachedPropertyValueEx(This,propertyId,ignoreDefaultValue,retVal);
11731}
11732static inline HRESULT IUIAutomationElement4_GetCurrentPatternAs(IUIAutomationElement4* This,PATTERNID patternId,REFIID riid,void **patternObject) {
11733    return This->lpVtbl->GetCurrentPatternAs(This,patternId,riid,patternObject);
11734}
11735static inline HRESULT IUIAutomationElement4_GetCachedPatternAs(IUIAutomationElement4* This,PATTERNID patternId,REFIID riid,void **patternObject) {
11736    return This->lpVtbl->GetCachedPatternAs(This,patternId,riid,patternObject);
11737}
11738static inline HRESULT IUIAutomationElement4_GetCurrentPattern(IUIAutomationElement4* This,PATTERNID patternId,IUnknown **patternObject) {
11739    return This->lpVtbl->GetCurrentPattern(This,patternId,patternObject);
11740}
11741static inline HRESULT IUIAutomationElement4_GetCachedPattern(IUIAutomationElement4* This,PATTERNID patternId,IUnknown **patternObject) {
11742    return This->lpVtbl->GetCachedPattern(This,patternId,patternObject);
11743}
11744static inline HRESULT IUIAutomationElement4_GetCachedParent(IUIAutomationElement4* This,IUIAutomationElement **parent) {
11745    return This->lpVtbl->GetCachedParent(This,parent);
11746}
11747static inline HRESULT IUIAutomationElement4_GetCachedChildren(IUIAutomationElement4* This,IUIAutomationElementArray **children) {
11748    return This->lpVtbl->GetCachedChildren(This,children);
11749}
11750static inline HRESULT IUIAutomationElement4_get_CurrentProcessId(IUIAutomationElement4* This,int *retVal) {
11751    return This->lpVtbl->get_CurrentProcessId(This,retVal);
11752}
11753static inline HRESULT IUIAutomationElement4_get_CurrentControlType(IUIAutomationElement4* This,CONTROLTYPEID *retVal) {
11754    return This->lpVtbl->get_CurrentControlType(This,retVal);
11755}
11756static inline HRESULT IUIAutomationElement4_get_CurrentLocalizedControlType(IUIAutomationElement4* This,BSTR *retVal) {
11757    return This->lpVtbl->get_CurrentLocalizedControlType(This,retVal);
11758}
11759static inline HRESULT IUIAutomationElement4_get_CurrentName(IUIAutomationElement4* This,BSTR *retVal) {
11760    return This->lpVtbl->get_CurrentName(This,retVal);
11761}
11762static inline HRESULT IUIAutomationElement4_get_CurrentAcceleratorKey(IUIAutomationElement4* This,BSTR *retVal) {
11763    return This->lpVtbl->get_CurrentAcceleratorKey(This,retVal);
11764}
11765static inline HRESULT IUIAutomationElement4_get_CurrentAccessKey(IUIAutomationElement4* This,BSTR *retVal) {
11766    return This->lpVtbl->get_CurrentAccessKey(This,retVal);
11767}
11768static inline HRESULT IUIAutomationElement4_get_CurrentHasKeyboardFocus(IUIAutomationElement4* This,WINBOOL *retVal) {
11769    return This->lpVtbl->get_CurrentHasKeyboardFocus(This,retVal);
11770}
11771static inline HRESULT IUIAutomationElement4_get_CurrentIsKeyboardFocusable(IUIAutomationElement4* This,WINBOOL *retVal) {
11772    return This->lpVtbl->get_CurrentIsKeyboardFocusable(This,retVal);
11773}
11774static inline HRESULT IUIAutomationElement4_get_CurrentIsEnabled(IUIAutomationElement4* This,WINBOOL *retVal) {
11775    return This->lpVtbl->get_CurrentIsEnabled(This,retVal);
11776}
11777static inline HRESULT IUIAutomationElement4_get_CurrentAutomationId(IUIAutomationElement4* This,BSTR *retVal) {
11778    return This->lpVtbl->get_CurrentAutomationId(This,retVal);
11779}
11780static inline HRESULT IUIAutomationElement4_get_CurrentClassName(IUIAutomationElement4* This,BSTR *retVal) {
11781    return This->lpVtbl->get_CurrentClassName(This,retVal);
11782}
11783static inline HRESULT IUIAutomationElement4_get_CurrentHelpText(IUIAutomationElement4* This,BSTR *retVal) {
11784    return This->lpVtbl->get_CurrentHelpText(This,retVal);
11785}
11786static inline HRESULT IUIAutomationElement4_get_CurrentCulture(IUIAutomationElement4* This,int *retVal) {
11787    return This->lpVtbl->get_CurrentCulture(This,retVal);
11788}
11789static inline HRESULT IUIAutomationElement4_get_CurrentIsControlElement(IUIAutomationElement4* This,WINBOOL *retVal) {
11790    return This->lpVtbl->get_CurrentIsControlElement(This,retVal);
11791}
11792static inline HRESULT IUIAutomationElement4_get_CurrentIsContentElement(IUIAutomationElement4* This,WINBOOL *retVal) {
11793    return This->lpVtbl->get_CurrentIsContentElement(This,retVal);
11794}
11795static inline HRESULT IUIAutomationElement4_get_CurrentIsPassword(IUIAutomationElement4* This,WINBOOL *retVal) {
11796    return This->lpVtbl->get_CurrentIsPassword(This,retVal);
11797}
11798static inline HRESULT IUIAutomationElement4_get_CurrentNativeWindowHandle(IUIAutomationElement4* This,UIA_HWND *retVal) {
11799    return This->lpVtbl->get_CurrentNativeWindowHandle(This,retVal);
11800}
11801static inline HRESULT IUIAutomationElement4_get_CurrentItemType(IUIAutomationElement4* This,BSTR *retVal) {
11802    return This->lpVtbl->get_CurrentItemType(This,retVal);
11803}
11804static inline HRESULT IUIAutomationElement4_get_CurrentIsOffscreen(IUIAutomationElement4* This,WINBOOL *retVal) {
11805    return This->lpVtbl->get_CurrentIsOffscreen(This,retVal);
11806}
11807static inline HRESULT IUIAutomationElement4_get_CurrentOrientation(IUIAutomationElement4* This,enum OrientationType *retVal) {
11808    return This->lpVtbl->get_CurrentOrientation(This,retVal);
11809}
11810static inline HRESULT IUIAutomationElement4_get_CurrentFrameworkId(IUIAutomationElement4* This,BSTR *retVal) {
11811    return This->lpVtbl->get_CurrentFrameworkId(This,retVal);
11812}
11813static inline HRESULT IUIAutomationElement4_get_CurrentIsRequiredForForm(IUIAutomationElement4* This,WINBOOL *retVal) {
11814    return This->lpVtbl->get_CurrentIsRequiredForForm(This,retVal);
11815}
11816static inline HRESULT IUIAutomationElement4_get_CurrentItemStatus(IUIAutomationElement4* This,BSTR *retVal) {
11817    return This->lpVtbl->get_CurrentItemStatus(This,retVal);
11818}
11819static inline HRESULT IUIAutomationElement4_get_CurrentBoundingRectangle(IUIAutomationElement4* This,RECT *retVal) {
11820    return This->lpVtbl->get_CurrentBoundingRectangle(This,retVal);
11821}
11822static inline HRESULT IUIAutomationElement4_get_CurrentLabeledBy(IUIAutomationElement4* This,IUIAutomationElement **retVal) {
11823    return This->lpVtbl->get_CurrentLabeledBy(This,retVal);
11824}
11825static inline HRESULT IUIAutomationElement4_get_CurrentAriaRole(IUIAutomationElement4* This,BSTR *retVal) {
11826    return This->lpVtbl->get_CurrentAriaRole(This,retVal);
11827}
11828static inline HRESULT IUIAutomationElement4_get_CurrentAriaProperties(IUIAutomationElement4* This,BSTR *retVal) {
11829    return This->lpVtbl->get_CurrentAriaProperties(This,retVal);
11830}
11831static inline HRESULT IUIAutomationElement4_get_CurrentIsDataValidForForm(IUIAutomationElement4* This,WINBOOL *retVal) {
11832    return This->lpVtbl->get_CurrentIsDataValidForForm(This,retVal);
11833}
11834static inline HRESULT IUIAutomationElement4_get_CurrentControllerFor(IUIAutomationElement4* This,IUIAutomationElementArray **retVal) {
11835    return This->lpVtbl->get_CurrentControllerFor(This,retVal);
11836}
11837static inline HRESULT IUIAutomationElement4_get_CurrentDescribedBy(IUIAutomationElement4* This,IUIAutomationElementArray **retVal) {
11838    return This->lpVtbl->get_CurrentDescribedBy(This,retVal);
11839}
11840static inline HRESULT IUIAutomationElement4_get_CurrentFlowsTo(IUIAutomationElement4* This,IUIAutomationElementArray **retVal) {
11841    return This->lpVtbl->get_CurrentFlowsTo(This,retVal);
11842}
11843static inline HRESULT IUIAutomationElement4_get_CurrentProviderDescription(IUIAutomationElement4* This,BSTR *retVal) {
11844    return This->lpVtbl->get_CurrentProviderDescription(This,retVal);
11845}
11846static inline HRESULT IUIAutomationElement4_get_CachedProcessId(IUIAutomationElement4* This,int *retVal) {
11847    return This->lpVtbl->get_CachedProcessId(This,retVal);
11848}
11849static inline HRESULT IUIAutomationElement4_get_CachedControlType(IUIAutomationElement4* This,CONTROLTYPEID *retVal) {
11850    return This->lpVtbl->get_CachedControlType(This,retVal);
11851}
11852static inline HRESULT IUIAutomationElement4_get_CachedLocalizedControlType(IUIAutomationElement4* This,BSTR *retVal) {
11853    return This->lpVtbl->get_CachedLocalizedControlType(This,retVal);
11854}
11855static inline HRESULT IUIAutomationElement4_get_CachedName(IUIAutomationElement4* This,BSTR *retVal) {
11856    return This->lpVtbl->get_CachedName(This,retVal);
11857}
11858static inline HRESULT IUIAutomationElement4_get_CachedAcceleratorKey(IUIAutomationElement4* This,BSTR *retVal) {
11859    return This->lpVtbl->get_CachedAcceleratorKey(This,retVal);
11860}
11861static inline HRESULT IUIAutomationElement4_get_CachedAccessKey(IUIAutomationElement4* This,BSTR *retVal) {
11862    return This->lpVtbl->get_CachedAccessKey(This,retVal);
11863}
11864static inline HRESULT IUIAutomationElement4_get_CachedHasKeyboardFocus(IUIAutomationElement4* This,WINBOOL *retVal) {
11865    return This->lpVtbl->get_CachedHasKeyboardFocus(This,retVal);
11866}
11867static inline HRESULT IUIAutomationElement4_get_CachedIsKeyboardFocusable(IUIAutomationElement4* This,WINBOOL *retVal) {
11868    return This->lpVtbl->get_CachedIsKeyboardFocusable(This,retVal);
11869}
11870static inline HRESULT IUIAutomationElement4_get_CachedIsEnabled(IUIAutomationElement4* This,WINBOOL *retVal) {
11871    return This->lpVtbl->get_CachedIsEnabled(This,retVal);
11872}
11873static inline HRESULT IUIAutomationElement4_get_CachedAutomationId(IUIAutomationElement4* This,BSTR *retVal) {
11874    return This->lpVtbl->get_CachedAutomationId(This,retVal);
11875}
11876static inline HRESULT IUIAutomationElement4_get_CachedClassName(IUIAutomationElement4* This,BSTR *retVal) {
11877    return This->lpVtbl->get_CachedClassName(This,retVal);
11878}
11879static inline HRESULT IUIAutomationElement4_get_CachedHelpText(IUIAutomationElement4* This,BSTR *retVal) {
11880    return This->lpVtbl->get_CachedHelpText(This,retVal);
11881}
11882static inline HRESULT IUIAutomationElement4_get_CachedCulture(IUIAutomationElement4* This,int *retVal) {
11883    return This->lpVtbl->get_CachedCulture(This,retVal);
11884}
11885static inline HRESULT IUIAutomationElement4_get_CachedIsControlElement(IUIAutomationElement4* This,WINBOOL *retVal) {
11886    return This->lpVtbl->get_CachedIsControlElement(This,retVal);
11887}
11888static inline HRESULT IUIAutomationElement4_get_CachedIsContentElement(IUIAutomationElement4* This,WINBOOL *retVal) {
11889    return This->lpVtbl->get_CachedIsContentElement(This,retVal);
11890}
11891static inline HRESULT IUIAutomationElement4_get_CachedIsPassword(IUIAutomationElement4* This,WINBOOL *retVal) {
11892    return This->lpVtbl->get_CachedIsPassword(This,retVal);
11893}
11894static inline HRESULT IUIAutomationElement4_get_CachedNativeWindowHandle(IUIAutomationElement4* This,UIA_HWND *retVal) {
11895    return This->lpVtbl->get_CachedNativeWindowHandle(This,retVal);
11896}
11897static inline HRESULT IUIAutomationElement4_get_CachedItemType(IUIAutomationElement4* This,BSTR *retVal) {
11898    return This->lpVtbl->get_CachedItemType(This,retVal);
11899}
11900static inline HRESULT IUIAutomationElement4_get_CachedIsOffscreen(IUIAutomationElement4* This,WINBOOL *retVal) {
11901    return This->lpVtbl->get_CachedIsOffscreen(This,retVal);
11902}
11903static inline HRESULT IUIAutomationElement4_get_CachedOrientation(IUIAutomationElement4* This,enum OrientationType *retVal) {
11904    return This->lpVtbl->get_CachedOrientation(This,retVal);
11905}
11906static inline HRESULT IUIAutomationElement4_get_CachedFrameworkId(IUIAutomationElement4* This,BSTR *retVal) {
11907    return This->lpVtbl->get_CachedFrameworkId(This,retVal);
11908}
11909static inline HRESULT IUIAutomationElement4_get_CachedIsRequiredForForm(IUIAutomationElement4* This,WINBOOL *retVal) {
11910    return This->lpVtbl->get_CachedIsRequiredForForm(This,retVal);
11911}
11912static inline HRESULT IUIAutomationElement4_get_CachedItemStatus(IUIAutomationElement4* This,BSTR *retVal) {
11913    return This->lpVtbl->get_CachedItemStatus(This,retVal);
11914}
11915static inline HRESULT IUIAutomationElement4_get_CachedBoundingRectangle(IUIAutomationElement4* This,RECT *retVal) {
11916    return This->lpVtbl->get_CachedBoundingRectangle(This,retVal);
11917}
11918static inline HRESULT IUIAutomationElement4_get_CachedLabeledBy(IUIAutomationElement4* This,IUIAutomationElement **retVal) {
11919    return This->lpVtbl->get_CachedLabeledBy(This,retVal);
11920}
11921static inline HRESULT IUIAutomationElement4_get_CachedAriaRole(IUIAutomationElement4* This,BSTR *retVal) {
11922    return This->lpVtbl->get_CachedAriaRole(This,retVal);
11923}
11924static inline HRESULT IUIAutomationElement4_get_CachedAriaProperties(IUIAutomationElement4* This,BSTR *retVal) {
11925    return This->lpVtbl->get_CachedAriaProperties(This,retVal);
11926}
11927static inline HRESULT IUIAutomationElement4_get_CachedIsDataValidForForm(IUIAutomationElement4* This,WINBOOL *retVal) {
11928    return This->lpVtbl->get_CachedIsDataValidForForm(This,retVal);
11929}
11930static inline HRESULT IUIAutomationElement4_get_CachedControllerFor(IUIAutomationElement4* This,IUIAutomationElementArray **retVal) {
11931    return This->lpVtbl->get_CachedControllerFor(This,retVal);
11932}
11933static inline HRESULT IUIAutomationElement4_get_CachedDescribedBy(IUIAutomationElement4* This,IUIAutomationElementArray **retVal) {
11934    return This->lpVtbl->get_CachedDescribedBy(This,retVal);
11935}
11936static inline HRESULT IUIAutomationElement4_get_CachedFlowsTo(IUIAutomationElement4* This,IUIAutomationElementArray **retVal) {
11937    return This->lpVtbl->get_CachedFlowsTo(This,retVal);
11938}
11939static inline HRESULT IUIAutomationElement4_get_CachedProviderDescription(IUIAutomationElement4* This,BSTR *retVal) {
11940    return This->lpVtbl->get_CachedProviderDescription(This,retVal);
11941}
11942static inline HRESULT IUIAutomationElement4_GetClickablePoint(IUIAutomationElement4* This,POINT *clickable,WINBOOL *gotClickable) {
11943    return This->lpVtbl->GetClickablePoint(This,clickable,gotClickable);
11944}
11945/*** IUIAutomationElement2 methods ***/
11946static inline HRESULT IUIAutomationElement4_get_CurrentOptimizeForVisualContent(IUIAutomationElement4* This,WINBOOL *retVal) {
11947    return This->lpVtbl->get_CurrentOptimizeForVisualContent(This,retVal);
11948}
11949static inline HRESULT IUIAutomationElement4_get_CachedOptimizeForVisualContent(IUIAutomationElement4* This,WINBOOL *retVal) {
11950    return This->lpVtbl->get_CachedOptimizeForVisualContent(This,retVal);
11951}
11952static inline HRESULT IUIAutomationElement4_get_CurrentLiveSetting(IUIAutomationElement4* This,enum LiveSetting *retVal) {
11953    return This->lpVtbl->get_CurrentLiveSetting(This,retVal);
11954}
11955static inline HRESULT IUIAutomationElement4_get_CachedLiveSetting(IUIAutomationElement4* This,enum LiveSetting *retVal) {
11956    return This->lpVtbl->get_CachedLiveSetting(This,retVal);
11957}
11958static inline HRESULT IUIAutomationElement4_get_CurrentFlowsFrom(IUIAutomationElement4* This,IUIAutomationElementArray **retVal) {
11959    return This->lpVtbl->get_CurrentFlowsFrom(This,retVal);
11960}
11961static inline HRESULT IUIAutomationElement4_get_CachedFlowsFrom(IUIAutomationElement4* This,IUIAutomationElementArray **retVal) {
11962    return This->lpVtbl->get_CachedFlowsFrom(This,retVal);
11963}
11964/*** IUIAutomationElement3 methods ***/
11965static inline HRESULT IUIAutomationElement4_ShowContextMenu(IUIAutomationElement4* This) {
11966    return This->lpVtbl->ShowContextMenu(This);
11967}
11968static inline HRESULT IUIAutomationElement4_get_CurrentIsPeripheral(IUIAutomationElement4* This,WINBOOL *retVal) {
11969    return This->lpVtbl->get_CurrentIsPeripheral(This,retVal);
11970}
11971static inline HRESULT IUIAutomationElement4_get_CachedIsPeripheral(IUIAutomationElement4* This,WINBOOL *retVal) {
11972    return This->lpVtbl->get_CachedIsPeripheral(This,retVal);
11973}
11974/*** IUIAutomationElement4 methods ***/
11975static inline HRESULT IUIAutomationElement4_get_CurrentPositionInSet(IUIAutomationElement4* This,int *retVal) {
11976    return This->lpVtbl->get_CurrentPositionInSet(This,retVal);
11977}
11978static inline HRESULT IUIAutomationElement4_get_CurrentSizeOfSet(IUIAutomationElement4* This,int *retVal) {
11979    return This->lpVtbl->get_CurrentSizeOfSet(This,retVal);
11980}
11981static inline HRESULT IUIAutomationElement4_get_CurrentLevel(IUIAutomationElement4* This,int *retVal) {
11982    return This->lpVtbl->get_CurrentLevel(This,retVal);
11983}
11984static inline HRESULT IUIAutomationElement4_get_CurrentAnnotationTypes(IUIAutomationElement4* This,SAFEARRAY **retVal) {
11985    return This->lpVtbl->get_CurrentAnnotationTypes(This,retVal);
11986}
11987static inline HRESULT IUIAutomationElement4_get_CurrentAnnotationObjects(IUIAutomationElement4* This,IUIAutomationElementArray **retVal) {
11988    return This->lpVtbl->get_CurrentAnnotationObjects(This,retVal);
11989}
11990static inline HRESULT IUIAutomationElement4_get_CachedPositionInSet(IUIAutomationElement4* This,int *retVal) {
11991    return This->lpVtbl->get_CachedPositionInSet(This,retVal);
11992}
11993static inline HRESULT IUIAutomationElement4_get_CachedSizeOfSet(IUIAutomationElement4* This,int *retVal) {
11994    return This->lpVtbl->get_CachedSizeOfSet(This,retVal);
11995}
11996static inline HRESULT IUIAutomationElement4_get_CachedLevel(IUIAutomationElement4* This,int *retVal) {
11997    return This->lpVtbl->get_CachedLevel(This,retVal);
11998}
11999static inline HRESULT IUIAutomationElement4_get_CachedAnnotationTypes(IUIAutomationElement4* This,SAFEARRAY **retVal) {
12000    return This->lpVtbl->get_CachedAnnotationTypes(This,retVal);
12001}
12002static inline HRESULT IUIAutomationElement4_get_CachedAnnotationObjects(IUIAutomationElement4* This,IUIAutomationElementArray **retVal) {
12003    return This->lpVtbl->get_CachedAnnotationObjects(This,retVal);
12004}
12005#endif
12006#endif
12007
12008#endif
12009
12010
12011#endif  /* __IUIAutomationElement4_INTERFACE_DEFINED__ */
12012
12013/*****************************************************************************
12014 * IUIAutomationElement5 interface
12015 */
12016#ifndef __IUIAutomationElement5_INTERFACE_DEFINED__
12017#define __IUIAutomationElement5_INTERFACE_DEFINED__
12018
12019DEFINE_GUID(IID_IUIAutomationElement5, 0x98141c1d, 0x0d0e, 0x4175, 0xbb,0xe2, 0x6b,0xff,0x45,0x58,0x42,0xa7);
12020#if defined(__cplusplus) && !defined(CINTERFACE)
12021MIDL_INTERFACE("98141c1d-0d0e-4175-bbe2-6bff455842a7")
12022IUIAutomationElement5 : public IUIAutomationElement4
12023{
12024    virtual HRESULT STDMETHODCALLTYPE get_CurrentLandmarkType(
12025        LANDMARKTYPEID *retVal) = 0;
12026
12027    virtual HRESULT STDMETHODCALLTYPE get_CurrentLocalizedLandmarkType(
12028        BSTR *retVal) = 0;
12029
12030    virtual HRESULT STDMETHODCALLTYPE get_CachedLandmarkType(
12031        LANDMARKTYPEID *retVal) = 0;
12032
12033    virtual HRESULT STDMETHODCALLTYPE get_CachedLocalizedLandmarkType(
12034        BSTR *retVal) = 0;
12035
12036};
12037#ifdef __CRT_UUID_DECL
12038__CRT_UUID_DECL(IUIAutomationElement5, 0x98141c1d, 0x0d0e, 0x4175, 0xbb,0xe2, 0x6b,0xff,0x45,0x58,0x42,0xa7)
12039#endif
12040#else
12041typedef struct IUIAutomationElement5Vtbl {
12042    BEGIN_INTERFACE
12043
12044    /*** IUnknown methods ***/
12045    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
12046        IUIAutomationElement5 *This,
12047        REFIID riid,
12048        void **ppvObject);
12049
12050    ULONG (STDMETHODCALLTYPE *AddRef)(
12051        IUIAutomationElement5 *This);
12052
12053    ULONG (STDMETHODCALLTYPE *Release)(
12054        IUIAutomationElement5 *This);
12055
12056    /*** IUIAutomationElement methods ***/
12057    HRESULT (STDMETHODCALLTYPE *SetFocus)(
12058        IUIAutomationElement5 *This);
12059
12060    HRESULT (STDMETHODCALLTYPE *GetRuntimeId)(
12061        IUIAutomationElement5 *This,
12062        SAFEARRAY **runtimeId);
12063
12064    HRESULT (STDMETHODCALLTYPE *FindFirst)(
12065        IUIAutomationElement5 *This,
12066        enum TreeScope scope,
12067        IUIAutomationCondition *condition,
12068        IUIAutomationElement **found);
12069
12070    HRESULT (STDMETHODCALLTYPE *FindAll)(
12071        IUIAutomationElement5 *This,
12072        enum TreeScope scope,
12073        IUIAutomationCondition *condition,
12074        IUIAutomationElementArray **found);
12075
12076    HRESULT (STDMETHODCALLTYPE *FindFirstBuildCache)(
12077        IUIAutomationElement5 *This,
12078        enum TreeScope scope,
12079        IUIAutomationCondition *condition,
12080        IUIAutomationCacheRequest *cacheRequest,
12081        IUIAutomationElement **found);
12082
12083    HRESULT (STDMETHODCALLTYPE *FindAllBuildCache)(
12084        IUIAutomationElement5 *This,
12085        enum TreeScope scope,
12086        IUIAutomationCondition *condition,
12087        IUIAutomationCacheRequest *cacheRequest,
12088        IUIAutomationElementArray **found);
12089
12090    HRESULT (STDMETHODCALLTYPE *BuildUpdatedCache)(
12091        IUIAutomationElement5 *This,
12092        IUIAutomationCacheRequest *cacheRequest,
12093        IUIAutomationElement **updatedElement);
12094
12095    HRESULT (STDMETHODCALLTYPE *GetCurrentPropertyValue)(
12096        IUIAutomationElement5 *This,
12097        PROPERTYID propertyId,
12098        VARIANT *retVal);
12099
12100    HRESULT (STDMETHODCALLTYPE *GetCurrentPropertyValueEx)(
12101        IUIAutomationElement5 *This,
12102        PROPERTYID propertyId,
12103        WINBOOL ignoreDefaultValue,
12104        VARIANT *retVal);
12105
12106    HRESULT (STDMETHODCALLTYPE *GetCachedPropertyValue)(
12107        IUIAutomationElement5 *This,
12108        PROPERTYID propertyId,
12109        VARIANT *retVal);
12110
12111    HRESULT (STDMETHODCALLTYPE *GetCachedPropertyValueEx)(
12112        IUIAutomationElement5 *This,
12113        PROPERTYID propertyId,
12114        WINBOOL ignoreDefaultValue,
12115        VARIANT *retVal);
12116
12117    HRESULT (STDMETHODCALLTYPE *GetCurrentPatternAs)(
12118        IUIAutomationElement5 *This,
12119        PATTERNID patternId,
12120        REFIID riid,
12121        void **patternObject);
12122
12123    HRESULT (STDMETHODCALLTYPE *GetCachedPatternAs)(
12124        IUIAutomationElement5 *This,
12125        PATTERNID patternId,
12126        REFIID riid,
12127        void **patternObject);
12128
12129    HRESULT (STDMETHODCALLTYPE *GetCurrentPattern)(
12130        IUIAutomationElement5 *This,
12131        PATTERNID patternId,
12132        IUnknown **patternObject);
12133
12134    HRESULT (STDMETHODCALLTYPE *GetCachedPattern)(
12135        IUIAutomationElement5 *This,
12136        PATTERNID patternId,
12137        IUnknown **patternObject);
12138
12139    HRESULT (STDMETHODCALLTYPE *GetCachedParent)(
12140        IUIAutomationElement5 *This,
12141        IUIAutomationElement **parent);
12142
12143    HRESULT (STDMETHODCALLTYPE *GetCachedChildren)(
12144        IUIAutomationElement5 *This,
12145        IUIAutomationElementArray **children);
12146
12147    HRESULT (STDMETHODCALLTYPE *get_CurrentProcessId)(
12148        IUIAutomationElement5 *This,
12149        int *retVal);
12150
12151    HRESULT (STDMETHODCALLTYPE *get_CurrentControlType)(
12152        IUIAutomationElement5 *This,
12153        CONTROLTYPEID *retVal);
12154
12155    HRESULT (STDMETHODCALLTYPE *get_CurrentLocalizedControlType)(
12156        IUIAutomationElement5 *This,
12157        BSTR *retVal);
12158
12159    HRESULT (STDMETHODCALLTYPE *get_CurrentName)(
12160        IUIAutomationElement5 *This,
12161        BSTR *retVal);
12162
12163    HRESULT (STDMETHODCALLTYPE *get_CurrentAcceleratorKey)(
12164        IUIAutomationElement5 *This,
12165        BSTR *retVal);
12166
12167    HRESULT (STDMETHODCALLTYPE *get_CurrentAccessKey)(
12168        IUIAutomationElement5 *This,
12169        BSTR *retVal);
12170
12171    HRESULT (STDMETHODCALLTYPE *get_CurrentHasKeyboardFocus)(
12172        IUIAutomationElement5 *This,
12173        WINBOOL *retVal);
12174
12175    HRESULT (STDMETHODCALLTYPE *get_CurrentIsKeyboardFocusable)(
12176        IUIAutomationElement5 *This,
12177        WINBOOL *retVal);
12178
12179    HRESULT (STDMETHODCALLTYPE *get_CurrentIsEnabled)(
12180        IUIAutomationElement5 *This,
12181        WINBOOL *retVal);
12182
12183    HRESULT (STDMETHODCALLTYPE *get_CurrentAutomationId)(
12184        IUIAutomationElement5 *This,
12185        BSTR *retVal);
12186
12187    HRESULT (STDMETHODCALLTYPE *get_CurrentClassName)(
12188        IUIAutomationElement5 *This,
12189        BSTR *retVal);
12190
12191    HRESULT (STDMETHODCALLTYPE *get_CurrentHelpText)(
12192        IUIAutomationElement5 *This,
12193        BSTR *retVal);
12194
12195    HRESULT (STDMETHODCALLTYPE *get_CurrentCulture)(
12196        IUIAutomationElement5 *This,
12197        int *retVal);
12198
12199    HRESULT (STDMETHODCALLTYPE *get_CurrentIsControlElement)(
12200        IUIAutomationElement5 *This,
12201        WINBOOL *retVal);
12202
12203    HRESULT (STDMETHODCALLTYPE *get_CurrentIsContentElement)(
12204        IUIAutomationElement5 *This,
12205        WINBOOL *retVal);
12206
12207    HRESULT (STDMETHODCALLTYPE *get_CurrentIsPassword)(
12208        IUIAutomationElement5 *This,
12209        WINBOOL *retVal);
12210
12211    HRESULT (STDMETHODCALLTYPE *get_CurrentNativeWindowHandle)(
12212        IUIAutomationElement5 *This,
12213        UIA_HWND *retVal);
12214
12215    HRESULT (STDMETHODCALLTYPE *get_CurrentItemType)(
12216        IUIAutomationElement5 *This,
12217        BSTR *retVal);
12218
12219    HRESULT (STDMETHODCALLTYPE *get_CurrentIsOffscreen)(
12220        IUIAutomationElement5 *This,
12221        WINBOOL *retVal);
12222
12223    HRESULT (STDMETHODCALLTYPE *get_CurrentOrientation)(
12224        IUIAutomationElement5 *This,
12225        enum OrientationType *retVal);
12226
12227    HRESULT (STDMETHODCALLTYPE *get_CurrentFrameworkId)(
12228        IUIAutomationElement5 *This,
12229        BSTR *retVal);
12230
12231    HRESULT (STDMETHODCALLTYPE *get_CurrentIsRequiredForForm)(
12232        IUIAutomationElement5 *This,
12233        WINBOOL *retVal);
12234
12235    HRESULT (STDMETHODCALLTYPE *get_CurrentItemStatus)(
12236        IUIAutomationElement5 *This,
12237        BSTR *retVal);
12238
12239    HRESULT (STDMETHODCALLTYPE *get_CurrentBoundingRectangle)(
12240        IUIAutomationElement5 *This,
12241        RECT *retVal);
12242
12243    HRESULT (STDMETHODCALLTYPE *get_CurrentLabeledBy)(
12244        IUIAutomationElement5 *This,
12245        IUIAutomationElement **retVal);
12246
12247    HRESULT (STDMETHODCALLTYPE *get_CurrentAriaRole)(
12248        IUIAutomationElement5 *This,
12249        BSTR *retVal);
12250
12251    HRESULT (STDMETHODCALLTYPE *get_CurrentAriaProperties)(
12252        IUIAutomationElement5 *This,
12253        BSTR *retVal);
12254
12255    HRESULT (STDMETHODCALLTYPE *get_CurrentIsDataValidForForm)(
12256        IUIAutomationElement5 *This,
12257        WINBOOL *retVal);
12258
12259    HRESULT (STDMETHODCALLTYPE *get_CurrentControllerFor)(
12260        IUIAutomationElement5 *This,
12261        IUIAutomationElementArray **retVal);
12262
12263    HRESULT (STDMETHODCALLTYPE *get_CurrentDescribedBy)(
12264        IUIAutomationElement5 *This,
12265        IUIAutomationElementArray **retVal);
12266
12267    HRESULT (STDMETHODCALLTYPE *get_CurrentFlowsTo)(
12268        IUIAutomationElement5 *This,
12269        IUIAutomationElementArray **retVal);
12270
12271    HRESULT (STDMETHODCALLTYPE *get_CurrentProviderDescription)(
12272        IUIAutomationElement5 *This,
12273        BSTR *retVal);
12274
12275    HRESULT (STDMETHODCALLTYPE *get_CachedProcessId)(
12276        IUIAutomationElement5 *This,
12277        int *retVal);
12278
12279    HRESULT (STDMETHODCALLTYPE *get_CachedControlType)(
12280        IUIAutomationElement5 *This,
12281        CONTROLTYPEID *retVal);
12282
12283    HRESULT (STDMETHODCALLTYPE *get_CachedLocalizedControlType)(
12284        IUIAutomationElement5 *This,
12285        BSTR *retVal);
12286
12287    HRESULT (STDMETHODCALLTYPE *get_CachedName)(
12288        IUIAutomationElement5 *This,
12289        BSTR *retVal);
12290
12291    HRESULT (STDMETHODCALLTYPE *get_CachedAcceleratorKey)(
12292        IUIAutomationElement5 *This,
12293        BSTR *retVal);
12294
12295    HRESULT (STDMETHODCALLTYPE *get_CachedAccessKey)(
12296        IUIAutomationElement5 *This,
12297        BSTR *retVal);
12298
12299    HRESULT (STDMETHODCALLTYPE *get_CachedHasKeyboardFocus)(
12300        IUIAutomationElement5 *This,
12301        WINBOOL *retVal);
12302
12303    HRESULT (STDMETHODCALLTYPE *get_CachedIsKeyboardFocusable)(
12304        IUIAutomationElement5 *This,
12305        WINBOOL *retVal);
12306
12307    HRESULT (STDMETHODCALLTYPE *get_CachedIsEnabled)(
12308        IUIAutomationElement5 *This,
12309        WINBOOL *retVal);
12310
12311    HRESULT (STDMETHODCALLTYPE *get_CachedAutomationId)(
12312        IUIAutomationElement5 *This,
12313        BSTR *retVal);
12314
12315    HRESULT (STDMETHODCALLTYPE *get_CachedClassName)(
12316        IUIAutomationElement5 *This,
12317        BSTR *retVal);
12318
12319    HRESULT (STDMETHODCALLTYPE *get_CachedHelpText)(
12320        IUIAutomationElement5 *This,
12321        BSTR *retVal);
12322
12323    HRESULT (STDMETHODCALLTYPE *get_CachedCulture)(
12324        IUIAutomationElement5 *This,
12325        int *retVal);
12326
12327    HRESULT (STDMETHODCALLTYPE *get_CachedIsControlElement)(
12328        IUIAutomationElement5 *This,
12329        WINBOOL *retVal);
12330
12331    HRESULT (STDMETHODCALLTYPE *get_CachedIsContentElement)(
12332        IUIAutomationElement5 *This,
12333        WINBOOL *retVal);
12334
12335    HRESULT (STDMETHODCALLTYPE *get_CachedIsPassword)(
12336        IUIAutomationElement5 *This,
12337        WINBOOL *retVal);
12338
12339    HRESULT (STDMETHODCALLTYPE *get_CachedNativeWindowHandle)(
12340        IUIAutomationElement5 *This,
12341        UIA_HWND *retVal);
12342
12343    HRESULT (STDMETHODCALLTYPE *get_CachedItemType)(
12344        IUIAutomationElement5 *This,
12345        BSTR *retVal);
12346
12347    HRESULT (STDMETHODCALLTYPE *get_CachedIsOffscreen)(
12348        IUIAutomationElement5 *This,
12349        WINBOOL *retVal);
12350
12351    HRESULT (STDMETHODCALLTYPE *get_CachedOrientation)(
12352        IUIAutomationElement5 *This,
12353        enum OrientationType *retVal);
12354
12355    HRESULT (STDMETHODCALLTYPE *get_CachedFrameworkId)(
12356        IUIAutomationElement5 *This,
12357        BSTR *retVal);
12358
12359    HRESULT (STDMETHODCALLTYPE *get_CachedIsRequiredForForm)(
12360        IUIAutomationElement5 *This,
12361        WINBOOL *retVal);
12362
12363    HRESULT (STDMETHODCALLTYPE *get_CachedItemStatus)(
12364        IUIAutomationElement5 *This,
12365        BSTR *retVal);
12366
12367    HRESULT (STDMETHODCALLTYPE *get_CachedBoundingRectangle)(
12368        IUIAutomationElement5 *This,
12369        RECT *retVal);
12370
12371    HRESULT (STDMETHODCALLTYPE *get_CachedLabeledBy)(
12372        IUIAutomationElement5 *This,
12373        IUIAutomationElement **retVal);
12374
12375    HRESULT (STDMETHODCALLTYPE *get_CachedAriaRole)(
12376        IUIAutomationElement5 *This,
12377        BSTR *retVal);
12378
12379    HRESULT (STDMETHODCALLTYPE *get_CachedAriaProperties)(
12380        IUIAutomationElement5 *This,
12381        BSTR *retVal);
12382
12383    HRESULT (STDMETHODCALLTYPE *get_CachedIsDataValidForForm)(
12384        IUIAutomationElement5 *This,
12385        WINBOOL *retVal);
12386
12387    HRESULT (STDMETHODCALLTYPE *get_CachedControllerFor)(
12388        IUIAutomationElement5 *This,
12389        IUIAutomationElementArray **retVal);
12390
12391    HRESULT (STDMETHODCALLTYPE *get_CachedDescribedBy)(
12392        IUIAutomationElement5 *This,
12393        IUIAutomationElementArray **retVal);
12394
12395    HRESULT (STDMETHODCALLTYPE *get_CachedFlowsTo)(
12396        IUIAutomationElement5 *This,
12397        IUIAutomationElementArray **retVal);
12398
12399    HRESULT (STDMETHODCALLTYPE *get_CachedProviderDescription)(
12400        IUIAutomationElement5 *This,
12401        BSTR *retVal);
12402
12403    HRESULT (STDMETHODCALLTYPE *GetClickablePoint)(
12404        IUIAutomationElement5 *This,
12405        POINT *clickable,
12406        WINBOOL *gotClickable);
12407
12408    /*** IUIAutomationElement2 methods ***/
12409    HRESULT (STDMETHODCALLTYPE *get_CurrentOptimizeForVisualContent)(
12410        IUIAutomationElement5 *This,
12411        WINBOOL *retVal);
12412
12413    HRESULT (STDMETHODCALLTYPE *get_CachedOptimizeForVisualContent)(
12414        IUIAutomationElement5 *This,
12415        WINBOOL *retVal);
12416
12417    HRESULT (STDMETHODCALLTYPE *get_CurrentLiveSetting)(
12418        IUIAutomationElement5 *This,
12419        enum LiveSetting *retVal);
12420
12421    HRESULT (STDMETHODCALLTYPE *get_CachedLiveSetting)(
12422        IUIAutomationElement5 *This,
12423        enum LiveSetting *retVal);
12424
12425    HRESULT (STDMETHODCALLTYPE *get_CurrentFlowsFrom)(
12426        IUIAutomationElement5 *This,
12427        IUIAutomationElementArray **retVal);
12428
12429    HRESULT (STDMETHODCALLTYPE *get_CachedFlowsFrom)(
12430        IUIAutomationElement5 *This,
12431        IUIAutomationElementArray **retVal);
12432
12433    /*** IUIAutomationElement3 methods ***/
12434    HRESULT (STDMETHODCALLTYPE *ShowContextMenu)(
12435        IUIAutomationElement5 *This);
12436
12437    HRESULT (STDMETHODCALLTYPE *get_CurrentIsPeripheral)(
12438        IUIAutomationElement5 *This,
12439        WINBOOL *retVal);
12440
12441    HRESULT (STDMETHODCALLTYPE *get_CachedIsPeripheral)(
12442        IUIAutomationElement5 *This,
12443        WINBOOL *retVal);
12444
12445    /*** IUIAutomationElement4 methods ***/
12446    HRESULT (STDMETHODCALLTYPE *get_CurrentPositionInSet)(
12447        IUIAutomationElement5 *This,
12448        int *retVal);
12449
12450    HRESULT (STDMETHODCALLTYPE *get_CurrentSizeOfSet)(
12451        IUIAutomationElement5 *This,
12452        int *retVal);
12453
12454    HRESULT (STDMETHODCALLTYPE *get_CurrentLevel)(
12455        IUIAutomationElement5 *This,
12456        int *retVal);
12457
12458    HRESULT (STDMETHODCALLTYPE *get_CurrentAnnotationTypes)(
12459        IUIAutomationElement5 *This,
12460        SAFEARRAY **retVal);
12461
12462    HRESULT (STDMETHODCALLTYPE *get_CurrentAnnotationObjects)(
12463        IUIAutomationElement5 *This,
12464        IUIAutomationElementArray **retVal);
12465
12466    HRESULT (STDMETHODCALLTYPE *get_CachedPositionInSet)(
12467        IUIAutomationElement5 *This,
12468        int *retVal);
12469
12470    HRESULT (STDMETHODCALLTYPE *get_CachedSizeOfSet)(
12471        IUIAutomationElement5 *This,
12472        int *retVal);
12473
12474    HRESULT (STDMETHODCALLTYPE *get_CachedLevel)(
12475        IUIAutomationElement5 *This,
12476        int *retVal);
12477
12478    HRESULT (STDMETHODCALLTYPE *get_CachedAnnotationTypes)(
12479        IUIAutomationElement5 *This,
12480        SAFEARRAY **retVal);
12481
12482    HRESULT (STDMETHODCALLTYPE *get_CachedAnnotationObjects)(
12483        IUIAutomationElement5 *This,
12484        IUIAutomationElementArray **retVal);
12485
12486    /*** IUIAutomationElement5 methods ***/
12487    HRESULT (STDMETHODCALLTYPE *get_CurrentLandmarkType)(
12488        IUIAutomationElement5 *This,
12489        LANDMARKTYPEID *retVal);
12490
12491    HRESULT (STDMETHODCALLTYPE *get_CurrentLocalizedLandmarkType)(
12492        IUIAutomationElement5 *This,
12493        BSTR *retVal);
12494
12495    HRESULT (STDMETHODCALLTYPE *get_CachedLandmarkType)(
12496        IUIAutomationElement5 *This,
12497        LANDMARKTYPEID *retVal);
12498
12499    HRESULT (STDMETHODCALLTYPE *get_CachedLocalizedLandmarkType)(
12500        IUIAutomationElement5 *This,
12501        BSTR *retVal);
12502
12503    END_INTERFACE
12504} IUIAutomationElement5Vtbl;
12505
12506interface IUIAutomationElement5 {
12507    CONST_VTBL IUIAutomationElement5Vtbl* lpVtbl;
12508};
12509
12510#ifdef COBJMACROS
12511#ifndef WIDL_C_INLINE_WRAPPERS
12512/*** IUnknown methods ***/
12513#define IUIAutomationElement5_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
12514#define IUIAutomationElement5_AddRef(This) (This)->lpVtbl->AddRef(This)
12515#define IUIAutomationElement5_Release(This) (This)->lpVtbl->Release(This)
12516/*** IUIAutomationElement methods ***/
12517#define IUIAutomationElement5_SetFocus(This) (This)->lpVtbl->SetFocus(This)
12518#define IUIAutomationElement5_GetRuntimeId(This,runtimeId) (This)->lpVtbl->GetRuntimeId(This,runtimeId)
12519#define IUIAutomationElement5_FindFirst(This,scope,condition,found) (This)->lpVtbl->FindFirst(This,scope,condition,found)
12520#define IUIAutomationElement5_FindAll(This,scope,condition,found) (This)->lpVtbl->FindAll(This,scope,condition,found)
12521#define IUIAutomationElement5_FindFirstBuildCache(This,scope,condition,cacheRequest,found) (This)->lpVtbl->FindFirstBuildCache(This,scope,condition,cacheRequest,found)
12522#define IUIAutomationElement5_FindAllBuildCache(This,scope,condition,cacheRequest,found) (This)->lpVtbl->FindAllBuildCache(This,scope,condition,cacheRequest,found)
12523#define IUIAutomationElement5_BuildUpdatedCache(This,cacheRequest,updatedElement) (This)->lpVtbl->BuildUpdatedCache(This,cacheRequest,updatedElement)
12524#define IUIAutomationElement5_GetCurrentPropertyValue(This,propertyId,retVal) (This)->lpVtbl->GetCurrentPropertyValue(This,propertyId,retVal)
12525#define IUIAutomationElement5_GetCurrentPropertyValueEx(This,propertyId,ignoreDefaultValue,retVal) (This)->lpVtbl->GetCurrentPropertyValueEx(This,propertyId,ignoreDefaultValue,retVal)
12526#define IUIAutomationElement5_GetCachedPropertyValue(This,propertyId,retVal) (This)->lpVtbl->GetCachedPropertyValue(This,propertyId,retVal)
12527#define IUIAutomationElement5_GetCachedPropertyValueEx(This,propertyId,ignoreDefaultValue,retVal) (This)->lpVtbl->GetCachedPropertyValueEx(This,propertyId,ignoreDefaultValue,retVal)
12528#define IUIAutomationElement5_GetCurrentPatternAs(This,patternId,riid,patternObject) (This)->lpVtbl->GetCurrentPatternAs(This,patternId,riid,patternObject)
12529#define IUIAutomationElement5_GetCachedPatternAs(This,patternId,riid,patternObject) (This)->lpVtbl->GetCachedPatternAs(This,patternId,riid,patternObject)
12530#define IUIAutomationElement5_GetCurrentPattern(This,patternId,patternObject) (This)->lpVtbl->GetCurrentPattern(This,patternId,patternObject)
12531#define IUIAutomationElement5_GetCachedPattern(This,patternId,patternObject) (This)->lpVtbl->GetCachedPattern(This,patternId,patternObject)
12532#define IUIAutomationElement5_GetCachedParent(This,parent) (This)->lpVtbl->GetCachedParent(This,parent)
12533#define IUIAutomationElement5_GetCachedChildren(This,children) (This)->lpVtbl->GetCachedChildren(This,children)
12534#define IUIAutomationElement5_get_CurrentProcessId(This,retVal) (This)->lpVtbl->get_CurrentProcessId(This,retVal)
12535#define IUIAutomationElement5_get_CurrentControlType(This,retVal) (This)->lpVtbl->get_CurrentControlType(This,retVal)
12536#define IUIAutomationElement5_get_CurrentLocalizedControlType(This,retVal) (This)->lpVtbl->get_CurrentLocalizedControlType(This,retVal)
12537#define IUIAutomationElement5_get_CurrentName(This,retVal) (This)->lpVtbl->get_CurrentName(This,retVal)
12538#define IUIAutomationElement5_get_CurrentAcceleratorKey(This,retVal) (This)->lpVtbl->get_CurrentAcceleratorKey(This,retVal)
12539#define IUIAutomationElement5_get_CurrentAccessKey(This,retVal) (This)->lpVtbl->get_CurrentAccessKey(This,retVal)
12540#define IUIAutomationElement5_get_CurrentHasKeyboardFocus(This,retVal) (This)->lpVtbl->get_CurrentHasKeyboardFocus(This,retVal)
12541#define IUIAutomationElement5_get_CurrentIsKeyboardFocusable(This,retVal) (This)->lpVtbl->get_CurrentIsKeyboardFocusable(This,retVal)
12542#define IUIAutomationElement5_get_CurrentIsEnabled(This,retVal) (This)->lpVtbl->get_CurrentIsEnabled(This,retVal)
12543#define IUIAutomationElement5_get_CurrentAutomationId(This,retVal) (This)->lpVtbl->get_CurrentAutomationId(This,retVal)
12544#define IUIAutomationElement5_get_CurrentClassName(This,retVal) (This)->lpVtbl->get_CurrentClassName(This,retVal)
12545#define IUIAutomationElement5_get_CurrentHelpText(This,retVal) (This)->lpVtbl->get_CurrentHelpText(This,retVal)
12546#define IUIAutomationElement5_get_CurrentCulture(This,retVal) (This)->lpVtbl->get_CurrentCulture(This,retVal)
12547#define IUIAutomationElement5_get_CurrentIsControlElement(This,retVal) (This)->lpVtbl->get_CurrentIsControlElement(This,retVal)
12548#define IUIAutomationElement5_get_CurrentIsContentElement(This,retVal) (This)->lpVtbl->get_CurrentIsContentElement(This,retVal)
12549#define IUIAutomationElement5_get_CurrentIsPassword(This,retVal) (This)->lpVtbl->get_CurrentIsPassword(This,retVal)
12550#define IUIAutomationElement5_get_CurrentNativeWindowHandle(This,retVal) (This)->lpVtbl->get_CurrentNativeWindowHandle(This,retVal)
12551#define IUIAutomationElement5_get_CurrentItemType(This,retVal) (This)->lpVtbl->get_CurrentItemType(This,retVal)
12552#define IUIAutomationElement5_get_CurrentIsOffscreen(This,retVal) (This)->lpVtbl->get_CurrentIsOffscreen(This,retVal)
12553#define IUIAutomationElement5_get_CurrentOrientation(This,retVal) (This)->lpVtbl->get_CurrentOrientation(This,retVal)
12554#define IUIAutomationElement5_get_CurrentFrameworkId(This,retVal) (This)->lpVtbl->get_CurrentFrameworkId(This,retVal)
12555#define IUIAutomationElement5_get_CurrentIsRequiredForForm(This,retVal) (This)->lpVtbl->get_CurrentIsRequiredForForm(This,retVal)
12556#define IUIAutomationElement5_get_CurrentItemStatus(This,retVal) (This)->lpVtbl->get_CurrentItemStatus(This,retVal)
12557#define IUIAutomationElement5_get_CurrentBoundingRectangle(This,retVal) (This)->lpVtbl->get_CurrentBoundingRectangle(This,retVal)
12558#define IUIAutomationElement5_get_CurrentLabeledBy(This,retVal) (This)->lpVtbl->get_CurrentLabeledBy(This,retVal)
12559#define IUIAutomationElement5_get_CurrentAriaRole(This,retVal) (This)->lpVtbl->get_CurrentAriaRole(This,retVal)
12560#define IUIAutomationElement5_get_CurrentAriaProperties(This,retVal) (This)->lpVtbl->get_CurrentAriaProperties(This,retVal)
12561#define IUIAutomationElement5_get_CurrentIsDataValidForForm(This,retVal) (This)->lpVtbl->get_CurrentIsDataValidForForm(This,retVal)
12562#define IUIAutomationElement5_get_CurrentControllerFor(This,retVal) (This)->lpVtbl->get_CurrentControllerFor(This,retVal)
12563#define IUIAutomationElement5_get_CurrentDescribedBy(This,retVal) (This)->lpVtbl->get_CurrentDescribedBy(This,retVal)
12564#define IUIAutomationElement5_get_CurrentFlowsTo(This,retVal) (This)->lpVtbl->get_CurrentFlowsTo(This,retVal)
12565#define IUIAutomationElement5_get_CurrentProviderDescription(This,retVal) (This)->lpVtbl->get_CurrentProviderDescription(This,retVal)
12566#define IUIAutomationElement5_get_CachedProcessId(This,retVal) (This)->lpVtbl->get_CachedProcessId(This,retVal)
12567#define IUIAutomationElement5_get_CachedControlType(This,retVal) (This)->lpVtbl->get_CachedControlType(This,retVal)
12568#define IUIAutomationElement5_get_CachedLocalizedControlType(This,retVal) (This)->lpVtbl->get_CachedLocalizedControlType(This,retVal)
12569#define IUIAutomationElement5_get_CachedName(This,retVal) (This)->lpVtbl->get_CachedName(This,retVal)
12570#define IUIAutomationElement5_get_CachedAcceleratorKey(This,retVal) (This)->lpVtbl->get_CachedAcceleratorKey(This,retVal)
12571#define IUIAutomationElement5_get_CachedAccessKey(This,retVal) (This)->lpVtbl->get_CachedAccessKey(This,retVal)
12572#define IUIAutomationElement5_get_CachedHasKeyboardFocus(This,retVal) (This)->lpVtbl->get_CachedHasKeyboardFocus(This,retVal)
12573#define IUIAutomationElement5_get_CachedIsKeyboardFocusable(This,retVal) (This)->lpVtbl->get_CachedIsKeyboardFocusable(This,retVal)
12574#define IUIAutomationElement5_get_CachedIsEnabled(This,retVal) (This)->lpVtbl->get_CachedIsEnabled(This,retVal)
12575#define IUIAutomationElement5_get_CachedAutomationId(This,retVal) (This)->lpVtbl->get_CachedAutomationId(This,retVal)
12576#define IUIAutomationElement5_get_CachedClassName(This,retVal) (This)->lpVtbl->get_CachedClassName(This,retVal)
12577#define IUIAutomationElement5_get_CachedHelpText(This,retVal) (This)->lpVtbl->get_CachedHelpText(This,retVal)
12578#define IUIAutomationElement5_get_CachedCulture(This,retVal) (This)->lpVtbl->get_CachedCulture(This,retVal)
12579#define IUIAutomationElement5_get_CachedIsControlElement(This,retVal) (This)->lpVtbl->get_CachedIsControlElement(This,retVal)
12580#define IUIAutomationElement5_get_CachedIsContentElement(This,retVal) (This)->lpVtbl->get_CachedIsContentElement(This,retVal)
12581#define IUIAutomationElement5_get_CachedIsPassword(This,retVal) (This)->lpVtbl->get_CachedIsPassword(This,retVal)
12582#define IUIAutomationElement5_get_CachedNativeWindowHandle(This,retVal) (This)->lpVtbl->get_CachedNativeWindowHandle(This,retVal)
12583#define IUIAutomationElement5_get_CachedItemType(This,retVal) (This)->lpVtbl->get_CachedItemType(This,retVal)
12584#define IUIAutomationElement5_get_CachedIsOffscreen(This,retVal) (This)->lpVtbl->get_CachedIsOffscreen(This,retVal)
12585#define IUIAutomationElement5_get_CachedOrientation(This,retVal) (This)->lpVtbl->get_CachedOrientation(This,retVal)
12586#define IUIAutomationElement5_get_CachedFrameworkId(This,retVal) (This)->lpVtbl->get_CachedFrameworkId(This,retVal)
12587#define IUIAutomationElement5_get_CachedIsRequiredForForm(This,retVal) (This)->lpVtbl->get_CachedIsRequiredForForm(This,retVal)
12588#define IUIAutomationElement5_get_CachedItemStatus(This,retVal) (This)->lpVtbl->get_CachedItemStatus(This,retVal)
12589#define IUIAutomationElement5_get_CachedBoundingRectangle(This,retVal) (This)->lpVtbl->get_CachedBoundingRectangle(This,retVal)
12590#define IUIAutomationElement5_get_CachedLabeledBy(This,retVal) (This)->lpVtbl->get_CachedLabeledBy(This,retVal)
12591#define IUIAutomationElement5_get_CachedAriaRole(This,retVal) (This)->lpVtbl->get_CachedAriaRole(This,retVal)
12592#define IUIAutomationElement5_get_CachedAriaProperties(This,retVal) (This)->lpVtbl->get_CachedAriaProperties(This,retVal)
12593#define IUIAutomationElement5_get_CachedIsDataValidForForm(This,retVal) (This)->lpVtbl->get_CachedIsDataValidForForm(This,retVal)
12594#define IUIAutomationElement5_get_CachedControllerFor(This,retVal) (This)->lpVtbl->get_CachedControllerFor(This,retVal)
12595#define IUIAutomationElement5_get_CachedDescribedBy(This,retVal) (This)->lpVtbl->get_CachedDescribedBy(This,retVal)
12596#define IUIAutomationElement5_get_CachedFlowsTo(This,retVal) (This)->lpVtbl->get_CachedFlowsTo(This,retVal)
12597#define IUIAutomationElement5_get_CachedProviderDescription(This,retVal) (This)->lpVtbl->get_CachedProviderDescription(This,retVal)
12598#define IUIAutomationElement5_GetClickablePoint(This,clickable,gotClickable) (This)->lpVtbl->GetClickablePoint(This,clickable,gotClickable)
12599/*** IUIAutomationElement2 methods ***/
12600#define IUIAutomationElement5_get_CurrentOptimizeForVisualContent(This,retVal) (This)->lpVtbl->get_CurrentOptimizeForVisualContent(This,retVal)
12601#define IUIAutomationElement5_get_CachedOptimizeForVisualContent(This,retVal) (This)->lpVtbl->get_CachedOptimizeForVisualContent(This,retVal)
12602#define IUIAutomationElement5_get_CurrentLiveSetting(This,retVal) (This)->lpVtbl->get_CurrentLiveSetting(This,retVal)
12603#define IUIAutomationElement5_get_CachedLiveSetting(This,retVal) (This)->lpVtbl->get_CachedLiveSetting(This,retVal)
12604#define IUIAutomationElement5_get_CurrentFlowsFrom(This,retVal) (This)->lpVtbl->get_CurrentFlowsFrom(This,retVal)
12605#define IUIAutomationElement5_get_CachedFlowsFrom(This,retVal) (This)->lpVtbl->get_CachedFlowsFrom(This,retVal)
12606/*** IUIAutomationElement3 methods ***/
12607#define IUIAutomationElement5_ShowContextMenu(This) (This)->lpVtbl->ShowContextMenu(This)
12608#define IUIAutomationElement5_get_CurrentIsPeripheral(This,retVal) (This)->lpVtbl->get_CurrentIsPeripheral(This,retVal)
12609#define IUIAutomationElement5_get_CachedIsPeripheral(This,retVal) (This)->lpVtbl->get_CachedIsPeripheral(This,retVal)
12610/*** IUIAutomationElement4 methods ***/
12611#define IUIAutomationElement5_get_CurrentPositionInSet(This,retVal) (This)->lpVtbl->get_CurrentPositionInSet(This,retVal)
12612#define IUIAutomationElement5_get_CurrentSizeOfSet(This,retVal) (This)->lpVtbl->get_CurrentSizeOfSet(This,retVal)
12613#define IUIAutomationElement5_get_CurrentLevel(This,retVal) (This)->lpVtbl->get_CurrentLevel(This,retVal)
12614#define IUIAutomationElement5_get_CurrentAnnotationTypes(This,retVal) (This)->lpVtbl->get_CurrentAnnotationTypes(This,retVal)
12615#define IUIAutomationElement5_get_CurrentAnnotationObjects(This,retVal) (This)->lpVtbl->get_CurrentAnnotationObjects(This,retVal)
12616#define IUIAutomationElement5_get_CachedPositionInSet(This,retVal) (This)->lpVtbl->get_CachedPositionInSet(This,retVal)
12617#define IUIAutomationElement5_get_CachedSizeOfSet(This,retVal) (This)->lpVtbl->get_CachedSizeOfSet(This,retVal)
12618#define IUIAutomationElement5_get_CachedLevel(This,retVal) (This)->lpVtbl->get_CachedLevel(This,retVal)
12619#define IUIAutomationElement5_get_CachedAnnotationTypes(This,retVal) (This)->lpVtbl->get_CachedAnnotationTypes(This,retVal)
12620#define IUIAutomationElement5_get_CachedAnnotationObjects(This,retVal) (This)->lpVtbl->get_CachedAnnotationObjects(This,retVal)
12621/*** IUIAutomationElement5 methods ***/
12622#define IUIAutomationElement5_get_CurrentLandmarkType(This,retVal) (This)->lpVtbl->get_CurrentLandmarkType(This,retVal)
12623#define IUIAutomationElement5_get_CurrentLocalizedLandmarkType(This,retVal) (This)->lpVtbl->get_CurrentLocalizedLandmarkType(This,retVal)
12624#define IUIAutomationElement5_get_CachedLandmarkType(This,retVal) (This)->lpVtbl->get_CachedLandmarkType(This,retVal)
12625#define IUIAutomationElement5_get_CachedLocalizedLandmarkType(This,retVal) (This)->lpVtbl->get_CachedLocalizedLandmarkType(This,retVal)
12626#else
12627/*** IUnknown methods ***/
12628static inline HRESULT IUIAutomationElement5_QueryInterface(IUIAutomationElement5* This,REFIID riid,void **ppvObject) {
12629    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
12630}
12631static inline ULONG IUIAutomationElement5_AddRef(IUIAutomationElement5* This) {
12632    return This->lpVtbl->AddRef(This);
12633}
12634static inline ULONG IUIAutomationElement5_Release(IUIAutomationElement5* This) {
12635    return This->lpVtbl->Release(This);
12636}
12637/*** IUIAutomationElement methods ***/
12638static inline HRESULT IUIAutomationElement5_SetFocus(IUIAutomationElement5* This) {
12639    return This->lpVtbl->SetFocus(This);
12640}
12641static inline HRESULT IUIAutomationElement5_GetRuntimeId(IUIAutomationElement5* This,SAFEARRAY **runtimeId) {
12642    return This->lpVtbl->GetRuntimeId(This,runtimeId);
12643}
12644static inline HRESULT IUIAutomationElement5_FindFirst(IUIAutomationElement5* This,enum TreeScope scope,IUIAutomationCondition *condition,IUIAutomationElement **found) {
12645    return This->lpVtbl->FindFirst(This,scope,condition,found);
12646}
12647static inline HRESULT IUIAutomationElement5_FindAll(IUIAutomationElement5* This,enum TreeScope scope,IUIAutomationCondition *condition,IUIAutomationElementArray **found) {
12648    return This->lpVtbl->FindAll(This,scope,condition,found);
12649}
12650static inline HRESULT IUIAutomationElement5_FindFirstBuildCache(IUIAutomationElement5* This,enum TreeScope scope,IUIAutomationCondition *condition,IUIAutomationCacheRequest *cacheRequest,IUIAutomationElement **found) {
12651    return This->lpVtbl->FindFirstBuildCache(This,scope,condition,cacheRequest,found);
12652}
12653static inline HRESULT IUIAutomationElement5_FindAllBuildCache(IUIAutomationElement5* This,enum TreeScope scope,IUIAutomationCondition *condition,IUIAutomationCacheRequest *cacheRequest,IUIAutomationElementArray **found) {
12654    return This->lpVtbl->FindAllBuildCache(This,scope,condition,cacheRequest,found);
12655}
12656static inline HRESULT IUIAutomationElement5_BuildUpdatedCache(IUIAutomationElement5* This,IUIAutomationCacheRequest *cacheRequest,IUIAutomationElement **updatedElement) {
12657    return This->lpVtbl->BuildUpdatedCache(This,cacheRequest,updatedElement);
12658}
12659static inline HRESULT IUIAutomationElement5_GetCurrentPropertyValue(IUIAutomationElement5* This,PROPERTYID propertyId,VARIANT *retVal) {
12660    return This->lpVtbl->GetCurrentPropertyValue(This,propertyId,retVal);
12661}
12662static inline HRESULT IUIAutomationElement5_GetCurrentPropertyValueEx(IUIAutomationElement5* This,PROPERTYID propertyId,WINBOOL ignoreDefaultValue,VARIANT *retVal) {
12663    return This->lpVtbl->GetCurrentPropertyValueEx(This,propertyId,ignoreDefaultValue,retVal);
12664}
12665static inline HRESULT IUIAutomationElement5_GetCachedPropertyValue(IUIAutomationElement5* This,PROPERTYID propertyId,VARIANT *retVal) {
12666    return This->lpVtbl->GetCachedPropertyValue(This,propertyId,retVal);
12667}
12668static inline HRESULT IUIAutomationElement5_GetCachedPropertyValueEx(IUIAutomationElement5* This,PROPERTYID propertyId,WINBOOL ignoreDefaultValue,VARIANT *retVal) {
12669    return This->lpVtbl->GetCachedPropertyValueEx(This,propertyId,ignoreDefaultValue,retVal);
12670}
12671static inline HRESULT IUIAutomationElement5_GetCurrentPatternAs(IUIAutomationElement5* This,PATTERNID patternId,REFIID riid,void **patternObject) {
12672    return This->lpVtbl->GetCurrentPatternAs(This,patternId,riid,patternObject);
12673}
12674static inline HRESULT IUIAutomationElement5_GetCachedPatternAs(IUIAutomationElement5* This,PATTERNID patternId,REFIID riid,void **patternObject) {
12675    return This->lpVtbl->GetCachedPatternAs(This,patternId,riid,patternObject);
12676}
12677static inline HRESULT IUIAutomationElement5_GetCurrentPattern(IUIAutomationElement5* This,PATTERNID patternId,IUnknown **patternObject) {
12678    return This->lpVtbl->GetCurrentPattern(This,patternId,patternObject);
12679}
12680static inline HRESULT IUIAutomationElement5_GetCachedPattern(IUIAutomationElement5* This,PATTERNID patternId,IUnknown **patternObject) {
12681    return This->lpVtbl->GetCachedPattern(This,patternId,patternObject);
12682}
12683static inline HRESULT IUIAutomationElement5_GetCachedParent(IUIAutomationElement5* This,IUIAutomationElement **parent) {
12684    return This->lpVtbl->GetCachedParent(This,parent);
12685}
12686static inline HRESULT IUIAutomationElement5_GetCachedChildren(IUIAutomationElement5* This,IUIAutomationElementArray **children) {
12687    return This->lpVtbl->GetCachedChildren(This,children);
12688}
12689static inline HRESULT IUIAutomationElement5_get_CurrentProcessId(IUIAutomationElement5* This,int *retVal) {
12690    return This->lpVtbl->get_CurrentProcessId(This,retVal);
12691}
12692static inline HRESULT IUIAutomationElement5_get_CurrentControlType(IUIAutomationElement5* This,CONTROLTYPEID *retVal) {
12693    return This->lpVtbl->get_CurrentControlType(This,retVal);
12694}
12695static inline HRESULT IUIAutomationElement5_get_CurrentLocalizedControlType(IUIAutomationElement5* This,BSTR *retVal) {
12696    return This->lpVtbl->get_CurrentLocalizedControlType(This,retVal);
12697}
12698static inline HRESULT IUIAutomationElement5_get_CurrentName(IUIAutomationElement5* This,BSTR *retVal) {
12699    return This->lpVtbl->get_CurrentName(This,retVal);
12700}
12701static inline HRESULT IUIAutomationElement5_get_CurrentAcceleratorKey(IUIAutomationElement5* This,BSTR *retVal) {
12702    return This->lpVtbl->get_CurrentAcceleratorKey(This,retVal);
12703}
12704static inline HRESULT IUIAutomationElement5_get_CurrentAccessKey(IUIAutomationElement5* This,BSTR *retVal) {
12705    return This->lpVtbl->get_CurrentAccessKey(This,retVal);
12706}
12707static inline HRESULT IUIAutomationElement5_get_CurrentHasKeyboardFocus(IUIAutomationElement5* This,WINBOOL *retVal) {
12708    return This->lpVtbl->get_CurrentHasKeyboardFocus(This,retVal);
12709}
12710static inline HRESULT IUIAutomationElement5_get_CurrentIsKeyboardFocusable(IUIAutomationElement5* This,WINBOOL *retVal) {
12711    return This->lpVtbl->get_CurrentIsKeyboardFocusable(This,retVal);
12712}
12713static inline HRESULT IUIAutomationElement5_get_CurrentIsEnabled(IUIAutomationElement5* This,WINBOOL *retVal) {
12714    return This->lpVtbl->get_CurrentIsEnabled(This,retVal);
12715}
12716static inline HRESULT IUIAutomationElement5_get_CurrentAutomationId(IUIAutomationElement5* This,BSTR *retVal) {
12717    return This->lpVtbl->get_CurrentAutomationId(This,retVal);
12718}
12719static inline HRESULT IUIAutomationElement5_get_CurrentClassName(IUIAutomationElement5* This,BSTR *retVal) {
12720    return This->lpVtbl->get_CurrentClassName(This,retVal);
12721}
12722static inline HRESULT IUIAutomationElement5_get_CurrentHelpText(IUIAutomationElement5* This,BSTR *retVal) {
12723    return This->lpVtbl->get_CurrentHelpText(This,retVal);
12724}
12725static inline HRESULT IUIAutomationElement5_get_CurrentCulture(IUIAutomationElement5* This,int *retVal) {
12726    return This->lpVtbl->get_CurrentCulture(This,retVal);
12727}
12728static inline HRESULT IUIAutomationElement5_get_CurrentIsControlElement(IUIAutomationElement5* This,WINBOOL *retVal) {
12729    return This->lpVtbl->get_CurrentIsControlElement(This,retVal);
12730}
12731static inline HRESULT IUIAutomationElement5_get_CurrentIsContentElement(IUIAutomationElement5* This,WINBOOL *retVal) {
12732    return This->lpVtbl->get_CurrentIsContentElement(This,retVal);
12733}
12734static inline HRESULT IUIAutomationElement5_get_CurrentIsPassword(IUIAutomationElement5* This,WINBOOL *retVal) {
12735    return This->lpVtbl->get_CurrentIsPassword(This,retVal);
12736}
12737static inline HRESULT IUIAutomationElement5_get_CurrentNativeWindowHandle(IUIAutomationElement5* This,UIA_HWND *retVal) {
12738    return This->lpVtbl->get_CurrentNativeWindowHandle(This,retVal);
12739}
12740static inline HRESULT IUIAutomationElement5_get_CurrentItemType(IUIAutomationElement5* This,BSTR *retVal) {
12741    return This->lpVtbl->get_CurrentItemType(This,retVal);
12742}
12743static inline HRESULT IUIAutomationElement5_get_CurrentIsOffscreen(IUIAutomationElement5* This,WINBOOL *retVal) {
12744    return This->lpVtbl->get_CurrentIsOffscreen(This,retVal);
12745}
12746static inline HRESULT IUIAutomationElement5_get_CurrentOrientation(IUIAutomationElement5* This,enum OrientationType *retVal) {
12747    return This->lpVtbl->get_CurrentOrientation(This,retVal);
12748}
12749static inline HRESULT IUIAutomationElement5_get_CurrentFrameworkId(IUIAutomationElement5* This,BSTR *retVal) {
12750    return This->lpVtbl->get_CurrentFrameworkId(This,retVal);
12751}
12752static inline HRESULT IUIAutomationElement5_get_CurrentIsRequiredForForm(IUIAutomationElement5* This,WINBOOL *retVal) {
12753    return This->lpVtbl->get_CurrentIsRequiredForForm(This,retVal);
12754}
12755static inline HRESULT IUIAutomationElement5_get_CurrentItemStatus(IUIAutomationElement5* This,BSTR *retVal) {
12756    return This->lpVtbl->get_CurrentItemStatus(This,retVal);
12757}
12758static inline HRESULT IUIAutomationElement5_get_CurrentBoundingRectangle(IUIAutomationElement5* This,RECT *retVal) {
12759    return This->lpVtbl->get_CurrentBoundingRectangle(This,retVal);
12760}
12761static inline HRESULT IUIAutomationElement5_get_CurrentLabeledBy(IUIAutomationElement5* This,IUIAutomationElement **retVal) {
12762    return This->lpVtbl->get_CurrentLabeledBy(This,retVal);
12763}
12764static inline HRESULT IUIAutomationElement5_get_CurrentAriaRole(IUIAutomationElement5* This,BSTR *retVal) {
12765    return This->lpVtbl->get_CurrentAriaRole(This,retVal);
12766}
12767static inline HRESULT IUIAutomationElement5_get_CurrentAriaProperties(IUIAutomationElement5* This,BSTR *retVal) {
12768    return This->lpVtbl->get_CurrentAriaProperties(This,retVal);
12769}
12770static inline HRESULT IUIAutomationElement5_get_CurrentIsDataValidForForm(IUIAutomationElement5* This,WINBOOL *retVal) {
12771    return This->lpVtbl->get_CurrentIsDataValidForForm(This,retVal);
12772}
12773static inline HRESULT IUIAutomationElement5_get_CurrentControllerFor(IUIAutomationElement5* This,IUIAutomationElementArray **retVal) {
12774    return This->lpVtbl->get_CurrentControllerFor(This,retVal);
12775}
12776static inline HRESULT IUIAutomationElement5_get_CurrentDescribedBy(IUIAutomationElement5* This,IUIAutomationElementArray **retVal) {
12777    return This->lpVtbl->get_CurrentDescribedBy(This,retVal);
12778}
12779static inline HRESULT IUIAutomationElement5_get_CurrentFlowsTo(IUIAutomationElement5* This,IUIAutomationElementArray **retVal) {
12780    return This->lpVtbl->get_CurrentFlowsTo(This,retVal);
12781}
12782static inline HRESULT IUIAutomationElement5_get_CurrentProviderDescription(IUIAutomationElement5* This,BSTR *retVal) {
12783    return This->lpVtbl->get_CurrentProviderDescription(This,retVal);
12784}
12785static inline HRESULT IUIAutomationElement5_get_CachedProcessId(IUIAutomationElement5* This,int *retVal) {
12786    return This->lpVtbl->get_CachedProcessId(This,retVal);
12787}
12788static inline HRESULT IUIAutomationElement5_get_CachedControlType(IUIAutomationElement5* This,CONTROLTYPEID *retVal) {
12789    return This->lpVtbl->get_CachedControlType(This,retVal);
12790}
12791static inline HRESULT IUIAutomationElement5_get_CachedLocalizedControlType(IUIAutomationElement5* This,BSTR *retVal) {
12792    return This->lpVtbl->get_CachedLocalizedControlType(This,retVal);
12793}
12794static inline HRESULT IUIAutomationElement5_get_CachedName(IUIAutomationElement5* This,BSTR *retVal) {
12795    return This->lpVtbl->get_CachedName(This,retVal);
12796}
12797static inline HRESULT IUIAutomationElement5_get_CachedAcceleratorKey(IUIAutomationElement5* This,BSTR *retVal) {
12798    return This->lpVtbl->get_CachedAcceleratorKey(This,retVal);
12799}
12800static inline HRESULT IUIAutomationElement5_get_CachedAccessKey(IUIAutomationElement5* This,BSTR *retVal) {
12801    return This->lpVtbl->get_CachedAccessKey(This,retVal);
12802}
12803static inline HRESULT IUIAutomationElement5_get_CachedHasKeyboardFocus(IUIAutomationElement5* This,WINBOOL *retVal) {
12804    return This->lpVtbl->get_CachedHasKeyboardFocus(This,retVal);
12805}
12806static inline HRESULT IUIAutomationElement5_get_CachedIsKeyboardFocusable(IUIAutomationElement5* This,WINBOOL *retVal) {
12807    return This->lpVtbl->get_CachedIsKeyboardFocusable(This,retVal);
12808}
12809static inline HRESULT IUIAutomationElement5_get_CachedIsEnabled(IUIAutomationElement5* This,WINBOOL *retVal) {
12810    return This->lpVtbl->get_CachedIsEnabled(This,retVal);
12811}
12812static inline HRESULT IUIAutomationElement5_get_CachedAutomationId(IUIAutomationElement5* This,BSTR *retVal) {
12813    return This->lpVtbl->get_CachedAutomationId(This,retVal);
12814}
12815static inline HRESULT IUIAutomationElement5_get_CachedClassName(IUIAutomationElement5* This,BSTR *retVal) {
12816    return This->lpVtbl->get_CachedClassName(This,retVal);
12817}
12818static inline HRESULT IUIAutomationElement5_get_CachedHelpText(IUIAutomationElement5* This,BSTR *retVal) {
12819    return This->lpVtbl->get_CachedHelpText(This,retVal);
12820}
12821static inline HRESULT IUIAutomationElement5_get_CachedCulture(IUIAutomationElement5* This,int *retVal) {
12822    return This->lpVtbl->get_CachedCulture(This,retVal);
12823}
12824static inline HRESULT IUIAutomationElement5_get_CachedIsControlElement(IUIAutomationElement5* This,WINBOOL *retVal) {
12825    return This->lpVtbl->get_CachedIsControlElement(This,retVal);
12826}
12827static inline HRESULT IUIAutomationElement5_get_CachedIsContentElement(IUIAutomationElement5* This,WINBOOL *retVal) {
12828    return This->lpVtbl->get_CachedIsContentElement(This,retVal);
12829}
12830static inline HRESULT IUIAutomationElement5_get_CachedIsPassword(IUIAutomationElement5* This,WINBOOL *retVal) {
12831    return This->lpVtbl->get_CachedIsPassword(This,retVal);
12832}
12833static inline HRESULT IUIAutomationElement5_get_CachedNativeWindowHandle(IUIAutomationElement5* This,UIA_HWND *retVal) {
12834    return This->lpVtbl->get_CachedNativeWindowHandle(This,retVal);
12835}
12836static inline HRESULT IUIAutomationElement5_get_CachedItemType(IUIAutomationElement5* This,BSTR *retVal) {
12837    return This->lpVtbl->get_CachedItemType(This,retVal);
12838}
12839static inline HRESULT IUIAutomationElement5_get_CachedIsOffscreen(IUIAutomationElement5* This,WINBOOL *retVal) {
12840    return This->lpVtbl->get_CachedIsOffscreen(This,retVal);
12841}
12842static inline HRESULT IUIAutomationElement5_get_CachedOrientation(IUIAutomationElement5* This,enum OrientationType *retVal) {
12843    return This->lpVtbl->get_CachedOrientation(This,retVal);
12844}
12845static inline HRESULT IUIAutomationElement5_get_CachedFrameworkId(IUIAutomationElement5* This,BSTR *retVal) {
12846    return This->lpVtbl->get_CachedFrameworkId(This,retVal);
12847}
12848static inline HRESULT IUIAutomationElement5_get_CachedIsRequiredForForm(IUIAutomationElement5* This,WINBOOL *retVal) {
12849    return This->lpVtbl->get_CachedIsRequiredForForm(This,retVal);
12850}
12851static inline HRESULT IUIAutomationElement5_get_CachedItemStatus(IUIAutomationElement5* This,BSTR *retVal) {
12852    return This->lpVtbl->get_CachedItemStatus(This,retVal);
12853}
12854static inline HRESULT IUIAutomationElement5_get_CachedBoundingRectangle(IUIAutomationElement5* This,RECT *retVal) {
12855    return This->lpVtbl->get_CachedBoundingRectangle(This,retVal);
12856}
12857static inline HRESULT IUIAutomationElement5_get_CachedLabeledBy(IUIAutomationElement5* This,IUIAutomationElement **retVal) {
12858    return This->lpVtbl->get_CachedLabeledBy(This,retVal);
12859}
12860static inline HRESULT IUIAutomationElement5_get_CachedAriaRole(IUIAutomationElement5* This,BSTR *retVal) {
12861    return This->lpVtbl->get_CachedAriaRole(This,retVal);
12862}
12863static inline HRESULT IUIAutomationElement5_get_CachedAriaProperties(IUIAutomationElement5* This,BSTR *retVal) {
12864    return This->lpVtbl->get_CachedAriaProperties(This,retVal);
12865}
12866static inline HRESULT IUIAutomationElement5_get_CachedIsDataValidForForm(IUIAutomationElement5* This,WINBOOL *retVal) {
12867    return This->lpVtbl->get_CachedIsDataValidForForm(This,retVal);
12868}
12869static inline HRESULT IUIAutomationElement5_get_CachedControllerFor(IUIAutomationElement5* This,IUIAutomationElementArray **retVal) {
12870    return This->lpVtbl->get_CachedControllerFor(This,retVal);
12871}
12872static inline HRESULT IUIAutomationElement5_get_CachedDescribedBy(IUIAutomationElement5* This,IUIAutomationElementArray **retVal) {
12873    return This->lpVtbl->get_CachedDescribedBy(This,retVal);
12874}
12875static inline HRESULT IUIAutomationElement5_get_CachedFlowsTo(IUIAutomationElement5* This,IUIAutomationElementArray **retVal) {
12876    return This->lpVtbl->get_CachedFlowsTo(This,retVal);
12877}
12878static inline HRESULT IUIAutomationElement5_get_CachedProviderDescription(IUIAutomationElement5* This,BSTR *retVal) {
12879    return This->lpVtbl->get_CachedProviderDescription(This,retVal);
12880}
12881static inline HRESULT IUIAutomationElement5_GetClickablePoint(IUIAutomationElement5* This,POINT *clickable,WINBOOL *gotClickable) {
12882    return This->lpVtbl->GetClickablePoint(This,clickable,gotClickable);
12883}
12884/*** IUIAutomationElement2 methods ***/
12885static inline HRESULT IUIAutomationElement5_get_CurrentOptimizeForVisualContent(IUIAutomationElement5* This,WINBOOL *retVal) {
12886    return This->lpVtbl->get_CurrentOptimizeForVisualContent(This,retVal);
12887}
12888static inline HRESULT IUIAutomationElement5_get_CachedOptimizeForVisualContent(IUIAutomationElement5* This,WINBOOL *retVal) {
12889    return This->lpVtbl->get_CachedOptimizeForVisualContent(This,retVal);
12890}
12891static inline HRESULT IUIAutomationElement5_get_CurrentLiveSetting(IUIAutomationElement5* This,enum LiveSetting *retVal) {
12892    return This->lpVtbl->get_CurrentLiveSetting(This,retVal);
12893}
12894static inline HRESULT IUIAutomationElement5_get_CachedLiveSetting(IUIAutomationElement5* This,enum LiveSetting *retVal) {
12895    return This->lpVtbl->get_CachedLiveSetting(This,retVal);
12896}
12897static inline HRESULT IUIAutomationElement5_get_CurrentFlowsFrom(IUIAutomationElement5* This,IUIAutomationElementArray **retVal) {
12898    return This->lpVtbl->get_CurrentFlowsFrom(This,retVal);
12899}
12900static inline HRESULT IUIAutomationElement5_get_CachedFlowsFrom(IUIAutomationElement5* This,IUIAutomationElementArray **retVal) {
12901    return This->lpVtbl->get_CachedFlowsFrom(This,retVal);
12902}
12903/*** IUIAutomationElement3 methods ***/
12904static inline HRESULT IUIAutomationElement5_ShowContextMenu(IUIAutomationElement5* This) {
12905    return This->lpVtbl->ShowContextMenu(This);
12906}
12907static inline HRESULT IUIAutomationElement5_get_CurrentIsPeripheral(IUIAutomationElement5* This,WINBOOL *retVal) {
12908    return This->lpVtbl->get_CurrentIsPeripheral(This,retVal);
12909}
12910static inline HRESULT IUIAutomationElement5_get_CachedIsPeripheral(IUIAutomationElement5* This,WINBOOL *retVal) {
12911    return This->lpVtbl->get_CachedIsPeripheral(This,retVal);
12912}
12913/*** IUIAutomationElement4 methods ***/
12914static inline HRESULT IUIAutomationElement5_get_CurrentPositionInSet(IUIAutomationElement5* This,int *retVal) {
12915    return This->lpVtbl->get_CurrentPositionInSet(This,retVal);
12916}
12917static inline HRESULT IUIAutomationElement5_get_CurrentSizeOfSet(IUIAutomationElement5* This,int *retVal) {
12918    return This->lpVtbl->get_CurrentSizeOfSet(This,retVal);
12919}
12920static inline HRESULT IUIAutomationElement5_get_CurrentLevel(IUIAutomationElement5* This,int *retVal) {
12921    return This->lpVtbl->get_CurrentLevel(This,retVal);
12922}
12923static inline HRESULT IUIAutomationElement5_get_CurrentAnnotationTypes(IUIAutomationElement5* This,SAFEARRAY **retVal) {
12924    return This->lpVtbl->get_CurrentAnnotationTypes(This,retVal);
12925}
12926static inline HRESULT IUIAutomationElement5_get_CurrentAnnotationObjects(IUIAutomationElement5* This,IUIAutomationElementArray **retVal) {
12927    return This->lpVtbl->get_CurrentAnnotationObjects(This,retVal);
12928}
12929static inline HRESULT IUIAutomationElement5_get_CachedPositionInSet(IUIAutomationElement5* This,int *retVal) {
12930    return This->lpVtbl->get_CachedPositionInSet(This,retVal);
12931}
12932static inline HRESULT IUIAutomationElement5_get_CachedSizeOfSet(IUIAutomationElement5* This,int *retVal) {
12933    return This->lpVtbl->get_CachedSizeOfSet(This,retVal);
12934}
12935static inline HRESULT IUIAutomationElement5_get_CachedLevel(IUIAutomationElement5* This,int *retVal) {
12936    return This->lpVtbl->get_CachedLevel(This,retVal);
12937}
12938static inline HRESULT IUIAutomationElement5_get_CachedAnnotationTypes(IUIAutomationElement5* This,SAFEARRAY **retVal) {
12939    return This->lpVtbl->get_CachedAnnotationTypes(This,retVal);
12940}
12941static inline HRESULT IUIAutomationElement5_get_CachedAnnotationObjects(IUIAutomationElement5* This,IUIAutomationElementArray **retVal) {
12942    return This->lpVtbl->get_CachedAnnotationObjects(This,retVal);
12943}
12944/*** IUIAutomationElement5 methods ***/
12945static inline HRESULT IUIAutomationElement5_get_CurrentLandmarkType(IUIAutomationElement5* This,LANDMARKTYPEID *retVal) {
12946    return This->lpVtbl->get_CurrentLandmarkType(This,retVal);
12947}
12948static inline HRESULT IUIAutomationElement5_get_CurrentLocalizedLandmarkType(IUIAutomationElement5* This,BSTR *retVal) {
12949    return This->lpVtbl->get_CurrentLocalizedLandmarkType(This,retVal);
12950}
12951static inline HRESULT IUIAutomationElement5_get_CachedLandmarkType(IUIAutomationElement5* This,LANDMARKTYPEID *retVal) {
12952    return This->lpVtbl->get_CachedLandmarkType(This,retVal);
12953}
12954static inline HRESULT IUIAutomationElement5_get_CachedLocalizedLandmarkType(IUIAutomationElement5* This,BSTR *retVal) {
12955    return This->lpVtbl->get_CachedLocalizedLandmarkType(This,retVal);
12956}
12957#endif
12958#endif
12959
12960#endif
12961
12962
12963#endif  /* __IUIAutomationElement5_INTERFACE_DEFINED__ */
12964
12965/*****************************************************************************
12966 * IUIAutomationElement6 interface
12967 */
12968#ifndef __IUIAutomationElement6_INTERFACE_DEFINED__
12969#define __IUIAutomationElement6_INTERFACE_DEFINED__
12970
12971DEFINE_GUID(IID_IUIAutomationElement6, 0x4780d450, 0x8bca, 0x4977, 0xaf,0xa5, 0xa4,0xa5,0x17,0xf5,0x55,0xe3);
12972#if defined(__cplusplus) && !defined(CINTERFACE)
12973MIDL_INTERFACE("4780d450-8bca-4977-afa5-a4a517f555e3")
12974IUIAutomationElement6 : public IUIAutomationElement5
12975{
12976    virtual HRESULT STDMETHODCALLTYPE get_CurrentFullDescription(
12977        BSTR *retVal) = 0;
12978
12979    virtual HRESULT STDMETHODCALLTYPE get_CachedFullDescription(
12980        BSTR *retVal) = 0;
12981
12982};
12983#ifdef __CRT_UUID_DECL
12984__CRT_UUID_DECL(IUIAutomationElement6, 0x4780d450, 0x8bca, 0x4977, 0xaf,0xa5, 0xa4,0xa5,0x17,0xf5,0x55,0xe3)
12985#endif
12986#else
12987typedef struct IUIAutomationElement6Vtbl {
12988    BEGIN_INTERFACE
12989
12990    /*** IUnknown methods ***/
12991    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
12992        IUIAutomationElement6 *This,
12993        REFIID riid,
12994        void **ppvObject);
12995
12996    ULONG (STDMETHODCALLTYPE *AddRef)(
12997        IUIAutomationElement6 *This);
12998
12999    ULONG (STDMETHODCALLTYPE *Release)(
13000        IUIAutomationElement6 *This);
13001
13002    /*** IUIAutomationElement methods ***/
13003    HRESULT (STDMETHODCALLTYPE *SetFocus)(
13004        IUIAutomationElement6 *This);
13005
13006    HRESULT (STDMETHODCALLTYPE *GetRuntimeId)(
13007        IUIAutomationElement6 *This,
13008        SAFEARRAY **runtimeId);
13009
13010    HRESULT (STDMETHODCALLTYPE *FindFirst)(
13011        IUIAutomationElement6 *This,
13012        enum TreeScope scope,
13013        IUIAutomationCondition *condition,
13014        IUIAutomationElement **found);
13015
13016    HRESULT (STDMETHODCALLTYPE *FindAll)(
13017        IUIAutomationElement6 *This,
13018        enum TreeScope scope,
13019        IUIAutomationCondition *condition,
13020        IUIAutomationElementArray **found);
13021
13022    HRESULT (STDMETHODCALLTYPE *FindFirstBuildCache)(
13023        IUIAutomationElement6 *This,
13024        enum TreeScope scope,
13025        IUIAutomationCondition *condition,
13026        IUIAutomationCacheRequest *cacheRequest,
13027        IUIAutomationElement **found);
13028
13029    HRESULT (STDMETHODCALLTYPE *FindAllBuildCache)(
13030        IUIAutomationElement6 *This,
13031        enum TreeScope scope,
13032        IUIAutomationCondition *condition,
13033        IUIAutomationCacheRequest *cacheRequest,
13034        IUIAutomationElementArray **found);
13035
13036    HRESULT (STDMETHODCALLTYPE *BuildUpdatedCache)(
13037        IUIAutomationElement6 *This,
13038        IUIAutomationCacheRequest *cacheRequest,
13039        IUIAutomationElement **updatedElement);
13040
13041    HRESULT (STDMETHODCALLTYPE *GetCurrentPropertyValue)(
13042        IUIAutomationElement6 *This,
13043        PROPERTYID propertyId,
13044        VARIANT *retVal);
13045
13046    HRESULT (STDMETHODCALLTYPE *GetCurrentPropertyValueEx)(
13047        IUIAutomationElement6 *This,
13048        PROPERTYID propertyId,
13049        WINBOOL ignoreDefaultValue,
13050        VARIANT *retVal);
13051
13052    HRESULT (STDMETHODCALLTYPE *GetCachedPropertyValue)(
13053        IUIAutomationElement6 *This,
13054        PROPERTYID propertyId,
13055        VARIANT *retVal);
13056
13057    HRESULT (STDMETHODCALLTYPE *GetCachedPropertyValueEx)(
13058        IUIAutomationElement6 *This,
13059        PROPERTYID propertyId,
13060        WINBOOL ignoreDefaultValue,
13061        VARIANT *retVal);
13062
13063    HRESULT (STDMETHODCALLTYPE *GetCurrentPatternAs)(
13064        IUIAutomationElement6 *This,
13065        PATTERNID patternId,
13066        REFIID riid,
13067        void **patternObject);
13068
13069    HRESULT (STDMETHODCALLTYPE *GetCachedPatternAs)(
13070        IUIAutomationElement6 *This,
13071        PATTERNID patternId,
13072        REFIID riid,
13073        void **patternObject);
13074
13075    HRESULT (STDMETHODCALLTYPE *GetCurrentPattern)(
13076        IUIAutomationElement6 *This,
13077        PATTERNID patternId,
13078        IUnknown **patternObject);
13079
13080    HRESULT (STDMETHODCALLTYPE *GetCachedPattern)(
13081        IUIAutomationElement6 *This,
13082        PATTERNID patternId,
13083        IUnknown **patternObject);
13084
13085    HRESULT (STDMETHODCALLTYPE *GetCachedParent)(
13086        IUIAutomationElement6 *This,
13087        IUIAutomationElement **parent);
13088
13089    HRESULT (STDMETHODCALLTYPE *GetCachedChildren)(
13090        IUIAutomationElement6 *This,
13091        IUIAutomationElementArray **children);
13092
13093    HRESULT (STDMETHODCALLTYPE *get_CurrentProcessId)(
13094        IUIAutomationElement6 *This,
13095        int *retVal);
13096
13097    HRESULT (STDMETHODCALLTYPE *get_CurrentControlType)(
13098        IUIAutomationElement6 *This,
13099        CONTROLTYPEID *retVal);
13100
13101    HRESULT (STDMETHODCALLTYPE *get_CurrentLocalizedControlType)(
13102        IUIAutomationElement6 *This,
13103        BSTR *retVal);
13104
13105    HRESULT (STDMETHODCALLTYPE *get_CurrentName)(
13106        IUIAutomationElement6 *This,
13107        BSTR *retVal);
13108
13109    HRESULT (STDMETHODCALLTYPE *get_CurrentAcceleratorKey)(
13110        IUIAutomationElement6 *This,
13111        BSTR *retVal);
13112
13113    HRESULT (STDMETHODCALLTYPE *get_CurrentAccessKey)(
13114        IUIAutomationElement6 *This,
13115        BSTR *retVal);
13116
13117    HRESULT (STDMETHODCALLTYPE *get_CurrentHasKeyboardFocus)(
13118        IUIAutomationElement6 *This,
13119        WINBOOL *retVal);
13120
13121    HRESULT (STDMETHODCALLTYPE *get_CurrentIsKeyboardFocusable)(
13122        IUIAutomationElement6 *This,
13123        WINBOOL *retVal);
13124
13125    HRESULT (STDMETHODCALLTYPE *get_CurrentIsEnabled)(
13126        IUIAutomationElement6 *This,
13127        WINBOOL *retVal);
13128
13129    HRESULT (STDMETHODCALLTYPE *get_CurrentAutomationId)(
13130        IUIAutomationElement6 *This,
13131        BSTR *retVal);
13132
13133    HRESULT (STDMETHODCALLTYPE *get_CurrentClassName)(
13134        IUIAutomationElement6 *This,
13135        BSTR *retVal);
13136
13137    HRESULT (STDMETHODCALLTYPE *get_CurrentHelpText)(
13138        IUIAutomationElement6 *This,
13139        BSTR *retVal);
13140
13141    HRESULT (STDMETHODCALLTYPE *get_CurrentCulture)(
13142        IUIAutomationElement6 *This,
13143        int *retVal);
13144
13145    HRESULT (STDMETHODCALLTYPE *get_CurrentIsControlElement)(
13146        IUIAutomationElement6 *This,
13147        WINBOOL *retVal);
13148
13149    HRESULT (STDMETHODCALLTYPE *get_CurrentIsContentElement)(
13150        IUIAutomationElement6 *This,
13151        WINBOOL *retVal);
13152
13153    HRESULT (STDMETHODCALLTYPE *get_CurrentIsPassword)(
13154        IUIAutomationElement6 *This,
13155        WINBOOL *retVal);
13156
13157    HRESULT (STDMETHODCALLTYPE *get_CurrentNativeWindowHandle)(
13158        IUIAutomationElement6 *This,
13159        UIA_HWND *retVal);
13160
13161    HRESULT (STDMETHODCALLTYPE *get_CurrentItemType)(
13162        IUIAutomationElement6 *This,
13163        BSTR *retVal);
13164
13165    HRESULT (STDMETHODCALLTYPE *get_CurrentIsOffscreen)(
13166        IUIAutomationElement6 *This,
13167        WINBOOL *retVal);
13168
13169    HRESULT (STDMETHODCALLTYPE *get_CurrentOrientation)(
13170        IUIAutomationElement6 *This,
13171        enum OrientationType *retVal);
13172
13173    HRESULT (STDMETHODCALLTYPE *get_CurrentFrameworkId)(
13174        IUIAutomationElement6 *This,
13175        BSTR *retVal);
13176
13177    HRESULT (STDMETHODCALLTYPE *get_CurrentIsRequiredForForm)(
13178        IUIAutomationElement6 *This,
13179        WINBOOL *retVal);
13180
13181    HRESULT (STDMETHODCALLTYPE *get_CurrentItemStatus)(
13182        IUIAutomationElement6 *This,
13183        BSTR *retVal);
13184
13185    HRESULT (STDMETHODCALLTYPE *get_CurrentBoundingRectangle)(
13186        IUIAutomationElement6 *This,
13187        RECT *retVal);
13188
13189    HRESULT (STDMETHODCALLTYPE *get_CurrentLabeledBy)(
13190        IUIAutomationElement6 *This,
13191        IUIAutomationElement **retVal);
13192
13193    HRESULT (STDMETHODCALLTYPE *get_CurrentAriaRole)(
13194        IUIAutomationElement6 *This,
13195        BSTR *retVal);
13196
13197    HRESULT (STDMETHODCALLTYPE *get_CurrentAriaProperties)(
13198        IUIAutomationElement6 *This,
13199        BSTR *retVal);
13200
13201    HRESULT (STDMETHODCALLTYPE *get_CurrentIsDataValidForForm)(
13202        IUIAutomationElement6 *This,
13203        WINBOOL *retVal);
13204
13205    HRESULT (STDMETHODCALLTYPE *get_CurrentControllerFor)(
13206        IUIAutomationElement6 *This,
13207        IUIAutomationElementArray **retVal);
13208
13209    HRESULT (STDMETHODCALLTYPE *get_CurrentDescribedBy)(
13210        IUIAutomationElement6 *This,
13211        IUIAutomationElementArray **retVal);
13212
13213    HRESULT (STDMETHODCALLTYPE *get_CurrentFlowsTo)(
13214        IUIAutomationElement6 *This,
13215        IUIAutomationElementArray **retVal);
13216
13217    HRESULT (STDMETHODCALLTYPE *get_CurrentProviderDescription)(
13218        IUIAutomationElement6 *This,
13219        BSTR *retVal);
13220
13221    HRESULT (STDMETHODCALLTYPE *get_CachedProcessId)(
13222        IUIAutomationElement6 *This,
13223        int *retVal);
13224
13225    HRESULT (STDMETHODCALLTYPE *get_CachedControlType)(
13226        IUIAutomationElement6 *This,
13227        CONTROLTYPEID *retVal);
13228
13229    HRESULT (STDMETHODCALLTYPE *get_CachedLocalizedControlType)(
13230        IUIAutomationElement6 *This,
13231        BSTR *retVal);
13232
13233    HRESULT (STDMETHODCALLTYPE *get_CachedName)(
13234        IUIAutomationElement6 *This,
13235        BSTR *retVal);
13236
13237    HRESULT (STDMETHODCALLTYPE *get_CachedAcceleratorKey)(
13238        IUIAutomationElement6 *This,
13239        BSTR *retVal);
13240
13241    HRESULT (STDMETHODCALLTYPE *get_CachedAccessKey)(
13242        IUIAutomationElement6 *This,
13243        BSTR *retVal);
13244
13245    HRESULT (STDMETHODCALLTYPE *get_CachedHasKeyboardFocus)(
13246        IUIAutomationElement6 *This,
13247        WINBOOL *retVal);
13248
13249    HRESULT (STDMETHODCALLTYPE *get_CachedIsKeyboardFocusable)(
13250        IUIAutomationElement6 *This,
13251        WINBOOL *retVal);
13252
13253    HRESULT (STDMETHODCALLTYPE *get_CachedIsEnabled)(
13254        IUIAutomationElement6 *This,
13255        WINBOOL *retVal);
13256
13257    HRESULT (STDMETHODCALLTYPE *get_CachedAutomationId)(
13258        IUIAutomationElement6 *This,
13259        BSTR *retVal);
13260
13261    HRESULT (STDMETHODCALLTYPE *get_CachedClassName)(
13262        IUIAutomationElement6 *This,
13263        BSTR *retVal);
13264
13265    HRESULT (STDMETHODCALLTYPE *get_CachedHelpText)(
13266        IUIAutomationElement6 *This,
13267        BSTR *retVal);
13268
13269    HRESULT (STDMETHODCALLTYPE *get_CachedCulture)(
13270        IUIAutomationElement6 *This,
13271        int *retVal);
13272
13273    HRESULT (STDMETHODCALLTYPE *get_CachedIsControlElement)(
13274        IUIAutomationElement6 *This,
13275        WINBOOL *retVal);
13276
13277    HRESULT (STDMETHODCALLTYPE *get_CachedIsContentElement)(
13278        IUIAutomationElement6 *This,
13279        WINBOOL *retVal);
13280
13281    HRESULT (STDMETHODCALLTYPE *get_CachedIsPassword)(
13282        IUIAutomationElement6 *This,
13283        WINBOOL *retVal);
13284
13285    HRESULT (STDMETHODCALLTYPE *get_CachedNativeWindowHandle)(
13286        IUIAutomationElement6 *This,
13287        UIA_HWND *retVal);
13288
13289    HRESULT (STDMETHODCALLTYPE *get_CachedItemType)(
13290        IUIAutomationElement6 *This,
13291        BSTR *retVal);
13292
13293    HRESULT (STDMETHODCALLTYPE *get_CachedIsOffscreen)(
13294        IUIAutomationElement6 *This,
13295        WINBOOL *retVal);
13296
13297    HRESULT (STDMETHODCALLTYPE *get_CachedOrientation)(
13298        IUIAutomationElement6 *This,
13299        enum OrientationType *retVal);
13300
13301    HRESULT (STDMETHODCALLTYPE *get_CachedFrameworkId)(
13302        IUIAutomationElement6 *This,
13303        BSTR *retVal);
13304
13305    HRESULT (STDMETHODCALLTYPE *get_CachedIsRequiredForForm)(
13306        IUIAutomationElement6 *This,
13307        WINBOOL *retVal);
13308
13309    HRESULT (STDMETHODCALLTYPE *get_CachedItemStatus)(
13310        IUIAutomationElement6 *This,
13311        BSTR *retVal);
13312
13313    HRESULT (STDMETHODCALLTYPE *get_CachedBoundingRectangle)(
13314        IUIAutomationElement6 *This,
13315        RECT *retVal);
13316
13317    HRESULT (STDMETHODCALLTYPE *get_CachedLabeledBy)(
13318        IUIAutomationElement6 *This,
13319        IUIAutomationElement **retVal);
13320
13321    HRESULT (STDMETHODCALLTYPE *get_CachedAriaRole)(
13322        IUIAutomationElement6 *This,
13323        BSTR *retVal);
13324
13325    HRESULT (STDMETHODCALLTYPE *get_CachedAriaProperties)(
13326        IUIAutomationElement6 *This,
13327        BSTR *retVal);
13328
13329    HRESULT (STDMETHODCALLTYPE *get_CachedIsDataValidForForm)(
13330        IUIAutomationElement6 *This,
13331        WINBOOL *retVal);
13332
13333    HRESULT (STDMETHODCALLTYPE *get_CachedControllerFor)(
13334        IUIAutomationElement6 *This,
13335        IUIAutomationElementArray **retVal);
13336
13337    HRESULT (STDMETHODCALLTYPE *get_CachedDescribedBy)(
13338        IUIAutomationElement6 *This,
13339        IUIAutomationElementArray **retVal);
13340
13341    HRESULT (STDMETHODCALLTYPE *get_CachedFlowsTo)(
13342        IUIAutomationElement6 *This,
13343        IUIAutomationElementArray **retVal);
13344
13345    HRESULT (STDMETHODCALLTYPE *get_CachedProviderDescription)(
13346        IUIAutomationElement6 *This,
13347        BSTR *retVal);
13348
13349    HRESULT (STDMETHODCALLTYPE *GetClickablePoint)(
13350        IUIAutomationElement6 *This,
13351        POINT *clickable,
13352        WINBOOL *gotClickable);
13353
13354    /*** IUIAutomationElement2 methods ***/
13355    HRESULT (STDMETHODCALLTYPE *get_CurrentOptimizeForVisualContent)(
13356        IUIAutomationElement6 *This,
13357        WINBOOL *retVal);
13358
13359    HRESULT (STDMETHODCALLTYPE *get_CachedOptimizeForVisualContent)(
13360        IUIAutomationElement6 *This,
13361        WINBOOL *retVal);
13362
13363    HRESULT (STDMETHODCALLTYPE *get_CurrentLiveSetting)(
13364        IUIAutomationElement6 *This,
13365        enum LiveSetting *retVal);
13366
13367    HRESULT (STDMETHODCALLTYPE *get_CachedLiveSetting)(
13368        IUIAutomationElement6 *This,
13369        enum LiveSetting *retVal);
13370
13371    HRESULT (STDMETHODCALLTYPE *get_CurrentFlowsFrom)(
13372        IUIAutomationElement6 *This,
13373        IUIAutomationElementArray **retVal);
13374
13375    HRESULT (STDMETHODCALLTYPE *get_CachedFlowsFrom)(
13376        IUIAutomationElement6 *This,
13377        IUIAutomationElementArray **retVal);
13378
13379    /*** IUIAutomationElement3 methods ***/
13380    HRESULT (STDMETHODCALLTYPE *ShowContextMenu)(
13381        IUIAutomationElement6 *This);
13382
13383    HRESULT (STDMETHODCALLTYPE *get_CurrentIsPeripheral)(
13384        IUIAutomationElement6 *This,
13385        WINBOOL *retVal);
13386
13387    HRESULT (STDMETHODCALLTYPE *get_CachedIsPeripheral)(
13388        IUIAutomationElement6 *This,
13389        WINBOOL *retVal);
13390
13391    /*** IUIAutomationElement4 methods ***/
13392    HRESULT (STDMETHODCALLTYPE *get_CurrentPositionInSet)(
13393        IUIAutomationElement6 *This,
13394        int *retVal);
13395
13396    HRESULT (STDMETHODCALLTYPE *get_CurrentSizeOfSet)(
13397        IUIAutomationElement6 *This,
13398        int *retVal);
13399
13400    HRESULT (STDMETHODCALLTYPE *get_CurrentLevel)(
13401        IUIAutomationElement6 *This,
13402        int *retVal);
13403
13404    HRESULT (STDMETHODCALLTYPE *get_CurrentAnnotationTypes)(
13405        IUIAutomationElement6 *This,
13406        SAFEARRAY **retVal);
13407
13408    HRESULT (STDMETHODCALLTYPE *get_CurrentAnnotationObjects)(
13409        IUIAutomationElement6 *This,
13410        IUIAutomationElementArray **retVal);
13411
13412    HRESULT (STDMETHODCALLTYPE *get_CachedPositionInSet)(
13413        IUIAutomationElement6 *This,
13414        int *retVal);
13415
13416    HRESULT (STDMETHODCALLTYPE *get_CachedSizeOfSet)(
13417        IUIAutomationElement6 *This,
13418        int *retVal);
13419
13420    HRESULT (STDMETHODCALLTYPE *get_CachedLevel)(
13421        IUIAutomationElement6 *This,
13422        int *retVal);
13423
13424    HRESULT (STDMETHODCALLTYPE *get_CachedAnnotationTypes)(
13425        IUIAutomationElement6 *This,
13426        SAFEARRAY **retVal);
13427
13428    HRESULT (STDMETHODCALLTYPE *get_CachedAnnotationObjects)(
13429        IUIAutomationElement6 *This,
13430        IUIAutomationElementArray **retVal);
13431
13432    /*** IUIAutomationElement5 methods ***/
13433    HRESULT (STDMETHODCALLTYPE *get_CurrentLandmarkType)(
13434        IUIAutomationElement6 *This,
13435        LANDMARKTYPEID *retVal);
13436
13437    HRESULT (STDMETHODCALLTYPE *get_CurrentLocalizedLandmarkType)(
13438        IUIAutomationElement6 *This,
13439        BSTR *retVal);
13440
13441    HRESULT (STDMETHODCALLTYPE *get_CachedLandmarkType)(
13442        IUIAutomationElement6 *This,
13443        LANDMARKTYPEID *retVal);
13444
13445    HRESULT (STDMETHODCALLTYPE *get_CachedLocalizedLandmarkType)(
13446        IUIAutomationElement6 *This,
13447        BSTR *retVal);
13448
13449    /*** IUIAutomationElement6 methods ***/
13450    HRESULT (STDMETHODCALLTYPE *get_CurrentFullDescription)(
13451        IUIAutomationElement6 *This,
13452        BSTR *retVal);
13453
13454    HRESULT (STDMETHODCALLTYPE *get_CachedFullDescription)(
13455        IUIAutomationElement6 *This,
13456        BSTR *retVal);
13457
13458    END_INTERFACE
13459} IUIAutomationElement6Vtbl;
13460
13461interface IUIAutomationElement6 {
13462    CONST_VTBL IUIAutomationElement6Vtbl* lpVtbl;
13463};
13464
13465#ifdef COBJMACROS
13466#ifndef WIDL_C_INLINE_WRAPPERS
13467/*** IUnknown methods ***/
13468#define IUIAutomationElement6_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
13469#define IUIAutomationElement6_AddRef(This) (This)->lpVtbl->AddRef(This)
13470#define IUIAutomationElement6_Release(This) (This)->lpVtbl->Release(This)
13471/*** IUIAutomationElement methods ***/
13472#define IUIAutomationElement6_SetFocus(This) (This)->lpVtbl->SetFocus(This)
13473#define IUIAutomationElement6_GetRuntimeId(This,runtimeId) (This)->lpVtbl->GetRuntimeId(This,runtimeId)
13474#define IUIAutomationElement6_FindFirst(This,scope,condition,found) (This)->lpVtbl->FindFirst(This,scope,condition,found)
13475#define IUIAutomationElement6_FindAll(This,scope,condition,found) (This)->lpVtbl->FindAll(This,scope,condition,found)
13476#define IUIAutomationElement6_FindFirstBuildCache(This,scope,condition,cacheRequest,found) (This)->lpVtbl->FindFirstBuildCache(This,scope,condition,cacheRequest,found)
13477#define IUIAutomationElement6_FindAllBuildCache(This,scope,condition,cacheRequest,found) (This)->lpVtbl->FindAllBuildCache(This,scope,condition,cacheRequest,found)
13478#define IUIAutomationElement6_BuildUpdatedCache(This,cacheRequest,updatedElement) (This)->lpVtbl->BuildUpdatedCache(This,cacheRequest,updatedElement)
13479#define IUIAutomationElement6_GetCurrentPropertyValue(This,propertyId,retVal) (This)->lpVtbl->GetCurrentPropertyValue(This,propertyId,retVal)
13480#define IUIAutomationElement6_GetCurrentPropertyValueEx(This,propertyId,ignoreDefaultValue,retVal) (This)->lpVtbl->GetCurrentPropertyValueEx(This,propertyId,ignoreDefaultValue,retVal)
13481#define IUIAutomationElement6_GetCachedPropertyValue(This,propertyId,retVal) (This)->lpVtbl->GetCachedPropertyValue(This,propertyId,retVal)
13482#define IUIAutomationElement6_GetCachedPropertyValueEx(This,propertyId,ignoreDefaultValue,retVal) (This)->lpVtbl->GetCachedPropertyValueEx(This,propertyId,ignoreDefaultValue,retVal)
13483#define IUIAutomationElement6_GetCurrentPatternAs(This,patternId,riid,patternObject) (This)->lpVtbl->GetCurrentPatternAs(This,patternId,riid,patternObject)
13484#define IUIAutomationElement6_GetCachedPatternAs(This,patternId,riid,patternObject) (This)->lpVtbl->GetCachedPatternAs(This,patternId,riid,patternObject)
13485#define IUIAutomationElement6_GetCurrentPattern(This,patternId,patternObject) (This)->lpVtbl->GetCurrentPattern(This,patternId,patternObject)
13486#define IUIAutomationElement6_GetCachedPattern(This,patternId,patternObject) (This)->lpVtbl->GetCachedPattern(This,patternId,patternObject)
13487#define IUIAutomationElement6_GetCachedParent(This,parent) (This)->lpVtbl->GetCachedParent(This,parent)
13488#define IUIAutomationElement6_GetCachedChildren(This,children) (This)->lpVtbl->GetCachedChildren(This,children)
13489#define IUIAutomationElement6_get_CurrentProcessId(This,retVal) (This)->lpVtbl->get_CurrentProcessId(This,retVal)
13490#define IUIAutomationElement6_get_CurrentControlType(This,retVal) (This)->lpVtbl->get_CurrentControlType(This,retVal)
13491#define IUIAutomationElement6_get_CurrentLocalizedControlType(This,retVal) (This)->lpVtbl->get_CurrentLocalizedControlType(This,retVal)
13492#define IUIAutomationElement6_get_CurrentName(This,retVal) (This)->lpVtbl->get_CurrentName(This,retVal)
13493#define IUIAutomationElement6_get_CurrentAcceleratorKey(This,retVal) (This)->lpVtbl->get_CurrentAcceleratorKey(This,retVal)
13494#define IUIAutomationElement6_get_CurrentAccessKey(This,retVal) (This)->lpVtbl->get_CurrentAccessKey(This,retVal)
13495#define IUIAutomationElement6_get_CurrentHasKeyboardFocus(This,retVal) (This)->lpVtbl->get_CurrentHasKeyboardFocus(This,retVal)
13496#define IUIAutomationElement6_get_CurrentIsKeyboardFocusable(This,retVal) (This)->lpVtbl->get_CurrentIsKeyboardFocusable(This,retVal)
13497#define IUIAutomationElement6_get_CurrentIsEnabled(This,retVal) (This)->lpVtbl->get_CurrentIsEnabled(This,retVal)
13498#define IUIAutomationElement6_get_CurrentAutomationId(This,retVal) (This)->lpVtbl->get_CurrentAutomationId(This,retVal)
13499#define IUIAutomationElement6_get_CurrentClassName(This,retVal) (This)->lpVtbl->get_CurrentClassName(This,retVal)
13500#define IUIAutomationElement6_get_CurrentHelpText(This,retVal) (This)->lpVtbl->get_CurrentHelpText(This,retVal)
13501#define IUIAutomationElement6_get_CurrentCulture(This,retVal) (This)->lpVtbl->get_CurrentCulture(This,retVal)
13502#define IUIAutomationElement6_get_CurrentIsControlElement(This,retVal) (This)->lpVtbl->get_CurrentIsControlElement(This,retVal)
13503#define IUIAutomationElement6_get_CurrentIsContentElement(This,retVal) (This)->lpVtbl->get_CurrentIsContentElement(This,retVal)
13504#define IUIAutomationElement6_get_CurrentIsPassword(This,retVal) (This)->lpVtbl->get_CurrentIsPassword(This,retVal)
13505#define IUIAutomationElement6_get_CurrentNativeWindowHandle(This,retVal) (This)->lpVtbl->get_CurrentNativeWindowHandle(This,retVal)
13506#define IUIAutomationElement6_get_CurrentItemType(This,retVal) (This)->lpVtbl->get_CurrentItemType(This,retVal)
13507#define IUIAutomationElement6_get_CurrentIsOffscreen(This,retVal) (This)->lpVtbl->get_CurrentIsOffscreen(This,retVal)
13508#define IUIAutomationElement6_get_CurrentOrientation(This,retVal) (This)->lpVtbl->get_CurrentOrientation(This,retVal)
13509#define IUIAutomationElement6_get_CurrentFrameworkId(This,retVal) (This)->lpVtbl->get_CurrentFrameworkId(This,retVal)
13510#define IUIAutomationElement6_get_CurrentIsRequiredForForm(This,retVal) (This)->lpVtbl->get_CurrentIsRequiredForForm(This,retVal)
13511#define IUIAutomationElement6_get_CurrentItemStatus(This,retVal) (This)->lpVtbl->get_CurrentItemStatus(This,retVal)
13512#define IUIAutomationElement6_get_CurrentBoundingRectangle(This,retVal) (This)->lpVtbl->get_CurrentBoundingRectangle(This,retVal)
13513#define IUIAutomationElement6_get_CurrentLabeledBy(This,retVal) (This)->lpVtbl->get_CurrentLabeledBy(This,retVal)
13514#define IUIAutomationElement6_get_CurrentAriaRole(This,retVal) (This)->lpVtbl->get_CurrentAriaRole(This,retVal)
13515#define IUIAutomationElement6_get_CurrentAriaProperties(This,retVal) (This)->lpVtbl->get_CurrentAriaProperties(This,retVal)
13516#define IUIAutomationElement6_get_CurrentIsDataValidForForm(This,retVal) (This)->lpVtbl->get_CurrentIsDataValidForForm(This,retVal)
13517#define IUIAutomationElement6_get_CurrentControllerFor(This,retVal) (This)->lpVtbl->get_CurrentControllerFor(This,retVal)
13518#define IUIAutomationElement6_get_CurrentDescribedBy(This,retVal) (This)->lpVtbl->get_CurrentDescribedBy(This,retVal)
13519#define IUIAutomationElement6_get_CurrentFlowsTo(This,retVal) (This)->lpVtbl->get_CurrentFlowsTo(This,retVal)
13520#define IUIAutomationElement6_get_CurrentProviderDescription(This,retVal) (This)->lpVtbl->get_CurrentProviderDescription(This,retVal)
13521#define IUIAutomationElement6_get_CachedProcessId(This,retVal) (This)->lpVtbl->get_CachedProcessId(This,retVal)
13522#define IUIAutomationElement6_get_CachedControlType(This,retVal) (This)->lpVtbl->get_CachedControlType(This,retVal)
13523#define IUIAutomationElement6_get_CachedLocalizedControlType(This,retVal) (This)->lpVtbl->get_CachedLocalizedControlType(This,retVal)
13524#define IUIAutomationElement6_get_CachedName(This,retVal) (This)->lpVtbl->get_CachedName(This,retVal)
13525#define IUIAutomationElement6_get_CachedAcceleratorKey(This,retVal) (This)->lpVtbl->get_CachedAcceleratorKey(This,retVal)
13526#define IUIAutomationElement6_get_CachedAccessKey(This,retVal) (This)->lpVtbl->get_CachedAccessKey(This,retVal)
13527#define IUIAutomationElement6_get_CachedHasKeyboardFocus(This,retVal) (This)->lpVtbl->get_CachedHasKeyboardFocus(This,retVal)
13528#define IUIAutomationElement6_get_CachedIsKeyboardFocusable(This,retVal) (This)->lpVtbl->get_CachedIsKeyboardFocusable(This,retVal)
13529#define IUIAutomationElement6_get_CachedIsEnabled(This,retVal) (This)->lpVtbl->get_CachedIsEnabled(This,retVal)
13530#define IUIAutomationElement6_get_CachedAutomationId(This,retVal) (This)->lpVtbl->get_CachedAutomationId(This,retVal)
13531#define IUIAutomationElement6_get_CachedClassName(This,retVal) (This)->lpVtbl->get_CachedClassName(This,retVal)
13532#define IUIAutomationElement6_get_CachedHelpText(This,retVal) (This)->lpVtbl->get_CachedHelpText(This,retVal)
13533#define IUIAutomationElement6_get_CachedCulture(This,retVal) (This)->lpVtbl->get_CachedCulture(This,retVal)
13534#define IUIAutomationElement6_get_CachedIsControlElement(This,retVal) (This)->lpVtbl->get_CachedIsControlElement(This,retVal)
13535#define IUIAutomationElement6_get_CachedIsContentElement(This,retVal) (This)->lpVtbl->get_CachedIsContentElement(This,retVal)
13536#define IUIAutomationElement6_get_CachedIsPassword(This,retVal) (This)->lpVtbl->get_CachedIsPassword(This,retVal)
13537#define IUIAutomationElement6_get_CachedNativeWindowHandle(This,retVal) (This)->lpVtbl->get_CachedNativeWindowHandle(This,retVal)
13538#define IUIAutomationElement6_get_CachedItemType(This,retVal) (This)->lpVtbl->get_CachedItemType(This,retVal)
13539#define IUIAutomationElement6_get_CachedIsOffscreen(This,retVal) (This)->lpVtbl->get_CachedIsOffscreen(This,retVal)
13540#define IUIAutomationElement6_get_CachedOrientation(This,retVal) (This)->lpVtbl->get_CachedOrientation(This,retVal)
13541#define IUIAutomationElement6_get_CachedFrameworkId(This,retVal) (This)->lpVtbl->get_CachedFrameworkId(This,retVal)
13542#define IUIAutomationElement6_get_CachedIsRequiredForForm(This,retVal) (This)->lpVtbl->get_CachedIsRequiredForForm(This,retVal)
13543#define IUIAutomationElement6_get_CachedItemStatus(This,retVal) (This)->lpVtbl->get_CachedItemStatus(This,retVal)
13544#define IUIAutomationElement6_get_CachedBoundingRectangle(This,retVal) (This)->lpVtbl->get_CachedBoundingRectangle(This,retVal)
13545#define IUIAutomationElement6_get_CachedLabeledBy(This,retVal) (This)->lpVtbl->get_CachedLabeledBy(This,retVal)
13546#define IUIAutomationElement6_get_CachedAriaRole(This,retVal) (This)->lpVtbl->get_CachedAriaRole(This,retVal)
13547#define IUIAutomationElement6_get_CachedAriaProperties(This,retVal) (This)->lpVtbl->get_CachedAriaProperties(This,retVal)
13548#define IUIAutomationElement6_get_CachedIsDataValidForForm(This,retVal) (This)->lpVtbl->get_CachedIsDataValidForForm(This,retVal)
13549#define IUIAutomationElement6_get_CachedControllerFor(This,retVal) (This)->lpVtbl->get_CachedControllerFor(This,retVal)
13550#define IUIAutomationElement6_get_CachedDescribedBy(This,retVal) (This)->lpVtbl->get_CachedDescribedBy(This,retVal)
13551#define IUIAutomationElement6_get_CachedFlowsTo(This,retVal) (This)->lpVtbl->get_CachedFlowsTo(This,retVal)
13552#define IUIAutomationElement6_get_CachedProviderDescription(This,retVal) (This)->lpVtbl->get_CachedProviderDescription(This,retVal)
13553#define IUIAutomationElement6_GetClickablePoint(This,clickable,gotClickable) (This)->lpVtbl->GetClickablePoint(This,clickable,gotClickable)
13554/*** IUIAutomationElement2 methods ***/
13555#define IUIAutomationElement6_get_CurrentOptimizeForVisualContent(This,retVal) (This)->lpVtbl->get_CurrentOptimizeForVisualContent(This,retVal)
13556#define IUIAutomationElement6_get_CachedOptimizeForVisualContent(This,retVal) (This)->lpVtbl->get_CachedOptimizeForVisualContent(This,retVal)
13557#define IUIAutomationElement6_get_CurrentLiveSetting(This,retVal) (This)->lpVtbl->get_CurrentLiveSetting(This,retVal)
13558#define IUIAutomationElement6_get_CachedLiveSetting(This,retVal) (This)->lpVtbl->get_CachedLiveSetting(This,retVal)
13559#define IUIAutomationElement6_get_CurrentFlowsFrom(This,retVal) (This)->lpVtbl->get_CurrentFlowsFrom(This,retVal)
13560#define IUIAutomationElement6_get_CachedFlowsFrom(This,retVal) (This)->lpVtbl->get_CachedFlowsFrom(This,retVal)
13561/*** IUIAutomationElement3 methods ***/
13562#define IUIAutomationElement6_ShowContextMenu(This) (This)->lpVtbl->ShowContextMenu(This)
13563#define IUIAutomationElement6_get_CurrentIsPeripheral(This,retVal) (This)->lpVtbl->get_CurrentIsPeripheral(This,retVal)
13564#define IUIAutomationElement6_get_CachedIsPeripheral(This,retVal) (This)->lpVtbl->get_CachedIsPeripheral(This,retVal)
13565/*** IUIAutomationElement4 methods ***/
13566#define IUIAutomationElement6_get_CurrentPositionInSet(This,retVal) (This)->lpVtbl->get_CurrentPositionInSet(This,retVal)
13567#define IUIAutomationElement6_get_CurrentSizeOfSet(This,retVal) (This)->lpVtbl->get_CurrentSizeOfSet(This,retVal)
13568#define IUIAutomationElement6_get_CurrentLevel(This,retVal) (This)->lpVtbl->get_CurrentLevel(This,retVal)
13569#define IUIAutomationElement6_get_CurrentAnnotationTypes(This,retVal) (This)->lpVtbl->get_CurrentAnnotationTypes(This,retVal)
13570#define IUIAutomationElement6_get_CurrentAnnotationObjects(This,retVal) (This)->lpVtbl->get_CurrentAnnotationObjects(This,retVal)
13571#define IUIAutomationElement6_get_CachedPositionInSet(This,retVal) (This)->lpVtbl->get_CachedPositionInSet(This,retVal)
13572#define IUIAutomationElement6_get_CachedSizeOfSet(This,retVal) (This)->lpVtbl->get_CachedSizeOfSet(This,retVal)
13573#define IUIAutomationElement6_get_CachedLevel(This,retVal) (This)->lpVtbl->get_CachedLevel(This,retVal)
13574#define IUIAutomationElement6_get_CachedAnnotationTypes(This,retVal) (This)->lpVtbl->get_CachedAnnotationTypes(This,retVal)
13575#define IUIAutomationElement6_get_CachedAnnotationObjects(This,retVal) (This)->lpVtbl->get_CachedAnnotationObjects(This,retVal)
13576/*** IUIAutomationElement5 methods ***/
13577#define IUIAutomationElement6_get_CurrentLandmarkType(This,retVal) (This)->lpVtbl->get_CurrentLandmarkType(This,retVal)
13578#define IUIAutomationElement6_get_CurrentLocalizedLandmarkType(This,retVal) (This)->lpVtbl->get_CurrentLocalizedLandmarkType(This,retVal)
13579#define IUIAutomationElement6_get_CachedLandmarkType(This,retVal) (This)->lpVtbl->get_CachedLandmarkType(This,retVal)
13580#define IUIAutomationElement6_get_CachedLocalizedLandmarkType(This,retVal) (This)->lpVtbl->get_CachedLocalizedLandmarkType(This,retVal)
13581/*** IUIAutomationElement6 methods ***/
13582#define IUIAutomationElement6_get_CurrentFullDescription(This,retVal) (This)->lpVtbl->get_CurrentFullDescription(This,retVal)
13583#define IUIAutomationElement6_get_CachedFullDescription(This,retVal) (This)->lpVtbl->get_CachedFullDescription(This,retVal)
13584#else
13585/*** IUnknown methods ***/
13586static inline HRESULT IUIAutomationElement6_QueryInterface(IUIAutomationElement6* This,REFIID riid,void **ppvObject) {
13587    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
13588}
13589static inline ULONG IUIAutomationElement6_AddRef(IUIAutomationElement6* This) {
13590    return This->lpVtbl->AddRef(This);
13591}
13592static inline ULONG IUIAutomationElement6_Release(IUIAutomationElement6* This) {
13593    return This->lpVtbl->Release(This);
13594}
13595/*** IUIAutomationElement methods ***/
13596static inline HRESULT IUIAutomationElement6_SetFocus(IUIAutomationElement6* This) {
13597    return This->lpVtbl->SetFocus(This);
13598}
13599static inline HRESULT IUIAutomationElement6_GetRuntimeId(IUIAutomationElement6* This,SAFEARRAY **runtimeId) {
13600    return This->lpVtbl->GetRuntimeId(This,runtimeId);
13601}
13602static inline HRESULT IUIAutomationElement6_FindFirst(IUIAutomationElement6* This,enum TreeScope scope,IUIAutomationCondition *condition,IUIAutomationElement **found) {
13603    return This->lpVtbl->FindFirst(This,scope,condition,found);
13604}
13605static inline HRESULT IUIAutomationElement6_FindAll(IUIAutomationElement6* This,enum TreeScope scope,IUIAutomationCondition *condition,IUIAutomationElementArray **found) {
13606    return This->lpVtbl->FindAll(This,scope,condition,found);
13607}
13608static inline HRESULT IUIAutomationElement6_FindFirstBuildCache(IUIAutomationElement6* This,enum TreeScope scope,IUIAutomationCondition *condition,IUIAutomationCacheRequest *cacheRequest,IUIAutomationElement **found) {
13609    return This->lpVtbl->FindFirstBuildCache(This,scope,condition,cacheRequest,found);
13610}
13611static inline HRESULT IUIAutomationElement6_FindAllBuildCache(IUIAutomationElement6* This,enum TreeScope scope,IUIAutomationCondition *condition,IUIAutomationCacheRequest *cacheRequest,IUIAutomationElementArray **found) {
13612    return This->lpVtbl->FindAllBuildCache(This,scope,condition,cacheRequest,found);
13613}
13614static inline HRESULT IUIAutomationElement6_BuildUpdatedCache(IUIAutomationElement6* This,IUIAutomationCacheRequest *cacheRequest,IUIAutomationElement **updatedElement) {
13615    return This->lpVtbl->BuildUpdatedCache(This,cacheRequest,updatedElement);
13616}
13617static inline HRESULT IUIAutomationElement6_GetCurrentPropertyValue(IUIAutomationElement6* This,PROPERTYID propertyId,VARIANT *retVal) {
13618    return This->lpVtbl->GetCurrentPropertyValue(This,propertyId,retVal);
13619}
13620static inline HRESULT IUIAutomationElement6_GetCurrentPropertyValueEx(IUIAutomationElement6* This,PROPERTYID propertyId,WINBOOL ignoreDefaultValue,VARIANT *retVal) {
13621    return This->lpVtbl->GetCurrentPropertyValueEx(This,propertyId,ignoreDefaultValue,retVal);
13622}
13623static inline HRESULT IUIAutomationElement6_GetCachedPropertyValue(IUIAutomationElement6* This,PROPERTYID propertyId,VARIANT *retVal) {
13624    return This->lpVtbl->GetCachedPropertyValue(This,propertyId,retVal);
13625}
13626static inline HRESULT IUIAutomationElement6_GetCachedPropertyValueEx(IUIAutomationElement6* This,PROPERTYID propertyId,WINBOOL ignoreDefaultValue,VARIANT *retVal) {
13627    return This->lpVtbl->GetCachedPropertyValueEx(This,propertyId,ignoreDefaultValue,retVal);
13628}
13629static inline HRESULT IUIAutomationElement6_GetCurrentPatternAs(IUIAutomationElement6* This,PATTERNID patternId,REFIID riid,void **patternObject) {
13630    return This->lpVtbl->GetCurrentPatternAs(This,patternId,riid,patternObject);
13631}
13632static inline HRESULT IUIAutomationElement6_GetCachedPatternAs(IUIAutomationElement6* This,PATTERNID patternId,REFIID riid,void **patternObject) {
13633    return This->lpVtbl->GetCachedPatternAs(This,patternId,riid,patternObject);
13634}
13635static inline HRESULT IUIAutomationElement6_GetCurrentPattern(IUIAutomationElement6* This,PATTERNID patternId,IUnknown **patternObject) {
13636    return This->lpVtbl->GetCurrentPattern(This,patternId,patternObject);
13637}
13638static inline HRESULT IUIAutomationElement6_GetCachedPattern(IUIAutomationElement6* This,PATTERNID patternId,IUnknown **patternObject) {
13639    return This->lpVtbl->GetCachedPattern(This,patternId,patternObject);
13640}
13641static inline HRESULT IUIAutomationElement6_GetCachedParent(IUIAutomationElement6* This,IUIAutomationElement **parent) {
13642    return This->lpVtbl->GetCachedParent(This,parent);
13643}
13644static inline HRESULT IUIAutomationElement6_GetCachedChildren(IUIAutomationElement6* This,IUIAutomationElementArray **children) {
13645    return This->lpVtbl->GetCachedChildren(This,children);
13646}
13647static inline HRESULT IUIAutomationElement6_get_CurrentProcessId(IUIAutomationElement6* This,int *retVal) {
13648    return This->lpVtbl->get_CurrentProcessId(This,retVal);
13649}
13650static inline HRESULT IUIAutomationElement6_get_CurrentControlType(IUIAutomationElement6* This,CONTROLTYPEID *retVal) {
13651    return This->lpVtbl->get_CurrentControlType(This,retVal);
13652}
13653static inline HRESULT IUIAutomationElement6_get_CurrentLocalizedControlType(IUIAutomationElement6* This,BSTR *retVal) {
13654    return This->lpVtbl->get_CurrentLocalizedControlType(This,retVal);
13655}
13656static inline HRESULT IUIAutomationElement6_get_CurrentName(IUIAutomationElement6* This,BSTR *retVal) {
13657    return This->lpVtbl->get_CurrentName(This,retVal);
13658}
13659static inline HRESULT IUIAutomationElement6_get_CurrentAcceleratorKey(IUIAutomationElement6* This,BSTR *retVal) {
13660    return This->lpVtbl->get_CurrentAcceleratorKey(This,retVal);
13661}
13662static inline HRESULT IUIAutomationElement6_get_CurrentAccessKey(IUIAutomationElement6* This,BSTR *retVal) {
13663    return This->lpVtbl->get_CurrentAccessKey(This,retVal);
13664}
13665static inline HRESULT IUIAutomationElement6_get_CurrentHasKeyboardFocus(IUIAutomationElement6* This,WINBOOL *retVal) {
13666    return This->lpVtbl->get_CurrentHasKeyboardFocus(This,retVal);
13667}
13668static inline HRESULT IUIAutomationElement6_get_CurrentIsKeyboardFocusable(IUIAutomationElement6* This,WINBOOL *retVal) {
13669    return This->lpVtbl->get_CurrentIsKeyboardFocusable(This,retVal);
13670}
13671static inline HRESULT IUIAutomationElement6_get_CurrentIsEnabled(IUIAutomationElement6* This,WINBOOL *retVal) {
13672    return This->lpVtbl->get_CurrentIsEnabled(This,retVal);
13673}
13674static inline HRESULT IUIAutomationElement6_get_CurrentAutomationId(IUIAutomationElement6* This,BSTR *retVal) {
13675    return This->lpVtbl->get_CurrentAutomationId(This,retVal);
13676}
13677static inline HRESULT IUIAutomationElement6_get_CurrentClassName(IUIAutomationElement6* This,BSTR *retVal) {
13678    return This->lpVtbl->get_CurrentClassName(This,retVal);
13679}
13680static inline HRESULT IUIAutomationElement6_get_CurrentHelpText(IUIAutomationElement6* This,BSTR *retVal) {
13681    return This->lpVtbl->get_CurrentHelpText(This,retVal);
13682}
13683static inline HRESULT IUIAutomationElement6_get_CurrentCulture(IUIAutomationElement6* This,int *retVal) {
13684    return This->lpVtbl->get_CurrentCulture(This,retVal);
13685}
13686static inline HRESULT IUIAutomationElement6_get_CurrentIsControlElement(IUIAutomationElement6* This,WINBOOL *retVal) {
13687    return This->lpVtbl->get_CurrentIsControlElement(This,retVal);
13688}
13689static inline HRESULT IUIAutomationElement6_get_CurrentIsContentElement(IUIAutomationElement6* This,WINBOOL *retVal) {
13690    return This->lpVtbl->get_CurrentIsContentElement(This,retVal);
13691}
13692static inline HRESULT IUIAutomationElement6_get_CurrentIsPassword(IUIAutomationElement6* This,WINBOOL *retVal) {
13693    return This->lpVtbl->get_CurrentIsPassword(This,retVal);
13694}
13695static inline HRESULT IUIAutomationElement6_get_CurrentNativeWindowHandle(IUIAutomationElement6* This,UIA_HWND *retVal) {
13696    return This->lpVtbl->get_CurrentNativeWindowHandle(This,retVal);
13697}
13698static inline HRESULT IUIAutomationElement6_get_CurrentItemType(IUIAutomationElement6* This,BSTR *retVal) {
13699    return This->lpVtbl->get_CurrentItemType(This,retVal);
13700}
13701static inline HRESULT IUIAutomationElement6_get_CurrentIsOffscreen(IUIAutomationElement6* This,WINBOOL *retVal) {
13702    return This->lpVtbl->get_CurrentIsOffscreen(This,retVal);
13703}
13704static inline HRESULT IUIAutomationElement6_get_CurrentOrientation(IUIAutomationElement6* This,enum OrientationType *retVal) {
13705    return This->lpVtbl->get_CurrentOrientation(This,retVal);
13706}
13707static inline HRESULT IUIAutomationElement6_get_CurrentFrameworkId(IUIAutomationElement6* This,BSTR *retVal) {
13708    return This->lpVtbl->get_CurrentFrameworkId(This,retVal);
13709}
13710static inline HRESULT IUIAutomationElement6_get_CurrentIsRequiredForForm(IUIAutomationElement6* This,WINBOOL *retVal) {
13711    return This->lpVtbl->get_CurrentIsRequiredForForm(This,retVal);
13712}
13713static inline HRESULT IUIAutomationElement6_get_CurrentItemStatus(IUIAutomationElement6* This,BSTR *retVal) {
13714    return This->lpVtbl->get_CurrentItemStatus(This,retVal);
13715}
13716static inline HRESULT IUIAutomationElement6_get_CurrentBoundingRectangle(IUIAutomationElement6* This,RECT *retVal) {
13717    return This->lpVtbl->get_CurrentBoundingRectangle(This,retVal);
13718}
13719static inline HRESULT IUIAutomationElement6_get_CurrentLabeledBy(IUIAutomationElement6* This,IUIAutomationElement **retVal) {
13720    return This->lpVtbl->get_CurrentLabeledBy(This,retVal);
13721}
13722static inline HRESULT IUIAutomationElement6_get_CurrentAriaRole(IUIAutomationElement6* This,BSTR *retVal) {
13723    return This->lpVtbl->get_CurrentAriaRole(This,retVal);
13724}
13725static inline HRESULT IUIAutomationElement6_get_CurrentAriaProperties(IUIAutomationElement6* This,BSTR *retVal) {
13726    return This->lpVtbl->get_CurrentAriaProperties(This,retVal);
13727}
13728static inline HRESULT IUIAutomationElement6_get_CurrentIsDataValidForForm(IUIAutomationElement6* This,WINBOOL *retVal) {
13729    return This->lpVtbl->get_CurrentIsDataValidForForm(This,retVal);
13730}
13731static inline HRESULT IUIAutomationElement6_get_CurrentControllerFor(IUIAutomationElement6* This,IUIAutomationElementArray **retVal) {
13732    return This->lpVtbl->get_CurrentControllerFor(This,retVal);
13733}
13734static inline HRESULT IUIAutomationElement6_get_CurrentDescribedBy(IUIAutomationElement6* This,IUIAutomationElementArray **retVal) {
13735    return This->lpVtbl->get_CurrentDescribedBy(This,retVal);
13736}
13737static inline HRESULT IUIAutomationElement6_get_CurrentFlowsTo(IUIAutomationElement6* This,IUIAutomationElementArray **retVal) {
13738    return This->lpVtbl->get_CurrentFlowsTo(This,retVal);
13739}
13740static inline HRESULT IUIAutomationElement6_get_CurrentProviderDescription(IUIAutomationElement6* This,BSTR *retVal) {
13741    return This->lpVtbl->get_CurrentProviderDescription(This,retVal);
13742}
13743static inline HRESULT IUIAutomationElement6_get_CachedProcessId(IUIAutomationElement6* This,int *retVal) {
13744    return This->lpVtbl->get_CachedProcessId(This,retVal);
13745}
13746static inline HRESULT IUIAutomationElement6_get_CachedControlType(IUIAutomationElement6* This,CONTROLTYPEID *retVal) {
13747    return This->lpVtbl->get_CachedControlType(This,retVal);
13748}
13749static inline HRESULT IUIAutomationElement6_get_CachedLocalizedControlType(IUIAutomationElement6* This,BSTR *retVal) {
13750    return This->lpVtbl->get_CachedLocalizedControlType(This,retVal);
13751}
13752static inline HRESULT IUIAutomationElement6_get_CachedName(IUIAutomationElement6* This,BSTR *retVal) {
13753    return This->lpVtbl->get_CachedName(This,retVal);
13754}
13755static inline HRESULT IUIAutomationElement6_get_CachedAcceleratorKey(IUIAutomationElement6* This,BSTR *retVal) {
13756    return This->lpVtbl->get_CachedAcceleratorKey(This,retVal);
13757}
13758static inline HRESULT IUIAutomationElement6_get_CachedAccessKey(IUIAutomationElement6* This,BSTR *retVal) {
13759    return This->lpVtbl->get_CachedAccessKey(This,retVal);
13760}
13761static inline HRESULT IUIAutomationElement6_get_CachedHasKeyboardFocus(IUIAutomationElement6* This,WINBOOL *retVal) {
13762    return This->lpVtbl->get_CachedHasKeyboardFocus(This,retVal);
13763}
13764static inline HRESULT IUIAutomationElement6_get_CachedIsKeyboardFocusable(IUIAutomationElement6* This,WINBOOL *retVal) {
13765    return This->lpVtbl->get_CachedIsKeyboardFocusable(This,retVal);
13766}
13767static inline HRESULT IUIAutomationElement6_get_CachedIsEnabled(IUIAutomationElement6* This,WINBOOL *retVal) {
13768    return This->lpVtbl->get_CachedIsEnabled(This,retVal);
13769}
13770static inline HRESULT IUIAutomationElement6_get_CachedAutomationId(IUIAutomationElement6* This,BSTR *retVal) {
13771    return This->lpVtbl->get_CachedAutomationId(This,retVal);
13772}
13773static inline HRESULT IUIAutomationElement6_get_CachedClassName(IUIAutomationElement6* This,BSTR *retVal) {
13774    return This->lpVtbl->get_CachedClassName(This,retVal);
13775}
13776static inline HRESULT IUIAutomationElement6_get_CachedHelpText(IUIAutomationElement6* This,BSTR *retVal) {
13777    return This->lpVtbl->get_CachedHelpText(This,retVal);
13778}
13779static inline HRESULT IUIAutomationElement6_get_CachedCulture(IUIAutomationElement6* This,int *retVal) {
13780    return This->lpVtbl->get_CachedCulture(This,retVal);
13781}
13782static inline HRESULT IUIAutomationElement6_get_CachedIsControlElement(IUIAutomationElement6* This,WINBOOL *retVal) {
13783    return This->lpVtbl->get_CachedIsControlElement(This,retVal);
13784}
13785static inline HRESULT IUIAutomationElement6_get_CachedIsContentElement(IUIAutomationElement6* This,WINBOOL *retVal) {
13786    return This->lpVtbl->get_CachedIsContentElement(This,retVal);
13787}
13788static inline HRESULT IUIAutomationElement6_get_CachedIsPassword(IUIAutomationElement6* This,WINBOOL *retVal) {
13789    return This->lpVtbl->get_CachedIsPassword(This,retVal);
13790}
13791static inline HRESULT IUIAutomationElement6_get_CachedNativeWindowHandle(IUIAutomationElement6* This,UIA_HWND *retVal) {
13792    return This->lpVtbl->get_CachedNativeWindowHandle(This,retVal);
13793}
13794static inline HRESULT IUIAutomationElement6_get_CachedItemType(IUIAutomationElement6* This,BSTR *retVal) {
13795    return This->lpVtbl->get_CachedItemType(This,retVal);
13796}
13797static inline HRESULT IUIAutomationElement6_get_CachedIsOffscreen(IUIAutomationElement6* This,WINBOOL *retVal) {
13798    return This->lpVtbl->get_CachedIsOffscreen(This,retVal);
13799}
13800static inline HRESULT IUIAutomationElement6_get_CachedOrientation(IUIAutomationElement6* This,enum OrientationType *retVal) {
13801    return This->lpVtbl->get_CachedOrientation(This,retVal);
13802}
13803static inline HRESULT IUIAutomationElement6_get_CachedFrameworkId(IUIAutomationElement6* This,BSTR *retVal) {
13804    return This->lpVtbl->get_CachedFrameworkId(This,retVal);
13805}
13806static inline HRESULT IUIAutomationElement6_get_CachedIsRequiredForForm(IUIAutomationElement6* This,WINBOOL *retVal) {
13807    return This->lpVtbl->get_CachedIsRequiredForForm(This,retVal);
13808}
13809static inline HRESULT IUIAutomationElement6_get_CachedItemStatus(IUIAutomationElement6* This,BSTR *retVal) {
13810    return This->lpVtbl->get_CachedItemStatus(This,retVal);
13811}
13812static inline HRESULT IUIAutomationElement6_get_CachedBoundingRectangle(IUIAutomationElement6* This,RECT *retVal) {
13813    return This->lpVtbl->get_CachedBoundingRectangle(This,retVal);
13814}
13815static inline HRESULT IUIAutomationElement6_get_CachedLabeledBy(IUIAutomationElement6* This,IUIAutomationElement **retVal) {
13816    return This->lpVtbl->get_CachedLabeledBy(This,retVal);
13817}
13818static inline HRESULT IUIAutomationElement6_get_CachedAriaRole(IUIAutomationElement6* This,BSTR *retVal) {
13819    return This->lpVtbl->get_CachedAriaRole(This,retVal);
13820}
13821static inline HRESULT IUIAutomationElement6_get_CachedAriaProperties(IUIAutomationElement6* This,BSTR *retVal) {
13822    return This->lpVtbl->get_CachedAriaProperties(This,retVal);
13823}
13824static inline HRESULT IUIAutomationElement6_get_CachedIsDataValidForForm(IUIAutomationElement6* This,WINBOOL *retVal) {
13825    return This->lpVtbl->get_CachedIsDataValidForForm(This,retVal);
13826}
13827static inline HRESULT IUIAutomationElement6_get_CachedControllerFor(IUIAutomationElement6* This,IUIAutomationElementArray **retVal) {
13828    return This->lpVtbl->get_CachedControllerFor(This,retVal);
13829}
13830static inline HRESULT IUIAutomationElement6_get_CachedDescribedBy(IUIAutomationElement6* This,IUIAutomationElementArray **retVal) {
13831    return This->lpVtbl->get_CachedDescribedBy(This,retVal);
13832}
13833static inline HRESULT IUIAutomationElement6_get_CachedFlowsTo(IUIAutomationElement6* This,IUIAutomationElementArray **retVal) {
13834    return This->lpVtbl->get_CachedFlowsTo(This,retVal);
13835}
13836static inline HRESULT IUIAutomationElement6_get_CachedProviderDescription(IUIAutomationElement6* This,BSTR *retVal) {
13837    return This->lpVtbl->get_CachedProviderDescription(This,retVal);
13838}
13839static inline HRESULT IUIAutomationElement6_GetClickablePoint(IUIAutomationElement6* This,POINT *clickable,WINBOOL *gotClickable) {
13840    return This->lpVtbl->GetClickablePoint(This,clickable,gotClickable);
13841}
13842/*** IUIAutomationElement2 methods ***/
13843static inline HRESULT IUIAutomationElement6_get_CurrentOptimizeForVisualContent(IUIAutomationElement6* This,WINBOOL *retVal) {
13844    return This->lpVtbl->get_CurrentOptimizeForVisualContent(This,retVal);
13845}
13846static inline HRESULT IUIAutomationElement6_get_CachedOptimizeForVisualContent(IUIAutomationElement6* This,WINBOOL *retVal) {
13847    return This->lpVtbl->get_CachedOptimizeForVisualContent(This,retVal);
13848}
13849static inline HRESULT IUIAutomationElement6_get_CurrentLiveSetting(IUIAutomationElement6* This,enum LiveSetting *retVal) {
13850    return This->lpVtbl->get_CurrentLiveSetting(This,retVal);
13851}
13852static inline HRESULT IUIAutomationElement6_get_CachedLiveSetting(IUIAutomationElement6* This,enum LiveSetting *retVal) {
13853    return This->lpVtbl->get_CachedLiveSetting(This,retVal);
13854}
13855static inline HRESULT IUIAutomationElement6_get_CurrentFlowsFrom(IUIAutomationElement6* This,IUIAutomationElementArray **retVal) {
13856    return This->lpVtbl->get_CurrentFlowsFrom(This,retVal);
13857}
13858static inline HRESULT IUIAutomationElement6_get_CachedFlowsFrom(IUIAutomationElement6* This,IUIAutomationElementArray **retVal) {
13859    return This->lpVtbl->get_CachedFlowsFrom(This,retVal);
13860}
13861/*** IUIAutomationElement3 methods ***/
13862static inline HRESULT IUIAutomationElement6_ShowContextMenu(IUIAutomationElement6* This) {
13863    return This->lpVtbl->ShowContextMenu(This);
13864}
13865static inline HRESULT IUIAutomationElement6_get_CurrentIsPeripheral(IUIAutomationElement6* This,WINBOOL *retVal) {
13866    return This->lpVtbl->get_CurrentIsPeripheral(This,retVal);
13867}
13868static inline HRESULT IUIAutomationElement6_get_CachedIsPeripheral(IUIAutomationElement6* This,WINBOOL *retVal) {
13869    return This->lpVtbl->get_CachedIsPeripheral(This,retVal);
13870}
13871/*** IUIAutomationElement4 methods ***/
13872static inline HRESULT IUIAutomationElement6_get_CurrentPositionInSet(IUIAutomationElement6* This,int *retVal) {
13873    return This->lpVtbl->get_CurrentPositionInSet(This,retVal);
13874}
13875static inline HRESULT IUIAutomationElement6_get_CurrentSizeOfSet(IUIAutomationElement6* This,int *retVal) {
13876    return This->lpVtbl->get_CurrentSizeOfSet(This,retVal);
13877}
13878static inline HRESULT IUIAutomationElement6_get_CurrentLevel(IUIAutomationElement6* This,int *retVal) {
13879    return This->lpVtbl->get_CurrentLevel(This,retVal);
13880}
13881static inline HRESULT IUIAutomationElement6_get_CurrentAnnotationTypes(IUIAutomationElement6* This,SAFEARRAY **retVal) {
13882    return This->lpVtbl->get_CurrentAnnotationTypes(This,retVal);
13883}
13884static inline HRESULT IUIAutomationElement6_get_CurrentAnnotationObjects(IUIAutomationElement6* This,IUIAutomationElementArray **retVal) {
13885    return This->lpVtbl->get_CurrentAnnotationObjects(This,retVal);
13886}
13887static inline HRESULT IUIAutomationElement6_get_CachedPositionInSet(IUIAutomationElement6* This,int *retVal) {
13888    return This->lpVtbl->get_CachedPositionInSet(This,retVal);
13889}
13890static inline HRESULT IUIAutomationElement6_get_CachedSizeOfSet(IUIAutomationElement6* This,int *retVal) {
13891    return This->lpVtbl->get_CachedSizeOfSet(This,retVal);
13892}
13893static inline HRESULT IUIAutomationElement6_get_CachedLevel(IUIAutomationElement6* This,int *retVal) {
13894    return This->lpVtbl->get_CachedLevel(This,retVal);
13895}
13896static inline HRESULT IUIAutomationElement6_get_CachedAnnotationTypes(IUIAutomationElement6* This,SAFEARRAY **retVal) {
13897    return This->lpVtbl->get_CachedAnnotationTypes(This,retVal);
13898}
13899static inline HRESULT IUIAutomationElement6_get_CachedAnnotationObjects(IUIAutomationElement6* This,IUIAutomationElementArray **retVal) {
13900    return This->lpVtbl->get_CachedAnnotationObjects(This,retVal);
13901}
13902/*** IUIAutomationElement5 methods ***/
13903static inline HRESULT IUIAutomationElement6_get_CurrentLandmarkType(IUIAutomationElement6* This,LANDMARKTYPEID *retVal) {
13904    return This->lpVtbl->get_CurrentLandmarkType(This,retVal);
13905}
13906static inline HRESULT IUIAutomationElement6_get_CurrentLocalizedLandmarkType(IUIAutomationElement6* This,BSTR *retVal) {
13907    return This->lpVtbl->get_CurrentLocalizedLandmarkType(This,retVal);
13908}
13909static inline HRESULT IUIAutomationElement6_get_CachedLandmarkType(IUIAutomationElement6* This,LANDMARKTYPEID *retVal) {
13910    return This->lpVtbl->get_CachedLandmarkType(This,retVal);
13911}
13912static inline HRESULT IUIAutomationElement6_get_CachedLocalizedLandmarkType(IUIAutomationElement6* This,BSTR *retVal) {
13913    return This->lpVtbl->get_CachedLocalizedLandmarkType(This,retVal);
13914}
13915/*** IUIAutomationElement6 methods ***/
13916static inline HRESULT IUIAutomationElement6_get_CurrentFullDescription(IUIAutomationElement6* This,BSTR *retVal) {
13917    return This->lpVtbl->get_CurrentFullDescription(This,retVal);
13918}
13919static inline HRESULT IUIAutomationElement6_get_CachedFullDescription(IUIAutomationElement6* This,BSTR *retVal) {
13920    return This->lpVtbl->get_CachedFullDescription(This,retVal);
13921}
13922#endif
13923#endif
13924
13925#endif
13926
13927
13928#endif  /* __IUIAutomationElement6_INTERFACE_DEFINED__ */
13929
13930/*****************************************************************************
13931 * IUIAutomationElement7 interface
13932 */
13933#ifndef __IUIAutomationElement7_INTERFACE_DEFINED__
13934#define __IUIAutomationElement7_INTERFACE_DEFINED__
13935
13936DEFINE_GUID(IID_IUIAutomationElement7, 0x204e8572, 0xcfc3, 0x4c11, 0xb0,0xc8, 0x7d,0xa7,0x42,0x07,0x50,0xb7);
13937#if defined(__cplusplus) && !defined(CINTERFACE)
13938MIDL_INTERFACE("204e8572-cfc3-4c11-b0c8-7da7420750b7")
13939IUIAutomationElement7 : public IUIAutomationElement6
13940{
13941    virtual HRESULT STDMETHODCALLTYPE FindFirstWithOptions(
13942        enum TreeScope scope,
13943        IUIAutomationCondition *condition,
13944        enum TreeTraversalOptions traversalOptions,
13945        IUIAutomationElement *root,
13946        IUIAutomationElement **found) = 0;
13947
13948    virtual HRESULT STDMETHODCALLTYPE FindAllWithOptions(
13949        enum TreeScope scope,
13950        IUIAutomationCondition *condition,
13951        enum TreeTraversalOptions traversalOptions,
13952        IUIAutomationElement *root,
13953        IUIAutomationElementArray **found) = 0;
13954
13955    virtual HRESULT STDMETHODCALLTYPE FindFirstWithOptionsBuildCache(
13956        enum TreeScope scope,
13957        IUIAutomationCondition *condition,
13958        IUIAutomationCacheRequest *cacheRequest,
13959        enum TreeTraversalOptions traversalOptions,
13960        IUIAutomationElement *root,
13961        IUIAutomationElement **found) = 0;
13962
13963    virtual HRESULT STDMETHODCALLTYPE FindAllWithOptionsBuildCache(
13964        enum TreeScope scope,
13965        IUIAutomationCondition *condition,
13966        IUIAutomationCacheRequest *cacheRequest,
13967        enum TreeTraversalOptions traversalOptions,
13968        IUIAutomationElement *root,
13969        IUIAutomationElementArray **found) = 0;
13970
13971    virtual HRESULT STDMETHODCALLTYPE GetCurrentMetadataValue(
13972        int targetId,
13973        METADATAID metadataId,
13974        VARIANT *returnVal) = 0;
13975
13976};
13977#ifdef __CRT_UUID_DECL
13978__CRT_UUID_DECL(IUIAutomationElement7, 0x204e8572, 0xcfc3, 0x4c11, 0xb0,0xc8, 0x7d,0xa7,0x42,0x07,0x50,0xb7)
13979#endif
13980#else
13981typedef struct IUIAutomationElement7Vtbl {
13982    BEGIN_INTERFACE
13983
13984    /*** IUnknown methods ***/
13985    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
13986        IUIAutomationElement7 *This,
13987        REFIID riid,
13988        void **ppvObject);
13989
13990    ULONG (STDMETHODCALLTYPE *AddRef)(
13991        IUIAutomationElement7 *This);
13992
13993    ULONG (STDMETHODCALLTYPE *Release)(
13994        IUIAutomationElement7 *This);
13995
13996    /*** IUIAutomationElement methods ***/
13997    HRESULT (STDMETHODCALLTYPE *SetFocus)(
13998        IUIAutomationElement7 *This);
13999
14000    HRESULT (STDMETHODCALLTYPE *GetRuntimeId)(
14001        IUIAutomationElement7 *This,
14002        SAFEARRAY **runtimeId);
14003
14004    HRESULT (STDMETHODCALLTYPE *FindFirst)(
14005        IUIAutomationElement7 *This,
14006        enum TreeScope scope,
14007        IUIAutomationCondition *condition,
14008        IUIAutomationElement **found);
14009
14010    HRESULT (STDMETHODCALLTYPE *FindAll)(
14011        IUIAutomationElement7 *This,
14012        enum TreeScope scope,
14013        IUIAutomationCondition *condition,
14014        IUIAutomationElementArray **found);
14015
14016    HRESULT (STDMETHODCALLTYPE *FindFirstBuildCache)(
14017        IUIAutomationElement7 *This,
14018        enum TreeScope scope,
14019        IUIAutomationCondition *condition,
14020        IUIAutomationCacheRequest *cacheRequest,
14021        IUIAutomationElement **found);
14022
14023    HRESULT (STDMETHODCALLTYPE *FindAllBuildCache)(
14024        IUIAutomationElement7 *This,
14025        enum TreeScope scope,
14026        IUIAutomationCondition *condition,
14027        IUIAutomationCacheRequest *cacheRequest,
14028        IUIAutomationElementArray **found);
14029
14030    HRESULT (STDMETHODCALLTYPE *BuildUpdatedCache)(
14031        IUIAutomationElement7 *This,
14032        IUIAutomationCacheRequest *cacheRequest,
14033        IUIAutomationElement **updatedElement);
14034
14035    HRESULT (STDMETHODCALLTYPE *GetCurrentPropertyValue)(
14036        IUIAutomationElement7 *This,
14037        PROPERTYID propertyId,
14038        VARIANT *retVal);
14039
14040    HRESULT (STDMETHODCALLTYPE *GetCurrentPropertyValueEx)(
14041        IUIAutomationElement7 *This,
14042        PROPERTYID propertyId,
14043        WINBOOL ignoreDefaultValue,
14044        VARIANT *retVal);
14045
14046    HRESULT (STDMETHODCALLTYPE *GetCachedPropertyValue)(
14047        IUIAutomationElement7 *This,
14048        PROPERTYID propertyId,
14049        VARIANT *retVal);
14050
14051    HRESULT (STDMETHODCALLTYPE *GetCachedPropertyValueEx)(
14052        IUIAutomationElement7 *This,
14053        PROPERTYID propertyId,
14054        WINBOOL ignoreDefaultValue,
14055        VARIANT *retVal);
14056
14057    HRESULT (STDMETHODCALLTYPE *GetCurrentPatternAs)(
14058        IUIAutomationElement7 *This,
14059        PATTERNID patternId,
14060        REFIID riid,
14061        void **patternObject);
14062
14063    HRESULT (STDMETHODCALLTYPE *GetCachedPatternAs)(
14064        IUIAutomationElement7 *This,
14065        PATTERNID patternId,
14066        REFIID riid,
14067        void **patternObject);
14068
14069    HRESULT (STDMETHODCALLTYPE *GetCurrentPattern)(
14070        IUIAutomationElement7 *This,
14071        PATTERNID patternId,
14072        IUnknown **patternObject);
14073
14074    HRESULT (STDMETHODCALLTYPE *GetCachedPattern)(
14075        IUIAutomationElement7 *This,
14076        PATTERNID patternId,
14077        IUnknown **patternObject);
14078
14079    HRESULT (STDMETHODCALLTYPE *GetCachedParent)(
14080        IUIAutomationElement7 *This,
14081        IUIAutomationElement **parent);
14082
14083    HRESULT (STDMETHODCALLTYPE *GetCachedChildren)(
14084        IUIAutomationElement7 *This,
14085        IUIAutomationElementArray **children);
14086
14087    HRESULT (STDMETHODCALLTYPE *get_CurrentProcessId)(
14088        IUIAutomationElement7 *This,
14089        int *retVal);
14090
14091    HRESULT (STDMETHODCALLTYPE *get_CurrentControlType)(
14092        IUIAutomationElement7 *This,
14093        CONTROLTYPEID *retVal);
14094
14095    HRESULT (STDMETHODCALLTYPE *get_CurrentLocalizedControlType)(
14096        IUIAutomationElement7 *This,
14097        BSTR *retVal);
14098
14099    HRESULT (STDMETHODCALLTYPE *get_CurrentName)(
14100        IUIAutomationElement7 *This,
14101        BSTR *retVal);
14102
14103    HRESULT (STDMETHODCALLTYPE *get_CurrentAcceleratorKey)(
14104        IUIAutomationElement7 *This,
14105        BSTR *retVal);
14106
14107    HRESULT (STDMETHODCALLTYPE *get_CurrentAccessKey)(
14108        IUIAutomationElement7 *This,
14109        BSTR *retVal);
14110
14111    HRESULT (STDMETHODCALLTYPE *get_CurrentHasKeyboardFocus)(
14112        IUIAutomationElement7 *This,
14113        WINBOOL *retVal);
14114
14115    HRESULT (STDMETHODCALLTYPE *get_CurrentIsKeyboardFocusable)(
14116        IUIAutomationElement7 *This,
14117        WINBOOL *retVal);
14118
14119    HRESULT (STDMETHODCALLTYPE *get_CurrentIsEnabled)(
14120        IUIAutomationElement7 *This,
14121        WINBOOL *retVal);
14122
14123    HRESULT (STDMETHODCALLTYPE *get_CurrentAutomationId)(
14124        IUIAutomationElement7 *This,
14125        BSTR *retVal);
14126
14127    HRESULT (STDMETHODCALLTYPE *get_CurrentClassName)(
14128        IUIAutomationElement7 *This,
14129        BSTR *retVal);
14130
14131    HRESULT (STDMETHODCALLTYPE *get_CurrentHelpText)(
14132        IUIAutomationElement7 *This,
14133        BSTR *retVal);
14134
14135    HRESULT (STDMETHODCALLTYPE *get_CurrentCulture)(
14136        IUIAutomationElement7 *This,
14137        int *retVal);
14138
14139    HRESULT (STDMETHODCALLTYPE *get_CurrentIsControlElement)(
14140        IUIAutomationElement7 *This,
14141        WINBOOL *retVal);
14142
14143    HRESULT (STDMETHODCALLTYPE *get_CurrentIsContentElement)(
14144        IUIAutomationElement7 *This,
14145        WINBOOL *retVal);
14146
14147    HRESULT (STDMETHODCALLTYPE *get_CurrentIsPassword)(
14148        IUIAutomationElement7 *This,
14149        WINBOOL *retVal);
14150
14151    HRESULT (STDMETHODCALLTYPE *get_CurrentNativeWindowHandle)(
14152        IUIAutomationElement7 *This,
14153        UIA_HWND *retVal);
14154
14155    HRESULT (STDMETHODCALLTYPE *get_CurrentItemType)(
14156        IUIAutomationElement7 *This,
14157        BSTR *retVal);
14158
14159    HRESULT (STDMETHODCALLTYPE *get_CurrentIsOffscreen)(
14160        IUIAutomationElement7 *This,
14161        WINBOOL *retVal);
14162
14163    HRESULT (STDMETHODCALLTYPE *get_CurrentOrientation)(
14164        IUIAutomationElement7 *This,
14165        enum OrientationType *retVal);
14166
14167    HRESULT (STDMETHODCALLTYPE *get_CurrentFrameworkId)(
14168        IUIAutomationElement7 *This,
14169        BSTR *retVal);
14170
14171    HRESULT (STDMETHODCALLTYPE *get_CurrentIsRequiredForForm)(
14172        IUIAutomationElement7 *This,
14173        WINBOOL *retVal);
14174
14175    HRESULT (STDMETHODCALLTYPE *get_CurrentItemStatus)(
14176        IUIAutomationElement7 *This,
14177        BSTR *retVal);
14178
14179    HRESULT (STDMETHODCALLTYPE *get_CurrentBoundingRectangle)(
14180        IUIAutomationElement7 *This,
14181        RECT *retVal);
14182
14183    HRESULT (STDMETHODCALLTYPE *get_CurrentLabeledBy)(
14184        IUIAutomationElement7 *This,
14185        IUIAutomationElement **retVal);
14186
14187    HRESULT (STDMETHODCALLTYPE *get_CurrentAriaRole)(
14188        IUIAutomationElement7 *This,
14189        BSTR *retVal);
14190
14191    HRESULT (STDMETHODCALLTYPE *get_CurrentAriaProperties)(
14192        IUIAutomationElement7 *This,
14193        BSTR *retVal);
14194
14195    HRESULT (STDMETHODCALLTYPE *get_CurrentIsDataValidForForm)(
14196        IUIAutomationElement7 *This,
14197        WINBOOL *retVal);
14198
14199    HRESULT (STDMETHODCALLTYPE *get_CurrentControllerFor)(
14200        IUIAutomationElement7 *This,
14201        IUIAutomationElementArray **retVal);
14202
14203    HRESULT (STDMETHODCALLTYPE *get_CurrentDescribedBy)(
14204        IUIAutomationElement7 *This,
14205        IUIAutomationElementArray **retVal);
14206
14207    HRESULT (STDMETHODCALLTYPE *get_CurrentFlowsTo)(
14208        IUIAutomationElement7 *This,
14209        IUIAutomationElementArray **retVal);
14210
14211    HRESULT (STDMETHODCALLTYPE *get_CurrentProviderDescription)(
14212        IUIAutomationElement7 *This,
14213        BSTR *retVal);
14214
14215    HRESULT (STDMETHODCALLTYPE *get_CachedProcessId)(
14216        IUIAutomationElement7 *This,
14217        int *retVal);
14218
14219    HRESULT (STDMETHODCALLTYPE *get_CachedControlType)(
14220        IUIAutomationElement7 *This,
14221        CONTROLTYPEID *retVal);
14222
14223    HRESULT (STDMETHODCALLTYPE *get_CachedLocalizedControlType)(
14224        IUIAutomationElement7 *This,
14225        BSTR *retVal);
14226
14227    HRESULT (STDMETHODCALLTYPE *get_CachedName)(
14228        IUIAutomationElement7 *This,
14229        BSTR *retVal);
14230
14231    HRESULT (STDMETHODCALLTYPE *get_CachedAcceleratorKey)(
14232        IUIAutomationElement7 *This,
14233        BSTR *retVal);
14234
14235    HRESULT (STDMETHODCALLTYPE *get_CachedAccessKey)(
14236        IUIAutomationElement7 *This,
14237        BSTR *retVal);
14238
14239    HRESULT (STDMETHODCALLTYPE *get_CachedHasKeyboardFocus)(
14240        IUIAutomationElement7 *This,
14241        WINBOOL *retVal);
14242
14243    HRESULT (STDMETHODCALLTYPE *get_CachedIsKeyboardFocusable)(
14244        IUIAutomationElement7 *This,
14245        WINBOOL *retVal);
14246
14247    HRESULT (STDMETHODCALLTYPE *get_CachedIsEnabled)(
14248        IUIAutomationElement7 *This,
14249        WINBOOL *retVal);
14250
14251    HRESULT (STDMETHODCALLTYPE *get_CachedAutomationId)(
14252        IUIAutomationElement7 *This,
14253        BSTR *retVal);
14254
14255    HRESULT (STDMETHODCALLTYPE *get_CachedClassName)(
14256        IUIAutomationElement7 *This,
14257        BSTR *retVal);
14258
14259    HRESULT (STDMETHODCALLTYPE *get_CachedHelpText)(
14260        IUIAutomationElement7 *This,
14261        BSTR *retVal);
14262
14263    HRESULT (STDMETHODCALLTYPE *get_CachedCulture)(
14264        IUIAutomationElement7 *This,
14265        int *retVal);
14266
14267    HRESULT (STDMETHODCALLTYPE *get_CachedIsControlElement)(
14268        IUIAutomationElement7 *This,
14269        WINBOOL *retVal);
14270
14271    HRESULT (STDMETHODCALLTYPE *get_CachedIsContentElement)(
14272        IUIAutomationElement7 *This,
14273        WINBOOL *retVal);
14274
14275    HRESULT (STDMETHODCALLTYPE *get_CachedIsPassword)(
14276        IUIAutomationElement7 *This,
14277        WINBOOL *retVal);
14278
14279    HRESULT (STDMETHODCALLTYPE *get_CachedNativeWindowHandle)(
14280        IUIAutomationElement7 *This,
14281        UIA_HWND *retVal);
14282
14283    HRESULT (STDMETHODCALLTYPE *get_CachedItemType)(
14284        IUIAutomationElement7 *This,
14285        BSTR *retVal);
14286
14287    HRESULT (STDMETHODCALLTYPE *get_CachedIsOffscreen)(
14288        IUIAutomationElement7 *This,
14289        WINBOOL *retVal);
14290
14291    HRESULT (STDMETHODCALLTYPE *get_CachedOrientation)(
14292        IUIAutomationElement7 *This,
14293        enum OrientationType *retVal);
14294
14295    HRESULT (STDMETHODCALLTYPE *get_CachedFrameworkId)(
14296        IUIAutomationElement7 *This,
14297        BSTR *retVal);
14298
14299    HRESULT (STDMETHODCALLTYPE *get_CachedIsRequiredForForm)(
14300        IUIAutomationElement7 *This,
14301        WINBOOL *retVal);
14302
14303    HRESULT (STDMETHODCALLTYPE *get_CachedItemStatus)(
14304        IUIAutomationElement7 *This,
14305        BSTR *retVal);
14306
14307    HRESULT (STDMETHODCALLTYPE *get_CachedBoundingRectangle)(
14308        IUIAutomationElement7 *This,
14309        RECT *retVal);
14310
14311    HRESULT (STDMETHODCALLTYPE *get_CachedLabeledBy)(
14312        IUIAutomationElement7 *This,
14313        IUIAutomationElement **retVal);
14314
14315    HRESULT (STDMETHODCALLTYPE *get_CachedAriaRole)(
14316        IUIAutomationElement7 *This,
14317        BSTR *retVal);
14318
14319    HRESULT (STDMETHODCALLTYPE *get_CachedAriaProperties)(
14320        IUIAutomationElement7 *This,
14321        BSTR *retVal);
14322
14323    HRESULT (STDMETHODCALLTYPE *get_CachedIsDataValidForForm)(
14324        IUIAutomationElement7 *This,
14325        WINBOOL *retVal);
14326
14327    HRESULT (STDMETHODCALLTYPE *get_CachedControllerFor)(
14328        IUIAutomationElement7 *This,
14329        IUIAutomationElementArray **retVal);
14330
14331    HRESULT (STDMETHODCALLTYPE *get_CachedDescribedBy)(
14332        IUIAutomationElement7 *This,
14333        IUIAutomationElementArray **retVal);
14334
14335    HRESULT (STDMETHODCALLTYPE *get_CachedFlowsTo)(
14336        IUIAutomationElement7 *This,
14337        IUIAutomationElementArray **retVal);
14338
14339    HRESULT (STDMETHODCALLTYPE *get_CachedProviderDescription)(
14340        IUIAutomationElement7 *This,
14341        BSTR *retVal);
14342
14343    HRESULT (STDMETHODCALLTYPE *GetClickablePoint)(
14344        IUIAutomationElement7 *This,
14345        POINT *clickable,
14346        WINBOOL *gotClickable);
14347
14348    /*** IUIAutomationElement2 methods ***/
14349    HRESULT (STDMETHODCALLTYPE *get_CurrentOptimizeForVisualContent)(
14350        IUIAutomationElement7 *This,
14351        WINBOOL *retVal);
14352
14353    HRESULT (STDMETHODCALLTYPE *get_CachedOptimizeForVisualContent)(
14354        IUIAutomationElement7 *This,
14355        WINBOOL *retVal);
14356
14357    HRESULT (STDMETHODCALLTYPE *get_CurrentLiveSetting)(
14358        IUIAutomationElement7 *This,
14359        enum LiveSetting *retVal);
14360
14361    HRESULT (STDMETHODCALLTYPE *get_CachedLiveSetting)(
14362        IUIAutomationElement7 *This,
14363        enum LiveSetting *retVal);
14364
14365    HRESULT (STDMETHODCALLTYPE *get_CurrentFlowsFrom)(
14366        IUIAutomationElement7 *This,
14367        IUIAutomationElementArray **retVal);
14368
14369    HRESULT (STDMETHODCALLTYPE *get_CachedFlowsFrom)(
14370        IUIAutomationElement7 *This,
14371        IUIAutomationElementArray **retVal);
14372
14373    /*** IUIAutomationElement3 methods ***/
14374    HRESULT (STDMETHODCALLTYPE *ShowContextMenu)(
14375        IUIAutomationElement7 *This);
14376
14377    HRESULT (STDMETHODCALLTYPE *get_CurrentIsPeripheral)(
14378        IUIAutomationElement7 *This,
14379        WINBOOL *retVal);
14380
14381    HRESULT (STDMETHODCALLTYPE *get_CachedIsPeripheral)(
14382        IUIAutomationElement7 *This,
14383        WINBOOL *retVal);
14384
14385    /*** IUIAutomationElement4 methods ***/
14386    HRESULT (STDMETHODCALLTYPE *get_CurrentPositionInSet)(
14387        IUIAutomationElement7 *This,
14388        int *retVal);
14389
14390    HRESULT (STDMETHODCALLTYPE *get_CurrentSizeOfSet)(
14391        IUIAutomationElement7 *This,
14392        int *retVal);
14393
14394    HRESULT (STDMETHODCALLTYPE *get_CurrentLevel)(
14395        IUIAutomationElement7 *This,
14396        int *retVal);
14397
14398    HRESULT (STDMETHODCALLTYPE *get_CurrentAnnotationTypes)(
14399        IUIAutomationElement7 *This,
14400        SAFEARRAY **retVal);
14401
14402    HRESULT (STDMETHODCALLTYPE *get_CurrentAnnotationObjects)(
14403        IUIAutomationElement7 *This,
14404        IUIAutomationElementArray **retVal);
14405
14406    HRESULT (STDMETHODCALLTYPE *get_CachedPositionInSet)(
14407        IUIAutomationElement7 *This,
14408        int *retVal);
14409
14410    HRESULT (STDMETHODCALLTYPE *get_CachedSizeOfSet)(
14411        IUIAutomationElement7 *This,
14412        int *retVal);
14413
14414    HRESULT (STDMETHODCALLTYPE *get_CachedLevel)(
14415        IUIAutomationElement7 *This,
14416        int *retVal);
14417
14418    HRESULT (STDMETHODCALLTYPE *get_CachedAnnotationTypes)(
14419        IUIAutomationElement7 *This,
14420        SAFEARRAY **retVal);
14421
14422    HRESULT (STDMETHODCALLTYPE *get_CachedAnnotationObjects)(
14423        IUIAutomationElement7 *This,
14424        IUIAutomationElementArray **retVal);
14425
14426    /*** IUIAutomationElement5 methods ***/
14427    HRESULT (STDMETHODCALLTYPE *get_CurrentLandmarkType)(
14428        IUIAutomationElement7 *This,
14429        LANDMARKTYPEID *retVal);
14430
14431    HRESULT (STDMETHODCALLTYPE *get_CurrentLocalizedLandmarkType)(
14432        IUIAutomationElement7 *This,
14433        BSTR *retVal);
14434
14435    HRESULT (STDMETHODCALLTYPE *get_CachedLandmarkType)(
14436        IUIAutomationElement7 *This,
14437        LANDMARKTYPEID *retVal);
14438
14439    HRESULT (STDMETHODCALLTYPE *get_CachedLocalizedLandmarkType)(
14440        IUIAutomationElement7 *This,
14441        BSTR *retVal);
14442
14443    /*** IUIAutomationElement6 methods ***/
14444    HRESULT (STDMETHODCALLTYPE *get_CurrentFullDescription)(
14445        IUIAutomationElement7 *This,
14446        BSTR *retVal);
14447
14448    HRESULT (STDMETHODCALLTYPE *get_CachedFullDescription)(
14449        IUIAutomationElement7 *This,
14450        BSTR *retVal);
14451
14452    /*** IUIAutomationElement7 methods ***/
14453    HRESULT (STDMETHODCALLTYPE *FindFirstWithOptions)(
14454        IUIAutomationElement7 *This,
14455        enum TreeScope scope,
14456        IUIAutomationCondition *condition,
14457        enum TreeTraversalOptions traversalOptions,
14458        IUIAutomationElement *root,
14459        IUIAutomationElement **found);
14460
14461    HRESULT (STDMETHODCALLTYPE *FindAllWithOptions)(
14462        IUIAutomationElement7 *This,
14463        enum TreeScope scope,
14464        IUIAutomationCondition *condition,
14465        enum TreeTraversalOptions traversalOptions,
14466        IUIAutomationElement *root,
14467        IUIAutomationElementArray **found);
14468
14469    HRESULT (STDMETHODCALLTYPE *FindFirstWithOptionsBuildCache)(
14470        IUIAutomationElement7 *This,
14471        enum TreeScope scope,
14472        IUIAutomationCondition *condition,
14473        IUIAutomationCacheRequest *cacheRequest,
14474        enum TreeTraversalOptions traversalOptions,
14475        IUIAutomationElement *root,
14476        IUIAutomationElement **found);
14477
14478    HRESULT (STDMETHODCALLTYPE *FindAllWithOptionsBuildCache)(
14479        IUIAutomationElement7 *This,
14480        enum TreeScope scope,
14481        IUIAutomationCondition *condition,
14482        IUIAutomationCacheRequest *cacheRequest,
14483        enum TreeTraversalOptions traversalOptions,
14484        IUIAutomationElement *root,
14485        IUIAutomationElementArray **found);
14486
14487    HRESULT (STDMETHODCALLTYPE *GetCurrentMetadataValue)(
14488        IUIAutomationElement7 *This,
14489        int targetId,
14490        METADATAID metadataId,
14491        VARIANT *returnVal);
14492
14493    END_INTERFACE
14494} IUIAutomationElement7Vtbl;
14495
14496interface IUIAutomationElement7 {
14497    CONST_VTBL IUIAutomationElement7Vtbl* lpVtbl;
14498};
14499
14500#ifdef COBJMACROS
14501#ifndef WIDL_C_INLINE_WRAPPERS
14502/*** IUnknown methods ***/
14503#define IUIAutomationElement7_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
14504#define IUIAutomationElement7_AddRef(This) (This)->lpVtbl->AddRef(This)
14505#define IUIAutomationElement7_Release(This) (This)->lpVtbl->Release(This)
14506/*** IUIAutomationElement methods ***/
14507#define IUIAutomationElement7_SetFocus(This) (This)->lpVtbl->SetFocus(This)
14508#define IUIAutomationElement7_GetRuntimeId(This,runtimeId) (This)->lpVtbl->GetRuntimeId(This,runtimeId)
14509#define IUIAutomationElement7_FindFirst(This,scope,condition,found) (This)->lpVtbl->FindFirst(This,scope,condition,found)
14510#define IUIAutomationElement7_FindAll(This,scope,condition,found) (This)->lpVtbl->FindAll(This,scope,condition,found)
14511#define IUIAutomationElement7_FindFirstBuildCache(This,scope,condition,cacheRequest,found) (This)->lpVtbl->FindFirstBuildCache(This,scope,condition,cacheRequest,found)
14512#define IUIAutomationElement7_FindAllBuildCache(This,scope,condition,cacheRequest,found) (This)->lpVtbl->FindAllBuildCache(This,scope,condition,cacheRequest,found)
14513#define IUIAutomationElement7_BuildUpdatedCache(This,cacheRequest,updatedElement) (This)->lpVtbl->BuildUpdatedCache(This,cacheRequest,updatedElement)
14514#define IUIAutomationElement7_GetCurrentPropertyValue(This,propertyId,retVal) (This)->lpVtbl->GetCurrentPropertyValue(This,propertyId,retVal)
14515#define IUIAutomationElement7_GetCurrentPropertyValueEx(This,propertyId,ignoreDefaultValue,retVal) (This)->lpVtbl->GetCurrentPropertyValueEx(This,propertyId,ignoreDefaultValue,retVal)
14516#define IUIAutomationElement7_GetCachedPropertyValue(This,propertyId,retVal) (This)->lpVtbl->GetCachedPropertyValue(This,propertyId,retVal)
14517#define IUIAutomationElement7_GetCachedPropertyValueEx(This,propertyId,ignoreDefaultValue,retVal) (This)->lpVtbl->GetCachedPropertyValueEx(This,propertyId,ignoreDefaultValue,retVal)
14518#define IUIAutomationElement7_GetCurrentPatternAs(This,patternId,riid,patternObject) (This)->lpVtbl->GetCurrentPatternAs(This,patternId,riid,patternObject)
14519#define IUIAutomationElement7_GetCachedPatternAs(This,patternId,riid,patternObject) (This)->lpVtbl->GetCachedPatternAs(This,patternId,riid,patternObject)
14520#define IUIAutomationElement7_GetCurrentPattern(This,patternId,patternObject) (This)->lpVtbl->GetCurrentPattern(This,patternId,patternObject)
14521#define IUIAutomationElement7_GetCachedPattern(This,patternId,patternObject) (This)->lpVtbl->GetCachedPattern(This,patternId,patternObject)
14522#define IUIAutomationElement7_GetCachedParent(This,parent) (This)->lpVtbl->GetCachedParent(This,parent)
14523#define IUIAutomationElement7_GetCachedChildren(This,children) (This)->lpVtbl->GetCachedChildren(This,children)
14524#define IUIAutomationElement7_get_CurrentProcessId(This,retVal) (This)->lpVtbl->get_CurrentProcessId(This,retVal)
14525#define IUIAutomationElement7_get_CurrentControlType(This,retVal) (This)->lpVtbl->get_CurrentControlType(This,retVal)
14526#define IUIAutomationElement7_get_CurrentLocalizedControlType(This,retVal) (This)->lpVtbl->get_CurrentLocalizedControlType(This,retVal)
14527#define IUIAutomationElement7_get_CurrentName(This,retVal) (This)->lpVtbl->get_CurrentName(This,retVal)
14528#define IUIAutomationElement7_get_CurrentAcceleratorKey(This,retVal) (This)->lpVtbl->get_CurrentAcceleratorKey(This,retVal)
14529#define IUIAutomationElement7_get_CurrentAccessKey(This,retVal) (This)->lpVtbl->get_CurrentAccessKey(This,retVal)
14530#define IUIAutomationElement7_get_CurrentHasKeyboardFocus(This,retVal) (This)->lpVtbl->get_CurrentHasKeyboardFocus(This,retVal)
14531#define IUIAutomationElement7_get_CurrentIsKeyboardFocusable(This,retVal) (This)->lpVtbl->get_CurrentIsKeyboardFocusable(This,retVal)
14532#define IUIAutomationElement7_get_CurrentIsEnabled(This,retVal) (This)->lpVtbl->get_CurrentIsEnabled(This,retVal)
14533#define IUIAutomationElement7_get_CurrentAutomationId(This,retVal) (This)->lpVtbl->get_CurrentAutomationId(This,retVal)
14534#define IUIAutomationElement7_get_CurrentClassName(This,retVal) (This)->lpVtbl->get_CurrentClassName(This,retVal)
14535#define IUIAutomationElement7_get_CurrentHelpText(This,retVal) (This)->lpVtbl->get_CurrentHelpText(This,retVal)
14536#define IUIAutomationElement7_get_CurrentCulture(This,retVal) (This)->lpVtbl->get_CurrentCulture(This,retVal)
14537#define IUIAutomationElement7_get_CurrentIsControlElement(This,retVal) (This)->lpVtbl->get_CurrentIsControlElement(This,retVal)
14538#define IUIAutomationElement7_get_CurrentIsContentElement(This,retVal) (This)->lpVtbl->get_CurrentIsContentElement(This,retVal)
14539#define IUIAutomationElement7_get_CurrentIsPassword(This,retVal) (This)->lpVtbl->get_CurrentIsPassword(This,retVal)
14540#define IUIAutomationElement7_get_CurrentNativeWindowHandle(This,retVal) (This)->lpVtbl->get_CurrentNativeWindowHandle(This,retVal)
14541#define IUIAutomationElement7_get_CurrentItemType(This,retVal) (This)->lpVtbl->get_CurrentItemType(This,retVal)
14542#define IUIAutomationElement7_get_CurrentIsOffscreen(This,retVal) (This)->lpVtbl->get_CurrentIsOffscreen(This,retVal)
14543#define IUIAutomationElement7_get_CurrentOrientation(This,retVal) (This)->lpVtbl->get_CurrentOrientation(This,retVal)
14544#define IUIAutomationElement7_get_CurrentFrameworkId(This,retVal) (This)->lpVtbl->get_CurrentFrameworkId(This,retVal)
14545#define IUIAutomationElement7_get_CurrentIsRequiredForForm(This,retVal) (This)->lpVtbl->get_CurrentIsRequiredForForm(This,retVal)
14546#define IUIAutomationElement7_get_CurrentItemStatus(This,retVal) (This)->lpVtbl->get_CurrentItemStatus(This,retVal)
14547#define IUIAutomationElement7_get_CurrentBoundingRectangle(This,retVal) (This)->lpVtbl->get_CurrentBoundingRectangle(This,retVal)
14548#define IUIAutomationElement7_get_CurrentLabeledBy(This,retVal) (This)->lpVtbl->get_CurrentLabeledBy(This,retVal)
14549#define IUIAutomationElement7_get_CurrentAriaRole(This,retVal) (This)->lpVtbl->get_CurrentAriaRole(This,retVal)
14550#define IUIAutomationElement7_get_CurrentAriaProperties(This,retVal) (This)->lpVtbl->get_CurrentAriaProperties(This,retVal)
14551#define IUIAutomationElement7_get_CurrentIsDataValidForForm(This,retVal) (This)->lpVtbl->get_CurrentIsDataValidForForm(This,retVal)
14552#define IUIAutomationElement7_get_CurrentControllerFor(This,retVal) (This)->lpVtbl->get_CurrentControllerFor(This,retVal)
14553#define IUIAutomationElement7_get_CurrentDescribedBy(This,retVal) (This)->lpVtbl->get_CurrentDescribedBy(This,retVal)
14554#define IUIAutomationElement7_get_CurrentFlowsTo(This,retVal) (This)->lpVtbl->get_CurrentFlowsTo(This,retVal)
14555#define IUIAutomationElement7_get_CurrentProviderDescription(This,retVal) (This)->lpVtbl->get_CurrentProviderDescription(This,retVal)
14556#define IUIAutomationElement7_get_CachedProcessId(This,retVal) (This)->lpVtbl->get_CachedProcessId(This,retVal)
14557#define IUIAutomationElement7_get_CachedControlType(This,retVal) (This)->lpVtbl->get_CachedControlType(This,retVal)
14558#define IUIAutomationElement7_get_CachedLocalizedControlType(This,retVal) (This)->lpVtbl->get_CachedLocalizedControlType(This,retVal)
14559#define IUIAutomationElement7_get_CachedName(This,retVal) (This)->lpVtbl->get_CachedName(This,retVal)
14560#define IUIAutomationElement7_get_CachedAcceleratorKey(This,retVal) (This)->lpVtbl->get_CachedAcceleratorKey(This,retVal)
14561#define IUIAutomationElement7_get_CachedAccessKey(This,retVal) (This)->lpVtbl->get_CachedAccessKey(This,retVal)
14562#define IUIAutomationElement7_get_CachedHasKeyboardFocus(This,retVal) (This)->lpVtbl->get_CachedHasKeyboardFocus(This,retVal)
14563#define IUIAutomationElement7_get_CachedIsKeyboardFocusable(This,retVal) (This)->lpVtbl->get_CachedIsKeyboardFocusable(This,retVal)
14564#define IUIAutomationElement7_get_CachedIsEnabled(This,retVal) (This)->lpVtbl->get_CachedIsEnabled(This,retVal)
14565#define IUIAutomationElement7_get_CachedAutomationId(This,retVal) (This)->lpVtbl->get_CachedAutomationId(This,retVal)
14566#define IUIAutomationElement7_get_CachedClassName(This,retVal) (This)->lpVtbl->get_CachedClassName(This,retVal)
14567#define IUIAutomationElement7_get_CachedHelpText(This,retVal) (This)->lpVtbl->get_CachedHelpText(This,retVal)
14568#define IUIAutomationElement7_get_CachedCulture(This,retVal) (This)->lpVtbl->get_CachedCulture(This,retVal)
14569#define IUIAutomationElement7_get_CachedIsControlElement(This,retVal) (This)->lpVtbl->get_CachedIsControlElement(This,retVal)
14570#define IUIAutomationElement7_get_CachedIsContentElement(This,retVal) (This)->lpVtbl->get_CachedIsContentElement(This,retVal)
14571#define IUIAutomationElement7_get_CachedIsPassword(This,retVal) (This)->lpVtbl->get_CachedIsPassword(This,retVal)
14572#define IUIAutomationElement7_get_CachedNativeWindowHandle(This,retVal) (This)->lpVtbl->get_CachedNativeWindowHandle(This,retVal)
14573#define IUIAutomationElement7_get_CachedItemType(This,retVal) (This)->lpVtbl->get_CachedItemType(This,retVal)
14574#define IUIAutomationElement7_get_CachedIsOffscreen(This,retVal) (This)->lpVtbl->get_CachedIsOffscreen(This,retVal)
14575#define IUIAutomationElement7_get_CachedOrientation(This,retVal) (This)->lpVtbl->get_CachedOrientation(This,retVal)
14576#define IUIAutomationElement7_get_CachedFrameworkId(This,retVal) (This)->lpVtbl->get_CachedFrameworkId(This,retVal)
14577#define IUIAutomationElement7_get_CachedIsRequiredForForm(This,retVal) (This)->lpVtbl->get_CachedIsRequiredForForm(This,retVal)
14578#define IUIAutomationElement7_get_CachedItemStatus(This,retVal) (This)->lpVtbl->get_CachedItemStatus(This,retVal)
14579#define IUIAutomationElement7_get_CachedBoundingRectangle(This,retVal) (This)->lpVtbl->get_CachedBoundingRectangle(This,retVal)
14580#define IUIAutomationElement7_get_CachedLabeledBy(This,retVal) (This)->lpVtbl->get_CachedLabeledBy(This,retVal)
14581#define IUIAutomationElement7_get_CachedAriaRole(This,retVal) (This)->lpVtbl->get_CachedAriaRole(This,retVal)
14582#define IUIAutomationElement7_get_CachedAriaProperties(This,retVal) (This)->lpVtbl->get_CachedAriaProperties(This,retVal)
14583#define IUIAutomationElement7_get_CachedIsDataValidForForm(This,retVal) (This)->lpVtbl->get_CachedIsDataValidForForm(This,retVal)
14584#define IUIAutomationElement7_get_CachedControllerFor(This,retVal) (This)->lpVtbl->get_CachedControllerFor(This,retVal)
14585#define IUIAutomationElement7_get_CachedDescribedBy(This,retVal) (This)->lpVtbl->get_CachedDescribedBy(This,retVal)
14586#define IUIAutomationElement7_get_CachedFlowsTo(This,retVal) (This)->lpVtbl->get_CachedFlowsTo(This,retVal)
14587#define IUIAutomationElement7_get_CachedProviderDescription(This,retVal) (This)->lpVtbl->get_CachedProviderDescription(This,retVal)
14588#define IUIAutomationElement7_GetClickablePoint(This,clickable,gotClickable) (This)->lpVtbl->GetClickablePoint(This,clickable,gotClickable)
14589/*** IUIAutomationElement2 methods ***/
14590#define IUIAutomationElement7_get_CurrentOptimizeForVisualContent(This,retVal) (This)->lpVtbl->get_CurrentOptimizeForVisualContent(This,retVal)
14591#define IUIAutomationElement7_get_CachedOptimizeForVisualContent(This,retVal) (This)->lpVtbl->get_CachedOptimizeForVisualContent(This,retVal)
14592#define IUIAutomationElement7_get_CurrentLiveSetting(This,retVal) (This)->lpVtbl->get_CurrentLiveSetting(This,retVal)
14593#define IUIAutomationElement7_get_CachedLiveSetting(This,retVal) (This)->lpVtbl->get_CachedLiveSetting(This,retVal)
14594#define IUIAutomationElement7_get_CurrentFlowsFrom(This,retVal) (This)->lpVtbl->get_CurrentFlowsFrom(This,retVal)
14595#define IUIAutomationElement7_get_CachedFlowsFrom(This,retVal) (This)->lpVtbl->get_CachedFlowsFrom(This,retVal)
14596/*** IUIAutomationElement3 methods ***/
14597#define IUIAutomationElement7_ShowContextMenu(This) (This)->lpVtbl->ShowContextMenu(This)
14598#define IUIAutomationElement7_get_CurrentIsPeripheral(This,retVal) (This)->lpVtbl->get_CurrentIsPeripheral(This,retVal)
14599#define IUIAutomationElement7_get_CachedIsPeripheral(This,retVal) (This)->lpVtbl->get_CachedIsPeripheral(This,retVal)
14600/*** IUIAutomationElement4 methods ***/
14601#define IUIAutomationElement7_get_CurrentPositionInSet(This,retVal) (This)->lpVtbl->get_CurrentPositionInSet(This,retVal)
14602#define IUIAutomationElement7_get_CurrentSizeOfSet(This,retVal) (This)->lpVtbl->get_CurrentSizeOfSet(This,retVal)
14603#define IUIAutomationElement7_get_CurrentLevel(This,retVal) (This)->lpVtbl->get_CurrentLevel(This,retVal)
14604#define IUIAutomationElement7_get_CurrentAnnotationTypes(This,retVal) (This)->lpVtbl->get_CurrentAnnotationTypes(This,retVal)
14605#define IUIAutomationElement7_get_CurrentAnnotationObjects(This,retVal) (This)->lpVtbl->get_CurrentAnnotationObjects(This,retVal)
14606#define IUIAutomationElement7_get_CachedPositionInSet(This,retVal) (This)->lpVtbl->get_CachedPositionInSet(This,retVal)
14607#define IUIAutomationElement7_get_CachedSizeOfSet(This,retVal) (This)->lpVtbl->get_CachedSizeOfSet(This,retVal)
14608#define IUIAutomationElement7_get_CachedLevel(This,retVal) (This)->lpVtbl->get_CachedLevel(This,retVal)
14609#define IUIAutomationElement7_get_CachedAnnotationTypes(This,retVal) (This)->lpVtbl->get_CachedAnnotationTypes(This,retVal)
14610#define IUIAutomationElement7_get_CachedAnnotationObjects(This,retVal) (This)->lpVtbl->get_CachedAnnotationObjects(This,retVal)
14611/*** IUIAutomationElement5 methods ***/
14612#define IUIAutomationElement7_get_CurrentLandmarkType(This,retVal) (This)->lpVtbl->get_CurrentLandmarkType(This,retVal)
14613#define IUIAutomationElement7_get_CurrentLocalizedLandmarkType(This,retVal) (This)->lpVtbl->get_CurrentLocalizedLandmarkType(This,retVal)
14614#define IUIAutomationElement7_get_CachedLandmarkType(This,retVal) (This)->lpVtbl->get_CachedLandmarkType(This,retVal)
14615#define IUIAutomationElement7_get_CachedLocalizedLandmarkType(This,retVal) (This)->lpVtbl->get_CachedLocalizedLandmarkType(This,retVal)
14616/*** IUIAutomationElement6 methods ***/
14617#define IUIAutomationElement7_get_CurrentFullDescription(This,retVal) (This)->lpVtbl->get_CurrentFullDescription(This,retVal)
14618#define IUIAutomationElement7_get_CachedFullDescription(This,retVal) (This)->lpVtbl->get_CachedFullDescription(This,retVal)
14619/*** IUIAutomationElement7 methods ***/
14620#define IUIAutomationElement7_FindFirstWithOptions(This,scope,condition,traversalOptions,root,found) (This)->lpVtbl->FindFirstWithOptions(This,scope,condition,traversalOptions,root,found)
14621#define IUIAutomationElement7_FindAllWithOptions(This,scope,condition,traversalOptions,root,found) (This)->lpVtbl->FindAllWithOptions(This,scope,condition,traversalOptions,root,found)
14622#define IUIAutomationElement7_FindFirstWithOptionsBuildCache(This,scope,condition,cacheRequest,traversalOptions,root,found) (This)->lpVtbl->FindFirstWithOptionsBuildCache(This,scope,condition,cacheRequest,traversalOptions,root,found)
14623#define IUIAutomationElement7_FindAllWithOptionsBuildCache(This,scope,condition,cacheRequest,traversalOptions,root,found) (This)->lpVtbl->FindAllWithOptionsBuildCache(This,scope,condition,cacheRequest,traversalOptions,root,found)
14624#define IUIAutomationElement7_GetCurrentMetadataValue(This,targetId,metadataId,returnVal) (This)->lpVtbl->GetCurrentMetadataValue(This,targetId,metadataId,returnVal)
14625#else
14626/*** IUnknown methods ***/
14627static inline HRESULT IUIAutomationElement7_QueryInterface(IUIAutomationElement7* This,REFIID riid,void **ppvObject) {
14628    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
14629}
14630static inline ULONG IUIAutomationElement7_AddRef(IUIAutomationElement7* This) {
14631    return This->lpVtbl->AddRef(This);
14632}
14633static inline ULONG IUIAutomationElement7_Release(IUIAutomationElement7* This) {
14634    return This->lpVtbl->Release(This);
14635}
14636/*** IUIAutomationElement methods ***/
14637static inline HRESULT IUIAutomationElement7_SetFocus(IUIAutomationElement7* This) {
14638    return This->lpVtbl->SetFocus(This);
14639}
14640static inline HRESULT IUIAutomationElement7_GetRuntimeId(IUIAutomationElement7* This,SAFEARRAY **runtimeId) {
14641    return This->lpVtbl->GetRuntimeId(This,runtimeId);
14642}
14643static inline HRESULT IUIAutomationElement7_FindFirst(IUIAutomationElement7* This,enum TreeScope scope,IUIAutomationCondition *condition,IUIAutomationElement **found) {
14644    return This->lpVtbl->FindFirst(This,scope,condition,found);
14645}
14646static inline HRESULT IUIAutomationElement7_FindAll(IUIAutomationElement7* This,enum TreeScope scope,IUIAutomationCondition *condition,IUIAutomationElementArray **found) {
14647    return This->lpVtbl->FindAll(This,scope,condition,found);
14648}
14649static inline HRESULT IUIAutomationElement7_FindFirstBuildCache(IUIAutomationElement7* This,enum TreeScope scope,IUIAutomationCondition *condition,IUIAutomationCacheRequest *cacheRequest,IUIAutomationElement **found) {
14650    return This->lpVtbl->FindFirstBuildCache(This,scope,condition,cacheRequest,found);
14651}
14652static inline HRESULT IUIAutomationElement7_FindAllBuildCache(IUIAutomationElement7* This,enum TreeScope scope,IUIAutomationCondition *condition,IUIAutomationCacheRequest *cacheRequest,IUIAutomationElementArray **found) {
14653    return This->lpVtbl->FindAllBuildCache(This,scope,condition,cacheRequest,found);
14654}
14655static inline HRESULT IUIAutomationElement7_BuildUpdatedCache(IUIAutomationElement7* This,IUIAutomationCacheRequest *cacheRequest,IUIAutomationElement **updatedElement) {
14656    return This->lpVtbl->BuildUpdatedCache(This,cacheRequest,updatedElement);
14657}
14658static inline HRESULT IUIAutomationElement7_GetCurrentPropertyValue(IUIAutomationElement7* This,PROPERTYID propertyId,VARIANT *retVal) {
14659    return This->lpVtbl->GetCurrentPropertyValue(This,propertyId,retVal);
14660}
14661static inline HRESULT IUIAutomationElement7_GetCurrentPropertyValueEx(IUIAutomationElement7* This,PROPERTYID propertyId,WINBOOL ignoreDefaultValue,VARIANT *retVal) {
14662    return This->lpVtbl->GetCurrentPropertyValueEx(This,propertyId,ignoreDefaultValue,retVal);
14663}
14664static inline HRESULT IUIAutomationElement7_GetCachedPropertyValue(IUIAutomationElement7* This,PROPERTYID propertyId,VARIANT *retVal) {
14665    return This->lpVtbl->GetCachedPropertyValue(This,propertyId,retVal);
14666}
14667static inline HRESULT IUIAutomationElement7_GetCachedPropertyValueEx(IUIAutomationElement7* This,PROPERTYID propertyId,WINBOOL ignoreDefaultValue,VARIANT *retVal) {
14668    return This->lpVtbl->GetCachedPropertyValueEx(This,propertyId,ignoreDefaultValue,retVal);
14669}
14670static inline HRESULT IUIAutomationElement7_GetCurrentPatternAs(IUIAutomationElement7* This,PATTERNID patternId,REFIID riid,void **patternObject) {
14671    return This->lpVtbl->GetCurrentPatternAs(This,patternId,riid,patternObject);
14672}
14673static inline HRESULT IUIAutomationElement7_GetCachedPatternAs(IUIAutomationElement7* This,PATTERNID patternId,REFIID riid,void **patternObject) {
14674    return This->lpVtbl->GetCachedPatternAs(This,patternId,riid,patternObject);
14675}
14676static inline HRESULT IUIAutomationElement7_GetCurrentPattern(IUIAutomationElement7* This,PATTERNID patternId,IUnknown **patternObject) {
14677    return This->lpVtbl->GetCurrentPattern(This,patternId,patternObject);
14678}
14679static inline HRESULT IUIAutomationElement7_GetCachedPattern(IUIAutomationElement7* This,PATTERNID patternId,IUnknown **patternObject) {
14680    return This->lpVtbl->GetCachedPattern(This,patternId,patternObject);
14681}
14682static inline HRESULT IUIAutomationElement7_GetCachedParent(IUIAutomationElement7* This,IUIAutomationElement **parent) {
14683    return This->lpVtbl->GetCachedParent(This,parent);
14684}
14685static inline HRESULT IUIAutomationElement7_GetCachedChildren(IUIAutomationElement7* This,IUIAutomationElementArray **children) {
14686    return This->lpVtbl->GetCachedChildren(This,children);
14687}
14688static inline HRESULT IUIAutomationElement7_get_CurrentProcessId(IUIAutomationElement7* This,int *retVal) {
14689    return This->lpVtbl->get_CurrentProcessId(This,retVal);
14690}
14691static inline HRESULT IUIAutomationElement7_get_CurrentControlType(IUIAutomationElement7* This,CONTROLTYPEID *retVal) {
14692    return This->lpVtbl->get_CurrentControlType(This,retVal);
14693}
14694static inline HRESULT IUIAutomationElement7_get_CurrentLocalizedControlType(IUIAutomationElement7* This,BSTR *retVal) {
14695    return This->lpVtbl->get_CurrentLocalizedControlType(This,retVal);
14696}
14697static inline HRESULT IUIAutomationElement7_get_CurrentName(IUIAutomationElement7* This,BSTR *retVal) {
14698    return This->lpVtbl->get_CurrentName(This,retVal);
14699}
14700static inline HRESULT IUIAutomationElement7_get_CurrentAcceleratorKey(IUIAutomationElement7* This,BSTR *retVal) {
14701    return This->lpVtbl->get_CurrentAcceleratorKey(This,retVal);
14702}
14703static inline HRESULT IUIAutomationElement7_get_CurrentAccessKey(IUIAutomationElement7* This,BSTR *retVal) {
14704    return This->lpVtbl->get_CurrentAccessKey(This,retVal);
14705}
14706static inline HRESULT IUIAutomationElement7_get_CurrentHasKeyboardFocus(IUIAutomationElement7* This,WINBOOL *retVal) {
14707    return This->lpVtbl->get_CurrentHasKeyboardFocus(This,retVal);
14708}
14709static inline HRESULT IUIAutomationElement7_get_CurrentIsKeyboardFocusable(IUIAutomationElement7* This,WINBOOL *retVal) {
14710    return This->lpVtbl->get_CurrentIsKeyboardFocusable(This,retVal);
14711}
14712static inline HRESULT IUIAutomationElement7_get_CurrentIsEnabled(IUIAutomationElement7* This,WINBOOL *retVal) {
14713    return This->lpVtbl->get_CurrentIsEnabled(This,retVal);
14714}
14715static inline HRESULT IUIAutomationElement7_get_CurrentAutomationId(IUIAutomationElement7* This,BSTR *retVal) {
14716    return This->lpVtbl->get_CurrentAutomationId(This,retVal);
14717}
14718static inline HRESULT IUIAutomationElement7_get_CurrentClassName(IUIAutomationElement7* This,BSTR *retVal) {
14719    return This->lpVtbl->get_CurrentClassName(This,retVal);
14720}
14721static inline HRESULT IUIAutomationElement7_get_CurrentHelpText(IUIAutomationElement7* This,BSTR *retVal) {
14722    return This->lpVtbl->get_CurrentHelpText(This,retVal);
14723}
14724static inline HRESULT IUIAutomationElement7_get_CurrentCulture(IUIAutomationElement7* This,int *retVal) {
14725    return This->lpVtbl->get_CurrentCulture(This,retVal);
14726}
14727static inline HRESULT IUIAutomationElement7_get_CurrentIsControlElement(IUIAutomationElement7* This,WINBOOL *retVal) {
14728    return This->lpVtbl->get_CurrentIsControlElement(This,retVal);
14729}
14730static inline HRESULT IUIAutomationElement7_get_CurrentIsContentElement(IUIAutomationElement7* This,WINBOOL *retVal) {
14731    return This->lpVtbl->get_CurrentIsContentElement(This,retVal);
14732}
14733static inline HRESULT IUIAutomationElement7_get_CurrentIsPassword(IUIAutomationElement7* This,WINBOOL *retVal) {
14734    return This->lpVtbl->get_CurrentIsPassword(This,retVal);
14735}
14736static inline HRESULT IUIAutomationElement7_get_CurrentNativeWindowHandle(IUIAutomationElement7* This,UIA_HWND *retVal) {
14737    return This->lpVtbl->get_CurrentNativeWindowHandle(This,retVal);
14738}
14739static inline HRESULT IUIAutomationElement7_get_CurrentItemType(IUIAutomationElement7* This,BSTR *retVal) {
14740    return This->lpVtbl->get_CurrentItemType(This,retVal);
14741}
14742static inline HRESULT IUIAutomationElement7_get_CurrentIsOffscreen(IUIAutomationElement7* This,WINBOOL *retVal) {
14743    return This->lpVtbl->get_CurrentIsOffscreen(This,retVal);
14744}
14745static inline HRESULT IUIAutomationElement7_get_CurrentOrientation(IUIAutomationElement7* This,enum OrientationType *retVal) {
14746    return This->lpVtbl->get_CurrentOrientation(This,retVal);
14747}
14748static inline HRESULT IUIAutomationElement7_get_CurrentFrameworkId(IUIAutomationElement7* This,BSTR *retVal) {
14749    return This->lpVtbl->get_CurrentFrameworkId(This,retVal);
14750}
14751static inline HRESULT IUIAutomationElement7_get_CurrentIsRequiredForForm(IUIAutomationElement7* This,WINBOOL *retVal) {
14752    return This->lpVtbl->get_CurrentIsRequiredForForm(This,retVal);
14753}
14754static inline HRESULT IUIAutomationElement7_get_CurrentItemStatus(IUIAutomationElement7* This,BSTR *retVal) {
14755    return This->lpVtbl->get_CurrentItemStatus(This,retVal);
14756}
14757static inline HRESULT IUIAutomationElement7_get_CurrentBoundingRectangle(IUIAutomationElement7* This,RECT *retVal) {
14758    return This->lpVtbl->get_CurrentBoundingRectangle(This,retVal);
14759}
14760static inline HRESULT IUIAutomationElement7_get_CurrentLabeledBy(IUIAutomationElement7* This,IUIAutomationElement **retVal) {
14761    return This->lpVtbl->get_CurrentLabeledBy(This,retVal);
14762}
14763static inline HRESULT IUIAutomationElement7_get_CurrentAriaRole(IUIAutomationElement7* This,BSTR *retVal) {
14764    return This->lpVtbl->get_CurrentAriaRole(This,retVal);
14765}
14766static inline HRESULT IUIAutomationElement7_get_CurrentAriaProperties(IUIAutomationElement7* This,BSTR *retVal) {
14767    return This->lpVtbl->get_CurrentAriaProperties(This,retVal);
14768}
14769static inline HRESULT IUIAutomationElement7_get_CurrentIsDataValidForForm(IUIAutomationElement7* This,WINBOOL *retVal) {
14770    return This->lpVtbl->get_CurrentIsDataValidForForm(This,retVal);
14771}
14772static inline HRESULT IUIAutomationElement7_get_CurrentControllerFor(IUIAutomationElement7* This,IUIAutomationElementArray **retVal) {
14773    return This->lpVtbl->get_CurrentControllerFor(This,retVal);
14774}
14775static inline HRESULT IUIAutomationElement7_get_CurrentDescribedBy(IUIAutomationElement7* This,IUIAutomationElementArray **retVal) {
14776    return This->lpVtbl->get_CurrentDescribedBy(This,retVal);
14777}
14778static inline HRESULT IUIAutomationElement7_get_CurrentFlowsTo(IUIAutomationElement7* This,IUIAutomationElementArray **retVal) {
14779    return This->lpVtbl->get_CurrentFlowsTo(This,retVal);
14780}
14781static inline HRESULT IUIAutomationElement7_get_CurrentProviderDescription(IUIAutomationElement7* This,BSTR *retVal) {
14782    return This->lpVtbl->get_CurrentProviderDescription(This,retVal);
14783}
14784static inline HRESULT IUIAutomationElement7_get_CachedProcessId(IUIAutomationElement7* This,int *retVal) {
14785    return This->lpVtbl->get_CachedProcessId(This,retVal);
14786}
14787static inline HRESULT IUIAutomationElement7_get_CachedControlType(IUIAutomationElement7* This,CONTROLTYPEID *retVal) {
14788    return This->lpVtbl->get_CachedControlType(This,retVal);
14789}
14790static inline HRESULT IUIAutomationElement7_get_CachedLocalizedControlType(IUIAutomationElement7* This,BSTR *retVal) {
14791    return This->lpVtbl->get_CachedLocalizedControlType(This,retVal);
14792}
14793static inline HRESULT IUIAutomationElement7_get_CachedName(IUIAutomationElement7* This,BSTR *retVal) {
14794    return This->lpVtbl->get_CachedName(This,retVal);
14795}
14796static inline HRESULT IUIAutomationElement7_get_CachedAcceleratorKey(IUIAutomationElement7* This,BSTR *retVal) {
14797    return This->lpVtbl->get_CachedAcceleratorKey(This,retVal);
14798}
14799static inline HRESULT IUIAutomationElement7_get_CachedAccessKey(IUIAutomationElement7* This,BSTR *retVal) {
14800    return This->lpVtbl->get_CachedAccessKey(This,retVal);
14801}
14802static inline HRESULT IUIAutomationElement7_get_CachedHasKeyboardFocus(IUIAutomationElement7* This,WINBOOL *retVal) {
14803    return This->lpVtbl->get_CachedHasKeyboardFocus(This,retVal);
14804}
14805static inline HRESULT IUIAutomationElement7_get_CachedIsKeyboardFocusable(IUIAutomationElement7* This,WINBOOL *retVal) {
14806    return This->lpVtbl->get_CachedIsKeyboardFocusable(This,retVal);
14807}
14808static inline HRESULT IUIAutomationElement7_get_CachedIsEnabled(IUIAutomationElement7* This,WINBOOL *retVal) {
14809    return This->lpVtbl->get_CachedIsEnabled(This,retVal);
14810}
14811static inline HRESULT IUIAutomationElement7_get_CachedAutomationId(IUIAutomationElement7* This,BSTR *retVal) {
14812    return This->lpVtbl->get_CachedAutomationId(This,retVal);
14813}
14814static inline HRESULT IUIAutomationElement7_get_CachedClassName(IUIAutomationElement7* This,BSTR *retVal) {
14815    return This->lpVtbl->get_CachedClassName(This,retVal);
14816}
14817static inline HRESULT IUIAutomationElement7_get_CachedHelpText(IUIAutomationElement7* This,BSTR *retVal) {
14818    return This->lpVtbl->get_CachedHelpText(This,retVal);
14819}
14820static inline HRESULT IUIAutomationElement7_get_CachedCulture(IUIAutomationElement7* This,int *retVal) {
14821    return This->lpVtbl->get_CachedCulture(This,retVal);
14822}
14823static inline HRESULT IUIAutomationElement7_get_CachedIsControlElement(IUIAutomationElement7* This,WINBOOL *retVal) {
14824    return This->lpVtbl->get_CachedIsControlElement(This,retVal);
14825}
14826static inline HRESULT IUIAutomationElement7_get_CachedIsContentElement(IUIAutomationElement7* This,WINBOOL *retVal) {
14827    return This->lpVtbl->get_CachedIsContentElement(This,retVal);
14828}
14829static inline HRESULT IUIAutomationElement7_get_CachedIsPassword(IUIAutomationElement7* This,WINBOOL *retVal) {
14830    return This->lpVtbl->get_CachedIsPassword(This,retVal);
14831}
14832static inline HRESULT IUIAutomationElement7_get_CachedNativeWindowHandle(IUIAutomationElement7* This,UIA_HWND *retVal) {
14833    return This->lpVtbl->get_CachedNativeWindowHandle(This,retVal);
14834}
14835static inline HRESULT IUIAutomationElement7_get_CachedItemType(IUIAutomationElement7* This,BSTR *retVal) {
14836    return This->lpVtbl->get_CachedItemType(This,retVal);
14837}
14838static inline HRESULT IUIAutomationElement7_get_CachedIsOffscreen(IUIAutomationElement7* This,WINBOOL *retVal) {
14839    return This->lpVtbl->get_CachedIsOffscreen(This,retVal);
14840}
14841static inline HRESULT IUIAutomationElement7_get_CachedOrientation(IUIAutomationElement7* This,enum OrientationType *retVal) {
14842    return This->lpVtbl->get_CachedOrientation(This,retVal);
14843}
14844static inline HRESULT IUIAutomationElement7_get_CachedFrameworkId(IUIAutomationElement7* This,BSTR *retVal) {
14845    return This->lpVtbl->get_CachedFrameworkId(This,retVal);
14846}
14847static inline HRESULT IUIAutomationElement7_get_CachedIsRequiredForForm(IUIAutomationElement7* This,WINBOOL *retVal) {
14848    return This->lpVtbl->get_CachedIsRequiredForForm(This,retVal);
14849}
14850static inline HRESULT IUIAutomationElement7_get_CachedItemStatus(IUIAutomationElement7* This,BSTR *retVal) {
14851    return This->lpVtbl->get_CachedItemStatus(This,retVal);
14852}
14853static inline HRESULT IUIAutomationElement7_get_CachedBoundingRectangle(IUIAutomationElement7* This,RECT *retVal) {
14854    return This->lpVtbl->get_CachedBoundingRectangle(This,retVal);
14855}
14856static inline HRESULT IUIAutomationElement7_get_CachedLabeledBy(IUIAutomationElement7* This,IUIAutomationElement **retVal) {
14857    return This->lpVtbl->get_CachedLabeledBy(This,retVal);
14858}
14859static inline HRESULT IUIAutomationElement7_get_CachedAriaRole(IUIAutomationElement7* This,BSTR *retVal) {
14860    return This->lpVtbl->get_CachedAriaRole(This,retVal);
14861}
14862static inline HRESULT IUIAutomationElement7_get_CachedAriaProperties(IUIAutomationElement7* This,BSTR *retVal) {
14863    return This->lpVtbl->get_CachedAriaProperties(This,retVal);
14864}
14865static inline HRESULT IUIAutomationElement7_get_CachedIsDataValidForForm(IUIAutomationElement7* This,WINBOOL *retVal) {
14866    return This->lpVtbl->get_CachedIsDataValidForForm(This,retVal);
14867}
14868static inline HRESULT IUIAutomationElement7_get_CachedControllerFor(IUIAutomationElement7* This,IUIAutomationElementArray **retVal) {
14869    return This->lpVtbl->get_CachedControllerFor(This,retVal);
14870}
14871static inline HRESULT IUIAutomationElement7_get_CachedDescribedBy(IUIAutomationElement7* This,IUIAutomationElementArray **retVal) {
14872    return This->lpVtbl->get_CachedDescribedBy(This,retVal);
14873}
14874static inline HRESULT IUIAutomationElement7_get_CachedFlowsTo(IUIAutomationElement7* This,IUIAutomationElementArray **retVal) {
14875    return This->lpVtbl->get_CachedFlowsTo(This,retVal);
14876}
14877static inline HRESULT IUIAutomationElement7_get_CachedProviderDescription(IUIAutomationElement7* This,BSTR *retVal) {
14878    return This->lpVtbl->get_CachedProviderDescription(This,retVal);
14879}
14880static inline HRESULT IUIAutomationElement7_GetClickablePoint(IUIAutomationElement7* This,POINT *clickable,WINBOOL *gotClickable) {
14881    return This->lpVtbl->GetClickablePoint(This,clickable,gotClickable);
14882}
14883/*** IUIAutomationElement2 methods ***/
14884static inline HRESULT IUIAutomationElement7_get_CurrentOptimizeForVisualContent(IUIAutomationElement7* This,WINBOOL *retVal) {
14885    return This->lpVtbl->get_CurrentOptimizeForVisualContent(This,retVal);
14886}
14887static inline HRESULT IUIAutomationElement7_get_CachedOptimizeForVisualContent(IUIAutomationElement7* This,WINBOOL *retVal) {
14888    return This->lpVtbl->get_CachedOptimizeForVisualContent(This,retVal);
14889}
14890static inline HRESULT IUIAutomationElement7_get_CurrentLiveSetting(IUIAutomationElement7* This,enum LiveSetting *retVal) {
14891    return This->lpVtbl->get_CurrentLiveSetting(This,retVal);
14892}
14893static inline HRESULT IUIAutomationElement7_get_CachedLiveSetting(IUIAutomationElement7* This,enum LiveSetting *retVal) {
14894    return This->lpVtbl->get_CachedLiveSetting(This,retVal);
14895}
14896static inline HRESULT IUIAutomationElement7_get_CurrentFlowsFrom(IUIAutomationElement7* This,IUIAutomationElementArray **retVal) {
14897    return This->lpVtbl->get_CurrentFlowsFrom(This,retVal);
14898}
14899static inline HRESULT IUIAutomationElement7_get_CachedFlowsFrom(IUIAutomationElement7* This,IUIAutomationElementArray **retVal) {
14900    return This->lpVtbl->get_CachedFlowsFrom(This,retVal);
14901}
14902/*** IUIAutomationElement3 methods ***/
14903static inline HRESULT IUIAutomationElement7_ShowContextMenu(IUIAutomationElement7* This) {
14904    return This->lpVtbl->ShowContextMenu(This);
14905}
14906static inline HRESULT IUIAutomationElement7_get_CurrentIsPeripheral(IUIAutomationElement7* This,WINBOOL *retVal) {
14907    return This->lpVtbl->get_CurrentIsPeripheral(This,retVal);
14908}
14909static inline HRESULT IUIAutomationElement7_get_CachedIsPeripheral(IUIAutomationElement7* This,WINBOOL *retVal) {
14910    return This->lpVtbl->get_CachedIsPeripheral(This,retVal);
14911}
14912/*** IUIAutomationElement4 methods ***/
14913static inline HRESULT IUIAutomationElement7_get_CurrentPositionInSet(IUIAutomationElement7* This,int *retVal) {
14914    return This->lpVtbl->get_CurrentPositionInSet(This,retVal);
14915}
14916static inline HRESULT IUIAutomationElement7_get_CurrentSizeOfSet(IUIAutomationElement7* This,int *retVal) {
14917    return This->lpVtbl->get_CurrentSizeOfSet(This,retVal);
14918}
14919static inline HRESULT IUIAutomationElement7_get_CurrentLevel(IUIAutomationElement7* This,int *retVal) {
14920    return This->lpVtbl->get_CurrentLevel(This,retVal);
14921}
14922static inline HRESULT IUIAutomationElement7_get_CurrentAnnotationTypes(IUIAutomationElement7* This,SAFEARRAY **retVal) {
14923    return This->lpVtbl->get_CurrentAnnotationTypes(This,retVal);
14924}
14925static inline HRESULT IUIAutomationElement7_get_CurrentAnnotationObjects(IUIAutomationElement7* This,IUIAutomationElementArray **retVal) {
14926    return This->lpVtbl->get_CurrentAnnotationObjects(This,retVal);
14927}
14928static inline HRESULT IUIAutomationElement7_get_CachedPositionInSet(IUIAutomationElement7* This,int *retVal) {
14929    return This->lpVtbl->get_CachedPositionInSet(This,retVal);
14930}
14931static inline HRESULT IUIAutomationElement7_get_CachedSizeOfSet(IUIAutomationElement7* This,int *retVal) {
14932    return This->lpVtbl->get_CachedSizeOfSet(This,retVal);
14933}
14934static inline HRESULT IUIAutomationElement7_get_CachedLevel(IUIAutomationElement7* This,int *retVal) {
14935    return This->lpVtbl->get_CachedLevel(This,retVal);
14936}
14937static inline HRESULT IUIAutomationElement7_get_CachedAnnotationTypes(IUIAutomationElement7* This,SAFEARRAY **retVal) {
14938    return This->lpVtbl->get_CachedAnnotationTypes(This,retVal);
14939}
14940static inline HRESULT IUIAutomationElement7_get_CachedAnnotationObjects(IUIAutomationElement7* This,IUIAutomationElementArray **retVal) {
14941    return This->lpVtbl->get_CachedAnnotationObjects(This,retVal);
14942}
14943/*** IUIAutomationElement5 methods ***/
14944static inline HRESULT IUIAutomationElement7_get_CurrentLandmarkType(IUIAutomationElement7* This,LANDMARKTYPEID *retVal) {
14945    return This->lpVtbl->get_CurrentLandmarkType(This,retVal);
14946}
14947static inline HRESULT IUIAutomationElement7_get_CurrentLocalizedLandmarkType(IUIAutomationElement7* This,BSTR *retVal) {
14948    return This->lpVtbl->get_CurrentLocalizedLandmarkType(This,retVal);
14949}
14950static inline HRESULT IUIAutomationElement7_get_CachedLandmarkType(IUIAutomationElement7* This,LANDMARKTYPEID *retVal) {
14951    return This->lpVtbl->get_CachedLandmarkType(This,retVal);
14952}
14953static inline HRESULT IUIAutomationElement7_get_CachedLocalizedLandmarkType(IUIAutomationElement7* This,BSTR *retVal) {
14954    return This->lpVtbl->get_CachedLocalizedLandmarkType(This,retVal);
14955}
14956/*** IUIAutomationElement6 methods ***/
14957static inline HRESULT IUIAutomationElement7_get_CurrentFullDescription(IUIAutomationElement7* This,BSTR *retVal) {
14958    return This->lpVtbl->get_CurrentFullDescription(This,retVal);
14959}
14960static inline HRESULT IUIAutomationElement7_get_CachedFullDescription(IUIAutomationElement7* This,BSTR *retVal) {
14961    return This->lpVtbl->get_CachedFullDescription(This,retVal);
14962}
14963/*** IUIAutomationElement7 methods ***/
14964static inline HRESULT IUIAutomationElement7_FindFirstWithOptions(IUIAutomationElement7* This,enum TreeScope scope,IUIAutomationCondition *condition,enum TreeTraversalOptions traversalOptions,IUIAutomationElement *root,IUIAutomationElement **found) {
14965    return This->lpVtbl->FindFirstWithOptions(This,scope,condition,traversalOptions,root,found);
14966}
14967static inline HRESULT IUIAutomationElement7_FindAllWithOptions(IUIAutomationElement7* This,enum TreeScope scope,IUIAutomationCondition *condition,enum TreeTraversalOptions traversalOptions,IUIAutomationElement *root,IUIAutomationElementArray **found) {
14968    return This->lpVtbl->FindAllWithOptions(This,scope,condition,traversalOptions,root,found);
14969}
14970static inline HRESULT IUIAutomationElement7_FindFirstWithOptionsBuildCache(IUIAutomationElement7* This,enum TreeScope scope,IUIAutomationCondition *condition,IUIAutomationCacheRequest *cacheRequest,enum TreeTraversalOptions traversalOptions,IUIAutomationElement *root,IUIAutomationElement **found) {
14971    return This->lpVtbl->FindFirstWithOptionsBuildCache(This,scope,condition,cacheRequest,traversalOptions,root,found);
14972}
14973static inline HRESULT IUIAutomationElement7_FindAllWithOptionsBuildCache(IUIAutomationElement7* This,enum TreeScope scope,IUIAutomationCondition *condition,IUIAutomationCacheRequest *cacheRequest,enum TreeTraversalOptions traversalOptions,IUIAutomationElement *root,IUIAutomationElementArray **found) {
14974    return This->lpVtbl->FindAllWithOptionsBuildCache(This,scope,condition,cacheRequest,traversalOptions,root,found);
14975}
14976static inline HRESULT IUIAutomationElement7_GetCurrentMetadataValue(IUIAutomationElement7* This,int targetId,METADATAID metadataId,VARIANT *returnVal) {
14977    return This->lpVtbl->GetCurrentMetadataValue(This,targetId,metadataId,returnVal);
14978}
14979#endif
14980#endif
14981
14982#endif
14983
14984
14985#endif  /* __IUIAutomationElement7_INTERFACE_DEFINED__ */
14986
14987/*****************************************************************************
14988 * IUIAutomationElement8 interface
14989 */
14990#ifndef __IUIAutomationElement8_INTERFACE_DEFINED__
14991#define __IUIAutomationElement8_INTERFACE_DEFINED__
14992
14993DEFINE_GUID(IID_IUIAutomationElement8, 0x8c60217d, 0x5411, 0x4cde, 0xbc,0xc0, 0x1c,0xed,0xa2,0x23,0x83,0x0c);
14994#if defined(__cplusplus) && !defined(CINTERFACE)
14995MIDL_INTERFACE("8c60217d-5411-4cde-bcc0-1ceda223830c")
14996IUIAutomationElement8 : public IUIAutomationElement7
14997{
14998    virtual HRESULT STDMETHODCALLTYPE get_CurrentHeadingLevel(
14999        HEADINGLEVELID *retVal) = 0;
15000
15001    virtual HRESULT STDMETHODCALLTYPE get_CachedHeadingLevel(
15002        HEADINGLEVELID *retVal) = 0;
15003
15004};
15005#ifdef __CRT_UUID_DECL
15006__CRT_UUID_DECL(IUIAutomationElement8, 0x8c60217d, 0x5411, 0x4cde, 0xbc,0xc0, 0x1c,0xed,0xa2,0x23,0x83,0x0c)
15007#endif
15008#else
15009typedef struct IUIAutomationElement8Vtbl {
15010    BEGIN_INTERFACE
15011
15012    /*** IUnknown methods ***/
15013    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
15014        IUIAutomationElement8 *This,
15015        REFIID riid,
15016        void **ppvObject);
15017
15018    ULONG (STDMETHODCALLTYPE *AddRef)(
15019        IUIAutomationElement8 *This);
15020
15021    ULONG (STDMETHODCALLTYPE *Release)(
15022        IUIAutomationElement8 *This);
15023
15024    /*** IUIAutomationElement methods ***/
15025    HRESULT (STDMETHODCALLTYPE *SetFocus)(
15026        IUIAutomationElement8 *This);
15027
15028    HRESULT (STDMETHODCALLTYPE *GetRuntimeId)(
15029        IUIAutomationElement8 *This,
15030        SAFEARRAY **runtimeId);
15031
15032    HRESULT (STDMETHODCALLTYPE *FindFirst)(
15033        IUIAutomationElement8 *This,
15034        enum TreeScope scope,
15035        IUIAutomationCondition *condition,
15036        IUIAutomationElement **found);
15037
15038    HRESULT (STDMETHODCALLTYPE *FindAll)(
15039        IUIAutomationElement8 *This,
15040        enum TreeScope scope,
15041        IUIAutomationCondition *condition,
15042        IUIAutomationElementArray **found);
15043
15044    HRESULT (STDMETHODCALLTYPE *FindFirstBuildCache)(
15045        IUIAutomationElement8 *This,
15046        enum TreeScope scope,
15047        IUIAutomationCondition *condition,
15048        IUIAutomationCacheRequest *cacheRequest,
15049        IUIAutomationElement **found);
15050
15051    HRESULT (STDMETHODCALLTYPE *FindAllBuildCache)(
15052        IUIAutomationElement8 *This,
15053        enum TreeScope scope,
15054        IUIAutomationCondition *condition,
15055        IUIAutomationCacheRequest *cacheRequest,
15056        IUIAutomationElementArray **found);
15057
15058    HRESULT (STDMETHODCALLTYPE *BuildUpdatedCache)(
15059        IUIAutomationElement8 *This,
15060        IUIAutomationCacheRequest *cacheRequest,
15061        IUIAutomationElement **updatedElement);
15062
15063    HRESULT (STDMETHODCALLTYPE *GetCurrentPropertyValue)(
15064        IUIAutomationElement8 *This,
15065        PROPERTYID propertyId,
15066        VARIANT *retVal);
15067
15068    HRESULT (STDMETHODCALLTYPE *GetCurrentPropertyValueEx)(
15069        IUIAutomationElement8 *This,
15070        PROPERTYID propertyId,
15071        WINBOOL ignoreDefaultValue,
15072        VARIANT *retVal);
15073
15074    HRESULT (STDMETHODCALLTYPE *GetCachedPropertyValue)(
15075        IUIAutomationElement8 *This,
15076        PROPERTYID propertyId,
15077        VARIANT *retVal);
15078
15079    HRESULT (STDMETHODCALLTYPE *GetCachedPropertyValueEx)(
15080        IUIAutomationElement8 *This,
15081        PROPERTYID propertyId,
15082        WINBOOL ignoreDefaultValue,
15083        VARIANT *retVal);
15084
15085    HRESULT (STDMETHODCALLTYPE *GetCurrentPatternAs)(
15086        IUIAutomationElement8 *This,
15087        PATTERNID patternId,
15088        REFIID riid,
15089        void **patternObject);
15090
15091    HRESULT (STDMETHODCALLTYPE *GetCachedPatternAs)(
15092        IUIAutomationElement8 *This,
15093        PATTERNID patternId,
15094        REFIID riid,
15095        void **patternObject);
15096
15097    HRESULT (STDMETHODCALLTYPE *GetCurrentPattern)(
15098        IUIAutomationElement8 *This,
15099        PATTERNID patternId,
15100        IUnknown **patternObject);
15101
15102    HRESULT (STDMETHODCALLTYPE *GetCachedPattern)(
15103        IUIAutomationElement8 *This,
15104        PATTERNID patternId,
15105        IUnknown **patternObject);
15106
15107    HRESULT (STDMETHODCALLTYPE *GetCachedParent)(
15108        IUIAutomationElement8 *This,
15109        IUIAutomationElement **parent);
15110
15111    HRESULT (STDMETHODCALLTYPE *GetCachedChildren)(
15112        IUIAutomationElement8 *This,
15113        IUIAutomationElementArray **children);
15114
15115    HRESULT (STDMETHODCALLTYPE *get_CurrentProcessId)(
15116        IUIAutomationElement8 *This,
15117        int *retVal);
15118
15119    HRESULT (STDMETHODCALLTYPE *get_CurrentControlType)(
15120        IUIAutomationElement8 *This,
15121        CONTROLTYPEID *retVal);
15122
15123    HRESULT (STDMETHODCALLTYPE *get_CurrentLocalizedControlType)(
15124        IUIAutomationElement8 *This,
15125        BSTR *retVal);
15126
15127    HRESULT (STDMETHODCALLTYPE *get_CurrentName)(
15128        IUIAutomationElement8 *This,
15129        BSTR *retVal);
15130
15131    HRESULT (STDMETHODCALLTYPE *get_CurrentAcceleratorKey)(
15132        IUIAutomationElement8 *This,
15133        BSTR *retVal);
15134
15135    HRESULT (STDMETHODCALLTYPE *get_CurrentAccessKey)(
15136        IUIAutomationElement8 *This,
15137        BSTR *retVal);
15138
15139    HRESULT (STDMETHODCALLTYPE *get_CurrentHasKeyboardFocus)(
15140        IUIAutomationElement8 *This,
15141        WINBOOL *retVal);
15142
15143    HRESULT (STDMETHODCALLTYPE *get_CurrentIsKeyboardFocusable)(
15144        IUIAutomationElement8 *This,
15145        WINBOOL *retVal);
15146
15147    HRESULT (STDMETHODCALLTYPE *get_CurrentIsEnabled)(
15148        IUIAutomationElement8 *This,
15149        WINBOOL *retVal);
15150
15151    HRESULT (STDMETHODCALLTYPE *get_CurrentAutomationId)(
15152        IUIAutomationElement8 *This,
15153        BSTR *retVal);
15154
15155    HRESULT (STDMETHODCALLTYPE *get_CurrentClassName)(
15156        IUIAutomationElement8 *This,
15157        BSTR *retVal);
15158
15159    HRESULT (STDMETHODCALLTYPE *get_CurrentHelpText)(
15160        IUIAutomationElement8 *This,
15161        BSTR *retVal);
15162
15163    HRESULT (STDMETHODCALLTYPE *get_CurrentCulture)(
15164        IUIAutomationElement8 *This,
15165        int *retVal);
15166
15167    HRESULT (STDMETHODCALLTYPE *get_CurrentIsControlElement)(
15168        IUIAutomationElement8 *This,
15169        WINBOOL *retVal);
15170
15171    HRESULT (STDMETHODCALLTYPE *get_CurrentIsContentElement)(
15172        IUIAutomationElement8 *This,
15173        WINBOOL *retVal);
15174
15175    HRESULT (STDMETHODCALLTYPE *get_CurrentIsPassword)(
15176        IUIAutomationElement8 *This,
15177        WINBOOL *retVal);
15178
15179    HRESULT (STDMETHODCALLTYPE *get_CurrentNativeWindowHandle)(
15180        IUIAutomationElement8 *This,
15181        UIA_HWND *retVal);
15182
15183    HRESULT (STDMETHODCALLTYPE *get_CurrentItemType)(
15184        IUIAutomationElement8 *This,
15185        BSTR *retVal);
15186
15187    HRESULT (STDMETHODCALLTYPE *get_CurrentIsOffscreen)(
15188        IUIAutomationElement8 *This,
15189        WINBOOL *retVal);
15190
15191    HRESULT (STDMETHODCALLTYPE *get_CurrentOrientation)(
15192        IUIAutomationElement8 *This,
15193        enum OrientationType *retVal);
15194
15195    HRESULT (STDMETHODCALLTYPE *get_CurrentFrameworkId)(
15196        IUIAutomationElement8 *This,
15197        BSTR *retVal);
15198
15199    HRESULT (STDMETHODCALLTYPE *get_CurrentIsRequiredForForm)(
15200        IUIAutomationElement8 *This,
15201        WINBOOL *retVal);
15202
15203    HRESULT (STDMETHODCALLTYPE *get_CurrentItemStatus)(
15204        IUIAutomationElement8 *This,
15205        BSTR *retVal);
15206
15207    HRESULT (STDMETHODCALLTYPE *get_CurrentBoundingRectangle)(
15208        IUIAutomationElement8 *This,
15209        RECT *retVal);
15210
15211    HRESULT (STDMETHODCALLTYPE *get_CurrentLabeledBy)(
15212        IUIAutomationElement8 *This,
15213        IUIAutomationElement **retVal);
15214
15215    HRESULT (STDMETHODCALLTYPE *get_CurrentAriaRole)(
15216        IUIAutomationElement8 *This,
15217        BSTR *retVal);
15218
15219    HRESULT (STDMETHODCALLTYPE *get_CurrentAriaProperties)(
15220        IUIAutomationElement8 *This,
15221        BSTR *retVal);
15222
15223    HRESULT (STDMETHODCALLTYPE *get_CurrentIsDataValidForForm)(
15224        IUIAutomationElement8 *This,
15225        WINBOOL *retVal);
15226
15227    HRESULT (STDMETHODCALLTYPE *get_CurrentControllerFor)(
15228        IUIAutomationElement8 *This,
15229        IUIAutomationElementArray **retVal);
15230
15231    HRESULT (STDMETHODCALLTYPE *get_CurrentDescribedBy)(
15232        IUIAutomationElement8 *This,
15233        IUIAutomationElementArray **retVal);
15234
15235    HRESULT (STDMETHODCALLTYPE *get_CurrentFlowsTo)(
15236        IUIAutomationElement8 *This,
15237        IUIAutomationElementArray **retVal);
15238
15239    HRESULT (STDMETHODCALLTYPE *get_CurrentProviderDescription)(
15240        IUIAutomationElement8 *This,
15241        BSTR *retVal);
15242
15243    HRESULT (STDMETHODCALLTYPE *get_CachedProcessId)(
15244        IUIAutomationElement8 *This,
15245        int *retVal);
15246
15247    HRESULT (STDMETHODCALLTYPE *get_CachedControlType)(
15248        IUIAutomationElement8 *This,
15249        CONTROLTYPEID *retVal);
15250
15251    HRESULT (STDMETHODCALLTYPE *get_CachedLocalizedControlType)(
15252        IUIAutomationElement8 *This,
15253        BSTR *retVal);
15254
15255    HRESULT (STDMETHODCALLTYPE *get_CachedName)(
15256        IUIAutomationElement8 *This,
15257        BSTR *retVal);
15258
15259    HRESULT (STDMETHODCALLTYPE *get_CachedAcceleratorKey)(
15260        IUIAutomationElement8 *This,
15261        BSTR *retVal);
15262
15263    HRESULT (STDMETHODCALLTYPE *get_CachedAccessKey)(
15264        IUIAutomationElement8 *This,
15265        BSTR *retVal);
15266
15267    HRESULT (STDMETHODCALLTYPE *get_CachedHasKeyboardFocus)(
15268        IUIAutomationElement8 *This,
15269        WINBOOL *retVal);
15270
15271    HRESULT (STDMETHODCALLTYPE *get_CachedIsKeyboardFocusable)(
15272        IUIAutomationElement8 *This,
15273        WINBOOL *retVal);
15274
15275    HRESULT (STDMETHODCALLTYPE *get_CachedIsEnabled)(
15276        IUIAutomationElement8 *This,
15277        WINBOOL *retVal);
15278
15279    HRESULT (STDMETHODCALLTYPE *get_CachedAutomationId)(
15280        IUIAutomationElement8 *This,
15281        BSTR *retVal);
15282
15283    HRESULT (STDMETHODCALLTYPE *get_CachedClassName)(
15284        IUIAutomationElement8 *This,
15285        BSTR *retVal);
15286
15287    HRESULT (STDMETHODCALLTYPE *get_CachedHelpText)(
15288        IUIAutomationElement8 *This,
15289        BSTR *retVal);
15290
15291    HRESULT (STDMETHODCALLTYPE *get_CachedCulture)(
15292        IUIAutomationElement8 *This,
15293        int *retVal);
15294
15295    HRESULT (STDMETHODCALLTYPE *get_CachedIsControlElement)(
15296        IUIAutomationElement8 *This,
15297        WINBOOL *retVal);
15298
15299    HRESULT (STDMETHODCALLTYPE *get_CachedIsContentElement)(
15300        IUIAutomationElement8 *This,
15301        WINBOOL *retVal);
15302
15303    HRESULT (STDMETHODCALLTYPE *get_CachedIsPassword)(
15304        IUIAutomationElement8 *This,
15305        WINBOOL *retVal);
15306
15307    HRESULT (STDMETHODCALLTYPE *get_CachedNativeWindowHandle)(
15308        IUIAutomationElement8 *This,
15309        UIA_HWND *retVal);
15310
15311    HRESULT (STDMETHODCALLTYPE *get_CachedItemType)(
15312        IUIAutomationElement8 *This,
15313        BSTR *retVal);
15314
15315    HRESULT (STDMETHODCALLTYPE *get_CachedIsOffscreen)(
15316        IUIAutomationElement8 *This,
15317        WINBOOL *retVal);
15318
15319    HRESULT (STDMETHODCALLTYPE *get_CachedOrientation)(
15320        IUIAutomationElement8 *This,
15321        enum OrientationType *retVal);
15322
15323    HRESULT (STDMETHODCALLTYPE *get_CachedFrameworkId)(
15324        IUIAutomationElement8 *This,
15325        BSTR *retVal);
15326
15327    HRESULT (STDMETHODCALLTYPE *get_CachedIsRequiredForForm)(
15328        IUIAutomationElement8 *This,
15329        WINBOOL *retVal);
15330
15331    HRESULT (STDMETHODCALLTYPE *get_CachedItemStatus)(
15332        IUIAutomationElement8 *This,
15333        BSTR *retVal);
15334
15335    HRESULT (STDMETHODCALLTYPE *get_CachedBoundingRectangle)(
15336        IUIAutomationElement8 *This,
15337        RECT *retVal);
15338
15339    HRESULT (STDMETHODCALLTYPE *get_CachedLabeledBy)(
15340        IUIAutomationElement8 *This,
15341        IUIAutomationElement **retVal);
15342
15343    HRESULT (STDMETHODCALLTYPE *get_CachedAriaRole)(
15344        IUIAutomationElement8 *This,
15345        BSTR *retVal);
15346
15347    HRESULT (STDMETHODCALLTYPE *get_CachedAriaProperties)(
15348        IUIAutomationElement8 *This,
15349        BSTR *retVal);
15350
15351    HRESULT (STDMETHODCALLTYPE *get_CachedIsDataValidForForm)(
15352        IUIAutomationElement8 *This,
15353        WINBOOL *retVal);
15354
15355    HRESULT (STDMETHODCALLTYPE *get_CachedControllerFor)(
15356        IUIAutomationElement8 *This,
15357        IUIAutomationElementArray **retVal);
15358
15359    HRESULT (STDMETHODCALLTYPE *get_CachedDescribedBy)(
15360        IUIAutomationElement8 *This,
15361        IUIAutomationElementArray **retVal);
15362
15363    HRESULT (STDMETHODCALLTYPE *get_CachedFlowsTo)(
15364        IUIAutomationElement8 *This,
15365        IUIAutomationElementArray **retVal);
15366
15367    HRESULT (STDMETHODCALLTYPE *get_CachedProviderDescription)(
15368        IUIAutomationElement8 *This,
15369        BSTR *retVal);
15370
15371    HRESULT (STDMETHODCALLTYPE *GetClickablePoint)(
15372        IUIAutomationElement8 *This,
15373        POINT *clickable,
15374        WINBOOL *gotClickable);
15375
15376    /*** IUIAutomationElement2 methods ***/
15377    HRESULT (STDMETHODCALLTYPE *get_CurrentOptimizeForVisualContent)(
15378        IUIAutomationElement8 *This,
15379        WINBOOL *retVal);
15380
15381    HRESULT (STDMETHODCALLTYPE *get_CachedOptimizeForVisualContent)(
15382        IUIAutomationElement8 *This,
15383        WINBOOL *retVal);
15384
15385    HRESULT (STDMETHODCALLTYPE *get_CurrentLiveSetting)(
15386        IUIAutomationElement8 *This,
15387        enum LiveSetting *retVal);
15388
15389    HRESULT (STDMETHODCALLTYPE *get_CachedLiveSetting)(
15390        IUIAutomationElement8 *This,
15391        enum LiveSetting *retVal);
15392
15393    HRESULT (STDMETHODCALLTYPE *get_CurrentFlowsFrom)(
15394        IUIAutomationElement8 *This,
15395        IUIAutomationElementArray **retVal);
15396
15397    HRESULT (STDMETHODCALLTYPE *get_CachedFlowsFrom)(
15398        IUIAutomationElement8 *This,
15399        IUIAutomationElementArray **retVal);
15400
15401    /*** IUIAutomationElement3 methods ***/
15402    HRESULT (STDMETHODCALLTYPE *ShowContextMenu)(
15403        IUIAutomationElement8 *This);
15404
15405    HRESULT (STDMETHODCALLTYPE *get_CurrentIsPeripheral)(
15406        IUIAutomationElement8 *This,
15407        WINBOOL *retVal);
15408
15409    HRESULT (STDMETHODCALLTYPE *get_CachedIsPeripheral)(
15410        IUIAutomationElement8 *This,
15411        WINBOOL *retVal);
15412
15413    /*** IUIAutomationElement4 methods ***/
15414    HRESULT (STDMETHODCALLTYPE *get_CurrentPositionInSet)(
15415        IUIAutomationElement8 *This,
15416        int *retVal);
15417
15418    HRESULT (STDMETHODCALLTYPE *get_CurrentSizeOfSet)(
15419        IUIAutomationElement8 *This,
15420        int *retVal);
15421
15422    HRESULT (STDMETHODCALLTYPE *get_CurrentLevel)(
15423        IUIAutomationElement8 *This,
15424        int *retVal);
15425
15426    HRESULT (STDMETHODCALLTYPE *get_CurrentAnnotationTypes)(
15427        IUIAutomationElement8 *This,
15428        SAFEARRAY **retVal);
15429
15430    HRESULT (STDMETHODCALLTYPE *get_CurrentAnnotationObjects)(
15431        IUIAutomationElement8 *This,
15432        IUIAutomationElementArray **retVal);
15433
15434    HRESULT (STDMETHODCALLTYPE *get_CachedPositionInSet)(
15435        IUIAutomationElement8 *This,
15436        int *retVal);
15437
15438    HRESULT (STDMETHODCALLTYPE *get_CachedSizeOfSet)(
15439        IUIAutomationElement8 *This,
15440        int *retVal);
15441
15442    HRESULT (STDMETHODCALLTYPE *get_CachedLevel)(
15443        IUIAutomationElement8 *This,
15444        int *retVal);
15445
15446    HRESULT (STDMETHODCALLTYPE *get_CachedAnnotationTypes)(
15447        IUIAutomationElement8 *This,
15448        SAFEARRAY **retVal);
15449
15450    HRESULT (STDMETHODCALLTYPE *get_CachedAnnotationObjects)(
15451        IUIAutomationElement8 *This,
15452        IUIAutomationElementArray **retVal);
15453
15454    /*** IUIAutomationElement5 methods ***/
15455    HRESULT (STDMETHODCALLTYPE *get_CurrentLandmarkType)(
15456        IUIAutomationElement8 *This,
15457        LANDMARKTYPEID *retVal);
15458
15459    HRESULT (STDMETHODCALLTYPE *get_CurrentLocalizedLandmarkType)(
15460        IUIAutomationElement8 *This,
15461        BSTR *retVal);
15462
15463    HRESULT (STDMETHODCALLTYPE *get_CachedLandmarkType)(
15464        IUIAutomationElement8 *This,
15465        LANDMARKTYPEID *retVal);
15466
15467    HRESULT (STDMETHODCALLTYPE *get_CachedLocalizedLandmarkType)(
15468        IUIAutomationElement8 *This,
15469        BSTR *retVal);
15470
15471    /*** IUIAutomationElement6 methods ***/
15472    HRESULT (STDMETHODCALLTYPE *get_CurrentFullDescription)(
15473        IUIAutomationElement8 *This,
15474        BSTR *retVal);
15475
15476    HRESULT (STDMETHODCALLTYPE *get_CachedFullDescription)(
15477        IUIAutomationElement8 *This,
15478        BSTR *retVal);
15479
15480    /*** IUIAutomationElement7 methods ***/
15481    HRESULT (STDMETHODCALLTYPE *FindFirstWithOptions)(
15482        IUIAutomationElement8 *This,
15483        enum TreeScope scope,
15484        IUIAutomationCondition *condition,
15485        enum TreeTraversalOptions traversalOptions,
15486        IUIAutomationElement *root,
15487        IUIAutomationElement **found);
15488
15489    HRESULT (STDMETHODCALLTYPE *FindAllWithOptions)(
15490        IUIAutomationElement8 *This,
15491        enum TreeScope scope,
15492        IUIAutomationCondition *condition,
15493        enum TreeTraversalOptions traversalOptions,
15494        IUIAutomationElement *root,
15495        IUIAutomationElementArray **found);
15496
15497    HRESULT (STDMETHODCALLTYPE *FindFirstWithOptionsBuildCache)(
15498        IUIAutomationElement8 *This,
15499        enum TreeScope scope,
15500        IUIAutomationCondition *condition,
15501        IUIAutomationCacheRequest *cacheRequest,
15502        enum TreeTraversalOptions traversalOptions,
15503        IUIAutomationElement *root,
15504        IUIAutomationElement **found);
15505
15506    HRESULT (STDMETHODCALLTYPE *FindAllWithOptionsBuildCache)(
15507        IUIAutomationElement8 *This,
15508        enum TreeScope scope,
15509        IUIAutomationCondition *condition,
15510        IUIAutomationCacheRequest *cacheRequest,
15511        enum TreeTraversalOptions traversalOptions,
15512        IUIAutomationElement *root,
15513        IUIAutomationElementArray **found);
15514
15515    HRESULT (STDMETHODCALLTYPE *GetCurrentMetadataValue)(
15516        IUIAutomationElement8 *This,
15517        int targetId,
15518        METADATAID metadataId,
15519        VARIANT *returnVal);
15520
15521    /*** IUIAutomationElement8 methods ***/
15522    HRESULT (STDMETHODCALLTYPE *get_CurrentHeadingLevel)(
15523        IUIAutomationElement8 *This,
15524        HEADINGLEVELID *retVal);
15525
15526    HRESULT (STDMETHODCALLTYPE *get_CachedHeadingLevel)(
15527        IUIAutomationElement8 *This,
15528        HEADINGLEVELID *retVal);
15529
15530    END_INTERFACE
15531} IUIAutomationElement8Vtbl;
15532
15533interface IUIAutomationElement8 {
15534    CONST_VTBL IUIAutomationElement8Vtbl* lpVtbl;
15535};
15536
15537#ifdef COBJMACROS
15538#ifndef WIDL_C_INLINE_WRAPPERS
15539/*** IUnknown methods ***/
15540#define IUIAutomationElement8_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
15541#define IUIAutomationElement8_AddRef(This) (This)->lpVtbl->AddRef(This)
15542#define IUIAutomationElement8_Release(This) (This)->lpVtbl->Release(This)
15543/*** IUIAutomationElement methods ***/
15544#define IUIAutomationElement8_SetFocus(This) (This)->lpVtbl->SetFocus(This)
15545#define IUIAutomationElement8_GetRuntimeId(This,runtimeId) (This)->lpVtbl->GetRuntimeId(This,runtimeId)
15546#define IUIAutomationElement8_FindFirst(This,scope,condition,found) (This)->lpVtbl->FindFirst(This,scope,condition,found)
15547#define IUIAutomationElement8_FindAll(This,scope,condition,found) (This)->lpVtbl->FindAll(This,scope,condition,found)
15548#define IUIAutomationElement8_FindFirstBuildCache(This,scope,condition,cacheRequest,found) (This)->lpVtbl->FindFirstBuildCache(This,scope,condition,cacheRequest,found)
15549#define IUIAutomationElement8_FindAllBuildCache(This,scope,condition,cacheRequest,found) (This)->lpVtbl->FindAllBuildCache(This,scope,condition,cacheRequest,found)
15550#define IUIAutomationElement8_BuildUpdatedCache(This,cacheRequest,updatedElement) (This)->lpVtbl->BuildUpdatedCache(This,cacheRequest,updatedElement)
15551#define IUIAutomationElement8_GetCurrentPropertyValue(This,propertyId,retVal) (This)->lpVtbl->GetCurrentPropertyValue(This,propertyId,retVal)
15552#define IUIAutomationElement8_GetCurrentPropertyValueEx(This,propertyId,ignoreDefaultValue,retVal) (This)->lpVtbl->GetCurrentPropertyValueEx(This,propertyId,ignoreDefaultValue,retVal)
15553#define IUIAutomationElement8_GetCachedPropertyValue(This,propertyId,retVal) (This)->lpVtbl->GetCachedPropertyValue(This,propertyId,retVal)
15554#define IUIAutomationElement8_GetCachedPropertyValueEx(This,propertyId,ignoreDefaultValue,retVal) (This)->lpVtbl->GetCachedPropertyValueEx(This,propertyId,ignoreDefaultValue,retVal)
15555#define IUIAutomationElement8_GetCurrentPatternAs(This,patternId,riid,patternObject) (This)->lpVtbl->GetCurrentPatternAs(This,patternId,riid,patternObject)
15556#define IUIAutomationElement8_GetCachedPatternAs(This,patternId,riid,patternObject) (This)->lpVtbl->GetCachedPatternAs(This,patternId,riid,patternObject)
15557#define IUIAutomationElement8_GetCurrentPattern(This,patternId,patternObject) (This)->lpVtbl->GetCurrentPattern(This,patternId,patternObject)
15558#define IUIAutomationElement8_GetCachedPattern(This,patternId,patternObject) (This)->lpVtbl->GetCachedPattern(This,patternId,patternObject)
15559#define IUIAutomationElement8_GetCachedParent(This,parent) (This)->lpVtbl->GetCachedParent(This,parent)
15560#define IUIAutomationElement8_GetCachedChildren(This,children) (This)->lpVtbl->GetCachedChildren(This,children)
15561#define IUIAutomationElement8_get_CurrentProcessId(This,retVal) (This)->lpVtbl->get_CurrentProcessId(This,retVal)
15562#define IUIAutomationElement8_get_CurrentControlType(This,retVal) (This)->lpVtbl->get_CurrentControlType(This,retVal)
15563#define IUIAutomationElement8_get_CurrentLocalizedControlType(This,retVal) (This)->lpVtbl->get_CurrentLocalizedControlType(This,retVal)
15564#define IUIAutomationElement8_get_CurrentName(This,retVal) (This)->lpVtbl->get_CurrentName(This,retVal)
15565#define IUIAutomationElement8_get_CurrentAcceleratorKey(This,retVal) (This)->lpVtbl->get_CurrentAcceleratorKey(This,retVal)
15566#define IUIAutomationElement8_get_CurrentAccessKey(This,retVal) (This)->lpVtbl->get_CurrentAccessKey(This,retVal)
15567#define IUIAutomationElement8_get_CurrentHasKeyboardFocus(This,retVal) (This)->lpVtbl->get_CurrentHasKeyboardFocus(This,retVal)
15568#define IUIAutomationElement8_get_CurrentIsKeyboardFocusable(This,retVal) (This)->lpVtbl->get_CurrentIsKeyboardFocusable(This,retVal)
15569#define IUIAutomationElement8_get_CurrentIsEnabled(This,retVal) (This)->lpVtbl->get_CurrentIsEnabled(This,retVal)
15570#define IUIAutomationElement8_get_CurrentAutomationId(This,retVal) (This)->lpVtbl->get_CurrentAutomationId(This,retVal)
15571#define IUIAutomationElement8_get_CurrentClassName(This,retVal) (This)->lpVtbl->get_CurrentClassName(This,retVal)
15572#define IUIAutomationElement8_get_CurrentHelpText(This,retVal) (This)->lpVtbl->get_CurrentHelpText(This,retVal)
15573#define IUIAutomationElement8_get_CurrentCulture(This,retVal) (This)->lpVtbl->get_CurrentCulture(This,retVal)
15574#define IUIAutomationElement8_get_CurrentIsControlElement(This,retVal) (This)->lpVtbl->get_CurrentIsControlElement(This,retVal)
15575#define IUIAutomationElement8_get_CurrentIsContentElement(This,retVal) (This)->lpVtbl->get_CurrentIsContentElement(This,retVal)
15576#define IUIAutomationElement8_get_CurrentIsPassword(This,retVal) (This)->lpVtbl->get_CurrentIsPassword(This,retVal)
15577#define IUIAutomationElement8_get_CurrentNativeWindowHandle(This,retVal) (This)->lpVtbl->get_CurrentNativeWindowHandle(This,retVal)
15578#define IUIAutomationElement8_get_CurrentItemType(This,retVal) (This)->lpVtbl->get_CurrentItemType(This,retVal)
15579#define IUIAutomationElement8_get_CurrentIsOffscreen(This,retVal) (This)->lpVtbl->get_CurrentIsOffscreen(This,retVal)
15580#define IUIAutomationElement8_get_CurrentOrientation(This,retVal) (This)->lpVtbl->get_CurrentOrientation(This,retVal)
15581#define IUIAutomationElement8_get_CurrentFrameworkId(This,retVal) (This)->lpVtbl->get_CurrentFrameworkId(This,retVal)
15582#define IUIAutomationElement8_get_CurrentIsRequiredForForm(This,retVal) (This)->lpVtbl->get_CurrentIsRequiredForForm(This,retVal)
15583#define IUIAutomationElement8_get_CurrentItemStatus(This,retVal) (This)->lpVtbl->get_CurrentItemStatus(This,retVal)
15584#define IUIAutomationElement8_get_CurrentBoundingRectangle(This,retVal) (This)->lpVtbl->get_CurrentBoundingRectangle(This,retVal)
15585#define IUIAutomationElement8_get_CurrentLabeledBy(This,retVal) (This)->lpVtbl->get_CurrentLabeledBy(This,retVal)
15586#define IUIAutomationElement8_get_CurrentAriaRole(This,retVal) (This)->lpVtbl->get_CurrentAriaRole(This,retVal)
15587#define IUIAutomationElement8_get_CurrentAriaProperties(This,retVal) (This)->lpVtbl->get_CurrentAriaProperties(This,retVal)
15588#define IUIAutomationElement8_get_CurrentIsDataValidForForm(This,retVal) (This)->lpVtbl->get_CurrentIsDataValidForForm(This,retVal)
15589#define IUIAutomationElement8_get_CurrentControllerFor(This,retVal) (This)->lpVtbl->get_CurrentControllerFor(This,retVal)
15590#define IUIAutomationElement8_get_CurrentDescribedBy(This,retVal) (This)->lpVtbl->get_CurrentDescribedBy(This,retVal)
15591#define IUIAutomationElement8_get_CurrentFlowsTo(This,retVal) (This)->lpVtbl->get_CurrentFlowsTo(This,retVal)
15592#define IUIAutomationElement8_get_CurrentProviderDescription(This,retVal) (This)->lpVtbl->get_CurrentProviderDescription(This,retVal)
15593#define IUIAutomationElement8_get_CachedProcessId(This,retVal) (This)->lpVtbl->get_CachedProcessId(This,retVal)
15594#define IUIAutomationElement8_get_CachedControlType(This,retVal) (This)->lpVtbl->get_CachedControlType(This,retVal)
15595#define IUIAutomationElement8_get_CachedLocalizedControlType(This,retVal) (This)->lpVtbl->get_CachedLocalizedControlType(This,retVal)
15596#define IUIAutomationElement8_get_CachedName(This,retVal) (This)->lpVtbl->get_CachedName(This,retVal)
15597#define IUIAutomationElement8_get_CachedAcceleratorKey(This,retVal) (This)->lpVtbl->get_CachedAcceleratorKey(This,retVal)
15598#define IUIAutomationElement8_get_CachedAccessKey(This,retVal) (This)->lpVtbl->get_CachedAccessKey(This,retVal)
15599#define IUIAutomationElement8_get_CachedHasKeyboardFocus(This,retVal) (This)->lpVtbl->get_CachedHasKeyboardFocus(This,retVal)
15600#define IUIAutomationElement8_get_CachedIsKeyboardFocusable(This,retVal) (This)->lpVtbl->get_CachedIsKeyboardFocusable(This,retVal)
15601#define IUIAutomationElement8_get_CachedIsEnabled(This,retVal) (This)->lpVtbl->get_CachedIsEnabled(This,retVal)
15602#define IUIAutomationElement8_get_CachedAutomationId(This,retVal) (This)->lpVtbl->get_CachedAutomationId(This,retVal)
15603#define IUIAutomationElement8_get_CachedClassName(This,retVal) (This)->lpVtbl->get_CachedClassName(This,retVal)
15604#define IUIAutomationElement8_get_CachedHelpText(This,retVal) (This)->lpVtbl->get_CachedHelpText(This,retVal)
15605#define IUIAutomationElement8_get_CachedCulture(This,retVal) (This)->lpVtbl->get_CachedCulture(This,retVal)
15606#define IUIAutomationElement8_get_CachedIsControlElement(This,retVal) (This)->lpVtbl->get_CachedIsControlElement(This,retVal)
15607#define IUIAutomationElement8_get_CachedIsContentElement(This,retVal) (This)->lpVtbl->get_CachedIsContentElement(This,retVal)
15608#define IUIAutomationElement8_get_CachedIsPassword(This,retVal) (This)->lpVtbl->get_CachedIsPassword(This,retVal)
15609#define IUIAutomationElement8_get_CachedNativeWindowHandle(This,retVal) (This)->lpVtbl->get_CachedNativeWindowHandle(This,retVal)
15610#define IUIAutomationElement8_get_CachedItemType(This,retVal) (This)->lpVtbl->get_CachedItemType(This,retVal)
15611#define IUIAutomationElement8_get_CachedIsOffscreen(This,retVal) (This)->lpVtbl->get_CachedIsOffscreen(This,retVal)
15612#define IUIAutomationElement8_get_CachedOrientation(This,retVal) (This)->lpVtbl->get_CachedOrientation(This,retVal)
15613#define IUIAutomationElement8_get_CachedFrameworkId(This,retVal) (This)->lpVtbl->get_CachedFrameworkId(This,retVal)
15614#define IUIAutomationElement8_get_CachedIsRequiredForForm(This,retVal) (This)->lpVtbl->get_CachedIsRequiredForForm(This,retVal)
15615#define IUIAutomationElement8_get_CachedItemStatus(This,retVal) (This)->lpVtbl->get_CachedItemStatus(This,retVal)
15616#define IUIAutomationElement8_get_CachedBoundingRectangle(This,retVal) (This)->lpVtbl->get_CachedBoundingRectangle(This,retVal)
15617#define IUIAutomationElement8_get_CachedLabeledBy(This,retVal) (This)->lpVtbl->get_CachedLabeledBy(This,retVal)
15618#define IUIAutomationElement8_get_CachedAriaRole(This,retVal) (This)->lpVtbl->get_CachedAriaRole(This,retVal)
15619#define IUIAutomationElement8_get_CachedAriaProperties(This,retVal) (This)->lpVtbl->get_CachedAriaProperties(This,retVal)
15620#define IUIAutomationElement8_get_CachedIsDataValidForForm(This,retVal) (This)->lpVtbl->get_CachedIsDataValidForForm(This,retVal)
15621#define IUIAutomationElement8_get_CachedControllerFor(This,retVal) (This)->lpVtbl->get_CachedControllerFor(This,retVal)
15622#define IUIAutomationElement8_get_CachedDescribedBy(This,retVal) (This)->lpVtbl->get_CachedDescribedBy(This,retVal)
15623#define IUIAutomationElement8_get_CachedFlowsTo(This,retVal) (This)->lpVtbl->get_CachedFlowsTo(This,retVal)
15624#define IUIAutomationElement8_get_CachedProviderDescription(This,retVal) (This)->lpVtbl->get_CachedProviderDescription(This,retVal)
15625#define IUIAutomationElement8_GetClickablePoint(This,clickable,gotClickable) (This)->lpVtbl->GetClickablePoint(This,clickable,gotClickable)
15626/*** IUIAutomationElement2 methods ***/
15627#define IUIAutomationElement8_get_CurrentOptimizeForVisualContent(This,retVal) (This)->lpVtbl->get_CurrentOptimizeForVisualContent(This,retVal)
15628#define IUIAutomationElement8_get_CachedOptimizeForVisualContent(This,retVal) (This)->lpVtbl->get_CachedOptimizeForVisualContent(This,retVal)
15629#define IUIAutomationElement8_get_CurrentLiveSetting(This,retVal) (This)->lpVtbl->get_CurrentLiveSetting(This,retVal)
15630#define IUIAutomationElement8_get_CachedLiveSetting(This,retVal) (This)->lpVtbl->get_CachedLiveSetting(This,retVal)
15631#define IUIAutomationElement8_get_CurrentFlowsFrom(This,retVal) (This)->lpVtbl->get_CurrentFlowsFrom(This,retVal)
15632#define IUIAutomationElement8_get_CachedFlowsFrom(This,retVal) (This)->lpVtbl->get_CachedFlowsFrom(This,retVal)
15633/*** IUIAutomationElement3 methods ***/
15634#define IUIAutomationElement8_ShowContextMenu(This) (This)->lpVtbl->ShowContextMenu(This)
15635#define IUIAutomationElement8_get_CurrentIsPeripheral(This,retVal) (This)->lpVtbl->get_CurrentIsPeripheral(This,retVal)
15636#define IUIAutomationElement8_get_CachedIsPeripheral(This,retVal) (This)->lpVtbl->get_CachedIsPeripheral(This,retVal)
15637/*** IUIAutomationElement4 methods ***/
15638#define IUIAutomationElement8_get_CurrentPositionInSet(This,retVal) (This)->lpVtbl->get_CurrentPositionInSet(This,retVal)
15639#define IUIAutomationElement8_get_CurrentSizeOfSet(This,retVal) (This)->lpVtbl->get_CurrentSizeOfSet(This,retVal)
15640#define IUIAutomationElement8_get_CurrentLevel(This,retVal) (This)->lpVtbl->get_CurrentLevel(This,retVal)
15641#define IUIAutomationElement8_get_CurrentAnnotationTypes(This,retVal) (This)->lpVtbl->get_CurrentAnnotationTypes(This,retVal)
15642#define IUIAutomationElement8_get_CurrentAnnotationObjects(This,retVal) (This)->lpVtbl->get_CurrentAnnotationObjects(This,retVal)
15643#define IUIAutomationElement8_get_CachedPositionInSet(This,retVal) (This)->lpVtbl->get_CachedPositionInSet(This,retVal)
15644#define IUIAutomationElement8_get_CachedSizeOfSet(This,retVal) (This)->lpVtbl->get_CachedSizeOfSet(This,retVal)
15645#define IUIAutomationElement8_get_CachedLevel(This,retVal) (This)->lpVtbl->get_CachedLevel(This,retVal)
15646#define IUIAutomationElement8_get_CachedAnnotationTypes(This,retVal) (This)->lpVtbl->get_CachedAnnotationTypes(This,retVal)
15647#define IUIAutomationElement8_get_CachedAnnotationObjects(This,retVal) (This)->lpVtbl->get_CachedAnnotationObjects(This,retVal)
15648/*** IUIAutomationElement5 methods ***/
15649#define IUIAutomationElement8_get_CurrentLandmarkType(This,retVal) (This)->lpVtbl->get_CurrentLandmarkType(This,retVal)
15650#define IUIAutomationElement8_get_CurrentLocalizedLandmarkType(This,retVal) (This)->lpVtbl->get_CurrentLocalizedLandmarkType(This,retVal)
15651#define IUIAutomationElement8_get_CachedLandmarkType(This,retVal) (This)->lpVtbl->get_CachedLandmarkType(This,retVal)
15652#define IUIAutomationElement8_get_CachedLocalizedLandmarkType(This,retVal) (This)->lpVtbl->get_CachedLocalizedLandmarkType(This,retVal)
15653/*** IUIAutomationElement6 methods ***/
15654#define IUIAutomationElement8_get_CurrentFullDescription(This,retVal) (This)->lpVtbl->get_CurrentFullDescription(This,retVal)
15655#define IUIAutomationElement8_get_CachedFullDescription(This,retVal) (This)->lpVtbl->get_CachedFullDescription(This,retVal)
15656/*** IUIAutomationElement7 methods ***/
15657#define IUIAutomationElement8_FindFirstWithOptions(This,scope,condition,traversalOptions,root,found) (This)->lpVtbl->FindFirstWithOptions(This,scope,condition,traversalOptions,root,found)
15658#define IUIAutomationElement8_FindAllWithOptions(This,scope,condition,traversalOptions,root,found) (This)->lpVtbl->FindAllWithOptions(This,scope,condition,traversalOptions,root,found)
15659#define IUIAutomationElement8_FindFirstWithOptionsBuildCache(This,scope,condition,cacheRequest,traversalOptions,root,found) (This)->lpVtbl->FindFirstWithOptionsBuildCache(This,scope,condition,cacheRequest,traversalOptions,root,found)
15660#define IUIAutomationElement8_FindAllWithOptionsBuildCache(This,scope,condition,cacheRequest,traversalOptions,root,found) (This)->lpVtbl->FindAllWithOptionsBuildCache(This,scope,condition,cacheRequest,traversalOptions,root,found)
15661#define IUIAutomationElement8_GetCurrentMetadataValue(This,targetId,metadataId,returnVal) (This)->lpVtbl->GetCurrentMetadataValue(This,targetId,metadataId,returnVal)
15662/*** IUIAutomationElement8 methods ***/
15663#define IUIAutomationElement8_get_CurrentHeadingLevel(This,retVal) (This)->lpVtbl->get_CurrentHeadingLevel(This,retVal)
15664#define IUIAutomationElement8_get_CachedHeadingLevel(This,retVal) (This)->lpVtbl->get_CachedHeadingLevel(This,retVal)
15665#else
15666/*** IUnknown methods ***/
15667static inline HRESULT IUIAutomationElement8_QueryInterface(IUIAutomationElement8* This,REFIID riid,void **ppvObject) {
15668    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
15669}
15670static inline ULONG IUIAutomationElement8_AddRef(IUIAutomationElement8* This) {
15671    return This->lpVtbl->AddRef(This);
15672}
15673static inline ULONG IUIAutomationElement8_Release(IUIAutomationElement8* This) {
15674    return This->lpVtbl->Release(This);
15675}
15676/*** IUIAutomationElement methods ***/
15677static inline HRESULT IUIAutomationElement8_SetFocus(IUIAutomationElement8* This) {
15678    return This->lpVtbl->SetFocus(This);
15679}
15680static inline HRESULT IUIAutomationElement8_GetRuntimeId(IUIAutomationElement8* This,SAFEARRAY **runtimeId) {
15681    return This->lpVtbl->GetRuntimeId(This,runtimeId);
15682}
15683static inline HRESULT IUIAutomationElement8_FindFirst(IUIAutomationElement8* This,enum TreeScope scope,IUIAutomationCondition *condition,IUIAutomationElement **found) {
15684    return This->lpVtbl->FindFirst(This,scope,condition,found);
15685}
15686static inline HRESULT IUIAutomationElement8_FindAll(IUIAutomationElement8* This,enum TreeScope scope,IUIAutomationCondition *condition,IUIAutomationElementArray **found) {
15687    return This->lpVtbl->FindAll(This,scope,condition,found);
15688}
15689static inline HRESULT IUIAutomationElement8_FindFirstBuildCache(IUIAutomationElement8* This,enum TreeScope scope,IUIAutomationCondition *condition,IUIAutomationCacheRequest *cacheRequest,IUIAutomationElement **found) {
15690    return This->lpVtbl->FindFirstBuildCache(This,scope,condition,cacheRequest,found);
15691}
15692static inline HRESULT IUIAutomationElement8_FindAllBuildCache(IUIAutomationElement8* This,enum TreeScope scope,IUIAutomationCondition *condition,IUIAutomationCacheRequest *cacheRequest,IUIAutomationElementArray **found) {
15693    return This->lpVtbl->FindAllBuildCache(This,scope,condition,cacheRequest,found);
15694}
15695static inline HRESULT IUIAutomationElement8_BuildUpdatedCache(IUIAutomationElement8* This,IUIAutomationCacheRequest *cacheRequest,IUIAutomationElement **updatedElement) {
15696    return This->lpVtbl->BuildUpdatedCache(This,cacheRequest,updatedElement);
15697}
15698static inline HRESULT IUIAutomationElement8_GetCurrentPropertyValue(IUIAutomationElement8* This,PROPERTYID propertyId,VARIANT *retVal) {
15699    return This->lpVtbl->GetCurrentPropertyValue(This,propertyId,retVal);
15700}
15701static inline HRESULT IUIAutomationElement8_GetCurrentPropertyValueEx(IUIAutomationElement8* This,PROPERTYID propertyId,WINBOOL ignoreDefaultValue,VARIANT *retVal) {
15702    return This->lpVtbl->GetCurrentPropertyValueEx(This,propertyId,ignoreDefaultValue,retVal);
15703}
15704static inline HRESULT IUIAutomationElement8_GetCachedPropertyValue(IUIAutomationElement8* This,PROPERTYID propertyId,VARIANT *retVal) {
15705    return This->lpVtbl->GetCachedPropertyValue(This,propertyId,retVal);
15706}
15707static inline HRESULT IUIAutomationElement8_GetCachedPropertyValueEx(IUIAutomationElement8* This,PROPERTYID propertyId,WINBOOL ignoreDefaultValue,VARIANT *retVal) {
15708    return This->lpVtbl->GetCachedPropertyValueEx(This,propertyId,ignoreDefaultValue,retVal);
15709}
15710static inline HRESULT IUIAutomationElement8_GetCurrentPatternAs(IUIAutomationElement8* This,PATTERNID patternId,REFIID riid,void **patternObject) {
15711    return This->lpVtbl->GetCurrentPatternAs(This,patternId,riid,patternObject);
15712}
15713static inline HRESULT IUIAutomationElement8_GetCachedPatternAs(IUIAutomationElement8* This,PATTERNID patternId,REFIID riid,void **patternObject) {
15714    return This->lpVtbl->GetCachedPatternAs(This,patternId,riid,patternObject);
15715}
15716static inline HRESULT IUIAutomationElement8_GetCurrentPattern(IUIAutomationElement8* This,PATTERNID patternId,IUnknown **patternObject) {
15717    return This->lpVtbl->GetCurrentPattern(This,patternId,patternObject);
15718}
15719static inline HRESULT IUIAutomationElement8_GetCachedPattern(IUIAutomationElement8* This,PATTERNID patternId,IUnknown **patternObject) {
15720    return This->lpVtbl->GetCachedPattern(This,patternId,patternObject);
15721}
15722static inline HRESULT IUIAutomationElement8_GetCachedParent(IUIAutomationElement8* This,IUIAutomationElement **parent) {
15723    return This->lpVtbl->GetCachedParent(This,parent);
15724}
15725static inline HRESULT IUIAutomationElement8_GetCachedChildren(IUIAutomationElement8* This,IUIAutomationElementArray **children) {
15726    return This->lpVtbl->GetCachedChildren(This,children);
15727}
15728static inline HRESULT IUIAutomationElement8_get_CurrentProcessId(IUIAutomationElement8* This,int *retVal) {
15729    return This->lpVtbl->get_CurrentProcessId(This,retVal);
15730}
15731static inline HRESULT IUIAutomationElement8_get_CurrentControlType(IUIAutomationElement8* This,CONTROLTYPEID *retVal) {
15732    return This->lpVtbl->get_CurrentControlType(This,retVal);
15733}
15734static inline HRESULT IUIAutomationElement8_get_CurrentLocalizedControlType(IUIAutomationElement8* This,BSTR *retVal) {
15735    return This->lpVtbl->get_CurrentLocalizedControlType(This,retVal);
15736}
15737static inline HRESULT IUIAutomationElement8_get_CurrentName(IUIAutomationElement8* This,BSTR *retVal) {
15738    return This->lpVtbl->get_CurrentName(This,retVal);
15739}
15740static inline HRESULT IUIAutomationElement8_get_CurrentAcceleratorKey(IUIAutomationElement8* This,BSTR *retVal) {
15741    return This->lpVtbl->get_CurrentAcceleratorKey(This,retVal);
15742}
15743static inline HRESULT IUIAutomationElement8_get_CurrentAccessKey(IUIAutomationElement8* This,BSTR *retVal) {
15744    return This->lpVtbl->get_CurrentAccessKey(This,retVal);
15745}
15746static inline HRESULT IUIAutomationElement8_get_CurrentHasKeyboardFocus(IUIAutomationElement8* This,WINBOOL *retVal) {
15747    return This->lpVtbl->get_CurrentHasKeyboardFocus(This,retVal);
15748}
15749static inline HRESULT IUIAutomationElement8_get_CurrentIsKeyboardFocusable(IUIAutomationElement8* This,WINBOOL *retVal) {
15750    return This->lpVtbl->get_CurrentIsKeyboardFocusable(This,retVal);
15751}
15752static inline HRESULT IUIAutomationElement8_get_CurrentIsEnabled(IUIAutomationElement8* This,WINBOOL *retVal) {
15753    return This->lpVtbl->get_CurrentIsEnabled(This,retVal);
15754}
15755static inline HRESULT IUIAutomationElement8_get_CurrentAutomationId(IUIAutomationElement8* This,BSTR *retVal) {
15756    return This->lpVtbl->get_CurrentAutomationId(This,retVal);
15757}
15758static inline HRESULT IUIAutomationElement8_get_CurrentClassName(IUIAutomationElement8* This,BSTR *retVal) {
15759    return This->lpVtbl->get_CurrentClassName(This,retVal);
15760}
15761static inline HRESULT IUIAutomationElement8_get_CurrentHelpText(IUIAutomationElement8* This,BSTR *retVal) {
15762    return This->lpVtbl->get_CurrentHelpText(This,retVal);
15763}
15764static inline HRESULT IUIAutomationElement8_get_CurrentCulture(IUIAutomationElement8* This,int *retVal) {
15765    return This->lpVtbl->get_CurrentCulture(This,retVal);
15766}
15767static inline HRESULT IUIAutomationElement8_get_CurrentIsControlElement(IUIAutomationElement8* This,WINBOOL *retVal) {
15768    return This->lpVtbl->get_CurrentIsControlElement(This,retVal);
15769}
15770static inline HRESULT IUIAutomationElement8_get_CurrentIsContentElement(IUIAutomationElement8* This,WINBOOL *retVal) {
15771    return This->lpVtbl->get_CurrentIsContentElement(This,retVal);
15772}
15773static inline HRESULT IUIAutomationElement8_get_CurrentIsPassword(IUIAutomationElement8* This,WINBOOL *retVal) {
15774    return This->lpVtbl->get_CurrentIsPassword(This,retVal);
15775}
15776static inline HRESULT IUIAutomationElement8_get_CurrentNativeWindowHandle(IUIAutomationElement8* This,UIA_HWND *retVal) {
15777    return This->lpVtbl->get_CurrentNativeWindowHandle(This,retVal);
15778}
15779static inline HRESULT IUIAutomationElement8_get_CurrentItemType(IUIAutomationElement8* This,BSTR *retVal) {
15780    return This->lpVtbl->get_CurrentItemType(This,retVal);
15781}
15782static inline HRESULT IUIAutomationElement8_get_CurrentIsOffscreen(IUIAutomationElement8* This,WINBOOL *retVal) {
15783    return This->lpVtbl->get_CurrentIsOffscreen(This,retVal);
15784}
15785static inline HRESULT IUIAutomationElement8_get_CurrentOrientation(IUIAutomationElement8* This,enum OrientationType *retVal) {
15786    return This->lpVtbl->get_CurrentOrientation(This,retVal);
15787}
15788static inline HRESULT IUIAutomationElement8_get_CurrentFrameworkId(IUIAutomationElement8* This,BSTR *retVal) {
15789    return This->lpVtbl->get_CurrentFrameworkId(This,retVal);
15790}
15791static inline HRESULT IUIAutomationElement8_get_CurrentIsRequiredForForm(IUIAutomationElement8* This,WINBOOL *retVal) {
15792    return This->lpVtbl->get_CurrentIsRequiredForForm(This,retVal);
15793}
15794static inline HRESULT IUIAutomationElement8_get_CurrentItemStatus(IUIAutomationElement8* This,BSTR *retVal) {
15795    return This->lpVtbl->get_CurrentItemStatus(This,retVal);
15796}
15797static inline HRESULT IUIAutomationElement8_get_CurrentBoundingRectangle(IUIAutomationElement8* This,RECT *retVal) {
15798    return This->lpVtbl->get_CurrentBoundingRectangle(This,retVal);
15799}
15800static inline HRESULT IUIAutomationElement8_get_CurrentLabeledBy(IUIAutomationElement8* This,IUIAutomationElement **retVal) {
15801    return This->lpVtbl->get_CurrentLabeledBy(This,retVal);
15802}
15803static inline HRESULT IUIAutomationElement8_get_CurrentAriaRole(IUIAutomationElement8* This,BSTR *retVal) {
15804    return This->lpVtbl->get_CurrentAriaRole(This,retVal);
15805}
15806static inline HRESULT IUIAutomationElement8_get_CurrentAriaProperties(IUIAutomationElement8* This,BSTR *retVal) {
15807    return This->lpVtbl->get_CurrentAriaProperties(This,retVal);
15808}
15809static inline HRESULT IUIAutomationElement8_get_CurrentIsDataValidForForm(IUIAutomationElement8* This,WINBOOL *retVal) {
15810    return This->lpVtbl->get_CurrentIsDataValidForForm(This,retVal);
15811}
15812static inline HRESULT IUIAutomationElement8_get_CurrentControllerFor(IUIAutomationElement8* This,IUIAutomationElementArray **retVal) {
15813    return This->lpVtbl->get_CurrentControllerFor(This,retVal);
15814}
15815static inline HRESULT IUIAutomationElement8_get_CurrentDescribedBy(IUIAutomationElement8* This,IUIAutomationElementArray **retVal) {
15816    return This->lpVtbl->get_CurrentDescribedBy(This,retVal);
15817}
15818static inline HRESULT IUIAutomationElement8_get_CurrentFlowsTo(IUIAutomationElement8* This,IUIAutomationElementArray **retVal) {
15819    return This->lpVtbl->get_CurrentFlowsTo(This,retVal);
15820}
15821static inline HRESULT IUIAutomationElement8_get_CurrentProviderDescription(IUIAutomationElement8* This,BSTR *retVal) {
15822    return This->lpVtbl->get_CurrentProviderDescription(This,retVal);
15823}
15824static inline HRESULT IUIAutomationElement8_get_CachedProcessId(IUIAutomationElement8* This,int *retVal) {
15825    return This->lpVtbl->get_CachedProcessId(This,retVal);
15826}
15827static inline HRESULT IUIAutomationElement8_get_CachedControlType(IUIAutomationElement8* This,CONTROLTYPEID *retVal) {
15828    return This->lpVtbl->get_CachedControlType(This,retVal);
15829}
15830static inline HRESULT IUIAutomationElement8_get_CachedLocalizedControlType(IUIAutomationElement8* This,BSTR *retVal) {
15831    return This->lpVtbl->get_CachedLocalizedControlType(This,retVal);
15832}
15833static inline HRESULT IUIAutomationElement8_get_CachedName(IUIAutomationElement8* This,BSTR *retVal) {
15834    return This->lpVtbl->get_CachedName(This,retVal);
15835}
15836static inline HRESULT IUIAutomationElement8_get_CachedAcceleratorKey(IUIAutomationElement8* This,BSTR *retVal) {
15837    return This->lpVtbl->get_CachedAcceleratorKey(This,retVal);
15838}
15839static inline HRESULT IUIAutomationElement8_get_CachedAccessKey(IUIAutomationElement8* This,BSTR *retVal) {
15840    return This->lpVtbl->get_CachedAccessKey(This,retVal);
15841}
15842static inline HRESULT IUIAutomationElement8_get_CachedHasKeyboardFocus(IUIAutomationElement8* This,WINBOOL *retVal) {
15843    return This->lpVtbl->get_CachedHasKeyboardFocus(This,retVal);
15844}
15845static inline HRESULT IUIAutomationElement8_get_CachedIsKeyboardFocusable(IUIAutomationElement8* This,WINBOOL *retVal) {
15846    return This->lpVtbl->get_CachedIsKeyboardFocusable(This,retVal);
15847}
15848static inline HRESULT IUIAutomationElement8_get_CachedIsEnabled(IUIAutomationElement8* This,WINBOOL *retVal) {
15849    return This->lpVtbl->get_CachedIsEnabled(This,retVal);
15850}
15851static inline HRESULT IUIAutomationElement8_get_CachedAutomationId(IUIAutomationElement8* This,BSTR *retVal) {
15852    return This->lpVtbl->get_CachedAutomationId(This,retVal);
15853}
15854static inline HRESULT IUIAutomationElement8_get_CachedClassName(IUIAutomationElement8* This,BSTR *retVal) {
15855    return This->lpVtbl->get_CachedClassName(This,retVal);
15856}
15857static inline HRESULT IUIAutomationElement8_get_CachedHelpText(IUIAutomationElement8* This,BSTR *retVal) {
15858    return This->lpVtbl->get_CachedHelpText(This,retVal);
15859}
15860static inline HRESULT IUIAutomationElement8_get_CachedCulture(IUIAutomationElement8* This,int *retVal) {
15861    return This->lpVtbl->get_CachedCulture(This,retVal);
15862}
15863static inline HRESULT IUIAutomationElement8_get_CachedIsControlElement(IUIAutomationElement8* This,WINBOOL *retVal) {
15864    return This->lpVtbl->get_CachedIsControlElement(This,retVal);
15865}
15866static inline HRESULT IUIAutomationElement8_get_CachedIsContentElement(IUIAutomationElement8* This,WINBOOL *retVal) {
15867    return This->lpVtbl->get_CachedIsContentElement(This,retVal);
15868}
15869static inline HRESULT IUIAutomationElement8_get_CachedIsPassword(IUIAutomationElement8* This,WINBOOL *retVal) {
15870    return This->lpVtbl->get_CachedIsPassword(This,retVal);
15871}
15872static inline HRESULT IUIAutomationElement8_get_CachedNativeWindowHandle(IUIAutomationElement8* This,UIA_HWND *retVal) {
15873    return This->lpVtbl->get_CachedNativeWindowHandle(This,retVal);
15874}
15875static inline HRESULT IUIAutomationElement8_get_CachedItemType(IUIAutomationElement8* This,BSTR *retVal) {
15876    return This->lpVtbl->get_CachedItemType(This,retVal);
15877}
15878static inline HRESULT IUIAutomationElement8_get_CachedIsOffscreen(IUIAutomationElement8* This,WINBOOL *retVal) {
15879    return This->lpVtbl->get_CachedIsOffscreen(This,retVal);
15880}
15881static inline HRESULT IUIAutomationElement8_get_CachedOrientation(IUIAutomationElement8* This,enum OrientationType *retVal) {
15882    return This->lpVtbl->get_CachedOrientation(This,retVal);
15883}
15884static inline HRESULT IUIAutomationElement8_get_CachedFrameworkId(IUIAutomationElement8* This,BSTR *retVal) {
15885    return This->lpVtbl->get_CachedFrameworkId(This,retVal);
15886}
15887static inline HRESULT IUIAutomationElement8_get_CachedIsRequiredForForm(IUIAutomationElement8* This,WINBOOL *retVal) {
15888    return This->lpVtbl->get_CachedIsRequiredForForm(This,retVal);
15889}
15890static inline HRESULT IUIAutomationElement8_get_CachedItemStatus(IUIAutomationElement8* This,BSTR *retVal) {
15891    return This->lpVtbl->get_CachedItemStatus(This,retVal);
15892}
15893static inline HRESULT IUIAutomationElement8_get_CachedBoundingRectangle(IUIAutomationElement8* This,RECT *retVal) {
15894    return This->lpVtbl->get_CachedBoundingRectangle(This,retVal);
15895}
15896static inline HRESULT IUIAutomationElement8_get_CachedLabeledBy(IUIAutomationElement8* This,IUIAutomationElement **retVal) {
15897    return This->lpVtbl->get_CachedLabeledBy(This,retVal);
15898}
15899static inline HRESULT IUIAutomationElement8_get_CachedAriaRole(IUIAutomationElement8* This,BSTR *retVal) {
15900    return This->lpVtbl->get_CachedAriaRole(This,retVal);
15901}
15902static inline HRESULT IUIAutomationElement8_get_CachedAriaProperties(IUIAutomationElement8* This,BSTR *retVal) {
15903    return This->lpVtbl->get_CachedAriaProperties(This,retVal);
15904}
15905static inline HRESULT IUIAutomationElement8_get_CachedIsDataValidForForm(IUIAutomationElement8* This,WINBOOL *retVal) {
15906    return This->lpVtbl->get_CachedIsDataValidForForm(This,retVal);
15907}
15908static inline HRESULT IUIAutomationElement8_get_CachedControllerFor(IUIAutomationElement8* This,IUIAutomationElementArray **retVal) {
15909    return This->lpVtbl->get_CachedControllerFor(This,retVal);
15910}
15911static inline HRESULT IUIAutomationElement8_get_CachedDescribedBy(IUIAutomationElement8* This,IUIAutomationElementArray **retVal) {
15912    return This->lpVtbl->get_CachedDescribedBy(This,retVal);
15913}
15914static inline HRESULT IUIAutomationElement8_get_CachedFlowsTo(IUIAutomationElement8* This,IUIAutomationElementArray **retVal) {
15915    return This->lpVtbl->get_CachedFlowsTo(This,retVal);
15916}
15917static inline HRESULT IUIAutomationElement8_get_CachedProviderDescription(IUIAutomationElement8* This,BSTR *retVal) {
15918    return This->lpVtbl->get_CachedProviderDescription(This,retVal);
15919}
15920static inline HRESULT IUIAutomationElement8_GetClickablePoint(IUIAutomationElement8* This,POINT *clickable,WINBOOL *gotClickable) {
15921    return This->lpVtbl->GetClickablePoint(This,clickable,gotClickable);
15922}
15923/*** IUIAutomationElement2 methods ***/
15924static inline HRESULT IUIAutomationElement8_get_CurrentOptimizeForVisualContent(IUIAutomationElement8* This,WINBOOL *retVal) {
15925    return This->lpVtbl->get_CurrentOptimizeForVisualContent(This,retVal);
15926}
15927static inline HRESULT IUIAutomationElement8_get_CachedOptimizeForVisualContent(IUIAutomationElement8* This,WINBOOL *retVal) {
15928    return This->lpVtbl->get_CachedOptimizeForVisualContent(This,retVal);
15929}
15930static inline HRESULT IUIAutomationElement8_get_CurrentLiveSetting(IUIAutomationElement8* This,enum LiveSetting *retVal) {
15931    return This->lpVtbl->get_CurrentLiveSetting(This,retVal);
15932}
15933static inline HRESULT IUIAutomationElement8_get_CachedLiveSetting(IUIAutomationElement8* This,enum LiveSetting *retVal) {
15934    return This->lpVtbl->get_CachedLiveSetting(This,retVal);
15935}
15936static inline HRESULT IUIAutomationElement8_get_CurrentFlowsFrom(IUIAutomationElement8* This,IUIAutomationElementArray **retVal) {
15937    return This->lpVtbl->get_CurrentFlowsFrom(This,retVal);
15938}
15939static inline HRESULT IUIAutomationElement8_get_CachedFlowsFrom(IUIAutomationElement8* This,IUIAutomationElementArray **retVal) {
15940    return This->lpVtbl->get_CachedFlowsFrom(This,retVal);
15941}
15942/*** IUIAutomationElement3 methods ***/
15943static inline HRESULT IUIAutomationElement8_ShowContextMenu(IUIAutomationElement8* This) {
15944    return This->lpVtbl->ShowContextMenu(This);
15945}
15946static inline HRESULT IUIAutomationElement8_get_CurrentIsPeripheral(IUIAutomationElement8* This,WINBOOL *retVal) {
15947    return This->lpVtbl->get_CurrentIsPeripheral(This,retVal);
15948}
15949static inline HRESULT IUIAutomationElement8_get_CachedIsPeripheral(IUIAutomationElement8* This,WINBOOL *retVal) {
15950    return This->lpVtbl->get_CachedIsPeripheral(This,retVal);
15951}
15952/*** IUIAutomationElement4 methods ***/
15953static inline HRESULT IUIAutomationElement8_get_CurrentPositionInSet(IUIAutomationElement8* This,int *retVal) {
15954    return This->lpVtbl->get_CurrentPositionInSet(This,retVal);
15955}
15956static inline HRESULT IUIAutomationElement8_get_CurrentSizeOfSet(IUIAutomationElement8* This,int *retVal) {
15957    return This->lpVtbl->get_CurrentSizeOfSet(This,retVal);
15958}
15959static inline HRESULT IUIAutomationElement8_get_CurrentLevel(IUIAutomationElement8* This,int *retVal) {
15960    return This->lpVtbl->get_CurrentLevel(This,retVal);
15961}
15962static inline HRESULT IUIAutomationElement8_get_CurrentAnnotationTypes(IUIAutomationElement8* This,SAFEARRAY **retVal) {
15963    return This->lpVtbl->get_CurrentAnnotationTypes(This,retVal);
15964}
15965static inline HRESULT IUIAutomationElement8_get_CurrentAnnotationObjects(IUIAutomationElement8* This,IUIAutomationElementArray **retVal) {
15966    return This->lpVtbl->get_CurrentAnnotationObjects(This,retVal);
15967}
15968static inline HRESULT IUIAutomationElement8_get_CachedPositionInSet(IUIAutomationElement8* This,int *retVal) {
15969    return This->lpVtbl->get_CachedPositionInSet(This,retVal);
15970}
15971static inline HRESULT IUIAutomationElement8_get_CachedSizeOfSet(IUIAutomationElement8* This,int *retVal) {
15972    return This->lpVtbl->get_CachedSizeOfSet(This,retVal);
15973}
15974static inline HRESULT IUIAutomationElement8_get_CachedLevel(IUIAutomationElement8* This,int *retVal) {
15975    return This->lpVtbl->get_CachedLevel(This,retVal);
15976}
15977static inline HRESULT IUIAutomationElement8_get_CachedAnnotationTypes(IUIAutomationElement8* This,SAFEARRAY **retVal) {
15978    return This->lpVtbl->get_CachedAnnotationTypes(This,retVal);
15979}
15980static inline HRESULT IUIAutomationElement8_get_CachedAnnotationObjects(IUIAutomationElement8* This,IUIAutomationElementArray **retVal) {
15981    return This->lpVtbl->get_CachedAnnotationObjects(This,retVal);
15982}
15983/*** IUIAutomationElement5 methods ***/
15984static inline HRESULT IUIAutomationElement8_get_CurrentLandmarkType(IUIAutomationElement8* This,LANDMARKTYPEID *retVal) {
15985    return This->lpVtbl->get_CurrentLandmarkType(This,retVal);
15986}
15987static inline HRESULT IUIAutomationElement8_get_CurrentLocalizedLandmarkType(IUIAutomationElement8* This,BSTR *retVal) {
15988    return This->lpVtbl->get_CurrentLocalizedLandmarkType(This,retVal);
15989}
15990static inline HRESULT IUIAutomationElement8_get_CachedLandmarkType(IUIAutomationElement8* This,LANDMARKTYPEID *retVal) {
15991    return This->lpVtbl->get_CachedLandmarkType(This,retVal);
15992}
15993static inline HRESULT IUIAutomationElement8_get_CachedLocalizedLandmarkType(IUIAutomationElement8* This,BSTR *retVal) {
15994    return This->lpVtbl->get_CachedLocalizedLandmarkType(This,retVal);
15995}
15996/*** IUIAutomationElement6 methods ***/
15997static inline HRESULT IUIAutomationElement8_get_CurrentFullDescription(IUIAutomationElement8* This,BSTR *retVal) {
15998    return This->lpVtbl->get_CurrentFullDescription(This,retVal);
15999}
16000static inline HRESULT IUIAutomationElement8_get_CachedFullDescription(IUIAutomationElement8* This,BSTR *retVal) {
16001    return This->lpVtbl->get_CachedFullDescription(This,retVal);
16002}
16003/*** IUIAutomationElement7 methods ***/
16004static inline HRESULT IUIAutomationElement8_FindFirstWithOptions(IUIAutomationElement8* This,enum TreeScope scope,IUIAutomationCondition *condition,enum TreeTraversalOptions traversalOptions,IUIAutomationElement *root,IUIAutomationElement **found) {
16005    return This->lpVtbl->FindFirstWithOptions(This,scope,condition,traversalOptions,root,found);
16006}
16007static inline HRESULT IUIAutomationElement8_FindAllWithOptions(IUIAutomationElement8* This,enum TreeScope scope,IUIAutomationCondition *condition,enum TreeTraversalOptions traversalOptions,IUIAutomationElement *root,IUIAutomationElementArray **found) {
16008    return This->lpVtbl->FindAllWithOptions(This,scope,condition,traversalOptions,root,found);
16009}
16010static inline HRESULT IUIAutomationElement8_FindFirstWithOptionsBuildCache(IUIAutomationElement8* This,enum TreeScope scope,IUIAutomationCondition *condition,IUIAutomationCacheRequest *cacheRequest,enum TreeTraversalOptions traversalOptions,IUIAutomationElement *root,IUIAutomationElement **found) {
16011    return This->lpVtbl->FindFirstWithOptionsBuildCache(This,scope,condition,cacheRequest,traversalOptions,root,found);
16012}
16013static inline HRESULT IUIAutomationElement8_FindAllWithOptionsBuildCache(IUIAutomationElement8* This,enum TreeScope scope,IUIAutomationCondition *condition,IUIAutomationCacheRequest *cacheRequest,enum TreeTraversalOptions traversalOptions,IUIAutomationElement *root,IUIAutomationElementArray **found) {
16014    return This->lpVtbl->FindAllWithOptionsBuildCache(This,scope,condition,cacheRequest,traversalOptions,root,found);
16015}
16016static inline HRESULT IUIAutomationElement8_GetCurrentMetadataValue(IUIAutomationElement8* This,int targetId,METADATAID metadataId,VARIANT *returnVal) {
16017    return This->lpVtbl->GetCurrentMetadataValue(This,targetId,metadataId,returnVal);
16018}
16019/*** IUIAutomationElement8 methods ***/
16020static inline HRESULT IUIAutomationElement8_get_CurrentHeadingLevel(IUIAutomationElement8* This,HEADINGLEVELID *retVal) {
16021    return This->lpVtbl->get_CurrentHeadingLevel(This,retVal);
16022}
16023static inline HRESULT IUIAutomationElement8_get_CachedHeadingLevel(IUIAutomationElement8* This,HEADINGLEVELID *retVal) {
16024    return This->lpVtbl->get_CachedHeadingLevel(This,retVal);
16025}
16026#endif
16027#endif
16028
16029#endif
16030
16031
16032#endif  /* __IUIAutomationElement8_INTERFACE_DEFINED__ */
16033
16034/*****************************************************************************
16035 * IUIAutomationElement9 interface
16036 */
16037#ifndef __IUIAutomationElement9_INTERFACE_DEFINED__
16038#define __IUIAutomationElement9_INTERFACE_DEFINED__
16039
16040DEFINE_GUID(IID_IUIAutomationElement9, 0x39325fac, 0x039d, 0x440e, 0xa3,0xa3, 0x5e,0xb8,0x1a,0x5c,0xec,0xc3);
16041#if defined(__cplusplus) && !defined(CINTERFACE)
16042MIDL_INTERFACE("39325fac-039d-440e-a3a3-5eb81a5cecc3")
16043IUIAutomationElement9 : public IUIAutomationElement8
16044{
16045    virtual HRESULT STDMETHODCALLTYPE get_CurrentIsDialog(
16046        WINBOOL *retVal) = 0;
16047
16048    virtual HRESULT STDMETHODCALLTYPE get_CachedIsDialog(
16049        WINBOOL *retVal) = 0;
16050
16051};
16052#ifdef __CRT_UUID_DECL
16053__CRT_UUID_DECL(IUIAutomationElement9, 0x39325fac, 0x039d, 0x440e, 0xa3,0xa3, 0x5e,0xb8,0x1a,0x5c,0xec,0xc3)
16054#endif
16055#else
16056typedef struct IUIAutomationElement9Vtbl {
16057    BEGIN_INTERFACE
16058
16059    /*** IUnknown methods ***/
16060    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
16061        IUIAutomationElement9 *This,
16062        REFIID riid,
16063        void **ppvObject);
16064
16065    ULONG (STDMETHODCALLTYPE *AddRef)(
16066        IUIAutomationElement9 *This);
16067
16068    ULONG (STDMETHODCALLTYPE *Release)(
16069        IUIAutomationElement9 *This);
16070
16071    /*** IUIAutomationElement methods ***/
16072    HRESULT (STDMETHODCALLTYPE *SetFocus)(
16073        IUIAutomationElement9 *This);
16074
16075    HRESULT (STDMETHODCALLTYPE *GetRuntimeId)(
16076        IUIAutomationElement9 *This,
16077        SAFEARRAY **runtimeId);
16078
16079    HRESULT (STDMETHODCALLTYPE *FindFirst)(
16080        IUIAutomationElement9 *This,
16081        enum TreeScope scope,
16082        IUIAutomationCondition *condition,
16083        IUIAutomationElement **found);
16084
16085    HRESULT (STDMETHODCALLTYPE *FindAll)(
16086        IUIAutomationElement9 *This,
16087        enum TreeScope scope,
16088        IUIAutomationCondition *condition,
16089        IUIAutomationElementArray **found);
16090
16091    HRESULT (STDMETHODCALLTYPE *FindFirstBuildCache)(
16092        IUIAutomationElement9 *This,
16093        enum TreeScope scope,
16094        IUIAutomationCondition *condition,
16095        IUIAutomationCacheRequest *cacheRequest,
16096        IUIAutomationElement **found);
16097
16098    HRESULT (STDMETHODCALLTYPE *FindAllBuildCache)(
16099        IUIAutomationElement9 *This,
16100        enum TreeScope scope,
16101        IUIAutomationCondition *condition,
16102        IUIAutomationCacheRequest *cacheRequest,
16103        IUIAutomationElementArray **found);
16104
16105    HRESULT (STDMETHODCALLTYPE *BuildUpdatedCache)(
16106        IUIAutomationElement9 *This,
16107        IUIAutomationCacheRequest *cacheRequest,
16108        IUIAutomationElement **updatedElement);
16109
16110    HRESULT (STDMETHODCALLTYPE *GetCurrentPropertyValue)(
16111        IUIAutomationElement9 *This,
16112        PROPERTYID propertyId,
16113        VARIANT *retVal);
16114
16115    HRESULT (STDMETHODCALLTYPE *GetCurrentPropertyValueEx)(
16116        IUIAutomationElement9 *This,
16117        PROPERTYID propertyId,
16118        WINBOOL ignoreDefaultValue,
16119        VARIANT *retVal);
16120
16121    HRESULT (STDMETHODCALLTYPE *GetCachedPropertyValue)(
16122        IUIAutomationElement9 *This,
16123        PROPERTYID propertyId,
16124        VARIANT *retVal);
16125
16126    HRESULT (STDMETHODCALLTYPE *GetCachedPropertyValueEx)(
16127        IUIAutomationElement9 *This,
16128        PROPERTYID propertyId,
16129        WINBOOL ignoreDefaultValue,
16130        VARIANT *retVal);
16131
16132    HRESULT (STDMETHODCALLTYPE *GetCurrentPatternAs)(
16133        IUIAutomationElement9 *This,
16134        PATTERNID patternId,
16135        REFIID riid,
16136        void **patternObject);
16137
16138    HRESULT (STDMETHODCALLTYPE *GetCachedPatternAs)(
16139        IUIAutomationElement9 *This,
16140        PATTERNID patternId,
16141        REFIID riid,
16142        void **patternObject);
16143
16144    HRESULT (STDMETHODCALLTYPE *GetCurrentPattern)(
16145        IUIAutomationElement9 *This,
16146        PATTERNID patternId,
16147        IUnknown **patternObject);
16148
16149    HRESULT (STDMETHODCALLTYPE *GetCachedPattern)(
16150        IUIAutomationElement9 *This,
16151        PATTERNID patternId,
16152        IUnknown **patternObject);
16153
16154    HRESULT (STDMETHODCALLTYPE *GetCachedParent)(
16155        IUIAutomationElement9 *This,
16156        IUIAutomationElement **parent);
16157
16158    HRESULT (STDMETHODCALLTYPE *GetCachedChildren)(
16159        IUIAutomationElement9 *This,
16160        IUIAutomationElementArray **children);
16161
16162    HRESULT (STDMETHODCALLTYPE *get_CurrentProcessId)(
16163        IUIAutomationElement9 *This,
16164        int *retVal);
16165
16166    HRESULT (STDMETHODCALLTYPE *get_CurrentControlType)(
16167        IUIAutomationElement9 *This,
16168        CONTROLTYPEID *retVal);
16169
16170    HRESULT (STDMETHODCALLTYPE *get_CurrentLocalizedControlType)(
16171        IUIAutomationElement9 *This,
16172        BSTR *retVal);
16173
16174    HRESULT (STDMETHODCALLTYPE *get_CurrentName)(
16175        IUIAutomationElement9 *This,
16176        BSTR *retVal);
16177
16178    HRESULT (STDMETHODCALLTYPE *get_CurrentAcceleratorKey)(
16179        IUIAutomationElement9 *This,
16180        BSTR *retVal);
16181
16182    HRESULT (STDMETHODCALLTYPE *get_CurrentAccessKey)(
16183        IUIAutomationElement9 *This,
16184        BSTR *retVal);
16185
16186    HRESULT (STDMETHODCALLTYPE *get_CurrentHasKeyboardFocus)(
16187        IUIAutomationElement9 *This,
16188        WINBOOL *retVal);
16189
16190    HRESULT (STDMETHODCALLTYPE *get_CurrentIsKeyboardFocusable)(
16191        IUIAutomationElement9 *This,
16192        WINBOOL *retVal);
16193
16194    HRESULT (STDMETHODCALLTYPE *get_CurrentIsEnabled)(
16195        IUIAutomationElement9 *This,
16196        WINBOOL *retVal);
16197
16198    HRESULT (STDMETHODCALLTYPE *get_CurrentAutomationId)(
16199        IUIAutomationElement9 *This,
16200        BSTR *retVal);
16201
16202    HRESULT (STDMETHODCALLTYPE *get_CurrentClassName)(
16203        IUIAutomationElement9 *This,
16204        BSTR *retVal);
16205
16206    HRESULT (STDMETHODCALLTYPE *get_CurrentHelpText)(
16207        IUIAutomationElement9 *This,
16208        BSTR *retVal);
16209
16210    HRESULT (STDMETHODCALLTYPE *get_CurrentCulture)(
16211        IUIAutomationElement9 *This,
16212        int *retVal);
16213
16214    HRESULT (STDMETHODCALLTYPE *get_CurrentIsControlElement)(
16215        IUIAutomationElement9 *This,
16216        WINBOOL *retVal);
16217
16218    HRESULT (STDMETHODCALLTYPE *get_CurrentIsContentElement)(
16219        IUIAutomationElement9 *This,
16220        WINBOOL *retVal);
16221
16222    HRESULT (STDMETHODCALLTYPE *get_CurrentIsPassword)(
16223        IUIAutomationElement9 *This,
16224        WINBOOL *retVal);
16225
16226    HRESULT (STDMETHODCALLTYPE *get_CurrentNativeWindowHandle)(
16227        IUIAutomationElement9 *This,
16228        UIA_HWND *retVal);
16229
16230    HRESULT (STDMETHODCALLTYPE *get_CurrentItemType)(
16231        IUIAutomationElement9 *This,
16232        BSTR *retVal);
16233
16234    HRESULT (STDMETHODCALLTYPE *get_CurrentIsOffscreen)(
16235        IUIAutomationElement9 *This,
16236        WINBOOL *retVal);
16237
16238    HRESULT (STDMETHODCALLTYPE *get_CurrentOrientation)(
16239        IUIAutomationElement9 *This,
16240        enum OrientationType *retVal);
16241
16242    HRESULT (STDMETHODCALLTYPE *get_CurrentFrameworkId)(
16243        IUIAutomationElement9 *This,
16244        BSTR *retVal);
16245
16246    HRESULT (STDMETHODCALLTYPE *get_CurrentIsRequiredForForm)(
16247        IUIAutomationElement9 *This,
16248        WINBOOL *retVal);
16249
16250    HRESULT (STDMETHODCALLTYPE *get_CurrentItemStatus)(
16251        IUIAutomationElement9 *This,
16252        BSTR *retVal);
16253
16254    HRESULT (STDMETHODCALLTYPE *get_CurrentBoundingRectangle)(
16255        IUIAutomationElement9 *This,
16256        RECT *retVal);
16257
16258    HRESULT (STDMETHODCALLTYPE *get_CurrentLabeledBy)(
16259        IUIAutomationElement9 *This,
16260        IUIAutomationElement **retVal);
16261
16262    HRESULT (STDMETHODCALLTYPE *get_CurrentAriaRole)(
16263        IUIAutomationElement9 *This,
16264        BSTR *retVal);
16265
16266    HRESULT (STDMETHODCALLTYPE *get_CurrentAriaProperties)(
16267        IUIAutomationElement9 *This,
16268        BSTR *retVal);
16269
16270    HRESULT (STDMETHODCALLTYPE *get_CurrentIsDataValidForForm)(
16271        IUIAutomationElement9 *This,
16272        WINBOOL *retVal);
16273
16274    HRESULT (STDMETHODCALLTYPE *get_CurrentControllerFor)(
16275        IUIAutomationElement9 *This,
16276        IUIAutomationElementArray **retVal);
16277
16278    HRESULT (STDMETHODCALLTYPE *get_CurrentDescribedBy)(
16279        IUIAutomationElement9 *This,
16280        IUIAutomationElementArray **retVal);
16281
16282    HRESULT (STDMETHODCALLTYPE *get_CurrentFlowsTo)(
16283        IUIAutomationElement9 *This,
16284        IUIAutomationElementArray **retVal);
16285
16286    HRESULT (STDMETHODCALLTYPE *get_CurrentProviderDescription)(
16287        IUIAutomationElement9 *This,
16288        BSTR *retVal);
16289
16290    HRESULT (STDMETHODCALLTYPE *get_CachedProcessId)(
16291        IUIAutomationElement9 *This,
16292        int *retVal);
16293
16294    HRESULT (STDMETHODCALLTYPE *get_CachedControlType)(
16295        IUIAutomationElement9 *This,
16296        CONTROLTYPEID *retVal);
16297
16298    HRESULT (STDMETHODCALLTYPE *get_CachedLocalizedControlType)(
16299        IUIAutomationElement9 *This,
16300        BSTR *retVal);
16301
16302    HRESULT (STDMETHODCALLTYPE *get_CachedName)(
16303        IUIAutomationElement9 *This,
16304        BSTR *retVal);
16305
16306    HRESULT (STDMETHODCALLTYPE *get_CachedAcceleratorKey)(
16307        IUIAutomationElement9 *This,
16308        BSTR *retVal);
16309
16310    HRESULT (STDMETHODCALLTYPE *get_CachedAccessKey)(
16311        IUIAutomationElement9 *This,
16312        BSTR *retVal);
16313
16314    HRESULT (STDMETHODCALLTYPE *get_CachedHasKeyboardFocus)(
16315        IUIAutomationElement9 *This,
16316        WINBOOL *retVal);
16317
16318    HRESULT (STDMETHODCALLTYPE *get_CachedIsKeyboardFocusable)(
16319        IUIAutomationElement9 *This,
16320        WINBOOL *retVal);
16321
16322    HRESULT (STDMETHODCALLTYPE *get_CachedIsEnabled)(
16323        IUIAutomationElement9 *This,
16324        WINBOOL *retVal);
16325
16326    HRESULT (STDMETHODCALLTYPE *get_CachedAutomationId)(
16327        IUIAutomationElement9 *This,
16328        BSTR *retVal);
16329
16330    HRESULT (STDMETHODCALLTYPE *get_CachedClassName)(
16331        IUIAutomationElement9 *This,
16332        BSTR *retVal);
16333
16334    HRESULT (STDMETHODCALLTYPE *get_CachedHelpText)(
16335        IUIAutomationElement9 *This,
16336        BSTR *retVal);
16337
16338    HRESULT (STDMETHODCALLTYPE *get_CachedCulture)(
16339        IUIAutomationElement9 *This,
16340        int *retVal);
16341
16342    HRESULT (STDMETHODCALLTYPE *get_CachedIsControlElement)(
16343        IUIAutomationElement9 *This,
16344        WINBOOL *retVal);
16345
16346    HRESULT (STDMETHODCALLTYPE *get_CachedIsContentElement)(
16347        IUIAutomationElement9 *This,
16348        WINBOOL *retVal);
16349
16350    HRESULT (STDMETHODCALLTYPE *get_CachedIsPassword)(
16351        IUIAutomationElement9 *This,
16352        WINBOOL *retVal);
16353
16354    HRESULT (STDMETHODCALLTYPE *get_CachedNativeWindowHandle)(
16355        IUIAutomationElement9 *This,
16356        UIA_HWND *retVal);
16357
16358    HRESULT (STDMETHODCALLTYPE *get_CachedItemType)(
16359        IUIAutomationElement9 *This,
16360        BSTR *retVal);
16361
16362    HRESULT (STDMETHODCALLTYPE *get_CachedIsOffscreen)(
16363        IUIAutomationElement9 *This,
16364        WINBOOL *retVal);
16365
16366    HRESULT (STDMETHODCALLTYPE *get_CachedOrientation)(
16367        IUIAutomationElement9 *This,
16368        enum OrientationType *retVal);
16369
16370    HRESULT (STDMETHODCALLTYPE *get_CachedFrameworkId)(
16371        IUIAutomationElement9 *This,
16372        BSTR *retVal);
16373
16374    HRESULT (STDMETHODCALLTYPE *get_CachedIsRequiredForForm)(
16375        IUIAutomationElement9 *This,
16376        WINBOOL *retVal);
16377
16378    HRESULT (STDMETHODCALLTYPE *get_CachedItemStatus)(
16379        IUIAutomationElement9 *This,
16380        BSTR *retVal);
16381
16382    HRESULT (STDMETHODCALLTYPE *get_CachedBoundingRectangle)(
16383        IUIAutomationElement9 *This,
16384        RECT *retVal);
16385
16386    HRESULT (STDMETHODCALLTYPE *get_CachedLabeledBy)(
16387        IUIAutomationElement9 *This,
16388        IUIAutomationElement **retVal);
16389
16390    HRESULT (STDMETHODCALLTYPE *get_CachedAriaRole)(
16391        IUIAutomationElement9 *This,
16392        BSTR *retVal);
16393
16394    HRESULT (STDMETHODCALLTYPE *get_CachedAriaProperties)(
16395        IUIAutomationElement9 *This,
16396        BSTR *retVal);
16397
16398    HRESULT (STDMETHODCALLTYPE *get_CachedIsDataValidForForm)(
16399        IUIAutomationElement9 *This,
16400        WINBOOL *retVal);
16401
16402    HRESULT (STDMETHODCALLTYPE *get_CachedControllerFor)(
16403        IUIAutomationElement9 *This,
16404        IUIAutomationElementArray **retVal);
16405
16406    HRESULT (STDMETHODCALLTYPE *get_CachedDescribedBy)(
16407        IUIAutomationElement9 *This,
16408        IUIAutomationElementArray **retVal);
16409
16410    HRESULT (STDMETHODCALLTYPE *get_CachedFlowsTo)(
16411        IUIAutomationElement9 *This,
16412        IUIAutomationElementArray **retVal);
16413
16414    HRESULT (STDMETHODCALLTYPE *get_CachedProviderDescription)(
16415        IUIAutomationElement9 *This,
16416        BSTR *retVal);
16417
16418    HRESULT (STDMETHODCALLTYPE *GetClickablePoint)(
16419        IUIAutomationElement9 *This,
16420        POINT *clickable,
16421        WINBOOL *gotClickable);
16422
16423    /*** IUIAutomationElement2 methods ***/
16424    HRESULT (STDMETHODCALLTYPE *get_CurrentOptimizeForVisualContent)(
16425        IUIAutomationElement9 *This,
16426        WINBOOL *retVal);
16427
16428    HRESULT (STDMETHODCALLTYPE *get_CachedOptimizeForVisualContent)(
16429        IUIAutomationElement9 *This,
16430        WINBOOL *retVal);
16431
16432    HRESULT (STDMETHODCALLTYPE *get_CurrentLiveSetting)(
16433        IUIAutomationElement9 *This,
16434        enum LiveSetting *retVal);
16435
16436    HRESULT (STDMETHODCALLTYPE *get_CachedLiveSetting)(
16437        IUIAutomationElement9 *This,
16438        enum LiveSetting *retVal);
16439
16440    HRESULT (STDMETHODCALLTYPE *get_CurrentFlowsFrom)(
16441        IUIAutomationElement9 *This,
16442        IUIAutomationElementArray **retVal);
16443
16444    HRESULT (STDMETHODCALLTYPE *get_CachedFlowsFrom)(
16445        IUIAutomationElement9 *This,
16446        IUIAutomationElementArray **retVal);
16447
16448    /*** IUIAutomationElement3 methods ***/
16449    HRESULT (STDMETHODCALLTYPE *ShowContextMenu)(
16450        IUIAutomationElement9 *This);
16451
16452    HRESULT (STDMETHODCALLTYPE *get_CurrentIsPeripheral)(
16453        IUIAutomationElement9 *This,
16454        WINBOOL *retVal);
16455
16456    HRESULT (STDMETHODCALLTYPE *get_CachedIsPeripheral)(
16457        IUIAutomationElement9 *This,
16458        WINBOOL *retVal);
16459
16460    /*** IUIAutomationElement4 methods ***/
16461    HRESULT (STDMETHODCALLTYPE *get_CurrentPositionInSet)(
16462        IUIAutomationElement9 *This,
16463        int *retVal);
16464
16465    HRESULT (STDMETHODCALLTYPE *get_CurrentSizeOfSet)(
16466        IUIAutomationElement9 *This,
16467        int *retVal);
16468
16469    HRESULT (STDMETHODCALLTYPE *get_CurrentLevel)(
16470        IUIAutomationElement9 *This,
16471        int *retVal);
16472
16473    HRESULT (STDMETHODCALLTYPE *get_CurrentAnnotationTypes)(
16474        IUIAutomationElement9 *This,
16475        SAFEARRAY **retVal);
16476
16477    HRESULT (STDMETHODCALLTYPE *get_CurrentAnnotationObjects)(
16478        IUIAutomationElement9 *This,
16479        IUIAutomationElementArray **retVal);
16480
16481    HRESULT (STDMETHODCALLTYPE *get_CachedPositionInSet)(
16482        IUIAutomationElement9 *This,
16483        int *retVal);
16484
16485    HRESULT (STDMETHODCALLTYPE *get_CachedSizeOfSet)(
16486        IUIAutomationElement9 *This,
16487        int *retVal);
16488
16489    HRESULT (STDMETHODCALLTYPE *get_CachedLevel)(
16490        IUIAutomationElement9 *This,
16491        int *retVal);
16492
16493    HRESULT (STDMETHODCALLTYPE *get_CachedAnnotationTypes)(
16494        IUIAutomationElement9 *This,
16495        SAFEARRAY **retVal);
16496
16497    HRESULT (STDMETHODCALLTYPE *get_CachedAnnotationObjects)(
16498        IUIAutomationElement9 *This,
16499        IUIAutomationElementArray **retVal);
16500
16501    /*** IUIAutomationElement5 methods ***/
16502    HRESULT (STDMETHODCALLTYPE *get_CurrentLandmarkType)(
16503        IUIAutomationElement9 *This,
16504        LANDMARKTYPEID *retVal);
16505
16506    HRESULT (STDMETHODCALLTYPE *get_CurrentLocalizedLandmarkType)(
16507        IUIAutomationElement9 *This,
16508        BSTR *retVal);
16509
16510    HRESULT (STDMETHODCALLTYPE *get_CachedLandmarkType)(
16511        IUIAutomationElement9 *This,
16512        LANDMARKTYPEID *retVal);
16513
16514    HRESULT (STDMETHODCALLTYPE *get_CachedLocalizedLandmarkType)(
16515        IUIAutomationElement9 *This,
16516        BSTR *retVal);
16517
16518    /*** IUIAutomationElement6 methods ***/
16519    HRESULT (STDMETHODCALLTYPE *get_CurrentFullDescription)(
16520        IUIAutomationElement9 *This,
16521        BSTR *retVal);
16522
16523    HRESULT (STDMETHODCALLTYPE *get_CachedFullDescription)(
16524        IUIAutomationElement9 *This,
16525        BSTR *retVal);
16526
16527    /*** IUIAutomationElement7 methods ***/
16528    HRESULT (STDMETHODCALLTYPE *FindFirstWithOptions)(
16529        IUIAutomationElement9 *This,
16530        enum TreeScope scope,
16531        IUIAutomationCondition *condition,
16532        enum TreeTraversalOptions traversalOptions,
16533        IUIAutomationElement *root,
16534        IUIAutomationElement **found);
16535
16536    HRESULT (STDMETHODCALLTYPE *FindAllWithOptions)(
16537        IUIAutomationElement9 *This,
16538        enum TreeScope scope,
16539        IUIAutomationCondition *condition,
16540        enum TreeTraversalOptions traversalOptions,
16541        IUIAutomationElement *root,
16542        IUIAutomationElementArray **found);
16543
16544    HRESULT (STDMETHODCALLTYPE *FindFirstWithOptionsBuildCache)(
16545        IUIAutomationElement9 *This,
16546        enum TreeScope scope,
16547        IUIAutomationCondition *condition,
16548        IUIAutomationCacheRequest *cacheRequest,
16549        enum TreeTraversalOptions traversalOptions,
16550        IUIAutomationElement *root,
16551        IUIAutomationElement **found);
16552
16553    HRESULT (STDMETHODCALLTYPE *FindAllWithOptionsBuildCache)(
16554        IUIAutomationElement9 *This,
16555        enum TreeScope scope,
16556        IUIAutomationCondition *condition,
16557        IUIAutomationCacheRequest *cacheRequest,
16558        enum TreeTraversalOptions traversalOptions,
16559        IUIAutomationElement *root,
16560        IUIAutomationElementArray **found);
16561
16562    HRESULT (STDMETHODCALLTYPE *GetCurrentMetadataValue)(
16563        IUIAutomationElement9 *This,
16564        int targetId,
16565        METADATAID metadataId,
16566        VARIANT *returnVal);
16567
16568    /*** IUIAutomationElement8 methods ***/
16569    HRESULT (STDMETHODCALLTYPE *get_CurrentHeadingLevel)(
16570        IUIAutomationElement9 *This,
16571        HEADINGLEVELID *retVal);
16572
16573    HRESULT (STDMETHODCALLTYPE *get_CachedHeadingLevel)(
16574        IUIAutomationElement9 *This,
16575        HEADINGLEVELID *retVal);
16576
16577    /*** IUIAutomationElement9 methods ***/
16578    HRESULT (STDMETHODCALLTYPE *get_CurrentIsDialog)(
16579        IUIAutomationElement9 *This,
16580        WINBOOL *retVal);
16581
16582    HRESULT (STDMETHODCALLTYPE *get_CachedIsDialog)(
16583        IUIAutomationElement9 *This,
16584        WINBOOL *retVal);
16585
16586    END_INTERFACE
16587} IUIAutomationElement9Vtbl;
16588
16589interface IUIAutomationElement9 {
16590    CONST_VTBL IUIAutomationElement9Vtbl* lpVtbl;
16591};
16592
16593#ifdef COBJMACROS
16594#ifndef WIDL_C_INLINE_WRAPPERS
16595/*** IUnknown methods ***/
16596#define IUIAutomationElement9_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
16597#define IUIAutomationElement9_AddRef(This) (This)->lpVtbl->AddRef(This)
16598#define IUIAutomationElement9_Release(This) (This)->lpVtbl->Release(This)
16599/*** IUIAutomationElement methods ***/
16600#define IUIAutomationElement9_SetFocus(This) (This)->lpVtbl->SetFocus(This)
16601#define IUIAutomationElement9_GetRuntimeId(This,runtimeId) (This)->lpVtbl->GetRuntimeId(This,runtimeId)
16602#define IUIAutomationElement9_FindFirst(This,scope,condition,found) (This)->lpVtbl->FindFirst(This,scope,condition,found)
16603#define IUIAutomationElement9_FindAll(This,scope,condition,found) (This)->lpVtbl->FindAll(This,scope,condition,found)
16604#define IUIAutomationElement9_FindFirstBuildCache(This,scope,condition,cacheRequest,found) (This)->lpVtbl->FindFirstBuildCache(This,scope,condition,cacheRequest,found)
16605#define IUIAutomationElement9_FindAllBuildCache(This,scope,condition,cacheRequest,found) (This)->lpVtbl->FindAllBuildCache(This,scope,condition,cacheRequest,found)
16606#define IUIAutomationElement9_BuildUpdatedCache(This,cacheRequest,updatedElement) (This)->lpVtbl->BuildUpdatedCache(This,cacheRequest,updatedElement)
16607#define IUIAutomationElement9_GetCurrentPropertyValue(This,propertyId,retVal) (This)->lpVtbl->GetCurrentPropertyValue(This,propertyId,retVal)
16608#define IUIAutomationElement9_GetCurrentPropertyValueEx(This,propertyId,ignoreDefaultValue,retVal) (This)->lpVtbl->GetCurrentPropertyValueEx(This,propertyId,ignoreDefaultValue,retVal)
16609#define IUIAutomationElement9_GetCachedPropertyValue(This,propertyId,retVal) (This)->lpVtbl->GetCachedPropertyValue(This,propertyId,retVal)
16610#define IUIAutomationElement9_GetCachedPropertyValueEx(This,propertyId,ignoreDefaultValue,retVal) (This)->lpVtbl->GetCachedPropertyValueEx(This,propertyId,ignoreDefaultValue,retVal)
16611#define IUIAutomationElement9_GetCurrentPatternAs(This,patternId,riid,patternObject) (This)->lpVtbl->GetCurrentPatternAs(This,patternId,riid,patternObject)
16612#define IUIAutomationElement9_GetCachedPatternAs(This,patternId,riid,patternObject) (This)->lpVtbl->GetCachedPatternAs(This,patternId,riid,patternObject)
16613#define IUIAutomationElement9_GetCurrentPattern(This,patternId,patternObject) (This)->lpVtbl->GetCurrentPattern(This,patternId,patternObject)
16614#define IUIAutomationElement9_GetCachedPattern(This,patternId,patternObject) (This)->lpVtbl->GetCachedPattern(This,patternId,patternObject)
16615#define IUIAutomationElement9_GetCachedParent(This,parent) (This)->lpVtbl->GetCachedParent(This,parent)
16616#define IUIAutomationElement9_GetCachedChildren(This,children) (This)->lpVtbl->GetCachedChildren(This,children)
16617#define IUIAutomationElement9_get_CurrentProcessId(This,retVal) (This)->lpVtbl->get_CurrentProcessId(This,retVal)
16618#define IUIAutomationElement9_get_CurrentControlType(This,retVal) (This)->lpVtbl->get_CurrentControlType(This,retVal)
16619#define IUIAutomationElement9_get_CurrentLocalizedControlType(This,retVal) (This)->lpVtbl->get_CurrentLocalizedControlType(This,retVal)
16620#define IUIAutomationElement9_get_CurrentName(This,retVal) (This)->lpVtbl->get_CurrentName(This,retVal)
16621#define IUIAutomationElement9_get_CurrentAcceleratorKey(This,retVal) (This)->lpVtbl->get_CurrentAcceleratorKey(This,retVal)
16622#define IUIAutomationElement9_get_CurrentAccessKey(This,retVal) (This)->lpVtbl->get_CurrentAccessKey(This,retVal)
16623#define IUIAutomationElement9_get_CurrentHasKeyboardFocus(This,retVal) (This)->lpVtbl->get_CurrentHasKeyboardFocus(This,retVal)
16624#define IUIAutomationElement9_get_CurrentIsKeyboardFocusable(This,retVal) (This)->lpVtbl->get_CurrentIsKeyboardFocusable(This,retVal)
16625#define IUIAutomationElement9_get_CurrentIsEnabled(This,retVal) (This)->lpVtbl->get_CurrentIsEnabled(This,retVal)
16626#define IUIAutomationElement9_get_CurrentAutomationId(This,retVal) (This)->lpVtbl->get_CurrentAutomationId(This,retVal)
16627#define IUIAutomationElement9_get_CurrentClassName(This,retVal) (This)->lpVtbl->get_CurrentClassName(This,retVal)
16628#define IUIAutomationElement9_get_CurrentHelpText(This,retVal) (This)->lpVtbl->get_CurrentHelpText(This,retVal)
16629#define IUIAutomationElement9_get_CurrentCulture(This,retVal) (This)->lpVtbl->get_CurrentCulture(This,retVal)
16630#define IUIAutomationElement9_get_CurrentIsControlElement(This,retVal) (This)->lpVtbl->get_CurrentIsControlElement(This,retVal)
16631#define IUIAutomationElement9_get_CurrentIsContentElement(This,retVal) (This)->lpVtbl->get_CurrentIsContentElement(This,retVal)
16632#define IUIAutomationElement9_get_CurrentIsPassword(This,retVal) (This)->lpVtbl->get_CurrentIsPassword(This,retVal)
16633#define IUIAutomationElement9_get_CurrentNativeWindowHandle(This,retVal) (This)->lpVtbl->get_CurrentNativeWindowHandle(This,retVal)
16634#define IUIAutomationElement9_get_CurrentItemType(This,retVal) (This)->lpVtbl->get_CurrentItemType(This,retVal)
16635#define IUIAutomationElement9_get_CurrentIsOffscreen(This,retVal) (This)->lpVtbl->get_CurrentIsOffscreen(This,retVal)
16636#define IUIAutomationElement9_get_CurrentOrientation(This,retVal) (This)->lpVtbl->get_CurrentOrientation(This,retVal)
16637#define IUIAutomationElement9_get_CurrentFrameworkId(This,retVal) (This)->lpVtbl->get_CurrentFrameworkId(This,retVal)
16638#define IUIAutomationElement9_get_CurrentIsRequiredForForm(This,retVal) (This)->lpVtbl->get_CurrentIsRequiredForForm(This,retVal)
16639#define IUIAutomationElement9_get_CurrentItemStatus(This,retVal) (This)->lpVtbl->get_CurrentItemStatus(This,retVal)
16640#define IUIAutomationElement9_get_CurrentBoundingRectangle(This,retVal) (This)->lpVtbl->get_CurrentBoundingRectangle(This,retVal)
16641#define IUIAutomationElement9_get_CurrentLabeledBy(This,retVal) (This)->lpVtbl->get_CurrentLabeledBy(This,retVal)
16642#define IUIAutomationElement9_get_CurrentAriaRole(This,retVal) (This)->lpVtbl->get_CurrentAriaRole(This,retVal)
16643#define IUIAutomationElement9_get_CurrentAriaProperties(This,retVal) (This)->lpVtbl->get_CurrentAriaProperties(This,retVal)
16644#define IUIAutomationElement9_get_CurrentIsDataValidForForm(This,retVal) (This)->lpVtbl->get_CurrentIsDataValidForForm(This,retVal)
16645#define IUIAutomationElement9_get_CurrentControllerFor(This,retVal) (This)->lpVtbl->get_CurrentControllerFor(This,retVal)
16646#define IUIAutomationElement9_get_CurrentDescribedBy(This,retVal) (This)->lpVtbl->get_CurrentDescribedBy(This,retVal)
16647#define IUIAutomationElement9_get_CurrentFlowsTo(This,retVal) (This)->lpVtbl->get_CurrentFlowsTo(This,retVal)
16648#define IUIAutomationElement9_get_CurrentProviderDescription(This,retVal) (This)->lpVtbl->get_CurrentProviderDescription(This,retVal)
16649#define IUIAutomationElement9_get_CachedProcessId(This,retVal) (This)->lpVtbl->get_CachedProcessId(This,retVal)
16650#define IUIAutomationElement9_get_CachedControlType(This,retVal) (This)->lpVtbl->get_CachedControlType(This,retVal)
16651#define IUIAutomationElement9_get_CachedLocalizedControlType(This,retVal) (This)->lpVtbl->get_CachedLocalizedControlType(This,retVal)
16652#define IUIAutomationElement9_get_CachedName(This,retVal) (This)->lpVtbl->get_CachedName(This,retVal)
16653#define IUIAutomationElement9_get_CachedAcceleratorKey(This,retVal) (This)->lpVtbl->get_CachedAcceleratorKey(This,retVal)
16654#define IUIAutomationElement9_get_CachedAccessKey(This,retVal) (This)->lpVtbl->get_CachedAccessKey(This,retVal)
16655#define IUIAutomationElement9_get_CachedHasKeyboardFocus(This,retVal) (This)->lpVtbl->get_CachedHasKeyboardFocus(This,retVal)
16656#define IUIAutomationElement9_get_CachedIsKeyboardFocusable(This,retVal) (This)->lpVtbl->get_CachedIsKeyboardFocusable(This,retVal)
16657#define IUIAutomationElement9_get_CachedIsEnabled(This,retVal) (This)->lpVtbl->get_CachedIsEnabled(This,retVal)
16658#define IUIAutomationElement9_get_CachedAutomationId(This,retVal) (This)->lpVtbl->get_CachedAutomationId(This,retVal)
16659#define IUIAutomationElement9_get_CachedClassName(This,retVal) (This)->lpVtbl->get_CachedClassName(This,retVal)
16660#define IUIAutomationElement9_get_CachedHelpText(This,retVal) (This)->lpVtbl->get_CachedHelpText(This,retVal)
16661#define IUIAutomationElement9_get_CachedCulture(This,retVal) (This)->lpVtbl->get_CachedCulture(This,retVal)
16662#define IUIAutomationElement9_get_CachedIsControlElement(This,retVal) (This)->lpVtbl->get_CachedIsControlElement(This,retVal)
16663#define IUIAutomationElement9_get_CachedIsContentElement(This,retVal) (This)->lpVtbl->get_CachedIsContentElement(This,retVal)
16664#define IUIAutomationElement9_get_CachedIsPassword(This,retVal) (This)->lpVtbl->get_CachedIsPassword(This,retVal)
16665#define IUIAutomationElement9_get_CachedNativeWindowHandle(This,retVal) (This)->lpVtbl->get_CachedNativeWindowHandle(This,retVal)
16666#define IUIAutomationElement9_get_CachedItemType(This,retVal) (This)->lpVtbl->get_CachedItemType(This,retVal)
16667#define IUIAutomationElement9_get_CachedIsOffscreen(This,retVal) (This)->lpVtbl->get_CachedIsOffscreen(This,retVal)
16668#define IUIAutomationElement9_get_CachedOrientation(This,retVal) (This)->lpVtbl->get_CachedOrientation(This,retVal)
16669#define IUIAutomationElement9_get_CachedFrameworkId(This,retVal) (This)->lpVtbl->get_CachedFrameworkId(This,retVal)
16670#define IUIAutomationElement9_get_CachedIsRequiredForForm(This,retVal) (This)->lpVtbl->get_CachedIsRequiredForForm(This,retVal)
16671#define IUIAutomationElement9_get_CachedItemStatus(This,retVal) (This)->lpVtbl->get_CachedItemStatus(This,retVal)
16672#define IUIAutomationElement9_get_CachedBoundingRectangle(This,retVal) (This)->lpVtbl->get_CachedBoundingRectangle(This,retVal)
16673#define IUIAutomationElement9_get_CachedLabeledBy(This,retVal) (This)->lpVtbl->get_CachedLabeledBy(This,retVal)
16674#define IUIAutomationElement9_get_CachedAriaRole(This,retVal) (This)->lpVtbl->get_CachedAriaRole(This,retVal)
16675#define IUIAutomationElement9_get_CachedAriaProperties(This,retVal) (This)->lpVtbl->get_CachedAriaProperties(This,retVal)
16676#define IUIAutomationElement9_get_CachedIsDataValidForForm(This,retVal) (This)->lpVtbl->get_CachedIsDataValidForForm(This,retVal)
16677#define IUIAutomationElement9_get_CachedControllerFor(This,retVal) (This)->lpVtbl->get_CachedControllerFor(This,retVal)
16678#define IUIAutomationElement9_get_CachedDescribedBy(This,retVal) (This)->lpVtbl->get_CachedDescribedBy(This,retVal)
16679#define IUIAutomationElement9_get_CachedFlowsTo(This,retVal) (This)->lpVtbl->get_CachedFlowsTo(This,retVal)
16680#define IUIAutomationElement9_get_CachedProviderDescription(This,retVal) (This)->lpVtbl->get_CachedProviderDescription(This,retVal)
16681#define IUIAutomationElement9_GetClickablePoint(This,clickable,gotClickable) (This)->lpVtbl->GetClickablePoint(This,clickable,gotClickable)
16682/*** IUIAutomationElement2 methods ***/
16683#define IUIAutomationElement9_get_CurrentOptimizeForVisualContent(This,retVal) (This)->lpVtbl->get_CurrentOptimizeForVisualContent(This,retVal)
16684#define IUIAutomationElement9_get_CachedOptimizeForVisualContent(This,retVal) (This)->lpVtbl->get_CachedOptimizeForVisualContent(This,retVal)
16685#define IUIAutomationElement9_get_CurrentLiveSetting(This,retVal) (This)->lpVtbl->get_CurrentLiveSetting(This,retVal)
16686#define IUIAutomationElement9_get_CachedLiveSetting(This,retVal) (This)->lpVtbl->get_CachedLiveSetting(This,retVal)
16687#define IUIAutomationElement9_get_CurrentFlowsFrom(This,retVal) (This)->lpVtbl->get_CurrentFlowsFrom(This,retVal)
16688#define IUIAutomationElement9_get_CachedFlowsFrom(This,retVal) (This)->lpVtbl->get_CachedFlowsFrom(This,retVal)
16689/*** IUIAutomationElement3 methods ***/
16690#define IUIAutomationElement9_ShowContextMenu(This) (This)->lpVtbl->ShowContextMenu(This)
16691#define IUIAutomationElement9_get_CurrentIsPeripheral(This,retVal) (This)->lpVtbl->get_CurrentIsPeripheral(This,retVal)
16692#define IUIAutomationElement9_get_CachedIsPeripheral(This,retVal) (This)->lpVtbl->get_CachedIsPeripheral(This,retVal)
16693/*** IUIAutomationElement4 methods ***/
16694#define IUIAutomationElement9_get_CurrentPositionInSet(This,retVal) (This)->lpVtbl->get_CurrentPositionInSet(This,retVal)
16695#define IUIAutomationElement9_get_CurrentSizeOfSet(This,retVal) (This)->lpVtbl->get_CurrentSizeOfSet(This,retVal)
16696#define IUIAutomationElement9_get_CurrentLevel(This,retVal) (This)->lpVtbl->get_CurrentLevel(This,retVal)
16697#define IUIAutomationElement9_get_CurrentAnnotationTypes(This,retVal) (This)->lpVtbl->get_CurrentAnnotationTypes(This,retVal)
16698#define IUIAutomationElement9_get_CurrentAnnotationObjects(This,retVal) (This)->lpVtbl->get_CurrentAnnotationObjects(This,retVal)
16699#define IUIAutomationElement9_get_CachedPositionInSet(This,retVal) (This)->lpVtbl->get_CachedPositionInSet(This,retVal)
16700#define IUIAutomationElement9_get_CachedSizeOfSet(This,retVal) (This)->lpVtbl->get_CachedSizeOfSet(This,retVal)
16701#define IUIAutomationElement9_get_CachedLevel(This,retVal) (This)->lpVtbl->get_CachedLevel(This,retVal)
16702#define IUIAutomationElement9_get_CachedAnnotationTypes(This,retVal) (This)->lpVtbl->get_CachedAnnotationTypes(This,retVal)
16703#define IUIAutomationElement9_get_CachedAnnotationObjects(This,retVal) (This)->lpVtbl->get_CachedAnnotationObjects(This,retVal)
16704/*** IUIAutomationElement5 methods ***/
16705#define IUIAutomationElement9_get_CurrentLandmarkType(This,retVal) (This)->lpVtbl->get_CurrentLandmarkType(This,retVal)
16706#define IUIAutomationElement9_get_CurrentLocalizedLandmarkType(This,retVal) (This)->lpVtbl->get_CurrentLocalizedLandmarkType(This,retVal)
16707#define IUIAutomationElement9_get_CachedLandmarkType(This,retVal) (This)->lpVtbl->get_CachedLandmarkType(This,retVal)
16708#define IUIAutomationElement9_get_CachedLocalizedLandmarkType(This,retVal) (This)->lpVtbl->get_CachedLocalizedLandmarkType(This,retVal)
16709/*** IUIAutomationElement6 methods ***/
16710#define IUIAutomationElement9_get_CurrentFullDescription(This,retVal) (This)->lpVtbl->get_CurrentFullDescription(This,retVal)
16711#define IUIAutomationElement9_get_CachedFullDescription(This,retVal) (This)->lpVtbl->get_CachedFullDescription(This,retVal)
16712/*** IUIAutomationElement7 methods ***/
16713#define IUIAutomationElement9_FindFirstWithOptions(This,scope,condition,traversalOptions,root,found) (This)->lpVtbl->FindFirstWithOptions(This,scope,condition,traversalOptions,root,found)
16714#define IUIAutomationElement9_FindAllWithOptions(This,scope,condition,traversalOptions,root,found) (This)->lpVtbl->FindAllWithOptions(This,scope,condition,traversalOptions,root,found)
16715#define IUIAutomationElement9_FindFirstWithOptionsBuildCache(This,scope,condition,cacheRequest,traversalOptions,root,found) (This)->lpVtbl->FindFirstWithOptionsBuildCache(This,scope,condition,cacheRequest,traversalOptions,root,found)
16716#define IUIAutomationElement9_FindAllWithOptionsBuildCache(This,scope,condition,cacheRequest,traversalOptions,root,found) (This)->lpVtbl->FindAllWithOptionsBuildCache(This,scope,condition,cacheRequest,traversalOptions,root,found)
16717#define IUIAutomationElement9_GetCurrentMetadataValue(This,targetId,metadataId,returnVal) (This)->lpVtbl->GetCurrentMetadataValue(This,targetId,metadataId,returnVal)
16718/*** IUIAutomationElement8 methods ***/
16719#define IUIAutomationElement9_get_CurrentHeadingLevel(This,retVal) (This)->lpVtbl->get_CurrentHeadingLevel(This,retVal)
16720#define IUIAutomationElement9_get_CachedHeadingLevel(This,retVal) (This)->lpVtbl->get_CachedHeadingLevel(This,retVal)
16721/*** IUIAutomationElement9 methods ***/
16722#define IUIAutomationElement9_get_CurrentIsDialog(This,retVal) (This)->lpVtbl->get_CurrentIsDialog(This,retVal)
16723#define IUIAutomationElement9_get_CachedIsDialog(This,retVal) (This)->lpVtbl->get_CachedIsDialog(This,retVal)
16724#else
16725/*** IUnknown methods ***/
16726static inline HRESULT IUIAutomationElement9_QueryInterface(IUIAutomationElement9* This,REFIID riid,void **ppvObject) {
16727    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
16728}
16729static inline ULONG IUIAutomationElement9_AddRef(IUIAutomationElement9* This) {
16730    return This->lpVtbl->AddRef(This);
16731}
16732static inline ULONG IUIAutomationElement9_Release(IUIAutomationElement9* This) {
16733    return This->lpVtbl->Release(This);
16734}
16735/*** IUIAutomationElement methods ***/
16736static inline HRESULT IUIAutomationElement9_SetFocus(IUIAutomationElement9* This) {
16737    return This->lpVtbl->SetFocus(This);
16738}
16739static inline HRESULT IUIAutomationElement9_GetRuntimeId(IUIAutomationElement9* This,SAFEARRAY **runtimeId) {
16740    return This->lpVtbl->GetRuntimeId(This,runtimeId);
16741}
16742static inline HRESULT IUIAutomationElement9_FindFirst(IUIAutomationElement9* This,enum TreeScope scope,IUIAutomationCondition *condition,IUIAutomationElement **found) {
16743    return This->lpVtbl->FindFirst(This,scope,condition,found);
16744}
16745static inline HRESULT IUIAutomationElement9_FindAll(IUIAutomationElement9* This,enum TreeScope scope,IUIAutomationCondition *condition,IUIAutomationElementArray **found) {
16746    return This->lpVtbl->FindAll(This,scope,condition,found);
16747}
16748static inline HRESULT IUIAutomationElement9_FindFirstBuildCache(IUIAutomationElement9* This,enum TreeScope scope,IUIAutomationCondition *condition,IUIAutomationCacheRequest *cacheRequest,IUIAutomationElement **found) {
16749    return This->lpVtbl->FindFirstBuildCache(This,scope,condition,cacheRequest,found);
16750}
16751static inline HRESULT IUIAutomationElement9_FindAllBuildCache(IUIAutomationElement9* This,enum TreeScope scope,IUIAutomationCondition *condition,IUIAutomationCacheRequest *cacheRequest,IUIAutomationElementArray **found) {
16752    return This->lpVtbl->FindAllBuildCache(This,scope,condition,cacheRequest,found);
16753}
16754static inline HRESULT IUIAutomationElement9_BuildUpdatedCache(IUIAutomationElement9* This,IUIAutomationCacheRequest *cacheRequest,IUIAutomationElement **updatedElement) {
16755    return This->lpVtbl->BuildUpdatedCache(This,cacheRequest,updatedElement);
16756}
16757static inline HRESULT IUIAutomationElement9_GetCurrentPropertyValue(IUIAutomationElement9* This,PROPERTYID propertyId,VARIANT *retVal) {
16758    return This->lpVtbl->GetCurrentPropertyValue(This,propertyId,retVal);
16759}
16760static inline HRESULT IUIAutomationElement9_GetCurrentPropertyValueEx(IUIAutomationElement9* This,PROPERTYID propertyId,WINBOOL ignoreDefaultValue,VARIANT *retVal) {
16761    return This->lpVtbl->GetCurrentPropertyValueEx(This,propertyId,ignoreDefaultValue,retVal);
16762}
16763static inline HRESULT IUIAutomationElement9_GetCachedPropertyValue(IUIAutomationElement9* This,PROPERTYID propertyId,VARIANT *retVal) {
16764    return This->lpVtbl->GetCachedPropertyValue(This,propertyId,retVal);
16765}
16766static inline HRESULT IUIAutomationElement9_GetCachedPropertyValueEx(IUIAutomationElement9* This,PROPERTYID propertyId,WINBOOL ignoreDefaultValue,VARIANT *retVal) {
16767    return This->lpVtbl->GetCachedPropertyValueEx(This,propertyId,ignoreDefaultValue,retVal);
16768}
16769static inline HRESULT IUIAutomationElement9_GetCurrentPatternAs(IUIAutomationElement9* This,PATTERNID patternId,REFIID riid,void **patternObject) {
16770    return This->lpVtbl->GetCurrentPatternAs(This,patternId,riid,patternObject);
16771}
16772static inline HRESULT IUIAutomationElement9_GetCachedPatternAs(IUIAutomationElement9* This,PATTERNID patternId,REFIID riid,void **patternObject) {
16773    return This->lpVtbl->GetCachedPatternAs(This,patternId,riid,patternObject);
16774}
16775static inline HRESULT IUIAutomationElement9_GetCurrentPattern(IUIAutomationElement9* This,PATTERNID patternId,IUnknown **patternObject) {
16776    return This->lpVtbl->GetCurrentPattern(This,patternId,patternObject);
16777}
16778static inline HRESULT IUIAutomationElement9_GetCachedPattern(IUIAutomationElement9* This,PATTERNID patternId,IUnknown **patternObject) {
16779    return This->lpVtbl->GetCachedPattern(This,patternId,patternObject);
16780}
16781static inline HRESULT IUIAutomationElement9_GetCachedParent(IUIAutomationElement9* This,IUIAutomationElement **parent) {
16782    return This->lpVtbl->GetCachedParent(This,parent);
16783}
16784static inline HRESULT IUIAutomationElement9_GetCachedChildren(IUIAutomationElement9* This,IUIAutomationElementArray **children) {
16785    return This->lpVtbl->GetCachedChildren(This,children);
16786}
16787static inline HRESULT IUIAutomationElement9_get_CurrentProcessId(IUIAutomationElement9* This,int *retVal) {
16788    return This->lpVtbl->get_CurrentProcessId(This,retVal);
16789}
16790static inline HRESULT IUIAutomationElement9_get_CurrentControlType(IUIAutomationElement9* This,CONTROLTYPEID *retVal) {
16791    return This->lpVtbl->get_CurrentControlType(This,retVal);
16792}
16793static inline HRESULT IUIAutomationElement9_get_CurrentLocalizedControlType(IUIAutomationElement9* This,BSTR *retVal) {
16794    return This->lpVtbl->get_CurrentLocalizedControlType(This,retVal);
16795}
16796static inline HRESULT IUIAutomationElement9_get_CurrentName(IUIAutomationElement9* This,BSTR *retVal) {
16797    return This->lpVtbl->get_CurrentName(This,retVal);
16798}
16799static inline HRESULT IUIAutomationElement9_get_CurrentAcceleratorKey(IUIAutomationElement9* This,BSTR *retVal) {
16800    return This->lpVtbl->get_CurrentAcceleratorKey(This,retVal);
16801}
16802static inline HRESULT IUIAutomationElement9_get_CurrentAccessKey(IUIAutomationElement9* This,BSTR *retVal) {
16803    return This->lpVtbl->get_CurrentAccessKey(This,retVal);
16804}
16805static inline HRESULT IUIAutomationElement9_get_CurrentHasKeyboardFocus(IUIAutomationElement9* This,WINBOOL *retVal) {
16806    return This->lpVtbl->get_CurrentHasKeyboardFocus(This,retVal);
16807}
16808static inline HRESULT IUIAutomationElement9_get_CurrentIsKeyboardFocusable(IUIAutomationElement9* This,WINBOOL *retVal) {
16809    return This->lpVtbl->get_CurrentIsKeyboardFocusable(This,retVal);
16810}
16811static inline HRESULT IUIAutomationElement9_get_CurrentIsEnabled(IUIAutomationElement9* This,WINBOOL *retVal) {
16812    return This->lpVtbl->get_CurrentIsEnabled(This,retVal);
16813}
16814static inline HRESULT IUIAutomationElement9_get_CurrentAutomationId(IUIAutomationElement9* This,BSTR *retVal) {
16815    return This->lpVtbl->get_CurrentAutomationId(This,retVal);
16816}
16817static inline HRESULT IUIAutomationElement9_get_CurrentClassName(IUIAutomationElement9* This,BSTR *retVal) {
16818    return This->lpVtbl->get_CurrentClassName(This,retVal);
16819}
16820static inline HRESULT IUIAutomationElement9_get_CurrentHelpText(IUIAutomationElement9* This,BSTR *retVal) {
16821    return This->lpVtbl->get_CurrentHelpText(This,retVal);
16822}
16823static inline HRESULT IUIAutomationElement9_get_CurrentCulture(IUIAutomationElement9* This,int *retVal) {
16824    return This->lpVtbl->get_CurrentCulture(This,retVal);
16825}
16826static inline HRESULT IUIAutomationElement9_get_CurrentIsControlElement(IUIAutomationElement9* This,WINBOOL *retVal) {
16827    return This->lpVtbl->get_CurrentIsControlElement(This,retVal);
16828}
16829static inline HRESULT IUIAutomationElement9_get_CurrentIsContentElement(IUIAutomationElement9* This,WINBOOL *retVal) {
16830    return This->lpVtbl->get_CurrentIsContentElement(This,retVal);
16831}
16832static inline HRESULT IUIAutomationElement9_get_CurrentIsPassword(IUIAutomationElement9* This,WINBOOL *retVal) {
16833    return This->lpVtbl->get_CurrentIsPassword(This,retVal);
16834}
16835static inline HRESULT IUIAutomationElement9_get_CurrentNativeWindowHandle(IUIAutomationElement9* This,UIA_HWND *retVal) {
16836    return This->lpVtbl->get_CurrentNativeWindowHandle(This,retVal);
16837}
16838static inline HRESULT IUIAutomationElement9_get_CurrentItemType(IUIAutomationElement9* This,BSTR *retVal) {
16839    return This->lpVtbl->get_CurrentItemType(This,retVal);
16840}
16841static inline HRESULT IUIAutomationElement9_get_CurrentIsOffscreen(IUIAutomationElement9* This,WINBOOL *retVal) {
16842    return This->lpVtbl->get_CurrentIsOffscreen(This,retVal);
16843}
16844static inline HRESULT IUIAutomationElement9_get_CurrentOrientation(IUIAutomationElement9* This,enum OrientationType *retVal) {
16845    return This->lpVtbl->get_CurrentOrientation(This,retVal);
16846}
16847static inline HRESULT IUIAutomationElement9_get_CurrentFrameworkId(IUIAutomationElement9* This,BSTR *retVal) {
16848    return This->lpVtbl->get_CurrentFrameworkId(This,retVal);
16849}
16850static inline HRESULT IUIAutomationElement9_get_CurrentIsRequiredForForm(IUIAutomationElement9* This,WINBOOL *retVal) {
16851    return This->lpVtbl->get_CurrentIsRequiredForForm(This,retVal);
16852}
16853static inline HRESULT IUIAutomationElement9_get_CurrentItemStatus(IUIAutomationElement9* This,BSTR *retVal) {
16854    return This->lpVtbl->get_CurrentItemStatus(This,retVal);
16855}
16856static inline HRESULT IUIAutomationElement9_get_CurrentBoundingRectangle(IUIAutomationElement9* This,RECT *retVal) {
16857    return This->lpVtbl->get_CurrentBoundingRectangle(This,retVal);
16858}
16859static inline HRESULT IUIAutomationElement9_get_CurrentLabeledBy(IUIAutomationElement9* This,IUIAutomationElement **retVal) {
16860    return This->lpVtbl->get_CurrentLabeledBy(This,retVal);
16861}
16862static inline HRESULT IUIAutomationElement9_get_CurrentAriaRole(IUIAutomationElement9* This,BSTR *retVal) {
16863    return This->lpVtbl->get_CurrentAriaRole(This,retVal);
16864}
16865static inline HRESULT IUIAutomationElement9_get_CurrentAriaProperties(IUIAutomationElement9* This,BSTR *retVal) {
16866    return This->lpVtbl->get_CurrentAriaProperties(This,retVal);
16867}
16868static inline HRESULT IUIAutomationElement9_get_CurrentIsDataValidForForm(IUIAutomationElement9* This,WINBOOL *retVal) {
16869    return This->lpVtbl->get_CurrentIsDataValidForForm(This,retVal);
16870}
16871static inline HRESULT IUIAutomationElement9_get_CurrentControllerFor(IUIAutomationElement9* This,IUIAutomationElementArray **retVal) {
16872    return This->lpVtbl->get_CurrentControllerFor(This,retVal);
16873}
16874static inline HRESULT IUIAutomationElement9_get_CurrentDescribedBy(IUIAutomationElement9* This,IUIAutomationElementArray **retVal) {
16875    return This->lpVtbl->get_CurrentDescribedBy(This,retVal);
16876}
16877static inline HRESULT IUIAutomationElement9_get_CurrentFlowsTo(IUIAutomationElement9* This,IUIAutomationElementArray **retVal) {
16878    return This->lpVtbl->get_CurrentFlowsTo(This,retVal);
16879}
16880static inline HRESULT IUIAutomationElement9_get_CurrentProviderDescription(IUIAutomationElement9* This,BSTR *retVal) {
16881    return This->lpVtbl->get_CurrentProviderDescription(This,retVal);
16882}
16883static inline HRESULT IUIAutomationElement9_get_CachedProcessId(IUIAutomationElement9* This,int *retVal) {
16884    return This->lpVtbl->get_CachedProcessId(This,retVal);
16885}
16886static inline HRESULT IUIAutomationElement9_get_CachedControlType(IUIAutomationElement9* This,CONTROLTYPEID *retVal) {
16887    return This->lpVtbl->get_CachedControlType(This,retVal);
16888}
16889static inline HRESULT IUIAutomationElement9_get_CachedLocalizedControlType(IUIAutomationElement9* This,BSTR *retVal) {
16890    return This->lpVtbl->get_CachedLocalizedControlType(This,retVal);
16891}
16892static inline HRESULT IUIAutomationElement9_get_CachedName(IUIAutomationElement9* This,BSTR *retVal) {
16893    return This->lpVtbl->get_CachedName(This,retVal);
16894}
16895static inline HRESULT IUIAutomationElement9_get_CachedAcceleratorKey(IUIAutomationElement9* This,BSTR *retVal) {
16896    return This->lpVtbl->get_CachedAcceleratorKey(This,retVal);
16897}
16898static inline HRESULT IUIAutomationElement9_get_CachedAccessKey(IUIAutomationElement9* This,BSTR *retVal) {
16899    return This->lpVtbl->get_CachedAccessKey(This,retVal);
16900}
16901static inline HRESULT IUIAutomationElement9_get_CachedHasKeyboardFocus(IUIAutomationElement9* This,WINBOOL *retVal) {
16902    return This->lpVtbl->get_CachedHasKeyboardFocus(This,retVal);
16903}
16904static inline HRESULT IUIAutomationElement9_get_CachedIsKeyboardFocusable(IUIAutomationElement9* This,WINBOOL *retVal) {
16905    return This->lpVtbl->get_CachedIsKeyboardFocusable(This,retVal);
16906}
16907static inline HRESULT IUIAutomationElement9_get_CachedIsEnabled(IUIAutomationElement9* This,WINBOOL *retVal) {
16908    return This->lpVtbl->get_CachedIsEnabled(This,retVal);
16909}
16910static inline HRESULT IUIAutomationElement9_get_CachedAutomationId(IUIAutomationElement9* This,BSTR *retVal) {
16911    return This->lpVtbl->get_CachedAutomationId(This,retVal);
16912}
16913static inline HRESULT IUIAutomationElement9_get_CachedClassName(IUIAutomationElement9* This,BSTR *retVal) {
16914    return This->lpVtbl->get_CachedClassName(This,retVal);
16915}
16916static inline HRESULT IUIAutomationElement9_get_CachedHelpText(IUIAutomationElement9* This,BSTR *retVal) {
16917    return This->lpVtbl->get_CachedHelpText(This,retVal);
16918}
16919static inline HRESULT IUIAutomationElement9_get_CachedCulture(IUIAutomationElement9* This,int *retVal) {
16920    return This->lpVtbl->get_CachedCulture(This,retVal);
16921}
16922static inline HRESULT IUIAutomationElement9_get_CachedIsControlElement(IUIAutomationElement9* This,WINBOOL *retVal) {
16923    return This->lpVtbl->get_CachedIsControlElement(This,retVal);
16924}
16925static inline HRESULT IUIAutomationElement9_get_CachedIsContentElement(IUIAutomationElement9* This,WINBOOL *retVal) {
16926    return This->lpVtbl->get_CachedIsContentElement(This,retVal);
16927}
16928static inline HRESULT IUIAutomationElement9_get_CachedIsPassword(IUIAutomationElement9* This,WINBOOL *retVal) {
16929    return This->lpVtbl->get_CachedIsPassword(This,retVal);
16930}
16931static inline HRESULT IUIAutomationElement9_get_CachedNativeWindowHandle(IUIAutomationElement9* This,UIA_HWND *retVal) {
16932    return This->lpVtbl->get_CachedNativeWindowHandle(This,retVal);
16933}
16934static inline HRESULT IUIAutomationElement9_get_CachedItemType(IUIAutomationElement9* This,BSTR *retVal) {
16935    return This->lpVtbl->get_CachedItemType(This,retVal);
16936}
16937static inline HRESULT IUIAutomationElement9_get_CachedIsOffscreen(IUIAutomationElement9* This,WINBOOL *retVal) {
16938    return This->lpVtbl->get_CachedIsOffscreen(This,retVal);
16939}
16940static inline HRESULT IUIAutomationElement9_get_CachedOrientation(IUIAutomationElement9* This,enum OrientationType *retVal) {
16941    return This->lpVtbl->get_CachedOrientation(This,retVal);
16942}
16943static inline HRESULT IUIAutomationElement9_get_CachedFrameworkId(IUIAutomationElement9* This,BSTR *retVal) {
16944    return This->lpVtbl->get_CachedFrameworkId(This,retVal);
16945}
16946static inline HRESULT IUIAutomationElement9_get_CachedIsRequiredForForm(IUIAutomationElement9* This,WINBOOL *retVal) {
16947    return This->lpVtbl->get_CachedIsRequiredForForm(This,retVal);
16948}
16949static inline HRESULT IUIAutomationElement9_get_CachedItemStatus(IUIAutomationElement9* This,BSTR *retVal) {
16950    return This->lpVtbl->get_CachedItemStatus(This,retVal);
16951}
16952static inline HRESULT IUIAutomationElement9_get_CachedBoundingRectangle(IUIAutomationElement9* This,RECT *retVal) {
16953    return This->lpVtbl->get_CachedBoundingRectangle(This,retVal);
16954}
16955static inline HRESULT IUIAutomationElement9_get_CachedLabeledBy(IUIAutomationElement9* This,IUIAutomationElement **retVal) {
16956    return This->lpVtbl->get_CachedLabeledBy(This,retVal);
16957}
16958static inline HRESULT IUIAutomationElement9_get_CachedAriaRole(IUIAutomationElement9* This,BSTR *retVal) {
16959    return This->lpVtbl->get_CachedAriaRole(This,retVal);
16960}
16961static inline HRESULT IUIAutomationElement9_get_CachedAriaProperties(IUIAutomationElement9* This,BSTR *retVal) {
16962    return This->lpVtbl->get_CachedAriaProperties(This,retVal);
16963}
16964static inline HRESULT IUIAutomationElement9_get_CachedIsDataValidForForm(IUIAutomationElement9* This,WINBOOL *retVal) {
16965    return This->lpVtbl->get_CachedIsDataValidForForm(This,retVal);
16966}
16967static inline HRESULT IUIAutomationElement9_get_CachedControllerFor(IUIAutomationElement9* This,IUIAutomationElementArray **retVal) {
16968    return This->lpVtbl->get_CachedControllerFor(This,retVal);
16969}
16970static inline HRESULT IUIAutomationElement9_get_CachedDescribedBy(IUIAutomationElement9* This,IUIAutomationElementArray **retVal) {
16971    return This->lpVtbl->get_CachedDescribedBy(This,retVal);
16972}
16973static inline HRESULT IUIAutomationElement9_get_CachedFlowsTo(IUIAutomationElement9* This,IUIAutomationElementArray **retVal) {
16974    return This->lpVtbl->get_CachedFlowsTo(This,retVal);
16975}
16976static inline HRESULT IUIAutomationElement9_get_CachedProviderDescription(IUIAutomationElement9* This,BSTR *retVal) {
16977    return This->lpVtbl->get_CachedProviderDescription(This,retVal);
16978}
16979static inline HRESULT IUIAutomationElement9_GetClickablePoint(IUIAutomationElement9* This,POINT *clickable,WINBOOL *gotClickable) {
16980    return This->lpVtbl->GetClickablePoint(This,clickable,gotClickable);
16981}
16982/*** IUIAutomationElement2 methods ***/
16983static inline HRESULT IUIAutomationElement9_get_CurrentOptimizeForVisualContent(IUIAutomationElement9* This,WINBOOL *retVal) {
16984    return This->lpVtbl->get_CurrentOptimizeForVisualContent(This,retVal);
16985}
16986static inline HRESULT IUIAutomationElement9_get_CachedOptimizeForVisualContent(IUIAutomationElement9* This,WINBOOL *retVal) {
16987    return This->lpVtbl->get_CachedOptimizeForVisualContent(This,retVal);
16988}
16989static inline HRESULT IUIAutomationElement9_get_CurrentLiveSetting(IUIAutomationElement9* This,enum LiveSetting *retVal) {
16990    return This->lpVtbl->get_CurrentLiveSetting(This,retVal);
16991}
16992static inline HRESULT IUIAutomationElement9_get_CachedLiveSetting(IUIAutomationElement9* This,enum LiveSetting *retVal) {
16993    return This->lpVtbl->get_CachedLiveSetting(This,retVal);
16994}
16995static inline HRESULT IUIAutomationElement9_get_CurrentFlowsFrom(IUIAutomationElement9* This,IUIAutomationElementArray **retVal) {
16996    return This->lpVtbl->get_CurrentFlowsFrom(This,retVal);
16997}
16998static inline HRESULT IUIAutomationElement9_get_CachedFlowsFrom(IUIAutomationElement9* This,IUIAutomationElementArray **retVal) {
16999    return This->lpVtbl->get_CachedFlowsFrom(This,retVal);
17000}
17001/*** IUIAutomationElement3 methods ***/
17002static inline HRESULT IUIAutomationElement9_ShowContextMenu(IUIAutomationElement9* This) {
17003    return This->lpVtbl->ShowContextMenu(This);
17004}
17005static inline HRESULT IUIAutomationElement9_get_CurrentIsPeripheral(IUIAutomationElement9* This,WINBOOL *retVal) {
17006    return This->lpVtbl->get_CurrentIsPeripheral(This,retVal);
17007}
17008static inline HRESULT IUIAutomationElement9_get_CachedIsPeripheral(IUIAutomationElement9* This,WINBOOL *retVal) {
17009    return This->lpVtbl->get_CachedIsPeripheral(This,retVal);
17010}
17011/*** IUIAutomationElement4 methods ***/
17012static inline HRESULT IUIAutomationElement9_get_CurrentPositionInSet(IUIAutomationElement9* This,int *retVal) {
17013    return This->lpVtbl->get_CurrentPositionInSet(This,retVal);
17014}
17015static inline HRESULT IUIAutomationElement9_get_CurrentSizeOfSet(IUIAutomationElement9* This,int *retVal) {
17016    return This->lpVtbl->get_CurrentSizeOfSet(This,retVal);
17017}
17018static inline HRESULT IUIAutomationElement9_get_CurrentLevel(IUIAutomationElement9* This,int *retVal) {
17019    return This->lpVtbl->get_CurrentLevel(This,retVal);
17020}
17021static inline HRESULT IUIAutomationElement9_get_CurrentAnnotationTypes(IUIAutomationElement9* This,SAFEARRAY **retVal) {
17022    return This->lpVtbl->get_CurrentAnnotationTypes(This,retVal);
17023}
17024static inline HRESULT IUIAutomationElement9_get_CurrentAnnotationObjects(IUIAutomationElement9* This,IUIAutomationElementArray **retVal) {
17025    return This->lpVtbl->get_CurrentAnnotationObjects(This,retVal);
17026}
17027static inline HRESULT IUIAutomationElement9_get_CachedPositionInSet(IUIAutomationElement9* This,int *retVal) {
17028    return This->lpVtbl->get_CachedPositionInSet(This,retVal);
17029}
17030static inline HRESULT IUIAutomationElement9_get_CachedSizeOfSet(IUIAutomationElement9* This,int *retVal) {
17031    return This->lpVtbl->get_CachedSizeOfSet(This,retVal);
17032}
17033static inline HRESULT IUIAutomationElement9_get_CachedLevel(IUIAutomationElement9* This,int *retVal) {
17034    return This->lpVtbl->get_CachedLevel(This,retVal);
17035}
17036static inline HRESULT IUIAutomationElement9_get_CachedAnnotationTypes(IUIAutomationElement9* This,SAFEARRAY **retVal) {
17037    return This->lpVtbl->get_CachedAnnotationTypes(This,retVal);
17038}
17039static inline HRESULT IUIAutomationElement9_get_CachedAnnotationObjects(IUIAutomationElement9* This,IUIAutomationElementArray **retVal) {
17040    return This->lpVtbl->get_CachedAnnotationObjects(This,retVal);
17041}
17042/*** IUIAutomationElement5 methods ***/
17043static inline HRESULT IUIAutomationElement9_get_CurrentLandmarkType(IUIAutomationElement9* This,LANDMARKTYPEID *retVal) {
17044    return This->lpVtbl->get_CurrentLandmarkType(This,retVal);
17045}
17046static inline HRESULT IUIAutomationElement9_get_CurrentLocalizedLandmarkType(IUIAutomationElement9* This,BSTR *retVal) {
17047    return This->lpVtbl->get_CurrentLocalizedLandmarkType(This,retVal);
17048}
17049static inline HRESULT IUIAutomationElement9_get_CachedLandmarkType(IUIAutomationElement9* This,LANDMARKTYPEID *retVal) {
17050    return This->lpVtbl->get_CachedLandmarkType(This,retVal);
17051}
17052static inline HRESULT IUIAutomationElement9_get_CachedLocalizedLandmarkType(IUIAutomationElement9* This,BSTR *retVal) {
17053    return This->lpVtbl->get_CachedLocalizedLandmarkType(This,retVal);
17054}
17055/*** IUIAutomationElement6 methods ***/
17056static inline HRESULT IUIAutomationElement9_get_CurrentFullDescription(IUIAutomationElement9* This,BSTR *retVal) {
17057    return This->lpVtbl->get_CurrentFullDescription(This,retVal);
17058}
17059static inline HRESULT IUIAutomationElement9_get_CachedFullDescription(IUIAutomationElement9* This,BSTR *retVal) {
17060    return This->lpVtbl->get_CachedFullDescription(This,retVal);
17061}
17062/*** IUIAutomationElement7 methods ***/
17063static inline HRESULT IUIAutomationElement9_FindFirstWithOptions(IUIAutomationElement9* This,enum TreeScope scope,IUIAutomationCondition *condition,enum TreeTraversalOptions traversalOptions,IUIAutomationElement *root,IUIAutomationElement **found) {
17064    return This->lpVtbl->FindFirstWithOptions(This,scope,condition,traversalOptions,root,found);
17065}
17066static inline HRESULT IUIAutomationElement9_FindAllWithOptions(IUIAutomationElement9* This,enum TreeScope scope,IUIAutomationCondition *condition,enum TreeTraversalOptions traversalOptions,IUIAutomationElement *root,IUIAutomationElementArray **found) {
17067    return This->lpVtbl->FindAllWithOptions(This,scope,condition,traversalOptions,root,found);
17068}
17069static inline HRESULT IUIAutomationElement9_FindFirstWithOptionsBuildCache(IUIAutomationElement9* This,enum TreeScope scope,IUIAutomationCondition *condition,IUIAutomationCacheRequest *cacheRequest,enum TreeTraversalOptions traversalOptions,IUIAutomationElement *root,IUIAutomationElement **found) {
17070    return This->lpVtbl->FindFirstWithOptionsBuildCache(This,scope,condition,cacheRequest,traversalOptions,root,found);
17071}
17072static inline HRESULT IUIAutomationElement9_FindAllWithOptionsBuildCache(IUIAutomationElement9* This,enum TreeScope scope,IUIAutomationCondition *condition,IUIAutomationCacheRequest *cacheRequest,enum TreeTraversalOptions traversalOptions,IUIAutomationElement *root,IUIAutomationElementArray **found) {
17073    return This->lpVtbl->FindAllWithOptionsBuildCache(This,scope,condition,cacheRequest,traversalOptions,root,found);
17074}
17075static inline HRESULT IUIAutomationElement9_GetCurrentMetadataValue(IUIAutomationElement9* This,int targetId,METADATAID metadataId,VARIANT *returnVal) {
17076    return This->lpVtbl->GetCurrentMetadataValue(This,targetId,metadataId,returnVal);
17077}
17078/*** IUIAutomationElement8 methods ***/
17079static inline HRESULT IUIAutomationElement9_get_CurrentHeadingLevel(IUIAutomationElement9* This,HEADINGLEVELID *retVal) {
17080    return This->lpVtbl->get_CurrentHeadingLevel(This,retVal);
17081}
17082static inline HRESULT IUIAutomationElement9_get_CachedHeadingLevel(IUIAutomationElement9* This,HEADINGLEVELID *retVal) {
17083    return This->lpVtbl->get_CachedHeadingLevel(This,retVal);
17084}
17085/*** IUIAutomationElement9 methods ***/
17086static inline HRESULT IUIAutomationElement9_get_CurrentIsDialog(IUIAutomationElement9* This,WINBOOL *retVal) {
17087    return This->lpVtbl->get_CurrentIsDialog(This,retVal);
17088}
17089static inline HRESULT IUIAutomationElement9_get_CachedIsDialog(IUIAutomationElement9* This,WINBOOL *retVal) {
17090    return This->lpVtbl->get_CachedIsDialog(This,retVal);
17091}
17092#endif
17093#endif
17094
17095#endif
17096
17097
17098#endif  /* __IUIAutomationElement9_INTERFACE_DEFINED__ */
17099
17100/*****************************************************************************
17101 * IUIAutomationElementArray interface
17102 */
17103#ifndef __IUIAutomationElementArray_INTERFACE_DEFINED__
17104#define __IUIAutomationElementArray_INTERFACE_DEFINED__
17105
17106DEFINE_GUID(IID_IUIAutomationElementArray, 0x14314595, 0xb4bc, 0x4055, 0x95,0xf2, 0x58,0xf2,0xe4,0x2c,0x98,0x55);
17107#if defined(__cplusplus) && !defined(CINTERFACE)
17108MIDL_INTERFACE("14314595-b4bc-4055-95f2-58f2e42c9855")
17109IUIAutomationElementArray : public IUnknown
17110{
17111    virtual HRESULT STDMETHODCALLTYPE get_Length(
17112        int *length) = 0;
17113
17114    virtual HRESULT STDMETHODCALLTYPE GetElement(
17115        int index,
17116        IUIAutomationElement **element) = 0;
17117
17118};
17119#ifdef __CRT_UUID_DECL
17120__CRT_UUID_DECL(IUIAutomationElementArray, 0x14314595, 0xb4bc, 0x4055, 0x95,0xf2, 0x58,0xf2,0xe4,0x2c,0x98,0x55)
17121#endif
17122#else
17123typedef struct IUIAutomationElementArrayVtbl {
17124    BEGIN_INTERFACE
17125
17126    /*** IUnknown methods ***/
17127    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
17128        IUIAutomationElementArray *This,
17129        REFIID riid,
17130        void **ppvObject);
17131
17132    ULONG (STDMETHODCALLTYPE *AddRef)(
17133        IUIAutomationElementArray *This);
17134
17135    ULONG (STDMETHODCALLTYPE *Release)(
17136        IUIAutomationElementArray *This);
17137
17138    /*** IUIAutomationElementArray methods ***/
17139    HRESULT (STDMETHODCALLTYPE *get_Length)(
17140        IUIAutomationElementArray *This,
17141        int *length);
17142
17143    HRESULT (STDMETHODCALLTYPE *GetElement)(
17144        IUIAutomationElementArray *This,
17145        int index,
17146        IUIAutomationElement **element);
17147
17148    END_INTERFACE
17149} IUIAutomationElementArrayVtbl;
17150
17151interface IUIAutomationElementArray {
17152    CONST_VTBL IUIAutomationElementArrayVtbl* lpVtbl;
17153};
17154
17155#ifdef COBJMACROS
17156#ifndef WIDL_C_INLINE_WRAPPERS
17157/*** IUnknown methods ***/
17158#define IUIAutomationElementArray_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
17159#define IUIAutomationElementArray_AddRef(This) (This)->lpVtbl->AddRef(This)
17160#define IUIAutomationElementArray_Release(This) (This)->lpVtbl->Release(This)
17161/*** IUIAutomationElementArray methods ***/
17162#define IUIAutomationElementArray_get_Length(This,length) (This)->lpVtbl->get_Length(This,length)
17163#define IUIAutomationElementArray_GetElement(This,index,element) (This)->lpVtbl->GetElement(This,index,element)
17164#else
17165/*** IUnknown methods ***/
17166static inline HRESULT IUIAutomationElementArray_QueryInterface(IUIAutomationElementArray* This,REFIID riid,void **ppvObject) {
17167    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
17168}
17169static inline ULONG IUIAutomationElementArray_AddRef(IUIAutomationElementArray* This) {
17170    return This->lpVtbl->AddRef(This);
17171}
17172static inline ULONG IUIAutomationElementArray_Release(IUIAutomationElementArray* This) {
17173    return This->lpVtbl->Release(This);
17174}
17175/*** IUIAutomationElementArray methods ***/
17176static inline HRESULT IUIAutomationElementArray_get_Length(IUIAutomationElementArray* This,int *length) {
17177    return This->lpVtbl->get_Length(This,length);
17178}
17179static inline HRESULT IUIAutomationElementArray_GetElement(IUIAutomationElementArray* This,int index,IUIAutomationElement **element) {
17180    return This->lpVtbl->GetElement(This,index,element);
17181}
17182#endif
17183#endif
17184
17185#endif
17186
17187
17188#endif  /* __IUIAutomationElementArray_INTERFACE_DEFINED__ */
17189
17190/*****************************************************************************
17191 * IUIAutomationProxyFactory interface
17192 */
17193#ifndef __IUIAutomationProxyFactory_INTERFACE_DEFINED__
17194#define __IUIAutomationProxyFactory_INTERFACE_DEFINED__
17195
17196DEFINE_GUID(IID_IUIAutomationProxyFactory, 0x85b94ecd, 0x849d, 0x42b6, 0xb9,0x4d, 0xd6,0xdb,0x23,0xfd,0xf5,0xa4);
17197#if defined(__cplusplus) && !defined(CINTERFACE)
17198MIDL_INTERFACE("85b94ecd-849d-42b6-b94d-d6db23fdf5a4")
17199IUIAutomationProxyFactory : public IUnknown
17200{
17201    virtual HRESULT STDMETHODCALLTYPE CreateProvider(
17202        UIA_HWND hwnd,
17203        LONG idObject,
17204        LONG idChild,
17205        IRawElementProviderSimple **provider) = 0;
17206
17207    virtual HRESULT STDMETHODCALLTYPE get_ProxyFactoryId(
17208        BSTR *factoryId) = 0;
17209
17210};
17211#ifdef __CRT_UUID_DECL
17212__CRT_UUID_DECL(IUIAutomationProxyFactory, 0x85b94ecd, 0x849d, 0x42b6, 0xb9,0x4d, 0xd6,0xdb,0x23,0xfd,0xf5,0xa4)
17213#endif
17214#else
17215typedef struct IUIAutomationProxyFactoryVtbl {
17216    BEGIN_INTERFACE
17217
17218    /*** IUnknown methods ***/
17219    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
17220        IUIAutomationProxyFactory *This,
17221        REFIID riid,
17222        void **ppvObject);
17223
17224    ULONG (STDMETHODCALLTYPE *AddRef)(
17225        IUIAutomationProxyFactory *This);
17226
17227    ULONG (STDMETHODCALLTYPE *Release)(
17228        IUIAutomationProxyFactory *This);
17229
17230    /*** IUIAutomationProxyFactory methods ***/
17231    HRESULT (STDMETHODCALLTYPE *CreateProvider)(
17232        IUIAutomationProxyFactory *This,
17233        UIA_HWND hwnd,
17234        LONG idObject,
17235        LONG idChild,
17236        IRawElementProviderSimple **provider);
17237
17238    HRESULT (STDMETHODCALLTYPE *get_ProxyFactoryId)(
17239        IUIAutomationProxyFactory *This,
17240        BSTR *factoryId);
17241
17242    END_INTERFACE
17243} IUIAutomationProxyFactoryVtbl;
17244
17245interface IUIAutomationProxyFactory {
17246    CONST_VTBL IUIAutomationProxyFactoryVtbl* lpVtbl;
17247};
17248
17249#ifdef COBJMACROS
17250#ifndef WIDL_C_INLINE_WRAPPERS
17251/*** IUnknown methods ***/
17252#define IUIAutomationProxyFactory_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
17253#define IUIAutomationProxyFactory_AddRef(This) (This)->lpVtbl->AddRef(This)
17254#define IUIAutomationProxyFactory_Release(This) (This)->lpVtbl->Release(This)
17255/*** IUIAutomationProxyFactory methods ***/
17256#define IUIAutomationProxyFactory_CreateProvider(This,hwnd,idObject,idChild,provider) (This)->lpVtbl->CreateProvider(This,hwnd,idObject,idChild,provider)
17257#define IUIAutomationProxyFactory_get_ProxyFactoryId(This,factoryId) (This)->lpVtbl->get_ProxyFactoryId(This,factoryId)
17258#else
17259/*** IUnknown methods ***/
17260static inline HRESULT IUIAutomationProxyFactory_QueryInterface(IUIAutomationProxyFactory* This,REFIID riid,void **ppvObject) {
17261    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
17262}
17263static inline ULONG IUIAutomationProxyFactory_AddRef(IUIAutomationProxyFactory* This) {
17264    return This->lpVtbl->AddRef(This);
17265}
17266static inline ULONG IUIAutomationProxyFactory_Release(IUIAutomationProxyFactory* This) {
17267    return This->lpVtbl->Release(This);
17268}
17269/*** IUIAutomationProxyFactory methods ***/
17270static inline HRESULT IUIAutomationProxyFactory_CreateProvider(IUIAutomationProxyFactory* This,UIA_HWND hwnd,LONG idObject,LONG idChild,IRawElementProviderSimple **provider) {
17271    return This->lpVtbl->CreateProvider(This,hwnd,idObject,idChild,provider);
17272}
17273static inline HRESULT IUIAutomationProxyFactory_get_ProxyFactoryId(IUIAutomationProxyFactory* This,BSTR *factoryId) {
17274    return This->lpVtbl->get_ProxyFactoryId(This,factoryId);
17275}
17276#endif
17277#endif
17278
17279#endif
17280
17281
17282#endif  /* __IUIAutomationProxyFactory_INTERFACE_DEFINED__ */
17283
17284/*****************************************************************************
17285 * IUIAutomationProxyFactoryEntry interface
17286 */
17287#ifndef __IUIAutomationProxyFactoryEntry_INTERFACE_DEFINED__
17288#define __IUIAutomationProxyFactoryEntry_INTERFACE_DEFINED__
17289
17290DEFINE_GUID(IID_IUIAutomationProxyFactoryEntry, 0xd50e472e, 0xb64b, 0x490c, 0xbc,0xa1, 0xd3,0x06,0x96,0xf9,0xf2,0x89);
17291#if defined(__cplusplus) && !defined(CINTERFACE)
17292MIDL_INTERFACE("d50e472e-b64b-490c-bca1-d30696f9f289")
17293IUIAutomationProxyFactoryEntry : public IUnknown
17294{
17295    virtual HRESULT STDMETHODCALLTYPE get_ProxyFactory(
17296        IUIAutomationProxyFactory **factory) = 0;
17297
17298    virtual HRESULT STDMETHODCALLTYPE get_ClassName(
17299        BSTR *className) = 0;
17300
17301    virtual HRESULT STDMETHODCALLTYPE get_ImageName(
17302        BSTR *imageName) = 0;
17303
17304    virtual HRESULT STDMETHODCALLTYPE get_AllowSubstringMatch(
17305        WINBOOL *allowSubstringMatch) = 0;
17306
17307    virtual HRESULT STDMETHODCALLTYPE get_CanCheckBaseClass(
17308        WINBOOL *canCheckBaseClass) = 0;
17309
17310    virtual HRESULT STDMETHODCALLTYPE get_NeedsAdviseEvents(
17311        WINBOOL *adviseEvents) = 0;
17312
17313    virtual HRESULT STDMETHODCALLTYPE put_ClassName(
17314        LPCWSTR className) = 0;
17315
17316    virtual HRESULT STDMETHODCALLTYPE put_ImageName(
17317        LPCWSTR imageName) = 0;
17318
17319    virtual HRESULT STDMETHODCALLTYPE put_AllowSubstringMatch(
17320        WINBOOL allowSubstringMatch) = 0;
17321
17322    virtual HRESULT STDMETHODCALLTYPE put_CanCheckBaseClass(
17323        WINBOOL canCheckBaseClass) = 0;
17324
17325    virtual HRESULT STDMETHODCALLTYPE put_NeedsAdviseEvents(
17326        WINBOOL adviseEvents) = 0;
17327
17328    virtual HRESULT STDMETHODCALLTYPE SetWinEventsForAutomationEvent(
17329        EVENTID eventId,
17330        PROPERTYID propertyId,
17331        SAFEARRAY *winEvents) = 0;
17332
17333    virtual HRESULT STDMETHODCALLTYPE GetWinEventsForAutomationEvent(
17334        EVENTID eventId,
17335        PROPERTYID propertyId,
17336        SAFEARRAY **winEvents) = 0;
17337
17338};
17339#ifdef __CRT_UUID_DECL
17340__CRT_UUID_DECL(IUIAutomationProxyFactoryEntry, 0xd50e472e, 0xb64b, 0x490c, 0xbc,0xa1, 0xd3,0x06,0x96,0xf9,0xf2,0x89)
17341#endif
17342#else
17343typedef struct IUIAutomationProxyFactoryEntryVtbl {
17344    BEGIN_INTERFACE
17345
17346    /*** IUnknown methods ***/
17347    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
17348        IUIAutomationProxyFactoryEntry *This,
17349        REFIID riid,
17350        void **ppvObject);
17351
17352    ULONG (STDMETHODCALLTYPE *AddRef)(
17353        IUIAutomationProxyFactoryEntry *This);
17354
17355    ULONG (STDMETHODCALLTYPE *Release)(
17356        IUIAutomationProxyFactoryEntry *This);
17357
17358    /*** IUIAutomationProxyFactoryEntry methods ***/
17359    HRESULT (STDMETHODCALLTYPE *get_ProxyFactory)(
17360        IUIAutomationProxyFactoryEntry *This,
17361        IUIAutomationProxyFactory **factory);
17362
17363    HRESULT (STDMETHODCALLTYPE *get_ClassName)(
17364        IUIAutomationProxyFactoryEntry *This,
17365        BSTR *className);
17366
17367    HRESULT (STDMETHODCALLTYPE *get_ImageName)(
17368        IUIAutomationProxyFactoryEntry *This,
17369        BSTR *imageName);
17370
17371    HRESULT (STDMETHODCALLTYPE *get_AllowSubstringMatch)(
17372        IUIAutomationProxyFactoryEntry *This,
17373        WINBOOL *allowSubstringMatch);
17374
17375    HRESULT (STDMETHODCALLTYPE *get_CanCheckBaseClass)(
17376        IUIAutomationProxyFactoryEntry *This,
17377        WINBOOL *canCheckBaseClass);
17378
17379    HRESULT (STDMETHODCALLTYPE *get_NeedsAdviseEvents)(
17380        IUIAutomationProxyFactoryEntry *This,
17381        WINBOOL *adviseEvents);
17382
17383    HRESULT (STDMETHODCALLTYPE *put_ClassName)(
17384        IUIAutomationProxyFactoryEntry *This,
17385        LPCWSTR className);
17386
17387    HRESULT (STDMETHODCALLTYPE *put_ImageName)(
17388        IUIAutomationProxyFactoryEntry *This,
17389        LPCWSTR imageName);
17390
17391    HRESULT (STDMETHODCALLTYPE *put_AllowSubstringMatch)(
17392        IUIAutomationProxyFactoryEntry *This,
17393        WINBOOL allowSubstringMatch);
17394
17395    HRESULT (STDMETHODCALLTYPE *put_CanCheckBaseClass)(
17396        IUIAutomationProxyFactoryEntry *This,
17397        WINBOOL canCheckBaseClass);
17398
17399    HRESULT (STDMETHODCALLTYPE *put_NeedsAdviseEvents)(
17400        IUIAutomationProxyFactoryEntry *This,
17401        WINBOOL adviseEvents);
17402
17403    HRESULT (STDMETHODCALLTYPE *SetWinEventsForAutomationEvent)(
17404        IUIAutomationProxyFactoryEntry *This,
17405        EVENTID eventId,
17406        PROPERTYID propertyId,
17407        SAFEARRAY *winEvents);
17408
17409    HRESULT (STDMETHODCALLTYPE *GetWinEventsForAutomationEvent)(
17410        IUIAutomationProxyFactoryEntry *This,
17411        EVENTID eventId,
17412        PROPERTYID propertyId,
17413        SAFEARRAY **winEvents);
17414
17415    END_INTERFACE
17416} IUIAutomationProxyFactoryEntryVtbl;
17417
17418interface IUIAutomationProxyFactoryEntry {
17419    CONST_VTBL IUIAutomationProxyFactoryEntryVtbl* lpVtbl;
17420};
17421
17422#ifdef COBJMACROS
17423#ifndef WIDL_C_INLINE_WRAPPERS
17424/*** IUnknown methods ***/
17425#define IUIAutomationProxyFactoryEntry_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
17426#define IUIAutomationProxyFactoryEntry_AddRef(This) (This)->lpVtbl->AddRef(This)
17427#define IUIAutomationProxyFactoryEntry_Release(This) (This)->lpVtbl->Release(This)
17428/*** IUIAutomationProxyFactoryEntry methods ***/
17429#define IUIAutomationProxyFactoryEntry_get_ProxyFactory(This,factory) (This)->lpVtbl->get_ProxyFactory(This,factory)
17430#define IUIAutomationProxyFactoryEntry_get_ClassName(This,className) (This)->lpVtbl->get_ClassName(This,className)
17431#define IUIAutomationProxyFactoryEntry_get_ImageName(This,imageName) (This)->lpVtbl->get_ImageName(This,imageName)
17432#define IUIAutomationProxyFactoryEntry_get_AllowSubstringMatch(This,allowSubstringMatch) (This)->lpVtbl->get_AllowSubstringMatch(This,allowSubstringMatch)
17433#define IUIAutomationProxyFactoryEntry_get_CanCheckBaseClass(This,canCheckBaseClass) (This)->lpVtbl->get_CanCheckBaseClass(This,canCheckBaseClass)
17434#define IUIAutomationProxyFactoryEntry_get_NeedsAdviseEvents(This,adviseEvents) (This)->lpVtbl->get_NeedsAdviseEvents(This,adviseEvents)
17435#define IUIAutomationProxyFactoryEntry_put_ClassName(This,className) (This)->lpVtbl->put_ClassName(This,className)
17436#define IUIAutomationProxyFactoryEntry_put_ImageName(This,imageName) (This)->lpVtbl->put_ImageName(This,imageName)
17437#define IUIAutomationProxyFactoryEntry_put_AllowSubstringMatch(This,allowSubstringMatch) (This)->lpVtbl->put_AllowSubstringMatch(This,allowSubstringMatch)
17438#define IUIAutomationProxyFactoryEntry_put_CanCheckBaseClass(This,canCheckBaseClass) (This)->lpVtbl->put_CanCheckBaseClass(This,canCheckBaseClass)
17439#define IUIAutomationProxyFactoryEntry_put_NeedsAdviseEvents(This,adviseEvents) (This)->lpVtbl->put_NeedsAdviseEvents(This,adviseEvents)
17440#define IUIAutomationProxyFactoryEntry_SetWinEventsForAutomationEvent(This,eventId,propertyId,winEvents) (This)->lpVtbl->SetWinEventsForAutomationEvent(This,eventId,propertyId,winEvents)
17441#define IUIAutomationProxyFactoryEntry_GetWinEventsForAutomationEvent(This,eventId,propertyId,winEvents) (This)->lpVtbl->GetWinEventsForAutomationEvent(This,eventId,propertyId,winEvents)
17442#else
17443/*** IUnknown methods ***/
17444static inline HRESULT IUIAutomationProxyFactoryEntry_QueryInterface(IUIAutomationProxyFactoryEntry* This,REFIID riid,void **ppvObject) {
17445    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
17446}
17447static inline ULONG IUIAutomationProxyFactoryEntry_AddRef(IUIAutomationProxyFactoryEntry* This) {
17448    return This->lpVtbl->AddRef(This);
17449}
17450static inline ULONG IUIAutomationProxyFactoryEntry_Release(IUIAutomationProxyFactoryEntry* This) {
17451    return This->lpVtbl->Release(This);
17452}
17453/*** IUIAutomationProxyFactoryEntry methods ***/
17454static inline HRESULT IUIAutomationProxyFactoryEntry_get_ProxyFactory(IUIAutomationProxyFactoryEntry* This,IUIAutomationProxyFactory **factory) {
17455    return This->lpVtbl->get_ProxyFactory(This,factory);
17456}
17457static inline HRESULT IUIAutomationProxyFactoryEntry_get_ClassName(IUIAutomationProxyFactoryEntry* This,BSTR *className) {
17458    return This->lpVtbl->get_ClassName(This,className);
17459}
17460static inline HRESULT IUIAutomationProxyFactoryEntry_get_ImageName(IUIAutomationProxyFactoryEntry* This,BSTR *imageName) {
17461    return This->lpVtbl->get_ImageName(This,imageName);
17462}
17463static inline HRESULT IUIAutomationProxyFactoryEntry_get_AllowSubstringMatch(IUIAutomationProxyFactoryEntry* This,WINBOOL *allowSubstringMatch) {
17464    return This->lpVtbl->get_AllowSubstringMatch(This,allowSubstringMatch);
17465}
17466static inline HRESULT IUIAutomationProxyFactoryEntry_get_CanCheckBaseClass(IUIAutomationProxyFactoryEntry* This,WINBOOL *canCheckBaseClass) {
17467    return This->lpVtbl->get_CanCheckBaseClass(This,canCheckBaseClass);
17468}
17469static inline HRESULT IUIAutomationProxyFactoryEntry_get_NeedsAdviseEvents(IUIAutomationProxyFactoryEntry* This,WINBOOL *adviseEvents) {
17470    return This->lpVtbl->get_NeedsAdviseEvents(This,adviseEvents);
17471}
17472static inline HRESULT IUIAutomationProxyFactoryEntry_put_ClassName(IUIAutomationProxyFactoryEntry* This,LPCWSTR className) {
17473    return This->lpVtbl->put_ClassName(This,className);
17474}
17475static inline HRESULT IUIAutomationProxyFactoryEntry_put_ImageName(IUIAutomationProxyFactoryEntry* This,LPCWSTR imageName) {
17476    return This->lpVtbl->put_ImageName(This,imageName);
17477}
17478static inline HRESULT IUIAutomationProxyFactoryEntry_put_AllowSubstringMatch(IUIAutomationProxyFactoryEntry* This,WINBOOL allowSubstringMatch) {
17479    return This->lpVtbl->put_AllowSubstringMatch(This,allowSubstringMatch);
17480}
17481static inline HRESULT IUIAutomationProxyFactoryEntry_put_CanCheckBaseClass(IUIAutomationProxyFactoryEntry* This,WINBOOL canCheckBaseClass) {
17482    return This->lpVtbl->put_CanCheckBaseClass(This,canCheckBaseClass);
17483}
17484static inline HRESULT IUIAutomationProxyFactoryEntry_put_NeedsAdviseEvents(IUIAutomationProxyFactoryEntry* This,WINBOOL adviseEvents) {
17485    return This->lpVtbl->put_NeedsAdviseEvents(This,adviseEvents);
17486}
17487static inline HRESULT IUIAutomationProxyFactoryEntry_SetWinEventsForAutomationEvent(IUIAutomationProxyFactoryEntry* This,EVENTID eventId,PROPERTYID propertyId,SAFEARRAY *winEvents) {
17488    return This->lpVtbl->SetWinEventsForAutomationEvent(This,eventId,propertyId,winEvents);
17489}
17490static inline HRESULT IUIAutomationProxyFactoryEntry_GetWinEventsForAutomationEvent(IUIAutomationProxyFactoryEntry* This,EVENTID eventId,PROPERTYID propertyId,SAFEARRAY **winEvents) {
17491    return This->lpVtbl->GetWinEventsForAutomationEvent(This,eventId,propertyId,winEvents);
17492}
17493#endif
17494#endif
17495
17496#endif
17497
17498
17499#endif  /* __IUIAutomationProxyFactoryEntry_INTERFACE_DEFINED__ */
17500
17501/*****************************************************************************
17502 * IUIAutomationProxyFactoryMapping interface
17503 */
17504#ifndef __IUIAutomationProxyFactoryMapping_INTERFACE_DEFINED__
17505#define __IUIAutomationProxyFactoryMapping_INTERFACE_DEFINED__
17506
17507DEFINE_GUID(IID_IUIAutomationProxyFactoryMapping, 0x09e31e18, 0x872d, 0x4873, 0x93,0xd1, 0x1e,0x54,0x1e,0xc1,0x33,0xfd);
17508#if defined(__cplusplus) && !defined(CINTERFACE)
17509MIDL_INTERFACE("09e31e18-872d-4873-93d1-1e541ec133fd")
17510IUIAutomationProxyFactoryMapping : public IUnknown
17511{
17512    virtual HRESULT STDMETHODCALLTYPE get_Count(
17513        UINT *count) = 0;
17514
17515    virtual HRESULT STDMETHODCALLTYPE GetTable(
17516        SAFEARRAY **table) = 0;
17517
17518    virtual HRESULT STDMETHODCALLTYPE GetEntry(
17519        UINT index,
17520        IUIAutomationProxyFactoryEntry **entry) = 0;
17521
17522    virtual HRESULT STDMETHODCALLTYPE SetTable(
17523        SAFEARRAY *factoryList) = 0;
17524
17525    virtual HRESULT STDMETHODCALLTYPE InsertEntries(
17526        UINT before,
17527        SAFEARRAY *factoryList) = 0;
17528
17529    virtual HRESULT STDMETHODCALLTYPE InsertEntry(
17530        UINT before,
17531        IUIAutomationProxyFactoryEntry *factory) = 0;
17532
17533    virtual HRESULT STDMETHODCALLTYPE RemoveEntry(
17534        UINT index) = 0;
17535
17536    virtual HRESULT STDMETHODCALLTYPE ClearTable(
17537        ) = 0;
17538
17539    virtual HRESULT STDMETHODCALLTYPE RestoreDefaultTable(
17540        ) = 0;
17541
17542};
17543#ifdef __CRT_UUID_DECL
17544__CRT_UUID_DECL(IUIAutomationProxyFactoryMapping, 0x09e31e18, 0x872d, 0x4873, 0x93,0xd1, 0x1e,0x54,0x1e,0xc1,0x33,0xfd)
17545#endif
17546#else
17547typedef struct IUIAutomationProxyFactoryMappingVtbl {
17548    BEGIN_INTERFACE
17549
17550    /*** IUnknown methods ***/
17551    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
17552        IUIAutomationProxyFactoryMapping *This,
17553        REFIID riid,
17554        void **ppvObject);
17555
17556    ULONG (STDMETHODCALLTYPE *AddRef)(
17557        IUIAutomationProxyFactoryMapping *This);
17558
17559    ULONG (STDMETHODCALLTYPE *Release)(
17560        IUIAutomationProxyFactoryMapping *This);
17561
17562    /*** IUIAutomationProxyFactoryMapping methods ***/
17563    HRESULT (STDMETHODCALLTYPE *get_Count)(
17564        IUIAutomationProxyFactoryMapping *This,
17565        UINT *count);
17566
17567    HRESULT (STDMETHODCALLTYPE *GetTable)(
17568        IUIAutomationProxyFactoryMapping *This,
17569        SAFEARRAY **table);
17570
17571    HRESULT (STDMETHODCALLTYPE *GetEntry)(
17572        IUIAutomationProxyFactoryMapping *This,
17573        UINT index,
17574        IUIAutomationProxyFactoryEntry **entry);
17575
17576    HRESULT (STDMETHODCALLTYPE *SetTable)(
17577        IUIAutomationProxyFactoryMapping *This,
17578        SAFEARRAY *factoryList);
17579
17580    HRESULT (STDMETHODCALLTYPE *InsertEntries)(
17581        IUIAutomationProxyFactoryMapping *This,
17582        UINT before,
17583        SAFEARRAY *factoryList);
17584
17585    HRESULT (STDMETHODCALLTYPE *InsertEntry)(
17586        IUIAutomationProxyFactoryMapping *This,
17587        UINT before,
17588        IUIAutomationProxyFactoryEntry *factory);
17589
17590    HRESULT (STDMETHODCALLTYPE *RemoveEntry)(
17591        IUIAutomationProxyFactoryMapping *This,
17592        UINT index);
17593
17594    HRESULT (STDMETHODCALLTYPE *ClearTable)(
17595        IUIAutomationProxyFactoryMapping *This);
17596
17597    HRESULT (STDMETHODCALLTYPE *RestoreDefaultTable)(
17598        IUIAutomationProxyFactoryMapping *This);
17599
17600    END_INTERFACE
17601} IUIAutomationProxyFactoryMappingVtbl;
17602
17603interface IUIAutomationProxyFactoryMapping {
17604    CONST_VTBL IUIAutomationProxyFactoryMappingVtbl* lpVtbl;
17605};
17606
17607#ifdef COBJMACROS
17608#ifndef WIDL_C_INLINE_WRAPPERS
17609/*** IUnknown methods ***/
17610#define IUIAutomationProxyFactoryMapping_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
17611#define IUIAutomationProxyFactoryMapping_AddRef(This) (This)->lpVtbl->AddRef(This)
17612#define IUIAutomationProxyFactoryMapping_Release(This) (This)->lpVtbl->Release(This)
17613/*** IUIAutomationProxyFactoryMapping methods ***/
17614#define IUIAutomationProxyFactoryMapping_get_Count(This,count) (This)->lpVtbl->get_Count(This,count)
17615#define IUIAutomationProxyFactoryMapping_GetTable(This,table) (This)->lpVtbl->GetTable(This,table)
17616#define IUIAutomationProxyFactoryMapping_GetEntry(This,index,entry) (This)->lpVtbl->GetEntry(This,index,entry)
17617#define IUIAutomationProxyFactoryMapping_SetTable(This,factoryList) (This)->lpVtbl->SetTable(This,factoryList)
17618#define IUIAutomationProxyFactoryMapping_InsertEntries(This,before,factoryList) (This)->lpVtbl->InsertEntries(This,before,factoryList)
17619#define IUIAutomationProxyFactoryMapping_InsertEntry(This,before,factory) (This)->lpVtbl->InsertEntry(This,before,factory)
17620#define IUIAutomationProxyFactoryMapping_RemoveEntry(This,index) (This)->lpVtbl->RemoveEntry(This,index)
17621#define IUIAutomationProxyFactoryMapping_ClearTable(This) (This)->lpVtbl->ClearTable(This)
17622#define IUIAutomationProxyFactoryMapping_RestoreDefaultTable(This) (This)->lpVtbl->RestoreDefaultTable(This)
17623#else
17624/*** IUnknown methods ***/
17625static inline HRESULT IUIAutomationProxyFactoryMapping_QueryInterface(IUIAutomationProxyFactoryMapping* This,REFIID riid,void **ppvObject) {
17626    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
17627}
17628static inline ULONG IUIAutomationProxyFactoryMapping_AddRef(IUIAutomationProxyFactoryMapping* This) {
17629    return This->lpVtbl->AddRef(This);
17630}
17631static inline ULONG IUIAutomationProxyFactoryMapping_Release(IUIAutomationProxyFactoryMapping* This) {
17632    return This->lpVtbl->Release(This);
17633}
17634/*** IUIAutomationProxyFactoryMapping methods ***/
17635static inline HRESULT IUIAutomationProxyFactoryMapping_get_Count(IUIAutomationProxyFactoryMapping* This,UINT *count) {
17636    return This->lpVtbl->get_Count(This,count);
17637}
17638static inline HRESULT IUIAutomationProxyFactoryMapping_GetTable(IUIAutomationProxyFactoryMapping* This,SAFEARRAY **table) {
17639    return This->lpVtbl->GetTable(This,table);
17640}
17641static inline HRESULT IUIAutomationProxyFactoryMapping_GetEntry(IUIAutomationProxyFactoryMapping* This,UINT index,IUIAutomationProxyFactoryEntry **entry) {
17642    return This->lpVtbl->GetEntry(This,index,entry);
17643}
17644static inline HRESULT IUIAutomationProxyFactoryMapping_SetTable(IUIAutomationProxyFactoryMapping* This,SAFEARRAY *factoryList) {
17645    return This->lpVtbl->SetTable(This,factoryList);
17646}
17647static inline HRESULT IUIAutomationProxyFactoryMapping_InsertEntries(IUIAutomationProxyFactoryMapping* This,UINT before,SAFEARRAY *factoryList) {
17648    return This->lpVtbl->InsertEntries(This,before,factoryList);
17649}
17650static inline HRESULT IUIAutomationProxyFactoryMapping_InsertEntry(IUIAutomationProxyFactoryMapping* This,UINT before,IUIAutomationProxyFactoryEntry *factory) {
17651    return This->lpVtbl->InsertEntry(This,before,factory);
17652}
17653static inline HRESULT IUIAutomationProxyFactoryMapping_RemoveEntry(IUIAutomationProxyFactoryMapping* This,UINT index) {
17654    return This->lpVtbl->RemoveEntry(This,index);
17655}
17656static inline HRESULT IUIAutomationProxyFactoryMapping_ClearTable(IUIAutomationProxyFactoryMapping* This) {
17657    return This->lpVtbl->ClearTable(This);
17658}
17659static inline HRESULT IUIAutomationProxyFactoryMapping_RestoreDefaultTable(IUIAutomationProxyFactoryMapping* This) {
17660    return This->lpVtbl->RestoreDefaultTable(This);
17661}
17662#endif
17663#endif
17664
17665#endif
17666
17667
17668#endif  /* __IUIAutomationProxyFactoryMapping_INTERFACE_DEFINED__ */
17669
17670/*****************************************************************************
17671 * IUIAutomationEventHandlerGroup interface
17672 */
17673#ifndef __IUIAutomationEventHandlerGroup_INTERFACE_DEFINED__
17674#define __IUIAutomationEventHandlerGroup_INTERFACE_DEFINED__
17675
17676DEFINE_GUID(IID_IUIAutomationEventHandlerGroup, 0xc9ee12f2, 0xc13b, 0x4408, 0x99,0x7c, 0x63,0x99,0x14,0x37,0x7f,0x4e);
17677#if defined(__cplusplus) && !defined(CINTERFACE)
17678MIDL_INTERFACE("c9ee12f2-c13b-4408-997c-639914377f4e")
17679IUIAutomationEventHandlerGroup : public IUnknown
17680{
17681    virtual HRESULT STDMETHODCALLTYPE AddActiveTextPositionChangedEventHandler(
17682        enum TreeScope scope,
17683        IUIAutomationCacheRequest *cacheRequest,
17684        IUIAutomationActiveTextPositionChangedEventHandler *handler) = 0;
17685
17686    virtual HRESULT STDMETHODCALLTYPE AddAutomationEventHandler(
17687        EVENTID eventId,
17688        enum TreeScope scope,
17689        IUIAutomationCacheRequest *cacheRequest,
17690        IUIAutomationEventHandler *handler) = 0;
17691
17692    virtual HRESULT STDMETHODCALLTYPE AddChangesEventHandler(
17693        enum TreeScope scope,
17694        int *changeTypes,
17695        int changesCount,
17696        IUIAutomationCacheRequest *cacheRequest,
17697        IUIAutomationChangesEventHandler *handler) = 0;
17698
17699    virtual HRESULT STDMETHODCALLTYPE AddNotificationEventHandler(
17700        enum TreeScope scope,
17701        IUIAutomationCacheRequest *cacheRequest,
17702        IUIAutomationNotificationEventHandler *handler) = 0;
17703
17704    virtual HRESULT STDMETHODCALLTYPE AddPropertyChangedEventHandler(
17705        enum TreeScope scope,
17706        IUIAutomationCacheRequest *cacheRequest,
17707        IUIAutomationPropertyChangedEventHandler *handler,
17708        PROPERTYID *propertyArray,
17709        int propertyCount) = 0;
17710
17711    virtual HRESULT STDMETHODCALLTYPE AddStructureChangedEventHandler(
17712        enum TreeScope scope,
17713        IUIAutomationCacheRequest *cacheRequest,
17714        IUIAutomationStructureChangedEventHandler *handler) = 0;
17715
17716    virtual HRESULT STDMETHODCALLTYPE AddTextEditTextChangedEventHandler(
17717        enum TreeScope scope,
17718        enum TextEditChangeType textEditChangeType,
17719        IUIAutomationCacheRequest *cacheRequest,
17720        IUIAutomationTextEditTextChangedEventHandler *handler) = 0;
17721
17722};
17723#ifdef __CRT_UUID_DECL
17724__CRT_UUID_DECL(IUIAutomationEventHandlerGroup, 0xc9ee12f2, 0xc13b, 0x4408, 0x99,0x7c, 0x63,0x99,0x14,0x37,0x7f,0x4e)
17725#endif
17726#else
17727typedef struct IUIAutomationEventHandlerGroupVtbl {
17728    BEGIN_INTERFACE
17729
17730    /*** IUnknown methods ***/
17731    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
17732        IUIAutomationEventHandlerGroup *This,
17733        REFIID riid,
17734        void **ppvObject);
17735
17736    ULONG (STDMETHODCALLTYPE *AddRef)(
17737        IUIAutomationEventHandlerGroup *This);
17738
17739    ULONG (STDMETHODCALLTYPE *Release)(
17740        IUIAutomationEventHandlerGroup *This);
17741
17742    /*** IUIAutomationEventHandlerGroup methods ***/
17743    HRESULT (STDMETHODCALLTYPE *AddActiveTextPositionChangedEventHandler)(
17744        IUIAutomationEventHandlerGroup *This,
17745        enum TreeScope scope,
17746        IUIAutomationCacheRequest *cacheRequest,
17747        IUIAutomationActiveTextPositionChangedEventHandler *handler);
17748
17749    HRESULT (STDMETHODCALLTYPE *AddAutomationEventHandler)(
17750        IUIAutomationEventHandlerGroup *This,
17751        EVENTID eventId,
17752        enum TreeScope scope,
17753        IUIAutomationCacheRequest *cacheRequest,
17754        IUIAutomationEventHandler *handler);
17755
17756    HRESULT (STDMETHODCALLTYPE *AddChangesEventHandler)(
17757        IUIAutomationEventHandlerGroup *This,
17758        enum TreeScope scope,
17759        int *changeTypes,
17760        int changesCount,
17761        IUIAutomationCacheRequest *cacheRequest,
17762        IUIAutomationChangesEventHandler *handler);
17763
17764    HRESULT (STDMETHODCALLTYPE *AddNotificationEventHandler)(
17765        IUIAutomationEventHandlerGroup *This,
17766        enum TreeScope scope,
17767        IUIAutomationCacheRequest *cacheRequest,
17768        IUIAutomationNotificationEventHandler *handler);
17769
17770    HRESULT (STDMETHODCALLTYPE *AddPropertyChangedEventHandler)(
17771        IUIAutomationEventHandlerGroup *This,
17772        enum TreeScope scope,
17773        IUIAutomationCacheRequest *cacheRequest,
17774        IUIAutomationPropertyChangedEventHandler *handler,
17775        PROPERTYID *propertyArray,
17776        int propertyCount);
17777
17778    HRESULT (STDMETHODCALLTYPE *AddStructureChangedEventHandler)(
17779        IUIAutomationEventHandlerGroup *This,
17780        enum TreeScope scope,
17781        IUIAutomationCacheRequest *cacheRequest,
17782        IUIAutomationStructureChangedEventHandler *handler);
17783
17784    HRESULT (STDMETHODCALLTYPE *AddTextEditTextChangedEventHandler)(
17785        IUIAutomationEventHandlerGroup *This,
17786        enum TreeScope scope,
17787        enum TextEditChangeType textEditChangeType,
17788        IUIAutomationCacheRequest *cacheRequest,
17789        IUIAutomationTextEditTextChangedEventHandler *handler);
17790
17791    END_INTERFACE
17792} IUIAutomationEventHandlerGroupVtbl;
17793
17794interface IUIAutomationEventHandlerGroup {
17795    CONST_VTBL IUIAutomationEventHandlerGroupVtbl* lpVtbl;
17796};
17797
17798#ifdef COBJMACROS
17799#ifndef WIDL_C_INLINE_WRAPPERS
17800/*** IUnknown methods ***/
17801#define IUIAutomationEventHandlerGroup_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
17802#define IUIAutomationEventHandlerGroup_AddRef(This) (This)->lpVtbl->AddRef(This)
17803#define IUIAutomationEventHandlerGroup_Release(This) (This)->lpVtbl->Release(This)
17804/*** IUIAutomationEventHandlerGroup methods ***/
17805#define IUIAutomationEventHandlerGroup_AddActiveTextPositionChangedEventHandler(This,scope,cacheRequest,handler) (This)->lpVtbl->AddActiveTextPositionChangedEventHandler(This,scope,cacheRequest,handler)
17806#define IUIAutomationEventHandlerGroup_AddAutomationEventHandler(This,eventId,scope,cacheRequest,handler) (This)->lpVtbl->AddAutomationEventHandler(This,eventId,scope,cacheRequest,handler)
17807#define IUIAutomationEventHandlerGroup_AddChangesEventHandler(This,scope,changeTypes,changesCount,cacheRequest,handler) (This)->lpVtbl->AddChangesEventHandler(This,scope,changeTypes,changesCount,cacheRequest,handler)
17808#define IUIAutomationEventHandlerGroup_AddNotificationEventHandler(This,scope,cacheRequest,handler) (This)->lpVtbl->AddNotificationEventHandler(This,scope,cacheRequest,handler)
17809#define IUIAutomationEventHandlerGroup_AddPropertyChangedEventHandler(This,scope,cacheRequest,handler,propertyArray,propertyCount) (This)->lpVtbl->AddPropertyChangedEventHandler(This,scope,cacheRequest,handler,propertyArray,propertyCount)
17810#define IUIAutomationEventHandlerGroup_AddStructureChangedEventHandler(This,scope,cacheRequest,handler) (This)->lpVtbl->AddStructureChangedEventHandler(This,scope,cacheRequest,handler)
17811#define IUIAutomationEventHandlerGroup_AddTextEditTextChangedEventHandler(This,scope,textEditChangeType,cacheRequest,handler) (This)->lpVtbl->AddTextEditTextChangedEventHandler(This,scope,textEditChangeType,cacheRequest,handler)
17812#else
17813/*** IUnknown methods ***/
17814static inline HRESULT IUIAutomationEventHandlerGroup_QueryInterface(IUIAutomationEventHandlerGroup* This,REFIID riid,void **ppvObject) {
17815    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
17816}
17817static inline ULONG IUIAutomationEventHandlerGroup_AddRef(IUIAutomationEventHandlerGroup* This) {
17818    return This->lpVtbl->AddRef(This);
17819}
17820static inline ULONG IUIAutomationEventHandlerGroup_Release(IUIAutomationEventHandlerGroup* This) {
17821    return This->lpVtbl->Release(This);
17822}
17823/*** IUIAutomationEventHandlerGroup methods ***/
17824static inline HRESULT IUIAutomationEventHandlerGroup_AddActiveTextPositionChangedEventHandler(IUIAutomationEventHandlerGroup* This,enum TreeScope scope,IUIAutomationCacheRequest *cacheRequest,IUIAutomationActiveTextPositionChangedEventHandler *handler) {
17825    return This->lpVtbl->AddActiveTextPositionChangedEventHandler(This,scope,cacheRequest,handler);
17826}
17827static inline HRESULT IUIAutomationEventHandlerGroup_AddAutomationEventHandler(IUIAutomationEventHandlerGroup* This,EVENTID eventId,enum TreeScope scope,IUIAutomationCacheRequest *cacheRequest,IUIAutomationEventHandler *handler) {
17828    return This->lpVtbl->AddAutomationEventHandler(This,eventId,scope,cacheRequest,handler);
17829}
17830static inline HRESULT IUIAutomationEventHandlerGroup_AddChangesEventHandler(IUIAutomationEventHandlerGroup* This,enum TreeScope scope,int *changeTypes,int changesCount,IUIAutomationCacheRequest *cacheRequest,IUIAutomationChangesEventHandler *handler) {
17831    return This->lpVtbl->AddChangesEventHandler(This,scope,changeTypes,changesCount,cacheRequest,handler);
17832}
17833static inline HRESULT IUIAutomationEventHandlerGroup_AddNotificationEventHandler(IUIAutomationEventHandlerGroup* This,enum TreeScope scope,IUIAutomationCacheRequest *cacheRequest,IUIAutomationNotificationEventHandler *handler) {
17834    return This->lpVtbl->AddNotificationEventHandler(This,scope,cacheRequest,handler);
17835}
17836static inline HRESULT IUIAutomationEventHandlerGroup_AddPropertyChangedEventHandler(IUIAutomationEventHandlerGroup* This,enum TreeScope scope,IUIAutomationCacheRequest *cacheRequest,IUIAutomationPropertyChangedEventHandler *handler,PROPERTYID *propertyArray,int propertyCount) {
17837    return This->lpVtbl->AddPropertyChangedEventHandler(This,scope,cacheRequest,handler,propertyArray,propertyCount);
17838}
17839static inline HRESULT IUIAutomationEventHandlerGroup_AddStructureChangedEventHandler(IUIAutomationEventHandlerGroup* This,enum TreeScope scope,IUIAutomationCacheRequest *cacheRequest,IUIAutomationStructureChangedEventHandler *handler) {
17840    return This->lpVtbl->AddStructureChangedEventHandler(This,scope,cacheRequest,handler);
17841}
17842static inline HRESULT IUIAutomationEventHandlerGroup_AddTextEditTextChangedEventHandler(IUIAutomationEventHandlerGroup* This,enum TreeScope scope,enum TextEditChangeType textEditChangeType,IUIAutomationCacheRequest *cacheRequest,IUIAutomationTextEditTextChangedEventHandler *handler) {
17843    return This->lpVtbl->AddTextEditTextChangedEventHandler(This,scope,textEditChangeType,cacheRequest,handler);
17844}
17845#endif
17846#endif
17847
17848#endif
17849
17850
17851#endif  /* __IUIAutomationEventHandlerGroup_INTERFACE_DEFINED__ */
17852
17853/*****************************************************************************
17854 * IUIAutomation interface
17855 */
17856#ifndef __IUIAutomation_INTERFACE_DEFINED__
17857#define __IUIAutomation_INTERFACE_DEFINED__
17858
17859DEFINE_GUID(IID_IUIAutomation, 0x30cbe57d, 0xd9d0, 0x452a, 0xab,0x13, 0x7a,0xc5,0xac,0x48,0x25,0xee);
17860#if defined(__cplusplus) && !defined(CINTERFACE)
17861MIDL_INTERFACE("30cbe57d-d9d0-452a-ab13-7ac5ac4825ee")
17862IUIAutomation : public IUnknown
17863{
17864    virtual HRESULT STDMETHODCALLTYPE CompareElements(
17865        IUIAutomationElement *el1,
17866        IUIAutomationElement *el2,
17867        WINBOOL *areSame) = 0;
17868
17869    virtual HRESULT STDMETHODCALLTYPE CompareRuntimeIds(
17870        SAFEARRAY *runtimeId1,
17871        SAFEARRAY *runtimeId2,
17872        WINBOOL *areSame) = 0;
17873
17874    virtual HRESULT STDMETHODCALLTYPE GetRootElement(
17875        IUIAutomationElement **root) = 0;
17876
17877    virtual HRESULT STDMETHODCALLTYPE ElementFromHandle(
17878        UIA_HWND hwnd,
17879        IUIAutomationElement **element) = 0;
17880
17881    virtual HRESULT STDMETHODCALLTYPE ElementFromPoint(
17882        POINT pt,
17883        IUIAutomationElement **element) = 0;
17884
17885    virtual HRESULT STDMETHODCALLTYPE GetFocusedElement(
17886        IUIAutomationElement **element) = 0;
17887
17888    virtual HRESULT STDMETHODCALLTYPE GetRootElementBuildCache(
17889        IUIAutomationCacheRequest *cacheRequest,
17890        IUIAutomationElement **root) = 0;
17891
17892    virtual HRESULT STDMETHODCALLTYPE ElementFromHandleBuildCache(
17893        UIA_HWND hwnd,
17894        IUIAutomationCacheRequest *cacheRequest,
17895        IUIAutomationElement **element) = 0;
17896
17897    virtual HRESULT STDMETHODCALLTYPE ElementFromPointBuildCache(
17898        POINT pt,
17899        IUIAutomationCacheRequest *cacheRequest,
17900        IUIAutomationElement **element) = 0;
17901
17902    virtual HRESULT STDMETHODCALLTYPE GetFocusedElementBuildCache(
17903        IUIAutomationCacheRequest *cacheRequest,
17904        IUIAutomationElement **element) = 0;
17905
17906    virtual HRESULT STDMETHODCALLTYPE CreateTreeWalker(
17907        IUIAutomationCondition *pCondition,
17908        IUIAutomationTreeWalker **walker) = 0;
17909
17910    virtual HRESULT STDMETHODCALLTYPE get_ControlViewWalker(
17911        IUIAutomationTreeWalker **walker) = 0;
17912
17913    virtual HRESULT STDMETHODCALLTYPE get_ContentViewWalker(
17914        IUIAutomationTreeWalker **walker) = 0;
17915
17916    virtual HRESULT STDMETHODCALLTYPE get_RawViewWalker(
17917        IUIAutomationTreeWalker **walker) = 0;
17918
17919    virtual HRESULT STDMETHODCALLTYPE get_RawViewCondition(
17920        IUIAutomationCondition **condition) = 0;
17921
17922    virtual HRESULT STDMETHODCALLTYPE get_ControlViewCondition(
17923        IUIAutomationCondition **condition) = 0;
17924
17925    virtual HRESULT STDMETHODCALLTYPE get_ContentViewCondition(
17926        IUIAutomationCondition **condition) = 0;
17927
17928    virtual HRESULT STDMETHODCALLTYPE CreateCacheRequest(
17929        IUIAutomationCacheRequest **cacheRequest) = 0;
17930
17931    virtual HRESULT STDMETHODCALLTYPE CreateTrueCondition(
17932        IUIAutomationCondition **newCondition) = 0;
17933
17934    virtual HRESULT STDMETHODCALLTYPE CreateFalseCondition(
17935        IUIAutomationCondition **newCondition) = 0;
17936
17937    virtual HRESULT STDMETHODCALLTYPE CreatePropertyCondition(
17938        PROPERTYID propertyId,
17939        VARIANT value,
17940        IUIAutomationCondition **newCondition) = 0;
17941
17942    virtual HRESULT STDMETHODCALLTYPE CreatePropertyConditionEx(
17943        PROPERTYID propertyId,
17944        VARIANT value,
17945        enum PropertyConditionFlags flags,
17946        IUIAutomationCondition **newCondition) = 0;
17947
17948    virtual HRESULT STDMETHODCALLTYPE CreateAndCondition(
17949        IUIAutomationCondition *condition1,
17950        IUIAutomationCondition *condition2,
17951        IUIAutomationCondition **newCondition) = 0;
17952
17953    virtual HRESULT STDMETHODCALLTYPE CreateAndConditionFromArray(
17954        SAFEARRAY *conditions,
17955        IUIAutomationCondition **newCondition) = 0;
17956
17957    virtual HRESULT STDMETHODCALLTYPE CreateAndConditionFromNativeArray(
17958        IUIAutomationCondition **conditions,
17959        int conditionCount,
17960        IUIAutomationCondition **newCondition) = 0;
17961
17962    virtual HRESULT STDMETHODCALLTYPE CreateOrCondition(
17963        IUIAutomationCondition *condition1,
17964        IUIAutomationCondition *condition2,
17965        IUIAutomationCondition **newCondition) = 0;
17966
17967    virtual HRESULT STDMETHODCALLTYPE CreateOrConditionFromArray(
17968        SAFEARRAY *conditions,
17969        IUIAutomationCondition **newCondition) = 0;
17970
17971    virtual HRESULT STDMETHODCALLTYPE CreateOrConditionFromNativeArray(
17972        IUIAutomationCondition **conditions,
17973        int conditionCount,
17974        IUIAutomationCondition **newCondition) = 0;
17975
17976    virtual HRESULT STDMETHODCALLTYPE CreateNotCondition(
17977        IUIAutomationCondition *condition,
17978        IUIAutomationCondition **newCondition) = 0;
17979
17980    virtual HRESULT STDMETHODCALLTYPE AddAutomationEventHandler(
17981        EVENTID eventId,
17982        IUIAutomationElement *element,
17983        enum TreeScope scope,
17984        IUIAutomationCacheRequest *cacheRequest,
17985        IUIAutomationEventHandler *handler) = 0;
17986
17987    virtual HRESULT STDMETHODCALLTYPE RemoveAutomationEventHandler(
17988        EVENTID eventId,
17989        IUIAutomationElement *element,
17990        IUIAutomationEventHandler *handler) = 0;
17991
17992    virtual HRESULT STDMETHODCALLTYPE AddPropertyChangedEventHandlerNativeArray(
17993        IUIAutomationElement *element,
17994        enum TreeScope scope,
17995        IUIAutomationCacheRequest *cacheRequest,
17996        IUIAutomationPropertyChangedEventHandler *handler,
17997        PROPERTYID *propertyArray,
17998        int propertyCount) = 0;
17999
18000    virtual HRESULT STDMETHODCALLTYPE AddPropertyChangedEventHandler(
18001        IUIAutomationElement *element,
18002        enum TreeScope scope,
18003        IUIAutomationCacheRequest *cacheRequest,
18004        IUIAutomationPropertyChangedEventHandler *handler,
18005        SAFEARRAY *propertyArray) = 0;
18006
18007    virtual HRESULT STDMETHODCALLTYPE RemovePropertyChangedEventHandler(
18008        IUIAutomationElement *element,
18009        IUIAutomationPropertyChangedEventHandler *handler) = 0;
18010
18011    virtual HRESULT STDMETHODCALLTYPE AddStructureChangedEventHandler(
18012        IUIAutomationElement *element,
18013        enum TreeScope scope,
18014        IUIAutomationCacheRequest *cacheRequest,
18015        IUIAutomationStructureChangedEventHandler *handler) = 0;
18016
18017    virtual HRESULT STDMETHODCALLTYPE RemoveStructureChangedEventHandler(
18018        IUIAutomationElement *element,
18019        IUIAutomationStructureChangedEventHandler *handler) = 0;
18020
18021    virtual HRESULT STDMETHODCALLTYPE AddFocusChangedEventHandler(
18022        IUIAutomationCacheRequest *cacheRequest,
18023        IUIAutomationFocusChangedEventHandler *handler) = 0;
18024
18025    virtual HRESULT STDMETHODCALLTYPE RemoveFocusChangedEventHandler(
18026        IUIAutomationFocusChangedEventHandler *handler) = 0;
18027
18028    virtual HRESULT STDMETHODCALLTYPE RemoveAllEventHandlers(
18029        ) = 0;
18030
18031    virtual HRESULT STDMETHODCALLTYPE IntNativeArrayToSafeArray(
18032        int *array,
18033        int arrayCount,
18034        SAFEARRAY **safeArray) = 0;
18035
18036    virtual HRESULT STDMETHODCALLTYPE IntSafeArrayToNativeArray(
18037        SAFEARRAY *intArray,
18038        int **array,
18039        int *arrayCount) = 0;
18040
18041    virtual HRESULT STDMETHODCALLTYPE RectToVariant(
18042        RECT rc,
18043        VARIANT *var) = 0;
18044
18045    virtual HRESULT STDMETHODCALLTYPE VariantToRect(
18046        VARIANT var,
18047        RECT *rc) = 0;
18048
18049    virtual HRESULT STDMETHODCALLTYPE SafeArrayToRectNativeArray(
18050        SAFEARRAY *rects,
18051        RECT **rectArray,
18052        int *rectArrayCount) = 0;
18053
18054    virtual HRESULT STDMETHODCALLTYPE CreateProxyFactoryEntry(
18055        IUIAutomationProxyFactory *factory,
18056        IUIAutomationProxyFactoryEntry **factoryEntry) = 0;
18057
18058    virtual HRESULT STDMETHODCALLTYPE get_ProxyFactoryMapping(
18059        IUIAutomationProxyFactoryMapping **factoryMapping) = 0;
18060
18061    virtual HRESULT STDMETHODCALLTYPE GetPropertyProgrammaticName(
18062        PROPERTYID property,
18063        BSTR *name) = 0;
18064
18065    virtual HRESULT STDMETHODCALLTYPE GetPatternProgrammaticName(
18066        PATTERNID pattern,
18067        BSTR *name) = 0;
18068
18069    virtual HRESULT STDMETHODCALLTYPE PollForPotentialSupportedPatterns(
18070        IUIAutomationElement *pElement,
18071        SAFEARRAY **patternIds,
18072        SAFEARRAY **patternNames) = 0;
18073
18074    virtual HRESULT STDMETHODCALLTYPE PollForPotentialSupportedProperties(
18075        IUIAutomationElement *pElement,
18076        SAFEARRAY **propertyIds,
18077        SAFEARRAY **propertyNames) = 0;
18078
18079    virtual HRESULT STDMETHODCALLTYPE CheckNotSupported(
18080        VARIANT value,
18081        WINBOOL *isNotSupported) = 0;
18082
18083    virtual HRESULT STDMETHODCALLTYPE get_ReservedNotSupportedValue(
18084        IUnknown **notSupportedValue) = 0;
18085
18086    virtual HRESULT STDMETHODCALLTYPE get_ReservedMixedAttributeValue(
18087        IUnknown **mixedAttributeValue) = 0;
18088
18089    virtual HRESULT STDMETHODCALLTYPE ElementFromIAccessible(
18090        IAccessible *accessible,
18091        int childId,
18092        IUIAutomationElement **element) = 0;
18093
18094    virtual HRESULT STDMETHODCALLTYPE ElementFromIAccessibleBuildCache(
18095        IAccessible *accessible,
18096        int childId,
18097        IUIAutomationCacheRequest *cacheRequest,
18098        IUIAutomationElement **element) = 0;
18099
18100};
18101#ifdef __CRT_UUID_DECL
18102__CRT_UUID_DECL(IUIAutomation, 0x30cbe57d, 0xd9d0, 0x452a, 0xab,0x13, 0x7a,0xc5,0xac,0x48,0x25,0xee)
18103#endif
18104#else
18105typedef struct IUIAutomationVtbl {
18106    BEGIN_INTERFACE
18107
18108    /*** IUnknown methods ***/
18109    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
18110        IUIAutomation *This,
18111        REFIID riid,
18112        void **ppvObject);
18113
18114    ULONG (STDMETHODCALLTYPE *AddRef)(
18115        IUIAutomation *This);
18116
18117    ULONG (STDMETHODCALLTYPE *Release)(
18118        IUIAutomation *This);
18119
18120    /*** IUIAutomation methods ***/
18121    HRESULT (STDMETHODCALLTYPE *CompareElements)(
18122        IUIAutomation *This,
18123        IUIAutomationElement *el1,
18124        IUIAutomationElement *el2,
18125        WINBOOL *areSame);
18126
18127    HRESULT (STDMETHODCALLTYPE *CompareRuntimeIds)(
18128        IUIAutomation *This,
18129        SAFEARRAY *runtimeId1,
18130        SAFEARRAY *runtimeId2,
18131        WINBOOL *areSame);
18132
18133    HRESULT (STDMETHODCALLTYPE *GetRootElement)(
18134        IUIAutomation *This,
18135        IUIAutomationElement **root);
18136
18137    HRESULT (STDMETHODCALLTYPE *ElementFromHandle)(
18138        IUIAutomation *This,
18139        UIA_HWND hwnd,
18140        IUIAutomationElement **element);
18141
18142    HRESULT (STDMETHODCALLTYPE *ElementFromPoint)(
18143        IUIAutomation *This,
18144        POINT pt,
18145        IUIAutomationElement **element);
18146
18147    HRESULT (STDMETHODCALLTYPE *GetFocusedElement)(
18148        IUIAutomation *This,
18149        IUIAutomationElement **element);
18150
18151    HRESULT (STDMETHODCALLTYPE *GetRootElementBuildCache)(
18152        IUIAutomation *This,
18153        IUIAutomationCacheRequest *cacheRequest,
18154        IUIAutomationElement **root);
18155
18156    HRESULT (STDMETHODCALLTYPE *ElementFromHandleBuildCache)(
18157        IUIAutomation *This,
18158        UIA_HWND hwnd,
18159        IUIAutomationCacheRequest *cacheRequest,
18160        IUIAutomationElement **element);
18161
18162    HRESULT (STDMETHODCALLTYPE *ElementFromPointBuildCache)(
18163        IUIAutomation *This,
18164        POINT pt,
18165        IUIAutomationCacheRequest *cacheRequest,
18166        IUIAutomationElement **element);
18167
18168    HRESULT (STDMETHODCALLTYPE *GetFocusedElementBuildCache)(
18169        IUIAutomation *This,
18170        IUIAutomationCacheRequest *cacheRequest,
18171        IUIAutomationElement **element);
18172
18173    HRESULT (STDMETHODCALLTYPE *CreateTreeWalker)(
18174        IUIAutomation *This,
18175        IUIAutomationCondition *pCondition,
18176        IUIAutomationTreeWalker **walker);
18177
18178    HRESULT (STDMETHODCALLTYPE *get_ControlViewWalker)(
18179        IUIAutomation *This,
18180        IUIAutomationTreeWalker **walker);
18181
18182    HRESULT (STDMETHODCALLTYPE *get_ContentViewWalker)(
18183        IUIAutomation *This,
18184        IUIAutomationTreeWalker **walker);
18185
18186    HRESULT (STDMETHODCALLTYPE *get_RawViewWalker)(
18187        IUIAutomation *This,
18188        IUIAutomationTreeWalker **walker);
18189
18190    HRESULT (STDMETHODCALLTYPE *get_RawViewCondition)(
18191        IUIAutomation *This,
18192        IUIAutomationCondition **condition);
18193
18194    HRESULT (STDMETHODCALLTYPE *get_ControlViewCondition)(
18195        IUIAutomation *This,
18196        IUIAutomationCondition **condition);
18197
18198    HRESULT (STDMETHODCALLTYPE *get_ContentViewCondition)(
18199        IUIAutomation *This,
18200        IUIAutomationCondition **condition);
18201
18202    HRESULT (STDMETHODCALLTYPE *CreateCacheRequest)(
18203        IUIAutomation *This,
18204        IUIAutomationCacheRequest **cacheRequest);
18205
18206    HRESULT (STDMETHODCALLTYPE *CreateTrueCondition)(
18207        IUIAutomation *This,
18208        IUIAutomationCondition **newCondition);
18209
18210    HRESULT (STDMETHODCALLTYPE *CreateFalseCondition)(
18211        IUIAutomation *This,
18212        IUIAutomationCondition **newCondition);
18213
18214    HRESULT (STDMETHODCALLTYPE *CreatePropertyCondition)(
18215        IUIAutomation *This,
18216        PROPERTYID propertyId,
18217        VARIANT value,
18218        IUIAutomationCondition **newCondition);
18219
18220    HRESULT (STDMETHODCALLTYPE *CreatePropertyConditionEx)(
18221        IUIAutomation *This,
18222        PROPERTYID propertyId,
18223        VARIANT value,
18224        enum PropertyConditionFlags flags,
18225        IUIAutomationCondition **newCondition);
18226
18227    HRESULT (STDMETHODCALLTYPE *CreateAndCondition)(
18228        IUIAutomation *This,
18229        IUIAutomationCondition *condition1,
18230        IUIAutomationCondition *condition2,
18231        IUIAutomationCondition **newCondition);
18232
18233    HRESULT (STDMETHODCALLTYPE *CreateAndConditionFromArray)(
18234        IUIAutomation *This,
18235        SAFEARRAY *conditions,
18236        IUIAutomationCondition **newCondition);
18237
18238    HRESULT (STDMETHODCALLTYPE *CreateAndConditionFromNativeArray)(
18239        IUIAutomation *This,
18240        IUIAutomationCondition **conditions,
18241        int conditionCount,
18242        IUIAutomationCondition **newCondition);
18243
18244    HRESULT (STDMETHODCALLTYPE *CreateOrCondition)(
18245        IUIAutomation *This,
18246        IUIAutomationCondition *condition1,
18247        IUIAutomationCondition *condition2,
18248        IUIAutomationCondition **newCondition);
18249
18250    HRESULT (STDMETHODCALLTYPE *CreateOrConditionFromArray)(
18251        IUIAutomation *This,
18252        SAFEARRAY *conditions,
18253        IUIAutomationCondition **newCondition);
18254
18255    HRESULT (STDMETHODCALLTYPE *CreateOrConditionFromNativeArray)(
18256        IUIAutomation *This,
18257        IUIAutomationCondition **conditions,
18258        int conditionCount,
18259        IUIAutomationCondition **newCondition);
18260
18261    HRESULT (STDMETHODCALLTYPE *CreateNotCondition)(
18262        IUIAutomation *This,
18263        IUIAutomationCondition *condition,
18264        IUIAutomationCondition **newCondition);
18265
18266    HRESULT (STDMETHODCALLTYPE *AddAutomationEventHandler)(
18267        IUIAutomation *This,
18268        EVENTID eventId,
18269        IUIAutomationElement *element,
18270        enum TreeScope scope,
18271        IUIAutomationCacheRequest *cacheRequest,
18272        IUIAutomationEventHandler *handler);
18273
18274    HRESULT (STDMETHODCALLTYPE *RemoveAutomationEventHandler)(
18275        IUIAutomation *This,
18276        EVENTID eventId,
18277        IUIAutomationElement *element,
18278        IUIAutomationEventHandler *handler);
18279
18280    HRESULT (STDMETHODCALLTYPE *AddPropertyChangedEventHandlerNativeArray)(
18281        IUIAutomation *This,
18282        IUIAutomationElement *element,
18283        enum TreeScope scope,
18284        IUIAutomationCacheRequest *cacheRequest,
18285        IUIAutomationPropertyChangedEventHandler *handler,
18286        PROPERTYID *propertyArray,
18287        int propertyCount);
18288
18289    HRESULT (STDMETHODCALLTYPE *AddPropertyChangedEventHandler)(
18290        IUIAutomation *This,
18291        IUIAutomationElement *element,
18292        enum TreeScope scope,
18293        IUIAutomationCacheRequest *cacheRequest,
18294        IUIAutomationPropertyChangedEventHandler *handler,
18295        SAFEARRAY *propertyArray);
18296
18297    HRESULT (STDMETHODCALLTYPE *RemovePropertyChangedEventHandler)(
18298        IUIAutomation *This,
18299        IUIAutomationElement *element,
18300        IUIAutomationPropertyChangedEventHandler *handler);
18301
18302    HRESULT (STDMETHODCALLTYPE *AddStructureChangedEventHandler)(
18303        IUIAutomation *This,
18304        IUIAutomationElement *element,
18305        enum TreeScope scope,
18306        IUIAutomationCacheRequest *cacheRequest,
18307        IUIAutomationStructureChangedEventHandler *handler);
18308
18309    HRESULT (STDMETHODCALLTYPE *RemoveStructureChangedEventHandler)(
18310        IUIAutomation *This,
18311        IUIAutomationElement *element,
18312        IUIAutomationStructureChangedEventHandler *handler);
18313
18314    HRESULT (STDMETHODCALLTYPE *AddFocusChangedEventHandler)(
18315        IUIAutomation *This,
18316        IUIAutomationCacheRequest *cacheRequest,
18317        IUIAutomationFocusChangedEventHandler *handler);
18318
18319    HRESULT (STDMETHODCALLTYPE *RemoveFocusChangedEventHandler)(
18320        IUIAutomation *This,
18321        IUIAutomationFocusChangedEventHandler *handler);
18322
18323    HRESULT (STDMETHODCALLTYPE *RemoveAllEventHandlers)(
18324        IUIAutomation *This);
18325
18326    HRESULT (STDMETHODCALLTYPE *IntNativeArrayToSafeArray)(
18327        IUIAutomation *This,
18328        int *array,
18329        int arrayCount,
18330        SAFEARRAY **safeArray);
18331
18332    HRESULT (STDMETHODCALLTYPE *IntSafeArrayToNativeArray)(
18333        IUIAutomation *This,
18334        SAFEARRAY *intArray,
18335        int **array,
18336        int *arrayCount);
18337
18338    HRESULT (STDMETHODCALLTYPE *RectToVariant)(
18339        IUIAutomation *This,
18340        RECT rc,
18341        VARIANT *var);
18342
18343    HRESULT (STDMETHODCALLTYPE *VariantToRect)(
18344        IUIAutomation *This,
18345        VARIANT var,
18346        RECT *rc);
18347
18348    HRESULT (STDMETHODCALLTYPE *SafeArrayToRectNativeArray)(
18349        IUIAutomation *This,
18350        SAFEARRAY *rects,
18351        RECT **rectArray,
18352        int *rectArrayCount);
18353
18354    HRESULT (STDMETHODCALLTYPE *CreateProxyFactoryEntry)(
18355        IUIAutomation *This,
18356        IUIAutomationProxyFactory *factory,
18357        IUIAutomationProxyFactoryEntry **factoryEntry);
18358
18359    HRESULT (STDMETHODCALLTYPE *get_ProxyFactoryMapping)(
18360        IUIAutomation *This,
18361        IUIAutomationProxyFactoryMapping **factoryMapping);
18362
18363    HRESULT (STDMETHODCALLTYPE *GetPropertyProgrammaticName)(
18364        IUIAutomation *This,
18365        PROPERTYID property,
18366        BSTR *name);
18367
18368    HRESULT (STDMETHODCALLTYPE *GetPatternProgrammaticName)(
18369        IUIAutomation *This,
18370        PATTERNID pattern,
18371        BSTR *name);
18372
18373    HRESULT (STDMETHODCALLTYPE *PollForPotentialSupportedPatterns)(
18374        IUIAutomation *This,
18375        IUIAutomationElement *pElement,
18376        SAFEARRAY **patternIds,
18377        SAFEARRAY **patternNames);
18378
18379    HRESULT (STDMETHODCALLTYPE *PollForPotentialSupportedProperties)(
18380        IUIAutomation *This,
18381        IUIAutomationElement *pElement,
18382        SAFEARRAY **propertyIds,
18383        SAFEARRAY **propertyNames);
18384
18385    HRESULT (STDMETHODCALLTYPE *CheckNotSupported)(
18386        IUIAutomation *This,
18387        VARIANT value,
18388        WINBOOL *isNotSupported);
18389
18390    HRESULT (STDMETHODCALLTYPE *get_ReservedNotSupportedValue)(
18391        IUIAutomation *This,
18392        IUnknown **notSupportedValue);
18393
18394    HRESULT (STDMETHODCALLTYPE *get_ReservedMixedAttributeValue)(
18395        IUIAutomation *This,
18396        IUnknown **mixedAttributeValue);
18397
18398    HRESULT (STDMETHODCALLTYPE *ElementFromIAccessible)(
18399        IUIAutomation *This,
18400        IAccessible *accessible,
18401        int childId,
18402        IUIAutomationElement **element);
18403
18404    HRESULT (STDMETHODCALLTYPE *ElementFromIAccessibleBuildCache)(
18405        IUIAutomation *This,
18406        IAccessible *accessible,
18407        int childId,
18408        IUIAutomationCacheRequest *cacheRequest,
18409        IUIAutomationElement **element);
18410
18411    END_INTERFACE
18412} IUIAutomationVtbl;
18413
18414interface IUIAutomation {
18415    CONST_VTBL IUIAutomationVtbl* lpVtbl;
18416};
18417
18418#ifdef COBJMACROS
18419#ifndef WIDL_C_INLINE_WRAPPERS
18420/*** IUnknown methods ***/
18421#define IUIAutomation_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
18422#define IUIAutomation_AddRef(This) (This)->lpVtbl->AddRef(This)
18423#define IUIAutomation_Release(This) (This)->lpVtbl->Release(This)
18424/*** IUIAutomation methods ***/
18425#define IUIAutomation_CompareElements(This,el1,el2,areSame) (This)->lpVtbl->CompareElements(This,el1,el2,areSame)
18426#define IUIAutomation_CompareRuntimeIds(This,runtimeId1,runtimeId2,areSame) (This)->lpVtbl->CompareRuntimeIds(This,runtimeId1,runtimeId2,areSame)
18427#define IUIAutomation_GetRootElement(This,root) (This)->lpVtbl->GetRootElement(This,root)
18428#define IUIAutomation_ElementFromHandle(This,hwnd,element) (This)->lpVtbl->ElementFromHandle(This,hwnd,element)
18429#define IUIAutomation_ElementFromPoint(This,pt,element) (This)->lpVtbl->ElementFromPoint(This,pt,element)
18430#define IUIAutomation_GetFocusedElement(This,element) (This)->lpVtbl->GetFocusedElement(This,element)
18431#define IUIAutomation_GetRootElementBuildCache(This,cacheRequest,root) (This)->lpVtbl->GetRootElementBuildCache(This,cacheRequest,root)
18432#define IUIAutomation_ElementFromHandleBuildCache(This,hwnd,cacheRequest,element) (This)->lpVtbl->ElementFromHandleBuildCache(This,hwnd,cacheRequest,element)
18433#define IUIAutomation_ElementFromPointBuildCache(This,pt,cacheRequest,element) (This)->lpVtbl->ElementFromPointBuildCache(This,pt,cacheRequest,element)
18434#define IUIAutomation_GetFocusedElementBuildCache(This,cacheRequest,element) (This)->lpVtbl->GetFocusedElementBuildCache(This,cacheRequest,element)
18435#define IUIAutomation_CreateTreeWalker(This,pCondition,walker) (This)->lpVtbl->CreateTreeWalker(This,pCondition,walker)
18436#define IUIAutomation_get_ControlViewWalker(This,walker) (This)->lpVtbl->get_ControlViewWalker(This,walker)
18437#define IUIAutomation_get_ContentViewWalker(This,walker) (This)->lpVtbl->get_ContentViewWalker(This,walker)
18438#define IUIAutomation_get_RawViewWalker(This,walker) (This)->lpVtbl->get_RawViewWalker(This,walker)
18439#define IUIAutomation_get_RawViewCondition(This,condition) (This)->lpVtbl->get_RawViewCondition(This,condition)
18440#define IUIAutomation_get_ControlViewCondition(This,condition) (This)->lpVtbl->get_ControlViewCondition(This,condition)
18441#define IUIAutomation_get_ContentViewCondition(This,condition) (This)->lpVtbl->get_ContentViewCondition(This,condition)
18442#define IUIAutomation_CreateCacheRequest(This,cacheRequest) (This)->lpVtbl->CreateCacheRequest(This,cacheRequest)
18443#define IUIAutomation_CreateTrueCondition(This,newCondition) (This)->lpVtbl->CreateTrueCondition(This,newCondition)
18444#define IUIAutomation_CreateFalseCondition(This,newCondition) (This)->lpVtbl->CreateFalseCondition(This,newCondition)
18445#define IUIAutomation_CreatePropertyCondition(This,propertyId,value,newCondition) (This)->lpVtbl->CreatePropertyCondition(This,propertyId,value,newCondition)
18446#define IUIAutomation_CreatePropertyConditionEx(This,propertyId,value,flags,newCondition) (This)->lpVtbl->CreatePropertyConditionEx(This,propertyId,value,flags,newCondition)
18447#define IUIAutomation_CreateAndCondition(This,condition1,condition2,newCondition) (This)->lpVtbl->CreateAndCondition(This,condition1,condition2,newCondition)
18448#define IUIAutomation_CreateAndConditionFromArray(This,conditions,newCondition) (This)->lpVtbl->CreateAndConditionFromArray(This,conditions,newCondition)
18449#define IUIAutomation_CreateAndConditionFromNativeArray(This,conditions,conditionCount,newCondition) (This)->lpVtbl->CreateAndConditionFromNativeArray(This,conditions,conditionCount,newCondition)
18450#define IUIAutomation_CreateOrCondition(This,condition1,condition2,newCondition) (This)->lpVtbl->CreateOrCondition(This,condition1,condition2,newCondition)
18451#define IUIAutomation_CreateOrConditionFromArray(This,conditions,newCondition) (This)->lpVtbl->CreateOrConditionFromArray(This,conditions,newCondition)
18452#define IUIAutomation_CreateOrConditionFromNativeArray(This,conditions,conditionCount,newCondition) (This)->lpVtbl->CreateOrConditionFromNativeArray(This,conditions,conditionCount,newCondition)
18453#define IUIAutomation_CreateNotCondition(This,condition,newCondition) (This)->lpVtbl->CreateNotCondition(This,condition,newCondition)
18454#define IUIAutomation_AddAutomationEventHandler(This,eventId,element,scope,cacheRequest,handler) (This)->lpVtbl->AddAutomationEventHandler(This,eventId,element,scope,cacheRequest,handler)
18455#define IUIAutomation_RemoveAutomationEventHandler(This,eventId,element,handler) (This)->lpVtbl->RemoveAutomationEventHandler(This,eventId,element,handler)
18456#define IUIAutomation_AddPropertyChangedEventHandlerNativeArray(This,element,scope,cacheRequest,handler,propertyArray,propertyCount) (This)->lpVtbl->AddPropertyChangedEventHandlerNativeArray(This,element,scope,cacheRequest,handler,propertyArray,propertyCount)
18457#define IUIAutomation_AddPropertyChangedEventHandler(This,element,scope,cacheRequest,handler,propertyArray) (This)->lpVtbl->AddPropertyChangedEventHandler(This,element,scope,cacheRequest,handler,propertyArray)
18458#define IUIAutomation_RemovePropertyChangedEventHandler(This,element,handler) (This)->lpVtbl->RemovePropertyChangedEventHandler(This,element,handler)
18459#define IUIAutomation_AddStructureChangedEventHandler(This,element,scope,cacheRequest,handler) (This)->lpVtbl->AddStructureChangedEventHandler(This,element,scope,cacheRequest,handler)
18460#define IUIAutomation_RemoveStructureChangedEventHandler(This,element,handler) (This)->lpVtbl->RemoveStructureChangedEventHandler(This,element,handler)
18461#define IUIAutomation_AddFocusChangedEventHandler(This,cacheRequest,handler) (This)->lpVtbl->AddFocusChangedEventHandler(This,cacheRequest,handler)
18462#define IUIAutomation_RemoveFocusChangedEventHandler(This,handler) (This)->lpVtbl->RemoveFocusChangedEventHandler(This,handler)
18463#define IUIAutomation_RemoveAllEventHandlers(This) (This)->lpVtbl->RemoveAllEventHandlers(This)
18464#define IUIAutomation_IntNativeArrayToSafeArray(This,array,arrayCount,safeArray) (This)->lpVtbl->IntNativeArrayToSafeArray(This,array,arrayCount,safeArray)
18465#define IUIAutomation_IntSafeArrayToNativeArray(This,intArray,array,arrayCount) (This)->lpVtbl->IntSafeArrayToNativeArray(This,intArray,array,arrayCount)
18466#define IUIAutomation_RectToVariant(This,rc,var) (This)->lpVtbl->RectToVariant(This,rc,var)
18467#define IUIAutomation_VariantToRect(This,var,rc) (This)->lpVtbl->VariantToRect(This,var,rc)
18468#define IUIAutomation_SafeArrayToRectNativeArray(This,rects,rectArray,rectArrayCount) (This)->lpVtbl->SafeArrayToRectNativeArray(This,rects,rectArray,rectArrayCount)
18469#define IUIAutomation_CreateProxyFactoryEntry(This,factory,factoryEntry) (This)->lpVtbl->CreateProxyFactoryEntry(This,factory,factoryEntry)
18470#define IUIAutomation_get_ProxyFactoryMapping(This,factoryMapping) (This)->lpVtbl->get_ProxyFactoryMapping(This,factoryMapping)
18471#define IUIAutomation_GetPropertyProgrammaticName(This,property,name) (This)->lpVtbl->GetPropertyProgrammaticName(This,property,name)
18472#define IUIAutomation_GetPatternProgrammaticName(This,pattern,name) (This)->lpVtbl->GetPatternProgrammaticName(This,pattern,name)
18473#define IUIAutomation_PollForPotentialSupportedPatterns(This,pElement,patternIds,patternNames) (This)->lpVtbl->PollForPotentialSupportedPatterns(This,pElement,patternIds,patternNames)
18474#define IUIAutomation_PollForPotentialSupportedProperties(This,pElement,propertyIds,propertyNames) (This)->lpVtbl->PollForPotentialSupportedProperties(This,pElement,propertyIds,propertyNames)
18475#define IUIAutomation_CheckNotSupported(This,value,isNotSupported) (This)->lpVtbl->CheckNotSupported(This,value,isNotSupported)
18476#define IUIAutomation_get_ReservedNotSupportedValue(This,notSupportedValue) (This)->lpVtbl->get_ReservedNotSupportedValue(This,notSupportedValue)
18477#define IUIAutomation_get_ReservedMixedAttributeValue(This,mixedAttributeValue) (This)->lpVtbl->get_ReservedMixedAttributeValue(This,mixedAttributeValue)
18478#define IUIAutomation_ElementFromIAccessible(This,accessible,childId,element) (This)->lpVtbl->ElementFromIAccessible(This,accessible,childId,element)
18479#define IUIAutomation_ElementFromIAccessibleBuildCache(This,accessible,childId,cacheRequest,element) (This)->lpVtbl->ElementFromIAccessibleBuildCache(This,accessible,childId,cacheRequest,element)
18480#else
18481/*** IUnknown methods ***/
18482static inline HRESULT IUIAutomation_QueryInterface(IUIAutomation* This,REFIID riid,void **ppvObject) {
18483    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
18484}
18485static inline ULONG IUIAutomation_AddRef(IUIAutomation* This) {
18486    return This->lpVtbl->AddRef(This);
18487}
18488static inline ULONG IUIAutomation_Release(IUIAutomation* This) {
18489    return This->lpVtbl->Release(This);
18490}
18491/*** IUIAutomation methods ***/
18492static inline HRESULT IUIAutomation_CompareElements(IUIAutomation* This,IUIAutomationElement *el1,IUIAutomationElement *el2,WINBOOL *areSame) {
18493    return This->lpVtbl->CompareElements(This,el1,el2,areSame);
18494}
18495static inline HRESULT IUIAutomation_CompareRuntimeIds(IUIAutomation* This,SAFEARRAY *runtimeId1,SAFEARRAY *runtimeId2,WINBOOL *areSame) {
18496    return This->lpVtbl->CompareRuntimeIds(This,runtimeId1,runtimeId2,areSame);
18497}
18498static inline HRESULT IUIAutomation_GetRootElement(IUIAutomation* This,IUIAutomationElement **root) {
18499    return This->lpVtbl->GetRootElement(This,root);
18500}
18501static inline HRESULT IUIAutomation_ElementFromHandle(IUIAutomation* This,UIA_HWND hwnd,IUIAutomationElement **element) {
18502    return This->lpVtbl->ElementFromHandle(This,hwnd,element);
18503}
18504static inline HRESULT IUIAutomation_ElementFromPoint(IUIAutomation* This,POINT pt,IUIAutomationElement **element) {
18505    return This->lpVtbl->ElementFromPoint(This,pt,element);
18506}
18507static inline HRESULT IUIAutomation_GetFocusedElement(IUIAutomation* This,IUIAutomationElement **element) {
18508    return This->lpVtbl->GetFocusedElement(This,element);
18509}
18510static inline HRESULT IUIAutomation_GetRootElementBuildCache(IUIAutomation* This,IUIAutomationCacheRequest *cacheRequest,IUIAutomationElement **root) {
18511    return This->lpVtbl->GetRootElementBuildCache(This,cacheRequest,root);
18512}
18513static inline HRESULT IUIAutomation_ElementFromHandleBuildCache(IUIAutomation* This,UIA_HWND hwnd,IUIAutomationCacheRequest *cacheRequest,IUIAutomationElement **element) {
18514    return This->lpVtbl->ElementFromHandleBuildCache(This,hwnd,cacheRequest,element);
18515}
18516static inline HRESULT IUIAutomation_ElementFromPointBuildCache(IUIAutomation* This,POINT pt,IUIAutomationCacheRequest *cacheRequest,IUIAutomationElement **element) {
18517    return This->lpVtbl->ElementFromPointBuildCache(This,pt,cacheRequest,element);
18518}
18519static inline HRESULT IUIAutomation_GetFocusedElementBuildCache(IUIAutomation* This,IUIAutomationCacheRequest *cacheRequest,IUIAutomationElement **element) {
18520    return This->lpVtbl->GetFocusedElementBuildCache(This,cacheRequest,element);
18521}
18522static inline HRESULT IUIAutomation_CreateTreeWalker(IUIAutomation* This,IUIAutomationCondition *pCondition,IUIAutomationTreeWalker **walker) {
18523    return This->lpVtbl->CreateTreeWalker(This,pCondition,walker);
18524}
18525static inline HRESULT IUIAutomation_get_ControlViewWalker(IUIAutomation* This,IUIAutomationTreeWalker **walker) {
18526    return This->lpVtbl->get_ControlViewWalker(This,walker);
18527}
18528static inline HRESULT IUIAutomation_get_ContentViewWalker(IUIAutomation* This,IUIAutomationTreeWalker **walker) {
18529    return This->lpVtbl->get_ContentViewWalker(This,walker);
18530}
18531static inline HRESULT IUIAutomation_get_RawViewWalker(IUIAutomation* This,IUIAutomationTreeWalker **walker) {
18532    return This->lpVtbl->get_RawViewWalker(This,walker);
18533}
18534static inline HRESULT IUIAutomation_get_RawViewCondition(IUIAutomation* This,IUIAutomationCondition **condition) {
18535    return This->lpVtbl->get_RawViewCondition(This,condition);
18536}
18537static inline HRESULT IUIAutomation_get_ControlViewCondition(IUIAutomation* This,IUIAutomationCondition **condition) {
18538    return This->lpVtbl->get_ControlViewCondition(This,condition);
18539}
18540static inline HRESULT IUIAutomation_get_ContentViewCondition(IUIAutomation* This,IUIAutomationCondition **condition) {
18541    return This->lpVtbl->get_ContentViewCondition(This,condition);
18542}
18543static inline HRESULT IUIAutomation_CreateCacheRequest(IUIAutomation* This,IUIAutomationCacheRequest **cacheRequest) {
18544    return This->lpVtbl->CreateCacheRequest(This,cacheRequest);
18545}
18546static inline HRESULT IUIAutomation_CreateTrueCondition(IUIAutomation* This,IUIAutomationCondition **newCondition) {
18547    return This->lpVtbl->CreateTrueCondition(This,newCondition);
18548}
18549static inline HRESULT IUIAutomation_CreateFalseCondition(IUIAutomation* This,IUIAutomationCondition **newCondition) {
18550    return This->lpVtbl->CreateFalseCondition(This,newCondition);
18551}
18552static inline HRESULT IUIAutomation_CreatePropertyCondition(IUIAutomation* This,PROPERTYID propertyId,VARIANT value,IUIAutomationCondition **newCondition) {
18553    return This->lpVtbl->CreatePropertyCondition(This,propertyId,value,newCondition);
18554}
18555static inline HRESULT IUIAutomation_CreatePropertyConditionEx(IUIAutomation* This,PROPERTYID propertyId,VARIANT value,enum PropertyConditionFlags flags,IUIAutomationCondition **newCondition) {
18556    return This->lpVtbl->CreatePropertyConditionEx(This,propertyId,value,flags,newCondition);
18557}
18558static inline HRESULT IUIAutomation_CreateAndCondition(IUIAutomation* This,IUIAutomationCondition *condition1,IUIAutomationCondition *condition2,IUIAutomationCondition **newCondition) {
18559    return This->lpVtbl->CreateAndCondition(This,condition1,condition2,newCondition);
18560}
18561static inline HRESULT IUIAutomation_CreateAndConditionFromArray(IUIAutomation* This,SAFEARRAY *conditions,IUIAutomationCondition **newCondition) {
18562    return This->lpVtbl->CreateAndConditionFromArray(This,conditions,newCondition);
18563}
18564static inline HRESULT IUIAutomation_CreateAndConditionFromNativeArray(IUIAutomation* This,IUIAutomationCondition **conditions,int conditionCount,IUIAutomationCondition **newCondition) {
18565    return This->lpVtbl->CreateAndConditionFromNativeArray(This,conditions,conditionCount,newCondition);
18566}
18567static inline HRESULT IUIAutomation_CreateOrCondition(IUIAutomation* This,IUIAutomationCondition *condition1,IUIAutomationCondition *condition2,IUIAutomationCondition **newCondition) {
18568    return This->lpVtbl->CreateOrCondition(This,condition1,condition2,newCondition);
18569}
18570static inline HRESULT IUIAutomation_CreateOrConditionFromArray(IUIAutomation* This,SAFEARRAY *conditions,IUIAutomationCondition **newCondition) {
18571    return This->lpVtbl->CreateOrConditionFromArray(This,conditions,newCondition);
18572}
18573static inline HRESULT IUIAutomation_CreateOrConditionFromNativeArray(IUIAutomation* This,IUIAutomationCondition **conditions,int conditionCount,IUIAutomationCondition **newCondition) {
18574    return This->lpVtbl->CreateOrConditionFromNativeArray(This,conditions,conditionCount,newCondition);
18575}
18576static inline HRESULT IUIAutomation_CreateNotCondition(IUIAutomation* This,IUIAutomationCondition *condition,IUIAutomationCondition **newCondition) {
18577    return This->lpVtbl->CreateNotCondition(This,condition,newCondition);
18578}
18579static inline HRESULT IUIAutomation_AddAutomationEventHandler(IUIAutomation* This,EVENTID eventId,IUIAutomationElement *element,enum TreeScope scope,IUIAutomationCacheRequest *cacheRequest,IUIAutomationEventHandler *handler) {
18580    return This->lpVtbl->AddAutomationEventHandler(This,eventId,element,scope,cacheRequest,handler);
18581}
18582static inline HRESULT IUIAutomation_RemoveAutomationEventHandler(IUIAutomation* This,EVENTID eventId,IUIAutomationElement *element,IUIAutomationEventHandler *handler) {
18583    return This->lpVtbl->RemoveAutomationEventHandler(This,eventId,element,handler);
18584}
18585static inline HRESULT IUIAutomation_AddPropertyChangedEventHandlerNativeArray(IUIAutomation* This,IUIAutomationElement *element,enum TreeScope scope,IUIAutomationCacheRequest *cacheRequest,IUIAutomationPropertyChangedEventHandler *handler,PROPERTYID *propertyArray,int propertyCount) {
18586    return This->lpVtbl->AddPropertyChangedEventHandlerNativeArray(This,element,scope,cacheRequest,handler,propertyArray,propertyCount);
18587}
18588static inline HRESULT IUIAutomation_AddPropertyChangedEventHandler(IUIAutomation* This,IUIAutomationElement *element,enum TreeScope scope,IUIAutomationCacheRequest *cacheRequest,IUIAutomationPropertyChangedEventHandler *handler,SAFEARRAY *propertyArray) {
18589    return This->lpVtbl->AddPropertyChangedEventHandler(This,element,scope,cacheRequest,handler,propertyArray);
18590}
18591static inline HRESULT IUIAutomation_RemovePropertyChangedEventHandler(IUIAutomation* This,IUIAutomationElement *element,IUIAutomationPropertyChangedEventHandler *handler) {
18592    return This->lpVtbl->RemovePropertyChangedEventHandler(This,element,handler);
18593}
18594static inline HRESULT IUIAutomation_AddStructureChangedEventHandler(IUIAutomation* This,IUIAutomationElement *element,enum TreeScope scope,IUIAutomationCacheRequest *cacheRequest,IUIAutomationStructureChangedEventHandler *handler) {
18595    return This->lpVtbl->AddStructureChangedEventHandler(This,element,scope,cacheRequest,handler);
18596}
18597static inline HRESULT IUIAutomation_RemoveStructureChangedEventHandler(IUIAutomation* This,IUIAutomationElement *element,IUIAutomationStructureChangedEventHandler *handler) {
18598    return This->lpVtbl->RemoveStructureChangedEventHandler(This,element,handler);
18599}
18600static inline HRESULT IUIAutomation_AddFocusChangedEventHandler(IUIAutomation* This,IUIAutomationCacheRequest *cacheRequest,IUIAutomationFocusChangedEventHandler *handler) {
18601    return This->lpVtbl->AddFocusChangedEventHandler(This,cacheRequest,handler);
18602}
18603static inline HRESULT IUIAutomation_RemoveFocusChangedEventHandler(IUIAutomation* This,IUIAutomationFocusChangedEventHandler *handler) {
18604    return This->lpVtbl->RemoveFocusChangedEventHandler(This,handler);
18605}
18606static inline HRESULT IUIAutomation_RemoveAllEventHandlers(IUIAutomation* This) {
18607    return This->lpVtbl->RemoveAllEventHandlers(This);
18608}
18609static inline HRESULT IUIAutomation_IntNativeArrayToSafeArray(IUIAutomation* This,int *array,int arrayCount,SAFEARRAY **safeArray) {
18610    return This->lpVtbl->IntNativeArrayToSafeArray(This,array,arrayCount,safeArray);
18611}
18612static inline HRESULT IUIAutomation_IntSafeArrayToNativeArray(IUIAutomation* This,SAFEARRAY *intArray,int **array,int *arrayCount) {
18613    return This->lpVtbl->IntSafeArrayToNativeArray(This,intArray,array,arrayCount);
18614}
18615static inline HRESULT IUIAutomation_RectToVariant(IUIAutomation* This,RECT rc,VARIANT *var) {
18616    return This->lpVtbl->RectToVariant(This,rc,var);
18617}
18618static inline HRESULT IUIAutomation_VariantToRect(IUIAutomation* This,VARIANT var,RECT *rc) {
18619    return This->lpVtbl->VariantToRect(This,var,rc);
18620}
18621static inline HRESULT IUIAutomation_SafeArrayToRectNativeArray(IUIAutomation* This,SAFEARRAY *rects,RECT **rectArray,int *rectArrayCount) {
18622    return This->lpVtbl->SafeArrayToRectNativeArray(This,rects,rectArray,rectArrayCount);
18623}
18624static inline HRESULT IUIAutomation_CreateProxyFactoryEntry(IUIAutomation* This,IUIAutomationProxyFactory *factory,IUIAutomationProxyFactoryEntry **factoryEntry) {
18625    return This->lpVtbl->CreateProxyFactoryEntry(This,factory,factoryEntry);
18626}
18627static inline HRESULT IUIAutomation_get_ProxyFactoryMapping(IUIAutomation* This,IUIAutomationProxyFactoryMapping **factoryMapping) {
18628    return This->lpVtbl->get_ProxyFactoryMapping(This,factoryMapping);
18629}
18630static inline HRESULT IUIAutomation_GetPropertyProgrammaticName(IUIAutomation* This,PROPERTYID property,BSTR *name) {
18631    return This->lpVtbl->GetPropertyProgrammaticName(This,property,name);
18632}
18633static inline HRESULT IUIAutomation_GetPatternProgrammaticName(IUIAutomation* This,PATTERNID pattern,BSTR *name) {
18634    return This->lpVtbl->GetPatternProgrammaticName(This,pattern,name);
18635}
18636static inline HRESULT IUIAutomation_PollForPotentialSupportedPatterns(IUIAutomation* This,IUIAutomationElement *pElement,SAFEARRAY **patternIds,SAFEARRAY **patternNames) {
18637    return This->lpVtbl->PollForPotentialSupportedPatterns(This,pElement,patternIds,patternNames);
18638}
18639static inline HRESULT IUIAutomation_PollForPotentialSupportedProperties(IUIAutomation* This,IUIAutomationElement *pElement,SAFEARRAY **propertyIds,SAFEARRAY **propertyNames) {
18640    return This->lpVtbl->PollForPotentialSupportedProperties(This,pElement,propertyIds,propertyNames);
18641}
18642static inline HRESULT IUIAutomation_CheckNotSupported(IUIAutomation* This,VARIANT value,WINBOOL *isNotSupported) {
18643    return This->lpVtbl->CheckNotSupported(This,value,isNotSupported);
18644}
18645static inline HRESULT IUIAutomation_get_ReservedNotSupportedValue(IUIAutomation* This,IUnknown **notSupportedValue) {
18646    return This->lpVtbl->get_ReservedNotSupportedValue(This,notSupportedValue);
18647}
18648static inline HRESULT IUIAutomation_get_ReservedMixedAttributeValue(IUIAutomation* This,IUnknown **mixedAttributeValue) {
18649    return This->lpVtbl->get_ReservedMixedAttributeValue(This,mixedAttributeValue);
18650}
18651static inline HRESULT IUIAutomation_ElementFromIAccessible(IUIAutomation* This,IAccessible *accessible,int childId,IUIAutomationElement **element) {
18652    return This->lpVtbl->ElementFromIAccessible(This,accessible,childId,element);
18653}
18654static inline HRESULT IUIAutomation_ElementFromIAccessibleBuildCache(IUIAutomation* This,IAccessible *accessible,int childId,IUIAutomationCacheRequest *cacheRequest,IUIAutomationElement **element) {
18655    return This->lpVtbl->ElementFromIAccessibleBuildCache(This,accessible,childId,cacheRequest,element);
18656}
18657#endif
18658#endif
18659
18660#endif
18661
18662
18663#endif  /* __IUIAutomation_INTERFACE_DEFINED__ */
18664
18665/*****************************************************************************
18666 * IUIAutomation2 interface
18667 */
18668#ifndef __IUIAutomation2_INTERFACE_DEFINED__
18669#define __IUIAutomation2_INTERFACE_DEFINED__
18670
18671DEFINE_GUID(IID_IUIAutomation2, 0x34723aff, 0x0c9d, 0x49d0, 0x98,0x96, 0x7a,0xb5,0x2d,0xf8,0xcd,0x8a);
18672#if defined(__cplusplus) && !defined(CINTERFACE)
18673MIDL_INTERFACE("34723aff-0c9d-49d0-9896-7ab52df8cd8a")
18674IUIAutomation2 : public IUIAutomation
18675{
18676    virtual HRESULT STDMETHODCALLTYPE get_AutoSetFocus(
18677        WINBOOL *autoSetFocus) = 0;
18678
18679    virtual HRESULT STDMETHODCALLTYPE put_AutoSetFocus(
18680        WINBOOL autoSetFocus) = 0;
18681
18682    virtual HRESULT STDMETHODCALLTYPE get_ConnectionTimeout(
18683        DWORD *timeout) = 0;
18684
18685    virtual HRESULT STDMETHODCALLTYPE put_ConnectionTimeout(
18686        DWORD timeout) = 0;
18687
18688    virtual HRESULT STDMETHODCALLTYPE get_TransactionTimeout(
18689        DWORD *timeout) = 0;
18690
18691    virtual HRESULT STDMETHODCALLTYPE put_TransactionTimeout(
18692        DWORD timeout) = 0;
18693
18694};
18695#ifdef __CRT_UUID_DECL
18696__CRT_UUID_DECL(IUIAutomation2, 0x34723aff, 0x0c9d, 0x49d0, 0x98,0x96, 0x7a,0xb5,0x2d,0xf8,0xcd,0x8a)
18697#endif
18698#else
18699typedef struct IUIAutomation2Vtbl {
18700    BEGIN_INTERFACE
18701
18702    /*** IUnknown methods ***/
18703    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
18704        IUIAutomation2 *This,
18705        REFIID riid,
18706        void **ppvObject);
18707
18708    ULONG (STDMETHODCALLTYPE *AddRef)(
18709        IUIAutomation2 *This);
18710
18711    ULONG (STDMETHODCALLTYPE *Release)(
18712        IUIAutomation2 *This);
18713
18714    /*** IUIAutomation methods ***/
18715    HRESULT (STDMETHODCALLTYPE *CompareElements)(
18716        IUIAutomation2 *This,
18717        IUIAutomationElement *el1,
18718        IUIAutomationElement *el2,
18719        WINBOOL *areSame);
18720
18721    HRESULT (STDMETHODCALLTYPE *CompareRuntimeIds)(
18722        IUIAutomation2 *This,
18723        SAFEARRAY *runtimeId1,
18724        SAFEARRAY *runtimeId2,
18725        WINBOOL *areSame);
18726
18727    HRESULT (STDMETHODCALLTYPE *GetRootElement)(
18728        IUIAutomation2 *This,
18729        IUIAutomationElement **root);
18730
18731    HRESULT (STDMETHODCALLTYPE *ElementFromHandle)(
18732        IUIAutomation2 *This,
18733        UIA_HWND hwnd,
18734        IUIAutomationElement **element);
18735
18736    HRESULT (STDMETHODCALLTYPE *ElementFromPoint)(
18737        IUIAutomation2 *This,
18738        POINT pt,
18739        IUIAutomationElement **element);
18740
18741    HRESULT (STDMETHODCALLTYPE *GetFocusedElement)(
18742        IUIAutomation2 *This,
18743        IUIAutomationElement **element);
18744
18745    HRESULT (STDMETHODCALLTYPE *GetRootElementBuildCache)(
18746        IUIAutomation2 *This,
18747        IUIAutomationCacheRequest *cacheRequest,
18748        IUIAutomationElement **root);
18749
18750    HRESULT (STDMETHODCALLTYPE *ElementFromHandleBuildCache)(
18751        IUIAutomation2 *This,
18752        UIA_HWND hwnd,
18753        IUIAutomationCacheRequest *cacheRequest,
18754        IUIAutomationElement **element);
18755
18756    HRESULT (STDMETHODCALLTYPE *ElementFromPointBuildCache)(
18757        IUIAutomation2 *This,
18758        POINT pt,
18759        IUIAutomationCacheRequest *cacheRequest,
18760        IUIAutomationElement **element);
18761
18762    HRESULT (STDMETHODCALLTYPE *GetFocusedElementBuildCache)(
18763        IUIAutomation2 *This,
18764        IUIAutomationCacheRequest *cacheRequest,
18765        IUIAutomationElement **element);
18766
18767    HRESULT (STDMETHODCALLTYPE *CreateTreeWalker)(
18768        IUIAutomation2 *This,
18769        IUIAutomationCondition *pCondition,
18770        IUIAutomationTreeWalker **walker);
18771
18772    HRESULT (STDMETHODCALLTYPE *get_ControlViewWalker)(
18773        IUIAutomation2 *This,
18774        IUIAutomationTreeWalker **walker);
18775
18776    HRESULT (STDMETHODCALLTYPE *get_ContentViewWalker)(
18777        IUIAutomation2 *This,
18778        IUIAutomationTreeWalker **walker);
18779
18780    HRESULT (STDMETHODCALLTYPE *get_RawViewWalker)(
18781        IUIAutomation2 *This,
18782        IUIAutomationTreeWalker **walker);
18783
18784    HRESULT (STDMETHODCALLTYPE *get_RawViewCondition)(
18785        IUIAutomation2 *This,
18786        IUIAutomationCondition **condition);
18787
18788    HRESULT (STDMETHODCALLTYPE *get_ControlViewCondition)(
18789        IUIAutomation2 *This,
18790        IUIAutomationCondition **condition);
18791
18792    HRESULT (STDMETHODCALLTYPE *get_ContentViewCondition)(
18793        IUIAutomation2 *This,
18794        IUIAutomationCondition **condition);
18795
18796    HRESULT (STDMETHODCALLTYPE *CreateCacheRequest)(
18797        IUIAutomation2 *This,
18798        IUIAutomationCacheRequest **cacheRequest);
18799
18800    HRESULT (STDMETHODCALLTYPE *CreateTrueCondition)(
18801        IUIAutomation2 *This,
18802        IUIAutomationCondition **newCondition);
18803
18804    HRESULT (STDMETHODCALLTYPE *CreateFalseCondition)(
18805        IUIAutomation2 *This,
18806        IUIAutomationCondition **newCondition);
18807
18808    HRESULT (STDMETHODCALLTYPE *CreatePropertyCondition)(
18809        IUIAutomation2 *This,
18810        PROPERTYID propertyId,
18811        VARIANT value,
18812        IUIAutomationCondition **newCondition);
18813
18814    HRESULT (STDMETHODCALLTYPE *CreatePropertyConditionEx)(
18815        IUIAutomation2 *This,
18816        PROPERTYID propertyId,
18817        VARIANT value,
18818        enum PropertyConditionFlags flags,
18819        IUIAutomationCondition **newCondition);
18820
18821    HRESULT (STDMETHODCALLTYPE *CreateAndCondition)(
18822        IUIAutomation2 *This,
18823        IUIAutomationCondition *condition1,
18824        IUIAutomationCondition *condition2,
18825        IUIAutomationCondition **newCondition);
18826
18827    HRESULT (STDMETHODCALLTYPE *CreateAndConditionFromArray)(
18828        IUIAutomation2 *This,
18829        SAFEARRAY *conditions,
18830        IUIAutomationCondition **newCondition);
18831
18832    HRESULT (STDMETHODCALLTYPE *CreateAndConditionFromNativeArray)(
18833        IUIAutomation2 *This,
18834        IUIAutomationCondition **conditions,
18835        int conditionCount,
18836        IUIAutomationCondition **newCondition);
18837
18838    HRESULT (STDMETHODCALLTYPE *CreateOrCondition)(
18839        IUIAutomation2 *This,
18840        IUIAutomationCondition *condition1,
18841        IUIAutomationCondition *condition2,
18842        IUIAutomationCondition **newCondition);
18843
18844    HRESULT (STDMETHODCALLTYPE *CreateOrConditionFromArray)(
18845        IUIAutomation2 *This,
18846        SAFEARRAY *conditions,
18847        IUIAutomationCondition **newCondition);
18848
18849    HRESULT (STDMETHODCALLTYPE *CreateOrConditionFromNativeArray)(
18850        IUIAutomation2 *This,
18851        IUIAutomationCondition **conditions,
18852        int conditionCount,
18853        IUIAutomationCondition **newCondition);
18854
18855    HRESULT (STDMETHODCALLTYPE *CreateNotCondition)(
18856        IUIAutomation2 *This,
18857        IUIAutomationCondition *condition,
18858        IUIAutomationCondition **newCondition);
18859
18860    HRESULT (STDMETHODCALLTYPE *AddAutomationEventHandler)(
18861        IUIAutomation2 *This,
18862        EVENTID eventId,
18863        IUIAutomationElement *element,
18864        enum TreeScope scope,
18865        IUIAutomationCacheRequest *cacheRequest,
18866        IUIAutomationEventHandler *handler);
18867
18868    HRESULT (STDMETHODCALLTYPE *RemoveAutomationEventHandler)(
18869        IUIAutomation2 *This,
18870        EVENTID eventId,
18871        IUIAutomationElement *element,
18872        IUIAutomationEventHandler *handler);
18873
18874    HRESULT (STDMETHODCALLTYPE *AddPropertyChangedEventHandlerNativeArray)(
18875        IUIAutomation2 *This,
18876        IUIAutomationElement *element,
18877        enum TreeScope scope,
18878        IUIAutomationCacheRequest *cacheRequest,
18879        IUIAutomationPropertyChangedEventHandler *handler,
18880        PROPERTYID *propertyArray,
18881        int propertyCount);
18882
18883    HRESULT (STDMETHODCALLTYPE *AddPropertyChangedEventHandler)(
18884        IUIAutomation2 *This,
18885        IUIAutomationElement *element,
18886        enum TreeScope scope,
18887        IUIAutomationCacheRequest *cacheRequest,
18888        IUIAutomationPropertyChangedEventHandler *handler,
18889        SAFEARRAY *propertyArray);
18890
18891    HRESULT (STDMETHODCALLTYPE *RemovePropertyChangedEventHandler)(
18892        IUIAutomation2 *This,
18893        IUIAutomationElement *element,
18894        IUIAutomationPropertyChangedEventHandler *handler);
18895
18896    HRESULT (STDMETHODCALLTYPE *AddStructureChangedEventHandler)(
18897        IUIAutomation2 *This,
18898        IUIAutomationElement *element,
18899        enum TreeScope scope,
18900        IUIAutomationCacheRequest *cacheRequest,
18901        IUIAutomationStructureChangedEventHandler *handler);
18902
18903    HRESULT (STDMETHODCALLTYPE *RemoveStructureChangedEventHandler)(
18904        IUIAutomation2 *This,
18905        IUIAutomationElement *element,
18906        IUIAutomationStructureChangedEventHandler *handler);
18907
18908    HRESULT (STDMETHODCALLTYPE *AddFocusChangedEventHandler)(
18909        IUIAutomation2 *This,
18910        IUIAutomationCacheRequest *cacheRequest,
18911        IUIAutomationFocusChangedEventHandler *handler);
18912
18913    HRESULT (STDMETHODCALLTYPE *RemoveFocusChangedEventHandler)(
18914        IUIAutomation2 *This,
18915        IUIAutomationFocusChangedEventHandler *handler);
18916
18917    HRESULT (STDMETHODCALLTYPE *RemoveAllEventHandlers)(
18918        IUIAutomation2 *This);
18919
18920    HRESULT (STDMETHODCALLTYPE *IntNativeArrayToSafeArray)(
18921        IUIAutomation2 *This,
18922        int *array,
18923        int arrayCount,
18924        SAFEARRAY **safeArray);
18925
18926    HRESULT (STDMETHODCALLTYPE *IntSafeArrayToNativeArray)(
18927        IUIAutomation2 *This,
18928        SAFEARRAY *intArray,
18929        int **array,
18930        int *arrayCount);
18931
18932    HRESULT (STDMETHODCALLTYPE *RectToVariant)(
18933        IUIAutomation2 *This,
18934        RECT rc,
18935        VARIANT *var);
18936
18937    HRESULT (STDMETHODCALLTYPE *VariantToRect)(
18938        IUIAutomation2 *This,
18939        VARIANT var,
18940        RECT *rc);
18941
18942    HRESULT (STDMETHODCALLTYPE *SafeArrayToRectNativeArray)(
18943        IUIAutomation2 *This,
18944        SAFEARRAY *rects,
18945        RECT **rectArray,
18946        int *rectArrayCount);
18947
18948    HRESULT (STDMETHODCALLTYPE *CreateProxyFactoryEntry)(
18949        IUIAutomation2 *This,
18950        IUIAutomationProxyFactory *factory,
18951        IUIAutomationProxyFactoryEntry **factoryEntry);
18952
18953    HRESULT (STDMETHODCALLTYPE *get_ProxyFactoryMapping)(
18954        IUIAutomation2 *This,
18955        IUIAutomationProxyFactoryMapping **factoryMapping);
18956
18957    HRESULT (STDMETHODCALLTYPE *GetPropertyProgrammaticName)(
18958        IUIAutomation2 *This,
18959        PROPERTYID property,
18960        BSTR *name);
18961
18962    HRESULT (STDMETHODCALLTYPE *GetPatternProgrammaticName)(
18963        IUIAutomation2 *This,
18964        PATTERNID pattern,
18965        BSTR *name);
18966
18967    HRESULT (STDMETHODCALLTYPE *PollForPotentialSupportedPatterns)(
18968        IUIAutomation2 *This,
18969        IUIAutomationElement *pElement,
18970        SAFEARRAY **patternIds,
18971        SAFEARRAY **patternNames);
18972
18973    HRESULT (STDMETHODCALLTYPE *PollForPotentialSupportedProperties)(
18974        IUIAutomation2 *This,
18975        IUIAutomationElement *pElement,
18976        SAFEARRAY **propertyIds,
18977        SAFEARRAY **propertyNames);
18978
18979    HRESULT (STDMETHODCALLTYPE *CheckNotSupported)(
18980        IUIAutomation2 *This,
18981        VARIANT value,
18982        WINBOOL *isNotSupported);
18983
18984    HRESULT (STDMETHODCALLTYPE *get_ReservedNotSupportedValue)(
18985        IUIAutomation2 *This,
18986        IUnknown **notSupportedValue);
18987
18988    HRESULT (STDMETHODCALLTYPE *get_ReservedMixedAttributeValue)(
18989        IUIAutomation2 *This,
18990        IUnknown **mixedAttributeValue);
18991
18992    HRESULT (STDMETHODCALLTYPE *ElementFromIAccessible)(
18993        IUIAutomation2 *This,
18994        IAccessible *accessible,
18995        int childId,
18996        IUIAutomationElement **element);
18997
18998    HRESULT (STDMETHODCALLTYPE *ElementFromIAccessibleBuildCache)(
18999        IUIAutomation2 *This,
19000        IAccessible *accessible,
19001        int childId,
19002        IUIAutomationCacheRequest *cacheRequest,
19003        IUIAutomationElement **element);
19004
19005    /*** IUIAutomation2 methods ***/
19006    HRESULT (STDMETHODCALLTYPE *get_AutoSetFocus)(
19007        IUIAutomation2 *This,
19008        WINBOOL *autoSetFocus);
19009
19010    HRESULT (STDMETHODCALLTYPE *put_AutoSetFocus)(
19011        IUIAutomation2 *This,
19012        WINBOOL autoSetFocus);
19013
19014    HRESULT (STDMETHODCALLTYPE *get_ConnectionTimeout)(
19015        IUIAutomation2 *This,
19016        DWORD *timeout);
19017
19018    HRESULT (STDMETHODCALLTYPE *put_ConnectionTimeout)(
19019        IUIAutomation2 *This,
19020        DWORD timeout);
19021
19022    HRESULT (STDMETHODCALLTYPE *get_TransactionTimeout)(
19023        IUIAutomation2 *This,
19024        DWORD *timeout);
19025
19026    HRESULT (STDMETHODCALLTYPE *put_TransactionTimeout)(
19027        IUIAutomation2 *This,
19028        DWORD timeout);
19029
19030    END_INTERFACE
19031} IUIAutomation2Vtbl;
19032
19033interface IUIAutomation2 {
19034    CONST_VTBL IUIAutomation2Vtbl* lpVtbl;
19035};
19036
19037#ifdef COBJMACROS
19038#ifndef WIDL_C_INLINE_WRAPPERS
19039/*** IUnknown methods ***/
19040#define IUIAutomation2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
19041#define IUIAutomation2_AddRef(This) (This)->lpVtbl->AddRef(This)
19042#define IUIAutomation2_Release(This) (This)->lpVtbl->Release(This)
19043/*** IUIAutomation methods ***/
19044#define IUIAutomation2_CompareElements(This,el1,el2,areSame) (This)->lpVtbl->CompareElements(This,el1,el2,areSame)
19045#define IUIAutomation2_CompareRuntimeIds(This,runtimeId1,runtimeId2,areSame) (This)->lpVtbl->CompareRuntimeIds(This,runtimeId1,runtimeId2,areSame)
19046#define IUIAutomation2_GetRootElement(This,root) (This)->lpVtbl->GetRootElement(This,root)
19047#define IUIAutomation2_ElementFromHandle(This,hwnd,element) (This)->lpVtbl->ElementFromHandle(This,hwnd,element)
19048#define IUIAutomation2_ElementFromPoint(This,pt,element) (This)->lpVtbl->ElementFromPoint(This,pt,element)
19049#define IUIAutomation2_GetFocusedElement(This,element) (This)->lpVtbl->GetFocusedElement(This,element)
19050#define IUIAutomation2_GetRootElementBuildCache(This,cacheRequest,root) (This)->lpVtbl->GetRootElementBuildCache(This,cacheRequest,root)
19051#define IUIAutomation2_ElementFromHandleBuildCache(This,hwnd,cacheRequest,element) (This)->lpVtbl->ElementFromHandleBuildCache(This,hwnd,cacheRequest,element)
19052#define IUIAutomation2_ElementFromPointBuildCache(This,pt,cacheRequest,element) (This)->lpVtbl->ElementFromPointBuildCache(This,pt,cacheRequest,element)
19053#define IUIAutomation2_GetFocusedElementBuildCache(This,cacheRequest,element) (This)->lpVtbl->GetFocusedElementBuildCache(This,cacheRequest,element)
19054#define IUIAutomation2_CreateTreeWalker(This,pCondition,walker) (This)->lpVtbl->CreateTreeWalker(This,pCondition,walker)
19055#define IUIAutomation2_get_ControlViewWalker(This,walker) (This)->lpVtbl->get_ControlViewWalker(This,walker)
19056#define IUIAutomation2_get_ContentViewWalker(This,walker) (This)->lpVtbl->get_ContentViewWalker(This,walker)
19057#define IUIAutomation2_get_RawViewWalker(This,walker) (This)->lpVtbl->get_RawViewWalker(This,walker)
19058#define IUIAutomation2_get_RawViewCondition(This,condition) (This)->lpVtbl->get_RawViewCondition(This,condition)
19059#define IUIAutomation2_get_ControlViewCondition(This,condition) (This)->lpVtbl->get_ControlViewCondition(This,condition)
19060#define IUIAutomation2_get_ContentViewCondition(This,condition) (This)->lpVtbl->get_ContentViewCondition(This,condition)
19061#define IUIAutomation2_CreateCacheRequest(This,cacheRequest) (This)->lpVtbl->CreateCacheRequest(This,cacheRequest)
19062#define IUIAutomation2_CreateTrueCondition(This,newCondition) (This)->lpVtbl->CreateTrueCondition(This,newCondition)
19063#define IUIAutomation2_CreateFalseCondition(This,newCondition) (This)->lpVtbl->CreateFalseCondition(This,newCondition)
19064#define IUIAutomation2_CreatePropertyCondition(This,propertyId,value,newCondition) (This)->lpVtbl->CreatePropertyCondition(This,propertyId,value,newCondition)
19065#define IUIAutomation2_CreatePropertyConditionEx(This,propertyId,value,flags,newCondition) (This)->lpVtbl->CreatePropertyConditionEx(This,propertyId,value,flags,newCondition)
19066#define IUIAutomation2_CreateAndCondition(This,condition1,condition2,newCondition) (This)->lpVtbl->CreateAndCondition(This,condition1,condition2,newCondition)
19067#define IUIAutomation2_CreateAndConditionFromArray(This,conditions,newCondition) (This)->lpVtbl->CreateAndConditionFromArray(This,conditions,newCondition)
19068#define IUIAutomation2_CreateAndConditionFromNativeArray(This,conditions,conditionCount,newCondition) (This)->lpVtbl->CreateAndConditionFromNativeArray(This,conditions,conditionCount,newCondition)
19069#define IUIAutomation2_CreateOrCondition(This,condition1,condition2,newCondition) (This)->lpVtbl->CreateOrCondition(This,condition1,condition2,newCondition)
19070#define IUIAutomation2_CreateOrConditionFromArray(This,conditions,newCondition) (This)->lpVtbl->CreateOrConditionFromArray(This,conditions,newCondition)
19071#define IUIAutomation2_CreateOrConditionFromNativeArray(This,conditions,conditionCount,newCondition) (This)->lpVtbl->CreateOrConditionFromNativeArray(This,conditions,conditionCount,newCondition)
19072#define IUIAutomation2_CreateNotCondition(This,condition,newCondition) (This)->lpVtbl->CreateNotCondition(This,condition,newCondition)
19073#define IUIAutomation2_AddAutomationEventHandler(This,eventId,element,scope,cacheRequest,handler) (This)->lpVtbl->AddAutomationEventHandler(This,eventId,element,scope,cacheRequest,handler)
19074#define IUIAutomation2_RemoveAutomationEventHandler(This,eventId,element,handler) (This)->lpVtbl->RemoveAutomationEventHandler(This,eventId,element,handler)
19075#define IUIAutomation2_AddPropertyChangedEventHandlerNativeArray(This,element,scope,cacheRequest,handler,propertyArray,propertyCount) (This)->lpVtbl->AddPropertyChangedEventHandlerNativeArray(This,element,scope,cacheRequest,handler,propertyArray,propertyCount)
19076#define IUIAutomation2_AddPropertyChangedEventHandler(This,element,scope,cacheRequest,handler,propertyArray) (This)->lpVtbl->AddPropertyChangedEventHandler(This,element,scope,cacheRequest,handler,propertyArray)
19077#define IUIAutomation2_RemovePropertyChangedEventHandler(This,element,handler) (This)->lpVtbl->RemovePropertyChangedEventHandler(This,element,handler)
19078#define IUIAutomation2_AddStructureChangedEventHandler(This,element,scope,cacheRequest,handler) (This)->lpVtbl->AddStructureChangedEventHandler(This,element,scope,cacheRequest,handler)
19079#define IUIAutomation2_RemoveStructureChangedEventHandler(This,element,handler) (This)->lpVtbl->RemoveStructureChangedEventHandler(This,element,handler)
19080#define IUIAutomation2_AddFocusChangedEventHandler(This,cacheRequest,handler) (This)->lpVtbl->AddFocusChangedEventHandler(This,cacheRequest,handler)
19081#define IUIAutomation2_RemoveFocusChangedEventHandler(This,handler) (This)->lpVtbl->RemoveFocusChangedEventHandler(This,handler)
19082#define IUIAutomation2_RemoveAllEventHandlers(This) (This)->lpVtbl->RemoveAllEventHandlers(This)
19083#define IUIAutomation2_IntNativeArrayToSafeArray(This,array,arrayCount,safeArray) (This)->lpVtbl->IntNativeArrayToSafeArray(This,array,arrayCount,safeArray)
19084#define IUIAutomation2_IntSafeArrayToNativeArray(This,intArray,array,arrayCount) (This)->lpVtbl->IntSafeArrayToNativeArray(This,intArray,array,arrayCount)
19085#define IUIAutomation2_RectToVariant(This,rc,var) (This)->lpVtbl->RectToVariant(This,rc,var)
19086#define IUIAutomation2_VariantToRect(This,var,rc) (This)->lpVtbl->VariantToRect(This,var,rc)
19087#define IUIAutomation2_SafeArrayToRectNativeArray(This,rects,rectArray,rectArrayCount) (This)->lpVtbl->SafeArrayToRectNativeArray(This,rects,rectArray,rectArrayCount)
19088#define IUIAutomation2_CreateProxyFactoryEntry(This,factory,factoryEntry) (This)->lpVtbl->CreateProxyFactoryEntry(This,factory,factoryEntry)
19089#define IUIAutomation2_get_ProxyFactoryMapping(This,factoryMapping) (This)->lpVtbl->get_ProxyFactoryMapping(This,factoryMapping)
19090#define IUIAutomation2_GetPropertyProgrammaticName(This,property,name) (This)->lpVtbl->GetPropertyProgrammaticName(This,property,name)
19091#define IUIAutomation2_GetPatternProgrammaticName(This,pattern,name) (This)->lpVtbl->GetPatternProgrammaticName(This,pattern,name)
19092#define IUIAutomation2_PollForPotentialSupportedPatterns(This,pElement,patternIds,patternNames) (This)->lpVtbl->PollForPotentialSupportedPatterns(This,pElement,patternIds,patternNames)
19093#define IUIAutomation2_PollForPotentialSupportedProperties(This,pElement,propertyIds,propertyNames) (This)->lpVtbl->PollForPotentialSupportedProperties(This,pElement,propertyIds,propertyNames)
19094#define IUIAutomation2_CheckNotSupported(This,value,isNotSupported) (This)->lpVtbl->CheckNotSupported(This,value,isNotSupported)
19095#define IUIAutomation2_get_ReservedNotSupportedValue(This,notSupportedValue) (This)->lpVtbl->get_ReservedNotSupportedValue(This,notSupportedValue)
19096#define IUIAutomation2_get_ReservedMixedAttributeValue(This,mixedAttributeValue) (This)->lpVtbl->get_ReservedMixedAttributeValue(This,mixedAttributeValue)
19097#define IUIAutomation2_ElementFromIAccessible(This,accessible,childId,element) (This)->lpVtbl->ElementFromIAccessible(This,accessible,childId,element)
19098#define IUIAutomation2_ElementFromIAccessibleBuildCache(This,accessible,childId,cacheRequest,element) (This)->lpVtbl->ElementFromIAccessibleBuildCache(This,accessible,childId,cacheRequest,element)
19099/*** IUIAutomation2 methods ***/
19100#define IUIAutomation2_get_AutoSetFocus(This,autoSetFocus) (This)->lpVtbl->get_AutoSetFocus(This,autoSetFocus)
19101#define IUIAutomation2_put_AutoSetFocus(This,autoSetFocus) (This)->lpVtbl->put_AutoSetFocus(This,autoSetFocus)
19102#define IUIAutomation2_get_ConnectionTimeout(This,timeout) (This)->lpVtbl->get_ConnectionTimeout(This,timeout)
19103#define IUIAutomation2_put_ConnectionTimeout(This,timeout) (This)->lpVtbl->put_ConnectionTimeout(This,timeout)
19104#define IUIAutomation2_get_TransactionTimeout(This,timeout) (This)->lpVtbl->get_TransactionTimeout(This,timeout)
19105#define IUIAutomation2_put_TransactionTimeout(This,timeout) (This)->lpVtbl->put_TransactionTimeout(This,timeout)
19106#else
19107/*** IUnknown methods ***/
19108static inline HRESULT IUIAutomation2_QueryInterface(IUIAutomation2* This,REFIID riid,void **ppvObject) {
19109    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
19110}
19111static inline ULONG IUIAutomation2_AddRef(IUIAutomation2* This) {
19112    return This->lpVtbl->AddRef(This);
19113}
19114static inline ULONG IUIAutomation2_Release(IUIAutomation2* This) {
19115    return This->lpVtbl->Release(This);
19116}
19117/*** IUIAutomation methods ***/
19118static inline HRESULT IUIAutomation2_CompareElements(IUIAutomation2* This,IUIAutomationElement *el1,IUIAutomationElement *el2,WINBOOL *areSame) {
19119    return This->lpVtbl->CompareElements(This,el1,el2,areSame);
19120}
19121static inline HRESULT IUIAutomation2_CompareRuntimeIds(IUIAutomation2* This,SAFEARRAY *runtimeId1,SAFEARRAY *runtimeId2,WINBOOL *areSame) {
19122    return This->lpVtbl->CompareRuntimeIds(This,runtimeId1,runtimeId2,areSame);
19123}
19124static inline HRESULT IUIAutomation2_GetRootElement(IUIAutomation2* This,IUIAutomationElement **root) {
19125    return This->lpVtbl->GetRootElement(This,root);
19126}
19127static inline HRESULT IUIAutomation2_ElementFromHandle(IUIAutomation2* This,UIA_HWND hwnd,IUIAutomationElement **element) {
19128    return This->lpVtbl->ElementFromHandle(This,hwnd,element);
19129}
19130static inline HRESULT IUIAutomation2_ElementFromPoint(IUIAutomation2* This,POINT pt,IUIAutomationElement **element) {
19131    return This->lpVtbl->ElementFromPoint(This,pt,element);
19132}
19133static inline HRESULT IUIAutomation2_GetFocusedElement(IUIAutomation2* This,IUIAutomationElement **element) {
19134    return This->lpVtbl->GetFocusedElement(This,element);
19135}
19136static inline HRESULT IUIAutomation2_GetRootElementBuildCache(IUIAutomation2* This,IUIAutomationCacheRequest *cacheRequest,IUIAutomationElement **root) {
19137    return This->lpVtbl->GetRootElementBuildCache(This,cacheRequest,root);
19138}
19139static inline HRESULT IUIAutomation2_ElementFromHandleBuildCache(IUIAutomation2* This,UIA_HWND hwnd,IUIAutomationCacheRequest *cacheRequest,IUIAutomationElement **element) {
19140    return This->lpVtbl->ElementFromHandleBuildCache(This,hwnd,cacheRequest,element);
19141}
19142static inline HRESULT IUIAutomation2_ElementFromPointBuildCache(IUIAutomation2* This,POINT pt,IUIAutomationCacheRequest *cacheRequest,IUIAutomationElement **element) {
19143    return This->lpVtbl->ElementFromPointBuildCache(This,pt,cacheRequest,element);
19144}
19145static inline HRESULT IUIAutomation2_GetFocusedElementBuildCache(IUIAutomation2* This,IUIAutomationCacheRequest *cacheRequest,IUIAutomationElement **element) {
19146    return This->lpVtbl->GetFocusedElementBuildCache(This,cacheRequest,element);
19147}
19148static inline HRESULT IUIAutomation2_CreateTreeWalker(IUIAutomation2* This,IUIAutomationCondition *pCondition,IUIAutomationTreeWalker **walker) {
19149    return This->lpVtbl->CreateTreeWalker(This,pCondition,walker);
19150}
19151static inline HRESULT IUIAutomation2_get_ControlViewWalker(IUIAutomation2* This,IUIAutomationTreeWalker **walker) {
19152    return This->lpVtbl->get_ControlViewWalker(This,walker);
19153}
19154static inline HRESULT IUIAutomation2_get_ContentViewWalker(IUIAutomation2* This,IUIAutomationTreeWalker **walker) {
19155    return This->lpVtbl->get_ContentViewWalker(This,walker);
19156}
19157static inline HRESULT IUIAutomation2_get_RawViewWalker(IUIAutomation2* This,IUIAutomationTreeWalker **walker) {
19158    return This->lpVtbl->get_RawViewWalker(This,walker);
19159}
19160static inline HRESULT IUIAutomation2_get_RawViewCondition(IUIAutomation2* This,IUIAutomationCondition **condition) {
19161    return This->lpVtbl->get_RawViewCondition(This,condition);
19162}
19163static inline HRESULT IUIAutomation2_get_ControlViewCondition(IUIAutomation2* This,IUIAutomationCondition **condition) {
19164    return This->lpVtbl->get_ControlViewCondition(This,condition);
19165}
19166static inline HRESULT IUIAutomation2_get_ContentViewCondition(IUIAutomation2* This,IUIAutomationCondition **condition) {
19167    return This->lpVtbl->get_ContentViewCondition(This,condition);
19168}
19169static inline HRESULT IUIAutomation2_CreateCacheRequest(IUIAutomation2* This,IUIAutomationCacheRequest **cacheRequest) {
19170    return This->lpVtbl->CreateCacheRequest(This,cacheRequest);
19171}
19172static inline HRESULT IUIAutomation2_CreateTrueCondition(IUIAutomation2* This,IUIAutomationCondition **newCondition) {
19173    return This->lpVtbl->CreateTrueCondition(This,newCondition);
19174}
19175static inline HRESULT IUIAutomation2_CreateFalseCondition(IUIAutomation2* This,IUIAutomationCondition **newCondition) {
19176    return This->lpVtbl->CreateFalseCondition(This,newCondition);
19177}
19178static inline HRESULT IUIAutomation2_CreatePropertyCondition(IUIAutomation2* This,PROPERTYID propertyId,VARIANT value,IUIAutomationCondition **newCondition) {
19179    return This->lpVtbl->CreatePropertyCondition(This,propertyId,value,newCondition);
19180}
19181static inline HRESULT IUIAutomation2_CreatePropertyConditionEx(IUIAutomation2* This,PROPERTYID propertyId,VARIANT value,enum PropertyConditionFlags flags,IUIAutomationCondition **newCondition) {
19182    return This->lpVtbl->CreatePropertyConditionEx(This,propertyId,value,flags,newCondition);
19183}
19184static inline HRESULT IUIAutomation2_CreateAndCondition(IUIAutomation2* This,IUIAutomationCondition *condition1,IUIAutomationCondition *condition2,IUIAutomationCondition **newCondition) {
19185    return This->lpVtbl->CreateAndCondition(This,condition1,condition2,newCondition);
19186}
19187static inline HRESULT IUIAutomation2_CreateAndConditionFromArray(IUIAutomation2* This,SAFEARRAY *conditions,IUIAutomationCondition **newCondition) {
19188    return This->lpVtbl->CreateAndConditionFromArray(This,conditions,newCondition);
19189}
19190static inline HRESULT IUIAutomation2_CreateAndConditionFromNativeArray(IUIAutomation2* This,IUIAutomationCondition **conditions,int conditionCount,IUIAutomationCondition **newCondition) {
19191    return This->lpVtbl->CreateAndConditionFromNativeArray(This,conditions,conditionCount,newCondition);
19192}
19193static inline HRESULT IUIAutomation2_CreateOrCondition(IUIAutomation2* This,IUIAutomationCondition *condition1,IUIAutomationCondition *condition2,IUIAutomationCondition **newCondition) {
19194    return This->lpVtbl->CreateOrCondition(This,condition1,condition2,newCondition);
19195}
19196static inline HRESULT IUIAutomation2_CreateOrConditionFromArray(IUIAutomation2* This,SAFEARRAY *conditions,IUIAutomationCondition **newCondition) {
19197    return This->lpVtbl->CreateOrConditionFromArray(This,conditions,newCondition);
19198}
19199static inline HRESULT IUIAutomation2_CreateOrConditionFromNativeArray(IUIAutomation2* This,IUIAutomationCondition **conditions,int conditionCount,IUIAutomationCondition **newCondition) {
19200    return This->lpVtbl->CreateOrConditionFromNativeArray(This,conditions,conditionCount,newCondition);
19201}
19202static inline HRESULT IUIAutomation2_CreateNotCondition(IUIAutomation2* This,IUIAutomationCondition *condition,IUIAutomationCondition **newCondition) {
19203    return This->lpVtbl->CreateNotCondition(This,condition,newCondition);
19204}
19205static inline HRESULT IUIAutomation2_AddAutomationEventHandler(IUIAutomation2* This,EVENTID eventId,IUIAutomationElement *element,enum TreeScope scope,IUIAutomationCacheRequest *cacheRequest,IUIAutomationEventHandler *handler) {
19206    return This->lpVtbl->AddAutomationEventHandler(This,eventId,element,scope,cacheRequest,handler);
19207}
19208static inline HRESULT IUIAutomation2_RemoveAutomationEventHandler(IUIAutomation2* This,EVENTID eventId,IUIAutomationElement *element,IUIAutomationEventHandler *handler) {
19209    return This->lpVtbl->RemoveAutomationEventHandler(This,eventId,element,handler);
19210}
19211static inline HRESULT IUIAutomation2_AddPropertyChangedEventHandlerNativeArray(IUIAutomation2* This,IUIAutomationElement *element,enum TreeScope scope,IUIAutomationCacheRequest *cacheRequest,IUIAutomationPropertyChangedEventHandler *handler,PROPERTYID *propertyArray,int propertyCount) {
19212    return This->lpVtbl->AddPropertyChangedEventHandlerNativeArray(This,element,scope,cacheRequest,handler,propertyArray,propertyCount);
19213}
19214static inline HRESULT IUIAutomation2_AddPropertyChangedEventHandler(IUIAutomation2* This,IUIAutomationElement *element,enum TreeScope scope,IUIAutomationCacheRequest *cacheRequest,IUIAutomationPropertyChangedEventHandler *handler,SAFEARRAY *propertyArray) {
19215    return This->lpVtbl->AddPropertyChangedEventHandler(This,element,scope,cacheRequest,handler,propertyArray);
19216}
19217static inline HRESULT IUIAutomation2_RemovePropertyChangedEventHandler(IUIAutomation2* This,IUIAutomationElement *element,IUIAutomationPropertyChangedEventHandler *handler) {
19218    return This->lpVtbl->RemovePropertyChangedEventHandler(This,element,handler);
19219}
19220static inline HRESULT IUIAutomation2_AddStructureChangedEventHandler(IUIAutomation2* This,IUIAutomationElement *element,enum TreeScope scope,IUIAutomationCacheRequest *cacheRequest,IUIAutomationStructureChangedEventHandler *handler) {
19221    return This->lpVtbl->AddStructureChangedEventHandler(This,element,scope,cacheRequest,handler);
19222}
19223static inline HRESULT IUIAutomation2_RemoveStructureChangedEventHandler(IUIAutomation2* This,IUIAutomationElement *element,IUIAutomationStructureChangedEventHandler *handler) {
19224    return This->lpVtbl->RemoveStructureChangedEventHandler(This,element,handler);
19225}
19226static inline HRESULT IUIAutomation2_AddFocusChangedEventHandler(IUIAutomation2* This,IUIAutomationCacheRequest *cacheRequest,IUIAutomationFocusChangedEventHandler *handler) {
19227    return This->lpVtbl->AddFocusChangedEventHandler(This,cacheRequest,handler);
19228}
19229static inline HRESULT IUIAutomation2_RemoveFocusChangedEventHandler(IUIAutomation2* This,IUIAutomationFocusChangedEventHandler *handler) {
19230    return This->lpVtbl->RemoveFocusChangedEventHandler(This,handler);
19231}
19232static inline HRESULT IUIAutomation2_RemoveAllEventHandlers(IUIAutomation2* This) {
19233    return This->lpVtbl->RemoveAllEventHandlers(This);
19234}
19235static inline HRESULT IUIAutomation2_IntNativeArrayToSafeArray(IUIAutomation2* This,int *array,int arrayCount,SAFEARRAY **safeArray) {
19236    return This->lpVtbl->IntNativeArrayToSafeArray(This,array,arrayCount,safeArray);
19237}
19238static inline HRESULT IUIAutomation2_IntSafeArrayToNativeArray(IUIAutomation2* This,SAFEARRAY *intArray,int **array,int *arrayCount) {
19239    return This->lpVtbl->IntSafeArrayToNativeArray(This,intArray,array,arrayCount);
19240}
19241static inline HRESULT IUIAutomation2_RectToVariant(IUIAutomation2* This,RECT rc,VARIANT *var) {
19242    return This->lpVtbl->RectToVariant(This,rc,var);
19243}
19244static inline HRESULT IUIAutomation2_VariantToRect(IUIAutomation2* This,VARIANT var,RECT *rc) {
19245    return This->lpVtbl->VariantToRect(This,var,rc);
19246}
19247static inline HRESULT IUIAutomation2_SafeArrayToRectNativeArray(IUIAutomation2* This,SAFEARRAY *rects,RECT **rectArray,int *rectArrayCount) {
19248    return This->lpVtbl->SafeArrayToRectNativeArray(This,rects,rectArray,rectArrayCount);
19249}
19250static inline HRESULT IUIAutomation2_CreateProxyFactoryEntry(IUIAutomation2* This,IUIAutomationProxyFactory *factory,IUIAutomationProxyFactoryEntry **factoryEntry) {
19251    return This->lpVtbl->CreateProxyFactoryEntry(This,factory,factoryEntry);
19252}
19253static inline HRESULT IUIAutomation2_get_ProxyFactoryMapping(IUIAutomation2* This,IUIAutomationProxyFactoryMapping **factoryMapping) {
19254    return This->lpVtbl->get_ProxyFactoryMapping(This,factoryMapping);
19255}
19256static inline HRESULT IUIAutomation2_GetPropertyProgrammaticName(IUIAutomation2* This,PROPERTYID property,BSTR *name) {
19257    return This->lpVtbl->GetPropertyProgrammaticName(This,property,name);
19258}
19259static inline HRESULT IUIAutomation2_GetPatternProgrammaticName(IUIAutomation2* This,PATTERNID pattern,BSTR *name) {
19260    return This->lpVtbl->GetPatternProgrammaticName(This,pattern,name);
19261}
19262static inline HRESULT IUIAutomation2_PollForPotentialSupportedPatterns(IUIAutomation2* This,IUIAutomationElement *pElement,SAFEARRAY **patternIds,SAFEARRAY **patternNames) {
19263    return This->lpVtbl->PollForPotentialSupportedPatterns(This,pElement,patternIds,patternNames);
19264}
19265static inline HRESULT IUIAutomation2_PollForPotentialSupportedProperties(IUIAutomation2* This,IUIAutomationElement *pElement,SAFEARRAY **propertyIds,SAFEARRAY **propertyNames) {
19266    return This->lpVtbl->PollForPotentialSupportedProperties(This,pElement,propertyIds,propertyNames);
19267}
19268static inline HRESULT IUIAutomation2_CheckNotSupported(IUIAutomation2* This,VARIANT value,WINBOOL *isNotSupported) {
19269    return This->lpVtbl->CheckNotSupported(This,value,isNotSupported);
19270}
19271static inline HRESULT IUIAutomation2_get_ReservedNotSupportedValue(IUIAutomation2* This,IUnknown **notSupportedValue) {
19272    return This->lpVtbl->get_ReservedNotSupportedValue(This,notSupportedValue);
19273}
19274static inline HRESULT IUIAutomation2_get_ReservedMixedAttributeValue(IUIAutomation2* This,IUnknown **mixedAttributeValue) {
19275    return This->lpVtbl->get_ReservedMixedAttributeValue(This,mixedAttributeValue);
19276}
19277static inline HRESULT IUIAutomation2_ElementFromIAccessible(IUIAutomation2* This,IAccessible *accessible,int childId,IUIAutomationElement **element) {
19278    return This->lpVtbl->ElementFromIAccessible(This,accessible,childId,element);
19279}
19280static inline HRESULT IUIAutomation2_ElementFromIAccessibleBuildCache(IUIAutomation2* This,IAccessible *accessible,int childId,IUIAutomationCacheRequest *cacheRequest,IUIAutomationElement **element) {
19281    return This->lpVtbl->ElementFromIAccessibleBuildCache(This,accessible,childId,cacheRequest,element);
19282}
19283/*** IUIAutomation2 methods ***/
19284static inline HRESULT IUIAutomation2_get_AutoSetFocus(IUIAutomation2* This,WINBOOL *autoSetFocus) {
19285    return This->lpVtbl->get_AutoSetFocus(This,autoSetFocus);
19286}
19287static inline HRESULT IUIAutomation2_put_AutoSetFocus(IUIAutomation2* This,WINBOOL autoSetFocus) {
19288    return This->lpVtbl->put_AutoSetFocus(This,autoSetFocus);
19289}
19290static inline HRESULT IUIAutomation2_get_ConnectionTimeout(IUIAutomation2* This,DWORD *timeout) {
19291    return This->lpVtbl->get_ConnectionTimeout(This,timeout);
19292}
19293static inline HRESULT IUIAutomation2_put_ConnectionTimeout(IUIAutomation2* This,DWORD timeout) {
19294    return This->lpVtbl->put_ConnectionTimeout(This,timeout);
19295}
19296static inline HRESULT IUIAutomation2_get_TransactionTimeout(IUIAutomation2* This,DWORD *timeout) {
19297    return This->lpVtbl->get_TransactionTimeout(This,timeout);
19298}
19299static inline HRESULT IUIAutomation2_put_TransactionTimeout(IUIAutomation2* This,DWORD timeout) {
19300    return This->lpVtbl->put_TransactionTimeout(This,timeout);
19301}
19302#endif
19303#endif
19304
19305#endif
19306
19307
19308#endif  /* __IUIAutomation2_INTERFACE_DEFINED__ */
19309
19310/*****************************************************************************
19311 * IUIAutomation3 interface
19312 */
19313#ifndef __IUIAutomation3_INTERFACE_DEFINED__
19314#define __IUIAutomation3_INTERFACE_DEFINED__
19315
19316DEFINE_GUID(IID_IUIAutomation3, 0x73d768da, 0x9b51, 0x4b89, 0x93,0x6e, 0xc2,0x09,0x29,0x09,0x73,0xe7);
19317#if defined(__cplusplus) && !defined(CINTERFACE)
19318MIDL_INTERFACE("73d768da-9b51-4b89-936e-c209290973e7")
19319IUIAutomation3 : public IUIAutomation2
19320{
19321    virtual HRESULT STDMETHODCALLTYPE AddTextEditTextChangedEventHandler(
19322        IUIAutomationElement *element,
19323        enum TreeScope scope,
19324        enum TextEditChangeType textEditChangeType,
19325        IUIAutomationCacheRequest *cacheRequest,
19326        IUIAutomationTextEditTextChangedEventHandler *handler) = 0;
19327
19328    virtual HRESULT STDMETHODCALLTYPE RemoveTextEditTextChangedEventHandler(
19329        IUIAutomationElement *element,
19330        IUIAutomationTextEditTextChangedEventHandler *handler) = 0;
19331
19332};
19333#ifdef __CRT_UUID_DECL
19334__CRT_UUID_DECL(IUIAutomation3, 0x73d768da, 0x9b51, 0x4b89, 0x93,0x6e, 0xc2,0x09,0x29,0x09,0x73,0xe7)
19335#endif
19336#else
19337typedef struct IUIAutomation3Vtbl {
19338    BEGIN_INTERFACE
19339
19340    /*** IUnknown methods ***/
19341    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
19342        IUIAutomation3 *This,
19343        REFIID riid,
19344        void **ppvObject);
19345
19346    ULONG (STDMETHODCALLTYPE *AddRef)(
19347        IUIAutomation3 *This);
19348
19349    ULONG (STDMETHODCALLTYPE *Release)(
19350        IUIAutomation3 *This);
19351
19352    /*** IUIAutomation methods ***/
19353    HRESULT (STDMETHODCALLTYPE *CompareElements)(
19354        IUIAutomation3 *This,
19355        IUIAutomationElement *el1,
19356        IUIAutomationElement *el2,
19357        WINBOOL *areSame);
19358
19359    HRESULT (STDMETHODCALLTYPE *CompareRuntimeIds)(
19360        IUIAutomation3 *This,
19361        SAFEARRAY *runtimeId1,
19362        SAFEARRAY *runtimeId2,
19363        WINBOOL *areSame);
19364
19365    HRESULT (STDMETHODCALLTYPE *GetRootElement)(
19366        IUIAutomation3 *This,
19367        IUIAutomationElement **root);
19368
19369    HRESULT (STDMETHODCALLTYPE *ElementFromHandle)(
19370        IUIAutomation3 *This,
19371        UIA_HWND hwnd,
19372        IUIAutomationElement **element);
19373
19374    HRESULT (STDMETHODCALLTYPE *ElementFromPoint)(
19375        IUIAutomation3 *This,
19376        POINT pt,
19377        IUIAutomationElement **element);
19378
19379    HRESULT (STDMETHODCALLTYPE *GetFocusedElement)(
19380        IUIAutomation3 *This,
19381        IUIAutomationElement **element);
19382
19383    HRESULT (STDMETHODCALLTYPE *GetRootElementBuildCache)(
19384        IUIAutomation3 *This,
19385        IUIAutomationCacheRequest *cacheRequest,
19386        IUIAutomationElement **root);
19387
19388    HRESULT (STDMETHODCALLTYPE *ElementFromHandleBuildCache)(
19389        IUIAutomation3 *This,
19390        UIA_HWND hwnd,
19391        IUIAutomationCacheRequest *cacheRequest,
19392        IUIAutomationElement **element);
19393
19394    HRESULT (STDMETHODCALLTYPE *ElementFromPointBuildCache)(
19395        IUIAutomation3 *This,
19396        POINT pt,
19397        IUIAutomationCacheRequest *cacheRequest,
19398        IUIAutomationElement **element);
19399
19400    HRESULT (STDMETHODCALLTYPE *GetFocusedElementBuildCache)(
19401        IUIAutomation3 *This,
19402        IUIAutomationCacheRequest *cacheRequest,
19403        IUIAutomationElement **element);
19404
19405    HRESULT (STDMETHODCALLTYPE *CreateTreeWalker)(
19406        IUIAutomation3 *This,
19407        IUIAutomationCondition *pCondition,
19408        IUIAutomationTreeWalker **walker);
19409
19410    HRESULT (STDMETHODCALLTYPE *get_ControlViewWalker)(
19411        IUIAutomation3 *This,
19412        IUIAutomationTreeWalker **walker);
19413
19414    HRESULT (STDMETHODCALLTYPE *get_ContentViewWalker)(
19415        IUIAutomation3 *This,
19416        IUIAutomationTreeWalker **walker);
19417
19418    HRESULT (STDMETHODCALLTYPE *get_RawViewWalker)(
19419        IUIAutomation3 *This,
19420        IUIAutomationTreeWalker **walker);
19421
19422    HRESULT (STDMETHODCALLTYPE *get_RawViewCondition)(
19423        IUIAutomation3 *This,
19424        IUIAutomationCondition **condition);
19425
19426    HRESULT (STDMETHODCALLTYPE *get_ControlViewCondition)(
19427        IUIAutomation3 *This,
19428        IUIAutomationCondition **condition);
19429
19430    HRESULT (STDMETHODCALLTYPE *get_ContentViewCondition)(
19431        IUIAutomation3 *This,
19432        IUIAutomationCondition **condition);
19433
19434    HRESULT (STDMETHODCALLTYPE *CreateCacheRequest)(
19435        IUIAutomation3 *This,
19436        IUIAutomationCacheRequest **cacheRequest);
19437
19438    HRESULT (STDMETHODCALLTYPE *CreateTrueCondition)(
19439        IUIAutomation3 *This,
19440        IUIAutomationCondition **newCondition);
19441
19442    HRESULT (STDMETHODCALLTYPE *CreateFalseCondition)(
19443        IUIAutomation3 *This,
19444        IUIAutomationCondition **newCondition);
19445
19446    HRESULT (STDMETHODCALLTYPE *CreatePropertyCondition)(
19447        IUIAutomation3 *This,
19448        PROPERTYID propertyId,
19449        VARIANT value,
19450        IUIAutomationCondition **newCondition);
19451
19452    HRESULT (STDMETHODCALLTYPE *CreatePropertyConditionEx)(
19453        IUIAutomation3 *This,
19454        PROPERTYID propertyId,
19455        VARIANT value,
19456        enum PropertyConditionFlags flags,
19457        IUIAutomationCondition **newCondition);
19458
19459    HRESULT (STDMETHODCALLTYPE *CreateAndCondition)(
19460        IUIAutomation3 *This,
19461        IUIAutomationCondition *condition1,
19462        IUIAutomationCondition *condition2,
19463        IUIAutomationCondition **newCondition);
19464
19465    HRESULT (STDMETHODCALLTYPE *CreateAndConditionFromArray)(
19466        IUIAutomation3 *This,
19467        SAFEARRAY *conditions,
19468        IUIAutomationCondition **newCondition);
19469
19470    HRESULT (STDMETHODCALLTYPE *CreateAndConditionFromNativeArray)(
19471        IUIAutomation3 *This,
19472        IUIAutomationCondition **conditions,
19473        int conditionCount,
19474        IUIAutomationCondition **newCondition);
19475
19476    HRESULT (STDMETHODCALLTYPE *CreateOrCondition)(
19477        IUIAutomation3 *This,
19478        IUIAutomationCondition *condition1,
19479        IUIAutomationCondition *condition2,
19480        IUIAutomationCondition **newCondition);
19481
19482    HRESULT (STDMETHODCALLTYPE *CreateOrConditionFromArray)(
19483        IUIAutomation3 *This,
19484        SAFEARRAY *conditions,
19485        IUIAutomationCondition **newCondition);
19486
19487    HRESULT (STDMETHODCALLTYPE *CreateOrConditionFromNativeArray)(
19488        IUIAutomation3 *This,
19489        IUIAutomationCondition **conditions,
19490        int conditionCount,
19491        IUIAutomationCondition **newCondition);
19492
19493    HRESULT (STDMETHODCALLTYPE *CreateNotCondition)(
19494        IUIAutomation3 *This,
19495        IUIAutomationCondition *condition,
19496        IUIAutomationCondition **newCondition);
19497
19498    HRESULT (STDMETHODCALLTYPE *AddAutomationEventHandler)(
19499        IUIAutomation3 *This,
19500        EVENTID eventId,
19501        IUIAutomationElement *element,
19502        enum TreeScope scope,
19503        IUIAutomationCacheRequest *cacheRequest,
19504        IUIAutomationEventHandler *handler);
19505
19506    HRESULT (STDMETHODCALLTYPE *RemoveAutomationEventHandler)(
19507        IUIAutomation3 *This,
19508        EVENTID eventId,
19509        IUIAutomationElement *element,
19510        IUIAutomationEventHandler *handler);
19511
19512    HRESULT (STDMETHODCALLTYPE *AddPropertyChangedEventHandlerNativeArray)(
19513        IUIAutomation3 *This,
19514        IUIAutomationElement *element,
19515        enum TreeScope scope,
19516        IUIAutomationCacheRequest *cacheRequest,
19517        IUIAutomationPropertyChangedEventHandler *handler,
19518        PROPERTYID *propertyArray,
19519        int propertyCount);
19520
19521    HRESULT (STDMETHODCALLTYPE *AddPropertyChangedEventHandler)(
19522        IUIAutomation3 *This,
19523        IUIAutomationElement *element,
19524        enum TreeScope scope,
19525        IUIAutomationCacheRequest *cacheRequest,
19526        IUIAutomationPropertyChangedEventHandler *handler,
19527        SAFEARRAY *propertyArray);
19528
19529    HRESULT (STDMETHODCALLTYPE *RemovePropertyChangedEventHandler)(
19530        IUIAutomation3 *This,
19531        IUIAutomationElement *element,
19532        IUIAutomationPropertyChangedEventHandler *handler);
19533
19534    HRESULT (STDMETHODCALLTYPE *AddStructureChangedEventHandler)(
19535        IUIAutomation3 *This,
19536        IUIAutomationElement *element,
19537        enum TreeScope scope,
19538        IUIAutomationCacheRequest *cacheRequest,
19539        IUIAutomationStructureChangedEventHandler *handler);
19540
19541    HRESULT (STDMETHODCALLTYPE *RemoveStructureChangedEventHandler)(
19542        IUIAutomation3 *This,
19543        IUIAutomationElement *element,
19544        IUIAutomationStructureChangedEventHandler *handler);
19545
19546    HRESULT (STDMETHODCALLTYPE *AddFocusChangedEventHandler)(
19547        IUIAutomation3 *This,
19548        IUIAutomationCacheRequest *cacheRequest,
19549        IUIAutomationFocusChangedEventHandler *handler);
19550
19551    HRESULT (STDMETHODCALLTYPE *RemoveFocusChangedEventHandler)(
19552        IUIAutomation3 *This,
19553        IUIAutomationFocusChangedEventHandler *handler);
19554
19555    HRESULT (STDMETHODCALLTYPE *RemoveAllEventHandlers)(
19556        IUIAutomation3 *This);
19557
19558    HRESULT (STDMETHODCALLTYPE *IntNativeArrayToSafeArray)(
19559        IUIAutomation3 *This,
19560        int *array,
19561        int arrayCount,
19562        SAFEARRAY **safeArray);
19563
19564    HRESULT (STDMETHODCALLTYPE *IntSafeArrayToNativeArray)(
19565        IUIAutomation3 *This,
19566        SAFEARRAY *intArray,
19567        int **array,
19568        int *arrayCount);
19569
19570    HRESULT (STDMETHODCALLTYPE *RectToVariant)(
19571        IUIAutomation3 *This,
19572        RECT rc,
19573        VARIANT *var);
19574
19575    HRESULT (STDMETHODCALLTYPE *VariantToRect)(
19576        IUIAutomation3 *This,
19577        VARIANT var,
19578        RECT *rc);
19579
19580    HRESULT (STDMETHODCALLTYPE *SafeArrayToRectNativeArray)(
19581        IUIAutomation3 *This,
19582        SAFEARRAY *rects,
19583        RECT **rectArray,
19584        int *rectArrayCount);
19585
19586    HRESULT (STDMETHODCALLTYPE *CreateProxyFactoryEntry)(
19587        IUIAutomation3 *This,
19588        IUIAutomationProxyFactory *factory,
19589        IUIAutomationProxyFactoryEntry **factoryEntry);
19590
19591    HRESULT (STDMETHODCALLTYPE *get_ProxyFactoryMapping)(
19592        IUIAutomation3 *This,
19593        IUIAutomationProxyFactoryMapping **factoryMapping);
19594
19595    HRESULT (STDMETHODCALLTYPE *GetPropertyProgrammaticName)(
19596        IUIAutomation3 *This,
19597        PROPERTYID property,
19598        BSTR *name);
19599
19600    HRESULT (STDMETHODCALLTYPE *GetPatternProgrammaticName)(
19601        IUIAutomation3 *This,
19602        PATTERNID pattern,
19603        BSTR *name);
19604
19605    HRESULT (STDMETHODCALLTYPE *PollForPotentialSupportedPatterns)(
19606        IUIAutomation3 *This,
19607        IUIAutomationElement *pElement,
19608        SAFEARRAY **patternIds,
19609        SAFEARRAY **patternNames);
19610
19611    HRESULT (STDMETHODCALLTYPE *PollForPotentialSupportedProperties)(
19612        IUIAutomation3 *This,
19613        IUIAutomationElement *pElement,
19614        SAFEARRAY **propertyIds,
19615        SAFEARRAY **propertyNames);
19616
19617    HRESULT (STDMETHODCALLTYPE *CheckNotSupported)(
19618        IUIAutomation3 *This,
19619        VARIANT value,
19620        WINBOOL *isNotSupported);
19621
19622    HRESULT (STDMETHODCALLTYPE *get_ReservedNotSupportedValue)(
19623        IUIAutomation3 *This,
19624        IUnknown **notSupportedValue);
19625
19626    HRESULT (STDMETHODCALLTYPE *get_ReservedMixedAttributeValue)(
19627        IUIAutomation3 *This,
19628        IUnknown **mixedAttributeValue);
19629
19630    HRESULT (STDMETHODCALLTYPE *ElementFromIAccessible)(
19631        IUIAutomation3 *This,
19632        IAccessible *accessible,
19633        int childId,
19634        IUIAutomationElement **element);
19635
19636    HRESULT (STDMETHODCALLTYPE *ElementFromIAccessibleBuildCache)(
19637        IUIAutomation3 *This,
19638        IAccessible *accessible,
19639        int childId,
19640        IUIAutomationCacheRequest *cacheRequest,
19641        IUIAutomationElement **element);
19642
19643    /*** IUIAutomation2 methods ***/
19644    HRESULT (STDMETHODCALLTYPE *get_AutoSetFocus)(
19645        IUIAutomation3 *This,
19646        WINBOOL *autoSetFocus);
19647
19648    HRESULT (STDMETHODCALLTYPE *put_AutoSetFocus)(
19649        IUIAutomation3 *This,
19650        WINBOOL autoSetFocus);
19651
19652    HRESULT (STDMETHODCALLTYPE *get_ConnectionTimeout)(
19653        IUIAutomation3 *This,
19654        DWORD *timeout);
19655
19656    HRESULT (STDMETHODCALLTYPE *put_ConnectionTimeout)(
19657        IUIAutomation3 *This,
19658        DWORD timeout);
19659
19660    HRESULT (STDMETHODCALLTYPE *get_TransactionTimeout)(
19661        IUIAutomation3 *This,
19662        DWORD *timeout);
19663
19664    HRESULT (STDMETHODCALLTYPE *put_TransactionTimeout)(
19665        IUIAutomation3 *This,
19666        DWORD timeout);
19667
19668    /*** IUIAutomation3 methods ***/
19669    HRESULT (STDMETHODCALLTYPE *AddTextEditTextChangedEventHandler)(
19670        IUIAutomation3 *This,
19671        IUIAutomationElement *element,
19672        enum TreeScope scope,
19673        enum TextEditChangeType textEditChangeType,
19674        IUIAutomationCacheRequest *cacheRequest,
19675        IUIAutomationTextEditTextChangedEventHandler *handler);
19676
19677    HRESULT (STDMETHODCALLTYPE *RemoveTextEditTextChangedEventHandler)(
19678        IUIAutomation3 *This,
19679        IUIAutomationElement *element,
19680        IUIAutomationTextEditTextChangedEventHandler *handler);
19681
19682    END_INTERFACE
19683} IUIAutomation3Vtbl;
19684
19685interface IUIAutomation3 {
19686    CONST_VTBL IUIAutomation3Vtbl* lpVtbl;
19687};
19688
19689#ifdef COBJMACROS
19690#ifndef WIDL_C_INLINE_WRAPPERS
19691/*** IUnknown methods ***/
19692#define IUIAutomation3_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
19693#define IUIAutomation3_AddRef(This) (This)->lpVtbl->AddRef(This)
19694#define IUIAutomation3_Release(This) (This)->lpVtbl->Release(This)
19695/*** IUIAutomation methods ***/
19696#define IUIAutomation3_CompareElements(This,el1,el2,areSame) (This)->lpVtbl->CompareElements(This,el1,el2,areSame)
19697#define IUIAutomation3_CompareRuntimeIds(This,runtimeId1,runtimeId2,areSame) (This)->lpVtbl->CompareRuntimeIds(This,runtimeId1,runtimeId2,areSame)
19698#define IUIAutomation3_GetRootElement(This,root) (This)->lpVtbl->GetRootElement(This,root)
19699#define IUIAutomation3_ElementFromHandle(This,hwnd,element) (This)->lpVtbl->ElementFromHandle(This,hwnd,element)
19700#define IUIAutomation3_ElementFromPoint(This,pt,element) (This)->lpVtbl->ElementFromPoint(This,pt,element)
19701#define IUIAutomation3_GetFocusedElement(This,element) (This)->lpVtbl->GetFocusedElement(This,element)
19702#define IUIAutomation3_GetRootElementBuildCache(This,cacheRequest,root) (This)->lpVtbl->GetRootElementBuildCache(This,cacheRequest,root)
19703#define IUIAutomation3_ElementFromHandleBuildCache(This,hwnd,cacheRequest,element) (This)->lpVtbl->ElementFromHandleBuildCache(This,hwnd,cacheRequest,element)
19704#define IUIAutomation3_ElementFromPointBuildCache(This,pt,cacheRequest,element) (This)->lpVtbl->ElementFromPointBuildCache(This,pt,cacheRequest,element)
19705#define IUIAutomation3_GetFocusedElementBuildCache(This,cacheRequest,element) (This)->lpVtbl->GetFocusedElementBuildCache(This,cacheRequest,element)
19706#define IUIAutomation3_CreateTreeWalker(This,pCondition,walker) (This)->lpVtbl->CreateTreeWalker(This,pCondition,walker)
19707#define IUIAutomation3_get_ControlViewWalker(This,walker) (This)->lpVtbl->get_ControlViewWalker(This,walker)
19708#define IUIAutomation3_get_ContentViewWalker(This,walker) (This)->lpVtbl->get_ContentViewWalker(This,walker)
19709#define IUIAutomation3_get_RawViewWalker(This,walker) (This)->lpVtbl->get_RawViewWalker(This,walker)
19710#define IUIAutomation3_get_RawViewCondition(This,condition) (This)->lpVtbl->get_RawViewCondition(This,condition)
19711#define IUIAutomation3_get_ControlViewCondition(This,condition) (This)->lpVtbl->get_ControlViewCondition(This,condition)
19712#define IUIAutomation3_get_ContentViewCondition(This,condition) (This)->lpVtbl->get_ContentViewCondition(This,condition)
19713#define IUIAutomation3_CreateCacheRequest(This,cacheRequest) (This)->lpVtbl->CreateCacheRequest(This,cacheRequest)
19714#define IUIAutomation3_CreateTrueCondition(This,newCondition) (This)->lpVtbl->CreateTrueCondition(This,newCondition)
19715#define IUIAutomation3_CreateFalseCondition(This,newCondition) (This)->lpVtbl->CreateFalseCondition(This,newCondition)
19716#define IUIAutomation3_CreatePropertyCondition(This,propertyId,value,newCondition) (This)->lpVtbl->CreatePropertyCondition(This,propertyId,value,newCondition)
19717#define IUIAutomation3_CreatePropertyConditionEx(This,propertyId,value,flags,newCondition) (This)->lpVtbl->CreatePropertyConditionEx(This,propertyId,value,flags,newCondition)
19718#define IUIAutomation3_CreateAndCondition(This,condition1,condition2,newCondition) (This)->lpVtbl->CreateAndCondition(This,condition1,condition2,newCondition)
19719#define IUIAutomation3_CreateAndConditionFromArray(This,conditions,newCondition) (This)->lpVtbl->CreateAndConditionFromArray(This,conditions,newCondition)
19720#define IUIAutomation3_CreateAndConditionFromNativeArray(This,conditions,conditionCount,newCondition) (This)->lpVtbl->CreateAndConditionFromNativeArray(This,conditions,conditionCount,newCondition)
19721#define IUIAutomation3_CreateOrCondition(This,condition1,condition2,newCondition) (This)->lpVtbl->CreateOrCondition(This,condition1,condition2,newCondition)
19722#define IUIAutomation3_CreateOrConditionFromArray(This,conditions,newCondition) (This)->lpVtbl->CreateOrConditionFromArray(This,conditions,newCondition)
19723#define IUIAutomation3_CreateOrConditionFromNativeArray(This,conditions,conditionCount,newCondition) (This)->lpVtbl->CreateOrConditionFromNativeArray(This,conditions,conditionCount,newCondition)
19724#define IUIAutomation3_CreateNotCondition(This,condition,newCondition) (This)->lpVtbl->CreateNotCondition(This,condition,newCondition)
19725#define IUIAutomation3_AddAutomationEventHandler(This,eventId,element,scope,cacheRequest,handler) (This)->lpVtbl->AddAutomationEventHandler(This,eventId,element,scope,cacheRequest,handler)
19726#define IUIAutomation3_RemoveAutomationEventHandler(This,eventId,element,handler) (This)->lpVtbl->RemoveAutomationEventHandler(This,eventId,element,handler)
19727#define IUIAutomation3_AddPropertyChangedEventHandlerNativeArray(This,element,scope,cacheRequest,handler,propertyArray,propertyCount) (This)->lpVtbl->AddPropertyChangedEventHandlerNativeArray(This,element,scope,cacheRequest,handler,propertyArray,propertyCount)
19728#define IUIAutomation3_AddPropertyChangedEventHandler(This,element,scope,cacheRequest,handler,propertyArray) (This)->lpVtbl->AddPropertyChangedEventHandler(This,element,scope,cacheRequest,handler,propertyArray)
19729#define IUIAutomation3_RemovePropertyChangedEventHandler(This,element,handler) (This)->lpVtbl->RemovePropertyChangedEventHandler(This,element,handler)
19730#define IUIAutomation3_AddStructureChangedEventHandler(This,element,scope,cacheRequest,handler) (This)->lpVtbl->AddStructureChangedEventHandler(This,element,scope,cacheRequest,handler)
19731#define IUIAutomation3_RemoveStructureChangedEventHandler(This,element,handler) (This)->lpVtbl->RemoveStructureChangedEventHandler(This,element,handler)
19732#define IUIAutomation3_AddFocusChangedEventHandler(This,cacheRequest,handler) (This)->lpVtbl->AddFocusChangedEventHandler(This,cacheRequest,handler)
19733#define IUIAutomation3_RemoveFocusChangedEventHandler(This,handler) (This)->lpVtbl->RemoveFocusChangedEventHandler(This,handler)
19734#define IUIAutomation3_RemoveAllEventHandlers(This) (This)->lpVtbl->RemoveAllEventHandlers(This)
19735#define IUIAutomation3_IntNativeArrayToSafeArray(This,array,arrayCount,safeArray) (This)->lpVtbl->IntNativeArrayToSafeArray(This,array,arrayCount,safeArray)
19736#define IUIAutomation3_IntSafeArrayToNativeArray(This,intArray,array,arrayCount) (This)->lpVtbl->IntSafeArrayToNativeArray(This,intArray,array,arrayCount)
19737#define IUIAutomation3_RectToVariant(This,rc,var) (This)->lpVtbl->RectToVariant(This,rc,var)
19738#define IUIAutomation3_VariantToRect(This,var,rc) (This)->lpVtbl->VariantToRect(This,var,rc)
19739#define IUIAutomation3_SafeArrayToRectNativeArray(This,rects,rectArray,rectArrayCount) (This)->lpVtbl->SafeArrayToRectNativeArray(This,rects,rectArray,rectArrayCount)
19740#define IUIAutomation3_CreateProxyFactoryEntry(This,factory,factoryEntry) (This)->lpVtbl->CreateProxyFactoryEntry(This,factory,factoryEntry)
19741#define IUIAutomation3_get_ProxyFactoryMapping(This,factoryMapping) (This)->lpVtbl->get_ProxyFactoryMapping(This,factoryMapping)
19742#define IUIAutomation3_GetPropertyProgrammaticName(This,property,name) (This)->lpVtbl->GetPropertyProgrammaticName(This,property,name)
19743#define IUIAutomation3_GetPatternProgrammaticName(This,pattern,name) (This)->lpVtbl->GetPatternProgrammaticName(This,pattern,name)
19744#define IUIAutomation3_PollForPotentialSupportedPatterns(This,pElement,patternIds,patternNames) (This)->lpVtbl->PollForPotentialSupportedPatterns(This,pElement,patternIds,patternNames)
19745#define IUIAutomation3_PollForPotentialSupportedProperties(This,pElement,propertyIds,propertyNames) (This)->lpVtbl->PollForPotentialSupportedProperties(This,pElement,propertyIds,propertyNames)
19746#define IUIAutomation3_CheckNotSupported(This,value,isNotSupported) (This)->lpVtbl->CheckNotSupported(This,value,isNotSupported)
19747#define IUIAutomation3_get_ReservedNotSupportedValue(This,notSupportedValue) (This)->lpVtbl->get_ReservedNotSupportedValue(This,notSupportedValue)
19748#define IUIAutomation3_get_ReservedMixedAttributeValue(This,mixedAttributeValue) (This)->lpVtbl->get_ReservedMixedAttributeValue(This,mixedAttributeValue)
19749#define IUIAutomation3_ElementFromIAccessible(This,accessible,childId,element) (This)->lpVtbl->ElementFromIAccessible(This,accessible,childId,element)
19750#define IUIAutomation3_ElementFromIAccessibleBuildCache(This,accessible,childId,cacheRequest,element) (This)->lpVtbl->ElementFromIAccessibleBuildCache(This,accessible,childId,cacheRequest,element)
19751/*** IUIAutomation2 methods ***/
19752#define IUIAutomation3_get_AutoSetFocus(This,autoSetFocus) (This)->lpVtbl->get_AutoSetFocus(This,autoSetFocus)
19753#define IUIAutomation3_put_AutoSetFocus(This,autoSetFocus) (This)->lpVtbl->put_AutoSetFocus(This,autoSetFocus)
19754#define IUIAutomation3_get_ConnectionTimeout(This,timeout) (This)->lpVtbl->get_ConnectionTimeout(This,timeout)
19755#define IUIAutomation3_put_ConnectionTimeout(This,timeout) (This)->lpVtbl->put_ConnectionTimeout(This,timeout)
19756#define IUIAutomation3_get_TransactionTimeout(This,timeout) (This)->lpVtbl->get_TransactionTimeout(This,timeout)
19757#define IUIAutomation3_put_TransactionTimeout(This,timeout) (This)->lpVtbl->put_TransactionTimeout(This,timeout)
19758/*** IUIAutomation3 methods ***/
19759#define IUIAutomation3_AddTextEditTextChangedEventHandler(This,element,scope,textEditChangeType,cacheRequest,handler) (This)->lpVtbl->AddTextEditTextChangedEventHandler(This,element,scope,textEditChangeType,cacheRequest,handler)
19760#define IUIAutomation3_RemoveTextEditTextChangedEventHandler(This,element,handler) (This)->lpVtbl->RemoveTextEditTextChangedEventHandler(This,element,handler)
19761#else
19762/*** IUnknown methods ***/
19763static inline HRESULT IUIAutomation3_QueryInterface(IUIAutomation3* This,REFIID riid,void **ppvObject) {
19764    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
19765}
19766static inline ULONG IUIAutomation3_AddRef(IUIAutomation3* This) {
19767    return This->lpVtbl->AddRef(This);
19768}
19769static inline ULONG IUIAutomation3_Release(IUIAutomation3* This) {
19770    return This->lpVtbl->Release(This);
19771}
19772/*** IUIAutomation methods ***/
19773static inline HRESULT IUIAutomation3_CompareElements(IUIAutomation3* This,IUIAutomationElement *el1,IUIAutomationElement *el2,WINBOOL *areSame) {
19774    return This->lpVtbl->CompareElements(This,el1,el2,areSame);
19775}
19776static inline HRESULT IUIAutomation3_CompareRuntimeIds(IUIAutomation3* This,SAFEARRAY *runtimeId1,SAFEARRAY *runtimeId2,WINBOOL *areSame) {
19777    return This->lpVtbl->CompareRuntimeIds(This,runtimeId1,runtimeId2,areSame);
19778}
19779static inline HRESULT IUIAutomation3_GetRootElement(IUIAutomation3* This,IUIAutomationElement **root) {
19780    return This->lpVtbl->GetRootElement(This,root);
19781}
19782static inline HRESULT IUIAutomation3_ElementFromHandle(IUIAutomation3* This,UIA_HWND hwnd,IUIAutomationElement **element) {
19783    return This->lpVtbl->ElementFromHandle(This,hwnd,element);
19784}
19785static inline HRESULT IUIAutomation3_ElementFromPoint(IUIAutomation3* This,POINT pt,IUIAutomationElement **element) {
19786    return This->lpVtbl->ElementFromPoint(This,pt,element);
19787}
19788static inline HRESULT IUIAutomation3_GetFocusedElement(IUIAutomation3* This,IUIAutomationElement **element) {
19789    return This->lpVtbl->GetFocusedElement(This,element);
19790}
19791static inline HRESULT IUIAutomation3_GetRootElementBuildCache(IUIAutomation3* This,IUIAutomationCacheRequest *cacheRequest,IUIAutomationElement **root) {
19792    return This->lpVtbl->GetRootElementBuildCache(This,cacheRequest,root);
19793}
19794static inline HRESULT IUIAutomation3_ElementFromHandleBuildCache(IUIAutomation3* This,UIA_HWND hwnd,IUIAutomationCacheRequest *cacheRequest,IUIAutomationElement **element) {
19795    return This->lpVtbl->ElementFromHandleBuildCache(This,hwnd,cacheRequest,element);
19796}
19797static inline HRESULT IUIAutomation3_ElementFromPointBuildCache(IUIAutomation3* This,POINT pt,IUIAutomationCacheRequest *cacheRequest,IUIAutomationElement **element) {
19798    return This->lpVtbl->ElementFromPointBuildCache(This,pt,cacheRequest,element);
19799}
19800static inline HRESULT IUIAutomation3_GetFocusedElementBuildCache(IUIAutomation3* This,IUIAutomationCacheRequest *cacheRequest,IUIAutomationElement **element) {
19801    return This->lpVtbl->GetFocusedElementBuildCache(This,cacheRequest,element);
19802}
19803static inline HRESULT IUIAutomation3_CreateTreeWalker(IUIAutomation3* This,IUIAutomationCondition *pCondition,IUIAutomationTreeWalker **walker) {
19804    return This->lpVtbl->CreateTreeWalker(This,pCondition,walker);
19805}
19806static inline HRESULT IUIAutomation3_get_ControlViewWalker(IUIAutomation3* This,IUIAutomationTreeWalker **walker) {
19807    return This->lpVtbl->get_ControlViewWalker(This,walker);
19808}
19809static inline HRESULT IUIAutomation3_get_ContentViewWalker(IUIAutomation3* This,IUIAutomationTreeWalker **walker) {
19810    return This->lpVtbl->get_ContentViewWalker(This,walker);
19811}
19812static inline HRESULT IUIAutomation3_get_RawViewWalker(IUIAutomation3* This,IUIAutomationTreeWalker **walker) {
19813    return This->lpVtbl->get_RawViewWalker(This,walker);
19814}
19815static inline HRESULT IUIAutomation3_get_RawViewCondition(IUIAutomation3* This,IUIAutomationCondition **condition) {
19816    return This->lpVtbl->get_RawViewCondition(This,condition);
19817}
19818static inline HRESULT IUIAutomation3_get_ControlViewCondition(IUIAutomation3* This,IUIAutomationCondition **condition) {
19819    return This->lpVtbl->get_ControlViewCondition(This,condition);
19820}
19821static inline HRESULT IUIAutomation3_get_ContentViewCondition(IUIAutomation3* This,IUIAutomationCondition **condition) {
19822    return This->lpVtbl->get_ContentViewCondition(This,condition);
19823}
19824static inline HRESULT IUIAutomation3_CreateCacheRequest(IUIAutomation3* This,IUIAutomationCacheRequest **cacheRequest) {
19825    return This->lpVtbl->CreateCacheRequest(This,cacheRequest);
19826}
19827static inline HRESULT IUIAutomation3_CreateTrueCondition(IUIAutomation3* This,IUIAutomationCondition **newCondition) {
19828    return This->lpVtbl->CreateTrueCondition(This,newCondition);
19829}
19830static inline HRESULT IUIAutomation3_CreateFalseCondition(IUIAutomation3* This,IUIAutomationCondition **newCondition) {
19831    return This->lpVtbl->CreateFalseCondition(This,newCondition);
19832}
19833static inline HRESULT IUIAutomation3_CreatePropertyCondition(IUIAutomation3* This,PROPERTYID propertyId,VARIANT value,IUIAutomationCondition **newCondition) {
19834    return This->lpVtbl->CreatePropertyCondition(This,propertyId,value,newCondition);
19835}
19836static inline HRESULT IUIAutomation3_CreatePropertyConditionEx(IUIAutomation3* This,PROPERTYID propertyId,VARIANT value,enum PropertyConditionFlags flags,IUIAutomationCondition **newCondition) {
19837    return This->lpVtbl->CreatePropertyConditionEx(This,propertyId,value,flags,newCondition);
19838}
19839static inline HRESULT IUIAutomation3_CreateAndCondition(IUIAutomation3* This,IUIAutomationCondition *condition1,IUIAutomationCondition *condition2,IUIAutomationCondition **newCondition) {
19840    return This->lpVtbl->CreateAndCondition(This,condition1,condition2,newCondition);
19841}
19842static inline HRESULT IUIAutomation3_CreateAndConditionFromArray(IUIAutomation3* This,SAFEARRAY *conditions,IUIAutomationCondition **newCondition) {
19843    return This->lpVtbl->CreateAndConditionFromArray(This,conditions,newCondition);
19844}
19845static inline HRESULT IUIAutomation3_CreateAndConditionFromNativeArray(IUIAutomation3* This,IUIAutomationCondition **conditions,int conditionCount,IUIAutomationCondition **newCondition) {
19846    return This->lpVtbl->CreateAndConditionFromNativeArray(This,conditions,conditionCount,newCondition);
19847}
19848static inline HRESULT IUIAutomation3_CreateOrCondition(IUIAutomation3* This,IUIAutomationCondition *condition1,IUIAutomationCondition *condition2,IUIAutomationCondition **newCondition) {
19849    return This->lpVtbl->CreateOrCondition(This,condition1,condition2,newCondition);
19850}
19851static inline HRESULT IUIAutomation3_CreateOrConditionFromArray(IUIAutomation3* This,SAFEARRAY *conditions,IUIAutomationCondition **newCondition) {
19852    return This->lpVtbl->CreateOrConditionFromArray(This,conditions,newCondition);
19853}
19854static inline HRESULT IUIAutomation3_CreateOrConditionFromNativeArray(IUIAutomation3* This,IUIAutomationCondition **conditions,int conditionCount,IUIAutomationCondition **newCondition) {
19855    return This->lpVtbl->CreateOrConditionFromNativeArray(This,conditions,conditionCount,newCondition);
19856}
19857static inline HRESULT IUIAutomation3_CreateNotCondition(IUIAutomation3* This,IUIAutomationCondition *condition,IUIAutomationCondition **newCondition) {
19858    return This->lpVtbl->CreateNotCondition(This,condition,newCondition);
19859}
19860static inline HRESULT IUIAutomation3_AddAutomationEventHandler(IUIAutomation3* This,EVENTID eventId,IUIAutomationElement *element,enum TreeScope scope,IUIAutomationCacheRequest *cacheRequest,IUIAutomationEventHandler *handler) {
19861    return This->lpVtbl->AddAutomationEventHandler(This,eventId,element,scope,cacheRequest,handler);
19862}
19863static inline HRESULT IUIAutomation3_RemoveAutomationEventHandler(IUIAutomation3* This,EVENTID eventId,IUIAutomationElement *element,IUIAutomationEventHandler *handler) {
19864    return This->lpVtbl->RemoveAutomationEventHandler(This,eventId,element,handler);
19865}
19866static inline HRESULT IUIAutomation3_AddPropertyChangedEventHandlerNativeArray(IUIAutomation3* This,IUIAutomationElement *element,enum TreeScope scope,IUIAutomationCacheRequest *cacheRequest,IUIAutomationPropertyChangedEventHandler *handler,PROPERTYID *propertyArray,int propertyCount) {
19867    return This->lpVtbl->AddPropertyChangedEventHandlerNativeArray(This,element,scope,cacheRequest,handler,propertyArray,propertyCount);
19868}
19869static inline HRESULT IUIAutomation3_AddPropertyChangedEventHandler(IUIAutomation3* This,IUIAutomationElement *element,enum TreeScope scope,IUIAutomationCacheRequest *cacheRequest,IUIAutomationPropertyChangedEventHandler *handler,SAFEARRAY *propertyArray) {
19870    return This->lpVtbl->AddPropertyChangedEventHandler(This,element,scope,cacheRequest,handler,propertyArray);
19871}
19872static inline HRESULT IUIAutomation3_RemovePropertyChangedEventHandler(IUIAutomation3* This,IUIAutomationElement *element,IUIAutomationPropertyChangedEventHandler *handler) {
19873    return This->lpVtbl->RemovePropertyChangedEventHandler(This,element,handler);
19874}
19875static inline HRESULT IUIAutomation3_AddStructureChangedEventHandler(IUIAutomation3* This,IUIAutomationElement *element,enum TreeScope scope,IUIAutomationCacheRequest *cacheRequest,IUIAutomationStructureChangedEventHandler *handler) {
19876    return This->lpVtbl->AddStructureChangedEventHandler(This,element,scope,cacheRequest,handler);
19877}
19878static inline HRESULT IUIAutomation3_RemoveStructureChangedEventHandler(IUIAutomation3* This,IUIAutomationElement *element,IUIAutomationStructureChangedEventHandler *handler) {
19879    return This->lpVtbl->RemoveStructureChangedEventHandler(This,element,handler);
19880}
19881static inline HRESULT IUIAutomation3_AddFocusChangedEventHandler(IUIAutomation3* This,IUIAutomationCacheRequest *cacheRequest,IUIAutomationFocusChangedEventHandler *handler) {
19882    return This->lpVtbl->AddFocusChangedEventHandler(This,cacheRequest,handler);
19883}
19884static inline HRESULT IUIAutomation3_RemoveFocusChangedEventHandler(IUIAutomation3* This,IUIAutomationFocusChangedEventHandler *handler) {
19885    return This->lpVtbl->RemoveFocusChangedEventHandler(This,handler);
19886}
19887static inline HRESULT IUIAutomation3_RemoveAllEventHandlers(IUIAutomation3* This) {
19888    return This->lpVtbl->RemoveAllEventHandlers(This);
19889}
19890static inline HRESULT IUIAutomation3_IntNativeArrayToSafeArray(IUIAutomation3* This,int *array,int arrayCount,SAFEARRAY **safeArray) {
19891    return This->lpVtbl->IntNativeArrayToSafeArray(This,array,arrayCount,safeArray);
19892}
19893static inline HRESULT IUIAutomation3_IntSafeArrayToNativeArray(IUIAutomation3* This,SAFEARRAY *intArray,int **array,int *arrayCount) {
19894    return This->lpVtbl->IntSafeArrayToNativeArray(This,intArray,array,arrayCount);
19895}
19896static inline HRESULT IUIAutomation3_RectToVariant(IUIAutomation3* This,RECT rc,VARIANT *var) {
19897    return This->lpVtbl->RectToVariant(This,rc,var);
19898}
19899static inline HRESULT IUIAutomation3_VariantToRect(IUIAutomation3* This,VARIANT var,RECT *rc) {
19900    return This->lpVtbl->VariantToRect(This,var,rc);
19901}
19902static inline HRESULT IUIAutomation3_SafeArrayToRectNativeArray(IUIAutomation3* This,SAFEARRAY *rects,RECT **rectArray,int *rectArrayCount) {
19903    return This->lpVtbl->SafeArrayToRectNativeArray(This,rects,rectArray,rectArrayCount);
19904}
19905static inline HRESULT IUIAutomation3_CreateProxyFactoryEntry(IUIAutomation3* This,IUIAutomationProxyFactory *factory,IUIAutomationProxyFactoryEntry **factoryEntry) {
19906    return This->lpVtbl->CreateProxyFactoryEntry(This,factory,factoryEntry);
19907}
19908static inline HRESULT IUIAutomation3_get_ProxyFactoryMapping(IUIAutomation3* This,IUIAutomationProxyFactoryMapping **factoryMapping) {
19909    return This->lpVtbl->get_ProxyFactoryMapping(This,factoryMapping);
19910}
19911static inline HRESULT IUIAutomation3_GetPropertyProgrammaticName(IUIAutomation3* This,PROPERTYID property,BSTR *name) {
19912    return This->lpVtbl->GetPropertyProgrammaticName(This,property,name);
19913}
19914static inline HRESULT IUIAutomation3_GetPatternProgrammaticName(IUIAutomation3* This,PATTERNID pattern,BSTR *name) {
19915    return This->lpVtbl->GetPatternProgrammaticName(This,pattern,name);
19916}
19917static inline HRESULT IUIAutomation3_PollForPotentialSupportedPatterns(IUIAutomation3* This,IUIAutomationElement *pElement,SAFEARRAY **patternIds,SAFEARRAY **patternNames) {
19918    return This->lpVtbl->PollForPotentialSupportedPatterns(This,pElement,patternIds,patternNames);
19919}
19920static inline HRESULT IUIAutomation3_PollForPotentialSupportedProperties(IUIAutomation3* This,IUIAutomationElement *pElement,SAFEARRAY **propertyIds,SAFEARRAY **propertyNames) {
19921    return This->lpVtbl->PollForPotentialSupportedProperties(This,pElement,propertyIds,propertyNames);
19922}
19923static inline HRESULT IUIAutomation3_CheckNotSupported(IUIAutomation3* This,VARIANT value,WINBOOL *isNotSupported) {
19924    return This->lpVtbl->CheckNotSupported(This,value,isNotSupported);
19925}
19926static inline HRESULT IUIAutomation3_get_ReservedNotSupportedValue(IUIAutomation3* This,IUnknown **notSupportedValue) {
19927    return This->lpVtbl->get_ReservedNotSupportedValue(This,notSupportedValue);
19928}
19929static inline HRESULT IUIAutomation3_get_ReservedMixedAttributeValue(IUIAutomation3* This,IUnknown **mixedAttributeValue) {
19930    return This->lpVtbl->get_ReservedMixedAttributeValue(This,mixedAttributeValue);
19931}
19932static inline HRESULT IUIAutomation3_ElementFromIAccessible(IUIAutomation3* This,IAccessible *accessible,int childId,IUIAutomationElement **element) {
19933    return This->lpVtbl->ElementFromIAccessible(This,accessible,childId,element);
19934}
19935static inline HRESULT IUIAutomation3_ElementFromIAccessibleBuildCache(IUIAutomation3* This,IAccessible *accessible,int childId,IUIAutomationCacheRequest *cacheRequest,IUIAutomationElement **element) {
19936    return This->lpVtbl->ElementFromIAccessibleBuildCache(This,accessible,childId,cacheRequest,element);
19937}
19938/*** IUIAutomation2 methods ***/
19939static inline HRESULT IUIAutomation3_get_AutoSetFocus(IUIAutomation3* This,WINBOOL *autoSetFocus) {
19940    return This->lpVtbl->get_AutoSetFocus(This,autoSetFocus);
19941}
19942static inline HRESULT IUIAutomation3_put_AutoSetFocus(IUIAutomation3* This,WINBOOL autoSetFocus) {
19943    return This->lpVtbl->put_AutoSetFocus(This,autoSetFocus);
19944}
19945static inline HRESULT IUIAutomation3_get_ConnectionTimeout(IUIAutomation3* This,DWORD *timeout) {
19946    return This->lpVtbl->get_ConnectionTimeout(This,timeout);
19947}
19948static inline HRESULT IUIAutomation3_put_ConnectionTimeout(IUIAutomation3* This,DWORD timeout) {
19949    return This->lpVtbl->put_ConnectionTimeout(This,timeout);
19950}
19951static inline HRESULT IUIAutomation3_get_TransactionTimeout(IUIAutomation3* This,DWORD *timeout) {
19952    return This->lpVtbl->get_TransactionTimeout(This,timeout);
19953}
19954static inline HRESULT IUIAutomation3_put_TransactionTimeout(IUIAutomation3* This,DWORD timeout) {
19955    return This->lpVtbl->put_TransactionTimeout(This,timeout);
19956}
19957/*** IUIAutomation3 methods ***/
19958static inline HRESULT IUIAutomation3_AddTextEditTextChangedEventHandler(IUIAutomation3* This,IUIAutomationElement *element,enum TreeScope scope,enum TextEditChangeType textEditChangeType,IUIAutomationCacheRequest *cacheRequest,IUIAutomationTextEditTextChangedEventHandler *handler) {
19959    return This->lpVtbl->AddTextEditTextChangedEventHandler(This,element,scope,textEditChangeType,cacheRequest,handler);
19960}
19961static inline HRESULT IUIAutomation3_RemoveTextEditTextChangedEventHandler(IUIAutomation3* This,IUIAutomationElement *element,IUIAutomationTextEditTextChangedEventHandler *handler) {
19962    return This->lpVtbl->RemoveTextEditTextChangedEventHandler(This,element,handler);
19963}
19964#endif
19965#endif
19966
19967#endif
19968
19969
19970#endif  /* __IUIAutomation3_INTERFACE_DEFINED__ */
19971
19972/*****************************************************************************
19973 * IUIAutomation4 interface
19974 */
19975#ifndef __IUIAutomation4_INTERFACE_DEFINED__
19976#define __IUIAutomation4_INTERFACE_DEFINED__
19977
19978DEFINE_GUID(IID_IUIAutomation4, 0x1189c02a, 0x05f8, 0x4319, 0x8e,0x21, 0xe8,0x17,0xe3,0xdb,0x28,0x60);
19979#if defined(__cplusplus) && !defined(CINTERFACE)
19980MIDL_INTERFACE("1189c02a-05f8-4319-8e21-e817e3db2860")
19981IUIAutomation4 : public IUIAutomation3
19982{
19983    virtual HRESULT STDMETHODCALLTYPE AddChangesEventHandler(
19984        IUIAutomationElement *element,
19985        enum TreeScope scope,
19986        int *changeTypes,
19987        int changesCount,
19988        IUIAutomationCacheRequest *pCacheRequest,
19989        IUIAutomationChangesEventHandler *handler) = 0;
19990
19991    virtual HRESULT STDMETHODCALLTYPE RemoveChangesEventHandler(
19992        IUIAutomationElement *element,
19993        IUIAutomationChangesEventHandler *handler) = 0;
19994
19995};
19996#ifdef __CRT_UUID_DECL
19997__CRT_UUID_DECL(IUIAutomation4, 0x1189c02a, 0x05f8, 0x4319, 0x8e,0x21, 0xe8,0x17,0xe3,0xdb,0x28,0x60)
19998#endif
19999#else
20000typedef struct IUIAutomation4Vtbl {
20001    BEGIN_INTERFACE
20002
20003    /*** IUnknown methods ***/
20004    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
20005        IUIAutomation4 *This,
20006        REFIID riid,
20007        void **ppvObject);
20008
20009    ULONG (STDMETHODCALLTYPE *AddRef)(
20010        IUIAutomation4 *This);
20011
20012    ULONG (STDMETHODCALLTYPE *Release)(
20013        IUIAutomation4 *This);
20014
20015    /*** IUIAutomation methods ***/
20016    HRESULT (STDMETHODCALLTYPE *CompareElements)(
20017        IUIAutomation4 *This,
20018        IUIAutomationElement *el1,
20019        IUIAutomationElement *el2,
20020        WINBOOL *areSame);
20021
20022    HRESULT (STDMETHODCALLTYPE *CompareRuntimeIds)(
20023        IUIAutomation4 *This,
20024        SAFEARRAY *runtimeId1,
20025        SAFEARRAY *runtimeId2,
20026        WINBOOL *areSame);
20027
20028    HRESULT (STDMETHODCALLTYPE *GetRootElement)(
20029        IUIAutomation4 *This,
20030        IUIAutomationElement **root);
20031
20032    HRESULT (STDMETHODCALLTYPE *ElementFromHandle)(
20033        IUIAutomation4 *This,
20034        UIA_HWND hwnd,
20035        IUIAutomationElement **element);
20036
20037    HRESULT (STDMETHODCALLTYPE *ElementFromPoint)(
20038        IUIAutomation4 *This,
20039        POINT pt,
20040        IUIAutomationElement **element);
20041
20042    HRESULT (STDMETHODCALLTYPE *GetFocusedElement)(
20043        IUIAutomation4 *This,
20044        IUIAutomationElement **element);
20045
20046    HRESULT (STDMETHODCALLTYPE *GetRootElementBuildCache)(
20047        IUIAutomation4 *This,
20048        IUIAutomationCacheRequest *cacheRequest,
20049        IUIAutomationElement **root);
20050
20051    HRESULT (STDMETHODCALLTYPE *ElementFromHandleBuildCache)(
20052        IUIAutomation4 *This,
20053        UIA_HWND hwnd,
20054        IUIAutomationCacheRequest *cacheRequest,
20055        IUIAutomationElement **element);
20056
20057    HRESULT (STDMETHODCALLTYPE *ElementFromPointBuildCache)(
20058        IUIAutomation4 *This,
20059        POINT pt,
20060        IUIAutomationCacheRequest *cacheRequest,
20061        IUIAutomationElement **element);
20062
20063    HRESULT (STDMETHODCALLTYPE *GetFocusedElementBuildCache)(
20064        IUIAutomation4 *This,
20065        IUIAutomationCacheRequest *cacheRequest,
20066        IUIAutomationElement **element);
20067
20068    HRESULT (STDMETHODCALLTYPE *CreateTreeWalker)(
20069        IUIAutomation4 *This,
20070        IUIAutomationCondition *pCondition,
20071        IUIAutomationTreeWalker **walker);
20072
20073    HRESULT (STDMETHODCALLTYPE *get_ControlViewWalker)(
20074        IUIAutomation4 *This,
20075        IUIAutomationTreeWalker **walker);
20076
20077    HRESULT (STDMETHODCALLTYPE *get_ContentViewWalker)(
20078        IUIAutomation4 *This,
20079        IUIAutomationTreeWalker **walker);
20080
20081    HRESULT (STDMETHODCALLTYPE *get_RawViewWalker)(
20082        IUIAutomation4 *This,
20083        IUIAutomationTreeWalker **walker);
20084
20085    HRESULT (STDMETHODCALLTYPE *get_RawViewCondition)(
20086        IUIAutomation4 *This,
20087        IUIAutomationCondition **condition);
20088
20089    HRESULT (STDMETHODCALLTYPE *get_ControlViewCondition)(
20090        IUIAutomation4 *This,
20091        IUIAutomationCondition **condition);
20092
20093    HRESULT (STDMETHODCALLTYPE *get_ContentViewCondition)(
20094        IUIAutomation4 *This,
20095        IUIAutomationCondition **condition);
20096
20097    HRESULT (STDMETHODCALLTYPE *CreateCacheRequest)(
20098        IUIAutomation4 *This,
20099        IUIAutomationCacheRequest **cacheRequest);
20100
20101    HRESULT (STDMETHODCALLTYPE *CreateTrueCondition)(
20102        IUIAutomation4 *This,
20103        IUIAutomationCondition **newCondition);
20104
20105    HRESULT (STDMETHODCALLTYPE *CreateFalseCondition)(
20106        IUIAutomation4 *This,
20107        IUIAutomationCondition **newCondition);
20108
20109    HRESULT (STDMETHODCALLTYPE *CreatePropertyCondition)(
20110        IUIAutomation4 *This,
20111        PROPERTYID propertyId,
20112        VARIANT value,
20113        IUIAutomationCondition **newCondition);
20114
20115    HRESULT (STDMETHODCALLTYPE *CreatePropertyConditionEx)(
20116        IUIAutomation4 *This,
20117        PROPERTYID propertyId,
20118        VARIANT value,
20119        enum PropertyConditionFlags flags,
20120        IUIAutomationCondition **newCondition);
20121
20122    HRESULT (STDMETHODCALLTYPE *CreateAndCondition)(
20123        IUIAutomation4 *This,
20124        IUIAutomationCondition *condition1,
20125        IUIAutomationCondition *condition2,
20126        IUIAutomationCondition **newCondition);
20127
20128    HRESULT (STDMETHODCALLTYPE *CreateAndConditionFromArray)(
20129        IUIAutomation4 *This,
20130        SAFEARRAY *conditions,
20131        IUIAutomationCondition **newCondition);
20132
20133    HRESULT (STDMETHODCALLTYPE *CreateAndConditionFromNativeArray)(
20134        IUIAutomation4 *This,
20135        IUIAutomationCondition **conditions,
20136        int conditionCount,
20137        IUIAutomationCondition **newCondition);
20138
20139    HRESULT (STDMETHODCALLTYPE *CreateOrCondition)(
20140        IUIAutomation4 *This,
20141        IUIAutomationCondition *condition1,
20142        IUIAutomationCondition *condition2,
20143        IUIAutomationCondition **newCondition);
20144
20145    HRESULT (STDMETHODCALLTYPE *CreateOrConditionFromArray)(
20146        IUIAutomation4 *This,
20147        SAFEARRAY *conditions,
20148        IUIAutomationCondition **newCondition);
20149
20150    HRESULT (STDMETHODCALLTYPE *CreateOrConditionFromNativeArray)(
20151        IUIAutomation4 *This,
20152        IUIAutomationCondition **conditions,
20153        int conditionCount,
20154        IUIAutomationCondition **newCondition);
20155
20156    HRESULT (STDMETHODCALLTYPE *CreateNotCondition)(
20157        IUIAutomation4 *This,
20158        IUIAutomationCondition *condition,
20159        IUIAutomationCondition **newCondition);
20160
20161    HRESULT (STDMETHODCALLTYPE *AddAutomationEventHandler)(
20162        IUIAutomation4 *This,
20163        EVENTID eventId,
20164        IUIAutomationElement *element,
20165        enum TreeScope scope,
20166        IUIAutomationCacheRequest *cacheRequest,
20167        IUIAutomationEventHandler *handler);
20168
20169    HRESULT (STDMETHODCALLTYPE *RemoveAutomationEventHandler)(
20170        IUIAutomation4 *This,
20171        EVENTID eventId,
20172        IUIAutomationElement *element,
20173        IUIAutomationEventHandler *handler);
20174
20175    HRESULT (STDMETHODCALLTYPE *AddPropertyChangedEventHandlerNativeArray)(
20176        IUIAutomation4 *This,
20177        IUIAutomationElement *element,
20178        enum TreeScope scope,
20179        IUIAutomationCacheRequest *cacheRequest,
20180        IUIAutomationPropertyChangedEventHandler *handler,
20181        PROPERTYID *propertyArray,
20182        int propertyCount);
20183
20184    HRESULT (STDMETHODCALLTYPE *AddPropertyChangedEventHandler)(
20185        IUIAutomation4 *This,
20186        IUIAutomationElement *element,
20187        enum TreeScope scope,
20188        IUIAutomationCacheRequest *cacheRequest,
20189        IUIAutomationPropertyChangedEventHandler *handler,
20190        SAFEARRAY *propertyArray);
20191
20192    HRESULT (STDMETHODCALLTYPE *RemovePropertyChangedEventHandler)(
20193        IUIAutomation4 *This,
20194        IUIAutomationElement *element,
20195        IUIAutomationPropertyChangedEventHandler *handler);
20196
20197    HRESULT (STDMETHODCALLTYPE *AddStructureChangedEventHandler)(
20198        IUIAutomation4 *This,
20199        IUIAutomationElement *element,
20200        enum TreeScope scope,
20201        IUIAutomationCacheRequest *cacheRequest,
20202        IUIAutomationStructureChangedEventHandler *handler);
20203
20204    HRESULT (STDMETHODCALLTYPE *RemoveStructureChangedEventHandler)(
20205        IUIAutomation4 *This,
20206        IUIAutomationElement *element,
20207        IUIAutomationStructureChangedEventHandler *handler);
20208
20209    HRESULT (STDMETHODCALLTYPE *AddFocusChangedEventHandler)(
20210        IUIAutomation4 *This,
20211        IUIAutomationCacheRequest *cacheRequest,
20212        IUIAutomationFocusChangedEventHandler *handler);
20213
20214    HRESULT (STDMETHODCALLTYPE *RemoveFocusChangedEventHandler)(
20215        IUIAutomation4 *This,
20216        IUIAutomationFocusChangedEventHandler *handler);
20217
20218    HRESULT (STDMETHODCALLTYPE *RemoveAllEventHandlers)(
20219        IUIAutomation4 *This);
20220
20221    HRESULT (STDMETHODCALLTYPE *IntNativeArrayToSafeArray)(
20222        IUIAutomation4 *This,
20223        int *array,
20224        int arrayCount,
20225        SAFEARRAY **safeArray);
20226
20227    HRESULT (STDMETHODCALLTYPE *IntSafeArrayToNativeArray)(
20228        IUIAutomation4 *This,
20229        SAFEARRAY *intArray,
20230        int **array,
20231        int *arrayCount);
20232
20233    HRESULT (STDMETHODCALLTYPE *RectToVariant)(
20234        IUIAutomation4 *This,
20235        RECT rc,
20236        VARIANT *var);
20237
20238    HRESULT (STDMETHODCALLTYPE *VariantToRect)(
20239        IUIAutomation4 *This,
20240        VARIANT var,
20241        RECT *rc);
20242
20243    HRESULT (STDMETHODCALLTYPE *SafeArrayToRectNativeArray)(
20244        IUIAutomation4 *This,
20245        SAFEARRAY *rects,
20246        RECT **rectArray,
20247        int *rectArrayCount);
20248
20249    HRESULT (STDMETHODCALLTYPE *CreateProxyFactoryEntry)(
20250        IUIAutomation4 *This,
20251        IUIAutomationProxyFactory *factory,
20252        IUIAutomationProxyFactoryEntry **factoryEntry);
20253
20254    HRESULT (STDMETHODCALLTYPE *get_ProxyFactoryMapping)(
20255        IUIAutomation4 *This,
20256        IUIAutomationProxyFactoryMapping **factoryMapping);
20257
20258    HRESULT (STDMETHODCALLTYPE *GetPropertyProgrammaticName)(
20259        IUIAutomation4 *This,
20260        PROPERTYID property,
20261        BSTR *name);
20262
20263    HRESULT (STDMETHODCALLTYPE *GetPatternProgrammaticName)(
20264        IUIAutomation4 *This,
20265        PATTERNID pattern,
20266        BSTR *name);
20267
20268    HRESULT (STDMETHODCALLTYPE *PollForPotentialSupportedPatterns)(
20269        IUIAutomation4 *This,
20270        IUIAutomationElement *pElement,
20271        SAFEARRAY **patternIds,
20272        SAFEARRAY **patternNames);
20273
20274    HRESULT (STDMETHODCALLTYPE *PollForPotentialSupportedProperties)(
20275        IUIAutomation4 *This,
20276        IUIAutomationElement *pElement,
20277        SAFEARRAY **propertyIds,
20278        SAFEARRAY **propertyNames);
20279
20280    HRESULT (STDMETHODCALLTYPE *CheckNotSupported)(
20281        IUIAutomation4 *This,
20282        VARIANT value,
20283        WINBOOL *isNotSupported);
20284
20285    HRESULT (STDMETHODCALLTYPE *get_ReservedNotSupportedValue)(
20286        IUIAutomation4 *This,
20287        IUnknown **notSupportedValue);
20288
20289    HRESULT (STDMETHODCALLTYPE *get_ReservedMixedAttributeValue)(
20290        IUIAutomation4 *This,
20291        IUnknown **mixedAttributeValue);
20292
20293    HRESULT (STDMETHODCALLTYPE *ElementFromIAccessible)(
20294        IUIAutomation4 *This,
20295        IAccessible *accessible,
20296        int childId,
20297        IUIAutomationElement **element);
20298
20299    HRESULT (STDMETHODCALLTYPE *ElementFromIAccessibleBuildCache)(
20300        IUIAutomation4 *This,
20301        IAccessible *accessible,
20302        int childId,
20303        IUIAutomationCacheRequest *cacheRequest,
20304        IUIAutomationElement **element);
20305
20306    /*** IUIAutomation2 methods ***/
20307    HRESULT (STDMETHODCALLTYPE *get_AutoSetFocus)(
20308        IUIAutomation4 *This,
20309        WINBOOL *autoSetFocus);
20310
20311    HRESULT (STDMETHODCALLTYPE *put_AutoSetFocus)(
20312        IUIAutomation4 *This,
20313        WINBOOL autoSetFocus);
20314
20315    HRESULT (STDMETHODCALLTYPE *get_ConnectionTimeout)(
20316        IUIAutomation4 *This,
20317        DWORD *timeout);
20318
20319    HRESULT (STDMETHODCALLTYPE *put_ConnectionTimeout)(
20320        IUIAutomation4 *This,
20321        DWORD timeout);
20322
20323    HRESULT (STDMETHODCALLTYPE *get_TransactionTimeout)(
20324        IUIAutomation4 *This,
20325        DWORD *timeout);
20326
20327    HRESULT (STDMETHODCALLTYPE *put_TransactionTimeout)(
20328        IUIAutomation4 *This,
20329        DWORD timeout);
20330
20331    /*** IUIAutomation3 methods ***/
20332    HRESULT (STDMETHODCALLTYPE *AddTextEditTextChangedEventHandler)(
20333        IUIAutomation4 *This,
20334        IUIAutomationElement *element,
20335        enum TreeScope scope,
20336        enum TextEditChangeType textEditChangeType,
20337        IUIAutomationCacheRequest *cacheRequest,
20338        IUIAutomationTextEditTextChangedEventHandler *handler);
20339
20340    HRESULT (STDMETHODCALLTYPE *RemoveTextEditTextChangedEventHandler)(
20341        IUIAutomation4 *This,
20342        IUIAutomationElement *element,
20343        IUIAutomationTextEditTextChangedEventHandler *handler);
20344
20345    /*** IUIAutomation4 methods ***/
20346    HRESULT (STDMETHODCALLTYPE *AddChangesEventHandler)(
20347        IUIAutomation4 *This,
20348        IUIAutomationElement *element,
20349        enum TreeScope scope,
20350        int *changeTypes,
20351        int changesCount,
20352        IUIAutomationCacheRequest *pCacheRequest,
20353        IUIAutomationChangesEventHandler *handler);
20354
20355    HRESULT (STDMETHODCALLTYPE *RemoveChangesEventHandler)(
20356        IUIAutomation4 *This,
20357        IUIAutomationElement *element,
20358        IUIAutomationChangesEventHandler *handler);
20359
20360    END_INTERFACE
20361} IUIAutomation4Vtbl;
20362
20363interface IUIAutomation4 {
20364    CONST_VTBL IUIAutomation4Vtbl* lpVtbl;
20365};
20366
20367#ifdef COBJMACROS
20368#ifndef WIDL_C_INLINE_WRAPPERS
20369/*** IUnknown methods ***/
20370#define IUIAutomation4_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
20371#define IUIAutomation4_AddRef(This) (This)->lpVtbl->AddRef(This)
20372#define IUIAutomation4_Release(This) (This)->lpVtbl->Release(This)
20373/*** IUIAutomation methods ***/
20374#define IUIAutomation4_CompareElements(This,el1,el2,areSame) (This)->lpVtbl->CompareElements(This,el1,el2,areSame)
20375#define IUIAutomation4_CompareRuntimeIds(This,runtimeId1,runtimeId2,areSame) (This)->lpVtbl->CompareRuntimeIds(This,runtimeId1,runtimeId2,areSame)
20376#define IUIAutomation4_GetRootElement(This,root) (This)->lpVtbl->GetRootElement(This,root)
20377#define IUIAutomation4_ElementFromHandle(This,hwnd,element) (This)->lpVtbl->ElementFromHandle(This,hwnd,element)
20378#define IUIAutomation4_ElementFromPoint(This,pt,element) (This)->lpVtbl->ElementFromPoint(This,pt,element)
20379#define IUIAutomation4_GetFocusedElement(This,element) (This)->lpVtbl->GetFocusedElement(This,element)
20380#define IUIAutomation4_GetRootElementBuildCache(This,cacheRequest,root) (This)->lpVtbl->GetRootElementBuildCache(This,cacheRequest,root)
20381#define IUIAutomation4_ElementFromHandleBuildCache(This,hwnd,cacheRequest,element) (This)->lpVtbl->ElementFromHandleBuildCache(This,hwnd,cacheRequest,element)
20382#define IUIAutomation4_ElementFromPointBuildCache(This,pt,cacheRequest,element) (This)->lpVtbl->ElementFromPointBuildCache(This,pt,cacheRequest,element)
20383#define IUIAutomation4_GetFocusedElementBuildCache(This,cacheRequest,element) (This)->lpVtbl->GetFocusedElementBuildCache(This,cacheRequest,element)
20384#define IUIAutomation4_CreateTreeWalker(This,pCondition,walker) (This)->lpVtbl->CreateTreeWalker(This,pCondition,walker)
20385#define IUIAutomation4_get_ControlViewWalker(This,walker) (This)->lpVtbl->get_ControlViewWalker(This,walker)
20386#define IUIAutomation4_get_ContentViewWalker(This,walker) (This)->lpVtbl->get_ContentViewWalker(This,walker)
20387#define IUIAutomation4_get_RawViewWalker(This,walker) (This)->lpVtbl->get_RawViewWalker(This,walker)
20388#define IUIAutomation4_get_RawViewCondition(This,condition) (This)->lpVtbl->get_RawViewCondition(This,condition)
20389#define IUIAutomation4_get_ControlViewCondition(This,condition) (This)->lpVtbl->get_ControlViewCondition(This,condition)
20390#define IUIAutomation4_get_ContentViewCondition(This,condition) (This)->lpVtbl->get_ContentViewCondition(This,condition)
20391#define IUIAutomation4_CreateCacheRequest(This,cacheRequest) (This)->lpVtbl->CreateCacheRequest(This,cacheRequest)
20392#define IUIAutomation4_CreateTrueCondition(This,newCondition) (This)->lpVtbl->CreateTrueCondition(This,newCondition)
20393#define IUIAutomation4_CreateFalseCondition(This,newCondition) (This)->lpVtbl->CreateFalseCondition(This,newCondition)
20394#define IUIAutomation4_CreatePropertyCondition(This,propertyId,value,newCondition) (This)->lpVtbl->CreatePropertyCondition(This,propertyId,value,newCondition)
20395#define IUIAutomation4_CreatePropertyConditionEx(This,propertyId,value,flags,newCondition) (This)->lpVtbl->CreatePropertyConditionEx(This,propertyId,value,flags,newCondition)
20396#define IUIAutomation4_CreateAndCondition(This,condition1,condition2,newCondition) (This)->lpVtbl->CreateAndCondition(This,condition1,condition2,newCondition)
20397#define IUIAutomation4_CreateAndConditionFromArray(This,conditions,newCondition) (This)->lpVtbl->CreateAndConditionFromArray(This,conditions,newCondition)
20398#define IUIAutomation4_CreateAndConditionFromNativeArray(This,conditions,conditionCount,newCondition) (This)->lpVtbl->CreateAndConditionFromNativeArray(This,conditions,conditionCount,newCondition)
20399#define IUIAutomation4_CreateOrCondition(This,condition1,condition2,newCondition) (This)->lpVtbl->CreateOrCondition(This,condition1,condition2,newCondition)
20400#define IUIAutomation4_CreateOrConditionFromArray(This,conditions,newCondition) (This)->lpVtbl->CreateOrConditionFromArray(This,conditions,newCondition)
20401#define IUIAutomation4_CreateOrConditionFromNativeArray(This,conditions,conditionCount,newCondition) (This)->lpVtbl->CreateOrConditionFromNativeArray(This,conditions,conditionCount,newCondition)
20402#define IUIAutomation4_CreateNotCondition(This,condition,newCondition) (This)->lpVtbl->CreateNotCondition(This,condition,newCondition)
20403#define IUIAutomation4_AddAutomationEventHandler(This,eventId,element,scope,cacheRequest,handler) (This)->lpVtbl->AddAutomationEventHandler(This,eventId,element,scope,cacheRequest,handler)
20404#define IUIAutomation4_RemoveAutomationEventHandler(This,eventId,element,handler) (This)->lpVtbl->RemoveAutomationEventHandler(This,eventId,element,handler)
20405#define IUIAutomation4_AddPropertyChangedEventHandlerNativeArray(This,element,scope,cacheRequest,handler,propertyArray,propertyCount) (This)->lpVtbl->AddPropertyChangedEventHandlerNativeArray(This,element,scope,cacheRequest,handler,propertyArray,propertyCount)
20406#define IUIAutomation4_AddPropertyChangedEventHandler(This,element,scope,cacheRequest,handler,propertyArray) (This)->lpVtbl->AddPropertyChangedEventHandler(This,element,scope,cacheRequest,handler,propertyArray)
20407#define IUIAutomation4_RemovePropertyChangedEventHandler(This,element,handler) (This)->lpVtbl->RemovePropertyChangedEventHandler(This,element,handler)
20408#define IUIAutomation4_AddStructureChangedEventHandler(This,element,scope,cacheRequest,handler) (This)->lpVtbl->AddStructureChangedEventHandler(This,element,scope,cacheRequest,handler)
20409#define IUIAutomation4_RemoveStructureChangedEventHandler(This,element,handler) (This)->lpVtbl->RemoveStructureChangedEventHandler(This,element,handler)
20410#define IUIAutomation4_AddFocusChangedEventHandler(This,cacheRequest,handler) (This)->lpVtbl->AddFocusChangedEventHandler(This,cacheRequest,handler)
20411#define IUIAutomation4_RemoveFocusChangedEventHandler(This,handler) (This)->lpVtbl->RemoveFocusChangedEventHandler(This,handler)
20412#define IUIAutomation4_RemoveAllEventHandlers(This) (This)->lpVtbl->RemoveAllEventHandlers(This)
20413#define IUIAutomation4_IntNativeArrayToSafeArray(This,array,arrayCount,safeArray) (This)->lpVtbl->IntNativeArrayToSafeArray(This,array,arrayCount,safeArray)
20414#define IUIAutomation4_IntSafeArrayToNativeArray(This,intArray,array,arrayCount) (This)->lpVtbl->IntSafeArrayToNativeArray(This,intArray,array,arrayCount)
20415#define IUIAutomation4_RectToVariant(This,rc,var) (This)->lpVtbl->RectToVariant(This,rc,var)
20416#define IUIAutomation4_VariantToRect(This,var,rc) (This)->lpVtbl->VariantToRect(This,var,rc)
20417#define IUIAutomation4_SafeArrayToRectNativeArray(This,rects,rectArray,rectArrayCount) (This)->lpVtbl->SafeArrayToRectNativeArray(This,rects,rectArray,rectArrayCount)
20418#define IUIAutomation4_CreateProxyFactoryEntry(This,factory,factoryEntry) (This)->lpVtbl->CreateProxyFactoryEntry(This,factory,factoryEntry)
20419#define IUIAutomation4_get_ProxyFactoryMapping(This,factoryMapping) (This)->lpVtbl->get_ProxyFactoryMapping(This,factoryMapping)
20420#define IUIAutomation4_GetPropertyProgrammaticName(This,property,name) (This)->lpVtbl->GetPropertyProgrammaticName(This,property,name)
20421#define IUIAutomation4_GetPatternProgrammaticName(This,pattern,name) (This)->lpVtbl->GetPatternProgrammaticName(This,pattern,name)
20422#define IUIAutomation4_PollForPotentialSupportedPatterns(This,pElement,patternIds,patternNames) (This)->lpVtbl->PollForPotentialSupportedPatterns(This,pElement,patternIds,patternNames)
20423#define IUIAutomation4_PollForPotentialSupportedProperties(This,pElement,propertyIds,propertyNames) (This)->lpVtbl->PollForPotentialSupportedProperties(This,pElement,propertyIds,propertyNames)
20424#define IUIAutomation4_CheckNotSupported(This,value,isNotSupported) (This)->lpVtbl->CheckNotSupported(This,value,isNotSupported)
20425#define IUIAutomation4_get_ReservedNotSupportedValue(This,notSupportedValue) (This)->lpVtbl->get_ReservedNotSupportedValue(This,notSupportedValue)
20426#define IUIAutomation4_get_ReservedMixedAttributeValue(This,mixedAttributeValue) (This)->lpVtbl->get_ReservedMixedAttributeValue(This,mixedAttributeValue)
20427#define IUIAutomation4_ElementFromIAccessible(This,accessible,childId,element) (This)->lpVtbl->ElementFromIAccessible(This,accessible,childId,element)
20428#define IUIAutomation4_ElementFromIAccessibleBuildCache(This,accessible,childId,cacheRequest,element) (This)->lpVtbl->ElementFromIAccessibleBuildCache(This,accessible,childId,cacheRequest,element)
20429/*** IUIAutomation2 methods ***/
20430#define IUIAutomation4_get_AutoSetFocus(This,autoSetFocus) (This)->lpVtbl->get_AutoSetFocus(This,autoSetFocus)
20431#define IUIAutomation4_put_AutoSetFocus(This,autoSetFocus) (This)->lpVtbl->put_AutoSetFocus(This,autoSetFocus)
20432#define IUIAutomation4_get_ConnectionTimeout(This,timeout) (This)->lpVtbl->get_ConnectionTimeout(This,timeout)
20433#define IUIAutomation4_put_ConnectionTimeout(This,timeout) (This)->lpVtbl->put_ConnectionTimeout(This,timeout)
20434#define IUIAutomation4_get_TransactionTimeout(This,timeout) (This)->lpVtbl->get_TransactionTimeout(This,timeout)
20435#define IUIAutomation4_put_TransactionTimeout(This,timeout) (This)->lpVtbl->put_TransactionTimeout(This,timeout)
20436/*** IUIAutomation3 methods ***/
20437#define IUIAutomation4_AddTextEditTextChangedEventHandler(This,element,scope,textEditChangeType,cacheRequest,handler) (This)->lpVtbl->AddTextEditTextChangedEventHandler(This,element,scope,textEditChangeType,cacheRequest,handler)
20438#define IUIAutomation4_RemoveTextEditTextChangedEventHandler(This,element,handler) (This)->lpVtbl->RemoveTextEditTextChangedEventHandler(This,element,handler)
20439/*** IUIAutomation4 methods ***/
20440#define IUIAutomation4_AddChangesEventHandler(This,element,scope,changeTypes,changesCount,pCacheRequest,handler) (This)->lpVtbl->AddChangesEventHandler(This,element,scope,changeTypes,changesCount,pCacheRequest,handler)
20441#define IUIAutomation4_RemoveChangesEventHandler(This,element,handler) (This)->lpVtbl->RemoveChangesEventHandler(This,element,handler)
20442#else
20443/*** IUnknown methods ***/
20444static inline HRESULT IUIAutomation4_QueryInterface(IUIAutomation4* This,REFIID riid,void **ppvObject) {
20445    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
20446}
20447static inline ULONG IUIAutomation4_AddRef(IUIAutomation4* This) {
20448    return This->lpVtbl->AddRef(This);
20449}
20450static inline ULONG IUIAutomation4_Release(IUIAutomation4* This) {
20451    return This->lpVtbl->Release(This);
20452}
20453/*** IUIAutomation methods ***/
20454static inline HRESULT IUIAutomation4_CompareElements(IUIAutomation4* This,IUIAutomationElement *el1,IUIAutomationElement *el2,WINBOOL *areSame) {
20455    return This->lpVtbl->CompareElements(This,el1,el2,areSame);
20456}
20457static inline HRESULT IUIAutomation4_CompareRuntimeIds(IUIAutomation4* This,SAFEARRAY *runtimeId1,SAFEARRAY *runtimeId2,WINBOOL *areSame) {
20458    return This->lpVtbl->CompareRuntimeIds(This,runtimeId1,runtimeId2,areSame);
20459}
20460static inline HRESULT IUIAutomation4_GetRootElement(IUIAutomation4* This,IUIAutomationElement **root) {
20461    return This->lpVtbl->GetRootElement(This,root);
20462}
20463static inline HRESULT IUIAutomation4_ElementFromHandle(IUIAutomation4* This,UIA_HWND hwnd,IUIAutomationElement **element) {
20464    return This->lpVtbl->ElementFromHandle(This,hwnd,element);
20465}
20466static inline HRESULT IUIAutomation4_ElementFromPoint(IUIAutomation4* This,POINT pt,IUIAutomationElement **element) {
20467    return This->lpVtbl->ElementFromPoint(This,pt,element);
20468}
20469static inline HRESULT IUIAutomation4_GetFocusedElement(IUIAutomation4* This,IUIAutomationElement **element) {
20470    return This->lpVtbl->GetFocusedElement(This,element);
20471}
20472static inline HRESULT IUIAutomation4_GetRootElementBuildCache(IUIAutomation4* This,IUIAutomationCacheRequest *cacheRequest,IUIAutomationElement **root) {
20473    return This->lpVtbl->GetRootElementBuildCache(This,cacheRequest,root);
20474}
20475static inline HRESULT IUIAutomation4_ElementFromHandleBuildCache(IUIAutomation4* This,UIA_HWND hwnd,IUIAutomationCacheRequest *cacheRequest,IUIAutomationElement **element) {
20476    return This->lpVtbl->ElementFromHandleBuildCache(This,hwnd,cacheRequest,element);
20477}
20478static inline HRESULT IUIAutomation4_ElementFromPointBuildCache(IUIAutomation4* This,POINT pt,IUIAutomationCacheRequest *cacheRequest,IUIAutomationElement **element) {
20479    return This->lpVtbl->ElementFromPointBuildCache(This,pt,cacheRequest,element);
20480}
20481static inline HRESULT IUIAutomation4_GetFocusedElementBuildCache(IUIAutomation4* This,IUIAutomationCacheRequest *cacheRequest,IUIAutomationElement **element) {
20482    return This->lpVtbl->GetFocusedElementBuildCache(This,cacheRequest,element);
20483}
20484static inline HRESULT IUIAutomation4_CreateTreeWalker(IUIAutomation4* This,IUIAutomationCondition *pCondition,IUIAutomationTreeWalker **walker) {
20485    return This->lpVtbl->CreateTreeWalker(This,pCondition,walker);
20486}
20487static inline HRESULT IUIAutomation4_get_ControlViewWalker(IUIAutomation4* This,IUIAutomationTreeWalker **walker) {
20488    return This->lpVtbl->get_ControlViewWalker(This,walker);
20489}
20490static inline HRESULT IUIAutomation4_get_ContentViewWalker(IUIAutomation4* This,IUIAutomationTreeWalker **walker) {
20491    return This->lpVtbl->get_ContentViewWalker(This,walker);
20492}
20493static inline HRESULT IUIAutomation4_get_RawViewWalker(IUIAutomation4* This,IUIAutomationTreeWalker **walker) {
20494    return This->lpVtbl->get_RawViewWalker(This,walker);
20495}
20496static inline HRESULT IUIAutomation4_get_RawViewCondition(IUIAutomation4* This,IUIAutomationCondition **condition) {
20497    return This->lpVtbl->get_RawViewCondition(This,condition);
20498}
20499static inline HRESULT IUIAutomation4_get_ControlViewCondition(IUIAutomation4* This,IUIAutomationCondition **condition) {
20500    return This->lpVtbl->get_ControlViewCondition(This,condition);
20501}
20502static inline HRESULT IUIAutomation4_get_ContentViewCondition(IUIAutomation4* This,IUIAutomationCondition **condition) {
20503    return This->lpVtbl->get_ContentViewCondition(This,condition);
20504}
20505static inline HRESULT IUIAutomation4_CreateCacheRequest(IUIAutomation4* This,IUIAutomationCacheRequest **cacheRequest) {
20506    return This->lpVtbl->CreateCacheRequest(This,cacheRequest);
20507}
20508static inline HRESULT IUIAutomation4_CreateTrueCondition(IUIAutomation4* This,IUIAutomationCondition **newCondition) {
20509    return This->lpVtbl->CreateTrueCondition(This,newCondition);
20510}
20511static inline HRESULT IUIAutomation4_CreateFalseCondition(IUIAutomation4* This,IUIAutomationCondition **newCondition) {
20512    return This->lpVtbl->CreateFalseCondition(This,newCondition);
20513}
20514static inline HRESULT IUIAutomation4_CreatePropertyCondition(IUIAutomation4* This,PROPERTYID propertyId,VARIANT value,IUIAutomationCondition **newCondition) {
20515    return This->lpVtbl->CreatePropertyCondition(This,propertyId,value,newCondition);
20516}
20517static inline HRESULT IUIAutomation4_CreatePropertyConditionEx(IUIAutomation4* This,PROPERTYID propertyId,VARIANT value,enum PropertyConditionFlags flags,IUIAutomationCondition **newCondition) {
20518    return This->lpVtbl->CreatePropertyConditionEx(This,propertyId,value,flags,newCondition);
20519}
20520static inline HRESULT IUIAutomation4_CreateAndCondition(IUIAutomation4* This,IUIAutomationCondition *condition1,IUIAutomationCondition *condition2,IUIAutomationCondition **newCondition) {
20521    return This->lpVtbl->CreateAndCondition(This,condition1,condition2,newCondition);
20522}
20523static inline HRESULT IUIAutomation4_CreateAndConditionFromArray(IUIAutomation4* This,SAFEARRAY *conditions,IUIAutomationCondition **newCondition) {
20524    return This->lpVtbl->CreateAndConditionFromArray(This,conditions,newCondition);
20525}
20526static inline HRESULT IUIAutomation4_CreateAndConditionFromNativeArray(IUIAutomation4* This,IUIAutomationCondition **conditions,int conditionCount,IUIAutomationCondition **newCondition) {
20527    return This->lpVtbl->CreateAndConditionFromNativeArray(This,conditions,conditionCount,newCondition);
20528}
20529static inline HRESULT IUIAutomation4_CreateOrCondition(IUIAutomation4* This,IUIAutomationCondition *condition1,IUIAutomationCondition *condition2,IUIAutomationCondition **newCondition) {
20530    return This->lpVtbl->CreateOrCondition(This,condition1,condition2,newCondition);
20531}
20532static inline HRESULT IUIAutomation4_CreateOrConditionFromArray(IUIAutomation4* This,SAFEARRAY *conditions,IUIAutomationCondition **newCondition) {
20533    return This->lpVtbl->CreateOrConditionFromArray(This,conditions,newCondition);
20534}
20535static inline HRESULT IUIAutomation4_CreateOrConditionFromNativeArray(IUIAutomation4* This,IUIAutomationCondition **conditions,int conditionCount,IUIAutomationCondition **newCondition) {
20536    return This->lpVtbl->CreateOrConditionFromNativeArray(This,conditions,conditionCount,newCondition);
20537}
20538static inline HRESULT IUIAutomation4_CreateNotCondition(IUIAutomation4* This,IUIAutomationCondition *condition,IUIAutomationCondition **newCondition) {
20539    return This->lpVtbl->CreateNotCondition(This,condition,newCondition);
20540}
20541static inline HRESULT IUIAutomation4_AddAutomationEventHandler(IUIAutomation4* This,EVENTID eventId,IUIAutomationElement *element,enum TreeScope scope,IUIAutomationCacheRequest *cacheRequest,IUIAutomationEventHandler *handler) {
20542    return This->lpVtbl->AddAutomationEventHandler(This,eventId,element,scope,cacheRequest,handler);
20543}
20544static inline HRESULT IUIAutomation4_RemoveAutomationEventHandler(IUIAutomation4* This,EVENTID eventId,IUIAutomationElement *element,IUIAutomationEventHandler *handler) {
20545    return This->lpVtbl->RemoveAutomationEventHandler(This,eventId,element,handler);
20546}
20547static inline HRESULT IUIAutomation4_AddPropertyChangedEventHandlerNativeArray(IUIAutomation4* This,IUIAutomationElement *element,enum TreeScope scope,IUIAutomationCacheRequest *cacheRequest,IUIAutomationPropertyChangedEventHandler *handler,PROPERTYID *propertyArray,int propertyCount) {
20548    return This->lpVtbl->AddPropertyChangedEventHandlerNativeArray(This,element,scope,cacheRequest,handler,propertyArray,propertyCount);
20549}
20550static inline HRESULT IUIAutomation4_AddPropertyChangedEventHandler(IUIAutomation4* This,IUIAutomationElement *element,enum TreeScope scope,IUIAutomationCacheRequest *cacheRequest,IUIAutomationPropertyChangedEventHandler *handler,SAFEARRAY *propertyArray) {
20551    return This->lpVtbl->AddPropertyChangedEventHandler(This,element,scope,cacheRequest,handler,propertyArray);
20552}
20553static inline HRESULT IUIAutomation4_RemovePropertyChangedEventHandler(IUIAutomation4* This,IUIAutomationElement *element,IUIAutomationPropertyChangedEventHandler *handler) {
20554    return This->lpVtbl->RemovePropertyChangedEventHandler(This,element,handler);
20555}
20556static inline HRESULT IUIAutomation4_AddStructureChangedEventHandler(IUIAutomation4* This,IUIAutomationElement *element,enum TreeScope scope,IUIAutomationCacheRequest *cacheRequest,IUIAutomationStructureChangedEventHandler *handler) {
20557    return This->lpVtbl->AddStructureChangedEventHandler(This,element,scope,cacheRequest,handler);
20558}
20559static inline HRESULT IUIAutomation4_RemoveStructureChangedEventHandler(IUIAutomation4* This,IUIAutomationElement *element,IUIAutomationStructureChangedEventHandler *handler) {
20560    return This->lpVtbl->RemoveStructureChangedEventHandler(This,element,handler);
20561}
20562static inline HRESULT IUIAutomation4_AddFocusChangedEventHandler(IUIAutomation4* This,IUIAutomationCacheRequest *cacheRequest,IUIAutomationFocusChangedEventHandler *handler) {
20563    return This->lpVtbl->AddFocusChangedEventHandler(This,cacheRequest,handler);
20564}
20565static inline HRESULT IUIAutomation4_RemoveFocusChangedEventHandler(IUIAutomation4* This,IUIAutomationFocusChangedEventHandler *handler) {
20566    return This->lpVtbl->RemoveFocusChangedEventHandler(This,handler);
20567}
20568static inline HRESULT IUIAutomation4_RemoveAllEventHandlers(IUIAutomation4* This) {
20569    return This->lpVtbl->RemoveAllEventHandlers(This);
20570}
20571static inline HRESULT IUIAutomation4_IntNativeArrayToSafeArray(IUIAutomation4* This,int *array,int arrayCount,SAFEARRAY **safeArray) {
20572    return This->lpVtbl->IntNativeArrayToSafeArray(This,array,arrayCount,safeArray);
20573}
20574static inline HRESULT IUIAutomation4_IntSafeArrayToNativeArray(IUIAutomation4* This,SAFEARRAY *intArray,int **array,int *arrayCount) {
20575    return This->lpVtbl->IntSafeArrayToNativeArray(This,intArray,array,arrayCount);
20576}
20577static inline HRESULT IUIAutomation4_RectToVariant(IUIAutomation4* This,RECT rc,VARIANT *var) {
20578    return This->lpVtbl->RectToVariant(This,rc,var);
20579}
20580static inline HRESULT IUIAutomation4_VariantToRect(IUIAutomation4* This,VARIANT var,RECT *rc) {
20581    return This->lpVtbl->VariantToRect(This,var,rc);
20582}
20583static inline HRESULT IUIAutomation4_SafeArrayToRectNativeArray(IUIAutomation4* This,SAFEARRAY *rects,RECT **rectArray,int *rectArrayCount) {
20584    return This->lpVtbl->SafeArrayToRectNativeArray(This,rects,rectArray,rectArrayCount);
20585}
20586static inline HRESULT IUIAutomation4_CreateProxyFactoryEntry(IUIAutomation4* This,IUIAutomationProxyFactory *factory,IUIAutomationProxyFactoryEntry **factoryEntry) {
20587    return This->lpVtbl->CreateProxyFactoryEntry(This,factory,factoryEntry);
20588}
20589static inline HRESULT IUIAutomation4_get_ProxyFactoryMapping(IUIAutomation4* This,IUIAutomationProxyFactoryMapping **factoryMapping) {
20590    return This->lpVtbl->get_ProxyFactoryMapping(This,factoryMapping);
20591}
20592static inline HRESULT IUIAutomation4_GetPropertyProgrammaticName(IUIAutomation4* This,PROPERTYID property,BSTR *name) {
20593    return This->lpVtbl->GetPropertyProgrammaticName(This,property,name);
20594}
20595static inline HRESULT IUIAutomation4_GetPatternProgrammaticName(IUIAutomation4* This,PATTERNID pattern,BSTR *name) {
20596    return This->lpVtbl->GetPatternProgrammaticName(This,pattern,name);
20597}
20598static inline HRESULT IUIAutomation4_PollForPotentialSupportedPatterns(IUIAutomation4* This,IUIAutomationElement *pElement,SAFEARRAY **patternIds,SAFEARRAY **patternNames) {
20599    return This->lpVtbl->PollForPotentialSupportedPatterns(This,pElement,patternIds,patternNames);
20600}
20601static inline HRESULT IUIAutomation4_PollForPotentialSupportedProperties(IUIAutomation4* This,IUIAutomationElement *pElement,SAFEARRAY **propertyIds,SAFEARRAY **propertyNames) {
20602    return This->lpVtbl->PollForPotentialSupportedProperties(This,pElement,propertyIds,propertyNames);
20603}
20604static inline HRESULT IUIAutomation4_CheckNotSupported(IUIAutomation4* This,VARIANT value,WINBOOL *isNotSupported) {
20605    return This->lpVtbl->CheckNotSupported(This,value,isNotSupported);
20606}
20607static inline HRESULT IUIAutomation4_get_ReservedNotSupportedValue(IUIAutomation4* This,IUnknown **notSupportedValue) {
20608    return This->lpVtbl->get_ReservedNotSupportedValue(This,notSupportedValue);
20609}
20610static inline HRESULT IUIAutomation4_get_ReservedMixedAttributeValue(IUIAutomation4* This,IUnknown **mixedAttributeValue) {
20611    return This->lpVtbl->get_ReservedMixedAttributeValue(This,mixedAttributeValue);
20612}
20613static inline HRESULT IUIAutomation4_ElementFromIAccessible(IUIAutomation4* This,IAccessible *accessible,int childId,IUIAutomationElement **element) {
20614    return This->lpVtbl->ElementFromIAccessible(This,accessible,childId,element);
20615}
20616static inline HRESULT IUIAutomation4_ElementFromIAccessibleBuildCache(IUIAutomation4* This,IAccessible *accessible,int childId,IUIAutomationCacheRequest *cacheRequest,IUIAutomationElement **element) {
20617    return This->lpVtbl->ElementFromIAccessibleBuildCache(This,accessible,childId,cacheRequest,element);
20618}
20619/*** IUIAutomation2 methods ***/
20620static inline HRESULT IUIAutomation4_get_AutoSetFocus(IUIAutomation4* This,WINBOOL *autoSetFocus) {
20621    return This->lpVtbl->get_AutoSetFocus(This,autoSetFocus);
20622}
20623static inline HRESULT IUIAutomation4_put_AutoSetFocus(IUIAutomation4* This,WINBOOL autoSetFocus) {
20624    return This->lpVtbl->put_AutoSetFocus(This,autoSetFocus);
20625}
20626static inline HRESULT IUIAutomation4_get_ConnectionTimeout(IUIAutomation4* This,DWORD *timeout) {
20627    return This->lpVtbl->get_ConnectionTimeout(This,timeout);
20628}
20629static inline HRESULT IUIAutomation4_put_ConnectionTimeout(IUIAutomation4* This,DWORD timeout) {
20630    return This->lpVtbl->put_ConnectionTimeout(This,timeout);
20631}
20632static inline HRESULT IUIAutomation4_get_TransactionTimeout(IUIAutomation4* This,DWORD *timeout) {
20633    return This->lpVtbl->get_TransactionTimeout(This,timeout);
20634}
20635static inline HRESULT IUIAutomation4_put_TransactionTimeout(IUIAutomation4* This,DWORD timeout) {
20636    return This->lpVtbl->put_TransactionTimeout(This,timeout);
20637}
20638/*** IUIAutomation3 methods ***/
20639static inline HRESULT IUIAutomation4_AddTextEditTextChangedEventHandler(IUIAutomation4* This,IUIAutomationElement *element,enum TreeScope scope,enum TextEditChangeType textEditChangeType,IUIAutomationCacheRequest *cacheRequest,IUIAutomationTextEditTextChangedEventHandler *handler) {
20640    return This->lpVtbl->AddTextEditTextChangedEventHandler(This,element,scope,textEditChangeType,cacheRequest,handler);
20641}
20642static inline HRESULT IUIAutomation4_RemoveTextEditTextChangedEventHandler(IUIAutomation4* This,IUIAutomationElement *element,IUIAutomationTextEditTextChangedEventHandler *handler) {
20643    return This->lpVtbl->RemoveTextEditTextChangedEventHandler(This,element,handler);
20644}
20645/*** IUIAutomation4 methods ***/
20646static inline HRESULT IUIAutomation4_AddChangesEventHandler(IUIAutomation4* This,IUIAutomationElement *element,enum TreeScope scope,int *changeTypes,int changesCount,IUIAutomationCacheRequest *pCacheRequest,IUIAutomationChangesEventHandler *handler) {
20647    return This->lpVtbl->AddChangesEventHandler(This,element,scope,changeTypes,changesCount,pCacheRequest,handler);
20648}
20649static inline HRESULT IUIAutomation4_RemoveChangesEventHandler(IUIAutomation4* This,IUIAutomationElement *element,IUIAutomationChangesEventHandler *handler) {
20650    return This->lpVtbl->RemoveChangesEventHandler(This,element,handler);
20651}
20652#endif
20653#endif
20654
20655#endif
20656
20657
20658#endif  /* __IUIAutomation4_INTERFACE_DEFINED__ */
20659
20660/*****************************************************************************
20661 * IUIAutomation5 interface
20662 */
20663#ifndef __IUIAutomation5_INTERFACE_DEFINED__
20664#define __IUIAutomation5_INTERFACE_DEFINED__
20665
20666DEFINE_GUID(IID_IUIAutomation5, 0x25f700c8, 0xd816, 0x4057, 0xa9,0xdc, 0x3c,0xbd,0xee,0x77,0xe2,0x56);
20667#if defined(__cplusplus) && !defined(CINTERFACE)
20668MIDL_INTERFACE("25f700c8-d816-4057-a9dc-3cbdee77e256")
20669IUIAutomation5 : public IUIAutomation4
20670{
20671    virtual HRESULT STDMETHODCALLTYPE AddNotificationEventHandler(
20672        IUIAutomationElement *element,
20673        enum TreeScope scope,
20674        IUIAutomationCacheRequest *cacheRequest,
20675        IUIAutomationNotificationEventHandler *handler) = 0;
20676
20677    virtual HRESULT STDMETHODCALLTYPE RemoveNotificationEventHandler(
20678        IUIAutomationElement *element,
20679        IUIAutomationNotificationEventHandler *handler) = 0;
20680
20681};
20682#ifdef __CRT_UUID_DECL
20683__CRT_UUID_DECL(IUIAutomation5, 0x25f700c8, 0xd816, 0x4057, 0xa9,0xdc, 0x3c,0xbd,0xee,0x77,0xe2,0x56)
20684#endif
20685#else
20686typedef struct IUIAutomation5Vtbl {
20687    BEGIN_INTERFACE
20688
20689    /*** IUnknown methods ***/
20690    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
20691        IUIAutomation5 *This,
20692        REFIID riid,
20693        void **ppvObject);
20694
20695    ULONG (STDMETHODCALLTYPE *AddRef)(
20696        IUIAutomation5 *This);
20697
20698    ULONG (STDMETHODCALLTYPE *Release)(
20699        IUIAutomation5 *This);
20700
20701    /*** IUIAutomation methods ***/
20702    HRESULT (STDMETHODCALLTYPE *CompareElements)(
20703        IUIAutomation5 *This,
20704        IUIAutomationElement *el1,
20705        IUIAutomationElement *el2,
20706        WINBOOL *areSame);
20707
20708    HRESULT (STDMETHODCALLTYPE *CompareRuntimeIds)(
20709        IUIAutomation5 *This,
20710        SAFEARRAY *runtimeId1,
20711        SAFEARRAY *runtimeId2,
20712        WINBOOL *areSame);
20713
20714    HRESULT (STDMETHODCALLTYPE *GetRootElement)(
20715        IUIAutomation5 *This,
20716        IUIAutomationElement **root);
20717
20718    HRESULT (STDMETHODCALLTYPE *ElementFromHandle)(
20719        IUIAutomation5 *This,
20720        UIA_HWND hwnd,
20721        IUIAutomationElement **element);
20722
20723    HRESULT (STDMETHODCALLTYPE *ElementFromPoint)(
20724        IUIAutomation5 *This,
20725        POINT pt,
20726        IUIAutomationElement **element);
20727
20728    HRESULT (STDMETHODCALLTYPE *GetFocusedElement)(
20729        IUIAutomation5 *This,
20730        IUIAutomationElement **element);
20731
20732    HRESULT (STDMETHODCALLTYPE *GetRootElementBuildCache)(
20733        IUIAutomation5 *This,
20734        IUIAutomationCacheRequest *cacheRequest,
20735        IUIAutomationElement **root);
20736
20737    HRESULT (STDMETHODCALLTYPE *ElementFromHandleBuildCache)(
20738        IUIAutomation5 *This,
20739        UIA_HWND hwnd,
20740        IUIAutomationCacheRequest *cacheRequest,
20741        IUIAutomationElement **element);
20742
20743    HRESULT (STDMETHODCALLTYPE *ElementFromPointBuildCache)(
20744        IUIAutomation5 *This,
20745        POINT pt,
20746        IUIAutomationCacheRequest *cacheRequest,
20747        IUIAutomationElement **element);
20748
20749    HRESULT (STDMETHODCALLTYPE *GetFocusedElementBuildCache)(
20750        IUIAutomation5 *This,
20751        IUIAutomationCacheRequest *cacheRequest,
20752        IUIAutomationElement **element);
20753
20754    HRESULT (STDMETHODCALLTYPE *CreateTreeWalker)(
20755        IUIAutomation5 *This,
20756        IUIAutomationCondition *pCondition,
20757        IUIAutomationTreeWalker **walker);
20758
20759    HRESULT (STDMETHODCALLTYPE *get_ControlViewWalker)(
20760        IUIAutomation5 *This,
20761        IUIAutomationTreeWalker **walker);
20762
20763    HRESULT (STDMETHODCALLTYPE *get_ContentViewWalker)(
20764        IUIAutomation5 *This,
20765        IUIAutomationTreeWalker **walker);
20766
20767    HRESULT (STDMETHODCALLTYPE *get_RawViewWalker)(
20768        IUIAutomation5 *This,
20769        IUIAutomationTreeWalker **walker);
20770
20771    HRESULT (STDMETHODCALLTYPE *get_RawViewCondition)(
20772        IUIAutomation5 *This,
20773        IUIAutomationCondition **condition);
20774
20775    HRESULT (STDMETHODCALLTYPE *get_ControlViewCondition)(
20776        IUIAutomation5 *This,
20777        IUIAutomationCondition **condition);
20778
20779    HRESULT (STDMETHODCALLTYPE *get_ContentViewCondition)(
20780        IUIAutomation5 *This,
20781        IUIAutomationCondition **condition);
20782
20783    HRESULT (STDMETHODCALLTYPE *CreateCacheRequest)(
20784        IUIAutomation5 *This,
20785        IUIAutomationCacheRequest **cacheRequest);
20786
20787    HRESULT (STDMETHODCALLTYPE *CreateTrueCondition)(
20788        IUIAutomation5 *This,
20789        IUIAutomationCondition **newCondition);
20790
20791    HRESULT (STDMETHODCALLTYPE *CreateFalseCondition)(
20792        IUIAutomation5 *This,
20793        IUIAutomationCondition **newCondition);
20794
20795    HRESULT (STDMETHODCALLTYPE *CreatePropertyCondition)(
20796        IUIAutomation5 *This,
20797        PROPERTYID propertyId,
20798        VARIANT value,
20799        IUIAutomationCondition **newCondition);
20800
20801    HRESULT (STDMETHODCALLTYPE *CreatePropertyConditionEx)(
20802        IUIAutomation5 *This,
20803        PROPERTYID propertyId,
20804        VARIANT value,
20805        enum PropertyConditionFlags flags,
20806        IUIAutomationCondition **newCondition);
20807
20808    HRESULT (STDMETHODCALLTYPE *CreateAndCondition)(
20809        IUIAutomation5 *This,
20810        IUIAutomationCondition *condition1,
20811        IUIAutomationCondition *condition2,
20812        IUIAutomationCondition **newCondition);
20813
20814    HRESULT (STDMETHODCALLTYPE *CreateAndConditionFromArray)(
20815        IUIAutomation5 *This,
20816        SAFEARRAY *conditions,
20817        IUIAutomationCondition **newCondition);
20818
20819    HRESULT (STDMETHODCALLTYPE *CreateAndConditionFromNativeArray)(
20820        IUIAutomation5 *This,
20821        IUIAutomationCondition **conditions,
20822        int conditionCount,
20823        IUIAutomationCondition **newCondition);
20824
20825    HRESULT (STDMETHODCALLTYPE *CreateOrCondition)(
20826        IUIAutomation5 *This,
20827        IUIAutomationCondition *condition1,
20828        IUIAutomationCondition *condition2,
20829        IUIAutomationCondition **newCondition);
20830
20831    HRESULT (STDMETHODCALLTYPE *CreateOrConditionFromArray)(
20832        IUIAutomation5 *This,
20833        SAFEARRAY *conditions,
20834        IUIAutomationCondition **newCondition);
20835
20836    HRESULT (STDMETHODCALLTYPE *CreateOrConditionFromNativeArray)(
20837        IUIAutomation5 *This,
20838        IUIAutomationCondition **conditions,
20839        int conditionCount,
20840        IUIAutomationCondition **newCondition);
20841
20842    HRESULT (STDMETHODCALLTYPE *CreateNotCondition)(
20843        IUIAutomation5 *This,
20844        IUIAutomationCondition *condition,
20845        IUIAutomationCondition **newCondition);
20846
20847    HRESULT (STDMETHODCALLTYPE *AddAutomationEventHandler)(
20848        IUIAutomation5 *This,
20849        EVENTID eventId,
20850        IUIAutomationElement *element,
20851        enum TreeScope scope,
20852        IUIAutomationCacheRequest *cacheRequest,
20853        IUIAutomationEventHandler *handler);
20854
20855    HRESULT (STDMETHODCALLTYPE *RemoveAutomationEventHandler)(
20856        IUIAutomation5 *This,
20857        EVENTID eventId,
20858        IUIAutomationElement *element,
20859        IUIAutomationEventHandler *handler);
20860
20861    HRESULT (STDMETHODCALLTYPE *AddPropertyChangedEventHandlerNativeArray)(
20862        IUIAutomation5 *This,
20863        IUIAutomationElement *element,
20864        enum TreeScope scope,
20865        IUIAutomationCacheRequest *cacheRequest,
20866        IUIAutomationPropertyChangedEventHandler *handler,
20867        PROPERTYID *propertyArray,
20868        int propertyCount);
20869
20870    HRESULT (STDMETHODCALLTYPE *AddPropertyChangedEventHandler)(
20871        IUIAutomation5 *This,
20872        IUIAutomationElement *element,
20873        enum TreeScope scope,
20874        IUIAutomationCacheRequest *cacheRequest,
20875        IUIAutomationPropertyChangedEventHandler *handler,
20876        SAFEARRAY *propertyArray);
20877
20878    HRESULT (STDMETHODCALLTYPE *RemovePropertyChangedEventHandler)(
20879        IUIAutomation5 *This,
20880        IUIAutomationElement *element,
20881        IUIAutomationPropertyChangedEventHandler *handler);
20882
20883    HRESULT (STDMETHODCALLTYPE *AddStructureChangedEventHandler)(
20884        IUIAutomation5 *This,
20885        IUIAutomationElement *element,
20886        enum TreeScope scope,
20887        IUIAutomationCacheRequest *cacheRequest,
20888        IUIAutomationStructureChangedEventHandler *handler);
20889
20890    HRESULT (STDMETHODCALLTYPE *RemoveStructureChangedEventHandler)(
20891        IUIAutomation5 *This,
20892        IUIAutomationElement *element,
20893        IUIAutomationStructureChangedEventHandler *handler);
20894
20895    HRESULT (STDMETHODCALLTYPE *AddFocusChangedEventHandler)(
20896        IUIAutomation5 *This,
20897        IUIAutomationCacheRequest *cacheRequest,
20898        IUIAutomationFocusChangedEventHandler *handler);
20899
20900    HRESULT (STDMETHODCALLTYPE *RemoveFocusChangedEventHandler)(
20901        IUIAutomation5 *This,
20902        IUIAutomationFocusChangedEventHandler *handler);
20903
20904    HRESULT (STDMETHODCALLTYPE *RemoveAllEventHandlers)(
20905        IUIAutomation5 *This);
20906
20907    HRESULT (STDMETHODCALLTYPE *IntNativeArrayToSafeArray)(
20908        IUIAutomation5 *This,
20909        int *array,
20910        int arrayCount,
20911        SAFEARRAY **safeArray);
20912
20913    HRESULT (STDMETHODCALLTYPE *IntSafeArrayToNativeArray)(
20914        IUIAutomation5 *This,
20915        SAFEARRAY *intArray,
20916        int **array,
20917        int *arrayCount);
20918
20919    HRESULT (STDMETHODCALLTYPE *RectToVariant)(
20920        IUIAutomation5 *This,
20921        RECT rc,
20922        VARIANT *var);
20923
20924    HRESULT (STDMETHODCALLTYPE *VariantToRect)(
20925        IUIAutomation5 *This,
20926        VARIANT var,
20927        RECT *rc);
20928
20929    HRESULT (STDMETHODCALLTYPE *SafeArrayToRectNativeArray)(
20930        IUIAutomation5 *This,
20931        SAFEARRAY *rects,
20932        RECT **rectArray,
20933        int *rectArrayCount);
20934
20935    HRESULT (STDMETHODCALLTYPE *CreateProxyFactoryEntry)(
20936        IUIAutomation5 *This,
20937        IUIAutomationProxyFactory *factory,
20938        IUIAutomationProxyFactoryEntry **factoryEntry);
20939
20940    HRESULT (STDMETHODCALLTYPE *get_ProxyFactoryMapping)(
20941        IUIAutomation5 *This,
20942        IUIAutomationProxyFactoryMapping **factoryMapping);
20943
20944    HRESULT (STDMETHODCALLTYPE *GetPropertyProgrammaticName)(
20945        IUIAutomation5 *This,
20946        PROPERTYID property,
20947        BSTR *name);
20948
20949    HRESULT (STDMETHODCALLTYPE *GetPatternProgrammaticName)(
20950        IUIAutomation5 *This,
20951        PATTERNID pattern,
20952        BSTR *name);
20953
20954    HRESULT (STDMETHODCALLTYPE *PollForPotentialSupportedPatterns)(
20955        IUIAutomation5 *This,
20956        IUIAutomationElement *pElement,
20957        SAFEARRAY **patternIds,
20958        SAFEARRAY **patternNames);
20959
20960    HRESULT (STDMETHODCALLTYPE *PollForPotentialSupportedProperties)(
20961        IUIAutomation5 *This,
20962        IUIAutomationElement *pElement,
20963        SAFEARRAY **propertyIds,
20964        SAFEARRAY **propertyNames);
20965
20966    HRESULT (STDMETHODCALLTYPE *CheckNotSupported)(
20967        IUIAutomation5 *This,
20968        VARIANT value,
20969        WINBOOL *isNotSupported);
20970
20971    HRESULT (STDMETHODCALLTYPE *get_ReservedNotSupportedValue)(
20972        IUIAutomation5 *This,
20973        IUnknown **notSupportedValue);
20974
20975    HRESULT (STDMETHODCALLTYPE *get_ReservedMixedAttributeValue)(
20976        IUIAutomation5 *This,
20977        IUnknown **mixedAttributeValue);
20978
20979    HRESULT (STDMETHODCALLTYPE *ElementFromIAccessible)(
20980        IUIAutomation5 *This,
20981        IAccessible *accessible,
20982        int childId,
20983        IUIAutomationElement **element);
20984
20985    HRESULT (STDMETHODCALLTYPE *ElementFromIAccessibleBuildCache)(
20986        IUIAutomation5 *This,
20987        IAccessible *accessible,
20988        int childId,
20989        IUIAutomationCacheRequest *cacheRequest,
20990        IUIAutomationElement **element);
20991
20992    /*** IUIAutomation2 methods ***/
20993    HRESULT (STDMETHODCALLTYPE *get_AutoSetFocus)(
20994        IUIAutomation5 *This,
20995        WINBOOL *autoSetFocus);
20996
20997    HRESULT (STDMETHODCALLTYPE *put_AutoSetFocus)(
20998        IUIAutomation5 *This,
20999        WINBOOL autoSetFocus);
21000
21001    HRESULT (STDMETHODCALLTYPE *get_ConnectionTimeout)(
21002        IUIAutomation5 *This,
21003        DWORD *timeout);
21004
21005    HRESULT (STDMETHODCALLTYPE *put_ConnectionTimeout)(
21006        IUIAutomation5 *This,
21007        DWORD timeout);
21008
21009    HRESULT (STDMETHODCALLTYPE *get_TransactionTimeout)(
21010        IUIAutomation5 *This,
21011        DWORD *timeout);
21012
21013    HRESULT (STDMETHODCALLTYPE *put_TransactionTimeout)(
21014        IUIAutomation5 *This,
21015        DWORD timeout);
21016
21017    /*** IUIAutomation3 methods ***/
21018    HRESULT (STDMETHODCALLTYPE *AddTextEditTextChangedEventHandler)(
21019        IUIAutomation5 *This,
21020        IUIAutomationElement *element,
21021        enum TreeScope scope,
21022        enum TextEditChangeType textEditChangeType,
21023        IUIAutomationCacheRequest *cacheRequest,
21024        IUIAutomationTextEditTextChangedEventHandler *handler);
21025
21026    HRESULT (STDMETHODCALLTYPE *RemoveTextEditTextChangedEventHandler)(
21027        IUIAutomation5 *This,
21028        IUIAutomationElement *element,
21029        IUIAutomationTextEditTextChangedEventHandler *handler);
21030
21031    /*** IUIAutomation4 methods ***/
21032    HRESULT (STDMETHODCALLTYPE *AddChangesEventHandler)(
21033        IUIAutomation5 *This,
21034        IUIAutomationElement *element,
21035        enum TreeScope scope,
21036        int *changeTypes,
21037        int changesCount,
21038        IUIAutomationCacheRequest *pCacheRequest,
21039        IUIAutomationChangesEventHandler *handler);
21040
21041    HRESULT (STDMETHODCALLTYPE *RemoveChangesEventHandler)(
21042        IUIAutomation5 *This,
21043        IUIAutomationElement *element,
21044        IUIAutomationChangesEventHandler *handler);
21045
21046    /*** IUIAutomation5 methods ***/
21047    HRESULT (STDMETHODCALLTYPE *AddNotificationEventHandler)(
21048        IUIAutomation5 *This,
21049        IUIAutomationElement *element,
21050        enum TreeScope scope,
21051        IUIAutomationCacheRequest *cacheRequest,
21052        IUIAutomationNotificationEventHandler *handler);
21053
21054    HRESULT (STDMETHODCALLTYPE *RemoveNotificationEventHandler)(
21055        IUIAutomation5 *This,
21056        IUIAutomationElement *element,
21057        IUIAutomationNotificationEventHandler *handler);
21058
21059    END_INTERFACE
21060} IUIAutomation5Vtbl;
21061
21062interface IUIAutomation5 {
21063    CONST_VTBL IUIAutomation5Vtbl* lpVtbl;
21064};
21065
21066#ifdef COBJMACROS
21067#ifndef WIDL_C_INLINE_WRAPPERS
21068/*** IUnknown methods ***/
21069#define IUIAutomation5_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
21070#define IUIAutomation5_AddRef(This) (This)->lpVtbl->AddRef(This)
21071#define IUIAutomation5_Release(This) (This)->lpVtbl->Release(This)
21072/*** IUIAutomation methods ***/
21073#define IUIAutomation5_CompareElements(This,el1,el2,areSame) (This)->lpVtbl->CompareElements(This,el1,el2,areSame)
21074#define IUIAutomation5_CompareRuntimeIds(This,runtimeId1,runtimeId2,areSame) (This)->lpVtbl->CompareRuntimeIds(This,runtimeId1,runtimeId2,areSame)
21075#define IUIAutomation5_GetRootElement(This,root) (This)->lpVtbl->GetRootElement(This,root)
21076#define IUIAutomation5_ElementFromHandle(This,hwnd,element) (This)->lpVtbl->ElementFromHandle(This,hwnd,element)
21077#define IUIAutomation5_ElementFromPoint(This,pt,element) (This)->lpVtbl->ElementFromPoint(This,pt,element)
21078#define IUIAutomation5_GetFocusedElement(This,element) (This)->lpVtbl->GetFocusedElement(This,element)
21079#define IUIAutomation5_GetRootElementBuildCache(This,cacheRequest,root) (This)->lpVtbl->GetRootElementBuildCache(This,cacheRequest,root)
21080#define IUIAutomation5_ElementFromHandleBuildCache(This,hwnd,cacheRequest,element) (This)->lpVtbl->ElementFromHandleBuildCache(This,hwnd,cacheRequest,element)
21081#define IUIAutomation5_ElementFromPointBuildCache(This,pt,cacheRequest,element) (This)->lpVtbl->ElementFromPointBuildCache(This,pt,cacheRequest,element)
21082#define IUIAutomation5_GetFocusedElementBuildCache(This,cacheRequest,element) (This)->lpVtbl->GetFocusedElementBuildCache(This,cacheRequest,element)
21083#define IUIAutomation5_CreateTreeWalker(This,pCondition,walker) (This)->lpVtbl->CreateTreeWalker(This,pCondition,walker)
21084#define IUIAutomation5_get_ControlViewWalker(This,walker) (This)->lpVtbl->get_ControlViewWalker(This,walker)
21085#define IUIAutomation5_get_ContentViewWalker(This,walker) (This)->lpVtbl->get_ContentViewWalker(This,walker)
21086#define IUIAutomation5_get_RawViewWalker(This,walker) (This)->lpVtbl->get_RawViewWalker(This,walker)
21087#define IUIAutomation5_get_RawViewCondition(This,condition) (This)->lpVtbl->get_RawViewCondition(This,condition)
21088#define IUIAutomation5_get_ControlViewCondition(This,condition) (This)->lpVtbl->get_ControlViewCondition(This,condition)
21089#define IUIAutomation5_get_ContentViewCondition(This,condition) (This)->lpVtbl->get_ContentViewCondition(This,condition)
21090#define IUIAutomation5_CreateCacheRequest(This,cacheRequest) (This)->lpVtbl->CreateCacheRequest(This,cacheRequest)
21091#define IUIAutomation5_CreateTrueCondition(This,newCondition) (This)->lpVtbl->CreateTrueCondition(This,newCondition)
21092#define IUIAutomation5_CreateFalseCondition(This,newCondition) (This)->lpVtbl->CreateFalseCondition(This,newCondition)
21093#define IUIAutomation5_CreatePropertyCondition(This,propertyId,value,newCondition) (This)->lpVtbl->CreatePropertyCondition(This,propertyId,value,newCondition)
21094#define IUIAutomation5_CreatePropertyConditionEx(This,propertyId,value,flags,newCondition) (This)->lpVtbl->CreatePropertyConditionEx(This,propertyId,value,flags,newCondition)
21095#define IUIAutomation5_CreateAndCondition(This,condition1,condition2,newCondition) (This)->lpVtbl->CreateAndCondition(This,condition1,condition2,newCondition)
21096#define IUIAutomation5_CreateAndConditionFromArray(This,conditions,newCondition) (This)->lpVtbl->CreateAndConditionFromArray(This,conditions,newCondition)
21097#define IUIAutomation5_CreateAndConditionFromNativeArray(This,conditions,conditionCount,newCondition) (This)->lpVtbl->CreateAndConditionFromNativeArray(This,conditions,conditionCount,newCondition)
21098#define IUIAutomation5_CreateOrCondition(This,condition1,condition2,newCondition) (This)->lpVtbl->CreateOrCondition(This,condition1,condition2,newCondition)
21099#define IUIAutomation5_CreateOrConditionFromArray(This,conditions,newCondition) (This)->lpVtbl->CreateOrConditionFromArray(This,conditions,newCondition)
21100#define IUIAutomation5_CreateOrConditionFromNativeArray(This,conditions,conditionCount,newCondition) (This)->lpVtbl->CreateOrConditionFromNativeArray(This,conditions,conditionCount,newCondition)
21101#define IUIAutomation5_CreateNotCondition(This,condition,newCondition) (This)->lpVtbl->CreateNotCondition(This,condition,newCondition)
21102#define IUIAutomation5_AddAutomationEventHandler(This,eventId,element,scope,cacheRequest,handler) (This)->lpVtbl->AddAutomationEventHandler(This,eventId,element,scope,cacheRequest,handler)
21103#define IUIAutomation5_RemoveAutomationEventHandler(This,eventId,element,handler) (This)->lpVtbl->RemoveAutomationEventHandler(This,eventId,element,handler)
21104#define IUIAutomation5_AddPropertyChangedEventHandlerNativeArray(This,element,scope,cacheRequest,handler,propertyArray,propertyCount) (This)->lpVtbl->AddPropertyChangedEventHandlerNativeArray(This,element,scope,cacheRequest,handler,propertyArray,propertyCount)
21105#define IUIAutomation5_AddPropertyChangedEventHandler(This,element,scope,cacheRequest,handler,propertyArray) (This)->lpVtbl->AddPropertyChangedEventHandler(This,element,scope,cacheRequest,handler,propertyArray)
21106#define IUIAutomation5_RemovePropertyChangedEventHandler(This,element,handler) (This)->lpVtbl->RemovePropertyChangedEventHandler(This,element,handler)
21107#define IUIAutomation5_AddStructureChangedEventHandler(This,element,scope,cacheRequest,handler) (This)->lpVtbl->AddStructureChangedEventHandler(This,element,scope,cacheRequest,handler)
21108#define IUIAutomation5_RemoveStructureChangedEventHandler(This,element,handler) (This)->lpVtbl->RemoveStructureChangedEventHandler(This,element,handler)
21109#define IUIAutomation5_AddFocusChangedEventHandler(This,cacheRequest,handler) (This)->lpVtbl->AddFocusChangedEventHandler(This,cacheRequest,handler)
21110#define IUIAutomation5_RemoveFocusChangedEventHandler(This,handler) (This)->lpVtbl->RemoveFocusChangedEventHandler(This,handler)
21111#define IUIAutomation5_RemoveAllEventHandlers(This) (This)->lpVtbl->RemoveAllEventHandlers(This)
21112#define IUIAutomation5_IntNativeArrayToSafeArray(This,array,arrayCount,safeArray) (This)->lpVtbl->IntNativeArrayToSafeArray(This,array,arrayCount,safeArray)
21113#define IUIAutomation5_IntSafeArrayToNativeArray(This,intArray,array,arrayCount) (This)->lpVtbl->IntSafeArrayToNativeArray(This,intArray,array,arrayCount)
21114#define IUIAutomation5_RectToVariant(This,rc,var) (This)->lpVtbl->RectToVariant(This,rc,var)
21115#define IUIAutomation5_VariantToRect(This,var,rc) (This)->lpVtbl->VariantToRect(This,var,rc)
21116#define IUIAutomation5_SafeArrayToRectNativeArray(This,rects,rectArray,rectArrayCount) (This)->lpVtbl->SafeArrayToRectNativeArray(This,rects,rectArray,rectArrayCount)
21117#define IUIAutomation5_CreateProxyFactoryEntry(This,factory,factoryEntry) (This)->lpVtbl->CreateProxyFactoryEntry(This,factory,factoryEntry)
21118#define IUIAutomation5_get_ProxyFactoryMapping(This,factoryMapping) (This)->lpVtbl->get_ProxyFactoryMapping(This,factoryMapping)
21119#define IUIAutomation5_GetPropertyProgrammaticName(This,property,name) (This)->lpVtbl->GetPropertyProgrammaticName(This,property,name)
21120#define IUIAutomation5_GetPatternProgrammaticName(This,pattern,name) (This)->lpVtbl->GetPatternProgrammaticName(This,pattern,name)
21121#define IUIAutomation5_PollForPotentialSupportedPatterns(This,pElement,patternIds,patternNames) (This)->lpVtbl->PollForPotentialSupportedPatterns(This,pElement,patternIds,patternNames)
21122#define IUIAutomation5_PollForPotentialSupportedProperties(This,pElement,propertyIds,propertyNames) (This)->lpVtbl->PollForPotentialSupportedProperties(This,pElement,propertyIds,propertyNames)
21123#define IUIAutomation5_CheckNotSupported(This,value,isNotSupported) (This)->lpVtbl->CheckNotSupported(This,value,isNotSupported)
21124#define IUIAutomation5_get_ReservedNotSupportedValue(This,notSupportedValue) (This)->lpVtbl->get_ReservedNotSupportedValue(This,notSupportedValue)
21125#define IUIAutomation5_get_ReservedMixedAttributeValue(This,mixedAttributeValue) (This)->lpVtbl->get_ReservedMixedAttributeValue(This,mixedAttributeValue)
21126#define IUIAutomation5_ElementFromIAccessible(This,accessible,childId,element) (This)->lpVtbl->ElementFromIAccessible(This,accessible,childId,element)
21127#define IUIAutomation5_ElementFromIAccessibleBuildCache(This,accessible,childId,cacheRequest,element) (This)->lpVtbl->ElementFromIAccessibleBuildCache(This,accessible,childId,cacheRequest,element)
21128/*** IUIAutomation2 methods ***/
21129#define IUIAutomation5_get_AutoSetFocus(This,autoSetFocus) (This)->lpVtbl->get_AutoSetFocus(This,autoSetFocus)
21130#define IUIAutomation5_put_AutoSetFocus(This,autoSetFocus) (This)->lpVtbl->put_AutoSetFocus(This,autoSetFocus)
21131#define IUIAutomation5_get_ConnectionTimeout(This,timeout) (This)->lpVtbl->get_ConnectionTimeout(This,timeout)
21132#define IUIAutomation5_put_ConnectionTimeout(This,timeout) (This)->lpVtbl->put_ConnectionTimeout(This,timeout)
21133#define IUIAutomation5_get_TransactionTimeout(This,timeout) (This)->lpVtbl->get_TransactionTimeout(This,timeout)
21134#define IUIAutomation5_put_TransactionTimeout(This,timeout) (This)->lpVtbl->put_TransactionTimeout(This,timeout)
21135/*** IUIAutomation3 methods ***/
21136#define IUIAutomation5_AddTextEditTextChangedEventHandler(This,element,scope,textEditChangeType,cacheRequest,handler) (This)->lpVtbl->AddTextEditTextChangedEventHandler(This,element,scope,textEditChangeType,cacheRequest,handler)
21137#define IUIAutomation5_RemoveTextEditTextChangedEventHandler(This,element,handler) (This)->lpVtbl->RemoveTextEditTextChangedEventHandler(This,element,handler)
21138/*** IUIAutomation4 methods ***/
21139#define IUIAutomation5_AddChangesEventHandler(This,element,scope,changeTypes,changesCount,pCacheRequest,handler) (This)->lpVtbl->AddChangesEventHandler(This,element,scope,changeTypes,changesCount,pCacheRequest,handler)
21140#define IUIAutomation5_RemoveChangesEventHandler(This,element,handler) (This)->lpVtbl->RemoveChangesEventHandler(This,element,handler)
21141/*** IUIAutomation5 methods ***/
21142#define IUIAutomation5_AddNotificationEventHandler(This,element,scope,cacheRequest,handler) (This)->lpVtbl->AddNotificationEventHandler(This,element,scope,cacheRequest,handler)
21143#define IUIAutomation5_RemoveNotificationEventHandler(This,element,handler) (This)->lpVtbl->RemoveNotificationEventHandler(This,element,handler)
21144#else
21145/*** IUnknown methods ***/
21146static inline HRESULT IUIAutomation5_QueryInterface(IUIAutomation5* This,REFIID riid,void **ppvObject) {
21147    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
21148}
21149static inline ULONG IUIAutomation5_AddRef(IUIAutomation5* This) {
21150    return This->lpVtbl->AddRef(This);
21151}
21152static inline ULONG IUIAutomation5_Release(IUIAutomation5* This) {
21153    return This->lpVtbl->Release(This);
21154}
21155/*** IUIAutomation methods ***/
21156static inline HRESULT IUIAutomation5_CompareElements(IUIAutomation5* This,IUIAutomationElement *el1,IUIAutomationElement *el2,WINBOOL *areSame) {
21157    return This->lpVtbl->CompareElements(This,el1,el2,areSame);
21158}
21159static inline HRESULT IUIAutomation5_CompareRuntimeIds(IUIAutomation5* This,SAFEARRAY *runtimeId1,SAFEARRAY *runtimeId2,WINBOOL *areSame) {
21160    return This->lpVtbl->CompareRuntimeIds(This,runtimeId1,runtimeId2,areSame);
21161}
21162static inline HRESULT IUIAutomation5_GetRootElement(IUIAutomation5* This,IUIAutomationElement **root) {
21163    return This->lpVtbl->GetRootElement(This,root);
21164}
21165static inline HRESULT IUIAutomation5_ElementFromHandle(IUIAutomation5* This,UIA_HWND hwnd,IUIAutomationElement **element) {
21166    return This->lpVtbl->ElementFromHandle(This,hwnd,element);
21167}
21168static inline HRESULT IUIAutomation5_ElementFromPoint(IUIAutomation5* This,POINT pt,IUIAutomationElement **element) {
21169    return This->lpVtbl->ElementFromPoint(This,pt,element);
21170}
21171static inline HRESULT IUIAutomation5_GetFocusedElement(IUIAutomation5* This,IUIAutomationElement **element) {
21172    return This->lpVtbl->GetFocusedElement(This,element);
21173}
21174static inline HRESULT IUIAutomation5_GetRootElementBuildCache(IUIAutomation5* This,IUIAutomationCacheRequest *cacheRequest,IUIAutomationElement **root) {
21175    return This->lpVtbl->GetRootElementBuildCache(This,cacheRequest,root);
21176}
21177static inline HRESULT IUIAutomation5_ElementFromHandleBuildCache(IUIAutomation5* This,UIA_HWND hwnd,IUIAutomationCacheRequest *cacheRequest,IUIAutomationElement **element) {
21178    return This->lpVtbl->ElementFromHandleBuildCache(This,hwnd,cacheRequest,element);
21179}
21180static inline HRESULT IUIAutomation5_ElementFromPointBuildCache(IUIAutomation5* This,POINT pt,IUIAutomationCacheRequest *cacheRequest,IUIAutomationElement **element) {
21181    return This->lpVtbl->ElementFromPointBuildCache(This,pt,cacheRequest,element);
21182}
21183static inline HRESULT IUIAutomation5_GetFocusedElementBuildCache(IUIAutomation5* This,IUIAutomationCacheRequest *cacheRequest,IUIAutomationElement **element) {
21184    return This->lpVtbl->GetFocusedElementBuildCache(This,cacheRequest,element);
21185}
21186static inline HRESULT IUIAutomation5_CreateTreeWalker(IUIAutomation5* This,IUIAutomationCondition *pCondition,IUIAutomationTreeWalker **walker) {
21187    return This->lpVtbl->CreateTreeWalker(This,pCondition,walker);
21188}
21189static inline HRESULT IUIAutomation5_get_ControlViewWalker(IUIAutomation5* This,IUIAutomationTreeWalker **walker) {
21190    return This->lpVtbl->get_ControlViewWalker(This,walker);
21191}
21192static inline HRESULT IUIAutomation5_get_ContentViewWalker(IUIAutomation5* This,IUIAutomationTreeWalker **walker) {
21193    return This->lpVtbl->get_ContentViewWalker(This,walker);
21194}
21195static inline HRESULT IUIAutomation5_get_RawViewWalker(IUIAutomation5* This,IUIAutomationTreeWalker **walker) {
21196    return This->lpVtbl->get_RawViewWalker(This,walker);
21197}
21198static inline HRESULT IUIAutomation5_get_RawViewCondition(IUIAutomation5* This,IUIAutomationCondition **condition) {
21199    return This->lpVtbl->get_RawViewCondition(This,condition);
21200}
21201static inline HRESULT IUIAutomation5_get_ControlViewCondition(IUIAutomation5* This,IUIAutomationCondition **condition) {
21202    return This->lpVtbl->get_ControlViewCondition(This,condition);
21203}
21204static inline HRESULT IUIAutomation5_get_ContentViewCondition(IUIAutomation5* This,IUIAutomationCondition **condition) {
21205    return This->lpVtbl->get_ContentViewCondition(This,condition);
21206}
21207static inline HRESULT IUIAutomation5_CreateCacheRequest(IUIAutomation5* This,IUIAutomationCacheRequest **cacheRequest) {
21208    return This->lpVtbl->CreateCacheRequest(This,cacheRequest);
21209}
21210static inline HRESULT IUIAutomation5_CreateTrueCondition(IUIAutomation5* This,IUIAutomationCondition **newCondition) {
21211    return This->lpVtbl->CreateTrueCondition(This,newCondition);
21212}
21213static inline HRESULT IUIAutomation5_CreateFalseCondition(IUIAutomation5* This,IUIAutomationCondition **newCondition) {
21214    return This->lpVtbl->CreateFalseCondition(This,newCondition);
21215}
21216static inline HRESULT IUIAutomation5_CreatePropertyCondition(IUIAutomation5* This,PROPERTYID propertyId,VARIANT value,IUIAutomationCondition **newCondition) {
21217    return This->lpVtbl->CreatePropertyCondition(This,propertyId,value,newCondition);
21218}
21219static inline HRESULT IUIAutomation5_CreatePropertyConditionEx(IUIAutomation5* This,PROPERTYID propertyId,VARIANT value,enum PropertyConditionFlags flags,IUIAutomationCondition **newCondition) {
21220    return This->lpVtbl->CreatePropertyConditionEx(This,propertyId,value,flags,newCondition);
21221}
21222static inline HRESULT IUIAutomation5_CreateAndCondition(IUIAutomation5* This,IUIAutomationCondition *condition1,IUIAutomationCondition *condition2,IUIAutomationCondition **newCondition) {
21223    return This->lpVtbl->CreateAndCondition(This,condition1,condition2,newCondition);
21224}
21225static inline HRESULT IUIAutomation5_CreateAndConditionFromArray(IUIAutomation5* This,SAFEARRAY *conditions,IUIAutomationCondition **newCondition) {
21226    return This->lpVtbl->CreateAndConditionFromArray(This,conditions,newCondition);
21227}
21228static inline HRESULT IUIAutomation5_CreateAndConditionFromNativeArray(IUIAutomation5* This,IUIAutomationCondition **conditions,int conditionCount,IUIAutomationCondition **newCondition) {
21229    return This->lpVtbl->CreateAndConditionFromNativeArray(This,conditions,conditionCount,newCondition);
21230}
21231static inline HRESULT IUIAutomation5_CreateOrCondition(IUIAutomation5* This,IUIAutomationCondition *condition1,IUIAutomationCondition *condition2,IUIAutomationCondition **newCondition) {
21232    return This->lpVtbl->CreateOrCondition(This,condition1,condition2,newCondition);
21233}
21234static inline HRESULT IUIAutomation5_CreateOrConditionFromArray(IUIAutomation5* This,SAFEARRAY *conditions,IUIAutomationCondition **newCondition) {
21235    return This->lpVtbl->CreateOrConditionFromArray(This,conditions,newCondition);
21236}
21237static inline HRESULT IUIAutomation5_CreateOrConditionFromNativeArray(IUIAutomation5* This,IUIAutomationCondition **conditions,int conditionCount,IUIAutomationCondition **newCondition) {
21238    return This->lpVtbl->CreateOrConditionFromNativeArray(This,conditions,conditionCount,newCondition);
21239}
21240static inline HRESULT IUIAutomation5_CreateNotCondition(IUIAutomation5* This,IUIAutomationCondition *condition,IUIAutomationCondition **newCondition) {
21241    return This->lpVtbl->CreateNotCondition(This,condition,newCondition);
21242}
21243static inline HRESULT IUIAutomation5_AddAutomationEventHandler(IUIAutomation5* This,EVENTID eventId,IUIAutomationElement *element,enum TreeScope scope,IUIAutomationCacheRequest *cacheRequest,IUIAutomationEventHandler *handler) {
21244    return This->lpVtbl->AddAutomationEventHandler(This,eventId,element,scope,cacheRequest,handler);
21245}
21246static inline HRESULT IUIAutomation5_RemoveAutomationEventHandler(IUIAutomation5* This,EVENTID eventId,IUIAutomationElement *element,IUIAutomationEventHandler *handler) {
21247    return This->lpVtbl->RemoveAutomationEventHandler(This,eventId,element,handler);
21248}
21249static inline HRESULT IUIAutomation5_AddPropertyChangedEventHandlerNativeArray(IUIAutomation5* This,IUIAutomationElement *element,enum TreeScope scope,IUIAutomationCacheRequest *cacheRequest,IUIAutomationPropertyChangedEventHandler *handler,PROPERTYID *propertyArray,int propertyCount) {
21250    return This->lpVtbl->AddPropertyChangedEventHandlerNativeArray(This,element,scope,cacheRequest,handler,propertyArray,propertyCount);
21251}
21252static inline HRESULT IUIAutomation5_AddPropertyChangedEventHandler(IUIAutomation5* This,IUIAutomationElement *element,enum TreeScope scope,IUIAutomationCacheRequest *cacheRequest,IUIAutomationPropertyChangedEventHandler *handler,SAFEARRAY *propertyArray) {
21253    return This->lpVtbl->AddPropertyChangedEventHandler(This,element,scope,cacheRequest,handler,propertyArray);
21254}
21255static inline HRESULT IUIAutomation5_RemovePropertyChangedEventHandler(IUIAutomation5* This,IUIAutomationElement *element,IUIAutomationPropertyChangedEventHandler *handler) {
21256    return This->lpVtbl->RemovePropertyChangedEventHandler(This,element,handler);
21257}
21258static inline HRESULT IUIAutomation5_AddStructureChangedEventHandler(IUIAutomation5* This,IUIAutomationElement *element,enum TreeScope scope,IUIAutomationCacheRequest *cacheRequest,IUIAutomationStructureChangedEventHandler *handler) {
21259    return This->lpVtbl->AddStructureChangedEventHandler(This,element,scope,cacheRequest,handler);
21260}
21261static inline HRESULT IUIAutomation5_RemoveStructureChangedEventHandler(IUIAutomation5* This,IUIAutomationElement *element,IUIAutomationStructureChangedEventHandler *handler) {
21262    return This->lpVtbl->RemoveStructureChangedEventHandler(This,element,handler);
21263}
21264static inline HRESULT IUIAutomation5_AddFocusChangedEventHandler(IUIAutomation5* This,IUIAutomationCacheRequest *cacheRequest,IUIAutomationFocusChangedEventHandler *handler) {
21265    return This->lpVtbl->AddFocusChangedEventHandler(This,cacheRequest,handler);
21266}
21267static inline HRESULT IUIAutomation5_RemoveFocusChangedEventHandler(IUIAutomation5* This,IUIAutomationFocusChangedEventHandler *handler) {
21268    return This->lpVtbl->RemoveFocusChangedEventHandler(This,handler);
21269}
21270static inline HRESULT IUIAutomation5_RemoveAllEventHandlers(IUIAutomation5* This) {
21271    return This->lpVtbl->RemoveAllEventHandlers(This);
21272}
21273static inline HRESULT IUIAutomation5_IntNativeArrayToSafeArray(IUIAutomation5* This,int *array,int arrayCount,SAFEARRAY **safeArray) {
21274    return This->lpVtbl->IntNativeArrayToSafeArray(This,array,arrayCount,safeArray);
21275}
21276static inline HRESULT IUIAutomation5_IntSafeArrayToNativeArray(IUIAutomation5* This,SAFEARRAY *intArray,int **array,int *arrayCount) {
21277    return This->lpVtbl->IntSafeArrayToNativeArray(This,intArray,array,arrayCount);
21278}
21279static inline HRESULT IUIAutomation5_RectToVariant(IUIAutomation5* This,RECT rc,VARIANT *var) {
21280    return This->lpVtbl->RectToVariant(This,rc,var);
21281}
21282static inline HRESULT IUIAutomation5_VariantToRect(IUIAutomation5* This,VARIANT var,RECT *rc) {
21283    return This->lpVtbl->VariantToRect(This,var,rc);
21284}
21285static inline HRESULT IUIAutomation5_SafeArrayToRectNativeArray(IUIAutomation5* This,SAFEARRAY *rects,RECT **rectArray,int *rectArrayCount) {
21286    return This->lpVtbl->SafeArrayToRectNativeArray(This,rects,rectArray,rectArrayCount);
21287}
21288static inline HRESULT IUIAutomation5_CreateProxyFactoryEntry(IUIAutomation5* This,IUIAutomationProxyFactory *factory,IUIAutomationProxyFactoryEntry **factoryEntry) {
21289    return This->lpVtbl->CreateProxyFactoryEntry(This,factory,factoryEntry);
21290}
21291static inline HRESULT IUIAutomation5_get_ProxyFactoryMapping(IUIAutomation5* This,IUIAutomationProxyFactoryMapping **factoryMapping) {
21292    return This->lpVtbl->get_ProxyFactoryMapping(This,factoryMapping);
21293}
21294static inline HRESULT IUIAutomation5_GetPropertyProgrammaticName(IUIAutomation5* This,PROPERTYID property,BSTR *name) {
21295    return This->lpVtbl->GetPropertyProgrammaticName(This,property,name);
21296}
21297static inline HRESULT IUIAutomation5_GetPatternProgrammaticName(IUIAutomation5* This,PATTERNID pattern,BSTR *name) {
21298    return This->lpVtbl->GetPatternProgrammaticName(This,pattern,name);
21299}
21300static inline HRESULT IUIAutomation5_PollForPotentialSupportedPatterns(IUIAutomation5* This,IUIAutomationElement *pElement,SAFEARRAY **patternIds,SAFEARRAY **patternNames) {
21301    return This->lpVtbl->PollForPotentialSupportedPatterns(This,pElement,patternIds,patternNames);
21302}
21303static inline HRESULT IUIAutomation5_PollForPotentialSupportedProperties(IUIAutomation5* This,IUIAutomationElement *pElement,SAFEARRAY **propertyIds,SAFEARRAY **propertyNames) {
21304    return This->lpVtbl->PollForPotentialSupportedProperties(This,pElement,propertyIds,propertyNames);
21305}
21306static inline HRESULT IUIAutomation5_CheckNotSupported(IUIAutomation5* This,VARIANT value,WINBOOL *isNotSupported) {
21307    return This->lpVtbl->CheckNotSupported(This,value,isNotSupported);
21308}
21309static inline HRESULT IUIAutomation5_get_ReservedNotSupportedValue(IUIAutomation5* This,IUnknown **notSupportedValue) {
21310    return This->lpVtbl->get_ReservedNotSupportedValue(This,notSupportedValue);
21311}
21312static inline HRESULT IUIAutomation5_get_ReservedMixedAttributeValue(IUIAutomation5* This,IUnknown **mixedAttributeValue) {
21313    return This->lpVtbl->get_ReservedMixedAttributeValue(This,mixedAttributeValue);
21314}
21315static inline HRESULT IUIAutomation5_ElementFromIAccessible(IUIAutomation5* This,IAccessible *accessible,int childId,IUIAutomationElement **element) {
21316    return This->lpVtbl->ElementFromIAccessible(This,accessible,childId,element);
21317}
21318static inline HRESULT IUIAutomation5_ElementFromIAccessibleBuildCache(IUIAutomation5* This,IAccessible *accessible,int childId,IUIAutomationCacheRequest *cacheRequest,IUIAutomationElement **element) {
21319    return This->lpVtbl->ElementFromIAccessibleBuildCache(This,accessible,childId,cacheRequest,element);
21320}
21321/*** IUIAutomation2 methods ***/
21322static inline HRESULT IUIAutomation5_get_AutoSetFocus(IUIAutomation5* This,WINBOOL *autoSetFocus) {
21323    return This->lpVtbl->get_AutoSetFocus(This,autoSetFocus);
21324}
21325static inline HRESULT IUIAutomation5_put_AutoSetFocus(IUIAutomation5* This,WINBOOL autoSetFocus) {
21326    return This->lpVtbl->put_AutoSetFocus(This,autoSetFocus);
21327}
21328static inline HRESULT IUIAutomation5_get_ConnectionTimeout(IUIAutomation5* This,DWORD *timeout) {
21329    return This->lpVtbl->get_ConnectionTimeout(This,timeout);
21330}
21331static inline HRESULT IUIAutomation5_put_ConnectionTimeout(IUIAutomation5* This,DWORD timeout) {
21332    return This->lpVtbl->put_ConnectionTimeout(This,timeout);
21333}
21334static inline HRESULT IUIAutomation5_get_TransactionTimeout(IUIAutomation5* This,DWORD *timeout) {
21335    return This->lpVtbl->get_TransactionTimeout(This,timeout);
21336}
21337static inline HRESULT IUIAutomation5_put_TransactionTimeout(IUIAutomation5* This,DWORD timeout) {
21338    return This->lpVtbl->put_TransactionTimeout(This,timeout);
21339}
21340/*** IUIAutomation3 methods ***/
21341static inline HRESULT IUIAutomation5_AddTextEditTextChangedEventHandler(IUIAutomation5* This,IUIAutomationElement *element,enum TreeScope scope,enum TextEditChangeType textEditChangeType,IUIAutomationCacheRequest *cacheRequest,IUIAutomationTextEditTextChangedEventHandler *handler) {
21342    return This->lpVtbl->AddTextEditTextChangedEventHandler(This,element,scope,textEditChangeType,cacheRequest,handler);
21343}
21344static inline HRESULT IUIAutomation5_RemoveTextEditTextChangedEventHandler(IUIAutomation5* This,IUIAutomationElement *element,IUIAutomationTextEditTextChangedEventHandler *handler) {
21345    return This->lpVtbl->RemoveTextEditTextChangedEventHandler(This,element,handler);
21346}
21347/*** IUIAutomation4 methods ***/
21348static inline HRESULT IUIAutomation5_AddChangesEventHandler(IUIAutomation5* This,IUIAutomationElement *element,enum TreeScope scope,int *changeTypes,int changesCount,IUIAutomationCacheRequest *pCacheRequest,IUIAutomationChangesEventHandler *handler) {
21349    return This->lpVtbl->AddChangesEventHandler(This,element,scope,changeTypes,changesCount,pCacheRequest,handler);
21350}
21351static inline HRESULT IUIAutomation5_RemoveChangesEventHandler(IUIAutomation5* This,IUIAutomationElement *element,IUIAutomationChangesEventHandler *handler) {
21352    return This->lpVtbl->RemoveChangesEventHandler(This,element,handler);
21353}
21354/*** IUIAutomation5 methods ***/
21355static inline HRESULT IUIAutomation5_AddNotificationEventHandler(IUIAutomation5* This,IUIAutomationElement *element,enum TreeScope scope,IUIAutomationCacheRequest *cacheRequest,IUIAutomationNotificationEventHandler *handler) {
21356    return This->lpVtbl->AddNotificationEventHandler(This,element,scope,cacheRequest,handler);
21357}
21358static inline HRESULT IUIAutomation5_RemoveNotificationEventHandler(IUIAutomation5* This,IUIAutomationElement *element,IUIAutomationNotificationEventHandler *handler) {
21359    return This->lpVtbl->RemoveNotificationEventHandler(This,element,handler);
21360}
21361#endif
21362#endif
21363
21364#endif
21365
21366
21367#endif  /* __IUIAutomation5_INTERFACE_DEFINED__ */
21368
21369/*****************************************************************************
21370 * IUIAutomation6 interface
21371 */
21372#ifndef __IUIAutomation6_INTERFACE_DEFINED__
21373#define __IUIAutomation6_INTERFACE_DEFINED__
21374
21375DEFINE_GUID(IID_IUIAutomation6, 0xaae072da, 0x29e3, 0x413d, 0x87,0xa7, 0x19,0x2d,0xbf,0x81,0xed,0x10);
21376#if defined(__cplusplus) && !defined(CINTERFACE)
21377MIDL_INTERFACE("aae072da-29e3-413d-87a7-192dbf81ed10")
21378IUIAutomation6 : public IUIAutomation5
21379{
21380    virtual HRESULT STDMETHODCALLTYPE CreateEventHandlerGroup(
21381        IUIAutomationEventHandlerGroup **handlerGroup) = 0;
21382
21383    virtual HRESULT STDMETHODCALLTYPE AddEventHandlerGroup(
21384        IUIAutomationElement *element,
21385        IUIAutomationEventHandlerGroup *handlerGroup) = 0;
21386
21387    virtual HRESULT STDMETHODCALLTYPE RemoveEventHandlerGroup(
21388        IUIAutomationElement *element,
21389        IUIAutomationEventHandlerGroup *handlerGroup) = 0;
21390
21391    virtual HRESULT STDMETHODCALLTYPE get_ConnectionRecoveryBehavior(
21392        enum ConnectionRecoveryBehaviorOptions *connectionRecoveryBehaviorOptions) = 0;
21393
21394    virtual HRESULT STDMETHODCALLTYPE put_ConnectionRecoveryBehavior(
21395        enum ConnectionRecoveryBehaviorOptions connectionRecoveryBehaviorOptions) = 0;
21396
21397    virtual HRESULT STDMETHODCALLTYPE get_CoalesceEvents(
21398        enum CoalesceEventsOptions *coalesceEventsOptions) = 0;
21399
21400    virtual HRESULT STDMETHODCALLTYPE put_CoalesceEvents(
21401        enum CoalesceEventsOptions coalesceEventsOptions) = 0;
21402
21403    virtual HRESULT STDMETHODCALLTYPE AddActiveTextPositionChangedEventHandler(
21404        IUIAutomationElement *element,
21405        enum TreeScope scope,
21406        IUIAutomationCacheRequest *cacheRequest,
21407        IUIAutomationActiveTextPositionChangedEventHandler *handler) = 0;
21408
21409    virtual HRESULT STDMETHODCALLTYPE RemoveActiveTextPositionChangedEventHandler(
21410        IUIAutomationElement *element,
21411        IUIAutomationActiveTextPositionChangedEventHandler *handler) = 0;
21412
21413};
21414#ifdef __CRT_UUID_DECL
21415__CRT_UUID_DECL(IUIAutomation6, 0xaae072da, 0x29e3, 0x413d, 0x87,0xa7, 0x19,0x2d,0xbf,0x81,0xed,0x10)
21416#endif
21417#else
21418typedef struct IUIAutomation6Vtbl {
21419    BEGIN_INTERFACE
21420
21421    /*** IUnknown methods ***/
21422    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
21423        IUIAutomation6 *This,
21424        REFIID riid,
21425        void **ppvObject);
21426
21427    ULONG (STDMETHODCALLTYPE *AddRef)(
21428        IUIAutomation6 *This);
21429
21430    ULONG (STDMETHODCALLTYPE *Release)(
21431        IUIAutomation6 *This);
21432
21433    /*** IUIAutomation methods ***/
21434    HRESULT (STDMETHODCALLTYPE *CompareElements)(
21435        IUIAutomation6 *This,
21436        IUIAutomationElement *el1,
21437        IUIAutomationElement *el2,
21438        WINBOOL *areSame);
21439
21440    HRESULT (STDMETHODCALLTYPE *CompareRuntimeIds)(
21441        IUIAutomation6 *This,
21442        SAFEARRAY *runtimeId1,
21443        SAFEARRAY *runtimeId2,
21444        WINBOOL *areSame);
21445
21446    HRESULT (STDMETHODCALLTYPE *GetRootElement)(
21447        IUIAutomation6 *This,
21448        IUIAutomationElement **root);
21449
21450    HRESULT (STDMETHODCALLTYPE *ElementFromHandle)(
21451        IUIAutomation6 *This,
21452        UIA_HWND hwnd,
21453        IUIAutomationElement **element);
21454
21455    HRESULT (STDMETHODCALLTYPE *ElementFromPoint)(
21456        IUIAutomation6 *This,
21457        POINT pt,
21458        IUIAutomationElement **element);
21459
21460    HRESULT (STDMETHODCALLTYPE *GetFocusedElement)(
21461        IUIAutomation6 *This,
21462        IUIAutomationElement **element);
21463
21464    HRESULT (STDMETHODCALLTYPE *GetRootElementBuildCache)(
21465        IUIAutomation6 *This,
21466        IUIAutomationCacheRequest *cacheRequest,
21467        IUIAutomationElement **root);
21468
21469    HRESULT (STDMETHODCALLTYPE *ElementFromHandleBuildCache)(
21470        IUIAutomation6 *This,
21471        UIA_HWND hwnd,
21472        IUIAutomationCacheRequest *cacheRequest,
21473        IUIAutomationElement **element);
21474
21475    HRESULT (STDMETHODCALLTYPE *ElementFromPointBuildCache)(
21476        IUIAutomation6 *This,
21477        POINT pt,
21478        IUIAutomationCacheRequest *cacheRequest,
21479        IUIAutomationElement **element);
21480
21481    HRESULT (STDMETHODCALLTYPE *GetFocusedElementBuildCache)(
21482        IUIAutomation6 *This,
21483        IUIAutomationCacheRequest *cacheRequest,
21484        IUIAutomationElement **element);
21485
21486    HRESULT (STDMETHODCALLTYPE *CreateTreeWalker)(
21487        IUIAutomation6 *This,
21488        IUIAutomationCondition *pCondition,
21489        IUIAutomationTreeWalker **walker);
21490
21491    HRESULT (STDMETHODCALLTYPE *get_ControlViewWalker)(
21492        IUIAutomation6 *This,
21493        IUIAutomationTreeWalker **walker);
21494
21495    HRESULT (STDMETHODCALLTYPE *get_ContentViewWalker)(
21496        IUIAutomation6 *This,
21497        IUIAutomationTreeWalker **walker);
21498
21499    HRESULT (STDMETHODCALLTYPE *get_RawViewWalker)(
21500        IUIAutomation6 *This,
21501        IUIAutomationTreeWalker **walker);
21502
21503    HRESULT (STDMETHODCALLTYPE *get_RawViewCondition)(
21504        IUIAutomation6 *This,
21505        IUIAutomationCondition **condition);
21506
21507    HRESULT (STDMETHODCALLTYPE *get_ControlViewCondition)(
21508        IUIAutomation6 *This,
21509        IUIAutomationCondition **condition);
21510
21511    HRESULT (STDMETHODCALLTYPE *get_ContentViewCondition)(
21512        IUIAutomation6 *This,
21513        IUIAutomationCondition **condition);
21514
21515    HRESULT (STDMETHODCALLTYPE *CreateCacheRequest)(
21516        IUIAutomation6 *This,
21517        IUIAutomationCacheRequest **cacheRequest);
21518
21519    HRESULT (STDMETHODCALLTYPE *CreateTrueCondition)(
21520        IUIAutomation6 *This,
21521        IUIAutomationCondition **newCondition);
21522
21523    HRESULT (STDMETHODCALLTYPE *CreateFalseCondition)(
21524        IUIAutomation6 *This,
21525        IUIAutomationCondition **newCondition);
21526
21527    HRESULT (STDMETHODCALLTYPE *CreatePropertyCondition)(
21528        IUIAutomation6 *This,
21529        PROPERTYID propertyId,
21530        VARIANT value,
21531        IUIAutomationCondition **newCondition);
21532
21533    HRESULT (STDMETHODCALLTYPE *CreatePropertyConditionEx)(
21534        IUIAutomation6 *This,
21535        PROPERTYID propertyId,
21536        VARIANT value,
21537        enum PropertyConditionFlags flags,
21538        IUIAutomationCondition **newCondition);
21539
21540    HRESULT (STDMETHODCALLTYPE *CreateAndCondition)(
21541        IUIAutomation6 *This,
21542        IUIAutomationCondition *condition1,
21543        IUIAutomationCondition *condition2,
21544        IUIAutomationCondition **newCondition);
21545
21546    HRESULT (STDMETHODCALLTYPE *CreateAndConditionFromArray)(
21547        IUIAutomation6 *This,
21548        SAFEARRAY *conditions,
21549        IUIAutomationCondition **newCondition);
21550
21551    HRESULT (STDMETHODCALLTYPE *CreateAndConditionFromNativeArray)(
21552        IUIAutomation6 *This,
21553        IUIAutomationCondition **conditions,
21554        int conditionCount,
21555        IUIAutomationCondition **newCondition);
21556
21557    HRESULT (STDMETHODCALLTYPE *CreateOrCondition)(
21558        IUIAutomation6 *This,
21559        IUIAutomationCondition *condition1,
21560        IUIAutomationCondition *condition2,
21561        IUIAutomationCondition **newCondition);
21562
21563    HRESULT (STDMETHODCALLTYPE *CreateOrConditionFromArray)(
21564        IUIAutomation6 *This,
21565        SAFEARRAY *conditions,
21566        IUIAutomationCondition **newCondition);
21567
21568    HRESULT (STDMETHODCALLTYPE *CreateOrConditionFromNativeArray)(
21569        IUIAutomation6 *This,
21570        IUIAutomationCondition **conditions,
21571        int conditionCount,
21572        IUIAutomationCondition **newCondition);
21573
21574    HRESULT (STDMETHODCALLTYPE *CreateNotCondition)(
21575        IUIAutomation6 *This,
21576        IUIAutomationCondition *condition,
21577        IUIAutomationCondition **newCondition);
21578
21579    HRESULT (STDMETHODCALLTYPE *AddAutomationEventHandler)(
21580        IUIAutomation6 *This,
21581        EVENTID eventId,
21582        IUIAutomationElement *element,
21583        enum TreeScope scope,
21584        IUIAutomationCacheRequest *cacheRequest,
21585        IUIAutomationEventHandler *handler);
21586
21587    HRESULT (STDMETHODCALLTYPE *RemoveAutomationEventHandler)(
21588        IUIAutomation6 *This,
21589        EVENTID eventId,
21590        IUIAutomationElement *element,
21591        IUIAutomationEventHandler *handler);
21592
21593    HRESULT (STDMETHODCALLTYPE *AddPropertyChangedEventHandlerNativeArray)(
21594        IUIAutomation6 *This,
21595        IUIAutomationElement *element,
21596        enum TreeScope scope,
21597        IUIAutomationCacheRequest *cacheRequest,
21598        IUIAutomationPropertyChangedEventHandler *handler,
21599        PROPERTYID *propertyArray,
21600        int propertyCount);
21601
21602    HRESULT (STDMETHODCALLTYPE *AddPropertyChangedEventHandler)(
21603        IUIAutomation6 *This,
21604        IUIAutomationElement *element,
21605        enum TreeScope scope,
21606        IUIAutomationCacheRequest *cacheRequest,
21607        IUIAutomationPropertyChangedEventHandler *handler,
21608        SAFEARRAY *propertyArray);
21609
21610    HRESULT (STDMETHODCALLTYPE *RemovePropertyChangedEventHandler)(
21611        IUIAutomation6 *This,
21612        IUIAutomationElement *element,
21613        IUIAutomationPropertyChangedEventHandler *handler);
21614
21615    HRESULT (STDMETHODCALLTYPE *AddStructureChangedEventHandler)(
21616        IUIAutomation6 *This,
21617        IUIAutomationElement *element,
21618        enum TreeScope scope,
21619        IUIAutomationCacheRequest *cacheRequest,
21620        IUIAutomationStructureChangedEventHandler *handler);
21621
21622    HRESULT (STDMETHODCALLTYPE *RemoveStructureChangedEventHandler)(
21623        IUIAutomation6 *This,
21624        IUIAutomationElement *element,
21625        IUIAutomationStructureChangedEventHandler *handler);
21626
21627    HRESULT (STDMETHODCALLTYPE *AddFocusChangedEventHandler)(
21628        IUIAutomation6 *This,
21629        IUIAutomationCacheRequest *cacheRequest,
21630        IUIAutomationFocusChangedEventHandler *handler);
21631
21632    HRESULT (STDMETHODCALLTYPE *RemoveFocusChangedEventHandler)(
21633        IUIAutomation6 *This,
21634        IUIAutomationFocusChangedEventHandler *handler);
21635
21636    HRESULT (STDMETHODCALLTYPE *RemoveAllEventHandlers)(
21637        IUIAutomation6 *This);
21638
21639    HRESULT (STDMETHODCALLTYPE *IntNativeArrayToSafeArray)(
21640        IUIAutomation6 *This,
21641        int *array,
21642        int arrayCount,
21643        SAFEARRAY **safeArray);
21644
21645    HRESULT (STDMETHODCALLTYPE *IntSafeArrayToNativeArray)(
21646        IUIAutomation6 *This,
21647        SAFEARRAY *intArray,
21648        int **array,
21649        int *arrayCount);
21650
21651    HRESULT (STDMETHODCALLTYPE *RectToVariant)(
21652        IUIAutomation6 *This,
21653        RECT rc,
21654        VARIANT *var);
21655
21656    HRESULT (STDMETHODCALLTYPE *VariantToRect)(
21657        IUIAutomation6 *This,
21658        VARIANT var,
21659        RECT *rc);
21660
21661    HRESULT (STDMETHODCALLTYPE *SafeArrayToRectNativeArray)(
21662        IUIAutomation6 *This,
21663        SAFEARRAY *rects,
21664        RECT **rectArray,
21665        int *rectArrayCount);
21666
21667    HRESULT (STDMETHODCALLTYPE *CreateProxyFactoryEntry)(
21668        IUIAutomation6 *This,
21669        IUIAutomationProxyFactory *factory,
21670        IUIAutomationProxyFactoryEntry **factoryEntry);
21671
21672    HRESULT (STDMETHODCALLTYPE *get_ProxyFactoryMapping)(
21673        IUIAutomation6 *This,
21674        IUIAutomationProxyFactoryMapping **factoryMapping);
21675
21676    HRESULT (STDMETHODCALLTYPE *GetPropertyProgrammaticName)(
21677        IUIAutomation6 *This,
21678        PROPERTYID property,
21679        BSTR *name);
21680
21681    HRESULT (STDMETHODCALLTYPE *GetPatternProgrammaticName)(
21682        IUIAutomation6 *This,
21683        PATTERNID pattern,
21684        BSTR *name);
21685
21686    HRESULT (STDMETHODCALLTYPE *PollForPotentialSupportedPatterns)(
21687        IUIAutomation6 *This,
21688        IUIAutomationElement *pElement,
21689        SAFEARRAY **patternIds,
21690        SAFEARRAY **patternNames);
21691
21692    HRESULT (STDMETHODCALLTYPE *PollForPotentialSupportedProperties)(
21693        IUIAutomation6 *This,
21694        IUIAutomationElement *pElement,
21695        SAFEARRAY **propertyIds,
21696        SAFEARRAY **propertyNames);
21697
21698    HRESULT (STDMETHODCALLTYPE *CheckNotSupported)(
21699        IUIAutomation6 *This,
21700        VARIANT value,
21701        WINBOOL *isNotSupported);
21702
21703    HRESULT (STDMETHODCALLTYPE *get_ReservedNotSupportedValue)(
21704        IUIAutomation6 *This,
21705        IUnknown **notSupportedValue);
21706
21707    HRESULT (STDMETHODCALLTYPE *get_ReservedMixedAttributeValue)(
21708        IUIAutomation6 *This,
21709        IUnknown **mixedAttributeValue);
21710
21711    HRESULT (STDMETHODCALLTYPE *ElementFromIAccessible)(
21712        IUIAutomation6 *This,
21713        IAccessible *accessible,
21714        int childId,
21715        IUIAutomationElement **element);
21716
21717    HRESULT (STDMETHODCALLTYPE *ElementFromIAccessibleBuildCache)(
21718        IUIAutomation6 *This,
21719        IAccessible *accessible,
21720        int childId,
21721        IUIAutomationCacheRequest *cacheRequest,
21722        IUIAutomationElement **element);
21723
21724    /*** IUIAutomation2 methods ***/
21725    HRESULT (STDMETHODCALLTYPE *get_AutoSetFocus)(
21726        IUIAutomation6 *This,
21727        WINBOOL *autoSetFocus);
21728
21729    HRESULT (STDMETHODCALLTYPE *put_AutoSetFocus)(
21730        IUIAutomation6 *This,
21731        WINBOOL autoSetFocus);
21732
21733    HRESULT (STDMETHODCALLTYPE *get_ConnectionTimeout)(
21734        IUIAutomation6 *This,
21735        DWORD *timeout);
21736
21737    HRESULT (STDMETHODCALLTYPE *put_ConnectionTimeout)(
21738        IUIAutomation6 *This,
21739        DWORD timeout);
21740
21741    HRESULT (STDMETHODCALLTYPE *get_TransactionTimeout)(
21742        IUIAutomation6 *This,
21743        DWORD *timeout);
21744
21745    HRESULT (STDMETHODCALLTYPE *put_TransactionTimeout)(
21746        IUIAutomation6 *This,
21747        DWORD timeout);
21748
21749    /*** IUIAutomation3 methods ***/
21750    HRESULT (STDMETHODCALLTYPE *AddTextEditTextChangedEventHandler)(
21751        IUIAutomation6 *This,
21752        IUIAutomationElement *element,
21753        enum TreeScope scope,
21754        enum TextEditChangeType textEditChangeType,
21755        IUIAutomationCacheRequest *cacheRequest,
21756        IUIAutomationTextEditTextChangedEventHandler *handler);
21757
21758    HRESULT (STDMETHODCALLTYPE *RemoveTextEditTextChangedEventHandler)(
21759        IUIAutomation6 *This,
21760        IUIAutomationElement *element,
21761        IUIAutomationTextEditTextChangedEventHandler *handler);
21762
21763    /*** IUIAutomation4 methods ***/
21764    HRESULT (STDMETHODCALLTYPE *AddChangesEventHandler)(
21765        IUIAutomation6 *This,
21766        IUIAutomationElement *element,
21767        enum TreeScope scope,
21768        int *changeTypes,
21769        int changesCount,
21770        IUIAutomationCacheRequest *pCacheRequest,
21771        IUIAutomationChangesEventHandler *handler);
21772
21773    HRESULT (STDMETHODCALLTYPE *RemoveChangesEventHandler)(
21774        IUIAutomation6 *This,
21775        IUIAutomationElement *element,
21776        IUIAutomationChangesEventHandler *handler);
21777
21778    /*** IUIAutomation5 methods ***/
21779    HRESULT (STDMETHODCALLTYPE *AddNotificationEventHandler)(
21780        IUIAutomation6 *This,
21781        IUIAutomationElement *element,
21782        enum TreeScope scope,
21783        IUIAutomationCacheRequest *cacheRequest,
21784        IUIAutomationNotificationEventHandler *handler);
21785
21786    HRESULT (STDMETHODCALLTYPE *RemoveNotificationEventHandler)(
21787        IUIAutomation6 *This,
21788        IUIAutomationElement *element,
21789        IUIAutomationNotificationEventHandler *handler);
21790
21791    /*** IUIAutomation6 methods ***/
21792    HRESULT (STDMETHODCALLTYPE *CreateEventHandlerGroup)(
21793        IUIAutomation6 *This,
21794        IUIAutomationEventHandlerGroup **handlerGroup);
21795
21796    HRESULT (STDMETHODCALLTYPE *AddEventHandlerGroup)(
21797        IUIAutomation6 *This,
21798        IUIAutomationElement *element,
21799        IUIAutomationEventHandlerGroup *handlerGroup);
21800
21801    HRESULT (STDMETHODCALLTYPE *RemoveEventHandlerGroup)(
21802        IUIAutomation6 *This,
21803        IUIAutomationElement *element,
21804        IUIAutomationEventHandlerGroup *handlerGroup);
21805
21806    HRESULT (STDMETHODCALLTYPE *get_ConnectionRecoveryBehavior)(
21807        IUIAutomation6 *This,
21808        enum ConnectionRecoveryBehaviorOptions *connectionRecoveryBehaviorOptions);
21809
21810    HRESULT (STDMETHODCALLTYPE *put_ConnectionRecoveryBehavior)(
21811        IUIAutomation6 *This,
21812        enum ConnectionRecoveryBehaviorOptions connectionRecoveryBehaviorOptions);
21813
21814    HRESULT (STDMETHODCALLTYPE *get_CoalesceEvents)(
21815        IUIAutomation6 *This,
21816        enum CoalesceEventsOptions *coalesceEventsOptions);
21817
21818    HRESULT (STDMETHODCALLTYPE *put_CoalesceEvents)(
21819        IUIAutomation6 *This,
21820        enum CoalesceEventsOptions coalesceEventsOptions);
21821
21822    HRESULT (STDMETHODCALLTYPE *AddActiveTextPositionChangedEventHandler)(
21823        IUIAutomation6 *This,
21824        IUIAutomationElement *element,
21825        enum TreeScope scope,
21826        IUIAutomationCacheRequest *cacheRequest,
21827        IUIAutomationActiveTextPositionChangedEventHandler *handler);
21828
21829    HRESULT (STDMETHODCALLTYPE *RemoveActiveTextPositionChangedEventHandler)(
21830        IUIAutomation6 *This,
21831        IUIAutomationElement *element,
21832        IUIAutomationActiveTextPositionChangedEventHandler *handler);
21833
21834    END_INTERFACE
21835} IUIAutomation6Vtbl;
21836
21837interface IUIAutomation6 {
21838    CONST_VTBL IUIAutomation6Vtbl* lpVtbl;
21839};
21840
21841#ifdef COBJMACROS
21842#ifndef WIDL_C_INLINE_WRAPPERS
21843/*** IUnknown methods ***/
21844#define IUIAutomation6_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
21845#define IUIAutomation6_AddRef(This) (This)->lpVtbl->AddRef(This)
21846#define IUIAutomation6_Release(This) (This)->lpVtbl->Release(This)
21847/*** IUIAutomation methods ***/
21848#define IUIAutomation6_CompareElements(This,el1,el2,areSame) (This)->lpVtbl->CompareElements(This,el1,el2,areSame)
21849#define IUIAutomation6_CompareRuntimeIds(This,runtimeId1,runtimeId2,areSame) (This)->lpVtbl->CompareRuntimeIds(This,runtimeId1,runtimeId2,areSame)
21850#define IUIAutomation6_GetRootElement(This,root) (This)->lpVtbl->GetRootElement(This,root)
21851#define IUIAutomation6_ElementFromHandle(This,hwnd,element) (This)->lpVtbl->ElementFromHandle(This,hwnd,element)
21852#define IUIAutomation6_ElementFromPoint(This,pt,element) (This)->lpVtbl->ElementFromPoint(This,pt,element)
21853#define IUIAutomation6_GetFocusedElement(This,element) (This)->lpVtbl->GetFocusedElement(This,element)
21854#define IUIAutomation6_GetRootElementBuildCache(This,cacheRequest,root) (This)->lpVtbl->GetRootElementBuildCache(This,cacheRequest,root)
21855#define IUIAutomation6_ElementFromHandleBuildCache(This,hwnd,cacheRequest,element) (This)->lpVtbl->ElementFromHandleBuildCache(This,hwnd,cacheRequest,element)
21856#define IUIAutomation6_ElementFromPointBuildCache(This,pt,cacheRequest,element) (This)->lpVtbl->ElementFromPointBuildCache(This,pt,cacheRequest,element)
21857#define IUIAutomation6_GetFocusedElementBuildCache(This,cacheRequest,element) (This)->lpVtbl->GetFocusedElementBuildCache(This,cacheRequest,element)
21858#define IUIAutomation6_CreateTreeWalker(This,pCondition,walker) (This)->lpVtbl->CreateTreeWalker(This,pCondition,walker)
21859#define IUIAutomation6_get_ControlViewWalker(This,walker) (This)->lpVtbl->get_ControlViewWalker(This,walker)
21860#define IUIAutomation6_get_ContentViewWalker(This,walker) (This)->lpVtbl->get_ContentViewWalker(This,walker)
21861#define IUIAutomation6_get_RawViewWalker(This,walker) (This)->lpVtbl->get_RawViewWalker(This,walker)
21862#define IUIAutomation6_get_RawViewCondition(This,condition) (This)->lpVtbl->get_RawViewCondition(This,condition)
21863#define IUIAutomation6_get_ControlViewCondition(This,condition) (This)->lpVtbl->get_ControlViewCondition(This,condition)
21864#define IUIAutomation6_get_ContentViewCondition(This,condition) (This)->lpVtbl->get_ContentViewCondition(This,condition)
21865#define IUIAutomation6_CreateCacheRequest(This,cacheRequest) (This)->lpVtbl->CreateCacheRequest(This,cacheRequest)
21866#define IUIAutomation6_CreateTrueCondition(This,newCondition) (This)->lpVtbl->CreateTrueCondition(This,newCondition)
21867#define IUIAutomation6_CreateFalseCondition(This,newCondition) (This)->lpVtbl->CreateFalseCondition(This,newCondition)
21868#define IUIAutomation6_CreatePropertyCondition(This,propertyId,value,newCondition) (This)->lpVtbl->CreatePropertyCondition(This,propertyId,value,newCondition)
21869#define IUIAutomation6_CreatePropertyConditionEx(This,propertyId,value,flags,newCondition) (This)->lpVtbl->CreatePropertyConditionEx(This,propertyId,value,flags,newCondition)
21870#define IUIAutomation6_CreateAndCondition(This,condition1,condition2,newCondition) (This)->lpVtbl->CreateAndCondition(This,condition1,condition2,newCondition)
21871#define IUIAutomation6_CreateAndConditionFromArray(This,conditions,newCondition) (This)->lpVtbl->CreateAndConditionFromArray(This,conditions,newCondition)
21872#define IUIAutomation6_CreateAndConditionFromNativeArray(This,conditions,conditionCount,newCondition) (This)->lpVtbl->CreateAndConditionFromNativeArray(This,conditions,conditionCount,newCondition)
21873#define IUIAutomation6_CreateOrCondition(This,condition1,condition2,newCondition) (This)->lpVtbl->CreateOrCondition(This,condition1,condition2,newCondition)
21874#define IUIAutomation6_CreateOrConditionFromArray(This,conditions,newCondition) (This)->lpVtbl->CreateOrConditionFromArray(This,conditions,newCondition)
21875#define IUIAutomation6_CreateOrConditionFromNativeArray(This,conditions,conditionCount,newCondition) (This)->lpVtbl->CreateOrConditionFromNativeArray(This,conditions,conditionCount,newCondition)
21876#define IUIAutomation6_CreateNotCondition(This,condition,newCondition) (This)->lpVtbl->CreateNotCondition(This,condition,newCondition)
21877#define IUIAutomation6_AddAutomationEventHandler(This,eventId,element,scope,cacheRequest,handler) (This)->lpVtbl->AddAutomationEventHandler(This,eventId,element,scope,cacheRequest,handler)
21878#define IUIAutomation6_RemoveAutomationEventHandler(This,eventId,element,handler) (This)->lpVtbl->RemoveAutomationEventHandler(This,eventId,element,handler)
21879#define IUIAutomation6_AddPropertyChangedEventHandlerNativeArray(This,element,scope,cacheRequest,handler,propertyArray,propertyCount) (This)->lpVtbl->AddPropertyChangedEventHandlerNativeArray(This,element,scope,cacheRequest,handler,propertyArray,propertyCount)
21880#define IUIAutomation6_AddPropertyChangedEventHandler(This,element,scope,cacheRequest,handler,propertyArray) (This)->lpVtbl->AddPropertyChangedEventHandler(This,element,scope,cacheRequest,handler,propertyArray)
21881#define IUIAutomation6_RemovePropertyChangedEventHandler(This,element,handler) (This)->lpVtbl->RemovePropertyChangedEventHandler(This,element,handler)
21882#define IUIAutomation6_AddStructureChangedEventHandler(This,element,scope,cacheRequest,handler) (This)->lpVtbl->AddStructureChangedEventHandler(This,element,scope,cacheRequest,handler)
21883#define IUIAutomation6_RemoveStructureChangedEventHandler(This,element,handler) (This)->lpVtbl->RemoveStructureChangedEventHandler(This,element,handler)
21884#define IUIAutomation6_AddFocusChangedEventHandler(This,cacheRequest,handler) (This)->lpVtbl->AddFocusChangedEventHandler(This,cacheRequest,handler)
21885#define IUIAutomation6_RemoveFocusChangedEventHandler(This,handler) (This)->lpVtbl->RemoveFocusChangedEventHandler(This,handler)
21886#define IUIAutomation6_RemoveAllEventHandlers(This) (This)->lpVtbl->RemoveAllEventHandlers(This)
21887#define IUIAutomation6_IntNativeArrayToSafeArray(This,array,arrayCount,safeArray) (This)->lpVtbl->IntNativeArrayToSafeArray(This,array,arrayCount,safeArray)
21888#define IUIAutomation6_IntSafeArrayToNativeArray(This,intArray,array,arrayCount) (This)->lpVtbl->IntSafeArrayToNativeArray(This,intArray,array,arrayCount)
21889#define IUIAutomation6_RectToVariant(This,rc,var) (This)->lpVtbl->RectToVariant(This,rc,var)
21890#define IUIAutomation6_VariantToRect(This,var,rc) (This)->lpVtbl->VariantToRect(This,var,rc)
21891#define IUIAutomation6_SafeArrayToRectNativeArray(This,rects,rectArray,rectArrayCount) (This)->lpVtbl->SafeArrayToRectNativeArray(This,rects,rectArray,rectArrayCount)
21892#define IUIAutomation6_CreateProxyFactoryEntry(This,factory,factoryEntry) (This)->lpVtbl->CreateProxyFactoryEntry(This,factory,factoryEntry)
21893#define IUIAutomation6_get_ProxyFactoryMapping(This,factoryMapping) (This)->lpVtbl->get_ProxyFactoryMapping(This,factoryMapping)
21894#define IUIAutomation6_GetPropertyProgrammaticName(This,property,name) (This)->lpVtbl->GetPropertyProgrammaticName(This,property,name)
21895#define IUIAutomation6_GetPatternProgrammaticName(This,pattern,name) (This)->lpVtbl->GetPatternProgrammaticName(This,pattern,name)
21896#define IUIAutomation6_PollForPotentialSupportedPatterns(This,pElement,patternIds,patternNames) (This)->lpVtbl->PollForPotentialSupportedPatterns(This,pElement,patternIds,patternNames)
21897#define IUIAutomation6_PollForPotentialSupportedProperties(This,pElement,propertyIds,propertyNames) (This)->lpVtbl->PollForPotentialSupportedProperties(This,pElement,propertyIds,propertyNames)
21898#define IUIAutomation6_CheckNotSupported(This,value,isNotSupported) (This)->lpVtbl->CheckNotSupported(This,value,isNotSupported)
21899#define IUIAutomation6_get_ReservedNotSupportedValue(This,notSupportedValue) (This)->lpVtbl->get_ReservedNotSupportedValue(This,notSupportedValue)
21900#define IUIAutomation6_get_ReservedMixedAttributeValue(This,mixedAttributeValue) (This)->lpVtbl->get_ReservedMixedAttributeValue(This,mixedAttributeValue)
21901#define IUIAutomation6_ElementFromIAccessible(This,accessible,childId,element) (This)->lpVtbl->ElementFromIAccessible(This,accessible,childId,element)
21902#define IUIAutomation6_ElementFromIAccessibleBuildCache(This,accessible,childId,cacheRequest,element) (This)->lpVtbl->ElementFromIAccessibleBuildCache(This,accessible,childId,cacheRequest,element)
21903/*** IUIAutomation2 methods ***/
21904#define IUIAutomation6_get_AutoSetFocus(This,autoSetFocus) (This)->lpVtbl->get_AutoSetFocus(This,autoSetFocus)
21905#define IUIAutomation6_put_AutoSetFocus(This,autoSetFocus) (This)->lpVtbl->put_AutoSetFocus(This,autoSetFocus)
21906#define IUIAutomation6_get_ConnectionTimeout(This,timeout) (This)->lpVtbl->get_ConnectionTimeout(This,timeout)
21907#define IUIAutomation6_put_ConnectionTimeout(This,timeout) (This)->lpVtbl->put_ConnectionTimeout(This,timeout)
21908#define IUIAutomation6_get_TransactionTimeout(This,timeout) (This)->lpVtbl->get_TransactionTimeout(This,timeout)
21909#define IUIAutomation6_put_TransactionTimeout(This,timeout) (This)->lpVtbl->put_TransactionTimeout(This,timeout)
21910/*** IUIAutomation3 methods ***/
21911#define IUIAutomation6_AddTextEditTextChangedEventHandler(This,element,scope,textEditChangeType,cacheRequest,handler) (This)->lpVtbl->AddTextEditTextChangedEventHandler(This,element,scope,textEditChangeType,cacheRequest,handler)
21912#define IUIAutomation6_RemoveTextEditTextChangedEventHandler(This,element,handler) (This)->lpVtbl->RemoveTextEditTextChangedEventHandler(This,element,handler)
21913/*** IUIAutomation4 methods ***/
21914#define IUIAutomation6_AddChangesEventHandler(This,element,scope,changeTypes,changesCount,pCacheRequest,handler) (This)->lpVtbl->AddChangesEventHandler(This,element,scope,changeTypes,changesCount,pCacheRequest,handler)
21915#define IUIAutomation6_RemoveChangesEventHandler(This,element,handler) (This)->lpVtbl->RemoveChangesEventHandler(This,element,handler)
21916/*** IUIAutomation5 methods ***/
21917#define IUIAutomation6_AddNotificationEventHandler(This,element,scope,cacheRequest,handler) (This)->lpVtbl->AddNotificationEventHandler(This,element,scope,cacheRequest,handler)
21918#define IUIAutomation6_RemoveNotificationEventHandler(This,element,handler) (This)->lpVtbl->RemoveNotificationEventHandler(This,element,handler)
21919/*** IUIAutomation6 methods ***/
21920#define IUIAutomation6_CreateEventHandlerGroup(This,handlerGroup) (This)->lpVtbl->CreateEventHandlerGroup(This,handlerGroup)
21921#define IUIAutomation6_AddEventHandlerGroup(This,element,handlerGroup) (This)->lpVtbl->AddEventHandlerGroup(This,element,handlerGroup)
21922#define IUIAutomation6_RemoveEventHandlerGroup(This,element,handlerGroup) (This)->lpVtbl->RemoveEventHandlerGroup(This,element,handlerGroup)
21923#define IUIAutomation6_get_ConnectionRecoveryBehavior(This,connectionRecoveryBehaviorOptions) (This)->lpVtbl->get_ConnectionRecoveryBehavior(This,connectionRecoveryBehaviorOptions)
21924#define IUIAutomation6_put_ConnectionRecoveryBehavior(This,connectionRecoveryBehaviorOptions) (This)->lpVtbl->put_ConnectionRecoveryBehavior(This,connectionRecoveryBehaviorOptions)
21925#define IUIAutomation6_get_CoalesceEvents(This,coalesceEventsOptions) (This)->lpVtbl->get_CoalesceEvents(This,coalesceEventsOptions)
21926#define IUIAutomation6_put_CoalesceEvents(This,coalesceEventsOptions) (This)->lpVtbl->put_CoalesceEvents(This,coalesceEventsOptions)
21927#define IUIAutomation6_AddActiveTextPositionChangedEventHandler(This,element,scope,cacheRequest,handler) (This)->lpVtbl->AddActiveTextPositionChangedEventHandler(This,element,scope,cacheRequest,handler)
21928#define IUIAutomation6_RemoveActiveTextPositionChangedEventHandler(This,element,handler) (This)->lpVtbl->RemoveActiveTextPositionChangedEventHandler(This,element,handler)
21929#else
21930/*** IUnknown methods ***/
21931static inline HRESULT IUIAutomation6_QueryInterface(IUIAutomation6* This,REFIID riid,void **ppvObject) {
21932    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
21933}
21934static inline ULONG IUIAutomation6_AddRef(IUIAutomation6* This) {
21935    return This->lpVtbl->AddRef(This);
21936}
21937static inline ULONG IUIAutomation6_Release(IUIAutomation6* This) {
21938    return This->lpVtbl->Release(This);
21939}
21940/*** IUIAutomation methods ***/
21941static inline HRESULT IUIAutomation6_CompareElements(IUIAutomation6* This,IUIAutomationElement *el1,IUIAutomationElement *el2,WINBOOL *areSame) {
21942    return This->lpVtbl->CompareElements(This,el1,el2,areSame);
21943}
21944static inline HRESULT IUIAutomation6_CompareRuntimeIds(IUIAutomation6* This,SAFEARRAY *runtimeId1,SAFEARRAY *runtimeId2,WINBOOL *areSame) {
21945    return This->lpVtbl->CompareRuntimeIds(This,runtimeId1,runtimeId2,areSame);
21946}
21947static inline HRESULT IUIAutomation6_GetRootElement(IUIAutomation6* This,IUIAutomationElement **root) {
21948    return This->lpVtbl->GetRootElement(This,root);
21949}
21950static inline HRESULT IUIAutomation6_ElementFromHandle(IUIAutomation6* This,UIA_HWND hwnd,IUIAutomationElement **element) {
21951    return This->lpVtbl->ElementFromHandle(This,hwnd,element);
21952}
21953static inline HRESULT IUIAutomation6_ElementFromPoint(IUIAutomation6* This,POINT pt,IUIAutomationElement **element) {
21954    return This->lpVtbl->ElementFromPoint(This,pt,element);
21955}
21956static inline HRESULT IUIAutomation6_GetFocusedElement(IUIAutomation6* This,IUIAutomationElement **element) {
21957    return This->lpVtbl->GetFocusedElement(This,element);
21958}
21959static inline HRESULT IUIAutomation6_GetRootElementBuildCache(IUIAutomation6* This,IUIAutomationCacheRequest *cacheRequest,IUIAutomationElement **root) {
21960    return This->lpVtbl->GetRootElementBuildCache(This,cacheRequest,root);
21961}
21962static inline HRESULT IUIAutomation6_ElementFromHandleBuildCache(IUIAutomation6* This,UIA_HWND hwnd,IUIAutomationCacheRequest *cacheRequest,IUIAutomationElement **element) {
21963    return This->lpVtbl->ElementFromHandleBuildCache(This,hwnd,cacheRequest,element);
21964}
21965static inline HRESULT IUIAutomation6_ElementFromPointBuildCache(IUIAutomation6* This,POINT pt,IUIAutomationCacheRequest *cacheRequest,IUIAutomationElement **element) {
21966    return This->lpVtbl->ElementFromPointBuildCache(This,pt,cacheRequest,element);
21967}
21968static inline HRESULT IUIAutomation6_GetFocusedElementBuildCache(IUIAutomation6* This,IUIAutomationCacheRequest *cacheRequest,IUIAutomationElement **element) {
21969    return This->lpVtbl->GetFocusedElementBuildCache(This,cacheRequest,element);
21970}
21971static inline HRESULT IUIAutomation6_CreateTreeWalker(IUIAutomation6* This,IUIAutomationCondition *pCondition,IUIAutomationTreeWalker **walker) {
21972    return This->lpVtbl->CreateTreeWalker(This,pCondition,walker);
21973}
21974static inline HRESULT IUIAutomation6_get_ControlViewWalker(IUIAutomation6* This,IUIAutomationTreeWalker **walker) {
21975    return This->lpVtbl->get_ControlViewWalker(This,walker);
21976}
21977static inline HRESULT IUIAutomation6_get_ContentViewWalker(IUIAutomation6* This,IUIAutomationTreeWalker **walker) {
21978    return This->lpVtbl->get_ContentViewWalker(This,walker);
21979}
21980static inline HRESULT IUIAutomation6_get_RawViewWalker(IUIAutomation6* This,IUIAutomationTreeWalker **walker) {
21981    return This->lpVtbl->get_RawViewWalker(This,walker);
21982}
21983static inline HRESULT IUIAutomation6_get_RawViewCondition(IUIAutomation6* This,IUIAutomationCondition **condition) {
21984    return This->lpVtbl->get_RawViewCondition(This,condition);
21985}
21986static inline HRESULT IUIAutomation6_get_ControlViewCondition(IUIAutomation6* This,IUIAutomationCondition **condition) {
21987    return This->lpVtbl->get_ControlViewCondition(This,condition);
21988}
21989static inline HRESULT IUIAutomation6_get_ContentViewCondition(IUIAutomation6* This,IUIAutomationCondition **condition) {
21990    return This->lpVtbl->get_ContentViewCondition(This,condition);
21991}
21992static inline HRESULT IUIAutomation6_CreateCacheRequest(IUIAutomation6* This,IUIAutomationCacheRequest **cacheRequest) {
21993    return This->lpVtbl->CreateCacheRequest(This,cacheRequest);
21994}
21995static inline HRESULT IUIAutomation6_CreateTrueCondition(IUIAutomation6* This,IUIAutomationCondition **newCondition) {
21996    return This->lpVtbl->CreateTrueCondition(This,newCondition);
21997}
21998static inline HRESULT IUIAutomation6_CreateFalseCondition(IUIAutomation6* This,IUIAutomationCondition **newCondition) {
21999    return This->lpVtbl->CreateFalseCondition(This,newCondition);
22000}
22001static inline HRESULT IUIAutomation6_CreatePropertyCondition(IUIAutomation6* This,PROPERTYID propertyId,VARIANT value,IUIAutomationCondition **newCondition) {
22002    return This->lpVtbl->CreatePropertyCondition(This,propertyId,value,newCondition);
22003}
22004static inline HRESULT IUIAutomation6_CreatePropertyConditionEx(IUIAutomation6* This,PROPERTYID propertyId,VARIANT value,enum PropertyConditionFlags flags,IUIAutomationCondition **newCondition) {
22005    return This->lpVtbl->CreatePropertyConditionEx(This,propertyId,value,flags,newCondition);
22006}
22007static inline HRESULT IUIAutomation6_CreateAndCondition(IUIAutomation6* This,IUIAutomationCondition *condition1,IUIAutomationCondition *condition2,IUIAutomationCondition **newCondition) {
22008    return This->lpVtbl->CreateAndCondition(This,condition1,condition2,newCondition);
22009}
22010static inline HRESULT IUIAutomation6_CreateAndConditionFromArray(IUIAutomation6* This,SAFEARRAY *conditions,IUIAutomationCondition **newCondition) {
22011    return This->lpVtbl->CreateAndConditionFromArray(This,conditions,newCondition);
22012}
22013static inline HRESULT IUIAutomation6_CreateAndConditionFromNativeArray(IUIAutomation6* This,IUIAutomationCondition **conditions,int conditionCount,IUIAutomationCondition **newCondition) {
22014    return This->lpVtbl->CreateAndConditionFromNativeArray(This,conditions,conditionCount,newCondition);
22015}
22016static inline HRESULT IUIAutomation6_CreateOrCondition(IUIAutomation6* This,IUIAutomationCondition *condition1,IUIAutomationCondition *condition2,IUIAutomationCondition **newCondition) {
22017    return This->lpVtbl->CreateOrCondition(This,condition1,condition2,newCondition);
22018}
22019static inline HRESULT IUIAutomation6_CreateOrConditionFromArray(IUIAutomation6* This,SAFEARRAY *conditions,IUIAutomationCondition **newCondition) {
22020    return This->lpVtbl->CreateOrConditionFromArray(This,conditions,newCondition);
22021}
22022static inline HRESULT IUIAutomation6_CreateOrConditionFromNativeArray(IUIAutomation6* This,IUIAutomationCondition **conditions,int conditionCount,IUIAutomationCondition **newCondition) {
22023    return This->lpVtbl->CreateOrConditionFromNativeArray(This,conditions,conditionCount,newCondition);
22024}
22025static inline HRESULT IUIAutomation6_CreateNotCondition(IUIAutomation6* This,IUIAutomationCondition *condition,IUIAutomationCondition **newCondition) {
22026    return This->lpVtbl->CreateNotCondition(This,condition,newCondition);
22027}
22028static inline HRESULT IUIAutomation6_AddAutomationEventHandler(IUIAutomation6* This,EVENTID eventId,IUIAutomationElement *element,enum TreeScope scope,IUIAutomationCacheRequest *cacheRequest,IUIAutomationEventHandler *handler) {
22029    return This->lpVtbl->AddAutomationEventHandler(This,eventId,element,scope,cacheRequest,handler);
22030}
22031static inline HRESULT IUIAutomation6_RemoveAutomationEventHandler(IUIAutomation6* This,EVENTID eventId,IUIAutomationElement *element,IUIAutomationEventHandler *handler) {
22032    return This->lpVtbl->RemoveAutomationEventHandler(This,eventId,element,handler);
22033}
22034static inline HRESULT IUIAutomation6_AddPropertyChangedEventHandlerNativeArray(IUIAutomation6* This,IUIAutomationElement *element,enum TreeScope scope,IUIAutomationCacheRequest *cacheRequest,IUIAutomationPropertyChangedEventHandler *handler,PROPERTYID *propertyArray,int propertyCount) {
22035    return This->lpVtbl->AddPropertyChangedEventHandlerNativeArray(This,element,scope,cacheRequest,handler,propertyArray,propertyCount);
22036}
22037static inline HRESULT IUIAutomation6_AddPropertyChangedEventHandler(IUIAutomation6* This,IUIAutomationElement *element,enum TreeScope scope,IUIAutomationCacheRequest *cacheRequest,IUIAutomationPropertyChangedEventHandler *handler,SAFEARRAY *propertyArray) {
22038    return This->lpVtbl->AddPropertyChangedEventHandler(This,element,scope,cacheRequest,handler,propertyArray);
22039}
22040static inline HRESULT IUIAutomation6_RemovePropertyChangedEventHandler(IUIAutomation6* This,IUIAutomationElement *element,IUIAutomationPropertyChangedEventHandler *handler) {
22041    return This->lpVtbl->RemovePropertyChangedEventHandler(This,element,handler);
22042}
22043static inline HRESULT IUIAutomation6_AddStructureChangedEventHandler(IUIAutomation6* This,IUIAutomationElement *element,enum TreeScope scope,IUIAutomationCacheRequest *cacheRequest,IUIAutomationStructureChangedEventHandler *handler) {
22044    return This->lpVtbl->AddStructureChangedEventHandler(This,element,scope,cacheRequest,handler);
22045}
22046static inline HRESULT IUIAutomation6_RemoveStructureChangedEventHandler(IUIAutomation6* This,IUIAutomationElement *element,IUIAutomationStructureChangedEventHandler *handler) {
22047    return This->lpVtbl->RemoveStructureChangedEventHandler(This,element,handler);
22048}
22049static inline HRESULT IUIAutomation6_AddFocusChangedEventHandler(IUIAutomation6* This,IUIAutomationCacheRequest *cacheRequest,IUIAutomationFocusChangedEventHandler *handler) {
22050    return This->lpVtbl->AddFocusChangedEventHandler(This,cacheRequest,handler);
22051}
22052static inline HRESULT IUIAutomation6_RemoveFocusChangedEventHandler(IUIAutomation6* This,IUIAutomationFocusChangedEventHandler *handler) {
22053    return This->lpVtbl->RemoveFocusChangedEventHandler(This,handler);
22054}
22055static inline HRESULT IUIAutomation6_RemoveAllEventHandlers(IUIAutomation6* This) {
22056    return This->lpVtbl->RemoveAllEventHandlers(This);
22057}
22058static inline HRESULT IUIAutomation6_IntNativeArrayToSafeArray(IUIAutomation6* This,int *array,int arrayCount,SAFEARRAY **safeArray) {
22059    return This->lpVtbl->IntNativeArrayToSafeArray(This,array,arrayCount,safeArray);
22060}
22061static inline HRESULT IUIAutomation6_IntSafeArrayToNativeArray(IUIAutomation6* This,SAFEARRAY *intArray,int **array,int *arrayCount) {
22062    return This->lpVtbl->IntSafeArrayToNativeArray(This,intArray,array,arrayCount);
22063}
22064static inline HRESULT IUIAutomation6_RectToVariant(IUIAutomation6* This,RECT rc,VARIANT *var) {
22065    return This->lpVtbl->RectToVariant(This,rc,var);
22066}
22067static inline HRESULT IUIAutomation6_VariantToRect(IUIAutomation6* This,VARIANT var,RECT *rc) {
22068    return This->lpVtbl->VariantToRect(This,var,rc);
22069}
22070static inline HRESULT IUIAutomation6_SafeArrayToRectNativeArray(IUIAutomation6* This,SAFEARRAY *rects,RECT **rectArray,int *rectArrayCount) {
22071    return This->lpVtbl->SafeArrayToRectNativeArray(This,rects,rectArray,rectArrayCount);
22072}
22073static inline HRESULT IUIAutomation6_CreateProxyFactoryEntry(IUIAutomation6* This,IUIAutomationProxyFactory *factory,IUIAutomationProxyFactoryEntry **factoryEntry) {
22074    return This->lpVtbl->CreateProxyFactoryEntry(This,factory,factoryEntry);
22075}
22076static inline HRESULT IUIAutomation6_get_ProxyFactoryMapping(IUIAutomation6* This,IUIAutomationProxyFactoryMapping **factoryMapping) {
22077    return This->lpVtbl->get_ProxyFactoryMapping(This,factoryMapping);
22078}
22079static inline HRESULT IUIAutomation6_GetPropertyProgrammaticName(IUIAutomation6* This,PROPERTYID property,BSTR *name) {
22080    return This->lpVtbl->GetPropertyProgrammaticName(This,property,name);
22081}
22082static inline HRESULT IUIAutomation6_GetPatternProgrammaticName(IUIAutomation6* This,PATTERNID pattern,BSTR *name) {
22083    return This->lpVtbl->GetPatternProgrammaticName(This,pattern,name);
22084}
22085static inline HRESULT IUIAutomation6_PollForPotentialSupportedPatterns(IUIAutomation6* This,IUIAutomationElement *pElement,SAFEARRAY **patternIds,SAFEARRAY **patternNames) {
22086    return This->lpVtbl->PollForPotentialSupportedPatterns(This,pElement,patternIds,patternNames);
22087}
22088static inline HRESULT IUIAutomation6_PollForPotentialSupportedProperties(IUIAutomation6* This,IUIAutomationElement *pElement,SAFEARRAY **propertyIds,SAFEARRAY **propertyNames) {
22089    return This->lpVtbl->PollForPotentialSupportedProperties(This,pElement,propertyIds,propertyNames);
22090}
22091static inline HRESULT IUIAutomation6_CheckNotSupported(IUIAutomation6* This,VARIANT value,WINBOOL *isNotSupported) {
22092    return This->lpVtbl->CheckNotSupported(This,value,isNotSupported);
22093}
22094static inline HRESULT IUIAutomation6_get_ReservedNotSupportedValue(IUIAutomation6* This,IUnknown **notSupportedValue) {
22095    return This->lpVtbl->get_ReservedNotSupportedValue(This,notSupportedValue);
22096}
22097static inline HRESULT IUIAutomation6_get_ReservedMixedAttributeValue(IUIAutomation6* This,IUnknown **mixedAttributeValue) {
22098    return This->lpVtbl->get_ReservedMixedAttributeValue(This,mixedAttributeValue);
22099}
22100static inline HRESULT IUIAutomation6_ElementFromIAccessible(IUIAutomation6* This,IAccessible *accessible,int childId,IUIAutomationElement **element) {
22101    return This->lpVtbl->ElementFromIAccessible(This,accessible,childId,element);
22102}
22103static inline HRESULT IUIAutomation6_ElementFromIAccessibleBuildCache(IUIAutomation6* This,IAccessible *accessible,int childId,IUIAutomationCacheRequest *cacheRequest,IUIAutomationElement **element) {
22104    return This->lpVtbl->ElementFromIAccessibleBuildCache(This,accessible,childId,cacheRequest,element);
22105}
22106/*** IUIAutomation2 methods ***/
22107static inline HRESULT IUIAutomation6_get_AutoSetFocus(IUIAutomation6* This,WINBOOL *autoSetFocus) {
22108    return This->lpVtbl->get_AutoSetFocus(This,autoSetFocus);
22109}
22110static inline HRESULT IUIAutomation6_put_AutoSetFocus(IUIAutomation6* This,WINBOOL autoSetFocus) {
22111    return This->lpVtbl->put_AutoSetFocus(This,autoSetFocus);
22112}
22113static inline HRESULT IUIAutomation6_get_ConnectionTimeout(IUIAutomation6* This,DWORD *timeout) {
22114    return This->lpVtbl->get_ConnectionTimeout(This,timeout);
22115}
22116static inline HRESULT IUIAutomation6_put_ConnectionTimeout(IUIAutomation6* This,DWORD timeout) {
22117    return This->lpVtbl->put_ConnectionTimeout(This,timeout);
22118}
22119static inline HRESULT IUIAutomation6_get_TransactionTimeout(IUIAutomation6* This,DWORD *timeout) {
22120    return This->lpVtbl->get_TransactionTimeout(This,timeout);
22121}
22122static inline HRESULT IUIAutomation6_put_TransactionTimeout(IUIAutomation6* This,DWORD timeout) {
22123    return This->lpVtbl->put_TransactionTimeout(This,timeout);
22124}
22125/*** IUIAutomation3 methods ***/
22126static inline HRESULT IUIAutomation6_AddTextEditTextChangedEventHandler(IUIAutomation6* This,IUIAutomationElement *element,enum TreeScope scope,enum TextEditChangeType textEditChangeType,IUIAutomationCacheRequest *cacheRequest,IUIAutomationTextEditTextChangedEventHandler *handler) {
22127    return This->lpVtbl->AddTextEditTextChangedEventHandler(This,element,scope,textEditChangeType,cacheRequest,handler);
22128}
22129static inline HRESULT IUIAutomation6_RemoveTextEditTextChangedEventHandler(IUIAutomation6* This,IUIAutomationElement *element,IUIAutomationTextEditTextChangedEventHandler *handler) {
22130    return This->lpVtbl->RemoveTextEditTextChangedEventHandler(This,element,handler);
22131}
22132/*** IUIAutomation4 methods ***/
22133static inline HRESULT IUIAutomation6_AddChangesEventHandler(IUIAutomation6* This,IUIAutomationElement *element,enum TreeScope scope,int *changeTypes,int changesCount,IUIAutomationCacheRequest *pCacheRequest,IUIAutomationChangesEventHandler *handler) {
22134    return This->lpVtbl->AddChangesEventHandler(This,element,scope,changeTypes,changesCount,pCacheRequest,handler);
22135}
22136static inline HRESULT IUIAutomation6_RemoveChangesEventHandler(IUIAutomation6* This,IUIAutomationElement *element,IUIAutomationChangesEventHandler *handler) {
22137    return This->lpVtbl->RemoveChangesEventHandler(This,element,handler);
22138}
22139/*** IUIAutomation5 methods ***/
22140static inline HRESULT IUIAutomation6_AddNotificationEventHandler(IUIAutomation6* This,IUIAutomationElement *element,enum TreeScope scope,IUIAutomationCacheRequest *cacheRequest,IUIAutomationNotificationEventHandler *handler) {
22141    return This->lpVtbl->AddNotificationEventHandler(This,element,scope,cacheRequest,handler);
22142}
22143static inline HRESULT IUIAutomation6_RemoveNotificationEventHandler(IUIAutomation6* This,IUIAutomationElement *element,IUIAutomationNotificationEventHandler *handler) {
22144    return This->lpVtbl->RemoveNotificationEventHandler(This,element,handler);
22145}
22146/*** IUIAutomation6 methods ***/
22147static inline HRESULT IUIAutomation6_CreateEventHandlerGroup(IUIAutomation6* This,IUIAutomationEventHandlerGroup **handlerGroup) {
22148    return This->lpVtbl->CreateEventHandlerGroup(This,handlerGroup);
22149}
22150static inline HRESULT IUIAutomation6_AddEventHandlerGroup(IUIAutomation6* This,IUIAutomationElement *element,IUIAutomationEventHandlerGroup *handlerGroup) {
22151    return This->lpVtbl->AddEventHandlerGroup(This,element,handlerGroup);
22152}
22153static inline HRESULT IUIAutomation6_RemoveEventHandlerGroup(IUIAutomation6* This,IUIAutomationElement *element,IUIAutomationEventHandlerGroup *handlerGroup) {
22154    return This->lpVtbl->RemoveEventHandlerGroup(This,element,handlerGroup);
22155}
22156static inline HRESULT IUIAutomation6_get_ConnectionRecoveryBehavior(IUIAutomation6* This,enum ConnectionRecoveryBehaviorOptions *connectionRecoveryBehaviorOptions) {
22157    return This->lpVtbl->get_ConnectionRecoveryBehavior(This,connectionRecoveryBehaviorOptions);
22158}
22159static inline HRESULT IUIAutomation6_put_ConnectionRecoveryBehavior(IUIAutomation6* This,enum ConnectionRecoveryBehaviorOptions connectionRecoveryBehaviorOptions) {
22160    return This->lpVtbl->put_ConnectionRecoveryBehavior(This,connectionRecoveryBehaviorOptions);
22161}
22162static inline HRESULT IUIAutomation6_get_CoalesceEvents(IUIAutomation6* This,enum CoalesceEventsOptions *coalesceEventsOptions) {
22163    return This->lpVtbl->get_CoalesceEvents(This,coalesceEventsOptions);
22164}
22165static inline HRESULT IUIAutomation6_put_CoalesceEvents(IUIAutomation6* This,enum CoalesceEventsOptions coalesceEventsOptions) {
22166    return This->lpVtbl->put_CoalesceEvents(This,coalesceEventsOptions);
22167}
22168static inline HRESULT IUIAutomation6_AddActiveTextPositionChangedEventHandler(IUIAutomation6* This,IUIAutomationElement *element,enum TreeScope scope,IUIAutomationCacheRequest *cacheRequest,IUIAutomationActiveTextPositionChangedEventHandler *handler) {
22169    return This->lpVtbl->AddActiveTextPositionChangedEventHandler(This,element,scope,cacheRequest,handler);
22170}
22171static inline HRESULT IUIAutomation6_RemoveActiveTextPositionChangedEventHandler(IUIAutomation6* This,IUIAutomationElement *element,IUIAutomationActiveTextPositionChangedEventHandler *handler) {
22172    return This->lpVtbl->RemoveActiveTextPositionChangedEventHandler(This,element,handler);
22173}
22174#endif
22175#endif
22176
22177#endif
22178
22179
22180#endif  /* __IUIAutomation6_INTERFACE_DEFINED__ */
22181
22182/*****************************************************************************
22183 * CUIAutomation coclass
22184 */
22185
22186DEFINE_GUID(CLSID_CUIAutomation, 0xff48dba4, 0x60ef, 0x4201, 0xaa,0x87, 0x54,0x10,0x3e,0xef,0x59,0x4e);
22187
22188#ifdef __cplusplus
22189class DECLSPEC_UUID("ff48dba4-60ef-4201-aa87-54103eef594e") CUIAutomation;
22190#ifdef __CRT_UUID_DECL
22191__CRT_UUID_DECL(CUIAutomation, 0xff48dba4, 0x60ef, 0x4201, 0xaa,0x87, 0x54,0x10,0x3e,0xef,0x59,0x4e)
22192#endif
22193#endif
22194
22195/*****************************************************************************
22196 * CUIAutomation8 coclass
22197 */
22198
22199DEFINE_GUID(CLSID_CUIAutomation8, 0xe22ad333, 0xb25f, 0x460c, 0x83,0xd0, 0x05,0x81,0x10,0x73,0x95,0xc9);
22200
22201#ifdef __cplusplus
22202class DECLSPEC_UUID("e22ad333-b25f-460c-83d0-0581107395c9") CUIAutomation8;
22203#ifdef __CRT_UUID_DECL
22204__CRT_UUID_DECL(CUIAutomation8, 0xe22ad333, 0xb25f, 0x460c, 0x83,0xd0, 0x05,0x81,0x10,0x73,0x95,0xc9)
22205#endif
22206#endif
22207
22208#endif /* __UIAutomationClient_LIBRARY_DEFINED__ */
22209/* Begin additional prototypes for all interfaces */
22210
22211ULONG           __RPC_USER VARIANT_UserSize     (ULONG *, ULONG, VARIANT *);
22212unsigned char * __RPC_USER VARIANT_UserMarshal  (ULONG *, unsigned char *, VARIANT *);
22213unsigned char * __RPC_USER VARIANT_UserUnmarshal(ULONG *, unsigned char *, VARIANT *);
22214void            __RPC_USER VARIANT_UserFree     (ULONG *, VARIANT *);
22215ULONG           __RPC_USER BSTR_UserSize     (ULONG *, ULONG, BSTR *);
22216unsigned char * __RPC_USER BSTR_UserMarshal  (ULONG *, unsigned char *, BSTR *);
22217unsigned char * __RPC_USER BSTR_UserUnmarshal(ULONG *, unsigned char *, BSTR *);
22218void            __RPC_USER BSTR_UserFree     (ULONG *, BSTR *);
22219
22220/* End additional prototypes */
22221
22222#ifdef __cplusplus
22223}
22224#endif
22225
22226#endif /* __uiautomationclient_h__ */