cmdtree.h 18 KB

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