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