Home | History | Annotate | Download | only in include
      1 /**
      2  * This file has no copyright assigned and is placed in the Public Domain.
      3  * This file is part of the mingw-w64 runtime package.
      4  * No warranty is given; refer to the file DISCLAIMER.PD within this package.
      5  */
      6 #ifndef __REQUIRED_RPCNDR_H_VERSION__
      7 #define __REQUIRED_RPCNDR_H_VERSION__ 440
      8 #endif
      9 
     10 #include "rpc.h"
     11 #include "rpcndr.h"
     12 
     13 #ifndef __RPCNDR_H_VERSION__
     14 #error this stub requires an updated version of <rpcndr.h>
     15 #endif
     16 
     17 #ifndef COM_NO_WINDOWS_H
     18 #include "windows.h"
     19 #include "ole2.h"
     20 #endif
     21 
     22 #ifndef __cmdtree_h__
     23 #define __cmdtree_h__
     24 
     25 #ifndef __ICommandTree_FWD_DEFINED__
     26 #define __ICommandTree_FWD_DEFINED__
     27 typedef struct ICommandTree ICommandTree;
     28 #endif
     29 
     30 #ifndef __IQuery_FWD_DEFINED__
     31 #define __IQuery_FWD_DEFINED__
     32 typedef struct IQuery IQuery;
     33 #endif
     34 
     35 #include "oledb.h"
     36 
     37 #ifdef __cplusplus
     38 extern "C"{
     39 #endif
     40 
     41 #ifndef __MIDL_user_allocate_free_DEFINED__
     42 #define __MIDL_user_allocate_free_DEFINED__
     43   void *__RPC_API MIDL_user_allocate(size_t);
     44   void __RPC_API MIDL_user_free(void *);
     45 #endif
     46 
     47 #ifdef _WIN64
     48 #include <pshpack8.h>
     49 #else
     50 #include <pshpack2.h>
     51 #endif
     52 
     53   extern RPC_IF_HANDLE __MIDL_itf_cmdtree_0000_v0_0_c_ifspec;
     54   extern RPC_IF_HANDLE __MIDL_itf_cmdtree_0000_v0_0_s_ifspec;
     55 
     56 #ifndef __CommandTreeStructureDefinitions_INTERFACE_DEFINED__
     57 #define __CommandTreeStructureDefinitions_INTERFACE_DEFINED__
     58 
     59   typedef WORD DBCOMMANDOP;
     60 
     61   enum DBCOMMANDOPENUM {
     62     DBOP_scalar_constant = 0,DBOP_DEFAULT,DBOP_NULL,DBOP_bookmark_name,
     63     DBOP_catalog_name,DBOP_column_name,DBOP_schema_name,
     64     DBOP_outall_name,DBOP_qualifier_name,DBOP_qualified_column_name,
     65     DBOP_table_name,DBOP_nested_table_name,DBOP_nested_column_name,
     66     DBOP_row,DBOP_table,DBOP_sort,DBOP_distinct,DBOP_distinct_order_preserving,
     67     DBOP_alias,DBOP_cross_join,DBOP_union_join,DBOP_inner_join,DBOP_left_semi_join,
     68     DBOP_right_semi_join,DBOP_left_anti_semi_join,DBOP_right_anti_semi_join,
     69     DBOP_left_outer_join,DBOP_right_outer_join,DBOP_full_outer_join,DBOP_natural_join,
     70     DBOP_natural_left_outer_join,DBOP_natural_right_outer_join,
     71     DBOP_natural_full_outer_join,DBOP_set_intersection,
     72     DBOP_set_union,DBOP_set_left_difference,DBOP_set_right_difference,
     73     DBOP_set_anti_difference,DBOP_bag_intersection,
     74     DBOP_bag_union,DBOP_bag_left_difference,DBOP_bag_right_difference,
     75     DBOP_bag_anti_difference,DBOP_division,DBOP_relative_sampling,
     76     DBOP_absolute_sampling,DBOP_transitive_closure,
     77     DBOP_recursive_union,DBOP_aggregate,DBOP_remote_table,
     78     DBOP_select,DBOP_order_preserving_select,DBOP_project,
     79     DBOP_project_order_preserving,DBOP_top,DBOP_top_percent,
     80     DBOP_top_plus_ties,DBOP_top_percent_plus_ties,DBOP_rank,
     81     DBOP_rank_ties_equally,DBOP_rank_ties_equally_and_skip,
     82     DBOP_navigate,DBOP_nesting,DBOP_unnesting,
     83     DBOP_nested_apply,DBOP_cross_tab,DBOP_is_NULL,DBOP_is_NOT_NULL,
     84     DBOP_equal,DBOP_not_equal,DBOP_less,DBOP_less_equal,
     85     DBOP_greater,DBOP_greater_equal,DBOP_equal_all,
     86     DBOP_not_equal_all,DBOP_less_all,DBOP_less_equal_all,
     87     DBOP_greater_all,DBOP_greater_equal_all,DBOP_equal_any,
     88     DBOP_not_equal_any,DBOP_less_any,DBOP_less_equal_any,
     89     DBOP_greater_any,DBOP_greater_equal_any,DBOP_anybits,
     90     DBOP_allbits,DBOP_anybits_any,DBOP_allbits_any,
     91     DBOP_anybits_all,DBOP_allbits_all,DBOP_between,
     92     DBOP_between_unordered,DBOP_match,DBOP_match_unique,
     93     DBOP_match_partial,DBOP_match_partial_unique,DBOP_match_full,
     94     DBOP_match_full_unique,DBOP_scalar_parameter,DBOP_scalar_function,
     95     DBOP_plus,DBOP_minus,DBOP_times,DBOP_over,DBOP_div,
     96     DBOP_modulo,DBOP_power,DBOP_like,DBOP_sounds_like,
     97     DBOP_like_any,DBOP_like_all,DBOP_is_INVALID,DBOP_is_TRUE,
     98     DBOP_is_FALSE,DBOP_and,DBOP_or,DBOP_xor,DBOP_equivalent,
     99     DBOP_not,DBOP_implies,DBOP_overlaps,DBOP_case_condition,
    100     DBOP_case_value,DBOP_nullif,DBOP_cast,DBOP_coalesce,
    101     DBOP_position,DBOP_extract,DBOP_char_length,DBOP_octet_length,
    102     DBOP_bit_length,DBOP_substring,DBOP_upper,DBOP_lower,
    103     DBOP_trim,DBOP_translate,DBOP_convert,DBOP_string_concat,
    104     DBOP_current_date,DBOP_current_time,DBOP_current_timestamp,
    105     DBOP_content_select,DBOP_content,DBOP_content_freetext,
    106     DBOP_content_proximity,DBOP_content_vector_or,DBOP_delete,
    107     DBOP_update,DBOP_insert,DBOP_min,DBOP_max,DBOP_count,
    108     DBOP_sum,DBOP_avg,DBOP_any_sample,DBOP_stddev,DBOP_stddev_pop,
    109     DBOP_var,DBOP_var_pop,DBOP_first,DBOP_last,DBOP_in,
    110     DBOP_exists,DBOP_unique,DBOP_subset,DBOP_proper_subset,
    111     DBOP_superset,DBOP_proper_superset,DBOP_disjoint,
    112     DBOP_pass_through,DBOP_defined_by_GUID,DBOP_text_command,
    113     DBOP_SQL_select,DBOP_prior_command_tree,DBOP_add_columns,
    114     DBOP_column_list_anchor,DBOP_column_list_element,
    115     DBOP_command_list_anchor,DBOP_command_list_element,
    116     DBOP_from_list_anchor,DBOP_from_list_element,
    117     DBOP_project_list_anchor,DBOP_project_list_element,
    118     DBOP_row_list_anchor,DBOP_row_list_element,
    119     DBOP_scalar_list_anchor,DBOP_scalar_list_element,
    120     DBOP_set_list_anchor,DBOP_set_list_element,
    121     DBOP_sort_list_anchor,DBOP_sort_list_element,
    122     DBOP_alter_character_set,DBOP_alter_collation,
    123     DBOP_alter_domain,DBOP_alter_index,DBOP_alter_procedure,
    124     DBOP_alter_schema,DBOP_alter_table,DBOP_alter_trigger,
    125     DBOP_alter_view,DBOP_coldef_list_anchor,DBOP_coldef_list_element,
    126     DBOP_create_assertion,DBOP_create_character_set,
    127     DBOP_create_collation,DBOP_create_domain,DBOP_create_index,
    128     DBOP_create_procedure,DBOP_create_schema,DBOP_create_synonym,
    129     DBOP_create_table,DBOP_create_temporary_table,
    130     DBOP_create_translation,DBOP_create_trigger,
    131     DBOP_create_view,DBOP_drop_assertion,DBOP_drop_character_set,
    132     DBOP_drop_collation,DBOP_drop_domain,DBOP_drop_index,
    133     DBOP_drop_procedure,DBOP_drop_schema,DBOP_drop_synonym,
    134     DBOP_drop_table,DBOP_drop_translation,DBOP_drop_trigger,
    135     DBOP_drop_view,DBOP_foreign_key,DBOP_grant_privileges,
    136     DBOP_index_list_anchor,DBOP_index_list_element,
    137     DBOP_primary_key,DBOP_property_list_anchor,
    138     DBOP_property_list_element,DBOP_referenced_table,
    139     DBOP_rename_object,DBOP_revoke_privileges,
    140     DBOP_schema_authorization,DBOP_unique_key,DBOP_scope_list_anchor,
    141     DBOP_scope_list_element,DBOP_content_table
    142   };
    143 #ifdef DBINITCONSTANTS
    144   extern const OLEDBDECLSPEC GUID DBGUID_LIKE_SQL = {0xc8b521f6,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
    145   extern const OLEDBDECLSPEC GUID DBGUID_LIKE_DOS = {0xc8b521f7,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
    146   extern const OLEDBDECLSPEC GUID DBGUID_LIKE_OFS = {0xc8b521f8,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
    147   extern const OLEDBDECLSPEC GUID DBGUID_LIKE_MAPI = {0xc8b521f9,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
    148 #else
    149   extern const GUID DBGUID_LIKE_SQL;
    150   extern const GUID DBGUID_LIKE_DOS;
    151   extern const GUID DBGUID_LIKE_OFS;
    152   extern const GUID DBGUID_LIKE_MAPI;
    153 #endif
    154 
    155   extern RPC_IF_HANDLE CommandTreeStructureDefinitions_v0_0_c_ifspec;
    156   extern RPC_IF_HANDLE CommandTreeStructureDefinitions_v0_0_s_ifspec;
    157 #endif
    158 
    159 #ifndef __ICommandTree_INTERFACE_DEFINED__
    160 #define __ICommandTree_INTERFACE_DEFINED__
    161 
    162   typedef DWORD DBCOMMANDREUSE;
    163   enum DBCOMMANDREUSEENUM {
    164     DBCOMMANDREUSE_NONE = 0,DBCOMMANDREUSE_PROPERTIES = 0x1,DBCOMMANDREUSE_PARAMETERS = 0x2
    165   };
    166   typedef DWORD DBVALUEKIND;
    167   enum DBVALUEKINDENUM {
    168     DBVALUEKIND_BYGUID = 256,DBVALUEKIND_COLDESC,DBVALUEKIND_ID,
    169     DBVALUEKIND_CONTENT,DBVALUEKIND_CONTENTVECTOR,DBVALUEKIND_GROUPINFO,
    170     DBVALUEKIND_PARAMETER,DBVALUEKIND_PROPERTY,DBVALUEKIND_SETFUNC,
    171     DBVALUEKIND_SORTINFO,DBVALUEKIND_TEXT,DBVALUEKIND_COMMAND,
    172     DBVALUEKIND_MONIKER,DBVALUEKIND_ROWSET,DBVALUEKIND_LIKE,
    173     DBVALUEKIND_CONTENTPROXIMITY,DBVALUEKIND_CONTENTSCOPE,
    174     DBVALUEKIND_CONTENTTABLE,
    175     DBVALUEKIND_IDISPATCH = 9,DBVALUEKIND_IUNKNOWN = 13,DBVALUEKIND_EMPTY = 0,
    176     DBVALUEKIND_NULL = 1,DBVALUEKIND_I2 = 2,DBVALUEKIND_I4 = 3,DBVALUEKIND_R4 = 4,
    177     DBVALUEKIND_R8 = 5,DBVALUEKIND_CY = 6,DBVALUEKIND_DATE = 7,
    178     DBVALUEKIND_BSTR = 8,DBVALUEKIND_ERROR = 10,DBVALUEKIND_BOOL = 11,
    179     DBVALUEKIND_VARIANT = 12,DBVALUEKIND_VECTOR = 0x1000,DBVALUEKIND_ARRAY = 0x2000, DBVALUEKIND_BYREF = 0x4000,
    180     DBVALUEKIND_I1 = 16,DBVALUEKIND_UI1 = 17,DBVALUEKIND_UI2 = 18,
    181     DBVALUEKIND_UI4 = 19,DBVALUEKIND_I8 = 20,DBVALUEKIND_UI8 = 21,
    182     DBVALUEKIND_GUID = 72,DBVALUEKIND_BYTES = 128,DBVALUEKIND_STR = 129,
    183     DBVALUEKIND_WSTR = 130,DBVALUEKIND_NUMERIC = 131,DBVALUEKIND_DBDATE = 133,
    184     DBVALUEKIND_DBTIME = 134,DBVALUEKIND_DBTIMESTAMP = 135,
    185     DBVALUEKIND_PROBABILISTIC = 136,DBVALUEKIND_RELEVANTDOCUMENT = 137
    186   };
    187   typedef struct tagDBBYGUID {
    188     BYTE *pbInfo;
    189     DBLENGTH cbInfo;
    190     GUID guid;
    191   } DBBYGUID;
    192 
    193 #define GENERATE_METHOD_EXACT (0)
    194 #define GENERATE_METHOD_PREFIX (1)
    195 #define GENERATE_METHOD_INFLECT (2)
    196 
    197   typedef struct tagDBCONTENT {
    198     LPOLESTR pwszPhrase;
    199     DWORD dwGenerateMethod;
    200     LONG lWeight;
    201     LCID lcid;
    202   } DBCONTENT;
    203 
    204 #define SCOPE_FLAG_MASK (0x000000ff)
    205 #define SCOPE_FLAG_INCLUDE (0x00000001)
    206 #define SCOPE_FLAG_DEEP (0x00000002)
    207 #define SCOPE_TYPE_MASK (0xffffff00)
    208 #define SCOPE_TYPE_WINPATH (0x00000100)
    209 #define SCOPE_TYPE_VPATH (0x00000200)
    210 
    211   typedef struct tagDBCONTENTSCOPE {
    212     DWORD dwFlags;
    213     LPOLESTR *rgpwszTagName;
    214     LPOLESTR pwszElementValue;
    215   } DBCONTENTSCOPE;
    216 
    217   typedef struct tagDBCONTENTTABLE {
    218     LPOLESTR pwszMachine;
    219     LPOLESTR pwszCatalog;
    220   } DBCONTENTTABLE;
    221 
    222 #define PROPID_QUERY_RANKVECTOR (0x2)
    223 #define PROPID_QUERY_RANK (0x3)
    224 #define PROPID_QUERY_HITCOUNT (0x4)
    225 #define PROPID_QUERY_ALL (0x6)
    226 #define PROPID_STG_CONTENTS (0x13)
    227 #define VECTOR_RANK_MIN (0)
    228 #define VECTOR_RANK_MAX (1)
    229 #define VECTOR_RANK_INNER (2)
    230 #define VECTOR_RANK_DICE (3)
    231 #define VECTOR_RANK_JACCARD (4)
    232 
    233   typedef struct tagDBCONTENTVECTOR {
    234     LONG lWeight;
    235     DWORD dwRankingMethod;
    236   } DBCONTENTVECTOR;
    237 
    238   typedef struct tagDBGROUPINFO {
    239     LCID lcid;
    240   } DBGROUPINFO;
    241 
    242   typedef struct tagDBPARAMETER {
    243     LPOLESTR pwszName;
    244     ITypeInfo *pTypeInfo;
    245     DB_NUMERIC *pNum;
    246     DBLENGTH cbMaxLength;
    247     DBPARAMFLAGS dwFlags;
    248     DBTYPE wType;
    249   } DBPARAMETER;
    250 
    251 #define DBSETFUNC_NONE 0x0
    252 #define DBSETFUNC_ALL 0x1
    253 #define DBSETFUNC_DISTINCT 0x2
    254 
    255   typedef struct tagDBSETFUNC {
    256     DWORD dwSetQuantifier;
    257   } DBSETFUNC;
    258 
    259   typedef struct tagDBSORTINFO {
    260     WINBOOL fDesc;
    261     LCID lcid;
    262   } DBSORTINFO;
    263 
    264   typedef struct tagDBTEXT {
    265     LPOLESTR pwszText;
    266     ULONG ulErrorLocator;
    267     ULONG ulTokenLength;
    268     GUID guidDialect;
    269   } DBTEXT;
    270 
    271   typedef struct tagDBLIKE {
    272     LONG lWeight;
    273     GUID guidDialect;
    274   } DBLIKE;
    275 
    276 #define PROXIMITY_UNIT_WORD (0)
    277 #define PROXIMITY_UNIT_SENTENCE (1)
    278 #define PROXIMITY_UNIT_PARAGRAPH (2)
    279 #define PROXIMITY_UNIT_CHAPTER (3)
    280 
    281   typedef struct tagDBCONTENTPROXIMITY {
    282     DWORD dwProximityUnit;
    283     ULONG ulProximityDistance;
    284     LONG lWeight;
    285   } DBCONTENTPROXIMITY;
    286 
    287   typedef struct tagDBPROBABILISTIC {
    288     LONG lWeight;
    289     float flK1;
    290     float flK2;
    291     float flK3;
    292     float flB;
    293   } DBPROBABILISTIC;
    294 
    295   typedef struct tagDBRELEVANTDOCUMENT {
    296     LONG lWeight;
    297     VARIANT vDocument;
    298   } DBRELEVANTDOCUMENT;
    299 
    300   typedef struct tagDBCOMMANDTREE {
    301     DBCOMMANDOP op;
    302     WORD wKind;
    303     struct tagDBCOMMANDTREE *pctFirstChild;
    304     struct tagDBCOMMANDTREE *pctNextSibling;
    305     union {
    306       __MINGW_EXTENSION __int64 llValue;
    307       __MINGW_EXTENSION unsigned __int64 ullValue;
    308       WINBOOL fValue;
    309       unsigned char uchValue;
    310       signed char schValue;
    311       unsigned short usValue;
    312       short sValue;
    313       LPOLESTR pwszValue;
    314       LONG lValue;
    315       ULONG ulValue;
    316       float flValue;
    317       double dblValue;
    318       CY cyValue;
    319       DATE dateValue;
    320       DBDATE dbdateValue;
    321       DBTIME dbtimeValue;
    322       SCODE scodeValue;
    323       BSTR *pbstrValue;
    324       ICommand *pCommand;
    325       IDispatch *pDispatch;
    326       IMoniker *pMoniker;
    327       IRowset *pRowset;
    328       IUnknown *pUnknown;
    329       DBBYGUID *pdbbygdValue;
    330       DBCOLUMNDESC *pcoldescValue;
    331       DBID *pdbidValue;
    332       DBLIKE *pdblikeValue;
    333       DBCONTENT *pdbcntntValue;
    334       DBCONTENTSCOPE *pdbcntntscpValue;
    335       DBCONTENTTABLE *pdbcntnttblValue;
    336       DBCONTENTVECTOR *pdbcntntvcValue;
    337       DBCONTENTPROXIMITY *pdbcntntproxValue;
    338       DBGROUPINFO *pdbgrpinfValue;
    339       DBPARAMETER *pdbparamValue;
    340       DBPROPSET *pdbpropValue;
    341       DBSETFUNC *pdbstfncValue;
    342       DBSORTINFO *pdbsrtinfValue;
    343       DBTEXT *pdbtxtValue;
    344       DBVECTOR *pdbvectorValue;
    345       SAFEARRAY *parrayValue;
    346       VARIANT *pvarValue;
    347       GUID *pGuid;
    348       BYTE *pbValue;
    349       char *pzValue;
    350       DB_NUMERIC *pdbnValue;
    351       DBTIMESTAMP *pdbtsValue;
    352       void *pvValue;
    353       DBPROBABILISTIC *pdbprobValue;
    354       DBRELEVANTDOCUMENT *pdbreldocValue;
    355     } value;
    356     HRESULT hrError;
    357   } DBCOMMANDTREE;
    358 
    359   EXTERN_C const IID IID_ICommandTree;
    360 #if defined(__cplusplus) && !defined(CINTERFACE)
    361   struct ICommandTree : public IUnknown {
    362   public:
    363     virtual HRESULT WINAPI FindErrorNodes(const DBCOMMANDTREE *pRoot,ULONG *pcErrorNodes,DBCOMMANDTREE ***prgErrorNodes) = 0;
    364     virtual HRESULT WINAPI FreeCommandTree(DBCOMMANDTREE **ppRoot) = 0;
    365     virtual HRESULT WINAPI GetCommandTree(DBCOMMANDTREE **ppRoot) = 0;
    366     virtual HRESULT WINAPI SetCommandTree(DBCOMMANDTREE **ppRoot,DBCOMMANDREUSE dwCommandReuse,WINBOOL fCopy) = 0;
    367   };
    368 #else
    369   typedef struct ICommandTreeVtbl {
    370     BEGIN_INTERFACE
    371       HRESULT (WINAPI *QueryInterface)(ICommandTree *This,REFIID riid,void **ppvObject);
    372       ULONG (WINAPI *AddRef)(ICommandTree *This);
    373       ULONG (WINAPI *Release)(ICommandTree *This);
    374       HRESULT (WINAPI *FindErrorNodes)(ICommandTree *This,const DBCOMMANDTREE *pRoot,ULONG *pcErrorNodes,DBCOMMANDTREE ***prgErrorNodes);
    375       HRESULT (WINAPI *FreeCommandTree)(ICommandTree *This,DBCOMMANDTREE **ppRoot);
    376       HRESULT (WINAPI *GetCommandTree)(ICommandTree *This,DBCOMMANDTREE **ppRoot);
    377       HRESULT (WINAPI *SetCommandTree)(ICommandTree *This,DBCOMMANDTREE **ppRoot,DBCOMMANDREUSE dwCommandReuse,WINBOOL fCopy);
    378     END_INTERFACE
    379   } ICommandTreeVtbl;
    380   struct ICommandTree {
    381     CONST_VTBL struct ICommandTreeVtbl *lpVtbl;
    382   };
    383 #ifdef COBJMACROS
    384 #define ICommandTree_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
    385 #define ICommandTree_AddRef(This) (This)->lpVtbl->AddRef(This)
    386 #define ICommandTree_Release(This) (This)->lpVtbl->Release(This)
    387 #define ICommandTree_FindErrorNodes(This,pRoot,pcErrorNodes,prgErrorNodes) (This)->lpVtbl->FindErrorNodes(This,pRoot,pcErrorNodes,prgErrorNodes)
    388 #define ICommandTree_FreeCommandTree(This,ppRoot) (This)->lpVtbl->FreeCommandTree(This,ppRoot)
    389 #define ICommandTree_GetCommandTree(This,ppRoot) (This)->lpVtbl->GetCommandTree(This,ppRoot)
    390 #define ICommandTree_SetCommandTree(This,ppRoot,dwCommandReuse,fCopy) (This)->lpVtbl->SetCommandTree(This,ppRoot,dwCommandReuse,fCopy)
    391 #endif
    392 #endif
    393   HRESULT WINAPI ICommandTree_FindErrorNodes_Proxy(ICommandTree *This,const DBCOMMANDTREE *pRoot,ULONG *pcErrorNodes,DBCOMMANDTREE ***prgErrorNodes);
    394   void __RPC_STUB ICommandTree_FindErrorNodes_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    395   HRESULT WINAPI ICommandTree_FreeCommandTree_Proxy(ICommandTree *This,DBCOMMANDTREE **ppRoot);
    396   void __RPC_STUB ICommandTree_FreeCommandTree_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    397   HRESULT WINAPI ICommandTree_GetCommandTree_Proxy(ICommandTree *This,DBCOMMANDTREE **ppRoot);
    398   void __RPC_STUB ICommandTree_GetCommandTree_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    399   HRESULT WINAPI ICommandTree_SetCommandTree_Proxy(ICommandTree *This,DBCOMMANDTREE **ppRoot,DBCOMMANDREUSE dwCommandReuse,WINBOOL fCopy);
    400   void __RPC_STUB ICommandTree_SetCommandTree_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    401 #endif
    402 
    403 #ifndef __IQuery_INTERFACE_DEFINED__
    404 #define __IQuery_INTERFACE_DEFINED__
    405   EXTERN_C const IID IID_IQuery;
    406 #if defined(__cplusplus) && !defined(CINTERFACE)
    407   struct IQuery : public ICommandTree {
    408   public:
    409     virtual HRESULT WINAPI AddPostProcessing(DBCOMMANDTREE **ppRoot,WINBOOL fCopy) = 0;
    410     virtual HRESULT WINAPI GetCardinalityEstimate(DBORDINAL *pulCardinality) = 0;
    411   };
    412 #else
    413   typedef struct IQueryVtbl {
    414     BEGIN_INTERFACE
    415       HRESULT (WINAPI *QueryInterface)(IQuery *This,REFIID riid,void **ppvObject);
    416       ULONG (WINAPI *AddRef)(IQuery *This);
    417       ULONG (WINAPI *Release)(IQuery *This);
    418       HRESULT (WINAPI *FindErrorNodes)(IQuery *This,const DBCOMMANDTREE *pRoot,ULONG *pcErrorNodes,DBCOMMANDTREE ***prgErrorNodes);
    419       HRESULT (WINAPI *FreeCommandTree)(IQuery *This,DBCOMMANDTREE **ppRoot);
    420       HRESULT (WINAPI *GetCommandTree)(IQuery *This,DBCOMMANDTREE **ppRoot);
    421       HRESULT (WINAPI *SetCommandTree)(IQuery *This,DBCOMMANDTREE **ppRoot,DBCOMMANDREUSE dwCommandReuse,WINBOOL fCopy);
    422       HRESULT (WINAPI *AddPostProcessing)(IQuery *This,DBCOMMANDTREE **ppRoot,WINBOOL fCopy);
    423       HRESULT (WINAPI *GetCardinalityEstimate)(IQuery *This,DBORDINAL *pulCardinality);
    424     END_INTERFACE
    425   } IQueryVtbl;
    426   struct IQuery {
    427     CONST_VTBL struct IQueryVtbl *lpVtbl;
    428   };
    429 #ifdef COBJMACROS
    430 #define IQuery_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
    431 #define IQuery_AddRef(This) (This)->lpVtbl->AddRef(This)
    432 #define IQuery_Release(This) (This)->lpVtbl->Release(This)
    433 #define IQuery_FindErrorNodes(This,pRoot,pcErrorNodes,prgErrorNodes) (This)->lpVtbl->FindErrorNodes(This,pRoot,pcErrorNodes,prgErrorNodes)
    434 #define IQuery_FreeCommandTree(This,ppRoot) (This)->lpVtbl->FreeCommandTree(This,ppRoot)
    435 #define IQuery_GetCommandTree(This,ppRoot) (This)->lpVtbl->GetCommandTree(This,ppRoot)
    436 #define IQuery_SetCommandTree(This,ppRoot,dwCommandReuse,fCopy) (This)->lpVtbl->SetCommandTree(This,ppRoot,dwCommandReuse,fCopy)
    437 #define IQuery_AddPostProcessing(This,ppRoot,fCopy) (This)->lpVtbl->AddPostProcessing(This,ppRoot,fCopy)
    438 #define IQuery_GetCardinalityEstimate(This,pulCardinality) (This)->lpVtbl->GetCardinalityEstimate(This,pulCardinality)
    439 #endif
    440 #endif
    441   HRESULT WINAPI IQuery_AddPostProcessing_Proxy(IQuery *This,DBCOMMANDTREE **ppRoot,WINBOOL fCopy);
    442   void __RPC_STUB IQuery_AddPostProcessing_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    443   HRESULT WINAPI IQuery_GetCardinalityEstimate_Proxy(IQuery *This,DBORDINAL *pulCardinality);
    444   void __RPC_STUB IQuery_GetCardinalityEstimate_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    445 #endif
    446 
    447 #include <poppack.h>
    448 
    449   extern RPC_IF_HANDLE __MIDL_itf_cmdtree_0359_v0_0_c_ifspec;
    450   extern RPC_IF_HANDLE __MIDL_itf_cmdtree_0359_v0_0_s_ifspec;
    451 
    452 #ifdef __cplusplus
    453 }
    454 #endif
    455 #endif
    456