home *** CD-ROM | disk | FTP | other *** search
/ PC Format (South-Africa) 2001 May / PCFMay2001.iso / Xenon / C++ / FreeCommandLineTools.exe / Include / cmdtree.h < prev    next >
Encoding:
C/C++ Source or Header  |  2000-01-31  |  32.0 KB  |  942 lines

  1. #pragma option push -b -a8 -pc -A- /*P_O_Push*/
  2.  
  3. #pragma warning( disable: 4049 )  /* more than 64k source lines */
  4.  
  5. /* this ALWAYS GENERATED file contains the definitions for the interfaces */
  6.  
  7.  
  8.  /* File created by MIDL compiler version 5.03.0266 */
  9. /* at Mon May 24 02:08:37 1999
  10.  */
  11. /* Compiler settings for cmdtree.idl:
  12.     Oicf (OptLev=i2), W1, Zp2, env=Win32 (32b run), ms_ext, c_ext
  13.     error checks: allocation ref bounds_check enum stub_data 
  14.     VC __declspec() decoration level: 
  15.          __declspec(uuid()), __declspec(selectany), __declspec(novtable)
  16.          DECLSPEC_UUID(), MIDL_INTERFACE()
  17. */
  18. //@@MIDL_FILE_HEADING(  )
  19.  
  20.  
  21. /* verify that the <rpcndr.h> version is high enough to compile this file*/
  22. #ifndef __REQUIRED_RPCNDR_H_VERSION__
  23. #define __REQUIRED_RPCNDR_H_VERSION__ 440
  24. #endif
  25.  
  26. #include "rpc.h"
  27. #include "rpcndr.h"
  28.  
  29. #ifndef __RPCNDR_H_VERSION__
  30. #error this stub requires an updated version of <rpcndr.h>
  31. #endif // __RPCNDR_H_VERSION__
  32.  
  33. #ifndef COM_NO_WINDOWS_H
  34. #include "windows.h"
  35. #include "ole2.h"
  36. #endif /*COM_NO_WINDOWS_H*/
  37.  
  38. #ifndef __cmdtree_h__
  39. #define __cmdtree_h__
  40.  
  41. /* Forward Declarations */ 
  42.  
  43. #ifndef __ICommandTree_FWD_DEFINED__
  44. #define __ICommandTree_FWD_DEFINED__
  45. typedef interface ICommandTree ICommandTree;
  46. #endif     /* __ICommandTree_FWD_DEFINED__ */
  47.  
  48.  
  49. #ifndef __IQuery_FWD_DEFINED__
  50. #define __IQuery_FWD_DEFINED__
  51. typedef interface IQuery IQuery;
  52. #endif     /* __IQuery_FWD_DEFINED__ */
  53.  
  54.  
  55. /* header files for imported files */
  56. #include "oledb.h"
  57.  
  58. #ifdef __cplusplus
  59. extern "C"{
  60. #endif 
  61.  
  62. void __RPC_FAR * __RPC_USER MIDL_user_allocate(size_t);
  63. void __RPC_USER MIDL_user_free( void __RPC_FAR * ); 
  64.  
  65. /* interface __MIDL_itf_cmdtree_0000 */
  66. /* [local] */ 
  67.  
  68. //+---------------------------------------------------------------------------
  69. //
  70. //  Microsoft OLE DB
  71. //  Copyright (C) Microsoft Corporation, 1994 - 1999.
  72. //
  73. //----------------------------------------------------------------------------
  74.  
  75. #ifdef _WIN64
  76. #include <pshpack8.h>    // 8-byte structure packing
  77. #else
  78. #include <pshpack2.h>    // 2-byte structure packing
  79. #endif
  80.  
  81.  
  82.  
  83. extern RPC_IF_HANDLE __MIDL_itf_cmdtree_0000_v0_0_c_ifspec;
  84. extern RPC_IF_HANDLE __MIDL_itf_cmdtree_0000_v0_0_s_ifspec;
  85.  
  86. #ifndef __CommandTreeStructureDefinitions_INTERFACE_DEFINED__
  87. #define __CommandTreeStructureDefinitions_INTERFACE_DEFINED__
  88.  
  89. /* interface CommandTreeStructureDefinitions */
  90. /* [auto_handle][unique][uuid] */ 
  91.  
  92. typedef WORD DBCOMMANDOP;
  93.  
  94.  
  95. enum DBCOMMANDOPENUM
  96.     {    DBOP_scalar_constant    = 0,
  97.     DBOP_DEFAULT    = DBOP_scalar_constant + 1,
  98.     DBOP_NULL    = DBOP_DEFAULT + 1,
  99.     DBOP_bookmark_name    = DBOP_NULL + 1,
  100.     DBOP_catalog_name    = DBOP_bookmark_name + 1,
  101.     DBOP_column_name    = DBOP_catalog_name + 1,
  102.     DBOP_schema_name    = DBOP_column_name + 1,
  103.     DBOP_outall_name    = DBOP_schema_name + 1,
  104.     DBOP_qualifier_name    = DBOP_outall_name + 1,
  105.     DBOP_qualified_column_name    = DBOP_qualifier_name + 1,
  106.     DBOP_table_name    = DBOP_qualified_column_name + 1,
  107.     DBOP_nested_table_name    = DBOP_table_name + 1,
  108.     DBOP_nested_column_name    = DBOP_nested_table_name + 1,
  109.     DBOP_row    = DBOP_nested_column_name + 1,
  110.     DBOP_table    = DBOP_row + 1,
  111.     DBOP_sort    = DBOP_table + 1,
  112.     DBOP_distinct    = DBOP_sort + 1,
  113.     DBOP_distinct_order_preserving    = DBOP_distinct + 1,
  114.     DBOP_alias    = DBOP_distinct_order_preserving + 1,
  115.     DBOP_cross_join    = DBOP_alias + 1,
  116.     DBOP_union_join    = DBOP_cross_join + 1,
  117.     DBOP_inner_join    = DBOP_union_join + 1,
  118.     DBOP_left_semi_join    = DBOP_inner_join + 1,
  119.     DBOP_right_semi_join    = DBOP_left_semi_join + 1,
  120.     DBOP_left_anti_semi_join    = DBOP_right_semi_join + 1,
  121.     DBOP_right_anti_semi_join    = DBOP_left_anti_semi_join + 1,
  122.     DBOP_left_outer_join    = DBOP_right_anti_semi_join + 1,
  123.     DBOP_right_outer_join    = DBOP_left_outer_join + 1,
  124.     DBOP_full_outer_join    = DBOP_right_outer_join + 1,
  125.     DBOP_natural_join    = DBOP_full_outer_join + 1,
  126.     DBOP_natural_left_outer_join    = DBOP_natural_join + 1,
  127.     DBOP_natural_right_outer_join    = DBOP_natural_left_outer_join + 1,
  128.     DBOP_natural_full_outer_join    = DBOP_natural_right_outer_join + 1,
  129.     DBOP_set_intersection    = DBOP_natural_full_outer_join + 1,
  130.     DBOP_set_union    = DBOP_set_intersection + 1,
  131.     DBOP_set_left_difference    = DBOP_set_union + 1,
  132.     DBOP_set_right_difference    = DBOP_set_left_difference + 1,
  133.     DBOP_set_anti_difference    = DBOP_set_right_difference + 1,
  134.     DBOP_bag_intersection    = DBOP_set_anti_difference + 1,
  135.     DBOP_bag_union    = DBOP_bag_intersection + 1,
  136.     DBOP_bag_left_difference    = DBOP_bag_union + 1,
  137.     DBOP_bag_right_difference    = DBOP_bag_left_difference + 1,
  138.     DBOP_bag_anti_difference    = DBOP_bag_right_difference + 1,
  139.     DBOP_division    = DBOP_bag_anti_difference + 1,
  140.     DBOP_relative_sampling    = DBOP_division + 1,
  141.     DBOP_absolute_sampling    = DBOP_relative_sampling + 1,
  142.     DBOP_transitive_closure    = DBOP_absolute_sampling + 1,
  143.     DBOP_recursive_union    = DBOP_transitive_closure + 1,
  144.     DBOP_aggregate    = DBOP_recursive_union + 1,
  145.     DBOP_remote_table    = DBOP_aggregate + 1,
  146.     DBOP_select    = DBOP_remote_table + 1,
  147.     DBOP_order_preserving_select    = DBOP_select + 1,
  148.     DBOP_project    = DBOP_order_preserving_select + 1,
  149.     DBOP_project_order_preserving    = DBOP_project + 1,
  150.     DBOP_top    = DBOP_project_order_preserving + 1,
  151.     DBOP_top_percent    = DBOP_top + 1,
  152.     DBOP_top_plus_ties    = DBOP_top_percent + 1,
  153.     DBOP_top_percent_plus_ties    = DBOP_top_plus_ties + 1,
  154.     DBOP_rank    = DBOP_top_percent_plus_ties + 1,
  155.     DBOP_rank_ties_equally    = DBOP_rank + 1,
  156.     DBOP_rank_ties_equally_and_skip    = DBOP_rank_ties_equally + 1,
  157.     DBOP_navigate    = DBOP_rank_ties_equally_and_skip + 1,
  158.     DBOP_nesting    = DBOP_navigate + 1,
  159.     DBOP_unnesting    = DBOP_nesting + 1,
  160.     DBOP_nested_apply    = DBOP_unnesting + 1,
  161.     DBOP_cross_tab    = DBOP_nested_apply + 1,
  162.     DBOP_is_NULL    = DBOP_cross_tab + 1,
  163.     DBOP_is_NOT_NULL    = DBOP_is_NULL + 1,
  164.     DBOP_equal    = DBOP_is_NOT_NULL + 1,
  165.     DBOP_not_equal    = DBOP_equal + 1,
  166.     DBOP_less    = DBOP_not_equal + 1,
  167.     DBOP_less_equal    = DBOP_less + 1,
  168.     DBOP_greater    = DBOP_less_equal + 1,
  169.     DBOP_greater_equal    = DBOP_greater + 1,
  170.     DBOP_equal_all    = DBOP_greater_equal + 1,
  171.     DBOP_not_equal_all    = DBOP_equal_all + 1,
  172.     DBOP_less_all    = DBOP_not_equal_all + 1,
  173.     DBOP_less_equal_all    = DBOP_less_all + 1,
  174.     DBOP_greater_all    = DBOP_less_equal_all + 1,
  175.     DBOP_greater_equal_all    = DBOP_greater_all + 1,
  176.     DBOP_equal_any    = DBOP_greater_equal_all + 1,
  177.     DBOP_not_equal_any    = DBOP_equal_any + 1,
  178.     DBOP_less_any    = DBOP_not_equal_any + 1,
  179.     DBOP_less_equal_any    = DBOP_less_any + 1,
  180.     DBOP_greater_any    = DBOP_less_equal_any + 1,
  181.     DBOP_greater_equal_any    = DBOP_greater_any + 1,
  182.     DBOP_anybits    = DBOP_greater_equal_any + 1,
  183.     DBOP_allbits    = DBOP_anybits + 1,
  184.     DBOP_anybits_any    = DBOP_allbits + 1,
  185.     DBOP_allbits_any    = DBOP_anybits_any + 1,
  186.     DBOP_anybits_all    = DBOP_allbits_any + 1,
  187.     DBOP_allbits_all    = DBOP_anybits_all + 1,
  188.     DBOP_between    = DBOP_allbits_all + 1,
  189.     DBOP_between_unordered    = DBOP_between + 1,
  190.     DBOP_match    = DBOP_between_unordered + 1,
  191.     DBOP_match_unique    = DBOP_match + 1,
  192.     DBOP_match_partial    = DBOP_match_unique + 1,
  193.     DBOP_match_partial_unique    = DBOP_match_partial + 1,
  194.     DBOP_match_full    = DBOP_match_partial_unique + 1,
  195.     DBOP_match_full_unique    = DBOP_match_full + 1,
  196.     DBOP_scalar_parameter    = DBOP_match_full_unique + 1,
  197.     DBOP_scalar_function    = DBOP_scalar_parameter + 1,
  198.     DBOP_plus    = DBOP_scalar_function + 1,
  199.     DBOP_minus    = DBOP_plus + 1,
  200.     DBOP_times    = DBOP_minus + 1,
  201.     DBOP_over    = DBOP_times + 1,
  202.     DBOP_div    = DBOP_over + 1,
  203.     DBOP_modulo    = DBOP_div + 1,
  204.     DBOP_power    = DBOP_modulo + 1,
  205.     DBOP_like    = DBOP_power + 1,
  206.     DBOP_sounds_like    = DBOP_like + 1,
  207.     DBOP_like_any    = DBOP_sounds_like + 1,
  208.     DBOP_like_all    = DBOP_like_any + 1,
  209.     DBOP_is_INVALID    = DBOP_like_all + 1,
  210.     DBOP_is_TRUE    = DBOP_is_INVALID + 1,
  211.     DBOP_is_FALSE    = DBOP_is_TRUE + 1,
  212.     DBOP_and    = DBOP_is_FALSE + 1,
  213.     DBOP_or    = DBOP_and + 1,
  214.     DBOP_xor    = DBOP_or + 1,
  215.     DBOP_equivalent    = DBOP_xor + 1,
  216.     DBOP_not    = DBOP_equivalent + 1,
  217.     DBOP_implies    = DBOP_not + 1,
  218.     DBOP_overlaps    = DBOP_implies + 1,
  219.     DBOP_case_condition    = DBOP_overlaps + 1,
  220.     DBOP_case_value    = DBOP_case_condition + 1,
  221.     DBOP_nullif    = DBOP_case_value + 1,
  222.     DBOP_cast    = DBOP_nullif + 1,
  223.     DBOP_coalesce    = DBOP_cast + 1,
  224.     DBOP_position    = DBOP_coalesce + 1,
  225.     DBOP_extract    = DBOP_position + 1,
  226.     DBOP_char_length    = DBOP_extract + 1,
  227.     DBOP_octet_length    = DBOP_char_length + 1,
  228.     DBOP_bit_length    = DBOP_octet_length + 1,
  229.     DBOP_substring    = DBOP_bit_length + 1,
  230.     DBOP_upper    = DBOP_substring + 1,
  231.     DBOP_lower    = DBOP_upper + 1,
  232.     DBOP_trim    = DBOP_lower + 1,
  233.     DBOP_translate    = DBOP_trim + 1,
  234.     DBOP_convert    = DBOP_translate + 1,
  235.     DBOP_string_concat    = DBOP_convert + 1,
  236.     DBOP_current_date    = DBOP_string_concat + 1,
  237.     DBOP_current_time    = DBOP_current_date + 1,
  238.     DBOP_current_timestamp    = DBOP_current_time + 1,
  239.     DBOP_content_select    = DBOP_current_timestamp + 1,
  240.     DBOP_content    = DBOP_content_select + 1,
  241.     DBOP_content_freetext    = DBOP_content + 1,
  242.     DBOP_content_proximity    = DBOP_content_freetext + 1,
  243.     DBOP_content_vector_or    = DBOP_content_proximity + 1,
  244.     DBOP_delete    = DBOP_content_vector_or + 1,
  245.     DBOP_update    = DBOP_delete + 1,
  246.     DBOP_insert    = DBOP_update + 1,
  247.     DBOP_min    = DBOP_insert + 1,
  248.     DBOP_max    = DBOP_min + 1,
  249.     DBOP_count    = DBOP_max + 1,
  250.     DBOP_sum    = DBOP_count + 1,
  251.     DBOP_avg    = DBOP_sum + 1,
  252.     DBOP_any_sample    = DBOP_avg + 1,
  253.     DBOP_stddev    = DBOP_any_sample + 1,
  254.     DBOP_stddev_pop    = DBOP_stddev + 1,
  255.     DBOP_var    = DBOP_stddev_pop + 1,
  256.     DBOP_var_pop    = DBOP_var + 1,
  257.     DBOP_first    = DBOP_var_pop + 1,
  258.     DBOP_last    = DBOP_first + 1,
  259.     DBOP_in    = DBOP_last + 1,
  260.     DBOP_exists    = DBOP_in + 1,
  261.     DBOP_unique    = DBOP_exists + 1,
  262.     DBOP_subset    = DBOP_unique + 1,
  263.     DBOP_proper_subset    = DBOP_subset + 1,
  264.     DBOP_superset    = DBOP_proper_subset + 1,
  265.     DBOP_proper_superset    = DBOP_superset + 1,
  266.     DBOP_disjoint    = DBOP_proper_superset + 1,
  267.     DBOP_pass_through    = DBOP_disjoint + 1,
  268.     DBOP_defined_by_GUID    = DBOP_pass_through + 1,
  269.     DBOP_text_command    = DBOP_defined_by_GUID + 1,
  270.     DBOP_SQL_select    = DBOP_text_command + 1,
  271.     DBOP_prior_command_tree    = DBOP_SQL_select + 1,
  272.     DBOP_add_columns    = DBOP_prior_command_tree + 1,
  273.     DBOP_column_list_anchor    = DBOP_add_columns + 1,
  274.     DBOP_column_list_element    = DBOP_column_list_anchor + 1,
  275.     DBOP_command_list_anchor    = DBOP_column_list_element + 1,
  276.     DBOP_command_list_element    = DBOP_command_list_anchor + 1,
  277.     DBOP_from_list_anchor    = DBOP_command_list_element + 1,
  278.     DBOP_from_list_element    = DBOP_from_list_anchor + 1,
  279.     DBOP_project_list_anchor    = DBOP_from_list_element + 1,
  280.     DBOP_project_list_element    = DBOP_project_list_anchor + 1,
  281.     DBOP_row_list_anchor    = DBOP_project_list_element + 1,
  282.     DBOP_row_list_element    = DBOP_row_list_anchor + 1,
  283.     DBOP_scalar_list_anchor    = DBOP_row_list_element + 1,
  284.     DBOP_scalar_list_element    = DBOP_scalar_list_anchor + 1,
  285.     DBOP_set_list_anchor    = DBOP_scalar_list_element + 1,
  286.     DBOP_set_list_element    = DBOP_set_list_anchor + 1,
  287.     DBOP_sort_list_anchor    = DBOP_set_list_element + 1,
  288.     DBOP_sort_list_element    = DBOP_sort_list_anchor + 1,
  289.     DBOP_alter_character_set    = DBOP_sort_list_element + 1,
  290.     DBOP_alter_collation    = DBOP_alter_character_set + 1,
  291.     DBOP_alter_domain    = DBOP_alter_collation + 1,
  292.     DBOP_alter_index    = DBOP_alter_domain + 1,
  293.     DBOP_alter_procedure    = DBOP_alter_index + 1,
  294.     DBOP_alter_schema    = DBOP_alter_procedure + 1,
  295.     DBOP_alter_table    = DBOP_alter_schema + 1,
  296.     DBOP_alter_trigger    = DBOP_alter_table + 1,
  297.     DBOP_alter_view    = DBOP_alter_trigger + 1,
  298.     DBOP_coldef_list_anchor    = DBOP_alter_view + 1,
  299.     DBOP_coldef_list_element    = DBOP_coldef_list_anchor + 1,
  300.     DBOP_create_assertion    = DBOP_coldef_list_element + 1,
  301.     DBOP_create_character_set    = DBOP_create_assertion + 1,
  302.     DBOP_create_collation    = DBOP_create_character_set + 1,
  303.     DBOP_create_domain    = DBOP_create_collation + 1,
  304.     DBOP_create_index    = DBOP_create_domain + 1,
  305.     DBOP_create_procedure    = DBOP_create_index + 1,
  306.     DBOP_create_schema    = DBOP_create_procedure + 1,
  307.     DBOP_create_synonym    = DBOP_create_schema + 1,
  308.     DBOP_create_table    = DBOP_create_synonym + 1,
  309.     DBOP_create_temporary_table    = DBOP_create_table + 1,
  310.     DBOP_create_translation    = DBOP_create_temporary_table + 1,
  311.     DBOP_create_trigger    = DBOP_create_translation + 1,
  312.     DBOP_create_view    = DBOP_create_trigger + 1,
  313.     DBOP_drop_assertion    = DBOP_create_view + 1,
  314.     DBOP_drop_character_set    = DBOP_drop_assertion + 1,
  315.     DBOP_drop_collation    = DBOP_drop_character_set + 1,
  316.     DBOP_drop_domain    = DBOP_drop_collation + 1,
  317.     DBOP_drop_index    = DBOP_drop_domain + 1,
  318.     DBOP_drop_procedure    = DBOP_drop_index + 1,
  319.     DBOP_drop_schema    = DBOP_drop_procedure + 1,
  320.     DBOP_drop_synonym    = DBOP_drop_schema + 1,
  321.     DBOP_drop_table    = DBOP_drop_synonym + 1,
  322.     DBOP_drop_translation    = DBOP_drop_table + 1,
  323.     DBOP_drop_trigger    = DBOP_drop_translation + 1,
  324.     DBOP_drop_view    = DBOP_drop_trigger + 1,
  325.     DBOP_foreign_key    = DBOP_drop_view + 1,
  326.     DBOP_grant_privileges    = DBOP_foreign_key + 1,
  327.     DBOP_index_list_anchor    = DBOP_grant_privileges + 1,
  328.     DBOP_index_list_element    = DBOP_index_list_anchor + 1,
  329.     DBOP_primary_key    = DBOP_index_list_element + 1,
  330.     DBOP_property_list_anchor    = DBOP_primary_key + 1,
  331.     DBOP_property_list_element    = DBOP_property_list_anchor + 1,
  332.     DBOP_referenced_table    = DBOP_property_list_element + 1,
  333.     DBOP_rename_object    = DBOP_referenced_table + 1,
  334.     DBOP_revoke_privileges    = DBOP_rename_object + 1,
  335.     DBOP_schema_authorization    = DBOP_revoke_privileges + 1,
  336.     DBOP_unique_key    = DBOP_schema_authorization + 1,
  337.     DBOP_scope_list_anchor    = DBOP_unique_key + 1,
  338.     DBOP_scope_list_element    = DBOP_scope_list_anchor + 1,
  339.     DBOP_content_table    = DBOP_scope_list_element + 1
  340.     };
  341. #ifdef DBINITCONSTANTS
  342. extern const OLEDBDECLSPEC GUID DBGUID_LIKE_SQL                        = {0xc8b521f6,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
  343. extern const OLEDBDECLSPEC GUID DBGUID_LIKE_DOS                        = {0xc8b521f7,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
  344. extern const OLEDBDECLSPEC GUID DBGUID_LIKE_OFS                        = {0xc8b521f8,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
  345. extern const OLEDBDECLSPEC GUID DBGUID_LIKE_MAPI                       = {0xc8b521f9,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
  346. #else // !DBINITCONSTANTS
  347. extern const GUID DBGUID_LIKE_SQL;
  348. extern const GUID DBGUID_LIKE_DOS;
  349. extern const GUID DBGUID_LIKE_OFS;
  350. extern const GUID DBGUID_LIKE_MAPI;
  351. #endif // DBINITCONSTANTS
  352.  
  353.  
  354. extern RPC_IF_HANDLE CommandTreeStructureDefinitions_v0_0_c_ifspec;
  355. extern RPC_IF_HANDLE CommandTreeStructureDefinitions_v0_0_s_ifspec;
  356. #endif /* __CommandTreeStructureDefinitions_INTERFACE_DEFINED__ */
  357.  
  358. #ifndef __ICommandTree_INTERFACE_DEFINED__
  359. #define __ICommandTree_INTERFACE_DEFINED__
  360.  
  361. /* interface ICommandTree */
  362. /* [unique][uuid][object][local] */ 
  363.  
  364. typedef DWORD DBCOMMANDREUSE;
  365.  
  366.  
  367. enum DBCOMMANDREUSEENUM
  368.     {    DBCOMMANDREUSE_NONE    = 0,
  369.     DBCOMMANDREUSE_PROPERTIES    = 0x1,
  370.     DBCOMMANDREUSE_PARAMETERS    = 0x2
  371.     };
  372. typedef DWORD DBVALUEKIND;
  373.  
  374.  
  375. enum DBVALUEKINDENUM
  376.     {    DBVALUEKIND_BYGUID    = 256,
  377.     DBVALUEKIND_COLDESC    = DBVALUEKIND_BYGUID + 1,
  378.     DBVALUEKIND_ID    = DBVALUEKIND_COLDESC + 1,
  379.     DBVALUEKIND_CONTENT    = DBVALUEKIND_ID + 1,
  380.     DBVALUEKIND_CONTENTVECTOR    = DBVALUEKIND_CONTENT + 1,
  381.     DBVALUEKIND_GROUPINFO    = DBVALUEKIND_CONTENTVECTOR + 1,
  382.     DBVALUEKIND_PARAMETER    = DBVALUEKIND_GROUPINFO + 1,
  383.     DBVALUEKIND_PROPERTY    = DBVALUEKIND_PARAMETER + 1,
  384.     DBVALUEKIND_SETFUNC    = DBVALUEKIND_PROPERTY + 1,
  385.     DBVALUEKIND_SORTINFO    = DBVALUEKIND_SETFUNC + 1,
  386.     DBVALUEKIND_TEXT    = DBVALUEKIND_SORTINFO + 1,
  387.     DBVALUEKIND_COMMAND    = DBVALUEKIND_TEXT + 1,
  388.     DBVALUEKIND_MONIKER    = DBVALUEKIND_COMMAND + 1,
  389.     DBVALUEKIND_ROWSET    = DBVALUEKIND_MONIKER + 1,
  390.     DBVALUEKIND_LIKE    = DBVALUEKIND_ROWSET + 1,
  391.     DBVALUEKIND_CONTENTPROXIMITY    = DBVALUEKIND_LIKE + 1,
  392.     DBVALUEKIND_CONTENTSCOPE    = DBVALUEKIND_CONTENTPROXIMITY + 1,
  393.     DBVALUEKIND_CONTENTTABLE    = DBVALUEKIND_CONTENTSCOPE + 1,
  394.     DBVALUEKIND_IDISPATCH    = 9,
  395.     DBVALUEKIND_IUNKNOWN    = 13,
  396.     DBVALUEKIND_EMPTY    = 0,
  397.     DBVALUEKIND_NULL    = 1,
  398.     DBVALUEKIND_I2    = 2,
  399.     DBVALUEKIND_I4    = 3,
  400.     DBVALUEKIND_R4    = 4,
  401.     DBVALUEKIND_R8    = 5,
  402.     DBVALUEKIND_CY    = 6,
  403.     DBVALUEKIND_DATE    = 7,
  404.     DBVALUEKIND_BSTR    = 8,
  405.     DBVALUEKIND_ERROR    = 10,
  406.     DBVALUEKIND_BOOL    = 11,
  407.     DBVALUEKIND_VARIANT    = 12,
  408.     DBVALUEKIND_VECTOR    = 0x1000,
  409.     DBVALUEKIND_ARRAY    = 0x2000,
  410.     DBVALUEKIND_BYREF    = 0x4000,
  411.     DBVALUEKIND_I1    = 16,
  412.     DBVALUEKIND_UI1    = 17,
  413.     DBVALUEKIND_UI2    = 18,
  414.     DBVALUEKIND_UI4    = DBVALUEKIND_UI2 + 1,
  415.     DBVALUEKIND_I8    = DBVALUEKIND_UI4 + 1,
  416.     DBVALUEKIND_UI8    = DBVALUEKIND_I8 + 1,
  417.     DBVALUEKIND_GUID    = 72,
  418.     DBVALUEKIND_BYTES    = 128,
  419.     DBVALUEKIND_STR    = 129,
  420.     DBVALUEKIND_WSTR    = 130,
  421.     DBVALUEKIND_NUMERIC    = 131,
  422.     DBVALUEKIND_DBDATE    = 133,
  423.     DBVALUEKIND_DBTIME    = 134,
  424.     DBVALUEKIND_DBTIMESTAMP    = 135,
  425.     DBVALUEKIND_PROBABILISTIC    = 136,
  426.     DBVALUEKIND_RELEVANTDOCUMENT    = 137
  427.     };
  428. typedef struct tagDBBYGUID
  429.     {
  430.     /* [size_is] */ BYTE __RPC_FAR *pbInfo;
  431.     DBLENGTH cbInfo;
  432.     GUID guid;
  433.     }    DBBYGUID;
  434.  
  435. #define GENERATE_METHOD_EXACT    ( 0 )
  436. #define GENERATE_METHOD_PREFIX   ( 1 )
  437. #define GENERATE_METHOD_INFLECT  ( 2 )
  438. typedef struct tagDBCONTENT
  439.     {
  440.     LPOLESTR pwszPhrase;
  441.     DWORD dwGenerateMethod;
  442.     LONG lWeight;
  443.     LCID lcid;
  444.     }    DBCONTENT;
  445.  
  446. #define SCOPE_FLAG_MASK      ( 0x000000ff )
  447. #define SCOPE_FLAG_INCLUDE   ( 0x00000001 )
  448. #define SCOPE_FLAG_DEEP      ( 0x00000002 )
  449. #define SCOPE_TYPE_MASK      ( 0xffffff00 )
  450. #define SCOPE_TYPE_WINPATH   ( 0x00000100 )
  451. #define SCOPE_TYPE_VPATH     ( 0x00000200 )
  452. typedef struct tagDBCONTENTSCOPE
  453.     {
  454.     DWORD dwFlags;
  455.     LPOLESTR __RPC_FAR *rgpwszTagName;
  456.     LPOLESTR pwszElementValue;
  457.     }    DBCONTENTSCOPE;
  458.  
  459. typedef struct tagDBCONTENTTABLE
  460.     {
  461.     LPOLESTR pwszMachine;
  462.     LPOLESTR pwszCatalog;
  463.     }    DBCONTENTTABLE;
  464.  
  465. #define PROPID_QUERY_RANKVECTOR  ( 0x2 )
  466. #define PROPID_QUERY_RANK        ( 0x3 )
  467. #define PROPID_QUERY_HITCOUNT    ( 0x4 )
  468. #define PROPID_QUERY_ALL         ( 0x6 )
  469. #define PROPID_STG_CONTENTS      ( 0x13 )
  470. #define VECTOR_RANK_MIN          ( 0 )
  471. #define VECTOR_RANK_MAX          ( 1 )
  472. #define VECTOR_RANK_INNER        ( 2 )
  473. #define VECTOR_RANK_DICE         ( 3 )
  474. #define VECTOR_RANK_JACCARD      ( 4 )
  475. typedef struct tagDBCONTENTVECTOR
  476.     {
  477.     LONG lWeight;
  478.     DWORD dwRankingMethod;
  479.     }    DBCONTENTVECTOR;
  480.  
  481. typedef struct tagDBGROUPINFO
  482.     {
  483.     LCID lcid;
  484.     }    DBGROUPINFO;
  485.  
  486. typedef struct tagDBPARAMETER
  487.     {
  488.     LPOLESTR pwszName;
  489.     ITypeInfo __RPC_FAR *pTypeInfo;
  490.     DB_NUMERIC __RPC_FAR *pNum;
  491.     DBLENGTH cbMaxLength;
  492.     DBPARAMFLAGS dwFlags;
  493.     DBTYPE wType;
  494.     }    DBPARAMETER;
  495.  
  496. #define DBSETFUNC_NONE       0x0
  497. #define DBSETFUNC_ALL        0x1
  498. #define DBSETFUNC_DISTINCT   0x2
  499. typedef struct tagDBSETFUNC
  500.     {
  501.     DWORD dwSetQuantifier;
  502.     }    DBSETFUNC;
  503.  
  504. typedef struct tagDBSORTINFO
  505.     {
  506.     BOOL fDesc;
  507.     LCID lcid;
  508.     }    DBSORTINFO;
  509.  
  510. typedef struct tagDBTEXT
  511.     {
  512.     LPOLESTR pwszText;
  513.     ULONG ulErrorLocator;
  514.     ULONG ulTokenLength;
  515.     GUID guidDialect;
  516.     }    DBTEXT;
  517.  
  518. typedef struct tagDBLIKE
  519.     {
  520.     LONG lWeight;
  521.     GUID guidDialect;
  522.     }    DBLIKE;
  523.  
  524. #define PROXIMITY_UNIT_WORD           ( 0 )
  525. #define PROXIMITY_UNIT_SENTENCE       ( 1 )
  526. #define PROXIMITY_UNIT_PARAGRAPH      ( 2 )
  527. #define PROXIMITY_UNIT_CHAPTER        ( 3 )
  528. typedef struct tagDBCONTENTPROXIMITY
  529.     {
  530.     DWORD dwProximityUnit;
  531.     ULONG ulProximityDistance;
  532.     LONG lWeight;
  533.     }    DBCONTENTPROXIMITY;
  534.  
  535. typedef struct tagDBPROBABILISTIC
  536.     {
  537.     LONG lWeight;
  538.     float flK1;
  539.     float flK2;
  540.     float flK3;
  541.     float flB;
  542.     }    DBPROBABILISTIC;
  543.  
  544. typedef struct tagDBRELEVANTDOCUMENT
  545.     {
  546.     LONG lWeight;
  547.     VARIANT vDocument;
  548.     }    DBRELEVANTDOCUMENT;
  549.  
  550. typedef struct tagDBCOMMANDTREE
  551.     {
  552.     DBCOMMANDOP op;
  553.     WORD wKind;
  554.     struct tagDBCOMMANDTREE __RPC_FAR *pctFirstChild;
  555.     struct tagDBCOMMANDTREE __RPC_FAR *pctNextSibling;
  556.     /* [switch_is][switch_type] */ union 
  557.         {
  558.         /* [case()] */ __int64 llValue;
  559.         /* [case()] */ unsigned __int64 ullValue;
  560.         /* [case()] */ BOOL fValue;
  561.         /* [case()] */ unsigned char uchValue;
  562.         /* [case()] */ signed char schValue;
  563.         /* [case()] */ unsigned short usValue;
  564.         /* [case()] */ short sValue;
  565.         /* [case()] */ LPOLESTR pwszValue;
  566.         /* [case()] */ LONG lValue;
  567.         /* [case()] */ ULONG ulValue;
  568.         /* [case()] */ float flValue;
  569.         /* [case()] */ double dblValue;
  570.         /* [case()] */ CY cyValue;
  571.         /* [case()] */ DATE dateValue;
  572.         /* [case()] */ DBDATE dbdateValue;
  573.         /* [case()] */ DBTIME dbtimeValue;
  574.         /* [case()] */ SCODE scodeValue;
  575.         /* [case()] */ BSTR __RPC_FAR *pbstrValue;
  576.         /* [case()] */ ICommand __RPC_FAR *pCommand;
  577.         /* [case()] */ IDispatch __RPC_FAR *pDispatch;
  578.         /* [case()] */ IMoniker __RPC_FAR *pMoniker;
  579.         /* [case()] */ IRowset __RPC_FAR *pRowset;
  580.         /* [case()] */ IUnknown __RPC_FAR *pUnknown;
  581.         /* [case()] */ DBBYGUID __RPC_FAR *pdbbygdValue;
  582.         /* [case()] */ DBCOLUMNDESC __RPC_FAR *pcoldescValue;
  583.         /* [case()] */ DBID __RPC_FAR *pdbidValue;
  584.         /* [case()] */ DBLIKE __RPC_FAR *pdblikeValue;
  585.         /* [case()] */ DBCONTENT __RPC_FAR *pdbcntntValue;
  586.         /* [case()] */ DBCONTENTSCOPE __RPC_FAR *pdbcntntscpValue;
  587.         /* [case()] */ DBCONTENTTABLE __RPC_FAR *pdbcntnttblValue;
  588.         /* [case()] */ DBCONTENTVECTOR __RPC_FAR *pdbcntntvcValue;
  589.         /* [case()] */ DBCONTENTPROXIMITY __RPC_FAR *pdbcntntproxValue;
  590.         /* [case()] */ DBGROUPINFO __RPC_FAR *pdbgrpinfValue;
  591.         /* [case()] */ DBPARAMETER __RPC_FAR *pdbparamValue;
  592.         /* [case()] */ DBPROPSET __RPC_FAR *pdbpropValue;
  593.         /* [case()] */ DBSETFUNC __RPC_FAR *pdbstfncValue;
  594.         /* [case()] */ DBSORTINFO __RPC_FAR *pdbsrtinfValue;
  595.         /* [case()] */ DBTEXT __RPC_FAR *pdbtxtValue;
  596.         /* [case()] */ DBVECTOR __RPC_FAR *pdbvectorValue;
  597.         /* [case()] */ SAFEARRAY __RPC_FAR *parrayValue;
  598.         /* [case()] */ VARIANT __RPC_FAR *pvarValue;
  599.         /* [case()] */ GUID __RPC_FAR *pGuid;
  600.         /* [case()] */ BYTE __RPC_FAR *pbValue;
  601.         /* [case()] */ char __RPC_FAR *pzValue;
  602.         /* [case()] */ DB_NUMERIC __RPC_FAR *pdbnValue;
  603.         /* [case()] */ DBTIMESTAMP __RPC_FAR *pdbtsValue;
  604.         /* [case()] */ void __RPC_FAR *pvValue;
  605.         /* [case()] */ DBPROBABILISTIC __RPC_FAR *pdbprobValue;
  606.         /* [case()] */ DBRELEVANTDOCUMENT __RPC_FAR *pdbreldocValue;
  607.         }    value;
  608.     HRESULT hrError;
  609.     }    DBCOMMANDTREE;
  610.  
  611.  
  612. EXTERN_C const IID IID_ICommandTree;
  613.  
  614. #if defined(__cplusplus) && !defined(CINTERFACE)
  615.     
  616.     MIDL_INTERFACE("0c733a87-2a1c-11ce-ade5-00aa0044773d")
  617.     ICommandTree : public IUnknown
  618.     {
  619.     public:
  620.         virtual HRESULT STDMETHODCALLTYPE FindErrorNodes( 
  621.             /* [in] */ const DBCOMMANDTREE __RPC_FAR *pRoot,
  622.             /* [out] */ ULONG __RPC_FAR *pcErrorNodes,
  623.             /* [out] */ DBCOMMANDTREE __RPC_FAR *__RPC_FAR *__RPC_FAR *prgErrorNodes) = 0;
  624.         
  625.         virtual HRESULT STDMETHODCALLTYPE FreeCommandTree( 
  626.             /* [in] */ DBCOMMANDTREE __RPC_FAR *__RPC_FAR *ppRoot) = 0;
  627.         
  628.         virtual HRESULT STDMETHODCALLTYPE GetCommandTree( 
  629.             /* [out] */ DBCOMMANDTREE __RPC_FAR *__RPC_FAR *ppRoot) = 0;
  630.         
  631.         virtual HRESULT STDMETHODCALLTYPE SetCommandTree( 
  632.             /* [in] */ DBCOMMANDTREE __RPC_FAR *__RPC_FAR *ppRoot,
  633.             /* [in] */ DBCOMMANDREUSE dwCommandReuse,
  634.             /* [in] */ BOOL fCopy) = 0;
  635.         
  636.     };
  637.     
  638. #else     /* C style interface */
  639.  
  640.     typedef struct ICommandTreeVtbl
  641.     {
  642.         BEGIN_INTERFACE
  643.         
  644.         HRESULT ( STDMETHODCALLTYPE __RPC_FAR *QueryInterface )( 
  645.             ICommandTree __RPC_FAR * This,
  646.             /* [in] */ REFIID riid,
  647.             /* [iid_is][out] */ void __RPC_FAR *__RPC_FAR *ppvObject);
  648.         
  649.         ULONG ( STDMETHODCALLTYPE __RPC_FAR *AddRef )( 
  650.             ICommandTree __RPC_FAR * This);
  651.         
  652.         ULONG ( STDMETHODCALLTYPE __RPC_FAR *Release )( 
  653.             ICommandTree __RPC_FAR * This);
  654.         
  655.         HRESULT ( STDMETHODCALLTYPE __RPC_FAR *FindErrorNodes )( 
  656.             ICommandTree __RPC_FAR * This,
  657.             /* [in] */ const DBCOMMANDTREE __RPC_FAR *pRoot,
  658.             /* [out] */ ULONG __RPC_FAR *pcErrorNodes,
  659.             /* [out] */ DBCOMMANDTREE __RPC_FAR *__RPC_FAR *__RPC_FAR *prgErrorNodes);
  660.         
  661.         HRESULT ( STDMETHODCALLTYPE __RPC_FAR *FreeCommandTree )( 
  662.             ICommandTree __RPC_FAR * This,
  663.             /* [in] */ DBCOMMANDTREE __RPC_FAR *__RPC_FAR *ppRoot);
  664.         
  665.         HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetCommandTree )( 
  666.             ICommandTree __RPC_FAR * This,
  667.             /* [out] */ DBCOMMANDTREE __RPC_FAR *__RPC_FAR *ppRoot);
  668.         
  669.         HRESULT ( STDMETHODCALLTYPE __RPC_FAR *SetCommandTree )( 
  670.             ICommandTree __RPC_FAR * This,
  671.             /* [in] */ DBCOMMANDTREE __RPC_FAR *__RPC_FAR *ppRoot,
  672.             /* [in] */ DBCOMMANDREUSE dwCommandReuse,
  673.             /* [in] */ BOOL fCopy);
  674.         
  675.         END_INTERFACE
  676.     } ICommandTreeVtbl;
  677.  
  678.     interface ICommandTree
  679.     {
  680.         CONST_VTBL struct ICommandTreeVtbl __RPC_FAR *lpVtbl;
  681.     };
  682.  
  683.     
  684.  
  685. #ifdef COBJMACROS
  686.  
  687.  
  688. #define ICommandTree_QueryInterface(This,riid,ppvObject)    \
  689.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  690.  
  691. #define ICommandTree_AddRef(This)    \
  692.     (This)->lpVtbl -> AddRef(This)
  693.  
  694. #define ICommandTree_Release(This)    \
  695.     (This)->lpVtbl -> Release(This)
  696.  
  697.  
  698. #define ICommandTree_FindErrorNodes(This,pRoot,pcErrorNodes,prgErrorNodes)    \
  699.     (This)->lpVtbl -> FindErrorNodes(This,pRoot,pcErrorNodes,prgErrorNodes)
  700.  
  701. #define ICommandTree_FreeCommandTree(This,ppRoot)    \
  702.     (This)->lpVtbl -> FreeCommandTree(This,ppRoot)
  703.  
  704. #define ICommandTree_GetCommandTree(This,ppRoot)    \
  705.     (This)->lpVtbl -> GetCommandTree(This,ppRoot)
  706.  
  707. #define ICommandTree_SetCommandTree(This,ppRoot,dwCommandReuse,fCopy)    \
  708.     (This)->lpVtbl -> SetCommandTree(This,ppRoot,dwCommandReuse,fCopy)
  709.  
  710. #endif /* COBJMACROS */
  711.  
  712.  
  713. #endif     /* C style interface */
  714.  
  715.  
  716.  
  717. HRESULT STDMETHODCALLTYPE ICommandTree_FindErrorNodes_Proxy( 
  718.     ICommandTree __RPC_FAR * This,
  719.     /* [in] */ const DBCOMMANDTREE __RPC_FAR *pRoot,
  720.     /* [out] */ ULONG __RPC_FAR *pcErrorNodes,
  721.     /* [out] */ DBCOMMANDTREE __RPC_FAR *__RPC_FAR *__RPC_FAR *prgErrorNodes);
  722.  
  723.  
  724. void __RPC_STUB ICommandTree_FindErrorNodes_Stub(
  725.     IRpcStubBuffer *This,
  726.     IRpcChannelBuffer *_pRpcChannelBuffer,
  727.     PRPC_MESSAGE _pRpcMessage,
  728.     DWORD *_pdwStubPhase);
  729.  
  730.  
  731. HRESULT STDMETHODCALLTYPE ICommandTree_FreeCommandTree_Proxy( 
  732.     ICommandTree __RPC_FAR * This,
  733.     /* [in] */ DBCOMMANDTREE __RPC_FAR *__RPC_FAR *ppRoot);
  734.  
  735.  
  736. void __RPC_STUB ICommandTree_FreeCommandTree_Stub(
  737.     IRpcStubBuffer *This,
  738.     IRpcChannelBuffer *_pRpcChannelBuffer,
  739.     PRPC_MESSAGE _pRpcMessage,
  740.     DWORD *_pdwStubPhase);
  741.  
  742.  
  743. HRESULT STDMETHODCALLTYPE ICommandTree_GetCommandTree_Proxy( 
  744.     ICommandTree __RPC_FAR * This,
  745.     /* [out] */ DBCOMMANDTREE __RPC_FAR *__RPC_FAR *ppRoot);
  746.  
  747.  
  748. void __RPC_STUB ICommandTree_GetCommandTree_Stub(
  749.     IRpcStubBuffer *This,
  750.     IRpcChannelBuffer *_pRpcChannelBuffer,
  751.     PRPC_MESSAGE _pRpcMessage,
  752.     DWORD *_pdwStubPhase);
  753.  
  754.  
  755. HRESULT STDMETHODCALLTYPE ICommandTree_SetCommandTree_Proxy( 
  756.     ICommandTree __RPC_FAR * This,
  757.     /* [in] */ DBCOMMANDTREE __RPC_FAR *__RPC_FAR *ppRoot,
  758.     /* [in] */ DBCOMMANDREUSE dwCommandReuse,
  759.     /* [in] */ BOOL fCopy);
  760.  
  761.  
  762. void __RPC_STUB ICommandTree_SetCommandTree_Stub(
  763.     IRpcStubBuffer *This,
  764.     IRpcChannelBuffer *_pRpcChannelBuffer,
  765.     PRPC_MESSAGE _pRpcMessage,
  766.     DWORD *_pdwStubPhase);
  767.  
  768.  
  769.  
  770. #endif     /* __ICommandTree_INTERFACE_DEFINED__ */
  771.  
  772.  
  773. #ifndef __IQuery_INTERFACE_DEFINED__
  774. #define __IQuery_INTERFACE_DEFINED__
  775.  
  776. /* interface IQuery */
  777. /* [unique][uuid][object][local] */ 
  778.  
  779.  
  780. EXTERN_C const IID IID_IQuery;
  781.  
  782. #if defined(__cplusplus) && !defined(CINTERFACE)
  783.     
  784.     MIDL_INTERFACE("0c733a51-2a1c-11ce-ade5-00aa0044773d")
  785.     IQuery : public ICommandTree
  786.     {
  787.     public:
  788.         virtual HRESULT STDMETHODCALLTYPE AddPostProcessing( 
  789.             /* [in] */ DBCOMMANDTREE __RPC_FAR *__RPC_FAR *ppRoot,
  790.             /* [in] */ BOOL fCopy) = 0;
  791.         
  792.         virtual HRESULT STDMETHODCALLTYPE GetCardinalityEstimate( 
  793.             /* [out] */ DBORDINAL __RPC_FAR *pulCardinality) = 0;
  794.         
  795.     };
  796.     
  797. #else     /* C style interface */
  798.  
  799.     typedef struct IQueryVtbl
  800.     {
  801.         BEGIN_INTERFACE
  802.         
  803.         HRESULT ( STDMETHODCALLTYPE __RPC_FAR *QueryInterface )( 
  804.             IQuery __RPC_FAR * This,
  805.             /* [in] */ REFIID riid,
  806.             /* [iid_is][out] */ void __RPC_FAR *__RPC_FAR *ppvObject);
  807.         
  808.         ULONG ( STDMETHODCALLTYPE __RPC_FAR *AddRef )( 
  809.             IQuery __RPC_FAR * This);
  810.         
  811.         ULONG ( STDMETHODCALLTYPE __RPC_FAR *Release )( 
  812.             IQuery __RPC_FAR * This);
  813.         
  814.         HRESULT ( STDMETHODCALLTYPE __RPC_FAR *FindErrorNodes )( 
  815.             IQuery __RPC_FAR * This,
  816.             /* [in] */ const DBCOMMANDTREE __RPC_FAR *pRoot,
  817.             /* [out] */ ULONG __RPC_FAR *pcErrorNodes,
  818.             /* [out] */ DBCOMMANDTREE __RPC_FAR *__RPC_FAR *__RPC_FAR *prgErrorNodes);
  819.         
  820.         HRESULT ( STDMETHODCALLTYPE __RPC_FAR *FreeCommandTree )( 
  821.             IQuery __RPC_FAR * This,
  822.             /* [in] */ DBCOMMANDTREE __RPC_FAR *__RPC_FAR *ppRoot);
  823.         
  824.         HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetCommandTree )( 
  825.             IQuery __RPC_FAR * This,
  826.             /* [out] */ DBCOMMANDTREE __RPC_FAR *__RPC_FAR *ppRoot);
  827.         
  828.         HRESULT ( STDMETHODCALLTYPE __RPC_FAR *SetCommandTree )( 
  829.             IQuery __RPC_FAR * This,
  830.             /* [in] */ DBCOMMANDTREE __RPC_FAR *__RPC_FAR *ppRoot,
  831.             /* [in] */ DBCOMMANDREUSE dwCommandReuse,
  832.             /* [in] */ BOOL fCopy);
  833.         
  834.         HRESULT ( STDMETHODCALLTYPE __RPC_FAR *AddPostProcessing )( 
  835.             IQuery __RPC_FAR * This,
  836.             /* [in] */ DBCOMMANDTREE __RPC_FAR *__RPC_FAR *ppRoot,
  837.             /* [in] */ BOOL fCopy);
  838.         
  839.         HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetCardinalityEstimate )( 
  840.             IQuery __RPC_FAR * This,
  841.             /* [out] */ DBORDINAL __RPC_FAR *pulCardinality);
  842.         
  843.         END_INTERFACE
  844.     } IQueryVtbl;
  845.  
  846.     interface IQuery
  847.     {
  848.         CONST_VTBL struct IQueryVtbl __RPC_FAR *lpVtbl;
  849.     };
  850.  
  851.     
  852.  
  853. #ifdef COBJMACROS
  854.  
  855.  
  856. #define IQuery_QueryInterface(This,riid,ppvObject)    \
  857.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  858.  
  859. #define IQuery_AddRef(This)    \
  860.     (This)->lpVtbl -> AddRef(This)
  861.  
  862. #define IQuery_Release(This)    \
  863.     (This)->lpVtbl -> Release(This)
  864.  
  865.  
  866. #define IQuery_FindErrorNodes(This,pRoot,pcErrorNodes,prgErrorNodes)    \
  867.     (This)->lpVtbl -> FindErrorNodes(This,pRoot,pcErrorNodes,prgErrorNodes)
  868.  
  869. #define IQuery_FreeCommandTree(This,ppRoot)    \
  870.     (This)->lpVtbl -> FreeCommandTree(This,ppRoot)
  871.  
  872. #define IQuery_GetCommandTree(This,ppRoot)    \
  873.     (This)->lpVtbl -> GetCommandTree(This,ppRoot)
  874.  
  875. #define IQuery_SetCommandTree(This,ppRoot,dwCommandReuse,fCopy)    \
  876.     (This)->lpVtbl -> SetCommandTree(This,ppRoot,dwCommandReuse,fCopy)
  877.  
  878.  
  879. #define IQuery_AddPostProcessing(This,ppRoot,fCopy)    \
  880.     (This)->lpVtbl -> AddPostProcessing(This,ppRoot,fCopy)
  881.  
  882. #define IQuery_GetCardinalityEstimate(This,pulCardinality)    \
  883.     (This)->lpVtbl -> GetCardinalityEstimate(This,pulCardinality)
  884.  
  885. #endif /* COBJMACROS */
  886.  
  887.  
  888. #endif     /* C style interface */
  889.  
  890.  
  891.  
  892. HRESULT STDMETHODCALLTYPE IQuery_AddPostProcessing_Proxy( 
  893.     IQuery __RPC_FAR * This,
  894.     /* [in] */ DBCOMMANDTREE __RPC_FAR *__RPC_FAR *ppRoot,
  895.     /* [in] */ BOOL fCopy);
  896.  
  897.  
  898. void __RPC_STUB IQuery_AddPostProcessing_Stub(
  899.     IRpcStubBuffer *This,
  900.     IRpcChannelBuffer *_pRpcChannelBuffer,
  901.     PRPC_MESSAGE _pRpcMessage,
  902.     DWORD *_pdwStubPhase);
  903.  
  904.  
  905. HRESULT STDMETHODCALLTYPE IQuery_GetCardinalityEstimate_Proxy( 
  906.     IQuery __RPC_FAR * This,
  907.     /* [out] */ DBORDINAL __RPC_FAR *pulCardinality);
  908.  
  909.  
  910. void __RPC_STUB IQuery_GetCardinalityEstimate_Stub(
  911.     IRpcStubBuffer *This,
  912.     IRpcChannelBuffer *_pRpcChannelBuffer,
  913.     PRPC_MESSAGE _pRpcMessage,
  914.     DWORD *_pdwStubPhase);
  915.  
  916.  
  917.  
  918. #endif     /* __IQuery_INTERFACE_DEFINED__ */
  919.  
  920.  
  921. /* interface __MIDL_itf_cmdtree_0347 */
  922. /* [local] */ 
  923.  
  924. #include <poppack.h>     // restore original structure packing
  925.  
  926.  
  927. extern RPC_IF_HANDLE __MIDL_itf_cmdtree_0347_v0_0_c_ifspec;
  928. extern RPC_IF_HANDLE __MIDL_itf_cmdtree_0347_v0_0_s_ifspec;
  929.  
  930. /* Additional Prototypes for ALL interfaces */
  931.  
  932. /* end of Additional Prototypes */
  933.  
  934. #ifdef __cplusplus
  935. }
  936. #endif
  937.  
  938. #endif
  939.  
  940.  
  941. #pragma option pop /*P_O_Pop*/
  942.