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 __oledb_h__
     23 #define __oledb_h__
     24 
     25 #ifndef __IAccessor_FWD_DEFINED__
     26 #define __IAccessor_FWD_DEFINED__
     27 typedef struct IAccessor IAccessor;
     28 #endif
     29 
     30 #ifndef __IRowset_FWD_DEFINED__
     31 #define __IRowset_FWD_DEFINED__
     32 typedef struct IRowset IRowset;
     33 #endif
     34 
     35 #ifndef __IRowsetInfo_FWD_DEFINED__
     36 #define __IRowsetInfo_FWD_DEFINED__
     37 typedef struct IRowsetInfo IRowsetInfo;
     38 #endif
     39 
     40 #ifndef __IRowsetLocate_FWD_DEFINED__
     41 #define __IRowsetLocate_FWD_DEFINED__
     42 typedef struct IRowsetLocate IRowsetLocate;
     43 #endif
     44 
     45 #ifndef __IRowsetResynch_FWD_DEFINED__
     46 #define __IRowsetResynch_FWD_DEFINED__
     47 typedef struct IRowsetResynch IRowsetResynch;
     48 #endif
     49 
     50 #ifndef __IRowsetScroll_FWD_DEFINED__
     51 #define __IRowsetScroll_FWD_DEFINED__
     52 typedef struct IRowsetScroll IRowsetScroll;
     53 #endif
     54 
     55 #ifndef __IChapteredRowset_FWD_DEFINED__
     56 #define __IChapteredRowset_FWD_DEFINED__
     57 typedef struct IChapteredRowset IChapteredRowset;
     58 #endif
     59 
     60 #ifndef __IRowsetFind_FWD_DEFINED__
     61 #define __IRowsetFind_FWD_DEFINED__
     62 typedef struct IRowsetFind IRowsetFind;
     63 #endif
     64 
     65 #ifndef __IRowPosition_FWD_DEFINED__
     66 #define __IRowPosition_FWD_DEFINED__
     67 typedef struct IRowPosition IRowPosition;
     68 #endif
     69 
     70 #ifndef __IRowPositionChange_FWD_DEFINED__
     71 #define __IRowPositionChange_FWD_DEFINED__
     72 typedef struct IRowPositionChange IRowPositionChange;
     73 #endif
     74 
     75 #ifndef __IViewRowset_FWD_DEFINED__
     76 #define __IViewRowset_FWD_DEFINED__
     77 typedef struct IViewRowset IViewRowset;
     78 #endif
     79 
     80 #ifndef __IViewChapter_FWD_DEFINED__
     81 #define __IViewChapter_FWD_DEFINED__
     82 typedef struct IViewChapter IViewChapter;
     83 #endif
     84 
     85 #ifndef __IViewSort_FWD_DEFINED__
     86 #define __IViewSort_FWD_DEFINED__
     87 typedef struct IViewSort IViewSort;
     88 #endif
     89 
     90 #ifndef __IViewFilter_FWD_DEFINED__
     91 #define __IViewFilter_FWD_DEFINED__
     92 typedef struct IViewFilter IViewFilter;
     93 #endif
     94 
     95 #ifndef __IRowsetView_FWD_DEFINED__
     96 #define __IRowsetView_FWD_DEFINED__
     97 typedef struct IRowsetView IRowsetView;
     98 #endif
     99 
    100 #ifndef __IRowsetExactScroll_FWD_DEFINED__
    101 #define __IRowsetExactScroll_FWD_DEFINED__
    102 typedef struct IRowsetExactScroll IRowsetExactScroll;
    103 #endif
    104 
    105 #ifndef __IRowsetChange_FWD_DEFINED__
    106 #define __IRowsetChange_FWD_DEFINED__
    107 typedef struct IRowsetChange IRowsetChange;
    108 #endif
    109 
    110 #ifndef __IRowsetUpdate_FWD_DEFINED__
    111 #define __IRowsetUpdate_FWD_DEFINED__
    112 typedef struct IRowsetUpdate IRowsetUpdate;
    113 #endif
    114 
    115 #ifndef __IRowsetIdentity_FWD_DEFINED__
    116 #define __IRowsetIdentity_FWD_DEFINED__
    117 typedef struct IRowsetIdentity IRowsetIdentity;
    118 #endif
    119 
    120 #ifndef __IRowsetNotify_FWD_DEFINED__
    121 #define __IRowsetNotify_FWD_DEFINED__
    122 typedef struct IRowsetNotify IRowsetNotify;
    123 #endif
    124 
    125 #ifndef __IRowsetIndex_FWD_DEFINED__
    126 #define __IRowsetIndex_FWD_DEFINED__
    127 typedef struct IRowsetIndex IRowsetIndex;
    128 #endif
    129 
    130 #ifndef __ICommand_FWD_DEFINED__
    131 #define __ICommand_FWD_DEFINED__
    132 typedef struct ICommand ICommand;
    133 #endif
    134 
    135 #ifndef __IMultipleResults_FWD_DEFINED__
    136 #define __IMultipleResults_FWD_DEFINED__
    137 typedef struct IMultipleResults IMultipleResults;
    138 #endif
    139 
    140 #ifndef __IConvertType_FWD_DEFINED__
    141 #define __IConvertType_FWD_DEFINED__
    142 typedef struct IConvertType IConvertType;
    143 #endif
    144 
    145 #ifndef __ICommandPrepare_FWD_DEFINED__
    146 #define __ICommandPrepare_FWD_DEFINED__
    147 typedef struct ICommandPrepare ICommandPrepare;
    148 #endif
    149 
    150 #ifndef __ICommandProperties_FWD_DEFINED__
    151 #define __ICommandProperties_FWD_DEFINED__
    152 typedef struct ICommandProperties ICommandProperties;
    153 #endif
    154 
    155 #ifndef __ICommandText_FWD_DEFINED__
    156 #define __ICommandText_FWD_DEFINED__
    157 typedef struct ICommandText ICommandText;
    158 #endif
    159 
    160 #ifndef __ICommandWithParameters_FWD_DEFINED__
    161 #define __ICommandWithParameters_FWD_DEFINED__
    162 typedef struct ICommandWithParameters ICommandWithParameters;
    163 #endif
    164 
    165 #ifndef __IColumnsRowset_FWD_DEFINED__
    166 #define __IColumnsRowset_FWD_DEFINED__
    167 typedef struct IColumnsRowset IColumnsRowset;
    168 #endif
    169 
    170 #ifndef __IColumnsInfo_FWD_DEFINED__
    171 #define __IColumnsInfo_FWD_DEFINED__
    172 typedef struct IColumnsInfo IColumnsInfo;
    173 #endif
    174 
    175 #ifndef __IDBCreateCommand_FWD_DEFINED__
    176 #define __IDBCreateCommand_FWD_DEFINED__
    177 typedef struct IDBCreateCommand IDBCreateCommand;
    178 #endif
    179 
    180 #ifndef __IDBCreateSession_FWD_DEFINED__
    181 #define __IDBCreateSession_FWD_DEFINED__
    182 typedef struct IDBCreateSession IDBCreateSession;
    183 #endif
    184 
    185 #ifndef __ISourcesRowset_FWD_DEFINED__
    186 #define __ISourcesRowset_FWD_DEFINED__
    187 typedef struct ISourcesRowset ISourcesRowset;
    188 #endif
    189 
    190 #ifndef __IDBProperties_FWD_DEFINED__
    191 #define __IDBProperties_FWD_DEFINED__
    192 typedef struct IDBProperties IDBProperties;
    193 #endif
    194 
    195 #ifndef __IDBInitialize_FWD_DEFINED__
    196 #define __IDBInitialize_FWD_DEFINED__
    197 typedef struct IDBInitialize IDBInitialize;
    198 #endif
    199 
    200 #ifndef __IDBInfo_FWD_DEFINED__
    201 #define __IDBInfo_FWD_DEFINED__
    202 typedef struct IDBInfo IDBInfo;
    203 #endif
    204 
    205 #ifndef __IDBDataSourceAdmin_FWD_DEFINED__
    206 #define __IDBDataSourceAdmin_FWD_DEFINED__
    207 typedef struct IDBDataSourceAdmin IDBDataSourceAdmin;
    208 #endif
    209 
    210 #ifndef __IDBAsynchNotify_FWD_DEFINED__
    211 #define __IDBAsynchNotify_FWD_DEFINED__
    212 typedef struct IDBAsynchNotify IDBAsynchNotify;
    213 #endif
    214 
    215 #ifndef __IDBAsynchStatus_FWD_DEFINED__
    216 #define __IDBAsynchStatus_FWD_DEFINED__
    217 typedef struct IDBAsynchStatus IDBAsynchStatus;
    218 #endif
    219 
    220 #ifndef __ISessionProperties_FWD_DEFINED__
    221 #define __ISessionProperties_FWD_DEFINED__
    222 typedef struct ISessionProperties ISessionProperties;
    223 #endif
    224 
    225 #ifndef __IIndexDefinition_FWD_DEFINED__
    226 #define __IIndexDefinition_FWD_DEFINED__
    227 typedef struct IIndexDefinition IIndexDefinition;
    228 #endif
    229 
    230 #ifndef __ITableDefinition_FWD_DEFINED__
    231 #define __ITableDefinition_FWD_DEFINED__
    232 typedef struct ITableDefinition ITableDefinition;
    233 #endif
    234 
    235 #ifndef __IOpenRowset_FWD_DEFINED__
    236 #define __IOpenRowset_FWD_DEFINED__
    237 typedef struct IOpenRowset IOpenRowset;
    238 #endif
    239 
    240 #ifndef __IDBSchemaRowset_FWD_DEFINED__
    241 #define __IDBSchemaRowset_FWD_DEFINED__
    242 typedef struct IDBSchemaRowset IDBSchemaRowset;
    243 #endif
    244 
    245 #ifndef __IMDDataset_FWD_DEFINED__
    246 #define __IMDDataset_FWD_DEFINED__
    247 typedef struct IMDDataset IMDDataset;
    248 #endif
    249 
    250 #ifndef __IMDFind_FWD_DEFINED__
    251 #define __IMDFind_FWD_DEFINED__
    252 typedef struct IMDFind IMDFind;
    253 #endif
    254 
    255 #ifndef __IMDRangeRowset_FWD_DEFINED__
    256 #define __IMDRangeRowset_FWD_DEFINED__
    257 typedef struct IMDRangeRowset IMDRangeRowset;
    258 #endif
    259 
    260 #ifndef __IAlterTable_FWD_DEFINED__
    261 #define __IAlterTable_FWD_DEFINED__
    262 typedef struct IAlterTable IAlterTable;
    263 #endif
    264 
    265 #ifndef __IAlterIndex_FWD_DEFINED__
    266 #define __IAlterIndex_FWD_DEFINED__
    267 typedef struct IAlterIndex IAlterIndex;
    268 #endif
    269 
    270 #ifndef __IRowsetChapterMember_FWD_DEFINED__
    271 #define __IRowsetChapterMember_FWD_DEFINED__
    272 typedef struct IRowsetChapterMember IRowsetChapterMember;
    273 #endif
    274 
    275 #ifndef __ICommandPersist_FWD_DEFINED__
    276 #define __ICommandPersist_FWD_DEFINED__
    277 typedef struct ICommandPersist ICommandPersist;
    278 #endif
    279 
    280 #ifndef __IRowsetRefresh_FWD_DEFINED__
    281 #define __IRowsetRefresh_FWD_DEFINED__
    282 typedef struct IRowsetRefresh IRowsetRefresh;
    283 #endif
    284 
    285 #ifndef __IParentRowset_FWD_DEFINED__
    286 #define __IParentRowset_FWD_DEFINED__
    287 typedef struct IParentRowset IParentRowset;
    288 #endif
    289 
    290 #ifndef __IErrorRecords_FWD_DEFINED__
    291 #define __IErrorRecords_FWD_DEFINED__
    292 typedef struct IErrorRecords IErrorRecords;
    293 #endif
    294 
    295 #ifndef __IErrorLookup_FWD_DEFINED__
    296 #define __IErrorLookup_FWD_DEFINED__
    297 typedef struct IErrorLookup IErrorLookup;
    298 #endif
    299 
    300 #ifndef __ISQLErrorInfo_FWD_DEFINED__
    301 #define __ISQLErrorInfo_FWD_DEFINED__
    302 typedef struct ISQLErrorInfo ISQLErrorInfo;
    303 #endif
    304 
    305 #ifndef __IGetDataSource_FWD_DEFINED__
    306 #define __IGetDataSource_FWD_DEFINED__
    307 typedef struct IGetDataSource IGetDataSource;
    308 #endif
    309 
    310 #ifndef __ITransactionLocal_FWD_DEFINED__
    311 #define __ITransactionLocal_FWD_DEFINED__
    312 typedef struct ITransactionLocal ITransactionLocal;
    313 #endif
    314 
    315 #ifndef __ITransactionJoin_FWD_DEFINED__
    316 #define __ITransactionJoin_FWD_DEFINED__
    317 typedef struct ITransactionJoin ITransactionJoin;
    318 #endif
    319 
    320 #ifndef __ITransactionObject_FWD_DEFINED__
    321 #define __ITransactionObject_FWD_DEFINED__
    322 typedef struct ITransactionObject ITransactionObject;
    323 #endif
    324 
    325 #ifndef __ITrusteeAdmin_FWD_DEFINED__
    326 #define __ITrusteeAdmin_FWD_DEFINED__
    327 typedef struct ITrusteeAdmin ITrusteeAdmin;
    328 #endif
    329 
    330 #ifndef __ITrusteeGroupAdmin_FWD_DEFINED__
    331 #define __ITrusteeGroupAdmin_FWD_DEFINED__
    332 typedef struct ITrusteeGroupAdmin ITrusteeGroupAdmin;
    333 #endif
    334 
    335 #ifndef __IObjectAccessControl_FWD_DEFINED__
    336 #define __IObjectAccessControl_FWD_DEFINED__
    337 typedef struct IObjectAccessControl IObjectAccessControl;
    338 #endif
    339 
    340 #ifndef __ISecurityInfo_FWD_DEFINED__
    341 #define __ISecurityInfo_FWD_DEFINED__
    342 typedef struct ISecurityInfo ISecurityInfo;
    343 #endif
    344 
    345 #ifndef __ITableCreation_FWD_DEFINED__
    346 #define __ITableCreation_FWD_DEFINED__
    347 typedef struct ITableCreation ITableCreation;
    348 #endif
    349 
    350 #ifndef __ITableDefinitionWithConstraints_FWD_DEFINED__
    351 #define __ITableDefinitionWithConstraints_FWD_DEFINED__
    352 typedef struct ITableDefinitionWithConstraints ITableDefinitionWithConstraints;
    353 #endif
    354 
    355 #ifndef __IRow_FWD_DEFINED__
    356 #define __IRow_FWD_DEFINED__
    357 typedef struct IRow IRow;
    358 #endif
    359 
    360 #ifndef __IRowChange_FWD_DEFINED__
    361 #define __IRowChange_FWD_DEFINED__
    362 typedef struct IRowChange IRowChange;
    363 #endif
    364 
    365 #ifndef __IRowSchemaChange_FWD_DEFINED__
    366 #define __IRowSchemaChange_FWD_DEFINED__
    367 typedef struct IRowSchemaChange IRowSchemaChange;
    368 #endif
    369 
    370 #ifndef __IGetRow_FWD_DEFINED__
    371 #define __IGetRow_FWD_DEFINED__
    372 typedef struct IGetRow IGetRow;
    373 #endif
    374 
    375 #ifndef __IBindResource_FWD_DEFINED__
    376 #define __IBindResource_FWD_DEFINED__
    377 typedef struct IBindResource IBindResource;
    378 #endif
    379 
    380 #ifndef __IScopedOperations_FWD_DEFINED__
    381 #define __IScopedOperations_FWD_DEFINED__
    382 typedef struct IScopedOperations IScopedOperations;
    383 #endif
    384 
    385 #ifndef __ICreateRow_FWD_DEFINED__
    386 #define __ICreateRow_FWD_DEFINED__
    387 typedef struct ICreateRow ICreateRow;
    388 #endif
    389 
    390 #ifndef __IDBBinderProperties_FWD_DEFINED__
    391 #define __IDBBinderProperties_FWD_DEFINED__
    392 typedef struct IDBBinderProperties IDBBinderProperties;
    393 #endif
    394 
    395 #ifndef __IColumnsInfo2_FWD_DEFINED__
    396 #define __IColumnsInfo2_FWD_DEFINED__
    397 typedef struct IColumnsInfo2 IColumnsInfo2;
    398 #endif
    399 
    400 #ifndef __IRegisterProvider_FWD_DEFINED__
    401 #define __IRegisterProvider_FWD_DEFINED__
    402 typedef struct IRegisterProvider IRegisterProvider;
    403 #endif
    404 
    405 #ifndef __IGetSession_FWD_DEFINED__
    406 #define __IGetSession_FWD_DEFINED__
    407 typedef struct IGetSession IGetSession;
    408 #endif
    409 
    410 #ifndef __IGetSourceRow_FWD_DEFINED__
    411 #define __IGetSourceRow_FWD_DEFINED__
    412 typedef struct IGetSourceRow IGetSourceRow;
    413 #endif
    414 
    415 #ifndef __IRowsetCurrentIndex_FWD_DEFINED__
    416 #define __IRowsetCurrentIndex_FWD_DEFINED__
    417 typedef struct IRowsetCurrentIndex IRowsetCurrentIndex;
    418 #endif
    419 
    420 #ifndef __ICommandStream_FWD_DEFINED__
    421 #define __ICommandStream_FWD_DEFINED__
    422 typedef struct ICommandStream ICommandStream;
    423 #endif
    424 
    425 #ifndef __IRowsetBookmark_FWD_DEFINED__
    426 #define __IRowsetBookmark_FWD_DEFINED__
    427 typedef struct IRowsetBookmark IRowsetBookmark;
    428 #endif
    429 
    430 #include "wtypes.h"
    431 #include "oaidl.h"
    432 #include "ocidl.h"
    433 #include "propidl.h"
    434 #include "transact.h"
    435 
    436 #ifdef __cplusplus
    437 extern "C" {
    438 #endif
    439 
    440 #ifndef __MIDL_user_allocate_free_DEFINED__
    441 #define __MIDL_user_allocate_free_DEFINED__
    442   void *__RPC_API MIDL_user_allocate(size_t);
    443   void __RPC_API MIDL_user_free(void *);
    444 #endif
    445 
    446 #ifdef _WIN64
    447 #include <pshpack8.h>
    448 #else
    449 #include <pshpack2.h>
    450 #endif
    451 
    452 #ifndef OLEDBVER
    453 #define OLEDBVER 0x0270
    454 #endif
    455 
    456 #ifdef _WIN64
    457   typedef ULONGLONG DBLENGTH;
    458   typedef LONGLONG DBROWOFFSET;
    459   typedef LONGLONG DBROWCOUNT;
    460   typedef ULONGLONG DBCOUNTITEM;
    461   typedef ULONGLONG DBORDINAL;
    462   typedef LONGLONG DB_LORDINAL;
    463   typedef ULONGLONG DBBKMARK;
    464   typedef ULONGLONG DBBYTEOFFSET;
    465   typedef ULONG DBREFCOUNT;
    466   typedef ULONGLONG DB_UPARAMS;
    467   typedef LONGLONG DB_LPARAMS;
    468   typedef DWORDLONG DBHASHVALUE;
    469   typedef DWORDLONG DB_DWRESERVE;
    470   typedef LONGLONG DB_LRESERVE;
    471   typedef ULONGLONG DB_URESERVE;
    472 #else
    473   typedef ULONG DBLENGTH;
    474   typedef LONG DBROWOFFSET;
    475   typedef LONG DBROWCOUNT;
    476   typedef ULONG DBCOUNTITEM;
    477   typedef ULONG DBORDINAL;
    478   typedef LONG DB_LORDINAL;
    479   typedef ULONG DBBKMARK;
    480   typedef ULONG DBBYTEOFFSET;
    481   typedef ULONG DBREFCOUNT;
    482   typedef ULONG DB_UPARAMS;
    483   typedef LONG DB_LPARAMS;
    484   typedef DWORD DBHASHVALUE;
    485   typedef DWORD DB_DWRESERVE;
    486   typedef LONG DB_LRESERVE;
    487   typedef ULONG DB_URESERVE;
    488 #endif
    489 
    490   extern RPC_IF_HANDLE __MIDL_itf_oledb_0000_v0_0_c_ifspec;
    491   extern RPC_IF_HANDLE __MIDL_itf_oledb_0000_v0_0_s_ifspec;
    492 
    493 #ifndef __DBStructureDefinitions_INTERFACE_DEFINED__
    494 #define __DBStructureDefinitions_INTERFACE_DEFINED__
    495 #undef OLEDBDECLSPEC
    496 #define OLEDBDECLSPEC __declspec(selectany)
    497   typedef DWORD DBKIND;
    498 
    499   enum DBKINDENUM {
    500     DBKIND_GUID_NAME = 0,DBKIND_GUID_PROPID,DBKIND_NAME,DBKIND_PGUID_NAME,
    501     DBKIND_PGUID_PROPID,DBKIND_PROPID,DBKIND_GUID
    502   };
    503 
    504   typedef struct tagDBID {
    505     union {
    506       GUID guid;
    507       GUID *pguid;
    508     } uGuid;
    509     DBKIND eKind;
    510     union {
    511       LPOLESTR pwszName;
    512       ULONG ulPropid;
    513     } uName;
    514   } DBID;
    515 
    516   typedef struct tagDB_NUMERIC {
    517     BYTE precision;
    518     BYTE scale;
    519     BYTE sign;
    520     BYTE val[16 ];
    521   } DB_NUMERIC;
    522 
    523 #ifndef _ULONGLONG_
    524   typedef hyper LONGLONG;
    525   typedef MIDL_uhyper ULONGLONG;
    526   typedef LONGLONG *PLONGLONG;
    527   typedef ULONGLONG *PULONGLONG;
    528 #endif
    529 
    530 #ifndef DECIMAL_NEG
    531 #ifndef DECIMAL_SETZERO
    532   typedef struct tagDEC {
    533     USHORT wReserved;
    534     __C89_NAMELESS union {
    535       __C89_NAMELESS struct {
    536 	BYTE scale;
    537 	BYTE sign;
    538       };
    539       USHORT signscale;
    540     };
    541     ULONG Hi32;
    542     __C89_NAMELESS union {
    543       __C89_NAMELESS struct {
    544 	ULONG Lo32;
    545 	ULONG Mid32;
    546       };
    547       ULONGLONG Lo64;
    548     };
    549   } DECIMAL;
    550 
    551 #define DECIMAL_NEG ((BYTE)0x80)
    552 #define DECIMAL_SETZERO(dec) {(dec).Lo64 = 0; (dec).Hi32 = 0; (dec).signscale = 0;}
    553 #endif
    554 #endif
    555 
    556   typedef struct tagDBVECTOR {
    557     DBLENGTH size;
    558     void *ptr;
    559   } DBVECTOR;
    560 
    561   typedef struct tagDBDATE {
    562     SHORT year;
    563     USHORT month;
    564     USHORT day;
    565   } DBDATE;
    566 
    567   typedef struct tagDBTIME {
    568     USHORT hour;
    569     USHORT minute;
    570     USHORT second;
    571   } DBTIME;
    572 
    573   typedef struct tagDBTIMESTAMP {
    574     SHORT year;
    575     USHORT month;
    576     USHORT day;
    577     USHORT hour;
    578     USHORT minute;
    579     USHORT second;
    580     ULONG fraction;
    581   } DBTIMESTAMP;
    582 
    583 #if (OLEDBVER >= 0x0200)
    584 #if !defined(_WINBASE_) && !defined(_FILETIME_)
    585 #define _FILETIME_
    586   typedef struct _FILETIME {
    587     DWORD dwLowDateTime;
    588     DWORD dwHighDateTime;
    589   } FILETIME;
    590 #endif
    591   typedef signed char SBYTE;
    592 
    593   typedef struct tagDB_VARNUMERIC {
    594     BYTE precision;
    595     SBYTE scale;
    596     BYTE sign;
    597     BYTE val[1 ];
    598   } DB_VARNUMERIC;
    599 #endif
    600 
    601 #if (OLEDBVER >= 0x0210)
    602   typedef struct _SEC_OBJECT_ELEMENT {
    603     GUID guidObjectType;
    604     DBID ObjectID;
    605   } SEC_OBJECT_ELEMENT;
    606 
    607   typedef struct _SEC_OBJECT {
    608     DWORD cObjects;
    609     SEC_OBJECT_ELEMENT *prgObjects;
    610   } SEC_OBJECT;
    611 
    612   typedef struct tagDBIMPLICITSESSION {
    613     IUnknown *pUnkOuter;
    614     IID *piid;
    615     IUnknown *pSession;
    616   } DBIMPLICITSESSION;
    617 #endif
    618 
    619   typedef WORD DBTYPE;
    620 
    621   enum DBTYPEENUM {
    622     DBTYPE_EMPTY = 0,DBTYPE_NULL = 1,DBTYPE_I2 = 2,DBTYPE_I4 = 3,DBTYPE_R4 = 4,DBTYPE_R8 = 5,DBTYPE_CY = 6,DBTYPE_DATE = 7,
    623     DBTYPE_BSTR = 8,DBTYPE_IDISPATCH = 9,DBTYPE_ERROR = 10,DBTYPE_BOOL = 11,DBTYPE_VARIANT = 12,DBTYPE_IUNKNOWN = 13,DBTYPE_DECIMAL = 14,
    624     DBTYPE_UI1 = 17,DBTYPE_ARRAY = 0x2000,DBTYPE_BYREF = 0x4000,DBTYPE_I1 = 16,DBTYPE_UI2 = 18,DBTYPE_UI4 = 19,DBTYPE_I8 = 20,DBTYPE_UI8 = 21,
    625     DBTYPE_GUID = 72,DBTYPE_VECTOR = 0x1000,DBTYPE_RESERVED = 0x8000,DBTYPE_BYTES = 128,DBTYPE_STR = 129,DBTYPE_WSTR = 130,DBTYPE_NUMERIC = 131,
    626     DBTYPE_UDT = 132,DBTYPE_DBDATE = 133,DBTYPE_DBTIME = 134,DBTYPE_DBTIMESTAMP = 135
    627   };
    628 
    629 #ifdef _WIN64
    630 #define DBTYPEFOR_DBLENGTH DBTYPE_UI8
    631 #define DBTYPEFOR_DBROWCOUNT DBTYPE_I8
    632 #define DBTYPEFOR_DBORDINAL DBTYPE_UI8
    633 #else
    634 #define DBTYPEFOR_DBLENGTH DBTYPE_UI4
    635 #define DBTYPEFOR_DBROWCOUNT DBTYPE_I4
    636 #define DBTYPEFOR_DBORDINAL DBTYPE_UI4
    637 #endif
    638 
    639 #if (OLEDBVER >= 0x0150)
    640   enum DBTYPEENUM15 {
    641     DBTYPE_HCHAPTER = 136
    642   };
    643 #endif
    644 
    645 #if (OLEDBVER >= 0x0200)
    646   enum DBTYPEENUM20 {
    647     DBTYPE_FILETIME = 64,DBTYPE_PROPVARIANT = 138,DBTYPE_VARNUMERIC = 139
    648   };
    649 #endif
    650 
    651   typedef DWORD DBPART;
    652 
    653   enum DBPARTENUM {
    654     DBPART_INVALID = 0,DBPART_VALUE = 0x1,DBPART_LENGTH = 0x2,DBPART_STATUS = 0x4
    655   };
    656   typedef DWORD DBPARAMIO;
    657 
    658   enum DBPARAMIOENUM {
    659     DBPARAMIO_NOTPARAM = 0,DBPARAMIO_INPUT = 0x1,DBPARAMIO_OUTPUT = 0x2
    660   };
    661 
    662 #if (OLEDBVER >= 0x0150)
    663   typedef DWORD DBBINDFLAG;
    664 
    665   enum DBBINDFLAGENUM {
    666     DBBINDFLAG_HTML = 0x1
    667   };
    668 #endif
    669 
    670   typedef DWORD DBMEMOWNER;
    671 
    672   enum DBMEMOWNERENUM {
    673     DBMEMOWNER_CLIENTOWNED = 0,DBMEMOWNER_PROVIDEROWNED = 0x1
    674   };
    675 
    676   typedef struct tagDBOBJECT {
    677     DWORD dwFlags;
    678     IID iid;
    679   } DBOBJECT;
    680 
    681   typedef DWORD DBSTATUS;
    682 
    683   enum DBSTATUSENUM {
    684     DBSTATUS_S_OK = 0,DBSTATUS_E_BADACCESSOR = 1,DBSTATUS_E_CANTCONVERTVALUE = 2,DBSTATUS_S_ISNULL = 3,DBSTATUS_S_TRUNCATED = 4,
    685     DBSTATUS_E_SIGNMISMATCH = 5,DBSTATUS_E_DATAOVERFLOW = 6,DBSTATUS_E_CANTCREATE = 7,DBSTATUS_E_UNAVAILABLE = 8,DBSTATUS_E_PERMISSIONDENIED = 9,
    686     DBSTATUS_E_INTEGRITYVIOLATION = 10,DBSTATUS_E_SCHEMAVIOLATION = 11,DBSTATUS_E_BADSTATUS = 12,DBSTATUS_S_DEFAULT = 13
    687   };
    688 
    689 #if (OLEDBVER >= 0x0200)
    690   enum DBSTATUSENUM20 {
    691     MDSTATUS_S_CELLEMPTY = 14,DBSTATUS_S_IGNORE = 15
    692   };
    693 #endif
    694 
    695 #if (OLEDBVER >= 0x0210)
    696   enum DBSTATUSENUM21 {
    697     DBSTATUS_E_DOESNOTEXIST = 16,DBSTATUS_E_INVALIDURL = 17,DBSTATUS_E_RESOURCELOCKED = 18,DBSTATUS_E_RESOURCEEXISTS = 19,
    698     DBSTATUS_E_CANNOTCOMPLETE = 20,DBSTATUS_E_VOLUMENOTFOUND = 21,DBSTATUS_E_OUTOFSPACE = 22,DBSTATUS_S_CANNOTDELETESOURCE = 23,
    699     DBSTATUS_E_READONLY = 24,DBSTATUS_E_RESOURCEOUTOFSCOPE = 25,DBSTATUS_S_ALREADYEXISTS = 26
    700   };
    701   typedef DWORD DBBINDURLFLAG;
    702 
    703   enum DBBINDURLFLAGENUM {
    704     DBBINDURLFLAG_READ = 0x1,DBBINDURLFLAG_WRITE = 0x2,DBBINDURLFLAG_READWRITE = 0x3,DBBINDURLFLAG_SHARE_DENY_READ = 0x4,
    705     DBBINDURLFLAG_SHARE_DENY_WRITE = 0x8,DBBINDURLFLAG_SHARE_EXCLUSIVE = 0xc,DBBINDURLFLAG_SHARE_DENY_NONE = 0x10,
    706     DBBINDURLFLAG_ASYNCHRONOUS = 0x1000,DBBINDURLFLAG_COLLECTION = 0x2000,DBBINDURLFLAG_DELAYFETCHSTREAM = 0x4000,
    707     DBBINDURLFLAG_DELAYFETCHCOLUMNS = 0x8000,DBBINDURLFLAG_RECURSIVE = 0x400000,DBBINDURLFLAG_OUTPUT = 0x800000,
    708     DBBINDURLFLAG_WAITFORINIT = 0x1000000,DBBINDURLFLAG_OPENIFEXISTS = 0x2000000,DBBINDURLFLAG_OVERWRITE = 0x4000000,
    709     DBBINDURLFLAG_ISSTRUCTUREDDOCUMENT = 0x8000000
    710   };
    711   typedef DWORD DBBINDURLSTATUS;
    712 
    713   enum DBBINDURLSTATUSENUM {
    714     DBBINDURLSTATUS_S_OK = 0,DBBINDURLSTATUS_S_DENYNOTSUPPORTED = 0x1,DBBINDURLSTATUS_S_DENYTYPENOTSUPPORTED = 0x4,
    715     DBBINDURLSTATUS_S_REDIRECTED = 0x8
    716   };
    717 #endif
    718 
    719 #if (OLEDBVER >= 0x0250)
    720   enum DBSTATUSENUM25 {
    721     DBSTATUS_E_CANCELED = 27,DBSTATUS_E_NOTCOLLECTION = 28
    722   };
    723 #endif
    724 
    725   typedef struct tagDBBINDEXT {
    726     BYTE *pExtension;
    727     DBCOUNTITEM ulExtension;
    728   } DBBINDEXT;
    729 
    730   typedef struct tagDBBINDING {
    731     DBORDINAL iOrdinal;
    732     DBBYTEOFFSET obValue;
    733     DBBYTEOFFSET obLength;
    734     DBBYTEOFFSET obStatus;
    735     ITypeInfo *pTypeInfo;
    736     DBOBJECT *pObject;
    737     DBBINDEXT *pBindExt;
    738     DBPART dwPart;
    739     DBMEMOWNER dwMemOwner;
    740     DBPARAMIO eParamIO;
    741     DBLENGTH cbMaxLen;
    742     DWORD dwFlags;
    743     DBTYPE wType;
    744     BYTE bPrecision;
    745     BYTE bScale;
    746   } DBBINDING;
    747 
    748   typedef DWORD DBROWSTATUS;
    749 
    750   enum DBROWSTATUSENUM {
    751     DBROWSTATUS_S_OK = 0,DBROWSTATUS_S_MULTIPLECHANGES = 2,DBROWSTATUS_S_PENDINGCHANGES = 3,DBROWSTATUS_E_CANCELED = 4,DBROWSTATUS_E_CANTRELEASE = 6,
    752     DBROWSTATUS_E_CONCURRENCYVIOLATION = 7,DBROWSTATUS_E_DELETED = 8,DBROWSTATUS_E_PENDINGINSERT = 9,DBROWSTATUS_E_NEWLYINSERTED = 10,
    753     DBROWSTATUS_E_INTEGRITYVIOLATION = 11,DBROWSTATUS_E_INVALID = 12,DBROWSTATUS_E_MAXPENDCHANGESEXCEEDED = 13,DBROWSTATUS_E_OBJECTOPEN = 14,
    754     DBROWSTATUS_E_OUTOFMEMORY = 15,DBROWSTATUS_E_PERMISSIONDENIED = 16,DBROWSTATUS_E_LIMITREACHED = 17,DBROWSTATUS_E_SCHEMAVIOLATION = 18,
    755     DBROWSTATUS_E_FAIL = 19
    756   };
    757 
    758 #if (OLEDBVER >= 0x0200)
    759   enum DBROWSTATUSENUM20 {
    760     DBROWSTATUS_S_NOCHANGE = 20
    761   };
    762 #endif
    763 
    764 #if (OLEDBVER >= 0x0260)
    765   enum DBSTATUSENUM26 {
    766     DBSTATUS_S_ROWSETCOLUMN = 29
    767   };
    768 #endif
    769 
    770   typedef ULONG_PTR HACCESSOR;
    771 
    772 #define DB_NULL_HACCESSOR 0x00
    773 #define DB_INVALID_HACCESSOR 0x00
    774   typedef ULONG_PTR HROW;
    775 
    776 #define DB_NULL_HROW 0x00
    777   typedef ULONG_PTR HWATCHREGION;
    778 
    779 #define DBWATCHREGION_NULL NULL
    780   typedef ULONG_PTR HCHAPTER;
    781 
    782 #define DB_NULL_HCHAPTER 0x00
    783 #define DB_INVALID_HCHAPTER 0x00
    784   typedef struct tagDBFAILUREINFO {
    785     HROW hRow;
    786     DBORDINAL iColumn;
    787     HRESULT failure;
    788   } DBFAILUREINFO;
    789 
    790   typedef DWORD DBCOLUMNFLAGS;
    791 
    792   enum DBCOLUMNFLAGSENUM {
    793     DBCOLUMNFLAGS_ISBOOKMARK = 0x1,DBCOLUMNFLAGS_MAYDEFER = 0x2,DBCOLUMNFLAGS_WRITE = 0x4,DBCOLUMNFLAGS_WRITEUNKNOWN = 0x8,
    794     DBCOLUMNFLAGS_ISFIXEDLENGTH = 0x10,DBCOLUMNFLAGS_ISNULLABLE = 0x20,DBCOLUMNFLAGS_MAYBENULL = 0x40,DBCOLUMNFLAGS_ISLONG = 0x80,
    795     DBCOLUMNFLAGS_ISROWID = 0x100,DBCOLUMNFLAGS_ISROWVER = 0x200,DBCOLUMNFLAGS_CACHEDEFERRED = 0x1000
    796   };
    797 
    798 #if (OLEDBVER >= 0x0200)
    799   enum DBCOLUMNFLAGSENUM20 {
    800     DBCOLUMNFLAGS_SCALEISNEGATIVE = 0x4000,DBCOLUMNFLAGS_RESERVED = 0x8000
    801   };
    802 #endif
    803 
    804 #ifdef deprecated
    805 #if (OLEDBVER >= 0x0200)
    806   enum DBCOLUMNFLAGSDEPRECATED {
    807     DBCOLUMNFLAGS_KEYCOLUMN = 0x8000
    808   };
    809 #endif
    810 #endif
    811 
    812 #if (OLEDBVER >= 0x0150)
    813   enum DBCOLUMNFLAGS15ENUM {
    814     DBCOLUMNFLAGS_ISCHAPTER = 0x2000
    815   };
    816 #endif
    817 
    818 #if (OLEDBVER >= 0x0210)
    819   enum DBCOLUMNFLAGSENUM21 {
    820     DBCOLUMNFLAGS_ISROWURL = 0x10000,DBCOLUMNFLAGS_ISDEFAULTSTREAM = 0x20000,DBCOLUMNFLAGS_ISCOLLECTION = 0x40000
    821   };
    822 #endif
    823 
    824 #if (OLEDBVER >= 0x0260)
    825   enum DBCOLUMNFLAGSENUM26 {
    826     DBCOLUMNFLAGS_ISSTREAM = 0x80000,DBCOLUMNFLAGS_ISROWSET = 0x100000,DBCOLUMNFLAGS_ISROW = 0x200000,DBCOLUMNFLAGS_ROWSPECIFICCOLUMN = 0x400000
    827   };
    828 
    829   enum DBTABLESTATISTICSTYPE26 {
    830     DBSTAT_HISTOGRAM = 0x1,DBSTAT_COLUMN_CARDINALITY = 0x2,DBSTAT_TUPLE_CARDINALITY = 0x4
    831   };
    832 #endif
    833 
    834   typedef struct tagDBCOLUMNINFO {
    835     LPOLESTR pwszName;
    836     ITypeInfo *pTypeInfo;
    837     DBORDINAL iOrdinal;
    838     DBCOLUMNFLAGS dwFlags;
    839     DBLENGTH ulColumnSize;
    840     DBTYPE wType;
    841     BYTE bPrecision;
    842     BYTE bScale;
    843     DBID columnid;
    844   } DBCOLUMNINFO;
    845 
    846   typedef enum tagDBBOOKMARK {
    847     DBBMK_INVALID = 0,DBBMK_FIRST,DBBMK_LAST
    848   } DBBOOKMARK;
    849 
    850 #define STD_BOOKMARKLENGTH 1
    851 #ifdef __cplusplus
    852   static inline WINBOOL IsEqualGUIDBase(const GUID &rguid1,const GUID &rguid2) { return !memcmp(&(rguid1.Data2),&(rguid2.Data2),sizeof(GUID) - sizeof(rguid1.Data1)); }
    853 #else
    854 #define IsEqualGuidBase(rguid1,rguid2) (!memcmp(&((rguid1).Data2),&((rguid2).Data2),sizeof(GUID) - sizeof((rguid1).Data1)))
    855 #endif
    856 #ifdef _WIN64
    857 #define DB_INVALIDCOLUMN _UI64_MAX
    858 #else
    859 #define DB_INVALIDCOLUMN ULONG_MAX
    860 #endif
    861 #define DBCIDGUID {0x0C733A81,0x2A1C,0x11CE,{0xAD,0xE5,0x00,0xAA,0x00,0x44,0x77,0x3D}}
    862 #define DB_NULLGUID {0x00000000,0x0000,0x0000,{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}}
    863 #ifdef DBINITCONSTANTS
    864   extern const OLEDBDECLSPEC DBID DB_NULLID = {DB_NULLGUID,0,(LPOLESTR)0};
    865   extern const OLEDBDECLSPEC DBID DBCOLUMN_IDNAME = {DBCIDGUID,DBKIND_GUID_PROPID,(LPOLESTR)2};
    866   extern const OLEDBDECLSPEC DBID DBCOLUMN_NAME = {DBCIDGUID,DBKIND_GUID_PROPID,(LPOLESTR)3};
    867   extern const OLEDBDECLSPEC DBID DBCOLUMN_NUMBER = {DBCIDGUID,DBKIND_GUID_PROPID,(LPOLESTR)4};
    868   extern const OLEDBDECLSPEC DBID DBCOLUMN_TYPE = {DBCIDGUID,DBKIND_GUID_PROPID,(LPOLESTR)5};
    869   extern const OLEDBDECLSPEC DBID DBCOLUMN_PRECISION = {DBCIDGUID,DBKIND_GUID_PROPID,(LPOLESTR)7};
    870   extern const OLEDBDECLSPEC DBID DBCOLUMN_SCALE = {DBCIDGUID,DBKIND_GUID_PROPID,(LPOLESTR)8};
    871   extern const OLEDBDECLSPEC DBID DBCOLUMN_FLAGS = {DBCIDGUID,DBKIND_GUID_PROPID,(LPOLESTR)9};
    872   extern const OLEDBDECLSPEC DBID DBCOLUMN_BASECOLUMNNAME = {DBCIDGUID,DBKIND_GUID_PROPID,(LPOLESTR)10};
    873   extern const OLEDBDECLSPEC DBID DBCOLUMN_BASETABLENAME = {DBCIDGUID,DBKIND_GUID_PROPID,(LPOLESTR)11};
    874   extern const OLEDBDECLSPEC DBID DBCOLUMN_COLLATINGSEQUENCE = {DBCIDGUID,DBKIND_GUID_PROPID,(LPOLESTR)12};
    875   extern const OLEDBDECLSPEC DBID DBCOLUMN_COMPUTEMODE = {DBCIDGUID,DBKIND_GUID_PROPID,(LPOLESTR)13};
    876   extern const OLEDBDECLSPEC DBID DBCOLUMN_DEFAULTVALUE = {DBCIDGUID,DBKIND_GUID_PROPID,(LPOLESTR)14};
    877   extern const OLEDBDECLSPEC DBID DBCOLUMN_DOMAINNAME = {DBCIDGUID,DBKIND_GUID_PROPID,(LPOLESTR)15};
    878   extern const OLEDBDECLSPEC DBID DBCOLUMN_HASDEFAULT = {DBCIDGUID,DBKIND_GUID_PROPID,(LPOLESTR)16};
    879   extern const OLEDBDECLSPEC DBID DBCOLUMN_ISAUTOINCREMENT = {DBCIDGUID,DBKIND_GUID_PROPID,(LPOLESTR)17};
    880   extern const OLEDBDECLSPEC DBID DBCOLUMN_ISCASESENSITIVE = {DBCIDGUID,DBKIND_GUID_PROPID,(LPOLESTR)18};
    881   extern const OLEDBDECLSPEC DBID DBCOLUMN_ISSEARCHABLE = {DBCIDGUID,DBKIND_GUID_PROPID,(LPOLESTR)20};
    882   extern const OLEDBDECLSPEC DBID DBCOLUMN_ISUNIQUE = {DBCIDGUID,DBKIND_GUID_PROPID,(LPOLESTR)21};
    883   extern const OLEDBDECLSPEC DBID DBCOLUMN_BASECATALOGNAME = {DBCIDGUID,DBKIND_GUID_PROPID,(LPOLESTR)23};
    884   extern const OLEDBDECLSPEC DBID DBCOLUMN_BASESCHEMANAME = {DBCIDGUID,DBKIND_GUID_PROPID,(LPOLESTR)24};
    885   extern const OLEDBDECLSPEC DBID DBCOLUMN_GUID = {DBCIDGUID,DBKIND_GUID_PROPID,(LPOLESTR)29};
    886   extern const OLEDBDECLSPEC DBID DBCOLUMN_PROPID = {DBCIDGUID,DBKIND_GUID_PROPID,(LPOLESTR)30};
    887   extern const OLEDBDECLSPEC DBID DBCOLUMN_TYPEINFO = {DBCIDGUID,DBKIND_GUID_PROPID,(LPOLESTR)31};
    888   extern const OLEDBDECLSPEC DBID DBCOLUMN_DOMAINCATALOG = {DBCIDGUID,DBKIND_GUID_PROPID,(LPOLESTR)32};
    889   extern const OLEDBDECLSPEC DBID DBCOLUMN_DOMAINSCHEMA = {DBCIDGUID,DBKIND_GUID_PROPID,(LPOLESTR)33};
    890   extern const OLEDBDECLSPEC DBID DBCOLUMN_DATETIMEPRECISION = {DBCIDGUID,DBKIND_GUID_PROPID,(LPOLESTR)34};
    891   extern const OLEDBDECLSPEC DBID DBCOLUMN_NUMERICPRECISIONRADIX = {DBCIDGUID,DBKIND_GUID_PROPID,(LPOLESTR)35};
    892   extern const OLEDBDECLSPEC DBID DBCOLUMN_OCTETLENGTH = {DBCIDGUID,DBKIND_GUID_PROPID,(LPOLESTR)36};
    893   extern const OLEDBDECLSPEC DBID DBCOLUMN_COLUMNSIZE = {DBCIDGUID,DBKIND_GUID_PROPID,(LPOLESTR)37};
    894   extern const OLEDBDECLSPEC DBID DBCOLUMN_CLSID = {DBCIDGUID,DBKIND_GUID_PROPID,(LPOLESTR)38};
    895 
    896 #if (OLEDBVER >= 0x0150)
    897   extern const OLEDBDECLSPEC DBID DBCOLUMN_MAYSORT = {DBCIDGUID,DBKIND_GUID_PROPID,(LPOLESTR)39};
    898 #endif
    899 #else
    900   extern const DBID DB_NULLID;
    901   extern const DBID DBCOLUMN_IDNAME;
    902   extern const DBID DBCOLUMN_NAME;
    903   extern const DBID DBCOLUMN_NUMBER;
    904   extern const DBID DBCOLUMN_TYPE;
    905   extern const DBID DBCOLUMN_PRECISION;
    906   extern const DBID DBCOLUMN_SCALE;
    907   extern const DBID DBCOLUMN_FLAGS;
    908   extern const DBID DBCOLUMN_BASECOLUMNNAME;
    909   extern const DBID DBCOLUMN_BASETABLENAME;
    910   extern const DBID DBCOLUMN_COLLATINGSEQUENCE;
    911   extern const DBID DBCOLUMN_COMPUTEMODE;
    912   extern const DBID DBCOLUMN_DEFAULTVALUE;
    913   extern const DBID DBCOLUMN_DOMAINNAME;
    914   extern const DBID DBCOLUMN_HASDEFAULT;
    915   extern const DBID DBCOLUMN_ISAUTOINCREMENT;
    916   extern const DBID DBCOLUMN_ISCASESENSITIVE;
    917   extern const DBID DBCOLUMN_ISSEARCHABLE;
    918   extern const DBID DBCOLUMN_ISUNIQUE;
    919   extern const DBID DBCOLUMN_BASECATALOGNAME;
    920   extern const DBID DBCOLUMN_BASESCHEMANAME;
    921   extern const DBID DBCOLUMN_GUID;
    922   extern const DBID DBCOLUMN_PROPID;
    923   extern const DBID DBCOLUMN_TYPEINFO;
    924   extern const DBID DBCOLUMN_DOMAINCATALOG;
    925   extern const DBID DBCOLUMN_DOMAINSCHEMA;
    926   extern const DBID DBCOLUMN_DATETIMEPRECISION;
    927   extern const DBID DBCOLUMN_NUMERICPRECISIONRADIX;
    928   extern const DBID DBCOLUMN_OCTETLENGTH;
    929   extern const DBID DBCOLUMN_COLUMNSIZE;
    930   extern const DBID DBCOLUMN_CLSID;
    931 
    932 #if (OLEDBVER >= 0x0150)
    933   extern const DBID DBCOLUMN_MAYSORT;
    934 #endif
    935 #endif
    936 #ifdef DBINITCONSTANTS
    937 
    938 #if (OLEDBVER >= 0x0260)
    939   extern const OLEDBDECLSPEC GUID MDSCHEMA_FUNCTIONS = {0xa07ccd07,0x8148,0x11d0,{0x87,0xbb,0x00,0xc0,0x4f,0xc3,0x39,0x42}};
    940   extern const OLEDBDECLSPEC GUID MDSCHEMA_ACTIONS = {0xa07ccd08,0x8148,0x11d0,{0x87,0xbb,0x00,0xc0,0x4f,0xc3,0x39,0x42}};
    941   extern const OLEDBDECLSPEC GUID MDSCHEMA_COMMANDS = {0xa07ccd09,0x8148,0x11d0,{0x87,0xbb,0x00,0xc0,0x4f,0xc3,0x39,0x42}};
    942   extern const OLEDBDECLSPEC GUID MDSCHEMA_SETS = {0xa07ccd0b,0x8148,0x11d0,{0x87,0xbb,0x00,0xc0,0x4f,0xc3,0x39,0x42}};
    943 #endif
    944 
    945 #if (OLEDBVER >= 0x0200)
    946   extern const OLEDBDECLSPEC GUID DBSCHEMA_TABLES_INFO = {0xc8b522e0,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
    947   extern const OLEDBDECLSPEC GUID MDGUID_MDX = {0xa07cccd0,0x8148,0x11d0,{0x87,0xbb,0x00,0xc0,0x4f,0xc3,0x39,0x42}};
    948   extern const OLEDBDECLSPEC GUID DBGUID_MDX = {0xa07cccd0,0x8148,0x11d0,{0x87,0xbb,0x00,0xc0,0x4f,0xc3,0x39,0x42}};
    949   extern const OLEDBDECLSPEC GUID MDSCHEMA_CUBES = {0xc8b522d8,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
    950   extern const OLEDBDECLSPEC GUID MDSCHEMA_DIMENSIONS = {0xc8b522d9,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
    951   extern const OLEDBDECLSPEC GUID MDSCHEMA_HIERARCHIES = {0xc8b522da,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
    952   extern const OLEDBDECLSPEC GUID MDSCHEMA_LEVELS = {0xc8b522db,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
    953   extern const OLEDBDECLSPEC GUID MDSCHEMA_MEASURES = {0xc8b522dc,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
    954   extern const OLEDBDECLSPEC GUID MDSCHEMA_PROPERTIES = {0xc8b522dd,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
    955   extern const OLEDBDECLSPEC GUID MDSCHEMA_MEMBERS = {0xc8b522de,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
    956   extern const OLEDBDECLSPEC DBID DBCOLUMN_BASETABLEVERSION = {DBCIDGUID,DBKIND_GUID_PROPID,(LPOLESTR)40};
    957   extern const OLEDBDECLSPEC DBID DBCOLUMN_KEYCOLUMN = {DBCIDGUID,DBKIND_GUID_PROPID,(LPOLESTR)41};
    958 #endif
    959 
    960 #if (OLEDBVER >= 0x0210)
    961 #define DBGUID_ROWURL {0x0C733AB6,0x2A1C,0x11CE,{0xAD,0xE5,0x00,0xAA,0x00,0x44,0x77,0x3D}}
    962 #define DBGUID_ROWDEFAULTSTREAM {0x0C733AB7,0x2A1C,0x11CE,{0xAD,0xE5,0x00,0xAA,0x00,0x44,0x77,0x3D}}
    963   extern const OLEDBDECLSPEC GUID DBPROPSET_TRUSTEE = {0xc8b522e1,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
    964   extern const OLEDBDECLSPEC GUID DBOBJECT_TABLE = {0xc8b522e2,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
    965   extern const OLEDBDECLSPEC GUID DBOBJECT_COLUMN = {0xc8b522e4,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
    966   extern const OLEDBDECLSPEC GUID DBOBJECT_DATABASE = {0xc8b522e5,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
    967   extern const OLEDBDECLSPEC GUID DBOBJECT_PROCEDURE = {0xc8b522e6,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
    968   extern const OLEDBDECLSPEC GUID DBOBJECT_VIEW = {0xc8b522e7,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
    969   extern const OLEDBDECLSPEC GUID DBOBJECT_SCHEMA = {0xc8b522e8,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
    970   extern const OLEDBDECLSPEC GUID DBOBJECT_DOMAIN = {0xc8b522e9,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
    971   extern const OLEDBDECLSPEC GUID DBOBJECT_COLLATION = {0xc8b522ea,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
    972   extern const OLEDBDECLSPEC GUID DBOBJECT_TRUSTEE = {0xc8b522eb,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
    973   extern const OLEDBDECLSPEC GUID DBOBJECT_SCHEMAROWSET = {0xc8b522ec,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
    974   extern const OLEDBDECLSPEC GUID DBOBJECT_CHARACTERSET = {0xc8b522ed,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
    975   extern const OLEDBDECLSPEC GUID DBOBJECT_TRANSLATION = {0xc8b522ee,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
    976   extern const OLEDBDECLSPEC GUID DBSCHEMA_TRUSTEE = {0xc8b522ef,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
    977   extern const OLEDBDECLSPEC GUID DBPROPSET_COLUMNALL = {0xc8b522f0,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
    978   extern const OLEDBDECLSPEC GUID DBPROPSET_INDEXALL = {0xc8b522f1,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
    979   extern const OLEDBDECLSPEC GUID DBPROPSET_TABLEALL = {0xc8b522f2,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
    980   extern const OLEDBDECLSPEC GUID DBPROPSET_TRUSTEEALL = {0xc8b522f3,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
    981   extern const OLEDBDECLSPEC GUID DBPROPSET_CONSTRAINTALL = {0xc8b522fa,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
    982   extern const OLEDBDECLSPEC GUID DBGUID_DSO = {0xc8b522f4,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
    983   extern const OLEDBDECLSPEC GUID DBGUID_SESSION = {0xc8b522f5,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
    984   extern const OLEDBDECLSPEC GUID DBGUID_ROWSET = {0xc8b522f6,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
    985   extern const OLEDBDECLSPEC GUID DBGUID_ROW = {0xc8b522f7,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
    986   extern const OLEDBDECLSPEC GUID DBGUID_COMMAND = {0xc8b522f8,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
    987   extern const OLEDBDECLSPEC GUID DBGUID_STREAM = {0xc8b522f9,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
    988   extern const OLEDBDECLSPEC DBID DBROWCOL_ROWURL = {DBGUID_ROWURL,DBKIND_GUID_PROPID,(LPOLESTR)0};
    989   extern const OLEDBDECLSPEC DBID DBROWCOL_PARSENAME = {DBGUID_ROWURL,DBKIND_GUID_PROPID,(LPOLESTR)2};
    990   extern const OLEDBDECLSPEC DBID DBROWCOL_PARENTNAME = {DBGUID_ROWURL,DBKIND_GUID_PROPID,(LPOLESTR)3};
    991   extern const OLEDBDECLSPEC DBID DBROWCOL_ABSOLUTEPARSENAME = {DBGUID_ROWURL,DBKIND_GUID_PROPID,(LPOLESTR)4};
    992   extern const OLEDBDECLSPEC DBID DBROWCOL_ISHIDDEN = {DBGUID_ROWURL,DBKIND_GUID_PROPID,(LPOLESTR)5};
    993   extern const OLEDBDECLSPEC DBID DBROWCOL_ISREADONLY = {DBGUID_ROWURL,DBKIND_GUID_PROPID,(LPOLESTR)6};
    994   extern const OLEDBDECLSPEC DBID DBROWCOL_CONTENTTYPE = {DBGUID_ROWURL,DBKIND_GUID_PROPID,(LPOLESTR)7};
    995   extern const OLEDBDECLSPEC DBID DBROWCOL_CONTENTCLASS = {DBGUID_ROWURL,DBKIND_GUID_PROPID,(LPOLESTR)8};
    996   extern const OLEDBDECLSPEC DBID DBROWCOL_CONTENTLANGUAGE = {DBGUID_ROWURL,DBKIND_GUID_PROPID,(LPOLESTR)9};
    997   extern const OLEDBDECLSPEC DBID DBROWCOL_CREATIONTIME = {DBGUID_ROWURL,DBKIND_GUID_PROPID,(LPOLESTR)10};
    998   extern const OLEDBDECLSPEC DBID DBROWCOL_LASTACCESSTIME = {DBGUID_ROWURL,DBKIND_GUID_PROPID,(LPOLESTR)11};
    999   extern const OLEDBDECLSPEC DBID DBROWCOL_LASTWRITETIME = {DBGUID_ROWURL,DBKIND_GUID_PROPID,(LPOLESTR)12};
   1000   extern const OLEDBDECLSPEC DBID DBROWCOL_STREAMSIZE = {DBGUID_ROWURL,DBKIND_GUID_PROPID,(LPOLESTR)13};
   1001   extern const OLEDBDECLSPEC DBID DBROWCOL_ISCOLLECTION = {DBGUID_ROWURL,DBKIND_GUID_PROPID,(LPOLESTR)14};
   1002   extern const OLEDBDECLSPEC DBID DBROWCOL_ISSTRUCTUREDDOCUMENT = {DBGUID_ROWURL,DBKIND_GUID_PROPID,(LPOLESTR)15};
   1003   extern const OLEDBDECLSPEC DBID DBROWCOL_DEFAULTDOCUMENT = {DBGUID_ROWURL,DBKIND_GUID_PROPID,(LPOLESTR)16};
   1004   extern const OLEDBDECLSPEC DBID DBROWCOL_DISPLAYNAME = {DBGUID_ROWURL,DBKIND_GUID_PROPID,(LPOLESTR)17};
   1005   extern const OLEDBDECLSPEC DBID DBROWCOL_ISROOT = {DBGUID_ROWURL,DBKIND_GUID_PROPID,(LPOLESTR)18};
   1006   extern const OLEDBDECLSPEC DBID DBROWCOL_DEFAULTSTREAM = {DBGUID_ROWDEFAULTSTREAM,DBKIND_GUID_PROPID,(LPOLESTR)0};
   1007   extern const OLEDBDECLSPEC GUID DBGUID_CONTAINEROBJECT = {0xc8b522fb,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
   1008 #endif
   1009 
   1010   extern const OLEDBDECLSPEC GUID DBSCHEMA_ASSERTIONS = {0xc8b52210,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
   1011   extern const OLEDBDECLSPEC GUID DBSCHEMA_CATALOGS = {0xc8b52211,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
   1012   extern const OLEDBDECLSPEC GUID DBSCHEMA_CHARACTER_SETS = {0xc8b52212,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
   1013   extern const OLEDBDECLSPEC GUID DBSCHEMA_COLLATIONS = {0xc8b52213,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
   1014   extern const OLEDBDECLSPEC GUID DBSCHEMA_COLUMNS = {0xc8b52214,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
   1015   extern const OLEDBDECLSPEC GUID DBSCHEMA_CHECK_CONSTRAINTS = {0xc8b52215,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
   1016   extern const OLEDBDECLSPEC GUID DBSCHEMA_CONSTRAINT_COLUMN_USAGE = {0xc8b52216,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
   1017   extern const OLEDBDECLSPEC GUID DBSCHEMA_CONSTRAINT_TABLE_USAGE = {0xc8b52217,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
   1018   extern const OLEDBDECLSPEC GUID DBSCHEMA_KEY_COLUMN_USAGE = {0xc8b52218,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
   1019   extern const OLEDBDECLSPEC GUID DBSCHEMA_REFERENTIAL_CONSTRAINTS = {0xc8b52219,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
   1020   extern const OLEDBDECLSPEC GUID DBSCHEMA_TABLE_CONSTRAINTS = {0xc8b5221a,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
   1021   extern const OLEDBDECLSPEC GUID DBSCHEMA_COLUMN_DOMAIN_USAGE = {0xc8b5221b,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
   1022   extern const OLEDBDECLSPEC GUID DBSCHEMA_INDEXES = {0xc8b5221e,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
   1023   extern const OLEDBDECLSPEC GUID DBSCHEMA_COLUMN_PRIVILEGES = {0xc8b52221,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
   1024   extern const OLEDBDECLSPEC GUID DBSCHEMA_TABLE_PRIVILEGES = {0xc8b52222,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
   1025   extern const OLEDBDECLSPEC GUID DBSCHEMA_USAGE_PRIVILEGES = {0xc8b52223,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
   1026   extern const OLEDBDECLSPEC GUID DBSCHEMA_PROCEDURES = {0xc8b52224,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
   1027   extern const OLEDBDECLSPEC GUID DBSCHEMA_SCHEMATA = {0xc8b52225,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
   1028   extern const OLEDBDECLSPEC GUID DBSCHEMA_SQL_LANGUAGES = {0xc8b52226,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
   1029   extern const OLEDBDECLSPEC GUID DBSCHEMA_STATISTICS = {0xc8b52227,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
   1030   extern const OLEDBDECLSPEC GUID DBSCHEMA_TABLES = {0xc8b52229,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
   1031   extern const OLEDBDECLSPEC GUID DBSCHEMA_TRANSLATIONS = {0xc8b5222a,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
   1032   extern const OLEDBDECLSPEC GUID DBSCHEMA_PROVIDER_TYPES = {0xc8b5222c,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
   1033   extern const OLEDBDECLSPEC GUID DBSCHEMA_VIEWS = {0xc8b5222d,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
   1034   extern const OLEDBDECLSPEC GUID DBSCHEMA_VIEW_COLUMN_USAGE = {0xc8b5222e,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
   1035   extern const OLEDBDECLSPEC GUID DBSCHEMA_VIEW_TABLE_USAGE = {0xc8b5222f,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
   1036   extern const OLEDBDECLSPEC GUID DBSCHEMA_PROCEDURE_PARAMETERS = {0xc8b522b8,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
   1037   extern const OLEDBDECLSPEC GUID DBSCHEMA_FOREIGN_KEYS = {0xc8b522c4,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
   1038   extern const OLEDBDECLSPEC GUID DBSCHEMA_PRIMARY_KEYS = {0xc8b522c5,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
   1039   extern const OLEDBDECLSPEC GUID DBSCHEMA_PROCEDURE_COLUMNS = {0xc8b522c9,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
   1040   extern const OLEDBDECLSPEC GUID DBCOL_SELFCOLUMNS = {0xc8b52231,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
   1041   extern const OLEDBDECLSPEC GUID DBCOL_SPECIALCOL = {0xc8b52232,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
   1042   extern const OLEDBDECLSPEC GUID PSGUID_QUERY = {0x49691c90,0x7e17,0x101a,{0xa9,0x1c,0x08,0x00,0x2b,0x2e,0xcd,0xa9}};
   1043   extern const OLEDBDECLSPEC GUID DBPROPSET_COLUMN = {0xc8b522b9,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
   1044   extern const OLEDBDECLSPEC GUID DBPROPSET_DATASOURCE = {0xc8b522ba,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
   1045   extern const OLEDBDECLSPEC GUID DBPROPSET_DATASOURCEINFO = {0xc8b522bb,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
   1046   extern const OLEDBDECLSPEC GUID DBPROPSET_DBINIT = {0xc8b522bc,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
   1047   extern const OLEDBDECLSPEC GUID DBPROPSET_INDEX = {0xc8b522bd,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
   1048   extern const OLEDBDECLSPEC GUID DBPROPSET_ROWSET = {0xc8b522be,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
   1049   extern const OLEDBDECLSPEC GUID DBPROPSET_TABLE = {0xc8b522bf,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
   1050   extern const OLEDBDECLSPEC GUID DBPROPSET_DATASOURCEALL = {0xc8b522c0,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
   1051   extern const OLEDBDECLSPEC GUID DBPROPSET_DATASOURCEINFOALL = {0xc8b522c1,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
   1052   extern const OLEDBDECLSPEC GUID DBPROPSET_ROWSETALL = {0xc8b522c2,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
   1053   extern const OLEDBDECLSPEC GUID DBPROPSET_SESSION = {0xc8b522c6,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
   1054   extern const OLEDBDECLSPEC GUID DBPROPSET_SESSIONALL = {0xc8b522c7,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
   1055   extern const OLEDBDECLSPEC GUID DBPROPSET_DBINITALL = {0xc8b522ca,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
   1056   extern const OLEDBDECLSPEC GUID DBPROPSET_PROPERTIESINERROR = {0xc8b522d4,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
   1057 
   1058 #if (OLEDBVER >= 0x0150)
   1059   extern const OLEDBDECLSPEC GUID DBPROPSET_VIEW = {0xc8b522df,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
   1060 #endif
   1061 
   1062 #if (OLEDBVER >= 0x0250)
   1063   extern const OLEDBDECLSPEC GUID DBPROPSET_VIEWALL = {0xc8b522fc,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
   1064 #endif
   1065 
   1066 #if (OLEDBVER >= 0x0260)
   1067   extern const OLEDBDECLSPEC GUID DBPROPSET_STREAM = {0xc8b522fd,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
   1068   extern const OLEDBDECLSPEC GUID DBPROPSET_STREAMALL = {0xc8b522fe,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
   1069   extern const OLEDBDECLSPEC GUID DBSCHEMA_TABLE_STATISTICS = {0xc8b522ff,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
   1070   extern const OLEDBDECLSPEC GUID DBSCHEMA_CHECK_CONSTRAINTS_BY_TABLE = {0xc8b52301,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
   1071   extern const OLEDBDECLSPEC GUID DBGUID_HISTOGRAM_ROWSET = {0xc8b52300,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
   1072   extern const OLEDBDECLSPEC DBID DBCOLUMN_DERIVEDCOLUMNNAME = {DBCIDGUID,DBKIND_GUID_PROPID,(LPOLESTR)43};
   1073 #endif
   1074 
   1075   extern const OLEDBDECLSPEC GUID DBGUID_DBSQL = {0xc8b521fb,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
   1076   extern const OLEDBDECLSPEC GUID DBGUID_DEFAULT = {0xc8b521fb,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
   1077   extern const OLEDBDECLSPEC GUID DBGUID_SQL = {0xc8b522d7,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
   1078 #else
   1079 
   1080 #if (OLEDBVER >= 0x0200)
   1081   extern const GUID DBSCHEMA_TABLES_INFO;
   1082   extern const GUID MDGUID_MDX;
   1083   extern const GUID DBGUID_MDX;
   1084   extern const GUID MDSCHEMA_CUBES;
   1085   extern const GUID MDSCHEMA_DIMENSIONS;
   1086   extern const GUID MDSCHEMA_HIERARCHIES;
   1087   extern const GUID MDSCHEMA_LEVELS;
   1088   extern const GUID MDSCHEMA_MEASURES;
   1089   extern const GUID MDSCHEMA_PROPERTIES;
   1090   extern const GUID MDSCHEMA_MEMBERS;
   1091   extern const DBID DBCOLUMN_BASETABLEVERSION;
   1092   extern const DBID DBCOLUMN_KEYCOLUMN;
   1093 #endif
   1094 
   1095 #if (OLEDBVER >= 0x0210)
   1096   extern const GUID DBPROPSET_TRUSTEE;
   1097   extern const GUID DBOBJECT_TABLE;
   1098   extern const GUID DBOBJECT_COLUMN;
   1099   extern const GUID DBOBJECT_DATABASE;
   1100   extern const GUID DBOBJECT_PROCEDURE;
   1101   extern const GUID DBOBJECT_VIEW;
   1102   extern const GUID DBOBJECT_SCHEMA;
   1103   extern const GUID DBOBJECT_DOMAIN;
   1104   extern const GUID DBOBJECT_COLLATION;
   1105   extern const GUID DBOBJECT_TRUSTEE;
   1106   extern const GUID DBOBJECT_SCHEMAROWSET;
   1107   extern const GUID DBOBJECT_CHARACTERSET;
   1108   extern const GUID DBOBJECT_TRANSLATION;
   1109   extern const GUID DBSCHEMA_TRUSTEE;
   1110   extern const GUID DBPROPSET_COLUMNALL;
   1111   extern const GUID DBPROPSET_INDEXALL;
   1112   extern const GUID DBPROPSET_TABLEALL;
   1113   extern const GUID DBPROPSET_TRUSTEEALL;
   1114   extern const GUID DBPROPSET_CONSTRAINTALL;
   1115   extern const GUID DBGUID_DSO;
   1116   extern const GUID DBGUID_SESSION;
   1117   extern const GUID DBGUID_ROWSET;
   1118   extern const GUID DBGUID_ROW;
   1119   extern const GUID DBGUID_COMMAND;
   1120   extern const GUID DBGUID_STREAM;
   1121   extern const DBID DBROWCOL_ROWURL;
   1122   extern const DBID DBROWCOL_PARSENAME;
   1123   extern const DBID DBROWCOL_PARENTNAME;
   1124   extern const DBID DBROWCOL_ABSOLUTEPARSENAME;
   1125   extern const DBID DBROWCOL_ISHIDDEN;
   1126   extern const DBID DBROWCOL_ISREADONLY;
   1127   extern const DBID DBROWCOL_CONTENTTYPE;
   1128   extern const DBID DBROWCOL_CONTENTCLASS;
   1129   extern const DBID DBROWCOL_CONTENTLANGUAGE;
   1130   extern const DBID DBROWCOL_CREATIONTIME;
   1131   extern const DBID DBROWCOL_LASTACCESSTIME;
   1132   extern const DBID DBROWCOL_LASTWRITETIME;
   1133   extern const DBID DBROWCOL_STREAMSIZE;
   1134   extern const DBID DBROWCOL_ISCOLLECTION;
   1135   extern const DBID DBROWCOL_ISSTRUCTUREDDOCUMENT;
   1136   extern const DBID DBROWCOL_DEFAULTDOCUMENT;
   1137   extern const DBID DBROWCOL_DISPLAYNAME;
   1138   extern const DBID DBROWCOL_ISROOT;
   1139   extern const DBID DBROWCOL_DEFAULTSTREAM;
   1140   extern const GUID DBGUID_CONTAINEROBJECT;
   1141 #endif
   1142 
   1143   extern const GUID DBSCHEMA_ASSERTIONS;
   1144   extern const GUID DBSCHEMA_CATALOGS;
   1145   extern const GUID DBSCHEMA_CHARACTER_SETS;
   1146   extern const GUID DBSCHEMA_COLLATIONS;
   1147   extern const GUID DBSCHEMA_COLUMNS;
   1148   extern const GUID DBSCHEMA_CHECK_CONSTRAINTS;
   1149   extern const GUID DBSCHEMA_CONSTRAINT_COLUMN_USAGE;
   1150   extern const GUID DBSCHEMA_CONSTRAINT_TABLE_USAGE;
   1151   extern const GUID DBSCHEMA_KEY_COLUMN_USAGE;
   1152   extern const GUID DBSCHEMA_REFERENTIAL_CONSTRAINTS;
   1153   extern const GUID DBSCHEMA_TABLE_CONSTRAINTS;
   1154   extern const GUID DBSCHEMA_COLUMN_DOMAIN_USAGE;
   1155   extern const GUID DBSCHEMA_INDEXES;
   1156   extern const GUID DBSCHEMA_COLUMN_PRIVILEGES;
   1157   extern const GUID DBSCHEMA_TABLE_PRIVILEGES;
   1158   extern const GUID DBSCHEMA_USAGE_PRIVILEGES;
   1159   extern const GUID DBSCHEMA_PROCEDURES;
   1160   extern const GUID DBSCHEMA_SCHEMATA;
   1161   extern const GUID DBSCHEMA_SQL_LANGUAGES;
   1162   extern const GUID DBSCHEMA_STATISTICS;
   1163   extern const GUID DBSCHEMA_TABLES;
   1164   extern const GUID DBSCHEMA_TRANSLATIONS;
   1165   extern const GUID DBSCHEMA_PROVIDER_TYPES;
   1166   extern const GUID DBSCHEMA_VIEWS;
   1167   extern const GUID DBSCHEMA_VIEW_COLUMN_USAGE;
   1168   extern const GUID DBSCHEMA_VIEW_TABLE_USAGE;
   1169   extern const GUID DBSCHEMA_PROCEDURE_PARAMETERS;
   1170   extern const GUID DBSCHEMA_FOREIGN_KEYS;
   1171   extern const GUID DBSCHEMA_PRIMARY_KEYS;
   1172   extern const GUID DBSCHEMA_PROCEDURE_COLUMNS;
   1173   extern const GUID DBCOL_SELFCOLUMNS;
   1174   extern const GUID DBCOL_SPECIALCOL;
   1175   extern const GUID PSGUID_QUERY;
   1176   extern const GUID DBPROPSET_COLUMN;
   1177   extern const GUID DBPROPSET_DATASOURCE;
   1178   extern const GUID DBPROPSET_DATASOURCEINFO;
   1179   extern const GUID DBPROPSET_DBINIT;
   1180   extern const GUID DBPROPSET_INDEX;
   1181   extern const GUID DBPROPSET_ROWSET;
   1182   extern const GUID DBPROPSET_TABLE;
   1183   extern const GUID DBPROPSET_DATASOURCEALL;
   1184   extern const GUID DBPROPSET_DATASOURCEINFOALL;
   1185   extern const GUID DBPROPSET_ROWSETALL;
   1186   extern const GUID DBPROPSET_SESSION;
   1187   extern const GUID DBPROPSET_SESSIONALL;
   1188   extern const GUID DBPROPSET_DBINITALL;
   1189   extern const GUID DBPROPSET_PROPERTIESINERROR;
   1190 
   1191 #if (OLEDBVER >= 0x0150)
   1192   extern const GUID DBPROPSET_VIEW;
   1193 #endif
   1194 
   1195 #if (OLEDBVER >= 0x0250)
   1196   extern const GUID DBPROPSET_VIEWALL;
   1197 #endif
   1198 
   1199 #if (OLEDBVER >= 0x0260)
   1200   extern const GUID DBPROPSET_STREAM;
   1201   extern const GUID DBPROPSET_STREAMALL;
   1202   extern const GUID DBSCHEMA_TABLE_STATISTICS;
   1203   extern const GUID DBSCHEMA_CHECK_CONSTRAINTS_BY_TABLE;
   1204   extern const GUID DBGUID_HISTOGRAM_ROWSET;
   1205   extern const DBID DBCOLUMN_DERIVEDCOLUMNNAME;
   1206   extern const GUID MDSCHEMA_FUNCTIONS;
   1207   extern const GUID MDSCHEMA_ACTIONS;
   1208   extern const GUID MDSCHEMA_COMMANDS;
   1209   extern const GUID MDSCHEMA_SETS;
   1210 #endif
   1211 
   1212   extern const GUID DBGUID_DBSQL;
   1213   extern const GUID DBGUID_DEFAULT;
   1214   extern const GUID DBGUID_SQL;
   1215 #endif
   1216 
   1217   enum DBPROPENUM {
   1218     DBPROP_ABORTPRESERVE = 0x2,DBPROP_ACTIVESESSIONS = 0x3,DBPROP_APPENDONLY = 0xbb,DBPROP_ASYNCTXNABORT = 0xa8,DBPROP_ASYNCTXNCOMMIT = 0x4,
   1219     DBPROP_AUTH_CACHE_AUTHINFO = 0x5,DBPROP_AUTH_ENCRYPT_PASSWORD = 0x6,DBPROP_AUTH_INTEGRATED = 0x7,DBPROP_AUTH_MASK_PASSWORD = 0x8,
   1220     DBPROP_AUTH_PASSWORD = 0x9,DBPROP_AUTH_PERSIST_ENCRYPTED = 0xa,DBPROP_AUTH_PERSIST_SENSITIVE_AUTHINFO = 0xb,DBPROP_AUTH_USERID = 0xc,
   1221     DBPROP_BLOCKINGSTORAGEOBJECTS = 0xd,DBPROP_BOOKMARKS = 0xe,DBPROP_BOOKMARKSKIPPED = 0xf,DBPROP_BOOKMARKTYPE = 0x10,DBPROP_BYREFACCESSORS = 0x78,
   1222     DBPROP_CACHEDEFERRED = 0x11,DBPROP_CANFETCHBACKWARDS = 0x12,DBPROP_CANHOLDROWS = 0x13,DBPROP_CANSCROLLBACKWARDS = 0x15,
   1223     DBPROP_CATALOGLOCATION = 0x16,DBPROP_CATALOGTERM = 0x17,DBPROP_CATALOGUSAGE = 0x18,DBPROP_CHANGEINSERTEDROWS = 0xbc,
   1224     DBPROP_COL_AUTOINCREMENT = 0x1a,DBPROP_COL_DEFAULT = 0x1b,DBPROP_COL_DESCRIPTION = 0x1c,DBPROP_COL_FIXEDLENGTH = 0xa7,
   1225     DBPROP_COL_NULLABLE = 0x1d,DBPROP_COL_PRIMARYKEY = 0x1e,DBPROP_COL_UNIQUE = 0x1f,DBPROP_COLUMNDEFINITION = 0x20,DBPROP_COLUMNRESTRICT = 0x21,
   1226     DBPROP_COMMANDTIMEOUT = 0x22,DBPROP_COMMITPRESERVE = 0x23,DBPROP_CONCATNULLBEHAVIOR = 0x24,DBPROP_CURRENTCATALOG = 0x25,
   1227     DBPROP_DATASOURCENAME = 0x26,DBPROP_DATASOURCEREADONLY = 0x27,DBPROP_DBMSNAME = 0x28,DBPROP_DBMSVER = 0x29,DBPROP_DEFERRED = 0x2a,
   1228     DBPROP_DELAYSTORAGEOBJECTS = 0x2b,DBPROP_DSOTHREADMODEL = 0xa9,DBPROP_GROUPBY = 0x2c,DBPROP_HETEROGENEOUSTABLES = 0x2d,DBPROP_IAccessor = 0x79,
   1229     DBPROP_IColumnsInfo = 0x7a,DBPROP_IColumnsRowset = 0x7b,DBPROP_IConnectionPointContainer = 0x7c,DBPROP_IConvertType = 0xc2,
   1230     DBPROP_IRowset = 0x7e,DBPROP_IRowsetChange = 0x7f,DBPROP_IRowsetIdentity = 0x80,DBPROP_IRowsetIndex = 0x9f,DBPROP_IRowsetInfo = 0x81,
   1231     DBPROP_IRowsetLocate = 0x82,DBPROP_IRowsetResynch = 0x84,DBPROP_IRowsetScroll = 0x85,DBPROP_IRowsetUpdate = 0x86,
   1232     DBPROP_ISupportErrorInfo = 0x87,DBPROP_ILockBytes = 0x88,DBPROP_ISequentialStream = 0x89,DBPROP_IStorage = 0x8a,DBPROP_IStream = 0x8b,
   1233     DBPROP_IDENTIFIERCASE = 0x2e,DBPROP_IMMOBILEROWS = 0x2f,DBPROP_INDEX_AUTOUPDATE = 0x30,DBPROP_INDEX_CLUSTERED = 0x31,
   1234     DBPROP_INDEX_FILLFACTOR = 0x32,DBPROP_INDEX_INITIALSIZE = 0x33,DBPROP_INDEX_NULLCOLLATION = 0x34,DBPROP_INDEX_NULLS = 0x35,
   1235     DBPROP_INDEX_PRIMARYKEY = 0x36,DBPROP_INDEX_SORTBOOKMARKS = 0x37,DBPROP_INDEX_TEMPINDEX = 0xa3,DBPROP_INDEX_TYPE = 0x38,
   1236     DBPROP_INDEX_UNIQUE = 0x39,DBPROP_INIT_DATASOURCE = 0x3b,DBPROP_INIT_HWND = 0x3c,DBPROP_INIT_IMPERSONATION_LEVEL = 0x3d,
   1237     DBPROP_INIT_LCID = 0xba,DBPROP_INIT_LOCATION = 0x3e,DBPROP_INIT_MODE = 0x3f,DBPROP_INIT_PROMPT = 0x40,DBPROP_INIT_PROTECTION_LEVEL = 0x41,
   1238     DBPROP_INIT_PROVIDERSTRING = 0xa0,DBPROP_INIT_TIMEOUT = 0x42,DBPROP_LITERALBOOKMARKS = 0x43,DBPROP_LITERALIDENTITY = 0x44,
   1239     DBPROP_MAXINDEXSIZE = 0x46,DBPROP_MAXOPENROWS = 0x47,DBPROP_MAXPENDINGROWS = 0x48,DBPROP_MAXROWS = 0x49,DBPROP_MAXROWSIZE = 0x4a,
   1240     DBPROP_MAXROWSIZEINCLUDESBLOB = 0x4b,DBPROP_MAXTABLESINSELECT = 0x4c,DBPROP_MAYWRITECOLUMN = 0x4d,DBPROP_MEMORYUSAGE = 0x4e,
   1241     DBPROP_MULTIPLEPARAMSETS = 0xbf,DBPROP_MULTIPLERESULTS = 0xc4,DBPROP_MULTIPLESTORAGEOBJECTS = 0x50,DBPROP_MULTITABLEUPDATE = 0x51,
   1242     DBPROP_NOTIFICATIONGRANULARITY = 0xc6,DBPROP_NOTIFICATIONPHASES = 0x52,DBPROP_NOTIFYCOLUMNSET = 0xab,DBPROP_NOTIFYROWDELETE = 0xad,
   1243     DBPROP_NOTIFYROWFIRSTCHANGE = 0xae,DBPROP_NOTIFYROWINSERT = 0xaf,DBPROP_NOTIFYROWRESYNCH = 0xb1,DBPROP_NOTIFYROWSETCHANGED = 0xd3,
   1244     DBPROP_NOTIFYROWSETRELEASE = 0xb2,DBPROP_NOTIFYROWSETFETCHPOSITIONCHANGE = 0xb3,DBPROP_NOTIFYROWUNDOCHANGE = 0xb4,
   1245     DBPROP_NOTIFYROWUNDODELETE = 0xb5,DBPROP_NOTIFYROWUNDOINSERT = 0xb6,DBPROP_NOTIFYROWUPDATE = 0xb7,DBPROP_NULLCOLLATION = 0x53,
   1246     DBPROP_OLEOBJECT = 0x54,DBPROP_ORDERBYCOLUMNSINSELECT = 0x55,DBPROP_ORDEREDBOOKMARKS = 0x56,DBPROP_OTHERINSERT = 0x57,
   1247     DBPROP_OTHERUPDATEDELETE = 0x58,DBPROP_OUTPUTPARAMETERAVAILABILITY = 0xb8,DBPROP_OWNINSERT = 0x59,DBPROP_OWNUPDATEDELETE = 0x5a,
   1248     DBPROP_PERSISTENTIDTYPE = 0xb9,DBPROP_PREPAREABORTBEHAVIOR = 0x5b,DBPROP_PREPARECOMMITBEHAVIOR = 0x5c,DBPROP_PROCEDURETERM = 0x5d,
   1249     DBPROP_PROVIDERNAME = 0x60,DBPROP_PROVIDEROLEDBVER = 0x61,DBPROP_PROVIDERVER = 0x62,DBPROP_QUICKRESTART = 0x63,
   1250     DBPROP_QUOTEDIDENTIFIERCASE = 0x64,DBPROP_REENTRANTEVENTS = 0x65,DBPROP_REMOVEDELETED = 0x66,DBPROP_REPORTMULTIPLECHANGES = 0x67,
   1251     DBPROP_RETURNPENDINGINSERTS = 0xbd,DBPROP_ROWRESTRICT = 0x68,DBPROP_ROWSETCONVERSIONSONCOMMAND = 0xc0,DBPROP_ROWTHREADMODEL = 0x69,
   1252     DBPROP_SCHEMATERM = 0x6a,DBPROP_SCHEMAUSAGE = 0x6b,DBPROP_SERVERCURSOR = 0x6c,DBPROP_SESS_AUTOCOMMITISOLEVELS = 0xbe,
   1253     DBPROP_SQLSUPPORT = 0x6d,DBPROP_STRONGIDENTITY = 0x77,DBPROP_STRUCTUREDSTORAGE = 0x6f,DBPROP_SUBQUERIES = 0x70,DBPROP_SUPPORTEDTXNDDL = 0xa1,
   1254     DBPROP_SUPPORTEDTXNISOLEVELS = 0x71,DBPROP_SUPPORTEDTXNISORETAIN = 0x72,DBPROP_TABLETERM = 0x73,DBPROP_TBL_TEMPTABLE = 0x8c,
   1255     DBPROP_TRANSACTEDOBJECT = 0x74,DBPROP_UPDATABILITY = 0x75,DBPROP_USERNAME = 0x76
   1256   };
   1257 
   1258 #if (OLEDBVER >= 0x0150)
   1259   enum DBPROPENUM15 {
   1260     DBPROP_FILTERCOMPAREOPS = 0xd1,DBPROP_FINDCOMPAREOPS = 0xd2,DBPROP_IChapteredRowset = 0xca,DBPROP_IDBAsynchStatus = 0xcb,
   1261     DBPROP_IRowsetFind = 0xcc,DBPROP_IRowsetView = 0xd4,DBPROP_IViewChapter = 0xd5,DBPROP_IViewFilter = 0xd6,DBPROP_IViewRowset = 0xd7,
   1262     DBPROP_IViewSort = 0xd8,DBPROP_INIT_ASYNCH = 0xc8,DBPROP_MAXOPENCHAPTERS = 0xc7,DBPROP_MAXORSINFILTER = 0xcd,DBPROP_MAXSORTCOLUMNS = 0xce,
   1263     DBPROP_ROWSET_ASYNCH = 0xc9,DBPROP_SORTONINDEX = 0xcf
   1264   };
   1265 #endif
   1266 
   1267 #if (OLEDBVER >= 0x0200)
   1268 #define DBPROP_PROVIDERFILENAME DBPROP_PROVIDERNAME
   1269 #define DBPROP_SERVER_NAME DBPROP_SERVERNAME
   1270 
   1271   enum DBPROPENUM20 {
   1272     DBPROP_IMultipleResults = 0xd9,DBPROP_DATASOURCE_TYPE = 0xfb,MDPROP_AXES = 0xfc,MDPROP_FLATTENING_SUPPORT = 0xfd,MDPROP_MDX_JOINCUBES = 0xfe,
   1273     MDPROP_NAMED_LEVELS = 0xff,MDPROP_RANGEROWSET = 0x100,MDPROP_MDX_SLICER = 0xda,MDPROP_MDX_CUBEQUALIFICATION = 0xdb,
   1274     MDPROP_MDX_OUTERREFERENCE = 0xdc,MDPROP_MDX_QUERYBYPROPERTY = 0xdd,MDPROP_MDX_CASESUPPORT = 0xde,MDPROP_MDX_STRING_COMPOP = 0xe0,
   1275     MDPROP_MDX_DESCFLAGS = 0xe1,MDPROP_MDX_SET_FUNCTIONS = 0xe2,MDPROP_MDX_MEMBER_FUNCTIONS = 0xe3,MDPROP_MDX_NUMERIC_FUNCTIONS = 0xe4,
   1276     MDPROP_MDX_FORMULAS = 0xe5,MDPROP_AGGREGATECELL_UPDATE = 0xe6,MDPROP_MDX_AGGREGATECELL_UPDATE = MDPROP_AGGREGATECELL_UPDATE,
   1277     MDPROP_MDX_OBJQUALIFICATION = 0x105,MDPROP_MDX_NONMEASURE_EXPRESSIONS = 0x106,DBPROP_ACCESSORDER = 0xe7,DBPROP_BOOKMARKINFO = 0xe8,
   1278     DBPROP_INIT_CATALOG = 0xe9,DBPROP_ROW_BULKOPS = 0xea,DBPROP_PROVIDERFRIENDLYNAME = 0xeb,DBPROP_LOCKMODE = 0xec,
   1279     DBPROP_MULTIPLECONNECTIONS = 0xed,DBPROP_UNIQUEROWS = 0xee,DBPROP_SERVERDATAONINSERT = 0xef,DBPROP_STORAGEFLAGS = 0xf0,
   1280     DBPROP_CONNECTIONSTATUS = 0xf4,DBPROP_ALTERCOLUMN = 0xf5,DBPROP_COLUMNLCID = 0xf6,DBPROP_RESETDATASOURCE = 0xf7,
   1281     DBPROP_INIT_OLEDBSERVICES = 0xf8,DBPROP_IRowsetRefresh = 0xf9,DBPROP_SERVERNAME = 0xfa,DBPROP_IParentRowset = 0x101,
   1282     DBPROP_HIDDENCOLUMNS = 0x102,DBPROP_PROVIDERMEMORY = 0x103,DBPROP_CLIENTCURSOR = 0x104
   1283   };
   1284 #endif
   1285 
   1286 #if (OLEDBVER >= 0x0210)
   1287   enum DBPROPENUM21 {
   1288     DBPROP_TRUSTEE_USERNAME = 0xf1,DBPROP_TRUSTEE_AUTHENTICATION = 0xf2,DBPROP_TRUSTEE_NEWAUTHENTICATION = 0xf3,DBPROP_IRow = 0x107,
   1289     DBPROP_IRowChange = 0x108,DBPROP_IRowSchemaChange = 0x109,DBPROP_IGetRow = 0x10a,DBPROP_IScopedOperations = 0x10b,
   1290     DBPROP_IBindResource = 0x10c,DBPROP_ICreateRow = 0x10d,DBPROP_INIT_BINDFLAGS = 0x10e,DBPROP_INIT_LOCKOWNER = 0x10f,
   1291     DBPROP_GENERATEURL = 0x111,DBPROP_IDBBinderProperties = 0x112,DBPROP_IColumnsInfo2 = 0x113,DBPROP_IRegisterProvider = 0x114,
   1292     DBPROP_IGetSession = 0x115,DBPROP_IGetSourceRow = 0x116,DBPROP_IRowsetCurrentIndex = 0x117,DBPROP_OPENROWSETSUPPORT = 0x118,
   1293     DBPROP_COL_ISLONG = 0x119
   1294   };
   1295 #endif
   1296 
   1297 #if (OLEDBVER >= 0x0250)
   1298   enum DBPROPENUM25 {
   1299     DBPROP_COL_SEED = 0x11a,DBPROP_COL_INCREMENT = 0x11b,DBPROP_INIT_GENERALTIMEOUT = 0x11c,DBPROP_COMSERVICES = 0x11d
   1300   };
   1301 #endif
   1302 
   1303 #if (OLEDBVER >= 0x0260)
   1304   enum DBPROPENUM26 {
   1305     DBPROP_OUTPUTSTREAM = 0x11e,DBPROP_OUTPUTENCODING = 0x11f,DBPROP_TABLESTATISTICS = 0x120,DBPROP_SKIPROWCOUNTRESULTS = 0x123,
   1306     DBPROP_IRowsetBookmark = 0x124,MDPROP_VISUALMODE = 0x125
   1307   };
   1308 #endif
   1309 
   1310 #ifdef deprecated
   1311   enum DBPROPENUMDEPRECATED {
   1312     DBPROP_IRowsetExactScroll = 0x9a,DBPROP_MARSHALLABLE = 0xc5,DBPROP_FILTEROPS = 0xd0
   1313   }
   1314 #endif
   1315 
   1316 #define DBPROPVAL_BMK_NUMERIC __MSABI_LONG(0x00000001)
   1317 #define DBPROPVAL_BMK_KEY __MSABI_LONG(0x00000002)
   1318 #define DBPROPVAL_CL_START __MSABI_LONG(0x00000001)
   1319 #define DBPROPVAL_CL_END __MSABI_LONG(0x00000002)
   1320 #define DBPROPVAL_CU_DML_STATEMENTS __MSABI_LONG(0x00000001)
   1321 #define DBPROPVAL_CU_TABLE_DEFINITION __MSABI_LONG(0x00000002)
   1322 #define DBPROPVAL_CU_INDEX_DEFINITION __MSABI_LONG(0x00000004)
   1323 #define DBPROPVAL_CU_PRIVILEGE_DEFINITION __MSABI_LONG(0x00000008)
   1324 #define DBPROPVAL_CD_NOTNULL __MSABI_LONG(0x00000001)
   1325 #define DBPROPVAL_CB_NULL __MSABI_LONG(0x00000001)
   1326 #define DBPROPVAL_CB_NON_NULL __MSABI_LONG(0x00000002)
   1327 #define DBPROPVAL_FU_NOT_SUPPORTED __MSABI_LONG(0x00000001)
   1328 #define DBPROPVAL_FU_COLUMN __MSABI_LONG(0x00000002)
   1329 #define DBPROPVAL_FU_TABLE __MSABI_LONG(0x00000004)
   1330 #define DBPROPVAL_FU_CATALOG __MSABI_LONG(0x00000008)
   1331 #define DBPROPVAL_GB_NOT_SUPPORTED __MSABI_LONG(0x00000001)
   1332 #define DBPROPVAL_GB_EQUALS_SELECT __MSABI_LONG(0x00000002)
   1333 #define DBPROPVAL_GB_CONTAINS_SELECT __MSABI_LONG(0x00000004)
   1334 #define DBPROPVAL_GB_NO_RELATION __MSABI_LONG(0x00000008)
   1335 #define DBPROPVAL_HT_DIFFERENT_CATALOGS __MSABI_LONG(0x00000001)
   1336 #define DBPROPVAL_HT_DIFFERENT_PROVIDERS __MSABI_LONG(0x00000002)
   1337 #define DBPROPVAL_IC_UPPER __MSABI_LONG(0x00000001)
   1338 #define DBPROPVAL_IC_LOWER __MSABI_LONG(0x00000002)
   1339 #define DBPROPVAL_IC_SENSITIVE __MSABI_LONG(0x00000004)
   1340 #define DBPROPVAL_IC_MIXED __MSABI_LONG(0x00000008)
   1341 
   1342 #ifdef deprecated
   1343 #define DBPROPVAL_LM_NONE __MSABI_LONG(0x00000001)
   1344 #define DBPROPVAL_LM_READ __MSABI_LONG(0x00000002)
   1345 #define DBPROPVAL_LM_INTENT __MSABI_LONG(0x00000004)
   1346 #define DBPROPVAL_LM_RITE __MSABI_LONG(0x00000008)
   1347 #endif
   1348 
   1349 #define DBPROPVAL_NP_OKTODO __MSABI_LONG(0x00000001)
   1350 #define DBPROPVAL_NP_ABOUTTODO __MSABI_LONG(0x00000002)
   1351 #define DBPROPVAL_NP_SYNCHAFTER __MSABI_LONG(0x00000004)
   1352 #define DBPROPVAL_NP_FAILEDTODO __MSABI_LONG(0x00000008)
   1353 #define DBPROPVAL_NP_DIDEVENT __MSABI_LONG(0x00000010)
   1354 #define DBPROPVAL_NC_END __MSABI_LONG(0x00000001)
   1355 #define DBPROPVAL_NC_HIGH __MSABI_LONG(0x00000002)
   1356 #define DBPROPVAL_NC_LOW __MSABI_LONG(0x00000004)
   1357 #define DBPROPVAL_NC_START __MSABI_LONG(0x00000008)
   1358 #define DBPROPVAL_OO_BLOB __MSABI_LONG(0x00000001)
   1359 #define DBPROPVAL_OO_IPERSIST __MSABI_LONG(0x00000002)
   1360 #define DBPROPVAL_CB_DELETE __MSABI_LONG(0x00000001)
   1361 #define DBPROPVAL_CB_PRESERVE __MSABI_LONG(0x00000002)
   1362 #define DBPROPVAL_SU_DML_STATEMENTS __MSABI_LONG(0x00000001)
   1363 #define DBPROPVAL_SU_TABLE_DEFINITION __MSABI_LONG(0x00000002)
   1364 #define DBPROPVAL_SU_INDEX_DEFINITION __MSABI_LONG(0x00000004)
   1365 #define DBPROPVAL_SU_PRIVILEGE_DEFINITION __MSABI_LONG(0x00000008)
   1366 #define DBPROPVAL_SQ_CORRELATEDSUBQUERIES __MSABI_LONG(0x00000001)
   1367 #define DBPROPVAL_SQ_COMPARISON __MSABI_LONG(0x00000002)
   1368 #define DBPROPVAL_SQ_EXISTS __MSABI_LONG(0x00000004)
   1369 #define DBPROPVAL_SQ_IN __MSABI_LONG(0x00000008)
   1370 #define DBPROPVAL_SQ_QUANTIFIED __MSABI_LONG(0x00000010)
   1371 #define DBPROPVAL_SQ_TABLE __MSABI_LONG(0x00000020)
   1372 #define DBPROPVAL_SS_ISEQUENTIALSTREAM __MSABI_LONG(0x00000001)
   1373 #define DBPROPVAL_SS_ISTREAM __MSABI_LONG(0x00000002)
   1374 #define DBPROPVAL_SS_ISTORAGE __MSABI_LONG(0x00000004)
   1375 #define DBPROPVAL_SS_ILOCKBYTES __MSABI_LONG(0x00000008)
   1376 #define DBPROPVAL_TI_CHAOS __MSABI_LONG(0x00000010)
   1377 #define DBPROPVAL_TI_READUNCOMMITTED __MSABI_LONG(0x00000100)
   1378 #define DBPROPVAL_TI_BROWSE __MSABI_LONG(0x00000100)
   1379 #define DBPROPVAL_TI_CURSORSTABILITY __MSABI_LONG(0x00001000)
   1380 #define DBPROPVAL_TI_READCOMMITTED __MSABI_LONG(0x00001000)
   1381 #define DBPROPVAL_TI_REPEATABLEREAD __MSABI_LONG(0x00010000)
   1382 #define DBPROPVAL_TI_SERIALIZABLE __MSABI_LONG(0x00100000)
   1383 #define DBPROPVAL_TI_ISOLATED __MSABI_LONG(0x00100000)
   1384 #define DBPROPVAL_TR_COMMIT_DC __MSABI_LONG(0x00000001)
   1385 #define DBPROPVAL_TR_COMMIT __MSABI_LONG(0x00000002)
   1386 #define DBPROPVAL_TR_COMMIT_NO __MSABI_LONG(0x00000004)
   1387 #define DBPROPVAL_TR_ABORT_DC __MSABI_LONG(0x00000008)
   1388 #define DBPROPVAL_TR_ABORT __MSABI_LONG(0x00000010)
   1389 #define DBPROPVAL_TR_ABORT_NO __MSABI_LONG(0x00000020)
   1390 #define DBPROPVAL_TR_DONTCARE __MSABI_LONG(0x00000040)
   1391 #define DBPROPVAL_TR_BOTH __MSABI_LONG(0x00000080)
   1392 #define DBPROPVAL_TR_NONE __MSABI_LONG(0x00000100)
   1393 #define DBPROPVAL_TR_OPTIMISTIC __MSABI_LONG(0x00000200)
   1394 #define DBPROPVAL_RT_FREETHREAD __MSABI_LONG(0x00000001)
   1395 #define DBPROPVAL_RT_APTMTTHREAD __MSABI_LONG(0x00000002)
   1396 #define DBPROPVAL_RT_SINGLETHREAD __MSABI_LONG(0x00000004)
   1397 #define DBPROPVAL_UP_CHANGE __MSABI_LONG(0x00000001)
   1398 #define DBPROPVAL_UP_DELETE __MSABI_LONG(0x00000002)
   1399 #define DBPROPVAL_UP_INSERT __MSABI_LONG(0x00000004)
   1400 #define DBPROPVAL_SQL_NONE __MSABI_LONG(0x00000000)
   1401 #define DBPROPVAL_SQL_ODBC_MINIMUM __MSABI_LONG(0x00000001)
   1402 #define DBPROPVAL_SQL_ODBC_CORE __MSABI_LONG(0x00000002)
   1403 #define DBPROPVAL_SQL_ODBC_EXTENDED __MSABI_LONG(0x00000004)
   1404 #define DBPROPVAL_SQL_ANSI89_IEF __MSABI_LONG(0x00000008)
   1405 #define DBPROPVAL_SQL_ANSI92_ENTRY __MSABI_LONG(0x00000010)
   1406 #define DBPROPVAL_SQL_FIPS_TRANSITIONAL __MSABI_LONG(0x00000020)
   1407 #define DBPROPVAL_SQL_ANSI92_INTERMEDIATE __MSABI_LONG(0x00000040)
   1408 #define DBPROPVAL_SQL_ANSI92_FULL __MSABI_LONG(0x00000080)
   1409 #define DBPROPVAL_SQL_ESCAPECLAUSES __MSABI_LONG(0x00000100)
   1410 #define DBPROPVAL_IT_BTREE __MSABI_LONG(0x00000001)
   1411 #define DBPROPVAL_IT_HASH __MSABI_LONG(0x00000002)
   1412 #define DBPROPVAL_IT_CONTENT __MSABI_LONG(0x00000003)
   1413 #define DBPROPVAL_IT_OTHER __MSABI_LONG(0x00000004)
   1414 #define DBPROPVAL_IN_DISALLOWNULL __MSABI_LONG(0x00000001)
   1415 #define DBPROPVAL_IN_IGNORENULL __MSABI_LONG(0x00000002)
   1416 #define DBPROPVAL_IN_IGNOREANYNULL __MSABI_LONG(0x00000004)
   1417 #define DBPROPVAL_TC_NONE __MSABI_LONG(0x00000000)
   1418 #define DBPROPVAL_TC_DML __MSABI_LONG(0x00000001)
   1419 #define DBPROPVAL_TC_DDL_COMMIT __MSABI_LONG(0x00000002)
   1420 #define DBPROPVAL_TC_DDL_IGNORE __MSABI_LONG(0x00000004)
   1421 #define DBPROPVAL_TC_ALL __MSABI_LONG(0x00000008)
   1422 #define DBPROPVAL_NP_OKTODO __MSABI_LONG(0x00000001)
   1423 #define DBPROPVAL_NP_ABOUTTODO __MSABI_LONG(0x00000002)
   1424 #define DBPROPVAL_NP_SYNCHAFTER __MSABI_LONG(0x00000004)
   1425 #define DBPROPVAL_OA_NOTSUPPORTED __MSABI_LONG(0x00000001)
   1426 #define DBPROPVAL_OA_ATEXECUTE __MSABI_LONG(0x00000002)
   1427 #define DBPROPVAL_OA_ATROWRELEASE __MSABI_LONG(0x00000004)
   1428 #define DBPROPVAL_MR_NOTSUPPORTED __MSABI_LONG(0x00000000)
   1429 #define DBPROPVAL_MR_SUPPORTED __MSABI_LONG(0x00000001)
   1430 #define DBPROPVAL_MR_CONCURRENT __MSABI_LONG(0x00000002)
   1431 #define DBPROPVAL_PT_GUID_NAME __MSABI_LONG(0x00000001)
   1432 #define DBPROPVAL_PT_GUID_PROPID __MSABI_LONG(0x00000002)
   1433 #define DBPROPVAL_PT_NAME __MSABI_LONG(0x00000004)
   1434 #define DBPROPVAL_PT_GUID __MSABI_LONG(0x00000008)
   1435 #define DBPROPVAL_PT_PROPID __MSABI_LONG(0x00000010)
   1436 #define DBPROPVAL_PT_PGUID_NAME __MSABI_LONG(0x00000020)
   1437 #define DBPROPVAL_PT_PGUID_PROPID __MSABI_LONG(0x00000040)
   1438 #define DBPROPVAL_NT_SINGLEROW __MSABI_LONG(0x00000001)
   1439 #define DBPROPVAL_NT_MULTIPLEROWS __MSABI_LONG(0x00000002)
   1440 
   1441 #if (OLEDBVER >= 0x0150)
   1442 #define DBPROPVAL_ASYNCH_INITIALIZE __MSABI_LONG(0x00000001)
   1443 #define DBPROPVAL_ASYNCH_SEQUENTIALPOPULATION __MSABI_LONG(0x00000002)
   1444 #define DBPROPVAL_ASYNCH_RANDOMPOPULATION __MSABI_LONG(0x00000004)
   1445 #define DBPROPVAL_OP_EQUAL __MSABI_LONG(0x00000001)
   1446 #define DBPROPVAL_OP_RELATIVE __MSABI_LONG(0x00000002)
   1447 #define DBPROPVAL_OP_STRING __MSABI_LONG(0x00000004)
   1448 #define DBPROPVAL_CO_EQUALITY __MSABI_LONG(0x00000001)
   1449 #define DBPROPVAL_CO_STRING __MSABI_LONG(0x00000002)
   1450 #define DBPROPVAL_CO_CASESENSITIVE __MSABI_LONG(0x00000004)
   1451 #define DBPROPVAL_CO_CASEINSENSITIVE __MSABI_LONG(0x00000008)
   1452 #endif
   1453 
   1454 #if (OLEDBVER >= 0x0200)
   1455 #define DBPROPVAL_CO_CONTAINS __MSABI_LONG(0x00000010)
   1456 #define DBPROPVAL_CO_BEGINSWITH __MSABI_LONG(0x00000020)
   1457 #define DBPROPVAL_ASYNCH_BACKGROUNDPOPULATION __MSABI_LONG(0x00000008)
   1458 #define DBPROPVAL_ASYNCH_PREPOPULATE __MSABI_LONG(0x00000010)
   1459 #define DBPROPVAL_ASYNCH_POPULATEONDEMAND __MSABI_LONG(0x00000020)
   1460 #define DBPROPVAL_LM_NONE __MSABI_LONG(0x00000001)
   1461 #define DBPROPVAL_LM_SINGLEROW __MSABI_LONG(0x00000002)
   1462 #define DBPROPVAL_SQL_SUBMINIMUM __MSABI_LONG(0x00000200)
   1463 #define DBPROPVAL_DST_TDP __MSABI_LONG(0x00000001)
   1464 #define DBPROPVAL_DST_MDP __MSABI_LONG(0x00000002)
   1465 #define DBPROPVAL_DST_TDPANDMDP __MSABI_LONG(0x00000003)
   1466 #define MDPROPVAL_AU_UNSUPPORTED __MSABI_LONG(0x00000000)
   1467 #define MDPROPVAL_AU_UNCHANGED __MSABI_LONG(0x00000001)
   1468 #define MDPROPVAL_AU_UNKNOWN __MSABI_LONG(0x00000002)
   1469 #define MDPROPVAL_MF_WITH_CALCMEMBERS __MSABI_LONG(0x00000001)
   1470 #define MDPROPVAL_MF_WITH_NAMEDSETS __MSABI_LONG(0x00000002)
   1471 #define MDPROPVAL_MF_CREATE_CALCMEMBERS __MSABI_LONG(0x00000004)
   1472 #define MDPROPVAL_MF_CREATE_NAMEDSETS __MSABI_LONG(0x00000008)
   1473 #define MDPROPVAL_MF_SCOPE_SESSION __MSABI_LONG(0x00000010)
   1474 #define MDPROPVAL_MF_SCOPE_GLOBAL __MSABI_LONG(0x00000020)
   1475 #define MDPROPVAL_MMF_COUSIN __MSABI_LONG(0x00000001)
   1476 #define MDPROPVAL_MMF_PARALLELPERIOD __MSABI_LONG(0x00000002)
   1477 #define MDPROPVAL_MMF_OPENINGPERIOD __MSABI_LONG(0x00000004)
   1478 #define MDPROPVAL_MMF_CLOSINGPERIOD __MSABI_LONG(0x00000008)
   1479 #define MDPROPVAL_MNF_MEDIAN __MSABI_LONG(0x00000001)
   1480 #define MDPROPVAL_MNF_VAR __MSABI_LONG(0x00000002)
   1481 #define MDPROPVAL_MNF_STDDEV __MSABI_LONG(0x00000004)
   1482 #define MDPROPVAL_MNF_RANK __MSABI_LONG(0x00000008)
   1483 #define MDPROPVAL_MNF_AGGREGATE __MSABI_LONG(0x00000010)
   1484 #define MDPROPVAL_MNF_COVARIANCE __MSABI_LONG(0x00000020)
   1485 #define MDPROPVAL_MNF_CORRELATION __MSABI_LONG(0x00000040)
   1486 #define MDPROPVAL_MNF_LINREGSLOPE __MSABI_LONG(0x00000080)
   1487 #define MDPROPVAL_MNF_LINREGVARIANCE __MSABI_LONG(0x00000100)
   1488 #define MDPROPVAL_MNF_LINREG2 __MSABI_LONG(0x00000200)
   1489 #define MDPROPVAL_MNF_LINREGPOINT __MSABI_LONG(0x00000400)
   1490 #define MDPROPVAL_MNF_DRILLDOWNLEVEL __MSABI_LONG(0x00000800)
   1491 #define MDPROPVAL_MNF_DRILLDOWNMEMBERTOP __MSABI_LONG(0x00001000)
   1492 #define MDPROPVAL_MNF_DRILLDOWNMEMBERBOTTOM __MSABI_LONG(0x00002000)
   1493 #define MDPROPVAL_MNF_DRILLDOWNLEVELTOP __MSABI_LONG(0x00004000)
   1494 #define MDPROPVAL_MNF_DRILLDOWNLEVELBOTTOM __MSABI_LONG(0x00008000)
   1495 #define MDPROPVAL_MNF_DRILLUPMEMBER __MSABI_LONG(0x00010000)
   1496 #define MDPROPVAL_MNF_DRILLUPLEVEL __MSABI_LONG(0x00020000)
   1497 #define MDPROPVAL_MMF_COUSIN __MSABI_LONG(0x00000001)
   1498 #define MDPROPVAL_MMF_PARALLELPERIOD __MSABI_LONG(0x00000002)
   1499 #define MDPROPVAL_MMF_OPENINGPERIOD __MSABI_LONG(0x00000004)
   1500 #define MDPROPVAL_MMF_CLOSINGPERIOD __MSABI_LONG(0x00000008)
   1501 #define MDPROPVAL_MSF_TOPPERCENT __MSABI_LONG(0x00000001)
   1502 #define MDPROPVAL_MSF_BOTTOMPERCENT __MSABI_LONG(0x00000002)
   1503 #define MDPROPVAL_MSF_TOPSUM __MSABI_LONG(0x00000004)
   1504 #define MDPROPVAL_MSF_BOTTOMSUM __MSABI_LONG(0x00000008)
   1505 #define MDPROPVAL_MSF_PERIODSTODATE __MSABI_LONG(0x00000010)
   1506 #define MDPROPVAL_MSF_LASTPERIODS __MSABI_LONG(0x00000020)
   1507 #define MDPROPVAL_MSF_YTD __MSABI_LONG(0x00000040)
   1508 #define MDPROPVAL_MSF_QTD __MSABI_LONG(0x00000080)
   1509 #define MDPROPVAL_MSF_MTD __MSABI_LONG(0x00000100)
   1510 #define MDPROPVAL_MSF_WTD __MSABI_LONG(0x00000200)
   1511 #define MDPROPVAL_MSF_DRILLDOWNMEMBBER __MSABI_LONG(0x00000400)
   1512 #define MDPROPVAL_MSF_DRILLDOWNLEVEL __MSABI_LONG(0x00000800)
   1513 #define MDPROPVAL_MSF_DRILLDOWNMEMBERTOP __MSABI_LONG(0x00001000)
   1514 #define MDPROPVAL_MSF_DRILLDOWNMEMBERBOTTOM __MSABI_LONG(0x00002000)
   1515 #define MDPROPVAL_MSF_DRILLDOWNLEVELTOP __MSABI_LONG(0x00004000)
   1516 #define MDPROPVAL_MSF_DRILLDOWNLEVELBOTTOM __MSABI_LONG(0x00008000)
   1517 #define MDPROPVAL_MSF_DRILLUPMEMBER __MSABI_LONG(0x00010000)
   1518 #define MDPROPVAL_MSF_DRILLUPLEVEL __MSABI_LONG(0x00020000)
   1519 #define MDPROPVAL_MSF_TOGGLEDRILLSTATE __MSABI_LONG(0x00040000)
   1520 
   1521 #define MDPROPVAL_MD_SELF __MSABI_LONG(0x00000001)
   1522 #define MDPROPVAL_MD_BEFORE __MSABI_LONG(0x00000002)
   1523 #define MDPROPVAL_MD_AFTER __MSABI_LONG(0x00000004)
   1524 
   1525 #define MDPROPVAL_MSC_LESSTHAN __MSABI_LONG(0x00000001)
   1526 #define MDPROPVAL_MSC_GREATERTHAN __MSABI_LONG(0x00000002)
   1527 #define MDPROPVAL_MSC_LESSTHANEQUAL __MSABI_LONG(0x00000004)
   1528 #define MDPROPVAL_MSC_GREATERTHANEQUAL __MSABI_LONG(0x00000008)
   1529 #define MDPROPVAL_MC_SINGLECASE __MSABI_LONG(0x00000001)
   1530 #define MDPROPVAL_MC_SEARCHEDCASE __MSABI_LONG(0x00000002)
   1531 #define MDPROPVAL_MOQ_OUTERREFERENCE __MSABI_LONG(0x00000001)
   1532 #define MDPROPVAL_MOQ_DATASOURCE_CUBE __MSABI_LONG(0x00000001)
   1533 #define MDPROPVAL_MOQ_CATALOG_CUBE __MSABI_LONG(0x00000002)
   1534 #define MDPROPVAL_MOQ_SCHEMA_CUBE __MSABI_LONG(0x00000004)
   1535 #define MDPROPVAL_MOQ_CUBE_DIM __MSABI_LONG(0x00000008)
   1536 #define MDPROPVAL_MOQ_DIM_HIER __MSABI_LONG(0x00000010)
   1537 #define MDPROPVAL_MOQ_DIMHIER_LEVEL __MSABI_LONG(0x00000020)
   1538 #define MDPROPVAL_MOQ_LEVEL_MEMBER __MSABI_LONG(0x00000040)
   1539 #define MDPROPVAL_MOQ_MEMBER_MEMBER __MSABI_LONG(0x00000080)
   1540 #define MDPROPVAL_MOQ_DIMHIER_MEMBER __MSABI_LONG(0x00000100)
   1541 #define MDPROPVAL_FS_FULL_SUPPORT __MSABI_LONG(0x00000001)
   1542 #define MDPROPVAL_FS_GENERATED_COLUMN __MSABI_LONG(0x00000002)
   1543 #define MDPROPVAL_FS_GENERATED_DIMENSION __MSABI_LONG(0x00000003)
   1544 #define MDPROPVAL_FS_NO_SUPPORT __MSABI_LONG(0x00000004)
   1545 #define MDPROPVAL_NL_NAMEDLEVELS __MSABI_LONG(0x00000001)
   1546 #define MDPROPVAL_NL_NUMBEREDLEVELS __MSABI_LONG(0x00000002)
   1547 #define MDPROPVAL_MJC_SINGLECUBE __MSABI_LONG(0x00000001)
   1548 #define MDPROPVAL_MJC_MULTICUBES __MSABI_LONG(0x00000002)
   1549 #define MDPROPVAL_MJC_IMPLICITCUBE __MSABI_LONG(0x00000004)
   1550 #define MDPROPVAL_RR_NORANGEROWSET __MSABI_LONG(0x00000001)
   1551 #define MDPROPVAL_RR_READONLY __MSABI_LONG(0x00000002)
   1552 #define MDPROPVAL_RR_UPDATE __MSABI_LONG(0x00000004)
   1553 #define MDPROPVAL_MS_MULTIPLETUPLES __MSABI_LONG(0x00000001)
   1554 #define MDPROPVAL_MS_SINGLETUPLE __MSABI_LONG(0x00000002)
   1555 #define MDPROPVAL_NME_ALLDIMENSIONS __MSABI_LONG(0x00000000)
   1556 #define MDPROPVAL_NME_MEASURESONLY __MSABI_LONG(0x00000001)
   1557 #define DBPROPVAL_AO_SEQUENTIAL __MSABI_LONG(0x00000000)
   1558 #define DBPROPVAL_AO_SEQUENTIALSTORAGEOBJECTS __MSABI_LONG(0x00000001)
   1559 #define DBPROPVAL_AO_RANDOM __MSABI_LONG(0x00000002)
   1560 #define DBPROPVAL_BD_ROWSET __MSABI_LONG(0x00000000)
   1561 #define DBPROPVAL_BD_INTRANSACTION __MSABI_LONG(0x00000001)
   1562 #define DBPROPVAL_BD_XTRANSACTION __MSABI_LONG(0x00000002)
   1563 #define DBPROPVAL_BD_REORGANIZATION __MSABI_LONG(0x00000003)
   1564 #define BMK_DURABILITY_ROWSET DBPROPVAL_BD_ROWSET
   1565 #define BMK_DURABILITY_INTRANSACTION DBPROPVAL_BD_INTRANSACTION
   1566 #define BMK_DURABILITY_XTRANSACTION DBPROPVAL_BD_XTRANSACTION
   1567 #define BMK_DURABILITY_REORGANIZATION DBPROPVAL_BD_REORGANIZATION
   1568 #define DBPROPVAL_BO_NOLOG __MSABI_LONG(0x00000000)
   1569 #define DBPROPVAL_BO_NOINDEXUPDATE __MSABI_LONG(0x00000001)
   1570 #define DBPROPVAL_BO_REFINTEGRITY __MSABI_LONG(0x00000002)
   1571 #if !defined(_WINBASE_)
   1572 #define OF_READ 0x00000000
   1573 #define OF_WRITE 0x00000001
   1574 #define OF_READWRITE 0x00000002
   1575 #define OF_SHARE_COMPAT 0x00000000
   1576 #define OF_SHARE_EXCLUSIVE 0x00000010
   1577 #define OF_SHARE_DENY_WRITE 0x00000020
   1578 #define OF_SHARE_DENY_READ 0x00000030
   1579 #define OF_SHARE_DENY_NONE 0x00000040
   1580 #define OF_PARSE 0x00000100
   1581 #define OF_DELETE 0x00000200
   1582 #define OF_VERIFY 0x00000400
   1583 #define OF_CANCEL 0x00000800
   1584 #define OF_CREATE 0x00001000
   1585 #define OF_PROMPT 0x00002000
   1586 #define OF_EXIST 0x00004000
   1587 #define OF_REOPEN 0x00008000
   1588 #endif
   1589 #define DBPROPVAL_STGM_READ OF_READ
   1590 #define DBPROPVAL_STGM_WRITE OF_WRITE
   1591 #define DBPROPVAL_STGM_READWRITE OF_READWRITE
   1592 #define DBPROPVAL_STGM_SHARE_DENY_NONE OF_SHARE_DENY_NONE
   1593 #define DBPROPVAL_STGM_SHARE_DENY_READ OF_SHARE_DENY_READ
   1594 #define DBPROPVAL_STGM_SHARE_DENY_WRITE OF_SHARE_DENY_WRITE
   1595 #define DBPROPVAL_STGM_SHARE_EXCLUSIVE OF_SHARE_EXCLUSIVE
   1596 #define DBPROPVAL_STGM_DIRECT 0x00010000
   1597 #define DBPROPVAL_STGM_TRANSACTED 0x00020000
   1598 #define DBPROPVAL_STGM_CREATE OF_CREATE
   1599 #define DBPROPVAL_STGM_CONVERT 0x00040000
   1600 #define DBPROPVAL_STGM_FAILIFTHERE 0x00080000
   1601 #define DBPROPVAL_STGM_PRIORITY 0x00100000
   1602 #define DBPROPVAL_STGM_DELETEONRELEASE 0x00200000
   1603 #define DBPROPVAL_GB_COLLATE __MSABI_LONG(0x00000010)
   1604 #define DBPROPVAL_CS_UNINITIALIZED __MSABI_LONG(0x00000000)
   1605 #define DBPROPVAL_CS_INITIALIZED __MSABI_LONG(0x00000001)
   1606 #define DBPROPVAL_CS_COMMUNICATIONFAILURE __MSABI_LONG(0x00000002)
   1607 #define DBPROPVAL_RD_RESETALL __MSABI_LONG(0xffffffff)
   1608 #define DBPROPVAL_OS_RESOURCEPOOLING __MSABI_LONG(0x00000001)
   1609 #define DBPROPVAL_OS_TXNENLISTMENT __MSABI_LONG(0x00000002)
   1610 #define DBPROPVAL_OS_CLIENTCURSOR __MSABI_LONG(0x00000004)
   1611 #define DBPROPVAL_OS_ENABLEALL __MSABI_LONG(0xffffffff)
   1612 #define DBPROPVAL_BI_CROSSROWSET __MSABI_LONG(0x00000001)
   1613 #endif
   1614 
   1615 #if (OLEDBVER >= 0x0210)
   1616 #define MDPROPVAL_NL_SCHEMAONLY __MSABI_LONG(0x00000004)
   1617 #define DBPROPVAL_OS_DISABLEALL __MSABI_LONG(0x00000000)
   1618 #define DBPROPVAL_OO_ROWOBJECT __MSABI_LONG(0x00000004)
   1619 #define DBPROPVAL_OO_SCOPED __MSABI_LONG(0x00000008)
   1620 #define DBPROPVAL_OO_DIRECTBIND __MSABI_LONG(0x00000010)
   1621 #define DBPROPVAL_DST_DOCSOURCE __MSABI_LONG(0x00000004)
   1622 #define DBPROPVAL_GU_NOTSUPPORTED __MSABI_LONG(0x00000001)
   1623 #define DBPROPVAL_GU_SUFFIX __MSABI_LONG(0x00000002)
   1624 #define DB_BINDFLAGS_DELAYFETCHCOLUMNS __MSABI_LONG(0x00000001)
   1625 #define DB_BINDFLAGS_DELAYFETCHSTREAM __MSABI_LONG(0x00000002)
   1626 #define DB_BINDFLAGS_RECURSIVE __MSABI_LONG(0x00000004)
   1627 #define DB_BINDFLAGS_OUTPUT __MSABI_LONG(0x00000008)
   1628 #define DB_BINDFLAGS_COLLECTION __MSABI_LONG(0x00000010)
   1629 #define DB_BINDFLAGS_OPENIFEXISTS __MSABI_LONG(0x00000020)
   1630 #define DB_BINDFLAGS_OVERWRITE __MSABI_LONG(0x00000040)
   1631 #define DB_BINDFLAGS_ISSTRUCTUREDDOCUMENT __MSABI_LONG(0x00000080)
   1632 #define DBPROPVAL_ORS_TABLE __MSABI_LONG(0x00000000)
   1633 #define DBPROPVAL_ORS_INDEX __MSABI_LONG(0x00000001)
   1634 #define DBPROPVAL_ORS_INTEGRATEDINDEX __MSABI_LONG(0x00000002)
   1635 #define DBPROPVAL_TC_DDL_LOCK __MSABI_LONG(0x00000010)
   1636 #define DBPROPVAL_ORS_STOREDPROC __MSABI_LONG(0x00000004)
   1637 #define DBPROPVAL_IN_ALLOWNULL __MSABI_LONG(0x00000000)
   1638 #endif
   1639 
   1640 #if (OLEDBVER >= 0x0250)
   1641 #define DBPROPVAL_OO_SINGLETON __MSABI_LONG(0x00000020)
   1642 #define DBPROPVAL_OS_AGR_AFTERSESSION __MSABI_LONG(0x00000008)
   1643 #define DBPROPVAL_CM_TRANSACTIONS __MSABI_LONG(0x00000001)
   1644 #endif
   1645 
   1646 #if (OLEDBVER >= 0x0260)
   1647 #define DBPROPVAL_TS_CARDINALITY __MSABI_LONG(0x00000001)
   1648 #define DBPROPVAL_TS_HISTOGRAM __MSABI_LONG(0x00000002)
   1649 #define DBPROPVAL_ORS_HISTOGRAM __MSABI_LONG(0x00000008)
   1650 #define MDPROPVAL_VISUAL_MODE_DEFAULT __MSABI_LONG(0x00000000)
   1651 #define MDPROPVAL_VISUAL_MODE_VISUAL __MSABI_LONG(0x00000001)
   1652 #define MDPROPVAL_VISUAL_MODE_VISUAL_OFF __MSABI_LONG(0x00000002)
   1653 #endif
   1654 
   1655 #define DB_IMP_LEVEL_ANONYMOUS 0x00
   1656 #define DB_IMP_LEVEL_IDENTIFY 0x01
   1657 #define DB_IMP_LEVEL_IMPERSONATE 0x02
   1658 #define DB_IMP_LEVEL_DELEGATE 0x03
   1659 #define DBPROMPT_PROMPT 0x01
   1660 #define DBPROMPT_COMPLETE 0x02
   1661 #define DBPROMPT_COMPLETEREQUIRED 0x03
   1662 #define DBPROMPT_NOPROMPT 0x04
   1663 #define DB_PROT_LEVEL_NONE 0x00
   1664 #define DB_PROT_LEVEL_CONNECT 0x01
   1665 #define DB_PROT_LEVEL_CALL 0x02
   1666 #define DB_PROT_LEVEL_PKT 0x03
   1667 #define DB_PROT_LEVEL_PKT_INTEGRITY 0x04
   1668 #define DB_PROT_LEVEL_PKT_PRIVACY 0x05
   1669 #define DB_MODE_READ 0x01
   1670 #define DB_MODE_WRITE 0x02
   1671 #define DB_MODE_READWRITE 0x03
   1672 #define DB_MODE_SHARE_DENY_READ 0x04
   1673 #define DB_MODE_SHARE_DENY_WRITE 0x08
   1674 #define DB_MODE_SHARE_EXCLUSIVE 0x0c
   1675 #define DB_MODE_SHARE_DENY_NONE 0x10
   1676 #define DBCOMPUTEMODE_COMPUTED 0x01
   1677 #define DBCOMPUTEMODE_DYNAMIC 0x02
   1678 #define DBCOMPUTEMODE_NOTCOMPUTED 0x03
   1679 #define DBPROPVAL_DF_INITIALLY_DEFERRED 0x01
   1680 #define DBPROPVAL_DF_INITIALLY_IMMEDIATE 0x02
   1681 #define DBPROPVAL_DF_NOT_DEFERRABLE 0x03
   1682 
   1683   typedef struct tagDBPARAMS {
   1684     void *pData;
   1685     DB_UPARAMS cParamSets;
   1686     HACCESSOR hAccessor;
   1687   } DBPARAMS;
   1688 
   1689   typedef DWORD DBPARAMFLAGS;
   1690 
   1691   enum DBPARAMFLAGSENUM {
   1692     DBPARAMFLAGS_ISINPUT = 0x1,DBPARAMFLAGS_ISOUTPUT = 0x2,DBPARAMFLAGS_ISSIGNED = 0x10,DBPARAMFLAGS_ISNULLABLE = 0x40,DBPARAMFLAGS_ISLONG = 0x80
   1693   };
   1694 
   1695 #if (OLEDBVER >= 0x0200)
   1696   enum DBPARAMFLAGSENUM20 {
   1697     DBPARAMFLAGS_SCALEISNEGATIVE = 0x100
   1698   };
   1699 #endif
   1700 
   1701   typedef struct tagDBPARAMINFO {
   1702     DBPARAMFLAGS dwFlags;
   1703     DBORDINAL iOrdinal;
   1704     LPOLESTR pwszName;
   1705     ITypeInfo *pTypeInfo;
   1706     DBLENGTH ulParamSize;
   1707     DBTYPE wType;
   1708     BYTE bPrecision;
   1709     BYTE bScale;
   1710   } DBPARAMINFO;
   1711 
   1712   typedef DWORD DBPROPID;
   1713 
   1714   typedef struct tagDBPROPIDSET {
   1715     DBPROPID *rgPropertyIDs;
   1716     ULONG cPropertyIDs;
   1717     GUID guidPropertySet;
   1718   } DBPROPIDSET;
   1719 
   1720   typedef DWORD DBPROPFLAGS;
   1721 
   1722   enum DBPROPFLAGSENUM {
   1723     DBPROPFLAGS_NOTSUPPORTED = 0,DBPROPFLAGS_COLUMN = 0x1,DBPROPFLAGS_DATASOURCE = 0x2,DBPROPFLAGS_DATASOURCECREATE = 0x4,
   1724     DBPROPFLAGS_DATASOURCEINFO = 0x8,DBPROPFLAGS_DBINIT = 0x10,DBPROPFLAGS_INDEX = 0x20,DBPROPFLAGS_ROWSET = 0x40,DBPROPFLAGS_TABLE = 0x80,
   1725     DBPROPFLAGS_COLUMNOK = 0x100,DBPROPFLAGS_READ = 0x200,DBPROPFLAGS_WRITE = 0x400,DBPROPFLAGS_REQUIRED = 0x800,DBPROPFLAGS_SESSION = 0x1000
   1726   };
   1727 
   1728 #if (OLEDBVER >= 0x0210)
   1729   enum DBPROPFLAGSENUM21 {
   1730     DBPROPFLAGS_TRUSTEE = 0x2000
   1731   };
   1732 #endif
   1733 
   1734 #if (OLEDBVER >= 0x0250)
   1735   enum DBPROPFLAGSENUM25 {
   1736     DBPROPFLAGS_VIEW = 0x4000
   1737   };
   1738 #endif
   1739 
   1740 #if (OLEDBVER >= 0x0260)
   1741   enum DBPROPFLAGSENUM26 {
   1742     DBPROPFLAGS_STREAM = 0x8000
   1743   };
   1744 #endif
   1745 
   1746   typedef struct tagDBPROPINFO {
   1747     LPOLESTR pwszDescription;
   1748     DBPROPID dwPropertyID;
   1749     DBPROPFLAGS dwFlags;
   1750     VARTYPE vtType;
   1751     VARIANT vValues;
   1752   } DBPROPINFO;
   1753 
   1754   typedef DBPROPINFO *PDBPROPINFO;
   1755 
   1756   typedef struct tagDBPROPINFOSET {
   1757     PDBPROPINFO rgPropertyInfos;
   1758     ULONG cPropertyInfos;
   1759     GUID guidPropertySet;
   1760   } DBPROPINFOSET;
   1761 
   1762   typedef DWORD DBPROPOPTIONS;
   1763 
   1764   enum DBPROPOPTIONSENUM {
   1765     DBPROPOPTIONS_REQUIRED = 0,DBPROPOPTIONS_SETIFCHEAP = 0x1,DBPROPOPTIONS_OPTIONAL = 0x1
   1766   };
   1767   typedef DWORD DBPROPSTATUS;
   1768 
   1769   enum DBPROPSTATUSENUM {
   1770     DBPROPSTATUS_OK = 0,DBPROPSTATUS_NOTSUPPORTED = 1,DBPROPSTATUS_BADVALUE = 2,DBPROPSTATUS_BADOPTION = 3,DBPROPSTATUS_BADCOLUMN = 4,
   1771     DBPROPSTATUS_NOTALLSETTABLE = 5,DBPROPSTATUS_NOTSETTABLE = 6,DBPROPSTATUS_NOTSET = 7,DBPROPSTATUS_CONFLICTING = 8
   1772   };
   1773 
   1774 #if (OLEDBVER >= 0x0210)
   1775   enum DBPROPSTATUSENUM21 {
   1776     DBPROPSTATUS_NOTAVAILABLE = 9
   1777   };
   1778 #endif
   1779 
   1780   typedef struct tagDBPROP {
   1781     DBPROPID dwPropertyID;
   1782     DBPROPOPTIONS dwOptions;
   1783     DBPROPSTATUS dwStatus;
   1784     DBID colid;
   1785     VARIANT vValue;
   1786   } DBPROP;
   1787 
   1788   typedef struct tagDBPROPSET {
   1789     DBPROP *rgProperties;
   1790     ULONG cProperties;
   1791     GUID guidPropertySet;
   1792   } DBPROPSET;
   1793 
   1794 #define DBPARAMTYPE_INPUT 0x01
   1795 #define DBPARAMTYPE_INPUTOUTPUT 0x02
   1796 #define DBPARAMTYPE_OUTPUT 0x03
   1797 #define DBPARAMTYPE_RETURNVALUE 0x04
   1798 #define DB_PT_UNKNOWN 0x01
   1799 #define DB_PT_PROCEDURE 0x02
   1800 #define DB_PT_FUNCTION 0x03
   1801 #define DB_REMOTE 0x01
   1802 #define DB_LOCAL_SHARED 0x02
   1803 #define DB_LOCAL_EXCLUSIVE 0x03
   1804 #define DB_COLLATION_ASC 0x01
   1805 #define DB_COLLATION_DESC 0x02
   1806 #define DB_UNSEARCHABLE 0x01
   1807 #define DB_LIKE_ONLY 0x02
   1808 #define DB_ALL_EXCEPT_LIKE 0x03
   1809 #define DB_SEARCHABLE 0x04
   1810 
   1811 #if (OLEDBVER >= 0x0200)
   1812 #define MDTREEOP_CHILDREN 0x01
   1813 #define MDTREEOP_SIBLINGS 0x02
   1814 #define MDTREEOP_PARENT 0x04
   1815 #define MDTREEOP_SELF 0x08
   1816 #define MDTREEOP_DESCENDANTS 0x10
   1817 #define MDTREEOP_ANCESTORS 0x20
   1818 #define MD_DIMTYPE_UNKNOWN 0x00
   1819 #define MD_DIMTYPE_TIME 0x01
   1820 #define MD_DIMTYPE_MEASURE 0x02
   1821 #define MD_DIMTYPE_OTHER 0x03
   1822 #define MDLEVEL_TYPE_UNKNOWN 0x0000
   1823 #define MDLEVEL_TYPE_REGULAR 0x0000
   1824 #define MDLEVEL_TYPE_ALL 0x0001
   1825 #define MDLEVEL_TYPE_CALCULATED 0x0002
   1826 #define MDLEVEL_TYPE_TIME 0x0004
   1827 #define MDLEVEL_TYPE_RESERVED1 0x0008
   1828 #define MDLEVEL_TYPE_TIME_YEARS 0x0014
   1829 #define MDLEVEL_TYPE_TIME_HALF_YEAR 0x0024
   1830 #define MDLEVEL_TYPE_TIME_QUARTERS 0x0044
   1831 #define MDLEVEL_TYPE_TIME_MONTHS 0x0084
   1832 #define MDLEVEL_TYPE_TIME_WEEKS 0x0104
   1833 #define MDLEVEL_TYPE_TIME_DAYS 0x0204
   1834 #define MDLEVEL_TYPE_TIME_HOURS 0x0304
   1835 #define MDLEVEL_TYPE_TIME_MINUTES 0x0404
   1836 #define MDLEVEL_TYPE_TIME_SECONDS 0x0804
   1837 #define MDLEVEL_TYPE_TIME_UNDEFINED 0x1004
   1838 #define MDMEASURE_AGGR_UNKNOWN 0x00
   1839 #define MDMEASURE_AGGR_SUM 0x01
   1840 #define MDMEASURE_AGGR_COUNT 0x02
   1841 #define MDMEASURE_AGGR_MIN 0x03
   1842 #define MDMEASURE_AGGR_MAX 0x04
   1843 #define MDMEASURE_AGGR_AVG 0x05
   1844 #define MDMEASURE_AGGR_VAR 0x06
   1845 #define MDMEASURE_AGGR_STD 0x07
   1846 #define MDMEASURE_AGGR_CALCULATED 0x7f
   1847 #define MDPROP_MEMBER 0x01
   1848 #define MDPROP_CELL 0x02
   1849 #define MDMEMBER_TYPE_UNKNOWN 0x00
   1850 #define MDMEMBER_TYPE_REGULAR 0x01
   1851 #define MDMEMBER_TYPE_ALL 0x02
   1852 #define MDMEMBER_TYPE_MEASURE 0x03
   1853 #define MDMEMBER_TYPE_FORMULA 0x04
   1854 #define MDMEMBER_TYPE_RESERVE1 0x05
   1855 #define MDMEMBER_TYPE_RESERVE2 0x06
   1856 #define MDMEMBER_TYPE_RESERVE3 0x07
   1857 #define MDMEMBER_TYPE_RESERVE4 0x08
   1858 #define MDDISPINFO_DRILLED_DOWN 0x00010000
   1859 #define MDDISPINFO_PARENT_SAME_AS_PREV 0x00020000
   1860 #endif
   1861 
   1862   typedef DWORD DBINDEX_COL_ORDER;
   1863 
   1864   enum DBINDEX_COL_ORDERENUM {
   1865     DBINDEX_COL_ORDER_ASC = 0,DBINDEX_COL_ORDER_DESC = DBINDEX_COL_ORDER_ASC + 1
   1866   };
   1867   typedef struct tagDBINDEXCOLUMNDESC {
   1868     DBID *pColumnID;
   1869     DBINDEX_COL_ORDER eIndexColOrder;
   1870   } DBINDEXCOLUMNDESC;
   1871 
   1872   typedef struct tagDBCOLUMNDESC {
   1873     LPOLESTR pwszTypeName;
   1874     ITypeInfo *pTypeInfo;
   1875     DBPROPSET *rgPropertySets;
   1876     CLSID *pclsid;
   1877     ULONG cPropertySets;
   1878     DBLENGTH ulColumnSize;
   1879     DBID dbcid;
   1880     DBTYPE wType;
   1881     BYTE bPrecision;
   1882     BYTE bScale;
   1883   } DBCOLUMNDESC;
   1884 
   1885 #if (OLEDBVER >= 0x0210)
   1886   typedef struct tagDBCOLUMNACCESS {
   1887     void *pData;
   1888     DBID columnid;
   1889     DBLENGTH cbDataLen;
   1890     DBSTATUS dwStatus;
   1891     DBLENGTH cbMaxLen;
   1892     DB_DWRESERVE dwReserved;
   1893     DBTYPE wType;
   1894     BYTE bPrecision;
   1895     BYTE bScale;
   1896   } DBCOLUMNACCESS;
   1897 #endif
   1898 
   1899 #if (OLEDBVER >= 0x0200)
   1900   typedef DWORD DBCOLUMNDESCFLAGS;
   1901 
   1902   enum DBCOLUMNDESCFLAGSENUM {
   1903     DBCOLUMNDESCFLAGS_TYPENAME = 0x1,DBCOLUMNDESCFLAGS_ITYPEINFO = 0x2,DBCOLUMNDESCFLAGS_PROPERTIES = 0x4,DBCOLUMNDESCFLAGS_CLSID = 0x8,
   1904     DBCOLUMNDESCFLAGS_COLSIZE = 0x10,DBCOLUMNDESCFLAGS_DBCID = 0x20,DBCOLUMNDESCFLAGS_WTYPE = 0x40,DBCOLUMNDESCFLAGS_PRECISION = 0x80,
   1905     DBCOLUMNDESCFLAGS_SCALE = 0x100
   1906   };
   1907 #endif
   1908   typedef DWORD DBEVENTPHASE;
   1909 
   1910   enum DBEVENTPHASEENUM {
   1911     DBEVENTPHASE_OKTODO = 0,DBEVENTPHASE_ABOUTTODO,DBEVENTPHASE_SYNCHAFTER,
   1912     DBEVENTPHASE_FAILEDTODO,DBEVENTPHASE_DIDEVENT
   1913   };
   1914   typedef DWORD DBREASON;
   1915 
   1916   enum DBREASONENUM {
   1917     DBREASON_ROWSET_FETCHPOSITIONCHANGE = 0,DBREASON_ROWSET_RELEASE,
   1918     DBREASON_COLUMN_SET,DBREASON_COLUMN_RECALCULATED,DBREASON_ROW_ACTIVATE,
   1919     DBREASON_ROW_RELEASE,DBREASON_ROW_DELETE,DBREASON_ROW_FIRSTCHANGE,
   1920     DBREASON_ROW_INSERT,DBREASON_ROW_RESYNCH,DBREASON_ROW_UNDOCHANGE,
   1921     DBREASON_ROW_UNDOINSERT,DBREASON_ROW_UNDODELETE,DBREASON_ROW_UPDATE,
   1922     DBREASON_ROWSET_CHANGED
   1923   };
   1924 
   1925 #if (OLEDBVER >= 0x0150)
   1926   enum DBREASONENUM15 {
   1927     DBREASON_ROWPOSITION_CHANGED = DBREASON_ROWSET_CHANGED + 1,
   1928     DBREASON_ROWPOSITION_CHAPTERCHANGED,DBREASON_ROWPOSITION_CLEARED,
   1929     DBREASON_ROW_ASYNCHINSERT
   1930   };
   1931 #endif
   1932 
   1933 #if (OLEDBVER >= 0x0150)
   1934   typedef DWORD DBCOMPAREOP;
   1935 
   1936   enum DBCOMPAREOPSENUM {
   1937     DBCOMPAREOPS_LT = 0,DBCOMPAREOPS_LE = 1,DBCOMPAREOPS_EQ = 2,DBCOMPAREOPS_GE = 3,DBCOMPAREOPS_GT = 4,DBCOMPAREOPS_BEGINSWITH = 5,
   1938     DBCOMPAREOPS_CONTAINS = 6,DBCOMPAREOPS_NE = 7,DBCOMPAREOPS_IGNORE = 8,DBCOMPAREOPS_CASESENSITIVE = 0x1000,DBCOMPAREOPS_CASEINSENSITIVE = 0x2000
   1939   };
   1940 
   1941 #if (OLEDBVER >= 0x0200)
   1942   enum DBCOMPAREOPSENUM20 {
   1943     DBCOMPAREOPS_NOTBEGINSWITH = 9,DBCOMPAREOPS_NOTCONTAINS = 10
   1944   };
   1945 #endif
   1946 
   1947   typedef DWORD DBASYNCHOP;
   1948 
   1949   enum DBASYNCHOPENUM {
   1950     DBASYNCHOP_OPEN = 0
   1951   };
   1952   typedef DWORD DBASYNCHPHASE;
   1953 
   1954   enum DBASYNCHPHASEENUM {
   1955     DBASYNCHPHASE_INITIALIZATION = 0,
   1956     DBASYNCHPHASE_POPULATION,DBASYNCHPHASE_COMPLETE,DBASYNCHPHASE_CANCELED
   1957   };
   1958 #define DB_COUNTUNAVAILABLE -1
   1959 #endif
   1960 
   1961   typedef DWORD DBSORT;
   1962 
   1963   enum DBSORTENUM {
   1964     DBSORT_ASCENDING = 0,DBSORT_DESCENDING = DBSORT_ASCENDING + 1
   1965   };
   1966 #if (OLEDBVER >= 0x0200)
   1967   typedef DWORD DBCOMMANDPERSISTFLAG;
   1968 
   1969   enum DBCOMMANDPERSISTFLAGENUM {
   1970     DBCOMMANDPERSISTFLAG_NOSAVE = 0x1
   1971   };
   1972 #endif
   1973 
   1974 #if (OLEDBVER >= 0x0210)
   1975   enum DBCOMMANDPERSISTFLAGENUM21 {
   1976     DBCOMMANDPERSISTFLAG_DEFAULT = 0,DBCOMMANDPERSISTFLAG_PERSISTVIEW = 0x2,DBCOMMANDPERSISTFLAG_PERSISTPROCEDURE = 0x4
   1977   };
   1978   typedef DWORD DBCONSTRAINTTYPE;
   1979 
   1980   enum DBCONSTRAINTTYPEENUM {
   1981     DBCONSTRAINTTYPE_UNIQUE = 0,DBCONSTRAINTTYPE_FOREIGNKEY = 0x1,DBCONSTRAINTTYPE_PRIMARYKEY = 0x2,DBCONSTRAINTTYPE_CHECK = 0x3
   1982   };
   1983   typedef DWORD DBUPDELRULE;
   1984 
   1985   enum DBUPDELRULEENUM {
   1986     DBUPDELRULE_NOACTION = 0,DBUPDELRULE_CASCADE = 0x1,DBUPDELRULE_SETNULL = 0x2,DBUPDELRULE_SETDEFAULT = 0x3
   1987   };
   1988   typedef DWORD DBMATCHTYPE;
   1989 
   1990   enum DBMATCHTYPEENUM {
   1991     DBMATCHTYPE_FULL = 0,DBMATCHTYPE_NONE = 0x1,DBMATCHTYPE_PARTIAL = 0x2
   1992   };
   1993   typedef DWORD DBDEFERRABILITY;
   1994 
   1995   enum DBDEFERRABILITYENUM {
   1996     DBDEFERRABILITY_DEFERRED = 0x1,DBDEFERRABILITY_DEFERRABLE = 0x2
   1997   };
   1998   typedef struct tagDBCONSTRAINTDESC {
   1999     DBID *pConstraintID;
   2000     DBCONSTRAINTTYPE ConstraintType;
   2001     DBORDINAL cColumns;
   2002     DBID *rgColumnList;
   2003     DBID *pReferencedTableID;
   2004     DBORDINAL cForeignKeyColumns;
   2005     DBID *rgForeignKeyColumnList;
   2006     OLECHAR *pwszConstraintText;
   2007     DBUPDELRULE UpdateRule;
   2008     DBUPDELRULE DeleteRule;
   2009     DBMATCHTYPE MatchType;
   2010     DBDEFERRABILITY Deferrability;
   2011     DB_URESERVE cReserved;
   2012     DBPROPSET *rgReserved;
   2013   } DBCONSTRAINTDESC;
   2014 #endif
   2015 
   2016 #if (OLEDBVER >= 0x0200)
   2017 #define MDFF_BOLD 0x01
   2018 #define MDFF_ITALIC 0x02
   2019 #define MDFF_UNDERLINE 0x04
   2020 #define MDFF_STRIKEOUT 0x08
   2021 
   2022   typedef struct tagMDAXISINFO {
   2023     DBLENGTH cbSize;
   2024     DBCOUNTITEM iAxis;
   2025     DBCOUNTITEM cDimensions;
   2026     DBCOUNTITEM cCoordinates;
   2027     DBORDINAL *rgcColumns;
   2028     LPOLESTR *rgpwszDimensionNames;
   2029   } MDAXISINFO;
   2030 
   2031 #define PMDAXISINFO_GETAT(rgAxisInfo,iAxis) ((MDAXISINFO *)(((BYTE *)(rgAxisInfo)) +((iAxis) *(rgAxisInfo)[0].cbSize)))
   2032 #define MDAXISINFO_GETAT(rgAxisInfo,iAxis) (*PMDAXISINFO_GETAT((rgAxisInfo),(iAxis)))
   2033 #define MDAXIS_COLUMNS 0x00000000
   2034 #define MDAXIS_ROWS 0x00000001
   2035 #define MDAXIS_PAGES 0x00000002
   2036 #define MDAXIS_SECTIONS 0x00000003
   2037 #define MDAXIS_CHAPTERS 0x00000004
   2038 #define MDAXIS_SLICERS 0xffffffff
   2039 #endif
   2040 
   2041   typedef struct tagRMTPACK {
   2042     ISequentialStream *pISeqStream;
   2043     ULONG cbData;
   2044     ULONG cBSTR;
   2045     BSTR *rgBSTR;
   2046     ULONG cVARIANT;
   2047     VARIANT *rgVARIANT;
   2048     ULONG cIDISPATCH;
   2049     IDispatch **rgIDISPATCH;
   2050     ULONG cIUNKNOWN;
   2051     IUnknown **rgIUNKNOWN;
   2052     ULONG cPROPVARIANT;
   2053     PROPVARIANT *rgPROPVARIANT;
   2054     ULONG cArray;
   2055     VARIANT *rgArray;
   2056   } RMTPACK;
   2057 
   2058   extern RPC_IF_HANDLE DBStructureDefinitions_v0_0_c_ifspec;
   2059   extern RPC_IF_HANDLE DBStructureDefinitions_v0_0_s_ifspec;
   2060 #endif
   2061 
   2062 #ifndef __IAccessor_INTERFACE_DEFINED__
   2063 #define __IAccessor_INTERFACE_DEFINED__
   2064 
   2065   typedef DWORD DBACCESSORFLAGS;
   2066 
   2067   enum DBACCESSORFLAGSENUM {
   2068     DBACCESSOR_INVALID = 0,DBACCESSOR_PASSBYREF = 0x1,DBACCESSOR_ROWDATA = 0x2,DBACCESSOR_PARAMETERDATA = 0x4,DBACCESSOR_OPTIMIZED = 0x8,
   2069     DBACCESSOR_INHERITED = 0x10
   2070   };
   2071   typedef DWORD DBBINDSTATUS;
   2072 
   2073   enum DBBINDSTATUSENUM {
   2074     DBBINDSTATUS_OK = 0,DBBINDSTATUS_BADORDINAL = 1,DBBINDSTATUS_UNSUPPORTEDCONVERSION = 2,DBBINDSTATUS_BADBINDINFO = 3,
   2075     DBBINDSTATUS_BADSTORAGEFLAGS = 4,DBBINDSTATUS_NOINTERFACE = 5,DBBINDSTATUS_MULTIPLESTORAGE = 6
   2076   };
   2077 
   2078   EXTERN_C const IID IID_IAccessor;
   2079 
   2080 #if defined(__cplusplus) && !defined(CINTERFACE)
   2081   struct IAccessor : public IUnknown {
   2082   public:
   2083     virtual HRESULT WINAPI AddRefAccessor(HACCESSOR hAccessor,DBREFCOUNT *pcRefCount) = 0;
   2084     virtual HRESULT WINAPI CreateAccessor(DBACCESSORFLAGS dwAccessorFlags,DBCOUNTITEM cBindings,const DBBINDING rgBindings[],DBLENGTH cbRowSize,HACCESSOR *phAccessor,DBBINDSTATUS rgStatus[]) = 0;
   2085     virtual HRESULT WINAPI GetBindings(HACCESSOR hAccessor,DBACCESSORFLAGS *pdwAccessorFlags,DBCOUNTITEM *pcBindings,DBBINDING **prgBindings) = 0;
   2086     virtual HRESULT WINAPI ReleaseAccessor(HACCESSOR hAccessor,DBREFCOUNT *pcRefCount) = 0;
   2087   };
   2088 #else
   2089   typedef struct IAccessorVtbl {
   2090     BEGIN_INTERFACE
   2091       HRESULT (WINAPI *QueryInterface)(IAccessor *This,REFIID riid,void **ppvObject);
   2092       ULONG (WINAPI *AddRef)(IAccessor *This);
   2093       ULONG (WINAPI *Release)(IAccessor *This);
   2094       HRESULT (WINAPI *AddRefAccessor)(IAccessor *This,HACCESSOR hAccessor,DBREFCOUNT *pcRefCount);
   2095       HRESULT (WINAPI *CreateAccessor)(IAccessor *This,DBACCESSORFLAGS dwAccessorFlags,DBCOUNTITEM cBindings,const DBBINDING rgBindings[],DBLENGTH cbRowSize,HACCESSOR *phAccessor,DBBINDSTATUS rgStatus[]);
   2096       HRESULT (WINAPI *GetBindings)(IAccessor *This,HACCESSOR hAccessor,DBACCESSORFLAGS *pdwAccessorFlags,DBCOUNTITEM *pcBindings,DBBINDING **prgBindings);
   2097       HRESULT (WINAPI *ReleaseAccessor)(IAccessor *This,HACCESSOR hAccessor,DBREFCOUNT *pcRefCount);
   2098     END_INTERFACE
   2099   } IAccessorVtbl;
   2100   struct IAccessor {
   2101     CONST_VTBL struct IAccessorVtbl *lpVtbl;
   2102   };
   2103 #ifdef COBJMACROS
   2104 #define IAccessor_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   2105 #define IAccessor_AddRef(This) (This)->lpVtbl->AddRef(This)
   2106 #define IAccessor_Release(This) (This)->lpVtbl->Release(This)
   2107 #define IAccessor_AddRefAccessor(This,hAccessor,pcRefCount) (This)->lpVtbl->AddRefAccessor(This,hAccessor,pcRefCount)
   2108 #define IAccessor_CreateAccessor(This,dwAccessorFlags,cBindings,rgBindings,cbRowSize,phAccessor,rgStatus) (This)->lpVtbl->CreateAccessor(This,dwAccessorFlags,cBindings,rgBindings,cbRowSize,phAccessor,rgStatus)
   2109 #define IAccessor_GetBindings(This,hAccessor,pdwAccessorFlags,pcBindings,prgBindings) (This)->lpVtbl->GetBindings(This,hAccessor,pdwAccessorFlags,pcBindings,prgBindings)
   2110 #define IAccessor_ReleaseAccessor(This,hAccessor,pcRefCount) (This)->lpVtbl->ReleaseAccessor(This,hAccessor,pcRefCount)
   2111 #endif
   2112 #endif
   2113   HRESULT WINAPI IAccessor_RemoteAddRefAccessor_Proxy(IAccessor *This,HACCESSOR hAccessor,DBREFCOUNT *pcRefCount,IErrorInfo **ppErrorInfoRem);
   2114   void __RPC_STUB IAccessor_RemoteAddRefAccessor_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   2115   HRESULT WINAPI IAccessor_RemoteCreateAccessor_Proxy(IAccessor *This,DBACCESSORFLAGS dwAccessorFlags,DBCOUNTITEM cBindings,DBBINDING *rgBindings,DBLENGTH cbRowSize,HACCESSOR *phAccessor,DBBINDSTATUS *rgStatus,IErrorInfo **ppErrorInfoRem);
   2116   void __RPC_STUB IAccessor_RemoteCreateAccessor_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   2117   HRESULT WINAPI IAccessor_RemoteGetBindings_Proxy(IAccessor *This,HACCESSOR hAccessor,DBACCESSORFLAGS *pdwAccessorFlags,DBCOUNTITEM *pcBindings,DBBINDING **prgBindings,IErrorInfo **ppErrorInfoRem);
   2118   void __RPC_STUB IAccessor_RemoteGetBindings_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   2119   HRESULT WINAPI IAccessor_RemoteReleaseAccessor_Proxy(IAccessor *This,HACCESSOR hAccessor,DBREFCOUNT *pcRefCount,IErrorInfo **ppErrorInfoRem);
   2120   void __RPC_STUB IAccessor_RemoteReleaseAccessor_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   2121 #endif
   2122 
   2123 #ifndef __IRowset_INTERFACE_DEFINED__
   2124 #define __IRowset_INTERFACE_DEFINED__
   2125   typedef DWORD DBROWOPTIONS;
   2126 
   2127   EXTERN_C const IID IID_IRowset;
   2128 #if defined(__cplusplus) && !defined(CINTERFACE)
   2129   struct IRowset : public IUnknown {
   2130   public:
   2131     virtual HRESULT WINAPI AddRefRows(DBCOUNTITEM cRows,const HROW rghRows[],DBREFCOUNT rgRefCounts[],DBROWSTATUS rgRowStatus[]) = 0;
   2132     virtual HRESULT WINAPI GetData(HROW hRow,HACCESSOR hAccessor,void *pData) = 0;
   2133     virtual HRESULT WINAPI GetNextRows(HCHAPTER hReserved,DBROWOFFSET lRowsOffset,DBROWCOUNT cRows,DBCOUNTITEM *pcRowsObtained,HROW **prghRows) = 0;
   2134     virtual HRESULT WINAPI ReleaseRows(DBCOUNTITEM cRows,const HROW rghRows[],DBROWOPTIONS rgRowOptions[],DBREFCOUNT rgRefCounts[],DBROWSTATUS rgRowStatus[]) = 0;
   2135     virtual HRESULT WINAPI RestartPosition(HCHAPTER hReserved) = 0;
   2136   };
   2137 #else
   2138   typedef struct IRowsetVtbl {
   2139     BEGIN_INTERFACE
   2140       HRESULT (WINAPI *QueryInterface)(IRowset *This,REFIID riid,void **ppvObject);
   2141       ULONG (WINAPI *AddRef)(IRowset *This);
   2142       ULONG (WINAPI *Release)(IRowset *This);
   2143       HRESULT (WINAPI *AddRefRows)(IRowset *This,DBCOUNTITEM cRows,const HROW rghRows[],DBREFCOUNT rgRefCounts[],DBROWSTATUS rgRowStatus[]);
   2144       HRESULT (WINAPI *GetData)(IRowset *This,HROW hRow,HACCESSOR hAccessor,void *pData);
   2145       HRESULT (WINAPI *GetNextRows)(IRowset *This,HCHAPTER hReserved,DBROWOFFSET lRowsOffset,DBROWCOUNT cRows,DBCOUNTITEM *pcRowsObtained,HROW **prghRows);
   2146       HRESULT (WINAPI *ReleaseRows)(IRowset *This,DBCOUNTITEM cRows,const HROW rghRows[],DBROWOPTIONS rgRowOptions[],DBREFCOUNT rgRefCounts[],DBROWSTATUS rgRowStatus[]);
   2147       HRESULT (WINAPI *RestartPosition)(IRowset *This,HCHAPTER hReserved);
   2148     END_INTERFACE
   2149   } IRowsetVtbl;
   2150   struct IRowset {
   2151     CONST_VTBL struct IRowsetVtbl *lpVtbl;
   2152   };
   2153 #ifdef COBJMACROS
   2154 #define IRowset_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   2155 #define IRowset_AddRef(This) (This)->lpVtbl->AddRef(This)
   2156 #define IRowset_Release(This) (This)->lpVtbl->Release(This)
   2157 #define IRowset_AddRefRows(This,cRows,rghRows,rgRefCounts,rgRowStatus) (This)->lpVtbl->AddRefRows(This,cRows,rghRows,rgRefCounts,rgRowStatus)
   2158 #define IRowset_GetData(This,hRow,hAccessor,pData) (This)->lpVtbl->GetData(This,hRow,hAccessor,pData)
   2159 #define IRowset_GetNextRows(This,hReserved,lRowsOffset,cRows,pcRowsObtained,prghRows) (This)->lpVtbl->GetNextRows(This,hReserved,lRowsOffset,cRows,pcRowsObtained,prghRows)
   2160 #define IRowset_ReleaseRows(This,cRows,rghRows,rgRowOptions,rgRefCounts,rgRowStatus) (This)->lpVtbl->ReleaseRows(This,cRows,rghRows,rgRowOptions,rgRefCounts,rgRowStatus)
   2161 #define IRowset_RestartPosition(This,hReserved) (This)->lpVtbl->RestartPosition(This,hReserved)
   2162 #endif
   2163 #endif
   2164   HRESULT WINAPI IRowset_AddRefRows_Proxy(IRowset *This,DBCOUNTITEM cRows,const HROW rghRows[],DBREFCOUNT rgRefCounts[],DBROWSTATUS rgRowStatus[]);
   2165   void __RPC_STUB IRowset_AddRefRows_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   2166   HRESULT WINAPI IRowset_GetData_Proxy(IRowset *This,HROW hRow,HACCESSOR hAccessor,void *pData);
   2167   void __RPC_STUB IRowset_GetData_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   2168   HRESULT WINAPI IRowset_GetNextRows_Proxy(IRowset *This,HCHAPTER hReserved,DBROWOFFSET lRowsOffset,DBROWCOUNT cRows,DBCOUNTITEM *pcRowsObtained,HROW **prghRows);
   2169   void __RPC_STUB IRowset_GetNextRows_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   2170   HRESULT WINAPI IRowset_ReleaseRows_Proxy(IRowset *This,DBCOUNTITEM cRows,const HROW rghRows[],DBROWOPTIONS rgRowOptions[],DBREFCOUNT rgRefCounts[],DBROWSTATUS rgRowStatus[]);
   2171   void __RPC_STUB IRowset_ReleaseRows_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   2172   HRESULT WINAPI IRowset_RestartPosition_Proxy(IRowset *This,HCHAPTER hReserved);
   2173   void __RPC_STUB IRowset_RestartPosition_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   2174 #endif
   2175 
   2176 #ifndef __IRowsetInfo_INTERFACE_DEFINED__
   2177 #define __IRowsetInfo_INTERFACE_DEFINED__
   2178   EXTERN_C const IID IID_IRowsetInfo;
   2179 #if defined(__cplusplus) && !defined(CINTERFACE)
   2180   struct IRowsetInfo : public IUnknown {
   2181   public:
   2182     virtual HRESULT WINAPI GetProperties(const ULONG cPropertyIDSets,const DBPROPIDSET rgPropertyIDSets[],ULONG *pcPropertySets,DBPROPSET **prgPropertySets) = 0;
   2183     virtual HRESULT WINAPI GetReferencedRowset(DBORDINAL iOrdinal,REFIID riid,IUnknown **ppReferencedRowset) = 0;
   2184     virtual HRESULT WINAPI GetSpecification(REFIID riid,IUnknown **ppSpecification) = 0;
   2185   };
   2186 #else
   2187   typedef struct IRowsetInfoVtbl {
   2188     BEGIN_INTERFACE
   2189       HRESULT (WINAPI *QueryInterface)(IRowsetInfo *This,REFIID riid,void **ppvObject);
   2190       ULONG (WINAPI *AddRef)(IRowsetInfo *This);
   2191       ULONG (WINAPI *Release)(IRowsetInfo *This);
   2192       HRESULT (WINAPI *GetProperties)(IRowsetInfo *This,const ULONG cPropertyIDSets,const DBPROPIDSET rgPropertyIDSets[],ULONG *pcPropertySets,DBPROPSET **prgPropertySets);
   2193       HRESULT (WINAPI *GetReferencedRowset)(IRowsetInfo *This,DBORDINAL iOrdinal,REFIID riid,IUnknown **ppReferencedRowset);
   2194       HRESULT (WINAPI *GetSpecification)(IRowsetInfo *This,REFIID riid,IUnknown **ppSpecification);
   2195     END_INTERFACE
   2196   } IRowsetInfoVtbl;
   2197   struct IRowsetInfo {
   2198     CONST_VTBL struct IRowsetInfoVtbl *lpVtbl;
   2199   };
   2200 #ifdef COBJMACROS
   2201 #define IRowsetInfo_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   2202 #define IRowsetInfo_AddRef(This) (This)->lpVtbl->AddRef(This)
   2203 #define IRowsetInfo_Release(This) (This)->lpVtbl->Release(This)
   2204 #define IRowsetInfo_GetProperties(This,cPropertyIDSets,rgPropertyIDSets,pcPropertySets,prgPropertySets) (This)->lpVtbl->GetProperties(This,cPropertyIDSets,rgPropertyIDSets,pcPropertySets,prgPropertySets)
   2205 #define IRowsetInfo_GetReferencedRowset(This,iOrdinal,riid,ppReferencedRowset) (This)->lpVtbl->GetReferencedRowset(This,iOrdinal,riid,ppReferencedRowset)
   2206 #define IRowsetInfo_GetSpecification(This,riid,ppSpecification) (This)->lpVtbl->GetSpecification(This,riid,ppSpecification)
   2207 #endif
   2208 #endif
   2209   HRESULT WINAPI IRowsetInfo_RemoteGetProperties_Proxy(IRowsetInfo *This,ULONG cPropertyIDSets,const DBPROPIDSET *rgPropertyIDSets,ULONG *pcPropertySets,DBPROPSET **prgPropertySets,IErrorInfo **ppErrorInfoRem);
   2210   void __RPC_STUB IRowsetInfo_RemoteGetProperties_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   2211   HRESULT WINAPI IRowsetInfo_RemoteGetReferencedRowset_Proxy(IRowsetInfo *This,DBORDINAL iOrdinal,REFIID riid,IUnknown **ppReferencedRowset,IErrorInfo **ppErrorInfoRem);
   2212   void __RPC_STUB IRowsetInfo_RemoteGetReferencedRowset_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   2213   HRESULT WINAPI IRowsetInfo_RemoteGetSpecification_Proxy(IRowsetInfo *This,REFIID riid,IUnknown **ppSpecification,IErrorInfo **ppErrorInfoRem);
   2214   void __RPC_STUB IRowsetInfo_RemoteGetSpecification_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   2215 #endif
   2216 
   2217 #ifndef __IRowsetLocate_INTERFACE_DEFINED__
   2218 #define __IRowsetLocate_INTERFACE_DEFINED__
   2219   typedef DWORD DBCOMPARE;
   2220 
   2221   enum DBCOMPAREENUM {
   2222     DBCOMPARE_LT = 0,
   2223     DBCOMPARE_EQ,DBCOMPARE_GT,DBCOMPARE_NE,DBCOMPARE_NOTCOMPARABLE
   2224   };
   2225 
   2226   EXTERN_C const IID IID_IRowsetLocate;
   2227 #if defined(__cplusplus) && !defined(CINTERFACE)
   2228   struct IRowsetLocate : public IRowset {
   2229   public:
   2230     virtual HRESULT WINAPI Compare(HCHAPTER hReserved,DBBKMARK cbBookmark1,const BYTE *pBookmark1,DBBKMARK cbBookmark2,const BYTE *pBookmark2,DBCOMPARE *pComparison) = 0;
   2231     virtual HRESULT WINAPI GetRowsAt(HWATCHREGION hReserved1,HCHAPTER hReserved2,DBBKMARK cbBookmark,const BYTE *pBookmark,DBROWOFFSET lRowsOffset,DBROWCOUNT cRows,DBCOUNTITEM *pcRowsObtained,HROW **prghRows) = 0;
   2232     virtual HRESULT WINAPI GetRowsByBookmark(HCHAPTER hReserved,DBCOUNTITEM cRows,const DBBKMARK rgcbBookmarks[],const BYTE *rgpBookmarks[],HROW rghRows[],DBROWSTATUS rgRowStatus[]) = 0;
   2233     virtual HRESULT WINAPI Hash(HCHAPTER hReserved,DBBKMARK cBookmarks,const DBBKMARK rgcbBookmarks[],const BYTE *rgpBookmarks[],DBHASHVALUE rgHashedValues[],DBROWSTATUS rgBookmarkStatus[]) = 0;
   2234   };
   2235 #else
   2236   typedef struct IRowsetLocateVtbl {
   2237     BEGIN_INTERFACE
   2238       HRESULT (WINAPI *QueryInterface)(IRowsetLocate *This,REFIID riid,void **ppvObject);
   2239       ULONG (WINAPI *AddRef)(IRowsetLocate *This);
   2240       ULONG (WINAPI *Release)(IRowsetLocate *This);
   2241       HRESULT (WINAPI *AddRefRows)(IRowsetLocate *This,DBCOUNTITEM cRows,const HROW rghRows[],DBREFCOUNT rgRefCounts[],DBROWSTATUS rgRowStatus[]);
   2242       HRESULT (WINAPI *GetData)(IRowsetLocate *This,HROW hRow,HACCESSOR hAccessor,void *pData);
   2243       HRESULT (WINAPI *GetNextRows)(IRowsetLocate *This,HCHAPTER hReserved,DBROWOFFSET lRowsOffset,DBROWCOUNT cRows,DBCOUNTITEM *pcRowsObtained,HROW **prghRows);
   2244       HRESULT (WINAPI *ReleaseRows)(IRowsetLocate *This,DBCOUNTITEM cRows,const HROW rghRows[],DBROWOPTIONS rgRowOptions[],DBREFCOUNT rgRefCounts[],DBROWSTATUS rgRowStatus[]);
   2245       HRESULT (WINAPI *RestartPosition)(IRowsetLocate *This,HCHAPTER hReserved);
   2246       HRESULT (WINAPI *Compare)(IRowsetLocate *This,HCHAPTER hReserved,DBBKMARK cbBookmark1,const BYTE *pBookmark1,DBBKMARK cbBookmark2,const BYTE *pBookmark2,DBCOMPARE *pComparison);
   2247       HRESULT (WINAPI *GetRowsAt)(IRowsetLocate *This,HWATCHREGION hReserved1,HCHAPTER hReserved2,DBBKMARK cbBookmark,const BYTE *pBookmark,DBROWOFFSET lRowsOffset,DBROWCOUNT cRows,DBCOUNTITEM *pcRowsObtained,HROW **prghRows);
   2248       HRESULT (WINAPI *GetRowsByBookmark)(IRowsetLocate *This,HCHAPTER hReserved,DBCOUNTITEM cRows,const DBBKMARK rgcbBookmarks[],const BYTE *rgpBookmarks[],HROW rghRows[],DBROWSTATUS rgRowStatus[]);
   2249       HRESULT (WINAPI *Hash)(IRowsetLocate *This,HCHAPTER hReserved,DBBKMARK cBookmarks,const DBBKMARK rgcbBookmarks[],const BYTE *rgpBookmarks[],DBHASHVALUE rgHashedValues[],DBROWSTATUS rgBookmarkStatus[]);
   2250     END_INTERFACE
   2251   } IRowsetLocateVtbl;
   2252   struct IRowsetLocate {
   2253     CONST_VTBL struct IRowsetLocateVtbl *lpVtbl;
   2254   };
   2255 #ifdef COBJMACROS
   2256 #define IRowsetLocate_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   2257 #define IRowsetLocate_AddRef(This) (This)->lpVtbl->AddRef(This)
   2258 #define IRowsetLocate_Release(This) (This)->lpVtbl->Release(This)
   2259 #define IRowsetLocate_AddRefRows(This,cRows,rghRows,rgRefCounts,rgRowStatus) (This)->lpVtbl->AddRefRows(This,cRows,rghRows,rgRefCounts,rgRowStatus)
   2260 #define IRowsetLocate_GetData(This,hRow,hAccessor,pData) (This)->lpVtbl->GetData(This,hRow,hAccessor,pData)
   2261 #define IRowsetLocate_GetNextRows(This,hReserved,lRowsOffset,cRows,pcRowsObtained,prghRows) (This)->lpVtbl->GetNextRows(This,hReserved,lRowsOffset,cRows,pcRowsObtained,prghRows)
   2262 #define IRowsetLocate_ReleaseRows(This,cRows,rghRows,rgRowOptions,rgRefCounts,rgRowStatus) (This)->lpVtbl->ReleaseRows(This,cRows,rghRows,rgRowOptions,rgRefCounts,rgRowStatus)
   2263 #define IRowsetLocate_RestartPosition(This,hReserved) (This)->lpVtbl->RestartPosition(This,hReserved)
   2264 #define IRowsetLocate_Compare(This,hReserved,cbBookmark1,pBookmark1,cbBookmark2,pBookmark2,pComparison) (This)->lpVtbl->Compare(This,hReserved,cbBookmark1,pBookmark1,cbBookmark2,pBookmark2,pComparison)
   2265 #define IRowsetLocate_GetRowsAt(This,hReserved1,hReserved2,cbBookmark,pBookmark,lRowsOffset,cRows,pcRowsObtained,prghRows) (This)->lpVtbl->GetRowsAt(This,hReserved1,hReserved2,cbBookmark,pBookmark,lRowsOffset,cRows,pcRowsObtained,prghRows)
   2266 #define IRowsetLocate_GetRowsByBookmark(This,hReserved,cRows,rgcbBookmarks,rgpBookmarks,rghRows,rgRowStatus) (This)->lpVtbl->GetRowsByBookmark(This,hReserved,cRows,rgcbBookmarks,rgpBookmarks,rghRows,rgRowStatus)
   2267 #define IRowsetLocate_Hash(This,hReserved,cBookmarks,rgcbBookmarks,rgpBookmarks,rgHashedValues,rgBookmarkStatus) (This)->lpVtbl->Hash(This,hReserved,cBookmarks,rgcbBookmarks,rgpBookmarks,rgHashedValues,rgBookmarkStatus)
   2268 #endif
   2269 #endif
   2270   HRESULT WINAPI IRowsetLocate_Compare_Proxy(IRowsetLocate *This,HCHAPTER hReserved,DBBKMARK cbBookmark1,const BYTE *pBookmark1,DBBKMARK cbBookmark2,const BYTE *pBookmark2,DBCOMPARE *pComparison);
   2271   void __RPC_STUB IRowsetLocate_Compare_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   2272   HRESULT WINAPI IRowsetLocate_GetRowsAt_Proxy(IRowsetLocate *This,HWATCHREGION hReserved1,HCHAPTER hReserved2,DBBKMARK cbBookmark,const BYTE *pBookmark,DBROWOFFSET lRowsOffset,DBROWCOUNT cRows,DBCOUNTITEM *pcRowsObtained,HROW **prghRows);
   2273   void __RPC_STUB IRowsetLocate_GetRowsAt_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   2274   HRESULT WINAPI IRowsetLocate_GetRowsByBookmark_Proxy(IRowsetLocate *This,HCHAPTER hReserved,DBCOUNTITEM cRows,const DBBKMARK rgcbBookmarks[],const BYTE *rgpBookmarks[],HROW rghRows[],DBROWSTATUS rgRowStatus[]);
   2275   void __RPC_STUB IRowsetLocate_GetRowsByBookmark_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   2276   HRESULT WINAPI IRowsetLocate_Hash_Proxy(IRowsetLocate *This,HCHAPTER hReserved,DBBKMARK cBookmarks,const DBBKMARK rgcbBookmarks[],const BYTE *rgpBookmarks[],DBHASHVALUE rgHashedValues[],DBROWSTATUS rgBookmarkStatus[]);
   2277   void __RPC_STUB IRowsetLocate_Hash_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   2278 #endif
   2279 
   2280 #ifndef __IRowsetResynch_INTERFACE_DEFINED__
   2281 #define __IRowsetResynch_INTERFACE_DEFINED__
   2282   EXTERN_C const IID IID_IRowsetResynch;
   2283 #if defined(__cplusplus) && !defined(CINTERFACE)
   2284   struct IRowsetResynch : public IUnknown {
   2285   public:
   2286     virtual HRESULT WINAPI GetVisibleData(HROW hRow,HACCESSOR hAccessor,void *pData) = 0;
   2287     virtual HRESULT WINAPI ResynchRows(DBCOUNTITEM cRows,const HROW rghRows[],DBCOUNTITEM *pcRowsResynched,HROW **prghRowsResynched,DBROWSTATUS **prgRowStatus) = 0;
   2288   };
   2289 #else
   2290   typedef struct IRowsetResynchVtbl {
   2291     BEGIN_INTERFACE
   2292       HRESULT (WINAPI *QueryInterface)(IRowsetResynch *This,REFIID riid,void **ppvObject);
   2293       ULONG (WINAPI *AddRef)(IRowsetResynch *This);
   2294       ULONG (WINAPI *Release)(IRowsetResynch *This);
   2295       HRESULT (WINAPI *GetVisibleData)(IRowsetResynch *This,HROW hRow,HACCESSOR hAccessor,void *pData);
   2296       HRESULT (WINAPI *ResynchRows)(IRowsetResynch *This,DBCOUNTITEM cRows,const HROW rghRows[],DBCOUNTITEM *pcRowsResynched,HROW **prghRowsResynched,DBROWSTATUS **prgRowStatus);
   2297     END_INTERFACE
   2298   } IRowsetResynchVtbl;
   2299   struct IRowsetResynch {
   2300     CONST_VTBL struct IRowsetResynchVtbl *lpVtbl;
   2301   };
   2302 #ifdef COBJMACROS
   2303 #define IRowsetResynch_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   2304 #define IRowsetResynch_AddRef(This) (This)->lpVtbl->AddRef(This)
   2305 #define IRowsetResynch_Release(This) (This)->lpVtbl->Release(This)
   2306 #define IRowsetResynch_GetVisibleData(This,hRow,hAccessor,pData) (This)->lpVtbl->GetVisibleData(This,hRow,hAccessor,pData)
   2307 #define IRowsetResynch_ResynchRows(This,cRows,rghRows,pcRowsResynched,prghRowsResynched,prgRowStatus) (This)->lpVtbl->ResynchRows(This,cRows,rghRows,pcRowsResynched,prghRowsResynched,prgRowStatus)
   2308 #endif
   2309 #endif
   2310   HRESULT WINAPI IRowsetResynch_GetVisibleData_Proxy(IRowsetResynch *This,HROW hRow,HACCESSOR hAccessor,void *pData);
   2311   void __RPC_STUB IRowsetResynch_GetVisibleData_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   2312   HRESULT WINAPI IRowsetResynch_ResynchRows_Proxy(IRowsetResynch *This,DBCOUNTITEM cRows,const HROW rghRows[],DBCOUNTITEM *pcRowsResynched,HROW **prghRowsResynched,DBROWSTATUS **prgRowStatus);
   2313   void __RPC_STUB IRowsetResynch_ResynchRows_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   2314 #endif
   2315 
   2316 #ifndef __IRowsetScroll_INTERFACE_DEFINED__
   2317 #define __IRowsetScroll_INTERFACE_DEFINED__
   2318   EXTERN_C const IID IID_IRowsetScroll;
   2319 #if defined(__cplusplus) && !defined(CINTERFACE)
   2320   struct IRowsetScroll : public IRowsetLocate {
   2321   public:
   2322     virtual HRESULT WINAPI GetApproximatePosition(HCHAPTER hReserved,DBBKMARK cbBookmark,const BYTE *pBookmark,DBCOUNTITEM *pulPosition,DBCOUNTITEM *pcRows) = 0;
   2323     virtual HRESULT WINAPI GetRowsAtRatio(HWATCHREGION hReserved1,HCHAPTER hReserved2,DBCOUNTITEM ulNumerator,DBCOUNTITEM ulDenominator,DBROWCOUNT cRows,DBCOUNTITEM *pcRowsObtained,HROW **prghRows) = 0;
   2324   };
   2325 #else
   2326   typedef struct IRowsetScrollVtbl {
   2327     BEGIN_INTERFACE
   2328       HRESULT (WINAPI *QueryInterface)(IRowsetScroll *This,REFIID riid,void **ppvObject);
   2329       ULONG (WINAPI *AddRef)(IRowsetScroll *This);
   2330       ULONG (WINAPI *Release)(IRowsetScroll *This);
   2331       HRESULT (WINAPI *AddRefRows)(IRowsetScroll *This,DBCOUNTITEM cRows,const HROW rghRows[],DBREFCOUNT rgRefCounts[],DBROWSTATUS rgRowStatus[]);
   2332       HRESULT (WINAPI *GetData)(IRowsetScroll *This,HROW hRow,HACCESSOR hAccessor,void *pData);
   2333       HRESULT (WINAPI *GetNextRows)(IRowsetScroll *This,HCHAPTER hReserved,DBROWOFFSET lRowsOffset,DBROWCOUNT cRows,DBCOUNTITEM *pcRowsObtained,HROW **prghRows);
   2334       HRESULT (WINAPI *ReleaseRows)(IRowsetScroll *This,DBCOUNTITEM cRows,const HROW rghRows[],DBROWOPTIONS rgRowOptions[],DBREFCOUNT rgRefCounts[],DBROWSTATUS rgRowStatus[]);
   2335       HRESULT (WINAPI *RestartPosition)(IRowsetScroll *This,HCHAPTER hReserved);
   2336       HRESULT (WINAPI *Compare)(IRowsetScroll *This,HCHAPTER hReserved,DBBKMARK cbBookmark1,const BYTE *pBookmark1,DBBKMARK cbBookmark2,const BYTE *pBookmark2,DBCOMPARE *pComparison);
   2337       HRESULT (WINAPI *GetRowsAt)(IRowsetScroll *This,HWATCHREGION hReserved1,HCHAPTER hReserved2,DBBKMARK cbBookmark,const BYTE *pBookmark,DBROWOFFSET lRowsOffset,DBROWCOUNT cRows,DBCOUNTITEM *pcRowsObtained,HROW **prghRows);
   2338       HRESULT (WINAPI *GetRowsByBookmark)(IRowsetScroll *This,HCHAPTER hReserved,DBCOUNTITEM cRows,const DBBKMARK rgcbBookmarks[],const BYTE *rgpBookmarks[],HROW rghRows[],DBROWSTATUS rgRowStatus[]);
   2339       HRESULT (WINAPI *Hash)(IRowsetScroll *This,HCHAPTER hReserved,DBBKMARK cBookmarks,const DBBKMARK rgcbBookmarks[],const BYTE *rgpBookmarks[],DBHASHVALUE rgHashedValues[],DBROWSTATUS rgBookmarkStatus[]);
   2340       HRESULT (WINAPI *GetApproximatePosition)(IRowsetScroll *This,HCHAPTER hReserved,DBBKMARK cbBookmark,const BYTE *pBookmark,DBCOUNTITEM *pulPosition,DBCOUNTITEM *pcRows);
   2341       HRESULT (WINAPI *GetRowsAtRatio)(IRowsetScroll *This,HWATCHREGION hReserved1,HCHAPTER hReserved2,DBCOUNTITEM ulNumerator,DBCOUNTITEM ulDenominator,DBROWCOUNT cRows,DBCOUNTITEM *pcRowsObtained,HROW **prghRows);
   2342     END_INTERFACE
   2343   } IRowsetScrollVtbl;
   2344   struct IRowsetScroll {
   2345     CONST_VTBL struct IRowsetScrollVtbl *lpVtbl;
   2346   };
   2347 #ifdef COBJMACROS
   2348 #define IRowsetScroll_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   2349 #define IRowsetScroll_AddRef(This) (This)->lpVtbl->AddRef(This)
   2350 #define IRowsetScroll_Release(This) (This)->lpVtbl->Release(This)
   2351 #define IRowsetScroll_AddRefRows(This,cRows,rghRows,rgRefCounts,rgRowStatus) (This)->lpVtbl->AddRefRows(This,cRows,rghRows,rgRefCounts,rgRowStatus)
   2352 #define IRowsetScroll_GetData(This,hRow,hAccessor,pData) (This)->lpVtbl->GetData(This,hRow,hAccessor,pData)
   2353 #define IRowsetScroll_GetNextRows(This,hReserved,lRowsOffset,cRows,pcRowsObtained,prghRows) (This)->lpVtbl->GetNextRows(This,hReserved,lRowsOffset,cRows,pcRowsObtained,prghRows)
   2354 #define IRowsetScroll_ReleaseRows(This,cRows,rghRows,rgRowOptions,rgRefCounts,rgRowStatus) (This)->lpVtbl->ReleaseRows(This,cRows,rghRows,rgRowOptions,rgRefCounts,rgRowStatus)
   2355 #define IRowsetScroll_RestartPosition(This,hReserved) (This)->lpVtbl->RestartPosition(This,hReserved)
   2356 #define IRowsetScroll_Compare(This,hReserved,cbBookmark1,pBookmark1,cbBookmark2,pBookmark2,pComparison) (This)->lpVtbl->Compare(This,hReserved,cbBookmark1,pBookmark1,cbBookmark2,pBookmark2,pComparison)
   2357 #define IRowsetScroll_GetRowsAt(This,hReserved1,hReserved2,cbBookmark,pBookmark,lRowsOffset,cRows,pcRowsObtained,prghRows) (This)->lpVtbl->GetRowsAt(This,hReserved1,hReserved2,cbBookmark,pBookmark,lRowsOffset,cRows,pcRowsObtained,prghRows)
   2358 #define IRowsetScroll_GetRowsByBookmark(This,hReserved,cRows,rgcbBookmarks,rgpBookmarks,rghRows,rgRowStatus) (This)->lpVtbl->GetRowsByBookmark(This,hReserved,cRows,rgcbBookmarks,rgpBookmarks,rghRows,rgRowStatus)
   2359 #define IRowsetScroll_Hash(This,hReserved,cBookmarks,rgcbBookmarks,rgpBookmarks,rgHashedValues,rgBookmarkStatus) (This)->lpVtbl->Hash(This,hReserved,cBookmarks,rgcbBookmarks,rgpBookmarks,rgHashedValues,rgBookmarkStatus)
   2360 #define IRowsetScroll_GetApproximatePosition(This,hReserved,cbBookmark,pBookmark,pulPosition,pcRows) (This)->lpVtbl->GetApproximatePosition(This,hReserved,cbBookmark,pBookmark,pulPosition,pcRows)
   2361 #define IRowsetScroll_GetRowsAtRatio(This,hReserved1,hReserved2,ulNumerator,ulDenominator,cRows,pcRowsObtained,prghRows) (This)->lpVtbl->GetRowsAtRatio(This,hReserved1,hReserved2,ulNumerator,ulDenominator,cRows,pcRowsObtained,prghRows)
   2362 #endif
   2363 #endif
   2364   HRESULT WINAPI IRowsetScroll_GetApproximatePosition_Proxy(IRowsetScroll *This,HCHAPTER hReserved,DBBKMARK cbBookmark,const BYTE *pBookmark,DBCOUNTITEM *pulPosition,DBCOUNTITEM *pcRows);
   2365   void __RPC_STUB IRowsetScroll_GetApproximatePosition_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   2366   HRESULT WINAPI IRowsetScroll_GetRowsAtRatio_Proxy(IRowsetScroll *This,HWATCHREGION hReserved1,HCHAPTER hReserved2,DBCOUNTITEM ulNumerator,DBCOUNTITEM ulDenominator,DBROWCOUNT cRows,DBCOUNTITEM *pcRowsObtained,HROW **prghRows);
   2367   void __RPC_STUB IRowsetScroll_GetRowsAtRatio_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   2368 #endif
   2369 
   2370 #if (OLEDBVER >= 0x0150)
   2371   extern RPC_IF_HANDLE __MIDL_itf_oledb_0273_v0_0_c_ifspec;
   2372   extern RPC_IF_HANDLE __MIDL_itf_oledb_0273_v0_0_s_ifspec;
   2373 #ifndef __IChapteredRowset_INTERFACE_DEFINED__
   2374 #define __IChapteredRowset_INTERFACE_DEFINED__
   2375   EXTERN_C const IID IID_IChapteredRowset;
   2376 #if defined(__cplusplus) && !defined(CINTERFACE)
   2377   struct IChapteredRowset : public IUnknown {
   2378   public:
   2379     virtual HRESULT WINAPI AddRefChapter(HCHAPTER hChapter,DBREFCOUNT *pcRefCount) = 0;
   2380     virtual HRESULT WINAPI ReleaseChapter(HCHAPTER hChapter,DBREFCOUNT *pcRefCount) = 0;
   2381   };
   2382 #else
   2383   typedef struct IChapteredRowsetVtbl {
   2384     BEGIN_INTERFACE
   2385       HRESULT (WINAPI *QueryInterface)(IChapteredRowset *This,REFIID riid,void **ppvObject);
   2386       ULONG (WINAPI *AddRef)(IChapteredRowset *This);
   2387       ULONG (WINAPI *Release)(IChapteredRowset *This);
   2388       HRESULT (WINAPI *AddRefChapter)(IChapteredRowset *This,HCHAPTER hChapter,DBREFCOUNT *pcRefCount);
   2389       HRESULT (WINAPI *ReleaseChapter)(IChapteredRowset *This,HCHAPTER hChapter,DBREFCOUNT *pcRefCount);
   2390     END_INTERFACE
   2391   } IChapteredRowsetVtbl;
   2392   struct IChapteredRowset {
   2393     CONST_VTBL struct IChapteredRowsetVtbl *lpVtbl;
   2394   };
   2395 #ifdef COBJMACROS
   2396 #define IChapteredRowset_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   2397 #define IChapteredRowset_AddRef(This) (This)->lpVtbl->AddRef(This)
   2398 #define IChapteredRowset_Release(This) (This)->lpVtbl->Release(This)
   2399 #define IChapteredRowset_AddRefChapter(This,hChapter,pcRefCount) (This)->lpVtbl->AddRefChapter(This,hChapter,pcRefCount)
   2400 #define IChapteredRowset_ReleaseChapter(This,hChapter,pcRefCount) (This)->lpVtbl->ReleaseChapter(This,hChapter,pcRefCount)
   2401 #endif
   2402 #endif
   2403   HRESULT WINAPI IChapteredRowset_RemoteAddRefChapter_Proxy(IChapteredRowset *This,HCHAPTER hChapter,DBREFCOUNT *pcRefCount,IErrorInfo **ppErrorInfoRem);
   2404   void __RPC_STUB IChapteredRowset_RemoteAddRefChapter_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   2405   HRESULT WINAPI IChapteredRowset_RemoteReleaseChapter_Proxy(IChapteredRowset *This,HCHAPTER hChapter,DBREFCOUNT *pcRefCount,IErrorInfo **ppErrorInfoRem);
   2406   void __RPC_STUB IChapteredRowset_RemoteReleaseChapter_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   2407 #endif
   2408 
   2409 #ifndef __IRowsetFind_INTERFACE_DEFINED__
   2410 #define __IRowsetFind_INTERFACE_DEFINED__
   2411   EXTERN_C const IID IID_IRowsetFind;
   2412 #if defined(__cplusplus) && !defined(CINTERFACE)
   2413   struct IRowsetFind : public IUnknown {
   2414   public:
   2415     virtual HRESULT WINAPI FindNextRow(HCHAPTER hChapter,HACCESSOR hAccessor,void *pFindValue,DBCOMPAREOP CompareOp,DBBKMARK cbBookmark,const BYTE *pBookmark,DBROWOFFSET lRowsOffset,DBROWCOUNT cRows,DBCOUNTITEM *pcRowsObtained,HROW **prghRows) = 0;
   2416   };
   2417 #else
   2418   typedef struct IRowsetFindVtbl {
   2419     BEGIN_INTERFACE
   2420       HRESULT (WINAPI *QueryInterface)(IRowsetFind *This,REFIID riid,void **ppvObject);
   2421       ULONG (WINAPI *AddRef)(IRowsetFind *This);
   2422       ULONG (WINAPI *Release)(IRowsetFind *This);
   2423       HRESULT (WINAPI *FindNextRow)(IRowsetFind *This,HCHAPTER hChapter,HACCESSOR hAccessor,void *pFindValue,DBCOMPAREOP CompareOp,DBBKMARK cbBookmark,const BYTE *pBookmark,DBROWOFFSET lRowsOffset,DBROWCOUNT cRows,DBCOUNTITEM *pcRowsObtained,HROW **prghRows);
   2424     END_INTERFACE
   2425   } IRowsetFindVtbl;
   2426   struct IRowsetFind {
   2427     CONST_VTBL struct IRowsetFindVtbl *lpVtbl;
   2428   };
   2429 #ifdef COBJMACROS
   2430 #define IRowsetFind_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   2431 #define IRowsetFind_AddRef(This) (This)->lpVtbl->AddRef(This)
   2432 #define IRowsetFind_Release(This) (This)->lpVtbl->Release(This)
   2433 #define IRowsetFind_FindNextRow(This,hChapter,hAccessor,pFindValue,CompareOp,cbBookmark,pBookmark,lRowsOffset,cRows,pcRowsObtained,prghRows) (This)->lpVtbl->FindNextRow(This,hChapter,hAccessor,pFindValue,CompareOp,cbBookmark,pBookmark,lRowsOffset,cRows,pcRowsObtained,prghRows)
   2434 #endif
   2435 #endif
   2436   HRESULT WINAPI IRowsetFind_FindNextRow_Proxy(IRowsetFind *This,HCHAPTER hChapter,HACCESSOR hAccessor,void *pFindValue,DBCOMPAREOP CompareOp,DBBKMARK cbBookmark,const BYTE *pBookmark,DBROWOFFSET lRowsOffset,DBROWCOUNT cRows,DBCOUNTITEM *pcRowsObtained,HROW **prghRows);
   2437   void __RPC_STUB IRowsetFind_FindNextRow_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   2438 #endif
   2439 
   2440 #ifndef __IRowPosition_INTERFACE_DEFINED__
   2441 #define __IRowPosition_INTERFACE_DEFINED__
   2442   typedef DWORD DBPOSITIONFLAGS;
   2443 
   2444   enum DBPOSITIONFLAGSENUM {
   2445     DBPOSITION_OK = 0,
   2446     DBPOSITION_NOROW,DBPOSITION_BOF,DBPOSITION_EOF
   2447   };
   2448 
   2449   EXTERN_C const IID IID_IRowPosition;
   2450 #if defined(__cplusplus) && !defined(CINTERFACE)
   2451   struct IRowPosition : public IUnknown {
   2452   public:
   2453     virtual HRESULT WINAPI ClearRowPosition(void) = 0;
   2454     virtual HRESULT WINAPI GetRowPosition(HCHAPTER *phChapter,HROW *phRow,DBPOSITIONFLAGS *pdwPositionFlags) = 0;
   2455     virtual HRESULT WINAPI GetRowset(REFIID riid,IUnknown **ppRowset) = 0;
   2456     virtual HRESULT WINAPI Initialize(IUnknown *pRowset) = 0;
   2457     virtual HRESULT WINAPI SetRowPosition(HCHAPTER hChapter,HROW hRow,DBPOSITIONFLAGS dwPositionFlags) = 0;
   2458   };
   2459 #else
   2460   typedef struct IRowPositionVtbl {
   2461     BEGIN_INTERFACE
   2462       HRESULT (WINAPI *QueryInterface)(IRowPosition *This,REFIID riid,void **ppvObject);
   2463       ULONG (WINAPI *AddRef)(IRowPosition *This);
   2464       ULONG (WINAPI *Release)(IRowPosition *This);
   2465       HRESULT (WINAPI *ClearRowPosition)(IRowPosition *This);
   2466       HRESULT (WINAPI *GetRowPosition)(IRowPosition *This,HCHAPTER *phChapter,HROW *phRow,DBPOSITIONFLAGS *pdwPositionFlags);
   2467       HRESULT (WINAPI *GetRowset)(IRowPosition *This,REFIID riid,IUnknown **ppRowset);
   2468       HRESULT (WINAPI *Initialize)(IRowPosition *This,IUnknown *pRowset);
   2469       HRESULT (WINAPI *SetRowPosition)(IRowPosition *This,HCHAPTER hChapter,HROW hRow,DBPOSITIONFLAGS dwPositionFlags);
   2470     END_INTERFACE
   2471   } IRowPositionVtbl;
   2472   struct IRowPosition {
   2473     CONST_VTBL struct IRowPositionVtbl *lpVtbl;
   2474   };
   2475 #ifdef COBJMACROS
   2476 #define IRowPosition_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   2477 #define IRowPosition_AddRef(This) (This)->lpVtbl->AddRef(This)
   2478 #define IRowPosition_Release(This) (This)->lpVtbl->Release(This)
   2479 #define IRowPosition_ClearRowPosition(This) (This)->lpVtbl->ClearRowPosition(This)
   2480 #define IRowPosition_GetRowPosition(This,phChapter,phRow,pdwPositionFlags) (This)->lpVtbl->GetRowPosition(This,phChapter,phRow,pdwPositionFlags)
   2481 #define IRowPosition_GetRowset(This,riid,ppRowset) (This)->lpVtbl->GetRowset(This,riid,ppRowset)
   2482 #define IRowPosition_Initialize(This,pRowset) (This)->lpVtbl->Initialize(This,pRowset)
   2483 #define IRowPosition_SetRowPosition(This,hChapter,hRow,dwPositionFlags) (This)->lpVtbl->SetRowPosition(This,hChapter,hRow,dwPositionFlags)
   2484 #endif
   2485 #endif
   2486   HRESULT WINAPI IRowPosition_RemoteClearRowPosition_Proxy(IRowPosition *This,IErrorInfo **ppErrorInfoRem);
   2487   void __RPC_STUB IRowPosition_RemoteClearRowPosition_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   2488   HRESULT WINAPI IRowPosition_RemoteGetRowPosition_Proxy(IRowPosition *This,HCHAPTER *phChapter,HROW *phRow,DBPOSITIONFLAGS *pdwPositionFlags,IErrorInfo **ppErrorInfoRem);
   2489   void __RPC_STUB IRowPosition_RemoteGetRowPosition_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   2490   HRESULT WINAPI IRowPosition_RemoteGetRowset_Proxy(IRowPosition *This,REFIID riid,IUnknown **ppRowset,IErrorInfo **ppErrorInfoRem);
   2491   void __RPC_STUB IRowPosition_RemoteGetRowset_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   2492   HRESULT WINAPI IRowPosition_RemoteInitialize_Proxy(IRowPosition *This,IUnknown *pRowset,IErrorInfo **ppErrorInfoRem);
   2493   void __RPC_STUB IRowPosition_RemoteInitialize_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   2494   HRESULT WINAPI IRowPosition_RemoteSetRowPosition_Proxy(IRowPosition *This,HCHAPTER hChapter,HROW hRow,DBPOSITIONFLAGS dwPositionFlags,IErrorInfo **ppErrorInfoRem);
   2495   void __RPC_STUB IRowPosition_RemoteSetRowPosition_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   2496 #endif
   2497 
   2498 #ifndef __IRowPositionChange_INTERFACE_DEFINED__
   2499 #define __IRowPositionChange_INTERFACE_DEFINED__
   2500   EXTERN_C const IID IID_IRowPositionChange;
   2501 #if defined(__cplusplus) && !defined(CINTERFACE)
   2502   struct IRowPositionChange : public IUnknown {
   2503   public:
   2504     virtual HRESULT WINAPI OnRowPositionChange(DBREASON eReason,DBEVENTPHASE ePhase,WINBOOL fCantDeny) = 0;
   2505   };
   2506 #else
   2507   typedef struct IRowPositionChangeVtbl {
   2508     BEGIN_INTERFACE
   2509       HRESULT (WINAPI *QueryInterface)(IRowPositionChange *This,REFIID riid,void **ppvObject);
   2510       ULONG (WINAPI *AddRef)(IRowPositionChange *This);
   2511       ULONG (WINAPI *Release)(IRowPositionChange *This);
   2512       HRESULT (WINAPI *OnRowPositionChange)(IRowPositionChange *This,DBREASON eReason,DBEVENTPHASE ePhase,WINBOOL fCantDeny);
   2513     END_INTERFACE
   2514   } IRowPositionChangeVtbl;
   2515   struct IRowPositionChange {
   2516     CONST_VTBL struct IRowPositionChangeVtbl *lpVtbl;
   2517   };
   2518 #ifdef COBJMACROS
   2519 #define IRowPositionChange_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   2520 #define IRowPositionChange_AddRef(This) (This)->lpVtbl->AddRef(This)
   2521 #define IRowPositionChange_Release(This) (This)->lpVtbl->Release(This)
   2522 #define IRowPositionChange_OnRowPositionChange(This,eReason,ePhase,fCantDeny) (This)->lpVtbl->OnRowPositionChange(This,eReason,ePhase,fCantDeny)
   2523 #endif
   2524 #endif
   2525   HRESULT WINAPI IRowPositionChange_RemoteOnRowPositionChange_Proxy(IRowPositionChange *This,DBREASON eReason,DBEVENTPHASE ePhase,WINBOOL fCantDeny,IErrorInfo **ppErrorInfoRem);
   2526   void __RPC_STUB IRowPositionChange_RemoteOnRowPositionChange_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   2527 #endif
   2528 
   2529 #ifndef __IViewRowset_INTERFACE_DEFINED__
   2530 #define __IViewRowset_INTERFACE_DEFINED__
   2531   EXTERN_C const IID IID_IViewRowset;
   2532 #if defined(__cplusplus) && !defined(CINTERFACE)
   2533   struct IViewRowset : public IUnknown {
   2534   public:
   2535     virtual HRESULT WINAPI GetSpecification(REFIID riid,IUnknown **ppObject) = 0;
   2536     virtual HRESULT WINAPI OpenViewRowset(IUnknown *pUnkOuter,REFIID riid,IUnknown **ppRowset) = 0;
   2537   };
   2538 #else
   2539   typedef struct IViewRowsetVtbl {
   2540     BEGIN_INTERFACE
   2541       HRESULT (WINAPI *QueryInterface)(IViewRowset *This,REFIID riid,void **ppvObject);
   2542       ULONG (WINAPI *AddRef)(IViewRowset *This);
   2543       ULONG (WINAPI *Release)(IViewRowset *This);
   2544       HRESULT (WINAPI *GetSpecification)(IViewRowset *This,REFIID riid,IUnknown **ppObject);
   2545       HRESULT (WINAPI *OpenViewRowset)(IViewRowset *This,IUnknown *pUnkOuter,REFIID riid,IUnknown **ppRowset);
   2546     END_INTERFACE
   2547   } IViewRowsetVtbl;
   2548   struct IViewRowset {
   2549     CONST_VTBL struct IViewRowsetVtbl *lpVtbl;
   2550   };
   2551 #ifdef COBJMACROS
   2552 #define IViewRowset_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   2553 #define IViewRowset_AddRef(This) (This)->lpVtbl->AddRef(This)
   2554 #define IViewRowset_Release(This) (This)->lpVtbl->Release(This)
   2555 #define IViewRowset_GetSpecification(This,riid,ppObject) (This)->lpVtbl->GetSpecification(This,riid,ppObject)
   2556 #define IViewRowset_OpenViewRowset(This,pUnkOuter,riid,ppRowset) (This)->lpVtbl->OpenViewRowset(This,pUnkOuter,riid,ppRowset)
   2557 #endif
   2558 #endif
   2559   HRESULT WINAPI IViewRowset_RemoteGetSpecification_Proxy(IViewRowset *This,REFIID riid,IUnknown **ppObject,IErrorInfo **ppErrorInfoRem);
   2560   void __RPC_STUB IViewRowset_RemoteGetSpecification_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   2561   HRESULT WINAPI IViewRowset_RemoteOpenViewRowset_Proxy(IViewRowset *This,IUnknown *pUnkOuter,REFIID riid,IUnknown **ppRowset,IErrorInfo **ppErrorInfoRem);
   2562   void __RPC_STUB IViewRowset_RemoteOpenViewRowset_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   2563 #endif
   2564 
   2565 #ifndef __IViewChapter_INTERFACE_DEFINED__
   2566 #define __IViewChapter_INTERFACE_DEFINED__
   2567   EXTERN_C const IID IID_IViewChapter;
   2568 #if defined(__cplusplus) && !defined(CINTERFACE)
   2569   struct IViewChapter : public IUnknown {
   2570   public:
   2571     virtual HRESULT WINAPI GetSpecification(REFIID riid,IUnknown **ppRowset) = 0;
   2572     virtual HRESULT WINAPI OpenViewChapter(HCHAPTER hSource,HCHAPTER *phViewChapter) = 0;
   2573   };
   2574 #else
   2575   typedef struct IViewChapterVtbl {
   2576     BEGIN_INTERFACE
   2577       HRESULT (WINAPI *QueryInterface)(IViewChapter *This,REFIID riid,void **ppvObject);
   2578       ULONG (WINAPI *AddRef)(IViewChapter *This);
   2579       ULONG (WINAPI *Release)(IViewChapter *This);
   2580       HRESULT (WINAPI *GetSpecification)(IViewChapter *This,REFIID riid,IUnknown **ppRowset);
   2581       HRESULT (WINAPI *OpenViewChapter)(IViewChapter *This,HCHAPTER hSource,HCHAPTER *phViewChapter);
   2582     END_INTERFACE
   2583   } IViewChapterVtbl;
   2584   struct IViewChapter {
   2585     CONST_VTBL struct IViewChapterVtbl *lpVtbl;
   2586   };
   2587 #ifdef COBJMACROS
   2588 #define IViewChapter_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   2589 #define IViewChapter_AddRef(This) (This)->lpVtbl->AddRef(This)
   2590 #define IViewChapter_Release(This) (This)->lpVtbl->Release(This)
   2591 #define IViewChapter_GetSpecification(This,riid,ppRowset) (This)->lpVtbl->GetSpecification(This,riid,ppRowset)
   2592 #define IViewChapter_OpenViewChapter(This,hSource,phViewChapter) (This)->lpVtbl->OpenViewChapter(This,hSource,phViewChapter)
   2593 #endif
   2594 #endif
   2595   HRESULT WINAPI IViewChapter_RemoteGetSpecification_Proxy(IViewChapter *This,REFIID riid,IUnknown **ppRowset,IErrorInfo **ppErrorInfoRem);
   2596   void __RPC_STUB IViewChapter_RemoteGetSpecification_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   2597   HRESULT WINAPI IViewChapter_RemoteOpenViewChapter_Proxy(IViewChapter *This,HCHAPTER hSource,HCHAPTER *phViewChapter,IErrorInfo **ppErrorInfoRem);
   2598   void __RPC_STUB IViewChapter_RemoteOpenViewChapter_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   2599 #endif
   2600 
   2601 #ifndef __IViewSort_INTERFACE_DEFINED__
   2602 #define __IViewSort_INTERFACE_DEFINED__
   2603   EXTERN_C const IID IID_IViewSort;
   2604 #if defined(__cplusplus) && !defined(CINTERFACE)
   2605   struct IViewSort : public IUnknown {
   2606   public:
   2607     virtual HRESULT WINAPI GetSortOrder(DBORDINAL *pcValues,DBORDINAL *prgColumns[],DBSORT *prgOrders[]) = 0;
   2608     virtual HRESULT WINAPI SetSortOrder(DBORDINAL cValues,const DBORDINAL rgColumns[],const DBSORT rgOrders[]) = 0;
   2609   };
   2610 #else
   2611   typedef struct IViewSortVtbl {
   2612     BEGIN_INTERFACE
   2613       HRESULT (WINAPI *QueryInterface)(IViewSort *This,REFIID riid,void **ppvObject);
   2614       ULONG (WINAPI *AddRef)(IViewSort *This);
   2615       ULONG (WINAPI *Release)(IViewSort *This);
   2616       HRESULT (WINAPI *GetSortOrder)(IViewSort *This,DBORDINAL *pcValues,DBORDINAL *prgColumns[],DBSORT *prgOrders[]);
   2617       HRESULT (WINAPI *SetSortOrder)(IViewSort *This,DBORDINAL cValues,const DBORDINAL rgColumns[],const DBSORT rgOrders[]);
   2618     END_INTERFACE
   2619   } IViewSortVtbl;
   2620   struct IViewSort {
   2621     CONST_VTBL struct IViewSortVtbl *lpVtbl;
   2622   };
   2623 #ifdef COBJMACROS
   2624 #define IViewSort_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   2625 #define IViewSort_AddRef(This) (This)->lpVtbl->AddRef(This)
   2626 #define IViewSort_Release(This) (This)->lpVtbl->Release(This)
   2627 #define IViewSort_GetSortOrder(This,pcValues,prgColumns,prgOrders) (This)->lpVtbl->GetSortOrder(This,pcValues,prgColumns,prgOrders)
   2628 #define IViewSort_SetSortOrder(This,cValues,rgColumns,rgOrders) (This)->lpVtbl->SetSortOrder(This,cValues,rgColumns,rgOrders)
   2629 #endif
   2630 #endif
   2631   HRESULT WINAPI IViewSort_RemoteGetSortOrder_Proxy(IViewSort *This,DBORDINAL *pcValues,DBORDINAL **prgColumns,DBSORT **prgOrders,IErrorInfo **ppErrorInfoRem);
   2632   void __RPC_STUB IViewSort_RemoteGetSortOrder_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   2633   HRESULT WINAPI IViewSort_RemoteSetSortOrder_Proxy(IViewSort *This,DBORDINAL cValues,const DBORDINAL *rgColumns,const DBSORT *rgOrders,IErrorInfo **ppErrorInfoRem);
   2634   void __RPC_STUB IViewSort_RemoteSetSortOrder_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   2635 #endif
   2636 
   2637 #ifndef __IViewFilter_INTERFACE_DEFINED__
   2638 #define __IViewFilter_INTERFACE_DEFINED__
   2639   EXTERN_C const IID IID_IViewFilter;
   2640 #if defined(__cplusplus) && !defined(CINTERFACE)
   2641   struct IViewFilter : public IUnknown {
   2642   public:
   2643     virtual HRESULT WINAPI GetFilter(HACCESSOR hAccessor,DBCOUNTITEM *pcRows,DBCOMPAREOP *pCompareOps[],void *pCriteriaData) = 0;
   2644     virtual HRESULT WINAPI GetFilterBindings(DBCOUNTITEM *pcBindings,DBBINDING **prgBindings) = 0;
   2645     virtual HRESULT WINAPI SetFilter(HACCESSOR hAccessor,DBCOUNTITEM cRows,DBCOMPAREOP CompareOps[],void *pCriteriaData) = 0;
   2646   };
   2647 #else
   2648   typedef struct IViewFilterVtbl {
   2649     BEGIN_INTERFACE
   2650       HRESULT (WINAPI *QueryInterface)(IViewFilter *This,REFIID riid,void **ppvObject);
   2651       ULONG (WINAPI *AddRef)(IViewFilter *This);
   2652       ULONG (WINAPI *Release)(IViewFilter *This);
   2653       HRESULT (WINAPI *GetFilter)(IViewFilter *This,HACCESSOR hAccessor,DBCOUNTITEM *pcRows,DBCOMPAREOP *pCompareOps[],void *pCriteriaData);
   2654       HRESULT (WINAPI *GetFilterBindings)(IViewFilter *This,DBCOUNTITEM *pcBindings,DBBINDING **prgBindings);
   2655       HRESULT (WINAPI *SetFilter)(IViewFilter *This,HACCESSOR hAccessor,DBCOUNTITEM cRows,DBCOMPAREOP CompareOps[],void *pCriteriaData);
   2656     END_INTERFACE
   2657   } IViewFilterVtbl;
   2658   struct IViewFilter {
   2659     CONST_VTBL struct IViewFilterVtbl *lpVtbl;
   2660   };
   2661 #ifdef COBJMACROS
   2662 #define IViewFilter_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   2663 #define IViewFilter_AddRef(This) (This)->lpVtbl->AddRef(This)
   2664 #define IViewFilter_Release(This) (This)->lpVtbl->Release(This)
   2665 #define IViewFilter_GetFilter(This,hAccessor,pcRows,pCompareOps,pCriteriaData) (This)->lpVtbl->GetFilter(This,hAccessor,pcRows,pCompareOps,pCriteriaData)
   2666 #define IViewFilter_GetFilterBindings(This,pcBindings,prgBindings) (This)->lpVtbl->GetFilterBindings(This,pcBindings,prgBindings)
   2667 #define IViewFilter_SetFilter(This,hAccessor,cRows,CompareOps,pCriteriaData) (This)->lpVtbl->SetFilter(This,hAccessor,cRows,CompareOps,pCriteriaData)
   2668 #endif
   2669 #endif
   2670   HRESULT WINAPI IViewFilter_GetFilter_Proxy(IViewFilter *This,HACCESSOR hAccessor,DBCOUNTITEM *pcRows,DBCOMPAREOP *pCompareOps[],void *pCriteriaData);
   2671   void __RPC_STUB IViewFilter_GetFilter_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   2672   HRESULT WINAPI IViewFilter_RemoteGetFilterBindings_Proxy(IViewFilter *This,DBCOUNTITEM *pcBindings,DBBINDING **prgBindings,IErrorInfo **ppErrorInfoRem);
   2673   void __RPC_STUB IViewFilter_RemoteGetFilterBindings_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   2674   HRESULT WINAPI IViewFilter_SetFilter_Proxy(IViewFilter *This,HACCESSOR hAccessor,DBCOUNTITEM cRows,DBCOMPAREOP CompareOps[],void *pCriteriaData);
   2675   void __RPC_STUB IViewFilter_SetFilter_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   2676 #endif
   2677 
   2678 #ifndef __IRowsetView_INTERFACE_DEFINED__
   2679 #define __IRowsetView_INTERFACE_DEFINED__
   2680   EXTERN_C const IID IID_IRowsetView;
   2681 #if defined(__cplusplus) && !defined(CINTERFACE)
   2682   struct IRowsetView : public IUnknown {
   2683   public:
   2684     virtual HRESULT WINAPI CreateView(IUnknown *pUnkOuter,REFIID riid,IUnknown **ppView) = 0;
   2685     virtual HRESULT WINAPI GetView(HCHAPTER hChapter,REFIID riid,HCHAPTER *phChapterSource,IUnknown **ppView) = 0;
   2686   };
   2687 #else
   2688   typedef struct IRowsetViewVtbl {
   2689     BEGIN_INTERFACE
   2690       HRESULT (WINAPI *QueryInterface)(IRowsetView *This,REFIID riid,void **ppvObject);
   2691       ULONG (WINAPI *AddRef)(IRowsetView *This);
   2692       ULONG (WINAPI *Release)(IRowsetView *This);
   2693       HRESULT (WINAPI *CreateView)(IRowsetView *This,IUnknown *pUnkOuter,REFIID riid,IUnknown **ppView);
   2694       HRESULT (WINAPI *GetView)(IRowsetView *This,HCHAPTER hChapter,REFIID riid,HCHAPTER *phChapterSource,IUnknown **ppView);
   2695     END_INTERFACE
   2696   } IRowsetViewVtbl;
   2697   struct IRowsetView {
   2698     CONST_VTBL struct IRowsetViewVtbl *lpVtbl;
   2699   };
   2700 #ifdef COBJMACROS
   2701 #define IRowsetView_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   2702 #define IRowsetView_AddRef(This) (This)->lpVtbl->AddRef(This)
   2703 #define IRowsetView_Release(This) (This)->lpVtbl->Release(This)
   2704 #define IRowsetView_CreateView(This,pUnkOuter,riid,ppView) (This)->lpVtbl->CreateView(This,pUnkOuter,riid,ppView)
   2705 #define IRowsetView_GetView(This,hChapter,riid,phChapterSource,ppView) (This)->lpVtbl->GetView(This,hChapter,riid,phChapterSource,ppView)
   2706 #endif
   2707 #endif
   2708   HRESULT WINAPI IRowsetView_RemoteCreateView_Proxy(IRowsetView *This,IUnknown *pUnkOuter,REFIID riid,IUnknown **ppView,IErrorInfo **ppErrorInfoRem);
   2709   void __RPC_STUB IRowsetView_RemoteCreateView_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   2710   HRESULT WINAPI IRowsetView_RemoteGetView_Proxy(IRowsetView *This,HCHAPTER hChapter,REFIID riid,HCHAPTER *phChapterSource,IUnknown **ppView,IErrorInfo **ppErrorInfoRem);
   2711   void __RPC_STUB IRowsetView_RemoteGetView_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   2712 #endif
   2713 #endif
   2714 
   2715 #ifdef deprecated
   2716   extern RPC_IF_HANDLE __MIDL_itf_oledb_0282_v0_0_c_ifspec;
   2717   extern RPC_IF_HANDLE __MIDL_itf_oledb_0282_v0_0_s_ifspec;
   2718 #ifndef __IRowsetExactScroll_INTERFACE_DEFINED__
   2719 #define __IRowsetExactScroll_INTERFACE_DEFINED__
   2720   EXTERN_C const IID IID_IRowsetExactScroll;
   2721 #if defined(__cplusplus) && !defined(CINTERFACE)
   2722   struct IRowsetExactScroll : public IRowsetScroll {
   2723   public:
   2724     virtual HRESULT WINAPI GetExactPosition(HCHAPTER hChapter,DBBKMARK cbBookmark,const BYTE *pBookmark,DBCOUNTITEM *pulPosition,DBCOUNTITEM *pcRows) = 0;
   2725   };
   2726 #else
   2727   typedef struct IRowsetExactScrollVtbl {
   2728     BEGIN_INTERFACE
   2729       HRESULT (WINAPI *QueryInterface)(IRowsetExactScroll *This,REFIID riid,void **ppvObject);
   2730       ULONG (WINAPI *AddRef)(IRowsetExactScroll *This);
   2731       ULONG (WINAPI *Release)(IRowsetExactScroll *This);
   2732       HRESULT (WINAPI *AddRefRows)(IRowsetExactScroll *This,DBCOUNTITEM cRows,const HROW rghRows[],DBREFCOUNT rgRefCounts[],DBROWSTATUS rgRowStatus[]);
   2733       HRESULT (WINAPI *GetData)(IRowsetExactScroll *This,HROW hRow,HACCESSOR hAccessor,void *pData);
   2734       HRESULT (WINAPI *GetNextRows)(IRowsetExactScroll *This,HCHAPTER hReserved,DBROWOFFSET lRowsOffset,DBROWCOUNT cRows,DBCOUNTITEM *pcRowsObtained,HROW **prghRows);
   2735       HRESULT (WINAPI *ReleaseRows)(IRowsetExactScroll *This,DBCOUNTITEM cRows,const HROW rghRows[],DBROWOPTIONS rgRowOptions[],DBREFCOUNT rgRefCounts[],DBROWSTATUS rgRowStatus[]);
   2736       HRESULT (WINAPI *RestartPosition)(IRowsetExactScroll *This,HCHAPTER hReserved);
   2737       HRESULT (WINAPI *Compare)(IRowsetExactScroll *This,HCHAPTER hReserved,DBBKMARK cbBookmark1,const BYTE *pBookmark1,DBBKMARK cbBookmark2,const BYTE *pBookmark2,DBCOMPARE *pComparison);
   2738       HRESULT (WINAPI *GetRowsAt)(IRowsetExactScroll *This,HWATCHREGION hReserved1,HCHAPTER hReserved2,DBBKMARK cbBookmark,const BYTE *pBookmark,DBROWOFFSET lRowsOffset,DBROWCOUNT cRows,DBCOUNTITEM *pcRowsObtained,HROW **prghRows);
   2739       HRESULT (WINAPI *GetRowsByBookmark)(IRowsetExactScroll *This,HCHAPTER hReserved,DBCOUNTITEM cRows,const DBBKMARK rgcbBookmarks[],const BYTE *rgpBookmarks[],HROW rghRows[],DBROWSTATUS rgRowStatus[]);
   2740       HRESULT (WINAPI *Hash)(IRowsetExactScroll *This,HCHAPTER hReserved,DBBKMARK cBookmarks,const DBBKMARK rgcbBookmarks[],const BYTE *rgpBookmarks[],DBHASHVALUE rgHashedValues[],DBROWSTATUS rgBookmarkStatus[]);
   2741       HRESULT (WINAPI *GetApproximatePosition)(IRowsetExactScroll *This,HCHAPTER hReserved,DBBKMARK cbBookmark,const BYTE *pBookmark,DBCOUNTITEM *pulPosition,DBCOUNTITEM *pcRows);
   2742       HRESULT (WINAPI *GetRowsAtRatio)(IRowsetExactScroll *This,HWATCHREGION hReserved1,HCHAPTER hReserved2,DBCOUNTITEM ulNumerator,DBCOUNTITEM ulDenominator,DBROWCOUNT cRows,DBCOUNTITEM *pcRowsObtained,HROW **prghRows);
   2743       HRESULT (WINAPI *GetExactPosition)(IRowsetExactScroll *This,HCHAPTER hChapter,DBBKMARK cbBookmark,const BYTE *pBookmark,DBCOUNTITEM *pulPosition,DBCOUNTITEM *pcRows);
   2744     END_INTERFACE
   2745   } IRowsetExactScrollVtbl;
   2746   struct IRowsetExactScroll {
   2747     CONST_VTBL struct IRowsetExactScrollVtbl *lpVtbl;
   2748   };
   2749 #ifdef COBJMACROS
   2750 #define IRowsetExactScroll_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   2751 #define IRowsetExactScroll_AddRef(This) (This)->lpVtbl->AddRef(This)
   2752 #define IRowsetExactScroll_Release(This) (This)->lpVtbl->Release(This)
   2753 #define IRowsetExactScroll_AddRefRows(This,cRows,rghRows,rgRefCounts,rgRowStatus) (This)->lpVtbl->AddRefRows(This,cRows,rghRows,rgRefCounts,rgRowStatus)
   2754 #define IRowsetExactScroll_GetData(This,hRow,hAccessor,pData) (This)->lpVtbl->GetData(This,hRow,hAccessor,pData)
   2755 #define IRowsetExactScroll_GetNextRows(This,hReserved,lRowsOffset,cRows,pcRowsObtained,prghRows) (This)->lpVtbl->GetNextRows(This,hReserved,lRowsOffset,cRows,pcRowsObtained,prghRows)
   2756 #define IRowsetExactScroll_ReleaseRows(This,cRows,rghRows,rgRowOptions,rgRefCounts,rgRowStatus) (This)->lpVtbl->ReleaseRows(This,cRows,rghRows,rgRowOptions,rgRefCounts,rgRowStatus)
   2757 #define IRowsetExactScroll_RestartPosition(This,hReserved) (This)->lpVtbl->RestartPosition(This,hReserved)
   2758 #define IRowsetExactScroll_Compare(This,hReserved,cbBookmark1,pBookmark1,cbBookmark2,pBookmark2,pComparison) (This)->lpVtbl->Compare(This,hReserved,cbBookmark1,pBookmark1,cbBookmark2,pBookmark2,pComparison)
   2759 #define IRowsetExactScroll_GetRowsAt(This,hReserved1,hReserved2,cbBookmark,pBookmark,lRowsOffset,cRows,pcRowsObtained,prghRows) (This)->lpVtbl->GetRowsAt(This,hReserved1,hReserved2,cbBookmark,pBookmark,lRowsOffset,cRows,pcRowsObtained,prghRows)
   2760 #define IRowsetExactScroll_GetRowsByBookmark(This,hReserved,cRows,rgcbBookmarks,rgpBookmarks,rghRows,rgRowStatus) (This)->lpVtbl->GetRowsByBookmark(This,hReserved,cRows,rgcbBookmarks,rgpBookmarks,rghRows,rgRowStatus)
   2761 #define IRowsetExactScroll_Hash(This,hReserved,cBookmarks,rgcbBookmarks,rgpBookmarks,rgHashedValues,rgBookmarkStatus) (This)->lpVtbl->Hash(This,hReserved,cBookmarks,rgcbBookmarks,rgpBookmarks,rgHashedValues,rgBookmarkStatus)
   2762 #define IRowsetExactScroll_GetApproximatePosition(This,hReserved,cbBookmark,pBookmark,pulPosition,pcRows) (This)->lpVtbl->GetApproximatePosition(This,hReserved,cbBookmark,pBookmark,pulPosition,pcRows)
   2763 #define IRowsetExactScroll_GetRowsAtRatio(This,hReserved1,hReserved2,ulNumerator,ulDenominator,cRows,pcRowsObtained,prghRows) (This)->lpVtbl->GetRowsAtRatio(This,hReserved1,hReserved2,ulNumerator,ulDenominator,cRows,pcRowsObtained,prghRows)
   2764 #define IRowsetExactScroll_GetExactPosition(This,hChapter,cbBookmark,pBookmark,pulPosition,pcRows) (This)->lpVtbl->GetExactPosition(This,hChapter,cbBookmark,pBookmark,pulPosition,pcRows)
   2765 #endif
   2766 #endif
   2767   HRESULT WINAPI IRowsetExactScroll_GetExactPosition_Proxy(IRowsetExactScroll *This,HCHAPTER hChapter,DBBKMARK cbBookmark,const BYTE *pBookmark,DBCOUNTITEM *pulPosition,DBCOUNTITEM *pcRows);
   2768   void __RPC_STUB IRowsetExactScroll_GetExactPosition_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   2769 #endif
   2770 #endif
   2771 
   2772   extern RPC_IF_HANDLE __MIDL_itf_oledb_0283_v0_0_c_ifspec;
   2773   extern RPC_IF_HANDLE __MIDL_itf_oledb_0283_v0_0_s_ifspec;
   2774 #ifndef __IRowsetChange_INTERFACE_DEFINED__
   2775 #define __IRowsetChange_INTERFACE_DEFINED__
   2776   EXTERN_C const IID IID_IRowsetChange;
   2777 #if defined(__cplusplus) && !defined(CINTERFACE)
   2778   struct IRowsetChange : public IUnknown {
   2779   public:
   2780     virtual HRESULT WINAPI DeleteRows(HCHAPTER hReserved,DBCOUNTITEM cRows,const HROW rghRows[],DBROWSTATUS rgRowStatus[]) = 0;
   2781     virtual HRESULT WINAPI SetData(HROW hRow,HACCESSOR hAccessor,void *pData) = 0;
   2782     virtual HRESULT WINAPI InsertRow(HCHAPTER hReserved,HACCESSOR hAccessor,void *pData,HROW *phRow) = 0;
   2783   };
   2784 #else
   2785   typedef struct IRowsetChangeVtbl {
   2786     BEGIN_INTERFACE
   2787       HRESULT (WINAPI *QueryInterface)(IRowsetChange *This,REFIID riid,void **ppvObject);
   2788       ULONG (WINAPI *AddRef)(IRowsetChange *This);
   2789       ULONG (WINAPI *Release)(IRowsetChange *This);
   2790       HRESULT (WINAPI *DeleteRows)(IRowsetChange *This,HCHAPTER hReserved,DBCOUNTITEM cRows,const HROW rghRows[],DBROWSTATUS rgRowStatus[]);
   2791       HRESULT (WINAPI *SetData)(IRowsetChange *This,HROW hRow,HACCESSOR hAccessor,void *pData);
   2792       HRESULT (WINAPI *InsertRow)(IRowsetChange *This,HCHAPTER hReserved,HACCESSOR hAccessor,void *pData,HROW *phRow);
   2793     END_INTERFACE
   2794   } IRowsetChangeVtbl;
   2795   struct IRowsetChange {
   2796     CONST_VTBL struct IRowsetChangeVtbl *lpVtbl;
   2797   };
   2798 #ifdef COBJMACROS
   2799 #define IRowsetChange_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   2800 #define IRowsetChange_AddRef(This) (This)->lpVtbl->AddRef(This)
   2801 #define IRowsetChange_Release(This) (This)->lpVtbl->Release(This)
   2802 #define IRowsetChange_DeleteRows(This,hReserved,cRows,rghRows,rgRowStatus) (This)->lpVtbl->DeleteRows(This,hReserved,cRows,rghRows,rgRowStatus)
   2803 #define IRowsetChange_SetData(This,hRow,hAccessor,pData) (This)->lpVtbl->SetData(This,hRow,hAccessor,pData)
   2804 #define IRowsetChange_InsertRow(This,hReserved,hAccessor,pData,phRow) (This)->lpVtbl->InsertRow(This,hReserved,hAccessor,pData,phRow)
   2805 #endif
   2806 #endif
   2807   HRESULT WINAPI IRowsetChange_DeleteRows_Proxy(IRowsetChange *This,HCHAPTER hReserved,DBCOUNTITEM cRows,const HROW rghRows[],DBROWSTATUS rgRowStatus[]);
   2808   void __RPC_STUB IRowsetChange_DeleteRows_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   2809   HRESULT WINAPI IRowsetChange_SetData_Proxy(IRowsetChange *This,HROW hRow,HACCESSOR hAccessor,void *pData);
   2810   void __RPC_STUB IRowsetChange_SetData_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   2811   HRESULT WINAPI IRowsetChange_InsertRow_Proxy(IRowsetChange *This,HCHAPTER hReserved,HACCESSOR hAccessor,void *pData,HROW *phRow);
   2812   void __RPC_STUB IRowsetChange_InsertRow_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   2813 #endif
   2814 
   2815 #ifndef __IRowsetUpdate_INTERFACE_DEFINED__
   2816 #define __IRowsetUpdate_INTERFACE_DEFINED__
   2817   typedef DWORD DBPENDINGSTATUS;
   2818   enum DBPENDINGSTATUSENUM {
   2819     DBPENDINGSTATUS_NEW = 0x1,DBPENDINGSTATUS_CHANGED = 0x2,DBPENDINGSTATUS_DELETED = 0x4,DBPENDINGSTATUS_UNCHANGED = 0x8,
   2820     DBPENDINGSTATUS_INVALIDROW = 0x10
   2821   };
   2822 
   2823   EXTERN_C const IID IID_IRowsetUpdate;
   2824 #if defined(__cplusplus) && !defined(CINTERFACE)
   2825   struct IRowsetUpdate : public IRowsetChange {
   2826   public:
   2827     virtual HRESULT WINAPI GetOriginalData(HROW hRow,HACCESSOR hAccessor,void *pData) = 0;
   2828     virtual HRESULT WINAPI GetPendingRows(HCHAPTER hReserved,DBPENDINGSTATUS dwRowStatus,DBCOUNTITEM *pcPendingRows,HROW **prgPendingRows,DBPENDINGSTATUS **prgPendingStatus) = 0;
   2829     virtual HRESULT WINAPI GetRowStatus(HCHAPTER hReserved,DBCOUNTITEM cRows,const HROW rghRows[],DBPENDINGSTATUS rgPendingStatus[]) = 0;
   2830     virtual HRESULT WINAPI Undo(HCHAPTER hReserved,DBCOUNTITEM cRows,const HROW rghRows[],DBCOUNTITEM *pcRowsUndone,HROW **prgRowsUndone,DBROWSTATUS **prgRowStatus) = 0;
   2831     virtual HRESULT WINAPI Update(HCHAPTER hReserved,DBCOUNTITEM cRows,const HROW rghRows[],DBCOUNTITEM *pcRows,HROW **prgRows,DBROWSTATUS **prgRowStatus) = 0;
   2832   };
   2833 #else
   2834   typedef struct IRowsetUpdateVtbl {
   2835     BEGIN_INTERFACE
   2836       HRESULT (WINAPI *QueryInterface)(IRowsetUpdate *This,REFIID riid,void **ppvObject);
   2837       ULONG (WINAPI *AddRef)(IRowsetUpdate *This);
   2838       ULONG (WINAPI *Release)(IRowsetUpdate *This);
   2839       HRESULT (WINAPI *DeleteRows)(IRowsetUpdate *This,HCHAPTER hReserved,DBCOUNTITEM cRows,const HROW rghRows[],DBROWSTATUS rgRowStatus[]);
   2840       HRESULT (WINAPI *SetData)(IRowsetUpdate *This,HROW hRow,HACCESSOR hAccessor,void *pData);
   2841       HRESULT (WINAPI *InsertRow)(IRowsetUpdate *This,HCHAPTER hReserved,HACCESSOR hAccessor,void *pData,HROW *phRow);
   2842       HRESULT (WINAPI *GetOriginalData)(IRowsetUpdate *This,HROW hRow,HACCESSOR hAccessor,void *pData);
   2843       HRESULT (WINAPI *GetPendingRows)(IRowsetUpdate *This,HCHAPTER hReserved,DBPENDINGSTATUS dwRowStatus,DBCOUNTITEM *pcPendingRows,HROW **prgPendingRows,DBPENDINGSTATUS **prgPendingStatus);
   2844       HRESULT (WINAPI *GetRowStatus)(IRowsetUpdate *This,HCHAPTER hReserved,DBCOUNTITEM cRows,const HROW rghRows[],DBPENDINGSTATUS rgPendingStatus[]);
   2845       HRESULT (WINAPI *Undo)(IRowsetUpdate *This,HCHAPTER hReserved,DBCOUNTITEM cRows,const HROW rghRows[],DBCOUNTITEM *pcRowsUndone,HROW **prgRowsUndone,DBROWSTATUS **prgRowStatus);
   2846       HRESULT (WINAPI *Update)(IRowsetUpdate *This,HCHAPTER hReserved,DBCOUNTITEM cRows,const HROW rghRows[],DBCOUNTITEM *pcRows,HROW **prgRows,DBROWSTATUS **prgRowStatus);
   2847     END_INTERFACE
   2848   } IRowsetUpdateVtbl;
   2849   struct IRowsetUpdate {
   2850     CONST_VTBL struct IRowsetUpdateVtbl *lpVtbl;
   2851   };
   2852 #ifdef COBJMACROS
   2853 #define IRowsetUpdate_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   2854 #define IRowsetUpdate_AddRef(This) (This)->lpVtbl->AddRef(This)
   2855 #define IRowsetUpdate_Release(This) (This)->lpVtbl->Release(This)
   2856 #define IRowsetUpdate_DeleteRows(This,hReserved,cRows,rghRows,rgRowStatus) (This)->lpVtbl->DeleteRows(This,hReserved,cRows,rghRows,rgRowStatus)
   2857 #define IRowsetUpdate_SetData(This,hRow,hAccessor,pData) (This)->lpVtbl->SetData(This,hRow,hAccessor,pData)
   2858 #define IRowsetUpdate_InsertRow(This,hReserved,hAccessor,pData,phRow) (This)->lpVtbl->InsertRow(This,hReserved,hAccessor,pData,phRow)
   2859 #define IRowsetUpdate_GetOriginalData(This,hRow,hAccessor,pData) (This)->lpVtbl->GetOriginalData(This,hRow,hAccessor,pData)
   2860 #define IRowsetUpdate_GetPendingRows(This,hReserved,dwRowStatus,pcPendingRows,prgPendingRows,prgPendingStatus) (This)->lpVtbl->GetPendingRows(This,hReserved,dwRowStatus,pcPendingRows,prgPendingRows,prgPendingStatus)
   2861 #define IRowsetUpdate_GetRowStatus(This,hReserved,cRows,rghRows,rgPendingStatus) (This)->lpVtbl->GetRowStatus(This,hReserved,cRows,rghRows,rgPendingStatus)
   2862 #define IRowsetUpdate_Undo(This,hReserved,cRows,rghRows,pcRowsUndone,prgRowsUndone,prgRowStatus) (This)->lpVtbl->Undo(This,hReserved,cRows,rghRows,pcRowsUndone,prgRowsUndone,prgRowStatus)
   2863 #define IRowsetUpdate_Update(This,hReserved,cRows,rghRows,pcRows,prgRows,prgRowStatus) (This)->lpVtbl->Update(This,hReserved,cRows,rghRows,pcRows,prgRows,prgRowStatus)
   2864 #endif
   2865 #endif
   2866   HRESULT WINAPI IRowsetUpdate_GetOriginalData_Proxy(IRowsetUpdate *This,HROW hRow,HACCESSOR hAccessor,void *pData);
   2867   void __RPC_STUB IRowsetUpdate_GetOriginalData_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   2868   HRESULT WINAPI IRowsetUpdate_GetPendingRows_Proxy(IRowsetUpdate *This,HCHAPTER hReserved,DBPENDINGSTATUS dwRowStatus,DBCOUNTITEM *pcPendingRows,HROW **prgPendingRows,DBPENDINGSTATUS **prgPendingStatus);
   2869   void __RPC_STUB IRowsetUpdate_GetPendingRows_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   2870   HRESULT WINAPI IRowsetUpdate_GetRowStatus_Proxy(IRowsetUpdate *This,HCHAPTER hReserved,DBCOUNTITEM cRows,const HROW rghRows[],DBPENDINGSTATUS rgPendingStatus[]);
   2871   void __RPC_STUB IRowsetUpdate_GetRowStatus_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   2872   HRESULT WINAPI IRowsetUpdate_Undo_Proxy(IRowsetUpdate *This,HCHAPTER hReserved,DBCOUNTITEM cRows,const HROW rghRows[],DBCOUNTITEM *pcRowsUndone,HROW **prgRowsUndone,DBROWSTATUS **prgRowStatus);
   2873   void __RPC_STUB IRowsetUpdate_Undo_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   2874   HRESULT WINAPI IRowsetUpdate_Update_Proxy(IRowsetUpdate *This,HCHAPTER hReserved,DBCOUNTITEM cRows,const HROW rghRows[],DBCOUNTITEM *pcRows,HROW **prgRows,DBROWSTATUS **prgRowStatus);
   2875   void __RPC_STUB IRowsetUpdate_Update_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   2876 #endif
   2877 
   2878 #ifndef __IRowsetIdentity_INTERFACE_DEFINED__
   2879 #define __IRowsetIdentity_INTERFACE_DEFINED__
   2880   EXTERN_C const IID IID_IRowsetIdentity;
   2881 #if defined(__cplusplus) && !defined(CINTERFACE)
   2882   struct IRowsetIdentity : public IUnknown {
   2883   public:
   2884     virtual HRESULT WINAPI IsSameRow(HROW hThisRow,HROW hThatRow) = 0;
   2885   };
   2886 #else
   2887   typedef struct IRowsetIdentityVtbl {
   2888     BEGIN_INTERFACE
   2889       HRESULT (WINAPI *QueryInterface)(IRowsetIdentity *This,REFIID riid,void **ppvObject);
   2890       ULONG (WINAPI *AddRef)(IRowsetIdentity *This);
   2891       ULONG (WINAPI *Release)(IRowsetIdentity *This);
   2892       HRESULT (WINAPI *IsSameRow)(IRowsetIdentity *This,HROW hThisRow,HROW hThatRow);
   2893     END_INTERFACE
   2894   } IRowsetIdentityVtbl;
   2895   struct IRowsetIdentity {
   2896     CONST_VTBL struct IRowsetIdentityVtbl *lpVtbl;
   2897   };
   2898 #ifdef COBJMACROS
   2899 #define IRowsetIdentity_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   2900 #define IRowsetIdentity_AddRef(This) (This)->lpVtbl->AddRef(This)
   2901 #define IRowsetIdentity_Release(This) (This)->lpVtbl->Release(This)
   2902 #define IRowsetIdentity_IsSameRow(This,hThisRow,hThatRow) (This)->lpVtbl->IsSameRow(This,hThisRow,hThatRow)
   2903 #endif
   2904 #endif
   2905   HRESULT WINAPI IRowsetIdentity_RemoteIsSameRow_Proxy(IRowsetIdentity *This,HROW hThisRow,HROW hThatRow,IErrorInfo **ppErrorInfoRem);
   2906   void __RPC_STUB IRowsetIdentity_RemoteIsSameRow_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   2907 #endif
   2908 
   2909 #ifndef __IRowsetNotify_INTERFACE_DEFINED__
   2910 #define __IRowsetNotify_INTERFACE_DEFINED__
   2911   EXTERN_C const IID IID_IRowsetNotify;
   2912 #if defined(__cplusplus) && !defined(CINTERFACE)
   2913   struct IRowsetNotify : public IUnknown {
   2914   public:
   2915     virtual HRESULT WINAPI OnFieldChange(IRowset *pRowset,HROW hRow,DBORDINAL cColumns,DBORDINAL rgColumns[],DBREASON eReason,DBEVENTPHASE ePhase,WINBOOL fCantDeny) = 0;
   2916     virtual HRESULT WINAPI OnRowChange(IRowset *pRowset,DBCOUNTITEM cRows,const HROW rghRows[],DBREASON eReason,DBEVENTPHASE ePhase,WINBOOL fCantDeny) = 0;
   2917     virtual HRESULT WINAPI OnRowsetChange(IRowset *pRowset,DBREASON eReason,DBEVENTPHASE ePhase,WINBOOL fCantDeny) = 0;
   2918   };
   2919 #else
   2920   typedef struct IRowsetNotifyVtbl {
   2921     BEGIN_INTERFACE
   2922       HRESULT (WINAPI *QueryInterface)(IRowsetNotify *This,REFIID riid,void **ppvObject);
   2923       ULONG (WINAPI *AddRef)(IRowsetNotify *This);
   2924       ULONG (WINAPI *Release)(IRowsetNotify *This);
   2925       HRESULT (WINAPI *OnFieldChange)(IRowsetNotify *This,IRowset *pRowset,HROW hRow,DBORDINAL cColumns,DBORDINAL rgColumns[],DBREASON eReason,DBEVENTPHASE ePhase,WINBOOL fCantDeny);
   2926       HRESULT (WINAPI *OnRowChange)(IRowsetNotify *This,IRowset *pRowset,DBCOUNTITEM cRows,const HROW rghRows[],DBREASON eReason,DBEVENTPHASE ePhase,WINBOOL fCantDeny);
   2927       HRESULT (WINAPI *OnRowsetChange)(IRowsetNotify *This,IRowset *pRowset,DBREASON eReason,DBEVENTPHASE ePhase,WINBOOL fCantDeny);
   2928     END_INTERFACE
   2929   } IRowsetNotifyVtbl;
   2930   struct IRowsetNotify {
   2931     CONST_VTBL struct IRowsetNotifyVtbl *lpVtbl;
   2932   };
   2933 #ifdef COBJMACROS
   2934 #define IRowsetNotify_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   2935 #define IRowsetNotify_AddRef(This) (This)->lpVtbl->AddRef(This)
   2936 #define IRowsetNotify_Release(This) (This)->lpVtbl->Release(This)
   2937 #define IRowsetNotify_OnFieldChange(This,pRowset,hRow,cColumns,rgColumns,eReason,ePhase,fCantDeny) (This)->lpVtbl->OnFieldChange(This,pRowset,hRow,cColumns,rgColumns,eReason,ePhase,fCantDeny)
   2938 #define IRowsetNotify_OnRowChange(This,pRowset,cRows,rghRows,eReason,ePhase,fCantDeny) (This)->lpVtbl->OnRowChange(This,pRowset,cRows,rghRows,eReason,ePhase,fCantDeny)
   2939 #define IRowsetNotify_OnRowsetChange(This,pRowset,eReason,ePhase,fCantDeny) (This)->lpVtbl->OnRowsetChange(This,pRowset,eReason,ePhase,fCantDeny)
   2940 #endif
   2941 #endif
   2942   HRESULT WINAPI IRowsetNotify_RemoteOnFieldChange_Proxy(IRowsetNotify *This,IRowset *pRowset,HROW hRow,DBORDINAL cColumns,DBORDINAL *rgColumns,DBREASON eReason,DBEVENTPHASE ePhase,WINBOOL fCantDeny);
   2943   void __RPC_STUB IRowsetNotify_RemoteOnFieldChange_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   2944   HRESULT WINAPI IRowsetNotify_RemoteOnRowChange_Proxy(IRowsetNotify *This,IRowset *pRowset,DBCOUNTITEM cRows,const HROW *rghRows,DBREASON eReason,DBEVENTPHASE ePhase,WINBOOL fCantDeny);
   2945   void __RPC_STUB IRowsetNotify_RemoteOnRowChange_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   2946   HRESULT WINAPI IRowsetNotify_RemoteOnRowsetChange_Proxy(IRowsetNotify *This,IRowset *pRowset,DBREASON eReason,DBEVENTPHASE ePhase,WINBOOL fCantDeny);
   2947   void __RPC_STUB IRowsetNotify_RemoteOnRowsetChange_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   2948 #endif
   2949 
   2950 #ifndef __IRowsetIndex_INTERFACE_DEFINED__
   2951 #define __IRowsetIndex_INTERFACE_DEFINED__
   2952   typedef DWORD DBSEEK;
   2953 
   2954   enum DBSEEKENUM {
   2955     DBSEEK_INVALID = 0,DBSEEK_FIRSTEQ = 0x1,DBSEEK_LASTEQ = 0x2,DBSEEK_AFTEREQ = 0x4,DBSEEK_AFTER = 0x8,DBSEEK_BEFOREEQ = 0x10,
   2956     DBSEEK_BEFORE = 0x20
   2957   };
   2958 #define DBSEEK_GE DBSEEK_AFTEREQ
   2959 #define DBSEEK_GT DBSEEK_AFTER
   2960 #define DBSEEK_LE DBSEEK_BEFOREEQ
   2961 #define DBSEEK_LT DBSEEK_BEFORE
   2962   typedef DWORD DBRANGE;
   2963 
   2964   enum DBRANGEENUM {
   2965     DBRANGE_INCLUSIVESTART = 0,DBRANGE_INCLUSIVEEND = 0,DBRANGE_EXCLUSIVESTART = 0x1,DBRANGE_EXCLUSIVEEND = 0x2,
   2966     DBRANGE_EXCLUDENULLS = 0x4,DBRANGE_PREFIX = 0x8,DBRANGE_MATCH = 0x10
   2967   };
   2968 
   2969 #if (OLEDBVER >= 0x0200)
   2970 
   2971   enum DBRANGEENUM20 {
   2972     DBRANGE_MATCH_N_SHIFT = 0x18,DBRANGE_MATCH_N_MASK = 0xff
   2973   };
   2974 #endif
   2975 
   2976   EXTERN_C const IID IID_IRowsetIndex;
   2977 #if defined(__cplusplus) && !defined(CINTERFACE)
   2978   struct IRowsetIndex : public IUnknown {
   2979   public:
   2980     virtual HRESULT WINAPI GetIndexInfo(DBORDINAL *pcKeyColumns,DBINDEXCOLUMNDESC **prgIndexColumnDesc,ULONG *pcIndexPropertySets,DBPROPSET **prgIndexPropertySets) = 0;
   2981     virtual HRESULT WINAPI Seek(HACCESSOR hAccessor,DBORDINAL cKeyValues,void *pData,DBSEEK dwSeekOptions) = 0;
   2982     virtual HRESULT WINAPI SetRange(HACCESSOR hAccessor,DBORDINAL cStartKeyColumns,void *pStartData,DBORDINAL cEndKeyColumns,void *pEndData,DBRANGE dwRangeOptions) = 0;
   2983   };
   2984 #else
   2985   typedef struct IRowsetIndexVtbl {
   2986     BEGIN_INTERFACE
   2987       HRESULT (WINAPI *QueryInterface)(IRowsetIndex *This,REFIID riid,void **ppvObject);
   2988       ULONG (WINAPI *AddRef)(IRowsetIndex *This);
   2989       ULONG (WINAPI *Release)(IRowsetIndex *This);
   2990       HRESULT (WINAPI *GetIndexInfo)(IRowsetIndex *This,DBORDINAL *pcKeyColumns,DBINDEXCOLUMNDESC **prgIndexColumnDesc,ULONG *pcIndexPropertySets,DBPROPSET **prgIndexPropertySets);
   2991       HRESULT (WINAPI *Seek)(IRowsetIndex *This,HACCESSOR hAccessor,DBORDINAL cKeyValues,void *pData,DBSEEK dwSeekOptions);
   2992       HRESULT (WINAPI *SetRange)(IRowsetIndex *This,HACCESSOR hAccessor,DBORDINAL cStartKeyColumns,void *pStartData,DBORDINAL cEndKeyColumns,void *pEndData,DBRANGE dwRangeOptions);
   2993     END_INTERFACE
   2994   } IRowsetIndexVtbl;
   2995   struct IRowsetIndex {
   2996     CONST_VTBL struct IRowsetIndexVtbl *lpVtbl;
   2997   };
   2998 #ifdef COBJMACROS
   2999 #define IRowsetIndex_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   3000 #define IRowsetIndex_AddRef(This) (This)->lpVtbl->AddRef(This)
   3001 #define IRowsetIndex_Release(This) (This)->lpVtbl->Release(This)
   3002 #define IRowsetIndex_GetIndexInfo(This,pcKeyColumns,prgIndexColumnDesc,pcIndexPropertySets,prgIndexPropertySets) (This)->lpVtbl->GetIndexInfo(This,pcKeyColumns,prgIndexColumnDesc,pcIndexPropertySets,prgIndexPropertySets)
   3003 #define IRowsetIndex_Seek(This,hAccessor,cKeyValues,pData,dwSeekOptions) (This)->lpVtbl->Seek(This,hAccessor,cKeyValues,pData,dwSeekOptions)
   3004 #define IRowsetIndex_SetRange(This,hAccessor,cStartKeyColumns,pStartData,cEndKeyColumns,pEndData,dwRangeOptions) (This)->lpVtbl->SetRange(This,hAccessor,cStartKeyColumns,pStartData,cEndKeyColumns,pEndData,dwRangeOptions)
   3005 #endif
   3006 #endif
   3007   HRESULT WINAPI IRowsetIndex_GetIndexInfo_Proxy(IRowsetIndex *This,DBORDINAL *pcKeyColumns,DBINDEXCOLUMNDESC **prgIndexColumnDesc,ULONG *pcIndexPropertySets,DBPROPSET **prgIndexPropertySets);
   3008   void __RPC_STUB IRowsetIndex_GetIndexInfo_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   3009   HRESULT WINAPI IRowsetIndex_Seek_Proxy(IRowsetIndex *This,HACCESSOR hAccessor,DBORDINAL cKeyValues,void *pData,DBSEEK dwSeekOptions);
   3010   void __RPC_STUB IRowsetIndex_Seek_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   3011   HRESULT WINAPI IRowsetIndex_SetRange_Proxy(IRowsetIndex *This,HACCESSOR hAccessor,DBORDINAL cStartKeyColumns,void *pStartData,DBORDINAL cEndKeyColumns,void *pEndData,DBRANGE dwRangeOptions);
   3012   void __RPC_STUB IRowsetIndex_SetRange_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   3013 #endif
   3014 
   3015 #ifndef __ICommand_INTERFACE_DEFINED__
   3016 #define __ICommand_INTERFACE_DEFINED__
   3017   EXTERN_C const IID IID_ICommand;
   3018 #if defined(__cplusplus) && !defined(CINTERFACE)
   3019   struct ICommand : public IUnknown {
   3020   public:
   3021     virtual HRESULT WINAPI Cancel(void) = 0;
   3022     virtual HRESULT WINAPI Execute(IUnknown *pUnkOuter,REFIID riid,DBPARAMS *pParams,DBROWCOUNT *pcRowsAffected,IUnknown **ppRowset) = 0;
   3023     virtual HRESULT WINAPI GetDBSession(REFIID riid,IUnknown **ppSession) = 0;
   3024   };
   3025 #else
   3026   typedef struct ICommandVtbl {
   3027     BEGIN_INTERFACE
   3028       HRESULT (WINAPI *QueryInterface)(ICommand *This,REFIID riid,void **ppvObject);
   3029       ULONG (WINAPI *AddRef)(ICommand *This);
   3030       ULONG (WINAPI *Release)(ICommand *This);
   3031       HRESULT (WINAPI *Cancel)(ICommand *This);
   3032       HRESULT (WINAPI *Execute)(ICommand *This,IUnknown *pUnkOuter,REFIID riid,DBPARAMS *pParams,DBROWCOUNT *pcRowsAffected,IUnknown **ppRowset);
   3033       HRESULT (WINAPI *GetDBSession)(ICommand *This,REFIID riid,IUnknown **ppSession);
   3034     END_INTERFACE
   3035   } ICommandVtbl;
   3036   struct ICommand {
   3037     CONST_VTBL struct ICommandVtbl *lpVtbl;
   3038   };
   3039 #ifdef COBJMACROS
   3040 #define ICommand_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   3041 #define ICommand_AddRef(This) (This)->lpVtbl->AddRef(This)
   3042 #define ICommand_Release(This) (This)->lpVtbl->Release(This)
   3043 #define ICommand_Cancel(This) (This)->lpVtbl->Cancel(This)
   3044 #define ICommand_Execute(This,pUnkOuter,riid,pParams,pcRowsAffected,ppRowset) (This)->lpVtbl->Execute(This,pUnkOuter,riid,pParams,pcRowsAffected,ppRowset)
   3045 #define ICommand_GetDBSession(This,riid,ppSession) (This)->lpVtbl->GetDBSession(This,riid,ppSession)
   3046 #endif
   3047 #endif
   3048   HRESULT WINAPI ICommand_RemoteCancel_Proxy(ICommand *This,IErrorInfo **ppErrorInfoRem);
   3049   void __RPC_STUB ICommand_RemoteCancel_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   3050   HRESULT WINAPI ICommand_RemoteExecute_Proxy(ICommand *This,IUnknown *pUnkOuter,REFIID riid,HACCESSOR hAccessor,DB_UPARAMS cParamSets,GUID *pGuid,ULONG ulGuidOffset,RMTPACK *pInputParams,RMTPACK *pOutputParams,DBCOUNTITEM cBindings,DBBINDING *rgBindings,DBSTATUS *rgStatus,DBROWCOUNT *pcRowsAffected,IUnknown **ppRowset);
   3051   void __RPC_STUB ICommand_RemoteExecute_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   3052   HRESULT WINAPI ICommand_RemoteGetDBSession_Proxy(ICommand *This,REFIID riid,IUnknown **ppSession,IErrorInfo **ppErrorInfoRem);
   3053   void __RPC_STUB ICommand_RemoteGetDBSession_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   3054 #endif
   3055 
   3056 #ifndef __IMultipleResults_INTERFACE_DEFINED__
   3057 #define __IMultipleResults_INTERFACE_DEFINED__
   3058   typedef DB_LRESERVE DBRESULTFLAG;
   3059 
   3060   enum DBRESULTFLAGENUM {
   3061     DBRESULTFLAG_DEFAULT = 0,DBRESULTFLAG_ROWSET = 1,DBRESULTFLAG_ROW = 2
   3062   };
   3063 
   3064   EXTERN_C const IID IID_IMultipleResults;
   3065 #if defined(__cplusplus) && !defined(CINTERFACE)
   3066   struct IMultipleResults : public IUnknown {
   3067   public:
   3068     virtual HRESULT WINAPI GetResult(IUnknown *pUnkOuter,DBRESULTFLAG lResultFlag,REFIID riid,DBROWCOUNT *pcRowsAffected,IUnknown **ppRowset) = 0;
   3069   };
   3070 #else
   3071   typedef struct IMultipleResultsVtbl {
   3072     BEGIN_INTERFACE
   3073       HRESULT (WINAPI *QueryInterface)(IMultipleResults *This,REFIID riid,void **ppvObject);
   3074       ULONG (WINAPI *AddRef)(IMultipleResults *This);
   3075       ULONG (WINAPI *Release)(IMultipleResults *This);
   3076       HRESULT (WINAPI *GetResult)(IMultipleResults *This,IUnknown *pUnkOuter,DBRESULTFLAG lResultFlag,REFIID riid,DBROWCOUNT *pcRowsAffected,IUnknown **ppRowset);
   3077     END_INTERFACE
   3078   } IMultipleResultsVtbl;
   3079   struct IMultipleResults {
   3080     CONST_VTBL struct IMultipleResultsVtbl *lpVtbl;
   3081   };
   3082 #ifdef COBJMACROS
   3083 #define IMultipleResults_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   3084 #define IMultipleResults_AddRef(This) (This)->lpVtbl->AddRef(This)
   3085 #define IMultipleResults_Release(This) (This)->lpVtbl->Release(This)
   3086 #define IMultipleResults_GetResult(This,pUnkOuter,lResultFlag,riid,pcRowsAffected,ppRowset) (This)->lpVtbl->GetResult(This,pUnkOuter,lResultFlag,riid,pcRowsAffected,ppRowset)
   3087 #endif
   3088 #endif
   3089   HRESULT WINAPI IMultipleResults_RemoteGetResult_Proxy(IMultipleResults *This,IUnknown *pUnkOuter,DBRESULTFLAG lResultFlag,REFIID riid,DBROWCOUNT *pcRowsAffected,IUnknown **ppRowset,IErrorInfo **ppErrorInfoRem);
   3090   void __RPC_STUB IMultipleResults_RemoteGetResult_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   3091 #endif
   3092 
   3093 #ifndef __IConvertType_INTERFACE_DEFINED__
   3094 #define __IConvertType_INTERFACE_DEFINED__
   3095   typedef DWORD DBCONVERTFLAGS;
   3096 
   3097   enum DBCONVERTFLAGSENUM {
   3098     DBCONVERTFLAGS_COLUMN = 0,DBCONVERTFLAGS_PARAMETER = 0x1
   3099   };
   3100 #if (OLEDBVER >= 0x0200)
   3101   enum DBCONVERTFLAGSENUM20 {
   3102     DBCONVERTFLAGS_ISLONG = 0x2,DBCONVERTFLAGS_ISFIXEDLENGTH = 0x4,DBCONVERTFLAGS_FROMVARIANT = 0x8
   3103   };
   3104 #endif
   3105 
   3106   EXTERN_C const IID IID_IConvertType;
   3107 #if defined(__cplusplus) && !defined(CINTERFACE)
   3108   struct IConvertType : public IUnknown {
   3109   public:
   3110     virtual HRESULT WINAPI CanConvert(DBTYPE wFromType,DBTYPE wToType,DBCONVERTFLAGS dwConvertFlags) = 0;
   3111   };
   3112 #else
   3113   typedef struct IConvertTypeVtbl {
   3114     BEGIN_INTERFACE
   3115       HRESULT (WINAPI *QueryInterface)(IConvertType *This,REFIID riid,void **ppvObject);
   3116       ULONG (WINAPI *AddRef)(IConvertType *This);
   3117       ULONG (WINAPI *Release)(IConvertType *This);
   3118       HRESULT (WINAPI *CanConvert)(IConvertType *This,DBTYPE wFromType,DBTYPE wToType,DBCONVERTFLAGS dwConvertFlags);
   3119     END_INTERFACE
   3120   } IConvertTypeVtbl;
   3121   struct IConvertType {
   3122     CONST_VTBL struct IConvertTypeVtbl *lpVtbl;
   3123   };
   3124 #ifdef COBJMACROS
   3125 #define IConvertType_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   3126 #define IConvertType_AddRef(This) (This)->lpVtbl->AddRef(This)
   3127 #define IConvertType_Release(This) (This)->lpVtbl->Release(This)
   3128 #define IConvertType_CanConvert(This,wFromType,wToType,dwConvertFlags) (This)->lpVtbl->CanConvert(This,wFromType,wToType,dwConvertFlags)
   3129 #endif
   3130 #endif
   3131   HRESULT WINAPI IConvertType_RemoteCanConvert_Proxy(IConvertType *This,DBTYPE wFromType,DBTYPE wToType,DBCONVERTFLAGS dwConvertFlags,IErrorInfo **ppErrorInfoRem);
   3132   void __RPC_STUB IConvertType_RemoteCanConvert_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   3133 #endif
   3134 
   3135 #ifndef __ICommandPrepare_INTERFACE_DEFINED__
   3136 #define __ICommandPrepare_INTERFACE_DEFINED__
   3137   EXTERN_C const IID IID_ICommandPrepare;
   3138 #if defined(__cplusplus) && !defined(CINTERFACE)
   3139   struct ICommandPrepare : public IUnknown {
   3140   public:
   3141     virtual HRESULT WINAPI Prepare(ULONG cExpectedRuns) = 0;
   3142     virtual HRESULT WINAPI Unprepare(void) = 0;
   3143   };
   3144 #else
   3145   typedef struct ICommandPrepareVtbl {
   3146     BEGIN_INTERFACE
   3147       HRESULT (WINAPI *QueryInterface)(ICommandPrepare *This,REFIID riid,void **ppvObject);
   3148       ULONG (WINAPI *AddRef)(ICommandPrepare *This);
   3149       ULONG (WINAPI *Release)(ICommandPrepare *This);
   3150       HRESULT (WINAPI *Prepare)(ICommandPrepare *This,ULONG cExpectedRuns);
   3151       HRESULT (WINAPI *Unprepare)(ICommandPrepare *This);
   3152     END_INTERFACE
   3153   } ICommandPrepareVtbl;
   3154   struct ICommandPrepare {
   3155     CONST_VTBL struct ICommandPrepareVtbl *lpVtbl;
   3156   };
   3157 #ifdef COBJMACROS
   3158 #define ICommandPrepare_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   3159 #define ICommandPrepare_AddRef(This) (This)->lpVtbl->AddRef(This)
   3160 #define ICommandPrepare_Release(This) (This)->lpVtbl->Release(This)
   3161 #define ICommandPrepare_Prepare(This,cExpectedRuns) (This)->lpVtbl->Prepare(This,cExpectedRuns)
   3162 #define ICommandPrepare_Unprepare(This) (This)->lpVtbl->Unprepare(This)
   3163 #endif
   3164 #endif
   3165   HRESULT WINAPI ICommandPrepare_RemotePrepare_Proxy(ICommandPrepare *This,ULONG cExpectedRuns,IErrorInfo **ppErrorInfoRem);
   3166   void __RPC_STUB ICommandPrepare_RemotePrepare_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   3167   HRESULT WINAPI ICommandPrepare_RemoteUnprepare_Proxy(ICommandPrepare *This,IErrorInfo **ppErrorInfoRem);
   3168   void __RPC_STUB ICommandPrepare_RemoteUnprepare_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   3169 #endif
   3170 
   3171 #ifndef __ICommandProperties_INTERFACE_DEFINED__
   3172 #define __ICommandProperties_INTERFACE_DEFINED__
   3173   EXTERN_C const IID IID_ICommandProperties;
   3174 #if defined(__cplusplus) && !defined(CINTERFACE)
   3175   struct ICommandProperties : public IUnknown {
   3176   public:
   3177     virtual HRESULT WINAPI GetProperties(const ULONG cPropertyIDSets,const DBPROPIDSET rgPropertyIDSets[],ULONG *pcPropertySets,DBPROPSET **prgPropertySets) = 0;
   3178     virtual HRESULT WINAPI SetProperties(ULONG cPropertySets,DBPROPSET rgPropertySets[]) = 0;
   3179   };
   3180 #else
   3181   typedef struct ICommandPropertiesVtbl {
   3182     BEGIN_INTERFACE
   3183       HRESULT (WINAPI *QueryInterface)(ICommandProperties *This,REFIID riid,void **ppvObject);
   3184       ULONG (WINAPI *AddRef)(ICommandProperties *This);
   3185       ULONG (WINAPI *Release)(ICommandProperties *This);
   3186       HRESULT (WINAPI *GetProperties)(ICommandProperties *This,const ULONG cPropertyIDSets,const DBPROPIDSET rgPropertyIDSets[],ULONG *pcPropertySets,DBPROPSET **prgPropertySets);
   3187       HRESULT (WINAPI *SetProperties)(ICommandProperties *This,ULONG cPropertySets,DBPROPSET rgPropertySets[]);
   3188     END_INTERFACE
   3189   } ICommandPropertiesVtbl;
   3190   struct ICommandProperties {
   3191     CONST_VTBL struct ICommandPropertiesVtbl *lpVtbl;
   3192   };
   3193 #ifdef COBJMACROS
   3194 #define ICommandProperties_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   3195 #define ICommandProperties_AddRef(This) (This)->lpVtbl->AddRef(This)
   3196 #define ICommandProperties_Release(This) (This)->lpVtbl->Release(This)
   3197 #define ICommandProperties_GetProperties(This,cPropertyIDSets,rgPropertyIDSets,pcPropertySets,prgPropertySets) (This)->lpVtbl->GetProperties(This,cPropertyIDSets,rgPropertyIDSets,pcPropertySets,prgPropertySets)
   3198 #define ICommandProperties_SetProperties(This,cPropertySets,rgPropertySets) (This)->lpVtbl->SetProperties(This,cPropertySets,rgPropertySets)
   3199 #endif
   3200 #endif
   3201   HRESULT WINAPI ICommandProperties_RemoteGetProperties_Proxy(ICommandProperties *This,const ULONG cPropertyIDSets,const DBPROPIDSET *rgPropertyIDSets,ULONG *pcPropertySets,DBPROPSET **prgPropertySets,IErrorInfo **ppErrorInfoRem);
   3202   void __RPC_STUB ICommandProperties_RemoteGetProperties_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   3203   HRESULT WINAPI ICommandProperties_RemoteSetProperties_Proxy(ICommandProperties *This,ULONG cPropertySets,DBPROPSET *rgPropertySets,ULONG cTotalProps,DBPROPSTATUS *rgPropStatus,IErrorInfo **ppErrorInfoRem);
   3204   void __RPC_STUB ICommandProperties_RemoteSetProperties_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   3205 #endif
   3206 
   3207 #ifndef __ICommandText_INTERFACE_DEFINED__
   3208 #define __ICommandText_INTERFACE_DEFINED__
   3209   EXTERN_C const IID IID_ICommandText;
   3210 #if defined(__cplusplus) && !defined(CINTERFACE)
   3211   struct ICommandText : public ICommand {
   3212   public:
   3213     virtual HRESULT WINAPI GetCommandText(GUID *pguidDialect,LPOLESTR *ppwszCommand) = 0;
   3214     virtual HRESULT WINAPI SetCommandText(REFGUID rguidDialect,LPCOLESTR pwszCommand) = 0;
   3215   };
   3216 #else
   3217   typedef struct ICommandTextVtbl {
   3218     BEGIN_INTERFACE
   3219       HRESULT (WINAPI *QueryInterface)(ICommandText *This,REFIID riid,void **ppvObject);
   3220       ULONG (WINAPI *AddRef)(ICommandText *This);
   3221       ULONG (WINAPI *Release)(ICommandText *This);
   3222       HRESULT (WINAPI *Cancel)(ICommandText *This);
   3223       HRESULT (WINAPI *Execute)(ICommandText *This,IUnknown *pUnkOuter,REFIID riid,DBPARAMS *pParams,DBROWCOUNT *pcRowsAffected,IUnknown **ppRowset);
   3224       HRESULT (WINAPI *GetDBSession)(ICommandText *This,REFIID riid,IUnknown **ppSession);
   3225       HRESULT (WINAPI *GetCommandText)(ICommandText *This,GUID *pguidDialect,LPOLESTR *ppwszCommand);
   3226       HRESULT (WINAPI *SetCommandText)(ICommandText *This,REFGUID rguidDialect,LPCOLESTR pwszCommand);
   3227     END_INTERFACE
   3228   } ICommandTextVtbl;
   3229   struct ICommandText {
   3230     CONST_VTBL struct ICommandTextVtbl *lpVtbl;
   3231   };
   3232 #ifdef COBJMACROS
   3233 #define ICommandText_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   3234 #define ICommandText_AddRef(This) (This)->lpVtbl->AddRef(This)
   3235 #define ICommandText_Release(This) (This)->lpVtbl->Release(This)
   3236 #define ICommandText_Cancel(This) (This)->lpVtbl->Cancel(This)
   3237 #define ICommandText_Execute(This,pUnkOuter,riid,pParams,pcRowsAffected,ppRowset) (This)->lpVtbl->Execute(This,pUnkOuter,riid,pParams,pcRowsAffected,ppRowset)
   3238 #define ICommandText_GetDBSession(This,riid,ppSession) (This)->lpVtbl->GetDBSession(This,riid,ppSession)
   3239 #define ICommandText_GetCommandText(This,pguidDialect,ppwszCommand) (This)->lpVtbl->GetCommandText(This,pguidDialect,ppwszCommand)
   3240 #define ICommandText_SetCommandText(This,rguidDialect,pwszCommand) (This)->lpVtbl->SetCommandText(This,rguidDialect,pwszCommand)
   3241 #endif
   3242 #endif
   3243   HRESULT WINAPI ICommandText_RemoteGetCommandText_Proxy(ICommandText *This,GUID *pguidDialect,LPOLESTR *ppwszCommand,IErrorInfo **ppErrorInfoRem);
   3244   void __RPC_STUB ICommandText_RemoteGetCommandText_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   3245   HRESULT WINAPI ICommandText_RemoteSetCommandText_Proxy(ICommandText *This,REFGUID rguidDialect,LPCOLESTR pwszCommand,IErrorInfo **ppErrorInfoRem);
   3246   void __RPC_STUB ICommandText_RemoteSetCommandText_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   3247 #endif
   3248 
   3249 #ifndef __ICommandWithParameters_INTERFACE_DEFINED__
   3250 #define __ICommandWithParameters_INTERFACE_DEFINED__
   3251   typedef struct tagDBPARAMBINDINFO {
   3252     LPOLESTR pwszDataSourceType;
   3253     LPOLESTR pwszName;
   3254     DBLENGTH ulParamSize;
   3255     DBPARAMFLAGS dwFlags;
   3256     BYTE bPrecision;
   3257     BYTE bScale;
   3258   } DBPARAMBINDINFO;
   3259 
   3260   EXTERN_C const IID IID_ICommandWithParameters;
   3261 #if defined(__cplusplus) && !defined(CINTERFACE)
   3262   struct ICommandWithParameters : public IUnknown {
   3263   public:
   3264     virtual HRESULT WINAPI GetParameterInfo(DB_UPARAMS *pcParams,DBPARAMINFO **prgParamInfo,OLECHAR **ppNamesBuffer) = 0;
   3265     virtual HRESULT WINAPI MapParameterNames(DB_UPARAMS cParamNames,const OLECHAR *rgParamNames[],DB_LPARAMS rgParamOrdinals[]) = 0;
   3266     virtual HRESULT WINAPI SetParameterInfo(DB_UPARAMS cParams,const DB_UPARAMS rgParamOrdinals[],const DBPARAMBINDINFO rgParamBindInfo[]) = 0;
   3267   };
   3268 #else
   3269   typedef struct ICommandWithParametersVtbl {
   3270     BEGIN_INTERFACE
   3271       HRESULT (WINAPI *QueryInterface)(ICommandWithParameters *This,REFIID riid,void **ppvObject);
   3272       ULONG (WINAPI *AddRef)(ICommandWithParameters *This);
   3273       ULONG (WINAPI *Release)(ICommandWithParameters *This);
   3274       HRESULT (WINAPI *GetParameterInfo)(ICommandWithParameters *This,DB_UPARAMS *pcParams,DBPARAMINFO **prgParamInfo,OLECHAR **ppNamesBuffer);
   3275       HRESULT (WINAPI *MapParameterNames)(ICommandWithParameters *This,DB_UPARAMS cParamNames,const OLECHAR *rgParamNames[],DB_LPARAMS rgParamOrdinals[]);
   3276       HRESULT (WINAPI *SetParameterInfo)(ICommandWithParameters *This,DB_UPARAMS cParams,const DB_UPARAMS rgParamOrdinals[],const DBPARAMBINDINFO rgParamBindInfo[]);
   3277     END_INTERFACE
   3278   } ICommandWithParametersVtbl;
   3279   struct ICommandWithParameters {
   3280     CONST_VTBL struct ICommandWithParametersVtbl *lpVtbl;
   3281   };
   3282 #ifdef COBJMACROS
   3283 #define ICommandWithParameters_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   3284 #define ICommandWithParameters_AddRef(This) (This)->lpVtbl->AddRef(This)
   3285 #define ICommandWithParameters_Release(This) (This)->lpVtbl->Release(This)
   3286 #define ICommandWithParameters_GetParameterInfo(This,pcParams,prgParamInfo,ppNamesBuffer) (This)->lpVtbl->GetParameterInfo(This,pcParams,prgParamInfo,ppNamesBuffer)
   3287 #define ICommandWithParameters_MapParameterNames(This,cParamNames,rgParamNames,rgParamOrdinals) (This)->lpVtbl->MapParameterNames(This,cParamNames,rgParamNames,rgParamOrdinals)
   3288 #define ICommandWithParameters_SetParameterInfo(This,cParams,rgParamOrdinals,rgParamBindInfo) (This)->lpVtbl->SetParameterInfo(This,cParams,rgParamOrdinals,rgParamBindInfo)
   3289 #endif
   3290 #endif
   3291   HRESULT WINAPI ICommandWithParameters_RemoteGetParameterInfo_Proxy(ICommandWithParameters *This,DB_UPARAMS *pcParams,DBPARAMINFO **prgParamInfo,DBBYTEOFFSET **prgNameOffsets,DBLENGTH *pcbNamesBuffer,OLECHAR **ppNamesBuffer,IErrorInfo **ppErrorInfoRem);
   3292   void __RPC_STUB ICommandWithParameters_RemoteGetParameterInfo_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   3293   HRESULT WINAPI ICommandWithParameters_RemoteMapParameterNames_Proxy(ICommandWithParameters *This,DB_UPARAMS cParamNames,LPCOLESTR *rgParamNames,DB_LPARAMS *rgParamOrdinals,IErrorInfo **ppErrorInfoRem);
   3294   void __RPC_STUB ICommandWithParameters_RemoteMapParameterNames_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   3295   HRESULT WINAPI ICommandWithParameters_RemoteSetParameterInfo_Proxy(ICommandWithParameters *This,DB_UPARAMS cParams,const DB_UPARAMS *rgParamOrdinals,const DBPARAMBINDINFO *rgParamBindInfo,IErrorInfo **ppErrorInfoRem);
   3296   void __RPC_STUB ICommandWithParameters_RemoteSetParameterInfo_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   3297 #endif
   3298 
   3299 #ifndef __IColumnsRowset_INTERFACE_DEFINED__
   3300 #define __IColumnsRowset_INTERFACE_DEFINED__
   3301   EXTERN_C const IID IID_IColumnsRowset;
   3302 #if defined(__cplusplus) && !defined(CINTERFACE)
   3303   struct IColumnsRowset : public IUnknown {
   3304   public:
   3305     virtual HRESULT WINAPI GetAvailableColumns(DBORDINAL *pcOptColumns,DBID **prgOptColumns) = 0;
   3306     virtual HRESULT WINAPI GetColumnsRowset(IUnknown *pUnkOuter,DBORDINAL cOptColumns,const DBID rgOptColumns[],REFIID riid,ULONG cPropertySets,DBPROPSET rgPropertySets[],IUnknown **ppColRowset) = 0;
   3307   };
   3308 #else
   3309   typedef struct IColumnsRowsetVtbl {
   3310     BEGIN_INTERFACE
   3311       HRESULT (WINAPI *QueryInterface)(IColumnsRowset *This,REFIID riid,void **ppvObject);
   3312       ULONG (WINAPI *AddRef)(IColumnsRowset *This);
   3313       ULONG (WINAPI *Release)(IColumnsRowset *This);
   3314       HRESULT (WINAPI *GetAvailableColumns)(IColumnsRowset *This,DBORDINAL *pcOptColumns,DBID **prgOptColumns);
   3315       HRESULT (WINAPI *GetColumnsRowset)(IColumnsRowset *This,IUnknown *pUnkOuter,DBORDINAL cOptColumns,const DBID rgOptColumns[],REFIID riid,ULONG cPropertySets,DBPROPSET rgPropertySets[],IUnknown **ppColRowset);
   3316     END_INTERFACE
   3317   } IColumnsRowsetVtbl;
   3318   struct IColumnsRowset {
   3319     CONST_VTBL struct IColumnsRowsetVtbl *lpVtbl;
   3320   };
   3321 #ifdef COBJMACROS
   3322 #define IColumnsRowset_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   3323 #define IColumnsRowset_AddRef(This) (This)->lpVtbl->AddRef(This)
   3324 #define IColumnsRowset_Release(This) (This)->lpVtbl->Release(This)
   3325 #define IColumnsRowset_GetAvailableColumns(This,pcOptColumns,prgOptColumns) (This)->lpVtbl->GetAvailableColumns(This,pcOptColumns,prgOptColumns)
   3326 #define IColumnsRowset_GetColumnsRowset(This,pUnkOuter,cOptColumns,rgOptColumns,riid,cPropertySets,rgPropertySets,ppColRowset) (This)->lpVtbl->GetColumnsRowset(This,pUnkOuter,cOptColumns,rgOptColumns,riid,cPropertySets,rgPropertySets,ppColRowset)
   3327 #endif
   3328 #endif
   3329   HRESULT WINAPI IColumnsRowset_RemoteGetAvailableColumns_Proxy(IColumnsRowset *This,DBORDINAL *pcOptColumns,DBID **prgOptColumns,IErrorInfo **ppErrorInfoRem);
   3330   void __RPC_STUB IColumnsRowset_RemoteGetAvailableColumns_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   3331   HRESULT WINAPI IColumnsRowset_RemoteGetColumnsRowset_Proxy(IColumnsRowset *This,IUnknown *pUnkOuter,DBORDINAL cOptColumns,const DBID *rgOptColumns,REFIID riid,ULONG cPropertySets,DBPROPSET *rgPropertySets,IUnknown **ppColRowset,ULONG cTotalProps,DBPROPSTATUS *rgPropStatus,IErrorInfo **ppErrorInfoRem);
   3332   void __RPC_STUB IColumnsRowset_RemoteGetColumnsRowset_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   3333 #endif
   3334 
   3335 #ifndef __IColumnsInfo_INTERFACE_DEFINED__
   3336 #define __IColumnsInfo_INTERFACE_DEFINED__
   3337   EXTERN_C const IID IID_IColumnsInfo;
   3338 #if defined(__cplusplus) && !defined(CINTERFACE)
   3339   struct IColumnsInfo : public IUnknown {
   3340   public:
   3341     virtual HRESULT WINAPI GetColumnInfo(DBORDINAL *pcColumns,DBCOLUMNINFO **prgInfo,OLECHAR **ppStringsBuffer) = 0;
   3342     virtual HRESULT WINAPI MapColumnIDs(DBORDINAL cColumnIDs,const DBID rgColumnIDs[],DBORDINAL rgColumns[]) = 0;
   3343   };
   3344 #else
   3345   typedef struct IColumnsInfoVtbl {
   3346     BEGIN_INTERFACE
   3347       HRESULT (WINAPI *QueryInterface)(IColumnsInfo *This,REFIID riid,void **ppvObject);
   3348       ULONG (WINAPI *AddRef)(IColumnsInfo *This);
   3349       ULONG (WINAPI *Release)(IColumnsInfo *This);
   3350       HRESULT (WINAPI *GetColumnInfo)(IColumnsInfo *This,DBORDINAL *pcColumns,DBCOLUMNINFO **prgInfo,OLECHAR **ppStringsBuffer);
   3351       HRESULT (WINAPI *MapColumnIDs)(IColumnsInfo *This,DBORDINAL cColumnIDs,const DBID rgColumnIDs[],DBORDINAL rgColumns[]);
   3352     END_INTERFACE
   3353   } IColumnsInfoVtbl;
   3354   struct IColumnsInfo {
   3355     CONST_VTBL struct IColumnsInfoVtbl *lpVtbl;
   3356   };
   3357 #ifdef COBJMACROS
   3358 #define IColumnsInfo_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   3359 #define IColumnsInfo_AddRef(This) (This)->lpVtbl->AddRef(This)
   3360 #define IColumnsInfo_Release(This) (This)->lpVtbl->Release(This)
   3361 #define IColumnsInfo_GetColumnInfo(This,pcColumns,prgInfo,ppStringsBuffer) (This)->lpVtbl->GetColumnInfo(This,pcColumns,prgInfo,ppStringsBuffer)
   3362 #define IColumnsInfo_MapColumnIDs(This,cColumnIDs,rgColumnIDs,rgColumns) (This)->lpVtbl->MapColumnIDs(This,cColumnIDs,rgColumnIDs,rgColumns)
   3363 #endif
   3364 #endif
   3365   HRESULT WINAPI IColumnsInfo_RemoteGetColumnInfo_Proxy(IColumnsInfo *This,DBORDINAL *pcColumns,DBCOLUMNINFO **prgInfo,DBBYTEOFFSET **prgNameOffsets,DBBYTEOFFSET **prgcolumnidOffsets,DBLENGTH *pcbStringsBuffer,OLECHAR **ppStringsBuffer,IErrorInfo **ppErrorInfoRem);
   3366   void __RPC_STUB IColumnsInfo_RemoteGetColumnInfo_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   3367   HRESULT WINAPI IColumnsInfo_RemoteMapColumnIDs_Proxy(IColumnsInfo *This,DBORDINAL cColumnIDs,const DBID *rgColumnIDs,DBORDINAL *rgColumns,IErrorInfo **ppErrorInfoRem);
   3368   void __RPC_STUB IColumnsInfo_RemoteMapColumnIDs_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   3369 #endif
   3370 
   3371 #ifndef __IDBCreateCommand_INTERFACE_DEFINED__
   3372 #define __IDBCreateCommand_INTERFACE_DEFINED__
   3373   EXTERN_C const IID IID_IDBCreateCommand;
   3374 #if defined(__cplusplus) && !defined(CINTERFACE)
   3375   struct IDBCreateCommand : public IUnknown {
   3376   public:
   3377     virtual HRESULT WINAPI CreateCommand(IUnknown *pUnkOuter,REFIID riid,IUnknown **ppCommand) = 0;
   3378   };
   3379 #else
   3380   typedef struct IDBCreateCommandVtbl {
   3381     BEGIN_INTERFACE
   3382       HRESULT (WINAPI *QueryInterface)(IDBCreateCommand *This,REFIID riid,void **ppvObject);
   3383       ULONG (WINAPI *AddRef)(IDBCreateCommand *This);
   3384       ULONG (WINAPI *Release)(IDBCreateCommand *This);
   3385       HRESULT (WINAPI *CreateCommand)(IDBCreateCommand *This,IUnknown *pUnkOuter,REFIID riid,IUnknown **ppCommand);
   3386     END_INTERFACE
   3387   } IDBCreateCommandVtbl;
   3388   struct IDBCreateCommand {
   3389     CONST_VTBL struct IDBCreateCommandVtbl *lpVtbl;
   3390   };
   3391 #ifdef COBJMACROS
   3392 #define IDBCreateCommand_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   3393 #define IDBCreateCommand_AddRef(This) (This)->lpVtbl->AddRef(This)
   3394 #define IDBCreateCommand_Release(This) (This)->lpVtbl->Release(This)
   3395 #define IDBCreateCommand_CreateCommand(This,pUnkOuter,riid,ppCommand) (This)->lpVtbl->CreateCommand(This,pUnkOuter,riid,ppCommand)
   3396 #endif
   3397 #endif
   3398   HRESULT WINAPI IDBCreateCommand_RemoteCreateCommand_Proxy(IDBCreateCommand *This,IUnknown *pUnkOuter,REFIID riid,IUnknown **ppCommand,IErrorInfo **ppErrorInfoRem);
   3399   void __RPC_STUB IDBCreateCommand_RemoteCreateCommand_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   3400 #endif
   3401 
   3402 #ifndef __IDBCreateSession_INTERFACE_DEFINED__
   3403 #define __IDBCreateSession_INTERFACE_DEFINED__
   3404   EXTERN_C const IID IID_IDBCreateSession;
   3405 #if defined(__cplusplus) && !defined(CINTERFACE)
   3406   struct IDBCreateSession : public IUnknown {
   3407   public:
   3408     virtual HRESULT WINAPI CreateSession(IUnknown *pUnkOuter,REFIID riid,IUnknown **ppDBSession) = 0;
   3409   };
   3410 #else
   3411   typedef struct IDBCreateSessionVtbl {
   3412     BEGIN_INTERFACE
   3413       HRESULT (WINAPI *QueryInterface)(IDBCreateSession *This,REFIID riid,void **ppvObject);
   3414       ULONG (WINAPI *AddRef)(IDBCreateSession *This);
   3415       ULONG (WINAPI *Release)(IDBCreateSession *This);
   3416       HRESULT (WINAPI *CreateSession)(IDBCreateSession *This,IUnknown *pUnkOuter,REFIID riid,IUnknown **ppDBSession);
   3417     END_INTERFACE
   3418   } IDBCreateSessionVtbl;
   3419   struct IDBCreateSession {
   3420     CONST_VTBL struct IDBCreateSessionVtbl *lpVtbl;
   3421   };
   3422 #ifdef COBJMACROS
   3423 #define IDBCreateSession_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   3424 #define IDBCreateSession_AddRef(This) (This)->lpVtbl->AddRef(This)
   3425 #define IDBCreateSession_Release(This) (This)->lpVtbl->Release(This)
   3426 #define IDBCreateSession_CreateSession(This,pUnkOuter,riid,ppDBSession) (This)->lpVtbl->CreateSession(This,pUnkOuter,riid,ppDBSession)
   3427 #endif
   3428 #endif
   3429   HRESULT WINAPI IDBCreateSession_RemoteCreateSession_Proxy(IDBCreateSession *This,IUnknown *pUnkOuter,REFIID riid,IUnknown **ppDBSession,IErrorInfo **ppErrorInfoRem);
   3430   void __RPC_STUB IDBCreateSession_RemoteCreateSession_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   3431 #endif
   3432 
   3433 #ifndef __ISourcesRowset_INTERFACE_DEFINED__
   3434 #define __ISourcesRowset_INTERFACE_DEFINED__
   3435   typedef DWORD DBSOURCETYPE;
   3436 
   3437   enum DBSOURCETYPEENUM {
   3438     DBSOURCETYPE_DATASOURCE = 1,DBSOURCETYPE_ENUMERATOR = 2
   3439   };
   3440 
   3441 #if (OLEDBVER >= 0x0200)
   3442   enum DBSOURCETYPEENUM20 {
   3443     DBSOURCETYPE_DATASOURCE_TDP = 1,DBSOURCETYPE_DATASOURCE_MDP = 3
   3444   };
   3445 #endif
   3446 
   3447 #if (OLEDBVER >= 0x0250)
   3448   enum DBSOURCETYPEENUM25 {
   3449     DBSOURCETYPE_BINDER = 4
   3450   };
   3451 #endif
   3452 
   3453   EXTERN_C const IID IID_ISourcesRowset;
   3454 #if defined(__cplusplus) && !defined(CINTERFACE)
   3455   struct ISourcesRowset : public IUnknown {
   3456   public:
   3457     virtual HRESULT WINAPI GetSourcesRowset(IUnknown *pUnkOuter,REFIID riid,ULONG cPropertySets,DBPROPSET rgProperties[],IUnknown **ppSourcesRowset) = 0;
   3458   };
   3459 #else
   3460   typedef struct ISourcesRowsetVtbl {
   3461     BEGIN_INTERFACE
   3462       HRESULT (WINAPI *QueryInterface)(ISourcesRowset *This,REFIID riid,void **ppvObject);
   3463       ULONG (WINAPI *AddRef)(ISourcesRowset *This);
   3464       ULONG (WINAPI *Release)(ISourcesRowset *This);
   3465       HRESULT (WINAPI *GetSourcesRowset)(ISourcesRowset *This,IUnknown *pUnkOuter,REFIID riid,ULONG cPropertySets,DBPROPSET rgProperties[],IUnknown **ppSourcesRowset);
   3466     END_INTERFACE
   3467   } ISourcesRowsetVtbl;
   3468   struct ISourcesRowset {
   3469     CONST_VTBL struct ISourcesRowsetVtbl *lpVtbl;
   3470   };
   3471 #ifdef COBJMACROS
   3472 #define ISourcesRowset_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   3473 #define ISourcesRowset_AddRef(This) (This)->lpVtbl->AddRef(This)
   3474 #define ISourcesRowset_Release(This) (This)->lpVtbl->Release(This)
   3475 #define ISourcesRowset_GetSourcesRowset(This,pUnkOuter,riid,cPropertySets,rgProperties,ppSourcesRowset) (This)->lpVtbl->GetSourcesRowset(This,pUnkOuter,riid,cPropertySets,rgProperties,ppSourcesRowset)
   3476 #endif
   3477 #endif
   3478   HRESULT WINAPI ISourcesRowset_RemoteGetSourcesRowset_Proxy(ISourcesRowset *This,IUnknown *pUnkOuter,REFIID riid,ULONG cPropertySets,DBPROPSET *rgProperties,IUnknown **ppSourcesRowset,ULONG cTotalProps,DBPROPSTATUS *rgPropStatus,IErrorInfo **ppErrorInfoRem);
   3479   void __RPC_STUB ISourcesRowset_RemoteGetSourcesRowset_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   3480 #endif
   3481 
   3482 #ifndef __IDBProperties_INTERFACE_DEFINED__
   3483 #define __IDBProperties_INTERFACE_DEFINED__
   3484   EXTERN_C const IID IID_IDBProperties;
   3485 #if defined(__cplusplus) && !defined(CINTERFACE)
   3486   struct IDBProperties : public IUnknown {
   3487   public:
   3488     virtual HRESULT WINAPI GetProperties(ULONG cPropertyIDSets,const DBPROPIDSET rgPropertyIDSets[],ULONG *pcPropertySets,DBPROPSET **prgPropertySets) = 0;
   3489     virtual HRESULT WINAPI GetPropertyInfo(ULONG cPropertyIDSets,const DBPROPIDSET rgPropertyIDSets[],ULONG *pcPropertyInfoSets,DBPROPINFOSET **prgPropertyInfoSets,OLECHAR **ppDescBuffer) = 0;
   3490     virtual HRESULT WINAPI SetProperties(ULONG cPropertySets,DBPROPSET rgPropertySets[]) = 0;
   3491   };
   3492 #else
   3493   typedef struct IDBPropertiesVtbl {
   3494     BEGIN_INTERFACE
   3495       HRESULT (WINAPI *QueryInterface)(IDBProperties *This,REFIID riid,void **ppvObject);
   3496       ULONG (WINAPI *AddRef)(IDBProperties *This);
   3497       ULONG (WINAPI *Release)(IDBProperties *This);
   3498       HRESULT (WINAPI *GetProperties)(IDBProperties *This,ULONG cPropertyIDSets,const DBPROPIDSET rgPropertyIDSets[],ULONG *pcPropertySets,DBPROPSET **prgPropertySets);
   3499       HRESULT (WINAPI *GetPropertyInfo)(IDBProperties *This,ULONG cPropertyIDSets,const DBPROPIDSET rgPropertyIDSets[],ULONG *pcPropertyInfoSets,DBPROPINFOSET **prgPropertyInfoSets,OLECHAR **ppDescBuffer);
   3500       HRESULT (WINAPI *SetProperties)(IDBProperties *This,ULONG cPropertySets,DBPROPSET rgPropertySets[]);
   3501     END_INTERFACE
   3502   } IDBPropertiesVtbl;
   3503   struct IDBProperties {
   3504     CONST_VTBL struct IDBPropertiesVtbl *lpVtbl;
   3505   };
   3506 #ifdef COBJMACROS
   3507 #define IDBProperties_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   3508 #define IDBProperties_AddRef(This) (This)->lpVtbl->AddRef(This)
   3509 #define IDBProperties_Release(This) (This)->lpVtbl->Release(This)
   3510 #define IDBProperties_GetProperties(This,cPropertyIDSets,rgPropertyIDSets,pcPropertySets,prgPropertySets) (This)->lpVtbl->GetProperties(This,cPropertyIDSets,rgPropertyIDSets,pcPropertySets,prgPropertySets)
   3511 #define IDBProperties_GetPropertyInfo(This,cPropertyIDSets,rgPropertyIDSets,pcPropertyInfoSets,prgPropertyInfoSets,ppDescBuffer) (This)->lpVtbl->GetPropertyInfo(This,cPropertyIDSets,rgPropertyIDSets,pcPropertyInfoSets,prgPropertyInfoSets,ppDescBuffer)
   3512 #define IDBProperties_SetProperties(This,cPropertySets,rgPropertySets) (This)->lpVtbl->SetProperties(This,cPropertySets,rgPropertySets)
   3513 #endif
   3514 #endif
   3515   HRESULT WINAPI IDBProperties_RemoteGetProperties_Proxy(IDBProperties *This,ULONG cPropertyIDSets,const DBPROPIDSET *rgPropertyIDSets,ULONG *pcPropertySets,DBPROPSET **prgPropertySets,IErrorInfo **ppErrorInfoRem);
   3516   void __RPC_STUB IDBProperties_RemoteGetProperties_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   3517   HRESULT WINAPI IDBProperties_RemoteGetPropertyInfo_Proxy(IDBProperties *This,ULONG cPropertyIDSets,const DBPROPIDSET *rgPropertyIDSets,ULONG *pcPropertyInfoSets,DBPROPINFOSET **prgPropertyInfoSets,ULONG *pcOffsets,DBBYTEOFFSET **prgDescOffsets,ULONG *pcbDescBuffer,OLECHAR **ppDescBuffer,IErrorInfo **ppErrorInfoRem);
   3518   void __RPC_STUB IDBProperties_RemoteGetPropertyInfo_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   3519   HRESULT WINAPI IDBProperties_RemoteSetProperties_Proxy(IDBProperties *This,ULONG cPropertySets,DBPROPSET *rgPropertySets,ULONG cTotalProps,DBPROPSTATUS *rgPropStatus,IErrorInfo **ppErrorInfoRem);
   3520   void __RPC_STUB IDBProperties_RemoteSetProperties_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   3521 #endif
   3522 
   3523 #ifndef __IDBInitialize_INTERFACE_DEFINED__
   3524 #define __IDBInitialize_INTERFACE_DEFINED__
   3525   EXTERN_C const IID IID_IDBInitialize;
   3526 #if defined(__cplusplus) && !defined(CINTERFACE)
   3527   struct IDBInitialize : public IUnknown {
   3528   public:
   3529     virtual HRESULT WINAPI Initialize(void) = 0;
   3530     virtual HRESULT WINAPI Uninitialize(void) = 0;
   3531   };
   3532 #else
   3533   typedef struct IDBInitializeVtbl {
   3534     BEGIN_INTERFACE
   3535       HRESULT (WINAPI *QueryInterface)(IDBInitialize *This,REFIID riid,void **ppvObject);
   3536       ULONG (WINAPI *AddRef)(IDBInitialize *This);
   3537       ULONG (WINAPI *Release)(IDBInitialize *This);
   3538       HRESULT (WINAPI *Initialize)(IDBInitialize *This);
   3539       HRESULT (WINAPI *Uninitialize)(IDBInitialize *This);
   3540     END_INTERFACE
   3541   } IDBInitializeVtbl;
   3542   struct IDBInitialize {
   3543     CONST_VTBL struct IDBInitializeVtbl *lpVtbl;
   3544   };
   3545 #ifdef COBJMACROS
   3546 #define IDBInitialize_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   3547 #define IDBInitialize_AddRef(This) (This)->lpVtbl->AddRef(This)
   3548 #define IDBInitialize_Release(This) (This)->lpVtbl->Release(This)
   3549 #define IDBInitialize_Initialize(This) (This)->lpVtbl->Initialize(This)
   3550 #define IDBInitialize_Uninitialize(This) (This)->lpVtbl->Uninitialize(This)
   3551 #endif
   3552 #endif
   3553   HRESULT WINAPI IDBInitialize_RemoteInitialize_Proxy(IDBInitialize *This,IErrorInfo **ppErrorInfoRem);
   3554   void __RPC_STUB IDBInitialize_RemoteInitialize_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   3555   HRESULT WINAPI IDBInitialize_RemoteUninitialize_Proxy(IDBInitialize *This,IErrorInfo **ppErrorInfoRem);
   3556   void __RPC_STUB IDBInitialize_RemoteUninitialize_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   3557 #endif
   3558 
   3559 #ifndef __IDBInfo_INTERFACE_DEFINED__
   3560 #define __IDBInfo_INTERFACE_DEFINED__
   3561   typedef DWORD DBLITERAL;
   3562 
   3563   enum DBLITERALENUM {
   3564     DBLITERAL_INVALID = 0,DBLITERAL_BINARY_LITERAL = 1,DBLITERAL_CATALOG_NAME = 2,DBLITERAL_CATALOG_SEPARATOR = 3,DBLITERAL_CHAR_LITERAL = 4,
   3565     DBLITERAL_COLUMN_ALIAS = 5,DBLITERAL_COLUMN_NAME = 6,DBLITERAL_CORRELATION_NAME = 7,DBLITERAL_CURSOR_NAME = 8,DBLITERAL_ESCAPE_PERCENT = 9,
   3566     DBLITERAL_ESCAPE_UNDERSCORE = 10,DBLITERAL_INDEX_NAME = 11,DBLITERAL_LIKE_PERCENT = 12,DBLITERAL_LIKE_UNDERSCORE = 13,DBLITERAL_PROCEDURE_NAME = 14,
   3567     DBLITERAL_QUOTE = 15,DBLITERAL_SCHEMA_NAME = 16,DBLITERAL_TABLE_NAME = 17,DBLITERAL_TEXT_COMMAND = 18,DBLITERAL_USER_NAME = 19,
   3568     DBLITERAL_VIEW_NAME = 20
   3569   };
   3570 
   3571 #if (OLEDBVER >= 0x0200)
   3572 #define DBLITERAL_QUOTE_PREFIX DBLITERAL_QUOTE
   3573   enum DBLITERALENUM20 {
   3574     DBLITERAL_CUBE_NAME = 21,DBLITERAL_DIMENSION_NAME = 22,DBLITERAL_HIERARCHY_NAME = 23,DBLITERAL_LEVEL_NAME = 24,DBLITERAL_MEMBER_NAME = 25,
   3575     DBLITERAL_PROPERTY_NAME = 26,DBLITERAL_SCHEMA_SEPARATOR = 27,DBLITERAL_QUOTE_SUFFIX = 28
   3576   };
   3577 #endif
   3578 
   3579 #if (OLEDBVER >= 0x0210)
   3580 #define DBLITERAL_ESCAPE_PERCENT_PREFIX DBLITERAL_ESCAPE_PERCENT
   3581 #define DBLITERAL_ESCAPE_UNDERSCORE_PREFIX DBLITERAL_ESCAPE_UNDERSCORE
   3582 
   3583   enum DBLITERALENUM21 {
   3584     DBLITERAL_ESCAPE_PERCENT_SUFFIX = 29,DBLITERAL_ESCAPE_UNDERSCORE_SUFFIX = 30
   3585   };
   3586 #endif
   3587 
   3588   typedef struct tagDBLITERALINFO {
   3589     LPOLESTR pwszLiteralValue;
   3590     LPOLESTR pwszInvalidChars;
   3591     LPOLESTR pwszInvalidStartingChars;
   3592     DBLITERAL lt;
   3593     WINBOOL fSupported;
   3594     ULONG cchMaxLen;
   3595   } DBLITERALINFO;
   3596 
   3597   EXTERN_C const IID IID_IDBInfo;
   3598 #if defined(__cplusplus) && !defined(CINTERFACE)
   3599   struct IDBInfo : public IUnknown {
   3600   public:
   3601     virtual HRESULT WINAPI GetKeywords(LPOLESTR *ppwszKeywords) = 0;
   3602     virtual HRESULT WINAPI GetLiteralInfo(ULONG cLiterals,const DBLITERAL rgLiterals[],ULONG *pcLiteralInfo,DBLITERALINFO **prgLiteralInfo,OLECHAR **ppCharBuffer) = 0;
   3603   };
   3604 #else
   3605   typedef struct IDBInfoVtbl {
   3606     BEGIN_INTERFACE
   3607       HRESULT (WINAPI *QueryInterface)(IDBInfo *This,REFIID riid,void **ppvObject);
   3608       ULONG (WINAPI *AddRef)(IDBInfo *This);
   3609       ULONG (WINAPI *Release)(IDBInfo *This);
   3610       HRESULT (WINAPI *GetKeywords)(IDBInfo *This,LPOLESTR *ppwszKeywords);
   3611       HRESULT (WINAPI *GetLiteralInfo)(IDBInfo *This,ULONG cLiterals,const DBLITERAL rgLiterals[],ULONG *pcLiteralInfo,DBLITERALINFO **prgLiteralInfo,OLECHAR **ppCharBuffer);
   3612     END_INTERFACE
   3613   } IDBInfoVtbl;
   3614   struct IDBInfo {
   3615     CONST_VTBL struct IDBInfoVtbl *lpVtbl;
   3616   };
   3617 #ifdef COBJMACROS
   3618 #define IDBInfo_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   3619 #define IDBInfo_AddRef(This) (This)->lpVtbl->AddRef(This)
   3620 #define IDBInfo_Release(This) (This)->lpVtbl->Release(This)
   3621 #define IDBInfo_GetKeywords(This,ppwszKeywords) (This)->lpVtbl->GetKeywords(This,ppwszKeywords)
   3622 #define IDBInfo_GetLiteralInfo(This,cLiterals,rgLiterals,pcLiteralInfo,prgLiteralInfo,ppCharBuffer) (This)->lpVtbl->GetLiteralInfo(This,cLiterals,rgLiterals,pcLiteralInfo,prgLiteralInfo,ppCharBuffer)
   3623 #endif
   3624 #endif
   3625   HRESULT WINAPI IDBInfo_RemoteGetKeywords_Proxy(IDBInfo *This,LPOLESTR *ppwszKeywords,IErrorInfo **ppErrorInfoRem);
   3626   void __RPC_STUB IDBInfo_RemoteGetKeywords_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   3627   HRESULT WINAPI IDBInfo_RemoteGetLiteralInfo_Proxy(IDBInfo *This,ULONG cLiterals,const DBLITERAL *rgLiterals,ULONG *pcLiteralInfo,DBLITERALINFO **prgLiteralInfo,DB_UPARAMS **prgLVOffsets,DB_UPARAMS **prgICOffsets,DB_UPARAMS **prgISCOffsets,ULONG *pcbCharBuffer,OLECHAR **ppCharBuffer,IErrorInfo **ppErrorInfoRem);
   3628   void __RPC_STUB IDBInfo_RemoteGetLiteralInfo_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   3629 #endif
   3630 
   3631 #ifndef __IDBDataSourceAdmin_INTERFACE_DEFINED__
   3632 #define __IDBDataSourceAdmin_INTERFACE_DEFINED__
   3633   EXTERN_C const IID IID_IDBDataSourceAdmin;
   3634 #if defined(__cplusplus) && !defined(CINTERFACE)
   3635   struct IDBDataSourceAdmin : public IUnknown {
   3636   public:
   3637     virtual HRESULT WINAPI CreateDataSource(ULONG cPropertySets,DBPROPSET rgPropertySets[],IUnknown *pUnkOuter,REFIID riid,IUnknown **ppDBSession) = 0;
   3638     virtual HRESULT WINAPI DestroyDataSource(void) = 0;
   3639     virtual HRESULT WINAPI GetCreationProperties(ULONG cPropertyIDSets,const DBPROPIDSET rgPropertyIDSets[],ULONG *pcPropertyInfoSets,DBPROPINFOSET **prgPropertyInfoSets,OLECHAR **ppDescBuffer) = 0;
   3640     virtual HRESULT WINAPI ModifyDataSource(ULONG cPropertySets,DBPROPSET rgPropertySets[]) = 0;
   3641   };
   3642 #else
   3643   typedef struct IDBDataSourceAdminVtbl {
   3644     BEGIN_INTERFACE
   3645       HRESULT (WINAPI *QueryInterface)(IDBDataSourceAdmin *This,REFIID riid,void **ppvObject);
   3646       ULONG (WINAPI *AddRef)(IDBDataSourceAdmin *This);
   3647       ULONG (WINAPI *Release)(IDBDataSourceAdmin *This);
   3648       HRESULT (WINAPI *CreateDataSource)(IDBDataSourceAdmin *This,ULONG cPropertySets,DBPROPSET rgPropertySets[],IUnknown *pUnkOuter,REFIID riid,IUnknown **ppDBSession);
   3649       HRESULT (WINAPI *DestroyDataSource)(IDBDataSourceAdmin *This);
   3650       HRESULT (WINAPI *GetCreationProperties)(IDBDataSourceAdmin *This,ULONG cPropertyIDSets,const DBPROPIDSET rgPropertyIDSets[],ULONG *pcPropertyInfoSets,DBPROPINFOSET **prgPropertyInfoSets,OLECHAR **ppDescBuffer);
   3651       HRESULT (WINAPI *ModifyDataSource)(IDBDataSourceAdmin *This,ULONG cPropertySets,DBPROPSET rgPropertySets[]);
   3652     END_INTERFACE
   3653   } IDBDataSourceAdminVtbl;
   3654   struct IDBDataSourceAdmin {
   3655     CONST_VTBL struct IDBDataSourceAdminVtbl *lpVtbl;
   3656   };
   3657 #ifdef COBJMACROS
   3658 #define IDBDataSourceAdmin_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   3659 #define IDBDataSourceAdmin_AddRef(This) (This)->lpVtbl->AddRef(This)
   3660 #define IDBDataSourceAdmin_Release(This) (This)->lpVtbl->Release(This)
   3661 #define IDBDataSourceAdmin_CreateDataSource(This,cPropertySets,rgPropertySets,pUnkOuter,riid,ppDBSession) (This)->lpVtbl->CreateDataSource(This,cPropertySets,rgPropertySets,pUnkOuter,riid,ppDBSession)
   3662 #define IDBDataSourceAdmin_DestroyDataSource(This) (This)->lpVtbl->DestroyDataSource(This)
   3663 #define IDBDataSourceAdmin_GetCreationProperties(This,cPropertyIDSets,rgPropertyIDSets,pcPropertyInfoSets,prgPropertyInfoSets,ppDescBuffer) (This)->lpVtbl->GetCreationProperties(This,cPropertyIDSets,rgPropertyIDSets,pcPropertyInfoSets,prgPropertyInfoSets,ppDescBuffer)
   3664 #define IDBDataSourceAdmin_ModifyDataSource(This,cPropertySets,rgPropertySets) (This)->lpVtbl->ModifyDataSource(This,cPropertySets,rgPropertySets)
   3665 #endif
   3666 #endif
   3667   HRESULT WINAPI IDBDataSourceAdmin_RemoteCreateDataSource_Proxy(IDBDataSourceAdmin *This,ULONG cPropertySets,DBPROPSET *rgPropertySets,IUnknown *pUnkOuter,REFIID riid,IUnknown **ppDBSession,ULONG cTotalProps,DBPROPSTATUS *rgPropStatus,IErrorInfo **ppErrorInfoRem);
   3668   void __RPC_STUB IDBDataSourceAdmin_RemoteCreateDataSource_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   3669   HRESULT WINAPI IDBDataSourceAdmin_RemoteDestroyDataSource_Proxy(IDBDataSourceAdmin *This,IErrorInfo **ppErrorInfoRem);
   3670   void __RPC_STUB IDBDataSourceAdmin_RemoteDestroyDataSource_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   3671   HRESULT WINAPI IDBDataSourceAdmin_RemoteGetCreationProperties_Proxy(IDBDataSourceAdmin *This,ULONG cPropertyIDSets,const DBPROPIDSET *rgPropertyIDSets,ULONG *pcPropertyInfoSets,DBPROPINFOSET **prgPropertyInfoSets,DBCOUNTITEM *pcOffsets,DBBYTEOFFSET **prgDescOffsets,ULONG *pcbDescBuffer,OLECHAR **ppDescBuffer,IErrorInfo **ppErrorInfoRem);
   3672   void __RPC_STUB IDBDataSourceAdmin_RemoteGetCreationProperties_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   3673   HRESULT WINAPI IDBDataSourceAdmin_RemoteModifyDataSource_Proxy(IDBDataSourceAdmin *This,ULONG cPropertySets,DBPROPSET *rgPropertySets,IErrorInfo **ppErrorInfoRem);
   3674   void __RPC_STUB IDBDataSourceAdmin_RemoteModifyDataSource_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   3675 #endif
   3676 
   3677 #if (OLEDBVER >= 0x0150)
   3678   extern RPC_IF_HANDLE __MIDL_itf_oledb_0304_v0_0_c_ifspec;
   3679   extern RPC_IF_HANDLE __MIDL_itf_oledb_0304_v0_0_s_ifspec;
   3680 
   3681 #ifndef __IDBAsynchNotify_INTERFACE_DEFINED__
   3682 #define __IDBAsynchNotify_INTERFACE_DEFINED__
   3683   EXTERN_C const IID IID_IDBAsynchNotify;
   3684 #if defined(__cplusplus) && !defined(CINTERFACE)
   3685   struct IDBAsynchNotify : public IUnknown {
   3686   public:
   3687     virtual HRESULT WINAPI OnLowResource(DB_DWRESERVE dwReserved) = 0;
   3688     virtual HRESULT WINAPI OnProgress(HCHAPTER hChapter,DBASYNCHOP eOperation,DBCOUNTITEM ulProgress,DBCOUNTITEM ulProgressMax,DBASYNCHPHASE eAsynchPhase,LPOLESTR pwszStatusText) = 0;
   3689     virtual HRESULT WINAPI OnStop(HCHAPTER hChapter,DBASYNCHOP eOperation,HRESULT hrStatus,LPOLESTR pwszStatusText) = 0;
   3690   };
   3691 #else
   3692   typedef struct IDBAsynchNotifyVtbl {
   3693     BEGIN_INTERFACE
   3694       HRESULT (WINAPI *QueryInterface)(IDBAsynchNotify *This,REFIID riid,void **ppvObject);
   3695       ULONG (WINAPI *AddRef)(IDBAsynchNotify *This);
   3696       ULONG (WINAPI *Release)(IDBAsynchNotify *This);
   3697       HRESULT (WINAPI *OnLowResource)(IDBAsynchNotify *This,DB_DWRESERVE dwReserved);
   3698       HRESULT (WINAPI *OnProgress)(IDBAsynchNotify *This,HCHAPTER hChapter,DBASYNCHOP eOperation,DBCOUNTITEM ulProgress,DBCOUNTITEM ulProgressMax,DBASYNCHPHASE eAsynchPhase,LPOLESTR pwszStatusText);
   3699       HRESULT (WINAPI *OnStop)(IDBAsynchNotify *This,HCHAPTER hChapter,DBASYNCHOP eOperation,HRESULT hrStatus,LPOLESTR pwszStatusText);
   3700     END_INTERFACE
   3701   } IDBAsynchNotifyVtbl;
   3702   struct IDBAsynchNotify {
   3703     CONST_VTBL struct IDBAsynchNotifyVtbl *lpVtbl;
   3704   };
   3705 #ifdef COBJMACROS
   3706 #define IDBAsynchNotify_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   3707 #define IDBAsynchNotify_AddRef(This) (This)->lpVtbl->AddRef(This)
   3708 #define IDBAsynchNotify_Release(This) (This)->lpVtbl->Release(This)
   3709 #define IDBAsynchNotify_OnLowResource(This,dwReserved) (This)->lpVtbl->OnLowResource(This,dwReserved)
   3710 #define IDBAsynchNotify_OnProgress(This,hChapter,eOperation,ulProgress,ulProgressMax,eAsynchPhase,pwszStatusText) (This)->lpVtbl->OnProgress(This,hChapter,eOperation,ulProgress,ulProgressMax,eAsynchPhase,pwszStatusText)
   3711 #define IDBAsynchNotify_OnStop(This,hChapter,eOperation,hrStatus,pwszStatusText) (This)->lpVtbl->OnStop(This,hChapter,eOperation,hrStatus,pwszStatusText)
   3712 #endif
   3713 #endif
   3714   HRESULT WINAPI IDBAsynchNotify_RemoteOnLowResource_Proxy(IDBAsynchNotify *This,DB_DWRESERVE dwReserved);
   3715   void __RPC_STUB IDBAsynchNotify_RemoteOnLowResource_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   3716   HRESULT WINAPI IDBAsynchNotify_RemoteOnProgress_Proxy(IDBAsynchNotify *This,HCHAPTER hChapter,DBASYNCHOP eOperation,DBCOUNTITEM ulProgress,DBCOUNTITEM ulProgressMax,DBASYNCHPHASE eAsynchPhase,LPOLESTR pwszStatusText);
   3717   void __RPC_STUB IDBAsynchNotify_RemoteOnProgress_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   3718   HRESULT WINAPI IDBAsynchNotify_RemoteOnStop_Proxy(IDBAsynchNotify *This,HCHAPTER hChapter,DBASYNCHOP eOperation,HRESULT hrStatus,LPOLESTR pwszStatusText);
   3719   void __RPC_STUB IDBAsynchNotify_RemoteOnStop_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   3720 #endif
   3721 
   3722 #ifndef __IDBAsynchStatus_INTERFACE_DEFINED__
   3723 #define __IDBAsynchStatus_INTERFACE_DEFINED__
   3724   EXTERN_C const IID IID_IDBAsynchStatus;
   3725 #if defined(__cplusplus) && !defined(CINTERFACE)
   3726   struct IDBAsynchStatus : public IUnknown {
   3727   public:
   3728     virtual HRESULT WINAPI Abort(HCHAPTER hChapter,DBASYNCHOP eOperation) = 0;
   3729     virtual HRESULT WINAPI GetStatus(HCHAPTER hChapter,DBASYNCHOP eOperation,DBCOUNTITEM *pulProgress,DBCOUNTITEM *pulProgressMax,DBASYNCHPHASE *peAsynchPhase,LPOLESTR *ppwszStatusText) = 0;
   3730   };
   3731 #else
   3732   typedef struct IDBAsynchStatusVtbl {
   3733     BEGIN_INTERFACE
   3734       HRESULT (WINAPI *QueryInterface)(IDBAsynchStatus *This,REFIID riid,void **ppvObject);
   3735       ULONG (WINAPI *AddRef)(IDBAsynchStatus *This);
   3736       ULONG (WINAPI *Release)(IDBAsynchStatus *This);
   3737       HRESULT (WINAPI *Abort)(IDBAsynchStatus *This,HCHAPTER hChapter,DBASYNCHOP eOperation);
   3738       HRESULT (WINAPI *GetStatus)(IDBAsynchStatus *This,HCHAPTER hChapter,DBASYNCHOP eOperation,DBCOUNTITEM *pulProgress,DBCOUNTITEM *pulProgressMax,DBASYNCHPHASE *peAsynchPhase,LPOLESTR *ppwszStatusText);
   3739     END_INTERFACE
   3740   } IDBAsynchStatusVtbl;
   3741   struct IDBAsynchStatus {
   3742     CONST_VTBL struct IDBAsynchStatusVtbl *lpVtbl;
   3743   };
   3744 #ifdef COBJMACROS
   3745 #define IDBAsynchStatus_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   3746 #define IDBAsynchStatus_AddRef(This) (This)->lpVtbl->AddRef(This)
   3747 #define IDBAsynchStatus_Release(This) (This)->lpVtbl->Release(This)
   3748 #define IDBAsynchStatus_Abort(This,hChapter,eOperation) (This)->lpVtbl->Abort(This,hChapter,eOperation)
   3749 #define IDBAsynchStatus_GetStatus(This,hChapter,eOperation,pulProgress,pulProgressMax,peAsynchPhase,ppwszStatusText) (This)->lpVtbl->GetStatus(This,hChapter,eOperation,pulProgress,pulProgressMax,peAsynchPhase,ppwszStatusText)
   3750 #endif
   3751 #endif
   3752   HRESULT WINAPI IDBAsynchStatus_RemoteAbort_Proxy(IDBAsynchStatus *This,HCHAPTER hChapter,DBASYNCHOP eOperation,IErrorInfo **ppErrorInfoRem);
   3753   void __RPC_STUB IDBAsynchStatus_RemoteAbort_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   3754   HRESULT WINAPI IDBAsynchStatus_RemoteGetStatus_Proxy(IDBAsynchStatus *This,HCHAPTER hChapter,DBASYNCHOP eOperation,DBCOUNTITEM *pulProgress,DBCOUNTITEM *pulProgressMax,DBASYNCHPHASE *peAsynchPhase,LPOLESTR *ppwszStatusText,IErrorInfo **ppErrorInfoRem);
   3755   void __RPC_STUB IDBAsynchStatus_RemoteGetStatus_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   3756 #endif
   3757 #endif
   3758 
   3759   extern RPC_IF_HANDLE __MIDL_itf_oledb_0306_v0_0_c_ifspec;
   3760   extern RPC_IF_HANDLE __MIDL_itf_oledb_0306_v0_0_s_ifspec;
   3761 
   3762 #ifndef __ISessionProperties_INTERFACE_DEFINED__
   3763 #define __ISessionProperties_INTERFACE_DEFINED__
   3764   EXTERN_C const IID IID_ISessionProperties;
   3765 #if defined(__cplusplus) && !defined(CINTERFACE)
   3766   struct ISessionProperties : public IUnknown {
   3767   public:
   3768     virtual HRESULT WINAPI GetProperties(ULONG cPropertyIDSets,const DBPROPIDSET rgPropertyIDSets[],ULONG *pcPropertySets,DBPROPSET **prgPropertySets) = 0;
   3769     virtual HRESULT WINAPI SetProperties(ULONG cPropertySets,DBPROPSET rgPropertySets[]) = 0;
   3770   };
   3771 #else
   3772   typedef struct ISessionPropertiesVtbl {
   3773     BEGIN_INTERFACE
   3774       HRESULT (WINAPI *QueryInterface)(ISessionProperties *This,REFIID riid,void **ppvObject);
   3775       ULONG (WINAPI *AddRef)(ISessionProperties *This);
   3776       ULONG (WINAPI *Release)(ISessionProperties *This);
   3777       HRESULT (WINAPI *GetProperties)(ISessionProperties *This,ULONG cPropertyIDSets,const DBPROPIDSET rgPropertyIDSets[],ULONG *pcPropertySets,DBPROPSET **prgPropertySets);
   3778       HRESULT (WINAPI *SetProperties)(ISessionProperties *This,ULONG cPropertySets,DBPROPSET rgPropertySets[]);
   3779     END_INTERFACE
   3780   } ISessionPropertiesVtbl;
   3781   struct ISessionProperties {
   3782     CONST_VTBL struct ISessionPropertiesVtbl *lpVtbl;
   3783   };
   3784 #ifdef COBJMACROS
   3785 #define ISessionProperties_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   3786 #define ISessionProperties_AddRef(This) (This)->lpVtbl->AddRef(This)
   3787 #define ISessionProperties_Release(This) (This)->lpVtbl->Release(This)
   3788 #define ISessionProperties_GetProperties(This,cPropertyIDSets,rgPropertyIDSets,pcPropertySets,prgPropertySets) (This)->lpVtbl->GetProperties(This,cPropertyIDSets,rgPropertyIDSets,pcPropertySets,prgPropertySets)
   3789 #define ISessionProperties_SetProperties(This,cPropertySets,rgPropertySets) (This)->lpVtbl->SetProperties(This,cPropertySets,rgPropertySets)
   3790 #endif
   3791 #endif
   3792   HRESULT WINAPI ISessionProperties_RemoteGetProperties_Proxy(ISessionProperties *This,ULONG cPropertyIDSets,const DBPROPIDSET *rgPropertyIDSets,ULONG *pcPropertySets,DBPROPSET **prgPropertySets,IErrorInfo **ppErrorInfoRem);
   3793   void __RPC_STUB ISessionProperties_RemoteGetProperties_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   3794   HRESULT WINAPI ISessionProperties_RemoteSetProperties_Proxy(ISessionProperties *This,ULONG cPropertySets,DBPROPSET *rgPropertySets,ULONG cTotalProps,DBPROPSTATUS *rgPropStatus,IErrorInfo **ppErrorInfoRem);
   3795   void __RPC_STUB ISessionProperties_RemoteSetProperties_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   3796 #endif
   3797 
   3798 #ifndef __IIndexDefinition_INTERFACE_DEFINED__
   3799 #define __IIndexDefinition_INTERFACE_DEFINED__
   3800   EXTERN_C const IID IID_IIndexDefinition;
   3801 #if defined(__cplusplus) && !defined(CINTERFACE)
   3802   struct IIndexDefinition : public IUnknown {
   3803   public:
   3804     virtual HRESULT WINAPI CreateIndex(DBID *pTableID,DBID *pIndexID,DBORDINAL cIndexColumnDescs,const DBINDEXCOLUMNDESC rgIndexColumnDescs[],ULONG cPropertySets,DBPROPSET rgPropertySets[],DBID **ppIndexID) = 0;
   3805     virtual HRESULT WINAPI DropIndex(DBID *pTableID,DBID *pIndexID) = 0;
   3806   };
   3807 #else
   3808   typedef struct IIndexDefinitionVtbl {
   3809     BEGIN_INTERFACE
   3810       HRESULT (WINAPI *QueryInterface)(IIndexDefinition *This,REFIID riid,void **ppvObject);
   3811       ULONG (WINAPI *AddRef)(IIndexDefinition *This);
   3812       ULONG (WINAPI *Release)(IIndexDefinition *This);
   3813       HRESULT (WINAPI *CreateIndex)(IIndexDefinition *This,DBID *pTableID,DBID *pIndexID,DBORDINAL cIndexColumnDescs,const DBINDEXCOLUMNDESC rgIndexColumnDescs[],ULONG cPropertySets,DBPROPSET rgPropertySets[],DBID **ppIndexID);
   3814       HRESULT (WINAPI *DropIndex)(IIndexDefinition *This,DBID *pTableID,DBID *pIndexID);
   3815     END_INTERFACE
   3816   } IIndexDefinitionVtbl;
   3817   struct IIndexDefinition {
   3818     CONST_VTBL struct IIndexDefinitionVtbl *lpVtbl;
   3819   };
   3820 #ifdef COBJMACROS
   3821 #define IIndexDefinition_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   3822 #define IIndexDefinition_AddRef(This) (This)->lpVtbl->AddRef(This)
   3823 #define IIndexDefinition_Release(This) (This)->lpVtbl->Release(This)
   3824 #define IIndexDefinition_CreateIndex(This,pTableID,pIndexID,cIndexColumnDescs,rgIndexColumnDescs,cPropertySets,rgPropertySets,ppIndexID) (This)->lpVtbl->CreateIndex(This,pTableID,pIndexID,cIndexColumnDescs,rgIndexColumnDescs,cPropertySets,rgPropertySets,ppIndexID)
   3825 #define IIndexDefinition_DropIndex(This,pTableID,pIndexID) (This)->lpVtbl->DropIndex(This,pTableID,pIndexID)
   3826 #endif
   3827 #endif
   3828   HRESULT WINAPI IIndexDefinition_RemoteCreateIndex_Proxy(IIndexDefinition *This,DBID *pTableID,DBID *pIndexID,DBORDINAL cIndexColumnDescs,const DBINDEXCOLUMNDESC *rgIndexColumnDescs,ULONG cPropertySets,DBPROPSET *rgPropertySets,DBID **ppIndexID,ULONG cTotalProps,DBPROPSTATUS *rgPropStatus,IErrorInfo **ppErrorInfoRem);
   3829   void __RPC_STUB IIndexDefinition_RemoteCreateIndex_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   3830   HRESULT WINAPI IIndexDefinition_RemoteDropIndex_Proxy(IIndexDefinition *This,DBID *pTableID,DBID *pIndexID,IErrorInfo **ppErrorInfoRem);
   3831   void __RPC_STUB IIndexDefinition_RemoteDropIndex_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   3832 #endif
   3833 
   3834 #ifndef __ITableDefinition_INTERFACE_DEFINED__
   3835 #define __ITableDefinition_INTERFACE_DEFINED__
   3836   EXTERN_C const IID IID_ITableDefinition;
   3837 #if defined(__cplusplus) && !defined(CINTERFACE)
   3838   struct ITableDefinition : public IUnknown {
   3839   public:
   3840     virtual HRESULT WINAPI CreateTable(IUnknown *pUnkOuter,DBID *pTableID,DBORDINAL cColumnDescs,const DBCOLUMNDESC rgColumnDescs[],REFIID riid,ULONG cPropertySets,DBPROPSET rgPropertySets[],DBID **ppTableID,IUnknown **ppRowset) = 0;
   3841     virtual HRESULT WINAPI DropTable(DBID *pTableID) = 0;
   3842     virtual HRESULT WINAPI AddColumn(DBID *pTableID,DBCOLUMNDESC *pColumnDesc,DBID **ppColumnID) = 0;
   3843     virtual HRESULT WINAPI DropColumn(DBID *pTableID,DBID *pColumnID) = 0;
   3844   };
   3845 #else
   3846   typedef struct ITableDefinitionVtbl {
   3847     BEGIN_INTERFACE
   3848       HRESULT (WINAPI *QueryInterface)(ITableDefinition *This,REFIID riid,void **ppvObject);
   3849       ULONG (WINAPI *AddRef)(ITableDefinition *This);
   3850       ULONG (WINAPI *Release)(ITableDefinition *This);
   3851       HRESULT (WINAPI *CreateTable)(ITableDefinition *This,IUnknown *pUnkOuter,DBID *pTableID,DBORDINAL cColumnDescs,const DBCOLUMNDESC rgColumnDescs[],REFIID riid,ULONG cPropertySets,DBPROPSET rgPropertySets[],DBID **ppTableID,IUnknown **ppRowset);
   3852       HRESULT (WINAPI *DropTable)(ITableDefinition *This,DBID *pTableID);
   3853       HRESULT (WINAPI *AddColumn)(ITableDefinition *This,DBID *pTableID,DBCOLUMNDESC *pColumnDesc,DBID **ppColumnID);
   3854       HRESULT (WINAPI *DropColumn)(ITableDefinition *This,DBID *pTableID,DBID *pColumnID);
   3855     END_INTERFACE
   3856   } ITableDefinitionVtbl;
   3857   struct ITableDefinition {
   3858     CONST_VTBL struct ITableDefinitionVtbl *lpVtbl;
   3859   };
   3860 #ifdef COBJMACROS
   3861 #define ITableDefinition_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   3862 #define ITableDefinition_AddRef(This) (This)->lpVtbl->AddRef(This)
   3863 #define ITableDefinition_Release(This) (This)->lpVtbl->Release(This)
   3864 #define ITableDefinition_CreateTable(This,pUnkOuter,pTableID,cColumnDescs,rgColumnDescs,riid,cPropertySets,rgPropertySets,ppTableID,ppRowset) (This)->lpVtbl->CreateTable(This,pUnkOuter,pTableID,cColumnDescs,rgColumnDescs,riid,cPropertySets,rgPropertySets,ppTableID,ppRowset)
   3865 #define ITableDefinition_DropTable(This,pTableID) (This)->lpVtbl->DropTable(This,pTableID)
   3866 #define ITableDefinition_AddColumn(This,pTableID,pColumnDesc,ppColumnID) (This)->lpVtbl->AddColumn(This,pTableID,pColumnDesc,ppColumnID)
   3867 #define ITableDefinition_DropColumn(This,pTableID,pColumnID) (This)->lpVtbl->DropColumn(This,pTableID,pColumnID)
   3868 #endif
   3869 #endif
   3870   HRESULT WINAPI ITableDefinition_RemoteCreateTable_Proxy(ITableDefinition *This,IUnknown *pUnkOuter,DBID *pTableID,DBORDINAL cColumnDescs,const DBCOLUMNDESC *rgColumnDescs,REFIID riid,ULONG cPropertySets,DBPROPSET *rgPropertySets,DBID **ppTableID,IUnknown **ppRowset,ULONG cTotalProps,DBPROPSTATUS *rgPropStatus,WINBOOL *pfTableCreated,IErrorInfo **ppErrorInfoRem);
   3871   void __RPC_STUB ITableDefinition_RemoteCreateTable_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   3872   HRESULT WINAPI ITableDefinition_RemoteDropTable_Proxy(ITableDefinition *This,DBID *pTableID,IErrorInfo **ppErrorInfoRem);
   3873   void __RPC_STUB ITableDefinition_RemoteDropTable_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   3874   HRESULT WINAPI ITableDefinition_RemoteAddColumn_Proxy(ITableDefinition *This,DBID *pTableID,DBCOLUMNDESC *pColumnDesc,DBID **ppColumnID,ULONG cTotalProps,DBPROPSTATUS *rgPropStatus,IErrorInfo **ppErrorInfoRem);
   3875   void __RPC_STUB ITableDefinition_RemoteAddColumn_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   3876   HRESULT WINAPI ITableDefinition_RemoteDropColumn_Proxy(ITableDefinition *This,DBID *pTableID,DBID *pColumnID,IErrorInfo **ppErrorInfoRem);
   3877   void __RPC_STUB ITableDefinition_RemoteDropColumn_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   3878 #endif
   3879 
   3880 #ifndef __IOpenRowset_INTERFACE_DEFINED__
   3881 #define __IOpenRowset_INTERFACE_DEFINED__
   3882   EXTERN_C const IID IID_IOpenRowset;
   3883 #if defined(__cplusplus) && !defined(CINTERFACE)
   3884   struct IOpenRowset : public IUnknown {
   3885   public:
   3886     virtual HRESULT WINAPI OpenRowset(IUnknown *pUnkOuter,DBID *pTableID,DBID *pIndexID,REFIID riid,ULONG cPropertySets,DBPROPSET rgPropertySets[],IUnknown **ppRowset) = 0;
   3887   };
   3888 #else
   3889   typedef struct IOpenRowsetVtbl {
   3890     BEGIN_INTERFACE
   3891       HRESULT (WINAPI *QueryInterface)(IOpenRowset *This,REFIID riid,void **ppvObject);
   3892       ULONG (WINAPI *AddRef)(IOpenRowset *This);
   3893       ULONG (WINAPI *Release)(IOpenRowset *This);
   3894       HRESULT (WINAPI *OpenRowset)(IOpenRowset *This,IUnknown *pUnkOuter,DBID *pTableID,DBID *pIndexID,REFIID riid,ULONG cPropertySets,DBPROPSET rgPropertySets[],IUnknown **ppRowset);
   3895     END_INTERFACE
   3896   } IOpenRowsetVtbl;
   3897   struct IOpenRowset {
   3898     CONST_VTBL struct IOpenRowsetVtbl *lpVtbl;
   3899   };
   3900 #ifdef COBJMACROS
   3901 #define IOpenRowset_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   3902 #define IOpenRowset_AddRef(This) (This)->lpVtbl->AddRef(This)
   3903 #define IOpenRowset_Release(This) (This)->lpVtbl->Release(This)
   3904 #define IOpenRowset_OpenRowset(This,pUnkOuter,pTableID,pIndexID,riid,cPropertySets,rgPropertySets,ppRowset) (This)->lpVtbl->OpenRowset(This,pUnkOuter,pTableID,pIndexID,riid,cPropertySets,rgPropertySets,ppRowset)
   3905 #endif
   3906 #endif
   3907   HRESULT WINAPI IOpenRowset_RemoteOpenRowset_Proxy(IOpenRowset *This,IUnknown *pUnkOuter,DBID *pTableID,DBID *pIndexID,REFIID riid,ULONG cPropertySets,DBPROPSET *rgPropertySets,IUnknown **ppRowset,ULONG cTotalProps,DBPROPSTATUS *rgPropStatus,IErrorInfo **ppErrorInfoRem);
   3908   void __RPC_STUB IOpenRowset_RemoteOpenRowset_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   3909 #endif
   3910 
   3911 #ifndef __IDBSchemaRowset_INTERFACE_DEFINED__
   3912 #define __IDBSchemaRowset_INTERFACE_DEFINED__
   3913 
   3914 #define CRESTRICTIONS_DBSCHEMA_ASSERTIONS 3
   3915 #define CRESTRICTIONS_DBSCHEMA_CATALOGS 1
   3916 #define CRESTRICTIONS_DBSCHEMA_CHARACTER_SETS 3
   3917 #define CRESTRICTIONS_DBSCHEMA_COLLATIONS 3
   3918 #define CRESTRICTIONS_DBSCHEMA_COLUMNS 4
   3919 #define CRESTRICTIONS_DBSCHEMA_CHECK_CONSTRAINTS 3
   3920 #define CRESTRICTIONS_DBSCHEMA_CONSTRAINT_COLUMN_USAGE 4
   3921 #define CRESTRICTIONS_DBSCHEMA_CONSTRAINT_TABLE_USAGE 3
   3922 #define CRESTRICTIONS_DBSCHEMA_KEY_COLUMN_USAGE 7
   3923 #define CRESTRICTIONS_DBSCHEMA_REFERENTIAL_CONSTRAINTS 3
   3924 #define CRESTRICTIONS_DBSCHEMA_TABLE_CONSTRAINTS 7
   3925 #define CRESTRICTIONS_DBSCHEMA_COLUMN_DOMAIN_USAGE 4
   3926 #define CRESTRICTIONS_DBSCHEMA_INDEXES 5
   3927 #define CRESTRICTIONS_DBSCHEMA_OBJECT_ACTIONS 1
   3928 #define CRESTRICTIONS_DBSCHEMA_OBJECTS 1
   3929 #define CRESTRICTIONS_DBSCHEMA_COLUMN_PRIVILEGES 6
   3930 #define CRESTRICTIONS_DBSCHEMA_TABLE_PRIVILEGES 5
   3931 #define CRESTRICTIONS_DBSCHEMA_USAGE_PRIVILEGES 6
   3932 #define CRESTRICTIONS_DBSCHEMA_PROCEDURES 4
   3933 #define CRESTRICTIONS_DBSCHEMA_SCHEMATA 3
   3934 #define CRESTRICTIONS_DBSCHEMA_SQL_LANGUAGES 0
   3935 #define CRESTRICTIONS_DBSCHEMA_STATISTICS 3
   3936 #define CRESTRICTIONS_DBSCHEMA_TABLES 4
   3937 #define CRESTRICTIONS_DBSCHEMA_TRANSLATIONS 3
   3938 #define CRESTRICTIONS_DBSCHEMA_PROVIDER_TYPES 2
   3939 #define CRESTRICTIONS_DBSCHEMA_VIEWS 3
   3940 #define CRESTRICTIONS_DBSCHEMA_VIEW_COLUMN_USAGE 3
   3941 #define CRESTRICTIONS_DBSCHEMA_VIEW_TABLE_USAGE 3
   3942 #define CRESTRICTIONS_DBSCHEMA_PROCEDURE_PARAMETERS 4
   3943 #define CRESTRICTIONS_DBSCHEMA_FOREIGN_KEYS 6
   3944 #define CRESTRICTIONS_DBSCHEMA_PRIMARY_KEYS 3
   3945 #define CRESTRICTIONS_DBSCHEMA_PROCEDURE_COLUMNS 4
   3946 
   3947 #if (OLEDBVER >= 0x0200)
   3948 #define CRESTRICTIONS_DBSCHEMA_TABLES_INFO 4
   3949 #define CRESTRICTIONS_MDSCHEMA_CUBES 3
   3950 #define CRESTRICTIONS_MDSCHEMA_DIMENSIONS 5
   3951 #define CRESTRICTIONS_MDSCHEMA_HIERARCHIES 6
   3952 #define CRESTRICTIONS_MDSCHEMA_LEVELS 7
   3953 #define CRESTRICTIONS_MDSCHEMA_MEASURES 5
   3954 #define CRESTRICTIONS_MDSCHEMA_PROPERTIES 9
   3955 #define CRESTRICTIONS_MDSCHEMA_MEMBERS 12
   3956 #endif
   3957 
   3958 #if (OLEDBVER >= 0x0210)
   3959 #define CRESTRICTIONS_DBSCHEMA_TRUSTEE 4
   3960 #endif
   3961 
   3962 #if (OLEDBVER >= 0x0260)
   3963 #define CRESTRICTIONS_DBSCHEMA_TABLE_STATISTICS 7
   3964 #define CRESTRICTIONS_DBSCHEMA_CHECK_CONSTRAINTS_BY_TABLE 6
   3965 #define CRESTRICTIONS_MDSCHEMA_FUNCTIONS 4
   3966 #define CRESTRICTIONS_MDSCHEMA_ACTIONS 8
   3967 #define CRESTRICTIONS_MDSCHEMA_COMMANDS 5
   3968 #define CRESTRICTIONS_MDSCHEMA_SETS 5
   3969 #endif
   3970 
   3971   EXTERN_C const IID IID_IDBSchemaRowset;
   3972 #if defined(__cplusplus) && !defined(CINTERFACE)
   3973   struct IDBSchemaRowset : public IUnknown {
   3974   public:
   3975     virtual HRESULT WINAPI GetRowset(IUnknown *pUnkOuter,REFGUID rguidSchema,ULONG cRestrictions,const VARIANT rgRestrictions[],REFIID riid,ULONG cPropertySets,DBPROPSET rgPropertySets[],IUnknown **ppRowset) = 0;
   3976     virtual HRESULT WINAPI GetSchemas(ULONG *pcSchemas,GUID **prgSchemas,ULONG **prgRestrictionSupport) = 0;
   3977   };
   3978 #else
   3979   typedef struct IDBSchemaRowsetVtbl {
   3980     BEGIN_INTERFACE
   3981       HRESULT (WINAPI *QueryInterface)(IDBSchemaRowset *This,REFIID riid,void **ppvObject);
   3982       ULONG (WINAPI *AddRef)(IDBSchemaRowset *This);
   3983       ULONG (WINAPI *Release)(IDBSchemaRowset *This);
   3984       HRESULT (WINAPI *GetRowset)(IDBSchemaRowset *This,IUnknown *pUnkOuter,REFGUID rguidSchema,ULONG cRestrictions,const VARIANT rgRestrictions[],REFIID riid,ULONG cPropertySets,DBPROPSET rgPropertySets[],IUnknown **ppRowset);
   3985       HRESULT (WINAPI *GetSchemas)(IDBSchemaRowset *This,ULONG *pcSchemas,GUID **prgSchemas,ULONG **prgRestrictionSupport);
   3986     END_INTERFACE
   3987   } IDBSchemaRowsetVtbl;
   3988   struct IDBSchemaRowset {
   3989     CONST_VTBL struct IDBSchemaRowsetVtbl *lpVtbl;
   3990   };
   3991 #ifdef COBJMACROS
   3992 #define IDBSchemaRowset_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   3993 #define IDBSchemaRowset_AddRef(This) (This)->lpVtbl->AddRef(This)
   3994 #define IDBSchemaRowset_Release(This) (This)->lpVtbl->Release(This)
   3995 #define IDBSchemaRowset_GetRowset(This,pUnkOuter,rguidSchema,cRestrictions,rgRestrictions,riid,cPropertySets,rgPropertySets,ppRowset) (This)->lpVtbl->GetRowset(This,pUnkOuter,rguidSchema,cRestrictions,rgRestrictions,riid,cPropertySets,rgPropertySets,ppRowset)
   3996 #define IDBSchemaRowset_GetSchemas(This,pcSchemas,prgSchemas,prgRestrictionSupport) (This)->lpVtbl->GetSchemas(This,pcSchemas,prgSchemas,prgRestrictionSupport)
   3997 #endif
   3998 #endif
   3999   HRESULT WINAPI IDBSchemaRowset_RemoteGetRowset_Proxy(IDBSchemaRowset *This,IUnknown *pUnkOuter,REFGUID rguidSchema,ULONG cRestrictions,const VARIANT *rgRestrictions,REFIID riid,ULONG cPropertySets,DBPROPSET *rgPropertySets,IUnknown **ppRowset,ULONG cTotalProps,DBPROPSTATUS *rgPropStatus,IErrorInfo **ppErrorInfoRem);
   4000   void __RPC_STUB IDBSchemaRowset_RemoteGetRowset_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   4001   HRESULT WINAPI IDBSchemaRowset_RemoteGetSchemas_Proxy(IDBSchemaRowset *This,ULONG *pcSchemas,GUID **prgSchemas,ULONG **prgRestrictionSupport,IErrorInfo **ppErrorInfoRem);
   4002   void __RPC_STUB IDBSchemaRowset_RemoteGetSchemas_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   4003 #endif
   4004 
   4005 #if (OLEDBVER >= 0x0200)
   4006   extern RPC_IF_HANDLE __MIDL_itf_oledb_0311_v0_0_c_ifspec;
   4007   extern RPC_IF_HANDLE __MIDL_itf_oledb_0311_v0_0_s_ifspec;
   4008 
   4009 #ifndef __IMDDataset_INTERFACE_DEFINED__
   4010 #define __IMDDataset_INTERFACE_DEFINED__
   4011   EXTERN_C const IID IID_IMDDataset;
   4012 #if defined(__cplusplus) && !defined(CINTERFACE)
   4013   struct IMDDataset : public IUnknown {
   4014   public:
   4015     virtual HRESULT WINAPI FreeAxisInfo(DBCOUNTITEM cAxes,MDAXISINFO *rgAxisInfo) = 0;
   4016     virtual HRESULT WINAPI GetAxisInfo(DBCOUNTITEM *pcAxes,MDAXISINFO **prgAxisInfo) = 0;
   4017     virtual HRESULT WINAPI GetAxisRowset(IUnknown *pUnkOuter,DBCOUNTITEM iAxis,REFIID riid,ULONG cPropertySets,DBPROPSET rgPropertySets[],IUnknown **ppRowset) = 0;
   4018     virtual HRESULT WINAPI GetCellData(HACCESSOR hAccessor,DBORDINAL ulStartCell,DBORDINAL ulEndCell,void *pData) = 0;
   4019     virtual HRESULT WINAPI GetSpecification(REFIID riid,IUnknown **ppSpecification) = 0;
   4020   };
   4021 #else
   4022   typedef struct IMDDatasetVtbl {
   4023     BEGIN_INTERFACE
   4024       HRESULT (WINAPI *QueryInterface)(IMDDataset *This,REFIID riid,void **ppvObject);
   4025       ULONG (WINAPI *AddRef)(IMDDataset *This);
   4026       ULONG (WINAPI *Release)(IMDDataset *This);
   4027       HRESULT (WINAPI *FreeAxisInfo)(IMDDataset *This,DBCOUNTITEM cAxes,MDAXISINFO *rgAxisInfo);
   4028       HRESULT (WINAPI *GetAxisInfo)(IMDDataset *This,DBCOUNTITEM *pcAxes,MDAXISINFO **prgAxisInfo);
   4029       HRESULT (WINAPI *GetAxisRowset)(IMDDataset *This,IUnknown *pUnkOuter,DBCOUNTITEM iAxis,REFIID riid,ULONG cPropertySets,DBPROPSET rgPropertySets[],IUnknown **ppRowset);
   4030       HRESULT (WINAPI *GetCellData)(IMDDataset *This,HACCESSOR hAccessor,DBORDINAL ulStartCell,DBORDINAL ulEndCell,void *pData);
   4031       HRESULT (WINAPI *GetSpecification)(IMDDataset *This,REFIID riid,IUnknown **ppSpecification);
   4032     END_INTERFACE
   4033   } IMDDatasetVtbl;
   4034   struct IMDDataset {
   4035     CONST_VTBL struct IMDDatasetVtbl *lpVtbl;
   4036   };
   4037 #ifdef COBJMACROS
   4038 #define IMDDataset_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   4039 #define IMDDataset_AddRef(This) (This)->lpVtbl->AddRef(This)
   4040 #define IMDDataset_Release(This) (This)->lpVtbl->Release(This)
   4041 #define IMDDataset_FreeAxisInfo(This,cAxes,rgAxisInfo) (This)->lpVtbl->FreeAxisInfo(This,cAxes,rgAxisInfo)
   4042 #define IMDDataset_GetAxisInfo(This,pcAxes,prgAxisInfo) (This)->lpVtbl->GetAxisInfo(This,pcAxes,prgAxisInfo)
   4043 #define IMDDataset_GetAxisRowset(This,pUnkOuter,iAxis,riid,cPropertySets,rgPropertySets,ppRowset) (This)->lpVtbl->GetAxisRowset(This,pUnkOuter,iAxis,riid,cPropertySets,rgPropertySets,ppRowset)
   4044 #define IMDDataset_GetCellData(This,hAccessor,ulStartCell,ulEndCell,pData) (This)->lpVtbl->GetCellData(This,hAccessor,ulStartCell,ulEndCell,pData)
   4045 #define IMDDataset_GetSpecification(This,riid,ppSpecification) (This)->lpVtbl->GetSpecification(This,riid,ppSpecification)
   4046 #endif
   4047 #endif
   4048   HRESULT WINAPI IMDDataset_FreeAxisInfo_Proxy(IMDDataset *This,DBCOUNTITEM cAxes,MDAXISINFO *rgAxisInfo);
   4049   void __RPC_STUB IMDDataset_FreeAxisInfo_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   4050   HRESULT WINAPI IMDDataset_GetAxisInfo_Proxy(IMDDataset *This,DBCOUNTITEM *pcAxes,MDAXISINFO **prgAxisInfo);
   4051   void __RPC_STUB IMDDataset_GetAxisInfo_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   4052   HRESULT WINAPI IMDDataset_GetAxisRowset_Proxy(IMDDataset *This,IUnknown *pUnkOuter,DBCOUNTITEM iAxis,REFIID riid,ULONG cPropertySets,DBPROPSET rgPropertySets[],IUnknown **ppRowset);
   4053   void __RPC_STUB IMDDataset_GetAxisRowset_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   4054   HRESULT WINAPI IMDDataset_GetCellData_Proxy(IMDDataset *This,HACCESSOR hAccessor,DBORDINAL ulStartCell,DBORDINAL ulEndCell,void *pData);
   4055   void __RPC_STUB IMDDataset_GetCellData_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   4056   HRESULT WINAPI IMDDataset_GetSpecification_Proxy(IMDDataset *This,REFIID riid,IUnknown **ppSpecification);
   4057   void __RPC_STUB IMDDataset_GetSpecification_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   4058 #endif
   4059 
   4060 #ifndef __IMDFind_INTERFACE_DEFINED__
   4061 #define __IMDFind_INTERFACE_DEFINED__
   4062   EXTERN_C const IID IID_IMDFind;
   4063 #if defined(__cplusplus) && !defined(CINTERFACE)
   4064   struct IMDFind : public IUnknown {
   4065   public:
   4066     virtual HRESULT WINAPI FindCell(DBORDINAL ulStartingOrdinal,DBCOUNTITEM cMembers,LPCOLESTR *rgpwszMember,DBORDINAL *pulCellOrdinal) = 0;
   4067     virtual HRESULT WINAPI FindTuple(ULONG ulAxisIdentifier,DBORDINAL ulStartingOrdinal,DBCOUNTITEM cMembers,LPCOLESTR *rgpwszMember,ULONG *pulTupleOrdinal) = 0;
   4068   };
   4069 #else
   4070   typedef struct IMDFindVtbl {
   4071     BEGIN_INTERFACE
   4072       HRESULT (WINAPI *QueryInterface)(IMDFind *This,REFIID riid,void **ppvObject);
   4073       ULONG (WINAPI *AddRef)(IMDFind *This);
   4074       ULONG (WINAPI *Release)(IMDFind *This);
   4075       HRESULT (WINAPI *FindCell)(IMDFind *This,DBORDINAL ulStartingOrdinal,DBCOUNTITEM cMembers,LPCOLESTR *rgpwszMember,DBORDINAL *pulCellOrdinal);
   4076       HRESULT (WINAPI *FindTuple)(IMDFind *This,ULONG ulAxisIdentifier,DBORDINAL ulStartingOrdinal,DBCOUNTITEM cMembers,LPCOLESTR *rgpwszMember,ULONG *pulTupleOrdinal);
   4077     END_INTERFACE
   4078   } IMDFindVtbl;
   4079   struct IMDFind {
   4080     CONST_VTBL struct IMDFindVtbl *lpVtbl;
   4081   };
   4082 #ifdef COBJMACROS
   4083 #define IMDFind_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   4084 #define IMDFind_AddRef(This) (This)->lpVtbl->AddRef(This)
   4085 #define IMDFind_Release(This) (This)->lpVtbl->Release(This)
   4086 #define IMDFind_FindCell(This,ulStartingOrdinal,cMembers,rgpwszMember,pulCellOrdinal) (This)->lpVtbl->FindCell(This,ulStartingOrdinal,cMembers,rgpwszMember,pulCellOrdinal)
   4087 #define IMDFind_FindTuple(This,ulAxisIdentifier,ulStartingOrdinal,cMembers,rgpwszMember,pulTupleOrdinal) (This)->lpVtbl->FindTuple(This,ulAxisIdentifier,ulStartingOrdinal,cMembers,rgpwszMember,pulTupleOrdinal)
   4088 #endif
   4089 #endif
   4090   HRESULT WINAPI IMDFind_FindCell_Proxy(IMDFind *This,DBORDINAL ulStartingOrdinal,DBCOUNTITEM cMembers,LPCOLESTR *rgpwszMember,DBORDINAL *pulCellOrdinal);
   4091   void __RPC_STUB IMDFind_FindCell_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   4092   HRESULT WINAPI IMDFind_FindTuple_Proxy(IMDFind *This,ULONG ulAxisIdentifier,DBORDINAL ulStartingOrdinal,DBCOUNTITEM cMembers,LPCOLESTR *rgpwszMember,ULONG *pulTupleOrdinal);
   4093   void __RPC_STUB IMDFind_FindTuple_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   4094 #endif
   4095 
   4096 #ifndef __IMDRangeRowset_INTERFACE_DEFINED__
   4097 #define __IMDRangeRowset_INTERFACE_DEFINED__
   4098   EXTERN_C const IID IID_IMDRangeRowset;
   4099 #if defined(__cplusplus) && !defined(CINTERFACE)
   4100   struct IMDRangeRowset : public IUnknown {
   4101   public:
   4102     virtual HRESULT WINAPI GetRangeRowset(IUnknown *pUnkOuter,DBORDINAL ulStartCell,DBORDINAL ulEndCell,REFIID riid,ULONG cPropertySets,DBPROPSET rgPropertySets[],IUnknown **ppRowset) = 0;
   4103   };
   4104 #else
   4105   typedef struct IMDRangeRowsetVtbl {
   4106     BEGIN_INTERFACE
   4107       HRESULT (WINAPI *QueryInterface)(IMDRangeRowset *This,REFIID riid,void **ppvObject);
   4108       ULONG (WINAPI *AddRef)(IMDRangeRowset *This);
   4109       ULONG (WINAPI *Release)(IMDRangeRowset *This);
   4110       HRESULT (WINAPI *GetRangeRowset)(IMDRangeRowset *This,IUnknown *pUnkOuter,DBORDINAL ulStartCell,DBORDINAL ulEndCell,REFIID riid,ULONG cPropertySets,DBPROPSET rgPropertySets[],IUnknown **ppRowset);
   4111     END_INTERFACE
   4112   } IMDRangeRowsetVtbl;
   4113   struct IMDRangeRowset {
   4114     CONST_VTBL struct IMDRangeRowsetVtbl *lpVtbl;
   4115   };
   4116 #ifdef COBJMACROS
   4117 #define IMDRangeRowset_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   4118 #define IMDRangeRowset_AddRef(This) (This)->lpVtbl->AddRef(This)
   4119 #define IMDRangeRowset_Release(This) (This)->lpVtbl->Release(This)
   4120 #define IMDRangeRowset_GetRangeRowset(This,pUnkOuter,ulStartCell,ulEndCell,riid,cPropertySets,rgPropertySets,ppRowset) (This)->lpVtbl->GetRangeRowset(This,pUnkOuter,ulStartCell,ulEndCell,riid,cPropertySets,rgPropertySets,ppRowset)
   4121 #endif
   4122 #endif
   4123   HRESULT WINAPI IMDRangeRowset_GetRangeRowset_Proxy(IMDRangeRowset *This,IUnknown *pUnkOuter,DBORDINAL ulStartCell,DBORDINAL ulEndCell,REFIID riid,ULONG cPropertySets,DBPROPSET rgPropertySets[],IUnknown **ppRowset);
   4124   void __RPC_STUB IMDRangeRowset_GetRangeRowset_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   4125 #endif
   4126 
   4127 #ifndef __IAlterTable_INTERFACE_DEFINED__
   4128 #define __IAlterTable_INTERFACE_DEFINED__
   4129   EXTERN_C const IID IID_IAlterTable;
   4130 #if defined(__cplusplus) && !defined(CINTERFACE)
   4131   struct IAlterTable : public IUnknown {
   4132   public:
   4133     virtual HRESULT WINAPI AlterColumn(DBID *pTableId,DBID *pColumnId,DBCOLUMNDESCFLAGS dwColumnDescFlags,DBCOLUMNDESC *pColumnDesc) = 0;
   4134     virtual HRESULT WINAPI AlterTable(DBID *pTableId,DBID *pNewTableId,ULONG cPropertySets,DBPROPSET rgPropertySets[]) = 0;
   4135   };
   4136 #else
   4137   typedef struct IAlterTableVtbl {
   4138     BEGIN_INTERFACE
   4139       HRESULT (WINAPI *QueryInterface)(IAlterTable *This,REFIID riid,void **ppvObject);
   4140       ULONG (WINAPI *AddRef)(IAlterTable *This);
   4141       ULONG (WINAPI *Release)(IAlterTable *This);
   4142       HRESULT (WINAPI *AlterColumn)(IAlterTable *This,DBID *pTableId,DBID *pColumnId,DBCOLUMNDESCFLAGS dwColumnDescFlags,DBCOLUMNDESC *pColumnDesc);
   4143       HRESULT (WINAPI *AlterTable)(IAlterTable *This,DBID *pTableId,DBID *pNewTableId,ULONG cPropertySets,DBPROPSET rgPropertySets[]);
   4144     END_INTERFACE
   4145   } IAlterTableVtbl;
   4146   struct IAlterTable {
   4147     CONST_VTBL struct IAlterTableVtbl *lpVtbl;
   4148   };
   4149 #ifdef COBJMACROS
   4150 #define IAlterTable_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   4151 #define IAlterTable_AddRef(This) (This)->lpVtbl->AddRef(This)
   4152 #define IAlterTable_Release(This) (This)->lpVtbl->Release(This)
   4153 #define IAlterTable_AlterColumn(This,pTableId,pColumnId,dwColumnDescFlags,pColumnDesc) (This)->lpVtbl->AlterColumn(This,pTableId,pColumnId,dwColumnDescFlags,pColumnDesc)
   4154 #define IAlterTable_AlterTable(This,pTableId,pNewTableId,cPropertySets,rgPropertySets) (This)->lpVtbl->AlterTable(This,pTableId,pNewTableId,cPropertySets,rgPropertySets)
   4155 #endif
   4156 #endif
   4157   HRESULT WINAPI IAlterTable_AlterColumn_Proxy(IAlterTable *This,DBID *pTableId,DBID *pColumnId,DBCOLUMNDESCFLAGS dwColumnDescFlags,DBCOLUMNDESC *pColumnDesc);
   4158   void __RPC_STUB IAlterTable_AlterColumn_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   4159   HRESULT WINAPI IAlterTable_AlterTable_Proxy(IAlterTable *This,DBID *pTableId,DBID *pNewTableId,ULONG cPropertySets,DBPROPSET rgPropertySets[]);
   4160   void __RPC_STUB IAlterTable_AlterTable_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   4161 #endif
   4162 
   4163 #ifndef __IAlterIndex_INTERFACE_DEFINED__
   4164 #define __IAlterIndex_INTERFACE_DEFINED__
   4165   EXTERN_C const IID IID_IAlterIndex;
   4166 #if defined(__cplusplus) && !defined(CINTERFACE)
   4167   struct IAlterIndex : public IUnknown {
   4168   public:
   4169     virtual HRESULT WINAPI AlterIndex(DBID *pTableId,DBID *pIndexId,DBID *pNewIndexId,ULONG cPropertySets,DBPROPSET rgPropertySets[]) = 0;
   4170   };
   4171 #else
   4172   typedef struct IAlterIndexVtbl {
   4173     BEGIN_INTERFACE
   4174       HRESULT (WINAPI *QueryInterface)(IAlterIndex *This,REFIID riid,void **ppvObject);
   4175       ULONG (WINAPI *AddRef)(IAlterIndex *This);
   4176       ULONG (WINAPI *Release)(IAlterIndex *This);
   4177       HRESULT (WINAPI *AlterIndex)(IAlterIndex *This,DBID *pTableId,DBID *pIndexId,DBID *pNewIndexId,ULONG cPropertySets,DBPROPSET rgPropertySets[]);
   4178     END_INTERFACE
   4179   } IAlterIndexVtbl;
   4180   struct IAlterIndex {
   4181     CONST_VTBL struct IAlterIndexVtbl *lpVtbl;
   4182   };
   4183 #ifdef COBJMACROS
   4184 #define IAlterIndex_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   4185 #define IAlterIndex_AddRef(This) (This)->lpVtbl->AddRef(This)
   4186 #define IAlterIndex_Release(This) (This)->lpVtbl->Release(This)
   4187 #define IAlterIndex_AlterIndex(This,pTableId,pIndexId,pNewIndexId,cPropertySets,rgPropertySets) (This)->lpVtbl->AlterIndex(This,pTableId,pIndexId,pNewIndexId,cPropertySets,rgPropertySets)
   4188 #endif
   4189 #endif
   4190   HRESULT WINAPI IAlterIndex_AlterIndex_Proxy(IAlterIndex *This,DBID *pTableId,DBID *pIndexId,DBID *pNewIndexId,ULONG cPropertySets,DBPROPSET rgPropertySets[]);
   4191   void __RPC_STUB IAlterIndex_AlterIndex_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   4192 #endif
   4193 
   4194 #ifndef __IRowsetChapterMember_INTERFACE_DEFINED__
   4195 #define __IRowsetChapterMember_INTERFACE_DEFINED__
   4196   EXTERN_C const IID IID_IRowsetChapterMember;
   4197 #if defined(__cplusplus) && !defined(CINTERFACE)
   4198   struct IRowsetChapterMember : public IUnknown {
   4199   public:
   4200     virtual HRESULT WINAPI IsRowInChapter(HCHAPTER hChapter,HROW hRow) = 0;
   4201   };
   4202 #else
   4203   typedef struct IRowsetChapterMemberVtbl {
   4204     BEGIN_INTERFACE
   4205       HRESULT (WINAPI *QueryInterface)(IRowsetChapterMember *This,REFIID riid,void **ppvObject);
   4206       ULONG (WINAPI *AddRef)(IRowsetChapterMember *This);
   4207       ULONG (WINAPI *Release)(IRowsetChapterMember *This);
   4208       HRESULT (WINAPI *IsRowInChapter)(IRowsetChapterMember *This,HCHAPTER hChapter,HROW hRow);
   4209     END_INTERFACE
   4210   } IRowsetChapterMemberVtbl;
   4211   struct IRowsetChapterMember {
   4212     CONST_VTBL struct IRowsetChapterMemberVtbl *lpVtbl;
   4213   };
   4214 #ifdef COBJMACROS
   4215 #define IRowsetChapterMember_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   4216 #define IRowsetChapterMember_AddRef(This) (This)->lpVtbl->AddRef(This)
   4217 #define IRowsetChapterMember_Release(This) (This)->lpVtbl->Release(This)
   4218 #define IRowsetChapterMember_IsRowInChapter(This,hChapter,hRow) (This)->lpVtbl->IsRowInChapter(This,hChapter,hRow)
   4219 #endif
   4220 #endif
   4221   HRESULT WINAPI IRowsetChapterMember_IsRowInChapter_Proxy(IRowsetChapterMember *This,HCHAPTER hChapter,HROW hRow);
   4222   void __RPC_STUB IRowsetChapterMember_IsRowInChapter_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   4223 #endif
   4224 
   4225 #ifndef __ICommandPersist_INTERFACE_DEFINED__
   4226 #define __ICommandPersist_INTERFACE_DEFINED__
   4227   EXTERN_C const IID IID_ICommandPersist;
   4228 #if defined(__cplusplus) && !defined(CINTERFACE)
   4229   struct ICommandPersist : public IUnknown {
   4230   public:
   4231     virtual HRESULT WINAPI DeleteCommand(DBID *pCommandID) = 0;
   4232     virtual HRESULT WINAPI GetCurrentCommand(DBID **ppCommandID) = 0;
   4233     virtual HRESULT WINAPI LoadCommand(DBID *pCommandID,DWORD dwFlags) = 0;
   4234     virtual HRESULT WINAPI SaveCommand(DBID *pCommandID,DWORD dwFlags) = 0;
   4235   };
   4236 #else
   4237   typedef struct ICommandPersistVtbl {
   4238     BEGIN_INTERFACE
   4239       HRESULT (WINAPI *QueryInterface)(ICommandPersist *This,REFIID riid,void **ppvObject);
   4240       ULONG (WINAPI *AddRef)(ICommandPersist *This);
   4241       ULONG (WINAPI *Release)(ICommandPersist *This);
   4242       HRESULT (WINAPI *DeleteCommand)(ICommandPersist *This,DBID *pCommandID);
   4243       HRESULT (WINAPI *GetCurrentCommand)(ICommandPersist *This,DBID **ppCommandID);
   4244       HRESULT (WINAPI *LoadCommand)(ICommandPersist *This,DBID *pCommandID,DWORD dwFlags);
   4245       HRESULT (WINAPI *SaveCommand)(ICommandPersist *This,DBID *pCommandID,DWORD dwFlags);
   4246     END_INTERFACE
   4247   } ICommandPersistVtbl;
   4248   struct ICommandPersist {
   4249     CONST_VTBL struct ICommandPersistVtbl *lpVtbl;
   4250   };
   4251 #ifdef COBJMACROS
   4252 #define ICommandPersist_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   4253 #define ICommandPersist_AddRef(This) (This)->lpVtbl->AddRef(This)
   4254 #define ICommandPersist_Release(This) (This)->lpVtbl->Release(This)
   4255 #define ICommandPersist_DeleteCommand(This,pCommandID) (This)->lpVtbl->DeleteCommand(This,pCommandID)
   4256 #define ICommandPersist_GetCurrentCommand(This,ppCommandID) (This)->lpVtbl->GetCurrentCommand(This,ppCommandID)
   4257 #define ICommandPersist_LoadCommand(This,pCommandID,dwFlags) (This)->lpVtbl->LoadCommand(This,pCommandID,dwFlags)
   4258 #define ICommandPersist_SaveCommand(This,pCommandID,dwFlags) (This)->lpVtbl->SaveCommand(This,pCommandID,dwFlags)
   4259 #endif
   4260 #endif
   4261   HRESULT WINAPI ICommandPersist_DeleteCommand_Proxy(ICommandPersist *This,DBID *pCommandID);
   4262   void __RPC_STUB ICommandPersist_DeleteCommand_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   4263   HRESULT WINAPI ICommandPersist_GetCurrentCommand_Proxy(ICommandPersist *This,DBID **ppCommandID);
   4264   void __RPC_STUB ICommandPersist_GetCurrentCommand_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   4265   HRESULT WINAPI ICommandPersist_LoadCommand_Proxy(ICommandPersist *This,DBID *pCommandID,DWORD dwFlags);
   4266   void __RPC_STUB ICommandPersist_LoadCommand_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   4267   HRESULT WINAPI ICommandPersist_SaveCommand_Proxy(ICommandPersist *This,DBID *pCommandID,DWORD dwFlags);
   4268   void __RPC_STUB ICommandPersist_SaveCommand_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   4269 #endif
   4270 
   4271 #ifndef __IRowsetRefresh_INTERFACE_DEFINED__
   4272 #define __IRowsetRefresh_INTERFACE_DEFINED__
   4273   EXTERN_C const IID IID_IRowsetRefresh;
   4274 #if defined(__cplusplus) && !defined(CINTERFACE)
   4275   struct IRowsetRefresh : public IUnknown {
   4276   public:
   4277     virtual HRESULT WINAPI RefreshVisibleData(HCHAPTER hChapter,DBCOUNTITEM cRows,const HROW rghRows[],WINBOOL fOverWrite,DBCOUNTITEM *pcRowsRefreshed,HROW **prghRowsRefreshed,DBROWSTATUS **prgRowStatus) = 0;
   4278     virtual HRESULT WINAPI GetLastVisibleData(HROW hRow,HACCESSOR hAccessor,void *pData) = 0;
   4279   };
   4280 #else
   4281   typedef struct IRowsetRefreshVtbl {
   4282     BEGIN_INTERFACE
   4283       HRESULT (WINAPI *QueryInterface)(IRowsetRefresh *This,REFIID riid,void **ppvObject);
   4284       ULONG (WINAPI *AddRef)(IRowsetRefresh *This);
   4285       ULONG (WINAPI *Release)(IRowsetRefresh *This);
   4286       HRESULT (WINAPI *RefreshVisibleData)(IRowsetRefresh *This,HCHAPTER hChapter,DBCOUNTITEM cRows,const HROW rghRows[],WINBOOL fOverWrite,DBCOUNTITEM *pcRowsRefreshed,HROW **prghRowsRefreshed,DBROWSTATUS **prgRowStatus);
   4287       HRESULT (WINAPI *GetLastVisibleData)(IRowsetRefresh *This,HROW hRow,HACCESSOR hAccessor,void *pData);
   4288     END_INTERFACE
   4289   } IRowsetRefreshVtbl;
   4290   struct IRowsetRefresh {
   4291     CONST_VTBL struct IRowsetRefreshVtbl *lpVtbl;
   4292   };
   4293 #ifdef COBJMACROS
   4294 #define IRowsetRefresh_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   4295 #define IRowsetRefresh_AddRef(This) (This)->lpVtbl->AddRef(This)
   4296 #define IRowsetRefresh_Release(This) (This)->lpVtbl->Release(This)
   4297 #define IRowsetRefresh_RefreshVisibleData(This,hChapter,cRows,rghRows,fOverWrite,pcRowsRefreshed,prghRowsRefreshed,prgRowStatus) (This)->lpVtbl->RefreshVisibleData(This,hChapter,cRows,rghRows,fOverWrite,pcRowsRefreshed,prghRowsRefreshed,prgRowStatus)
   4298 #define IRowsetRefresh_GetLastVisibleData(This,hRow,hAccessor,pData) (This)->lpVtbl->GetLastVisibleData(This,hRow,hAccessor,pData)
   4299 #endif
   4300 #endif
   4301   HRESULT WINAPI IRowsetRefresh_RefreshVisibleData_Proxy(IRowsetRefresh *This,HCHAPTER hChapter,DBCOUNTITEM cRows,const HROW rghRows[],WINBOOL fOverWrite,DBCOUNTITEM *pcRowsRefreshed,HROW **prghRowsRefreshed,DBROWSTATUS **prgRowStatus);
   4302   void __RPC_STUB IRowsetRefresh_RefreshVisibleData_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   4303   HRESULT WINAPI IRowsetRefresh_GetLastVisibleData_Proxy(IRowsetRefresh *This,HROW hRow,HACCESSOR hAccessor,void *pData);
   4304   void __RPC_STUB IRowsetRefresh_GetLastVisibleData_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   4305 #endif
   4306 
   4307 #ifndef __IParentRowset_INTERFACE_DEFINED__
   4308 #define __IParentRowset_INTERFACE_DEFINED__
   4309   EXTERN_C const IID IID_IParentRowset;
   4310 #if defined(__cplusplus) && !defined(CINTERFACE)
   4311   struct IParentRowset : public IUnknown {
   4312   public:
   4313     virtual HRESULT WINAPI GetChildRowset(IUnknown *pUnkOuter,DBORDINAL iOrdinal,REFIID riid,IUnknown **ppRowset) = 0;
   4314   };
   4315 #else
   4316   typedef struct IParentRowsetVtbl {
   4317     BEGIN_INTERFACE
   4318       HRESULT (WINAPI *QueryInterface)(IParentRowset *This,REFIID riid,void **ppvObject);
   4319       ULONG (WINAPI *AddRef)(IParentRowset *This);
   4320       ULONG (WINAPI *Release)(IParentRowset *This);
   4321       HRESULT (WINAPI *GetChildRowset)(IParentRowset *This,IUnknown *pUnkOuter,DBORDINAL iOrdinal,REFIID riid,IUnknown **ppRowset);
   4322     END_INTERFACE
   4323   } IParentRowsetVtbl;
   4324   struct IParentRowset {
   4325     CONST_VTBL struct IParentRowsetVtbl *lpVtbl;
   4326   };
   4327 #ifdef COBJMACROS
   4328 #define IParentRowset_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   4329 #define IParentRowset_AddRef(This) (This)->lpVtbl->AddRef(This)
   4330 #define IParentRowset_Release(This) (This)->lpVtbl->Release(This)
   4331 #define IParentRowset_GetChildRowset(This,pUnkOuter,iOrdinal,riid,ppRowset) (This)->lpVtbl->GetChildRowset(This,pUnkOuter,iOrdinal,riid,ppRowset)
   4332 #endif
   4333 #endif
   4334   HRESULT WINAPI IParentRowset_GetChildRowset_Proxy(IParentRowset *This,IUnknown *pUnkOuter,DBORDINAL iOrdinal,REFIID riid,IUnknown **ppRowset);
   4335   void __RPC_STUB IParentRowset_GetChildRowset_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   4336 #endif
   4337 #endif
   4338 
   4339   extern RPC_IF_HANDLE __MIDL_itf_oledb_0320_v0_0_c_ifspec;
   4340   extern RPC_IF_HANDLE __MIDL_itf_oledb_0320_v0_0_s_ifspec;
   4341 
   4342 #ifndef __IErrorRecords_INTERFACE_DEFINED__
   4343 #define __IErrorRecords_INTERFACE_DEFINED__
   4344 #define IDENTIFIER_SDK_MASK 0xF0000000
   4345 #define IDENTIFIER_SDK_ERROR 0x10000000
   4346 
   4347   typedef struct tagERRORINFO {
   4348     HRESULT hrError;
   4349     DWORD dwMinor;
   4350     CLSID clsid;
   4351     IID iid;
   4352     DISPID dispid;
   4353   } ERRORINFO;
   4354 
   4355   EXTERN_C const IID IID_IErrorRecords;
   4356 #if defined(__cplusplus) && !defined(CINTERFACE)
   4357   struct IErrorRecords : public IUnknown {
   4358   public:
   4359     virtual HRESULT WINAPI AddErrorRecord(ERRORINFO *pErrorInfo,DWORD dwLookupID,DISPPARAMS *pdispparams,IUnknown *punkCustomError,DWORD dwDynamicErrorID) = 0;
   4360     virtual HRESULT WINAPI GetBasicErrorInfo(ULONG ulRecordNum,ERRORINFO *pErrorInfo) = 0;
   4361     virtual HRESULT WINAPI GetCustomErrorObject(ULONG ulRecordNum,REFIID riid,IUnknown **ppObject) = 0;
   4362     virtual HRESULT WINAPI GetErrorInfo(ULONG ulRecordNum,LCID lcid,IErrorInfo **ppErrorInfo) = 0;
   4363     virtual HRESULT WINAPI GetErrorParameters(ULONG ulRecordNum,DISPPARAMS *pdispparams) = 0;
   4364     virtual HRESULT WINAPI GetRecordCount(ULONG *pcRecords) = 0;
   4365   };
   4366 #else
   4367   typedef struct IErrorRecordsVtbl {
   4368     BEGIN_INTERFACE
   4369       HRESULT (WINAPI *QueryInterface)(IErrorRecords *This,REFIID riid,void **ppvObject);
   4370       ULONG (WINAPI *AddRef)(IErrorRecords *This);
   4371       ULONG (WINAPI *Release)(IErrorRecords *This);
   4372       HRESULT (WINAPI *AddErrorRecord)(IErrorRecords *This,ERRORINFO *pErrorInfo,DWORD dwLookupID,DISPPARAMS *pdispparams,IUnknown *punkCustomError,DWORD dwDynamicErrorID);
   4373       HRESULT (WINAPI *GetBasicErrorInfo)(IErrorRecords *This,ULONG ulRecordNum,ERRORINFO *pErrorInfo);
   4374       HRESULT (WINAPI *GetCustomErrorObject)(IErrorRecords *This,ULONG ulRecordNum,REFIID riid,IUnknown **ppObject);
   4375       HRESULT (WINAPI *GetErrorInfo)(IErrorRecords *This,ULONG ulRecordNum,LCID lcid,IErrorInfo **ppErrorInfo);
   4376       HRESULT (WINAPI *GetErrorParameters)(IErrorRecords *This,ULONG ulRecordNum,DISPPARAMS *pdispparams);
   4377       HRESULT (WINAPI *GetRecordCount)(IErrorRecords *This,ULONG *pcRecords);
   4378     END_INTERFACE
   4379   } IErrorRecordsVtbl;
   4380   struct IErrorRecords {
   4381     CONST_VTBL struct IErrorRecordsVtbl *lpVtbl;
   4382   };
   4383 #ifdef COBJMACROS
   4384 #define IErrorRecords_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   4385 #define IErrorRecords_AddRef(This) (This)->lpVtbl->AddRef(This)
   4386 #define IErrorRecords_Release(This) (This)->lpVtbl->Release(This)
   4387 #define IErrorRecords_AddErrorRecord(This,pErrorInfo,dwLookupID,pdispparams,punkCustomError,dwDynamicErrorID) (This)->lpVtbl->AddErrorRecord(This,pErrorInfo,dwLookupID,pdispparams,punkCustomError,dwDynamicErrorID)
   4388 #define IErrorRecords_GetBasicErrorInfo(This,ulRecordNum,pErrorInfo) (This)->lpVtbl->GetBasicErrorInfo(This,ulRecordNum,pErrorInfo)
   4389 #define IErrorRecords_GetCustomErrorObject(This,ulRecordNum,riid,ppObject) (This)->lpVtbl->GetCustomErrorObject(This,ulRecordNum,riid,ppObject)
   4390 #define IErrorRecords_GetErrorInfo(This,ulRecordNum,lcid,ppErrorInfo) (This)->lpVtbl->GetErrorInfo(This,ulRecordNum,lcid,ppErrorInfo)
   4391 #define IErrorRecords_GetErrorParameters(This,ulRecordNum,pdispparams) (This)->lpVtbl->GetErrorParameters(This,ulRecordNum,pdispparams)
   4392 #define IErrorRecords_GetRecordCount(This,pcRecords) (This)->lpVtbl->GetRecordCount(This,pcRecords)
   4393 #endif
   4394 #endif
   4395   HRESULT WINAPI IErrorRecords_RemoteAddErrorRecord_Proxy(IErrorRecords *This,ERRORINFO *pErrorInfo,DWORD dwLookupID,DISPPARAMS *pdispparams,IUnknown *punkCustomError,DWORD dwDynamicErrorID,IErrorInfo **ppErrorInfoRem);
   4396   void __RPC_STUB IErrorRecords_RemoteAddErrorRecord_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   4397   HRESULT WINAPI IErrorRecords_RemoteGetBasicErrorInfo_Proxy(IErrorRecords *This,ULONG ulRecordNum,ERRORINFO *pErrorInfo,IErrorInfo **ppErrorInfoRem);
   4398   void __RPC_STUB IErrorRecords_RemoteGetBasicErrorInfo_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   4399   HRESULT WINAPI IErrorRecords_RemoteGetCustomErrorObject_Proxy(IErrorRecords *This,ULONG ulRecordNum,REFIID riid,IUnknown **ppObject,IErrorInfo **ppErrorInfoRem);
   4400   void __RPC_STUB IErrorRecords_RemoteGetCustomErrorObject_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   4401   HRESULT WINAPI IErrorRecords_RemoteGetErrorInfo_Proxy(IErrorRecords *This,ULONG ulRecordNum,LCID lcid,IErrorInfo **ppErrorInfo,IErrorInfo **ppErrorInfoRem);
   4402   void __RPC_STUB IErrorRecords_RemoteGetErrorInfo_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   4403   HRESULT WINAPI IErrorRecords_RemoteGetErrorParameters_Proxy(IErrorRecords *This,ULONG ulRecordNum,DISPPARAMS *pdispparams,IErrorInfo **ppErrorInfoRem);
   4404   void __RPC_STUB IErrorRecords_RemoteGetErrorParameters_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   4405   HRESULT WINAPI IErrorRecords_RemoteGetRecordCount_Proxy(IErrorRecords *This,ULONG *pcRecords,IErrorInfo **ppErrorInfoRem);
   4406   void __RPC_STUB IErrorRecords_RemoteGetRecordCount_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   4407 #endif
   4408 
   4409 #ifndef __IErrorLookup_INTERFACE_DEFINED__
   4410 #define __IErrorLookup_INTERFACE_DEFINED__
   4411   EXTERN_C const IID IID_IErrorLookup;
   4412 #if defined(__cplusplus) && !defined(CINTERFACE)
   4413   struct IErrorLookup : public IUnknown {
   4414   public:
   4415     virtual HRESULT WINAPI GetErrorDescription(HRESULT hrError,DWORD dwLookupID,DISPPARAMS *pdispparams,LCID lcid,BSTR *pbstrSource,BSTR *pbstrDescription) = 0;
   4416     virtual HRESULT WINAPI GetHelpInfo(HRESULT hrError,DWORD dwLookupID,LCID lcid,BSTR *pbstrHelpFile,DWORD *pdwHelpContext) = 0;
   4417     virtual HRESULT WINAPI ReleaseErrors(const DWORD dwDynamicErrorID) = 0;
   4418   };
   4419 #else
   4420   typedef struct IErrorLookupVtbl {
   4421     BEGIN_INTERFACE
   4422       HRESULT (WINAPI *QueryInterface)(IErrorLookup *This,REFIID riid,void **ppvObject);
   4423       ULONG (WINAPI *AddRef)(IErrorLookup *This);
   4424       ULONG (WINAPI *Release)(IErrorLookup *This);
   4425       HRESULT (WINAPI *GetErrorDescription)(IErrorLookup *This,HRESULT hrError,DWORD dwLookupID,DISPPARAMS *pdispparams,LCID lcid,BSTR *pbstrSource,BSTR *pbstrDescription);
   4426       HRESULT (WINAPI *GetHelpInfo)(IErrorLookup *This,HRESULT hrError,DWORD dwLookupID,LCID lcid,BSTR *pbstrHelpFile,DWORD *pdwHelpContext);
   4427       HRESULT (WINAPI *ReleaseErrors)(IErrorLookup *This,const DWORD dwDynamicErrorID);
   4428     END_INTERFACE
   4429   } IErrorLookupVtbl;
   4430   struct IErrorLookup {
   4431     CONST_VTBL struct IErrorLookupVtbl *lpVtbl;
   4432   };
   4433 #ifdef COBJMACROS
   4434 #define IErrorLookup_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   4435 #define IErrorLookup_AddRef(This) (This)->lpVtbl->AddRef(This)
   4436 #define IErrorLookup_Release(This) (This)->lpVtbl->Release(This)
   4437 #define IErrorLookup_GetErrorDescription(This,hrError,dwLookupID,pdispparams,lcid,pbstrSource,pbstrDescription) (This)->lpVtbl->GetErrorDescription(This,hrError,dwLookupID,pdispparams,lcid,pbstrSource,pbstrDescription)
   4438 #define IErrorLookup_GetHelpInfo(This,hrError,dwLookupID,lcid,pbstrHelpFile,pdwHelpContext) (This)->lpVtbl->GetHelpInfo(This,hrError,dwLookupID,lcid,pbstrHelpFile,pdwHelpContext)
   4439 #define IErrorLookup_ReleaseErrors(This,dwDynamicErrorID) (This)->lpVtbl->ReleaseErrors(This,dwDynamicErrorID)
   4440 #endif
   4441 #endif
   4442   HRESULT WINAPI IErrorLookup_RemoteGetErrorDescription_Proxy(IErrorLookup *This,HRESULT hrError,DWORD dwLookupID,DISPPARAMS *pdispparams,LCID lcid,BSTR *pbstrSource,BSTR *pbstrDescription,IErrorInfo **ppErrorInfoRem);
   4443   void __RPC_STUB IErrorLookup_RemoteGetErrorDescription_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   4444   HRESULT WINAPI IErrorLookup_RemoteGetHelpInfo_Proxy(IErrorLookup *This,HRESULT hrError,DWORD dwLookupID,LCID lcid,BSTR *pbstrHelpFile,DWORD *pdwHelpContext,IErrorInfo **ppErrorInfoRem);
   4445   void __RPC_STUB IErrorLookup_RemoteGetHelpInfo_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   4446   HRESULT WINAPI IErrorLookup_RemoteReleaseErrors_Proxy(IErrorLookup *This,const DWORD dwDynamicErrorID,IErrorInfo **ppErrorInfoRem);
   4447   void __RPC_STUB IErrorLookup_RemoteReleaseErrors_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   4448 #endif
   4449 
   4450 #ifndef __ISQLErrorInfo_INTERFACE_DEFINED__
   4451 #define __ISQLErrorInfo_INTERFACE_DEFINED__
   4452   EXTERN_C const IID IID_ISQLErrorInfo;
   4453 #if defined(__cplusplus) && !defined(CINTERFACE)
   4454   struct ISQLErrorInfo : public IUnknown {
   4455   public:
   4456     virtual HRESULT WINAPI GetSQLInfo(BSTR *pbstrSQLState,LONG *plNativeError) = 0;
   4457   };
   4458 #else
   4459   typedef struct ISQLErrorInfoVtbl {
   4460     BEGIN_INTERFACE
   4461       HRESULT (WINAPI *QueryInterface)(ISQLErrorInfo *This,REFIID riid,void **ppvObject);
   4462       ULONG (WINAPI *AddRef)(ISQLErrorInfo *This);
   4463       ULONG (WINAPI *Release)(ISQLErrorInfo *This);
   4464       HRESULT (WINAPI *GetSQLInfo)(ISQLErrorInfo *This,BSTR *pbstrSQLState,LONG *plNativeError);
   4465     END_INTERFACE
   4466   } ISQLErrorInfoVtbl;
   4467   struct ISQLErrorInfo {
   4468     CONST_VTBL struct ISQLErrorInfoVtbl *lpVtbl;
   4469   };
   4470 #ifdef COBJMACROS
   4471 #define ISQLErrorInfo_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   4472 #define ISQLErrorInfo_AddRef(This) (This)->lpVtbl->AddRef(This)
   4473 #define ISQLErrorInfo_Release(This) (This)->lpVtbl->Release(This)
   4474 #define ISQLErrorInfo_GetSQLInfo(This,pbstrSQLState,plNativeError) (This)->lpVtbl->GetSQLInfo(This,pbstrSQLState,plNativeError)
   4475 #endif
   4476 #endif
   4477   HRESULT WINAPI ISQLErrorInfo_RemoteGetSQLInfo_Proxy(ISQLErrorInfo *This,BSTR *pbstrSQLState,LONG *plNativeError,IErrorInfo **ppErrorInfoRem);
   4478   void __RPC_STUB ISQLErrorInfo_RemoteGetSQLInfo_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   4479 #endif
   4480 
   4481 #ifndef __IGetDataSource_INTERFACE_DEFINED__
   4482 #define __IGetDataSource_INTERFACE_DEFINED__
   4483   EXTERN_C const IID IID_IGetDataSource;
   4484 #if defined(__cplusplus) && !defined(CINTERFACE)
   4485   struct IGetDataSource : public IUnknown {
   4486   public:
   4487     virtual HRESULT WINAPI GetDataSource(REFIID riid,IUnknown **ppDataSource) = 0;
   4488   };
   4489 #else
   4490   typedef struct IGetDataSourceVtbl {
   4491     BEGIN_INTERFACE
   4492       HRESULT (WINAPI *QueryInterface)(IGetDataSource *This,REFIID riid,void **ppvObject);
   4493       ULONG (WINAPI *AddRef)(IGetDataSource *This);
   4494       ULONG (WINAPI *Release)(IGetDataSource *This);
   4495       HRESULT (WINAPI *GetDataSource)(IGetDataSource *This,REFIID riid,IUnknown **ppDataSource);
   4496     END_INTERFACE
   4497   } IGetDataSourceVtbl;
   4498   struct IGetDataSource {
   4499     CONST_VTBL struct IGetDataSourceVtbl *lpVtbl;
   4500   };
   4501 #ifdef COBJMACROS
   4502 #define IGetDataSource_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   4503 #define IGetDataSource_AddRef(This) (This)->lpVtbl->AddRef(This)
   4504 #define IGetDataSource_Release(This) (This)->lpVtbl->Release(This)
   4505 #define IGetDataSource_GetDataSource(This,riid,ppDataSource) (This)->lpVtbl->GetDataSource(This,riid,ppDataSource)
   4506 #endif
   4507 #endif
   4508   HRESULT WINAPI IGetDataSource_RemoteGetDataSource_Proxy(IGetDataSource *This,REFIID riid,IUnknown **ppDataSource,IErrorInfo **ppErrorInfoRem);
   4509   void __RPC_STUB IGetDataSource_RemoteGetDataSource_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   4510 #endif
   4511 
   4512 #ifndef __ITransactionLocal_INTERFACE_DEFINED__
   4513 #define __ITransactionLocal_INTERFACE_DEFINED__
   4514   EXTERN_C const IID IID_ITransactionLocal;
   4515 #if defined(__cplusplus) && !defined(CINTERFACE)
   4516   struct ITransactionLocal : public ITransaction {
   4517   public:
   4518     virtual HRESULT WINAPI GetOptionsObject(ITransactionOptions **ppOptions) = 0;
   4519     virtual HRESULT WINAPI StartTransaction(ISOLEVEL isoLevel,ULONG isoFlags,ITransactionOptions *pOtherOptions,ULONG *pulTransactionLevel) = 0;
   4520   };
   4521 #else
   4522   typedef struct ITransactionLocalVtbl {
   4523     BEGIN_INTERFACE
   4524       HRESULT (WINAPI *QueryInterface)(ITransactionLocal *This,REFIID riid,void **ppvObject);
   4525       ULONG (WINAPI *AddRef)(ITransactionLocal *This);
   4526       ULONG (WINAPI *Release)(ITransactionLocal *This);
   4527       HRESULT (WINAPI *Commit)(ITransactionLocal *This,WINBOOL fRetaining,DWORD grfTC,DWORD grfRM);
   4528       HRESULT (WINAPI *Abort)(ITransactionLocal *This,BOID *pboidReason,WINBOOL fRetaining,WINBOOL fAsync);
   4529       HRESULT (WINAPI *GetTransactionInfo)(ITransactionLocal *This,XACTTRANSINFO *pinfo);
   4530       HRESULT (WINAPI *GetOptionsObject)(ITransactionLocal *This,ITransactionOptions **ppOptions);
   4531       HRESULT (WINAPI *StartTransaction)(ITransactionLocal *This,ISOLEVEL isoLevel,ULONG isoFlags,ITransactionOptions *pOtherOptions,ULONG *pulTransactionLevel);
   4532     END_INTERFACE
   4533   } ITransactionLocalVtbl;
   4534   struct ITransactionLocal {
   4535     CONST_VTBL struct ITransactionLocalVtbl *lpVtbl;
   4536   };
   4537 #ifdef COBJMACROS
   4538 #define ITransactionLocal_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   4539 #define ITransactionLocal_AddRef(This) (This)->lpVtbl->AddRef(This)
   4540 #define ITransactionLocal_Release(This) (This)->lpVtbl->Release(This)
   4541 #define ITransactionLocal_Commit(This,fRetaining,grfTC,grfRM) (This)->lpVtbl->Commit(This,fRetaining,grfTC,grfRM)
   4542 #define ITransactionLocal_Abort(This,pboidReason,fRetaining,fAsync) (This)->lpVtbl->Abort(This,pboidReason,fRetaining,fAsync)
   4543 #define ITransactionLocal_GetTransactionInfo(This,pinfo) (This)->lpVtbl->GetTransactionInfo(This,pinfo)
   4544 #define ITransactionLocal_GetOptionsObject(This,ppOptions) (This)->lpVtbl->GetOptionsObject(This,ppOptions)
   4545 #define ITransactionLocal_StartTransaction(This,isoLevel,isoFlags,pOtherOptions,pulTransactionLevel) (This)->lpVtbl->StartTransaction(This,isoLevel,isoFlags,pOtherOptions,pulTransactionLevel)
   4546 #endif
   4547 #endif
   4548   HRESULT WINAPI ITransactionLocal_RemoteGetOptionsObject_Proxy(ITransactionLocal *This,ITransactionOptions **ppOptions,IErrorInfo **ppErrorInfoRem);
   4549   void __RPC_STUB ITransactionLocal_RemoteGetOptionsObject_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   4550   HRESULT WINAPI ITransactionLocal_RemoteStartTransaction_Proxy(ITransactionLocal *This,ISOLEVEL isoLevel,ULONG isoFlags,ITransactionOptions *pOtherOptions,ULONG *pulTransactionLevel,IErrorInfo **ppErrorInfoRem);
   4551   void __RPC_STUB ITransactionLocal_RemoteStartTransaction_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   4552 #endif
   4553 
   4554 #ifndef __ITransactionJoin_INTERFACE_DEFINED__
   4555 #define __ITransactionJoin_INTERFACE_DEFINED__
   4556   EXTERN_C const IID IID_ITransactionJoin;
   4557 #if defined(__cplusplus) && !defined(CINTERFACE)
   4558   struct ITransactionJoin : public IUnknown {
   4559   public:
   4560     virtual HRESULT WINAPI GetOptionsObject(ITransactionOptions **ppOptions) = 0;
   4561     virtual HRESULT WINAPI JoinTransaction(IUnknown *punkTransactionCoord,ISOLEVEL isoLevel,ULONG isoFlags,ITransactionOptions *pOtherOptions) = 0;
   4562   };
   4563 #else
   4564   typedef struct ITransactionJoinVtbl {
   4565     BEGIN_INTERFACE
   4566       HRESULT (WINAPI *QueryInterface)(ITransactionJoin *This,REFIID riid,void **ppvObject);
   4567       ULONG (WINAPI *AddRef)(ITransactionJoin *This);
   4568       ULONG (WINAPI *Release)(ITransactionJoin *This);
   4569       HRESULT (WINAPI *GetOptionsObject)(ITransactionJoin *This,ITransactionOptions **ppOptions);
   4570       HRESULT (WINAPI *JoinTransaction)(ITransactionJoin *This,IUnknown *punkTransactionCoord,ISOLEVEL isoLevel,ULONG isoFlags,ITransactionOptions *pOtherOptions);
   4571     END_INTERFACE
   4572   } ITransactionJoinVtbl;
   4573   struct ITransactionJoin {
   4574     CONST_VTBL struct ITransactionJoinVtbl *lpVtbl;
   4575   };
   4576 #ifdef COBJMACROS
   4577 #define ITransactionJoin_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   4578 #define ITransactionJoin_AddRef(This) (This)->lpVtbl->AddRef(This)
   4579 #define ITransactionJoin_Release(This) (This)->lpVtbl->Release(This)
   4580 #define ITransactionJoin_GetOptionsObject(This,ppOptions) (This)->lpVtbl->GetOptionsObject(This,ppOptions)
   4581 #define ITransactionJoin_JoinTransaction(This,punkTransactionCoord,isoLevel,isoFlags,pOtherOptions) (This)->lpVtbl->JoinTransaction(This,punkTransactionCoord,isoLevel,isoFlags,pOtherOptions)
   4582 #endif
   4583 #endif
   4584   HRESULT WINAPI ITransactionJoin_RemoteGetOptionsObject_Proxy(ITransactionJoin *This,ITransactionOptions **ppOptions,IErrorInfo **ppErrorInfoRem);
   4585   void __RPC_STUB ITransactionJoin_RemoteGetOptionsObject_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   4586   HRESULT WINAPI ITransactionJoin_RemoteJoinTransaction_Proxy(ITransactionJoin *This,IUnknown *punkTransactionCoord,ISOLEVEL isoLevel,ULONG isoFlags,ITransactionOptions *pOtherOptions,IErrorInfo **ppErrorInfoRem);
   4587   void __RPC_STUB ITransactionJoin_RemoteJoinTransaction_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   4588 #endif
   4589 
   4590 #ifndef __ITransactionObject_INTERFACE_DEFINED__
   4591 #define __ITransactionObject_INTERFACE_DEFINED__
   4592   EXTERN_C const IID IID_ITransactionObject;
   4593 #if defined(__cplusplus) && !defined(CINTERFACE)
   4594   struct ITransactionObject : public IUnknown {
   4595   public:
   4596     virtual HRESULT WINAPI GetTransactionObject(ULONG ulTransactionLevel,ITransaction **ppTransactionObject) = 0;
   4597   };
   4598 #else
   4599   typedef struct ITransactionObjectVtbl {
   4600     BEGIN_INTERFACE
   4601       HRESULT (WINAPI *QueryInterface)(ITransactionObject *This,REFIID riid,void **ppvObject);
   4602       ULONG (WINAPI *AddRef)(ITransactionObject *This);
   4603       ULONG (WINAPI *Release)(ITransactionObject *This);
   4604       HRESULT (WINAPI *GetTransactionObject)(ITransactionObject *This,ULONG ulTransactionLevel,ITransaction **ppTransactionObject);
   4605     END_INTERFACE
   4606   } ITransactionObjectVtbl;
   4607   struct ITransactionObject {
   4608     CONST_VTBL struct ITransactionObjectVtbl *lpVtbl;
   4609   };
   4610 #ifdef COBJMACROS
   4611 #define ITransactionObject_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   4612 #define ITransactionObject_AddRef(This) (This)->lpVtbl->AddRef(This)
   4613 #define ITransactionObject_Release(This) (This)->lpVtbl->Release(This)
   4614 #define ITransactionObject_GetTransactionObject(This,ulTransactionLevel,ppTransactionObject) (This)->lpVtbl->GetTransactionObject(This,ulTransactionLevel,ppTransactionObject)
   4615 #endif
   4616 #endif
   4617   HRESULT WINAPI ITransactionObject_RemoteGetTransactionObject_Proxy(ITransactionObject *This,ULONG ulTransactionLevel,ITransaction **ppTransactionObject,IErrorInfo **ppErrorInfoRem);
   4618   void __RPC_STUB ITransactionObject_RemoteGetTransactionObject_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   4619 #endif
   4620 
   4621 #if (OLEDBVER >= 0x0210)
   4622 #ifndef UNDER_CE
   4623 #include <accctrl.h>
   4624 
   4625   extern RPC_IF_HANDLE __MIDL_itf_oledb_0334_v0_0_c_ifspec;
   4626   extern RPC_IF_HANDLE __MIDL_itf_oledb_0334_v0_0_s_ifspec;
   4627 
   4628 #ifndef __ITrusteeAdmin_INTERFACE_DEFINED__
   4629 #define __ITrusteeAdmin_INTERFACE_DEFINED__
   4630   EXTERN_C const IID IID_ITrusteeAdmin;
   4631 #if defined(__cplusplus) && !defined(CINTERFACE)
   4632   struct ITrusteeAdmin : public IUnknown {
   4633   public:
   4634     virtual HRESULT WINAPI CompareTrustees(TRUSTEE_W *pTrustee1,TRUSTEE_W *pTrustee2) = 0;
   4635     virtual HRESULT WINAPI CreateTrustee(TRUSTEE_W *pTrustee,ULONG cPropertySets,DBPROPSET rgPropertySets[]) = 0;
   4636     virtual HRESULT WINAPI DeleteTrustee(TRUSTEE_W *pTrustee) = 0;
   4637     virtual HRESULT WINAPI SetTrusteeProperties(TRUSTEE_W *pTrustee,ULONG cPropertySets,DBPROPSET rgPropertySets[]) = 0;
   4638     virtual HRESULT WINAPI GetTrusteeProperties(TRUSTEE_W *pTrustee,const ULONG cPropertyIDSets,const DBPROPIDSET rgPropertyIDSets[],ULONG *pcPropertySets,DBPROPSET **prgPropertySets) = 0;
   4639   };
   4640 #else
   4641   typedef struct ITrusteeAdminVtbl {
   4642     BEGIN_INTERFACE
   4643       HRESULT (WINAPI *QueryInterface)(ITrusteeAdmin *This,REFIID riid,void **ppvObject);
   4644       ULONG (WINAPI *AddRef)(ITrusteeAdmin *This);
   4645       ULONG (WINAPI *Release)(ITrusteeAdmin *This);
   4646       HRESULT (WINAPI *CompareTrustees)(ITrusteeAdmin *This,TRUSTEE_W *pTrustee1,TRUSTEE_W *pTrustee2);
   4647       HRESULT (WINAPI *CreateTrustee)(ITrusteeAdmin *This,TRUSTEE_W *pTrustee,ULONG cPropertySets,DBPROPSET rgPropertySets[]);
   4648       HRESULT (WINAPI *DeleteTrustee)(ITrusteeAdmin *This,TRUSTEE_W *pTrustee);
   4649       HRESULT (WINAPI *SetTrusteeProperties)(ITrusteeAdmin *This,TRUSTEE_W *pTrustee,ULONG cPropertySets,DBPROPSET rgPropertySets[]);
   4650       HRESULT (WINAPI *GetTrusteeProperties)(ITrusteeAdmin *This,TRUSTEE_W *pTrustee,const ULONG cPropertyIDSets,const DBPROPIDSET rgPropertyIDSets[],ULONG *pcPropertySets,DBPROPSET **prgPropertySets);
   4651     END_INTERFACE
   4652   } ITrusteeAdminVtbl;
   4653   struct ITrusteeAdmin {
   4654     CONST_VTBL struct ITrusteeAdminVtbl *lpVtbl;
   4655   };
   4656 #ifdef COBJMACROS
   4657 #define ITrusteeAdmin_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   4658 #define ITrusteeAdmin_AddRef(This) (This)->lpVtbl->AddRef(This)
   4659 #define ITrusteeAdmin_Release(This) (This)->lpVtbl->Release(This)
   4660 #define ITrusteeAdmin_CompareTrustees(This,pTrustee1,pTrustee2) (This)->lpVtbl->CompareTrustees(This,pTrustee1,pTrustee2)
   4661 #define ITrusteeAdmin_CreateTrustee(This,pTrustee,cPropertySets,rgPropertySets) (This)->lpVtbl->CreateTrustee(This,pTrustee,cPropertySets,rgPropertySets)
   4662 #define ITrusteeAdmin_DeleteTrustee(This,pTrustee) (This)->lpVtbl->DeleteTrustee(This,pTrustee)
   4663 #define ITrusteeAdmin_SetTrusteeProperties(This,pTrustee,cPropertySets,rgPropertySets) (This)->lpVtbl->SetTrusteeProperties(This,pTrustee,cPropertySets,rgPropertySets)
   4664 #define ITrusteeAdmin_GetTrusteeProperties(This,pTrustee,cPropertyIDSets,rgPropertyIDSets,pcPropertySets,prgPropertySets) (This)->lpVtbl->GetTrusteeProperties(This,pTrustee,cPropertyIDSets,rgPropertyIDSets,pcPropertySets,prgPropertySets)
   4665 #endif
   4666 #endif
   4667   HRESULT WINAPI ITrusteeAdmin_CompareTrustees_Proxy(ITrusteeAdmin *This,TRUSTEE_W *pTrustee1,TRUSTEE_W *pTrustee2);
   4668   void __RPC_STUB ITrusteeAdmin_CompareTrustees_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   4669   HRESULT WINAPI ITrusteeAdmin_CreateTrustee_Proxy(ITrusteeAdmin *This,TRUSTEE_W *pTrustee,ULONG cPropertySets,DBPROPSET rgPropertySets[]);
   4670   void __RPC_STUB ITrusteeAdmin_CreateTrustee_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   4671   HRESULT WINAPI ITrusteeAdmin_DeleteTrustee_Proxy(ITrusteeAdmin *This,TRUSTEE_W *pTrustee);
   4672   void __RPC_STUB ITrusteeAdmin_DeleteTrustee_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   4673   HRESULT WINAPI ITrusteeAdmin_SetTrusteeProperties_Proxy(ITrusteeAdmin *This,TRUSTEE_W *pTrustee,ULONG cPropertySets,DBPROPSET rgPropertySets[]);
   4674   void __RPC_STUB ITrusteeAdmin_SetTrusteeProperties_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   4675   HRESULT WINAPI ITrusteeAdmin_GetTrusteeProperties_Proxy(ITrusteeAdmin *This,TRUSTEE_W *pTrustee,const ULONG cPropertyIDSets,const DBPROPIDSET rgPropertyIDSets[],ULONG *pcPropertySets,DBPROPSET **prgPropertySets);
   4676   void __RPC_STUB ITrusteeAdmin_GetTrusteeProperties_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   4677 #endif
   4678 
   4679 #ifndef __ITrusteeGroupAdmin_INTERFACE_DEFINED__
   4680 #define __ITrusteeGroupAdmin_INTERFACE_DEFINED__
   4681   EXTERN_C const IID IID_ITrusteeGroupAdmin;
   4682 #if defined(__cplusplus) && !defined(CINTERFACE)
   4683   struct ITrusteeGroupAdmin : public IUnknown {
   4684   public:
   4685     virtual HRESULT WINAPI AddMember(TRUSTEE_W *pMembershipTrustee,TRUSTEE_W *pMemberTrustee) = 0;
   4686     virtual HRESULT WINAPI DeleteMember(TRUSTEE_W *pMembershipTrustee,TRUSTEE_W *pMemberTrustee) = 0;
   4687     virtual HRESULT WINAPI IsMember(TRUSTEE_W *pMembershipTrustee,TRUSTEE_W *pMemberTrustee,WINBOOL *pfStatus) = 0;
   4688     virtual HRESULT WINAPI GetMembers(TRUSTEE_W *pMembershipTrustee,ULONG *pcMembers,TRUSTEE_W **prgMembers) = 0;
   4689     virtual HRESULT WINAPI GetMemberships(TRUSTEE_W *pTrustee,ULONG *pcMemberships,TRUSTEE_W **prgMemberships) = 0;
   4690   };
   4691 #else
   4692   typedef struct ITrusteeGroupAdminVtbl {
   4693     BEGIN_INTERFACE
   4694       HRESULT (WINAPI *QueryInterface)(ITrusteeGroupAdmin *This,REFIID riid,void **ppvObject);
   4695       ULONG (WINAPI *AddRef)(ITrusteeGroupAdmin *This);
   4696       ULONG (WINAPI *Release)(ITrusteeGroupAdmin *This);
   4697       HRESULT (WINAPI *AddMember)(ITrusteeGroupAdmin *This,TRUSTEE_W *pMembershipTrustee,TRUSTEE_W *pMemberTrustee);
   4698       HRESULT (WINAPI *DeleteMember)(ITrusteeGroupAdmin *This,TRUSTEE_W *pMembershipTrustee,TRUSTEE_W *pMemberTrustee);
   4699       HRESULT (WINAPI *IsMember)(ITrusteeGroupAdmin *This,TRUSTEE_W *pMembershipTrustee,TRUSTEE_W *pMemberTrustee,WINBOOL *pfStatus);
   4700       HRESULT (WINAPI *GetMembers)(ITrusteeGroupAdmin *This,TRUSTEE_W *pMembershipTrustee,ULONG *pcMembers,TRUSTEE_W **prgMembers);
   4701       HRESULT (WINAPI *GetMemberships)(ITrusteeGroupAdmin *This,TRUSTEE_W *pTrustee,ULONG *pcMemberships,TRUSTEE_W **prgMemberships);
   4702     END_INTERFACE
   4703   } ITrusteeGroupAdminVtbl;
   4704   struct ITrusteeGroupAdmin {
   4705     CONST_VTBL struct ITrusteeGroupAdminVtbl *lpVtbl;
   4706   };
   4707 #ifdef COBJMACROS
   4708 #define ITrusteeGroupAdmin_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   4709 #define ITrusteeGroupAdmin_AddRef(This) (This)->lpVtbl->AddRef(This)
   4710 #define ITrusteeGroupAdmin_Release(This) (This)->lpVtbl->Release(This)
   4711 #define ITrusteeGroupAdmin_AddMember(This,pMembershipTrustee,pMemberTrustee) (This)->lpVtbl->AddMember(This,pMembershipTrustee,pMemberTrustee)
   4712 #define ITrusteeGroupAdmin_DeleteMember(This,pMembershipTrustee,pMemberTrustee) (This)->lpVtbl->DeleteMember(This,pMembershipTrustee,pMemberTrustee)
   4713 #define ITrusteeGroupAdmin_IsMember(This,pMembershipTrustee,pMemberTrustee,pfStatus) (This)->lpVtbl->IsMember(This,pMembershipTrustee,pMemberTrustee,pfStatus)
   4714 #define ITrusteeGroupAdmin_GetMembers(This,pMembershipTrustee,pcMembers,prgMembers) (This)->lpVtbl->GetMembers(This,pMembershipTrustee,pcMembers,prgMembers)
   4715 #define ITrusteeGroupAdmin_GetMemberships(This,pTrustee,pcMemberships,prgMemberships) (This)->lpVtbl->GetMemberships(This,pTrustee,pcMemberships,prgMemberships)
   4716 #endif
   4717 #endif
   4718   HRESULT WINAPI ITrusteeGroupAdmin_AddMember_Proxy(ITrusteeGroupAdmin *This,TRUSTEE_W *pMembershipTrustee,TRUSTEE_W *pMemberTrustee);
   4719   void __RPC_STUB ITrusteeGroupAdmin_AddMember_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   4720   HRESULT WINAPI ITrusteeGroupAdmin_DeleteMember_Proxy(ITrusteeGroupAdmin *This,TRUSTEE_W *pMembershipTrustee,TRUSTEE_W *pMemberTrustee);
   4721   void __RPC_STUB ITrusteeGroupAdmin_DeleteMember_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   4722   HRESULT WINAPI ITrusteeGroupAdmin_IsMember_Proxy(ITrusteeGroupAdmin *This,TRUSTEE_W *pMembershipTrustee,TRUSTEE_W *pMemberTrustee,WINBOOL *pfStatus);
   4723   void __RPC_STUB ITrusteeGroupAdmin_IsMember_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   4724   HRESULT WINAPI ITrusteeGroupAdmin_GetMembers_Proxy(ITrusteeGroupAdmin *This,TRUSTEE_W *pMembershipTrustee,ULONG *pcMembers,TRUSTEE_W **prgMembers);
   4725   void __RPC_STUB ITrusteeGroupAdmin_GetMembers_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   4726   HRESULT WINAPI ITrusteeGroupAdmin_GetMemberships_Proxy(ITrusteeGroupAdmin *This,TRUSTEE_W *pTrustee,ULONG *pcMemberships,TRUSTEE_W **prgMemberships);
   4727   void __RPC_STUB ITrusteeGroupAdmin_GetMemberships_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   4728 #endif
   4729 
   4730 #ifndef __IObjectAccessControl_INTERFACE_DEFINED__
   4731 #define __IObjectAccessControl_INTERFACE_DEFINED__
   4732   EXTERN_C const IID IID_IObjectAccessControl;
   4733 #if defined(__cplusplus) && !defined(CINTERFACE)
   4734   struct IObjectAccessControl : public IUnknown {
   4735   public:
   4736     virtual HRESULT WINAPI GetObjectAccessRights(SEC_OBJECT *pObject,ULONG *pcAccessEntries,EXPLICIT_ACCESS_W **prgAccessEntries) = 0;
   4737     virtual HRESULT WINAPI GetObjectOwner(SEC_OBJECT *pObject,TRUSTEE_W **ppOwner) = 0;
   4738     virtual HRESULT WINAPI IsObjectAccessAllowed(SEC_OBJECT *pObject,EXPLICIT_ACCESS_W *pAccessEntry,WINBOOL *pfResult) = 0;
   4739     virtual HRESULT WINAPI SetObjectAccessRights(SEC_OBJECT *pObject,ULONG cAccessEntries,EXPLICIT_ACCESS_W *prgAccessEntries) = 0;
   4740     virtual HRESULT WINAPI SetObjectOwner(SEC_OBJECT *pObject,TRUSTEE_W *pOwner) = 0;
   4741   };
   4742 #else
   4743   typedef struct IObjectAccessControlVtbl {
   4744     BEGIN_INTERFACE
   4745       HRESULT (WINAPI *QueryInterface)(IObjectAccessControl *This,REFIID riid,void **ppvObject);
   4746       ULONG (WINAPI *AddRef)(IObjectAccessControl *This);
   4747       ULONG (WINAPI *Release)(IObjectAccessControl *This);
   4748       HRESULT (WINAPI *GetObjectAccessRights)(IObjectAccessControl *This,SEC_OBJECT *pObject,ULONG *pcAccessEntries,EXPLICIT_ACCESS_W **prgAccessEntries);
   4749       HRESULT (WINAPI *GetObjectOwner)(IObjectAccessControl *This,SEC_OBJECT *pObject,TRUSTEE_W **ppOwner);
   4750       HRESULT (WINAPI *IsObjectAccessAllowed)(IObjectAccessControl *This,SEC_OBJECT *pObject,EXPLICIT_ACCESS_W *pAccessEntry,WINBOOL *pfResult);
   4751       HRESULT (WINAPI *SetObjectAccessRights)(IObjectAccessControl *This,SEC_OBJECT *pObject,ULONG cAccessEntries,EXPLICIT_ACCESS_W *prgAccessEntries);
   4752       HRESULT (WINAPI *SetObjectOwner)(IObjectAccessControl *This,SEC_OBJECT *pObject,TRUSTEE_W *pOwner);
   4753     END_INTERFACE
   4754   } IObjectAccessControlVtbl;
   4755   struct IObjectAccessControl {
   4756     CONST_VTBL struct IObjectAccessControlVtbl *lpVtbl;
   4757   };
   4758 #ifdef COBJMACROS
   4759 #define IObjectAccessControl_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   4760 #define IObjectAccessControl_AddRef(This) (This)->lpVtbl->AddRef(This)
   4761 #define IObjectAccessControl_Release(This) (This)->lpVtbl->Release(This)
   4762 #define IObjectAccessControl_GetObjectAccessRights(This,pObject,pcAccessEntries,prgAccessEntries) (This)->lpVtbl->GetObjectAccessRights(This,pObject,pcAccessEntries,prgAccessEntries)
   4763 #define IObjectAccessControl_GetObjectOwner(This,pObject,ppOwner) (This)->lpVtbl->GetObjectOwner(This,pObject,ppOwner)
   4764 #define IObjectAccessControl_IsObjectAccessAllowed(This,pObject,pAccessEntry,pfResult) (This)->lpVtbl->IsObjectAccessAllowed(This,pObject,pAccessEntry,pfResult)
   4765 #define IObjectAccessControl_SetObjectAccessRights(This,pObject,cAccessEntries,prgAccessEntries) (This)->lpVtbl->SetObjectAccessRights(This,pObject,cAccessEntries,prgAccessEntries)
   4766 #define IObjectAccessControl_SetObjectOwner(This,pObject,pOwner) (This)->lpVtbl->SetObjectOwner(This,pObject,pOwner)
   4767 #endif
   4768 #endif
   4769   HRESULT WINAPI IObjectAccessControl_GetObjectAccessRights_Proxy(IObjectAccessControl *This,SEC_OBJECT *pObject,ULONG *pcAccessEntries,EXPLICIT_ACCESS_W **prgAccessEntries);
   4770   void __RPC_STUB IObjectAccessControl_GetObjectAccessRights_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   4771   HRESULT WINAPI IObjectAccessControl_GetObjectOwner_Proxy(IObjectAccessControl *This,SEC_OBJECT *pObject,TRUSTEE_W **ppOwner);
   4772   void __RPC_STUB IObjectAccessControl_GetObjectOwner_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   4773   HRESULT WINAPI IObjectAccessControl_IsObjectAccessAllowed_Proxy(IObjectAccessControl *This,SEC_OBJECT *pObject,EXPLICIT_ACCESS_W *pAccessEntry,WINBOOL *pfResult);
   4774   void __RPC_STUB IObjectAccessControl_IsObjectAccessAllowed_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   4775   HRESULT WINAPI IObjectAccessControl_SetObjectAccessRights_Proxy(IObjectAccessControl *This,SEC_OBJECT *pObject,ULONG cAccessEntries,EXPLICIT_ACCESS_W *prgAccessEntries);
   4776   void __RPC_STUB IObjectAccessControl_SetObjectAccessRights_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   4777   HRESULT WINAPI IObjectAccessControl_SetObjectOwner_Proxy(IObjectAccessControl *This,SEC_OBJECT *pObject,TRUSTEE_W *pOwner);
   4778   void __RPC_STUB IObjectAccessControl_SetObjectOwner_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   4779 #endif
   4780 
   4781 #ifndef __ISecurityInfo_INTERFACE_DEFINED__
   4782 #define __ISecurityInfo_INTERFACE_DEFINED__
   4783 #if (OLEDBVER >= 0x0210)
   4784   typedef DWORD ACCESS_MASK;
   4785 
   4786   enum ACCESS_MASKENUM {
   4787     PERM_EXCLUSIVE = 0x200,PERM_READDESIGN = 0x400,PERM_WRITEDESIGN = 0x800,PERM_WITHGRANT = 0x1000,PERM_REFERENCE = 0x2000,
   4788     PERM_CREATE = 0x4000,PERM_INSERT = 0x8000,PERM_DELETE = 0x10000,PERM_READCONTROL = 0x20000,PERM_WRITEPERMISSIONS = 0x40000,
   4789     PERM_WRITEOWNER = 0x80000,PERM_MAXIMUM_ALLOWED = 0x2000000,PERM_ALL = 0x10000000,PERM_EXECUTE = 0x20000000,PERM_READ = 0x80000000,
   4790     PERM_UPDATE = 0x40000000,PERM_DROP = 0x100
   4791   };
   4792 #define PERM_DESIGN PERM_WRITEDESIGN
   4793 #endif
   4794 
   4795   EXTERN_C const IID IID_ISecurityInfo;
   4796 #if defined(__cplusplus) && !defined(CINTERFACE)
   4797   struct ISecurityInfo : public IUnknown {
   4798   public:
   4799     virtual HRESULT WINAPI GetCurrentTrustee(TRUSTEE_W **ppTrustee) = 0;
   4800     virtual HRESULT WINAPI GetObjectTypes(ULONG *cObjectTypes,GUID **rgObjectTypes) = 0;
   4801     virtual HRESULT WINAPI GetPermissions(GUID ObjectType,ACCESS_MASK *pPermissions) = 0;
   4802   };
   4803 #else
   4804   typedef struct ISecurityInfoVtbl {
   4805     BEGIN_INTERFACE
   4806       HRESULT (WINAPI *QueryInterface)(ISecurityInfo *This,REFIID riid,void **ppvObject);
   4807       ULONG (WINAPI *AddRef)(ISecurityInfo *This);
   4808       ULONG (WINAPI *Release)(ISecurityInfo *This);
   4809       HRESULT (WINAPI *GetCurrentTrustee)(ISecurityInfo *This,TRUSTEE_W **ppTrustee);
   4810       HRESULT (WINAPI *GetObjectTypes)(ISecurityInfo *This,ULONG *cObjectTypes,GUID **rgObjectTypes);
   4811       HRESULT (WINAPI *GetPermissions)(ISecurityInfo *This,GUID ObjectType,ACCESS_MASK *pPermissions);
   4812     END_INTERFACE
   4813   } ISecurityInfoVtbl;
   4814   struct ISecurityInfo {
   4815     CONST_VTBL struct ISecurityInfoVtbl *lpVtbl;
   4816   };
   4817 #ifdef COBJMACROS
   4818 #define ISecurityInfo_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   4819 #define ISecurityInfo_AddRef(This) (This)->lpVtbl->AddRef(This)
   4820 #define ISecurityInfo_Release(This) (This)->lpVtbl->Release(This)
   4821 #define ISecurityInfo_GetCurrentTrustee(This,ppTrustee) (This)->lpVtbl->GetCurrentTrustee(This,ppTrustee)
   4822 #define ISecurityInfo_GetObjectTypes(This,cObjectTypes,rgObjectTypes) (This)->lpVtbl->GetObjectTypes(This,cObjectTypes,rgObjectTypes)
   4823 #define ISecurityInfo_GetPermissions(This,ObjectType,pPermissions) (This)->lpVtbl->GetPermissions(This,ObjectType,pPermissions)
   4824 #endif
   4825 #endif
   4826   HRESULT WINAPI ISecurityInfo_GetCurrentTrustee_Proxy(ISecurityInfo *This,TRUSTEE_W **ppTrustee);
   4827   void __RPC_STUB ISecurityInfo_GetCurrentTrustee_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   4828   HRESULT WINAPI ISecurityInfo_GetObjectTypes_Proxy(ISecurityInfo *This,ULONG *cObjectTypes,GUID **rgObjectTypes);
   4829   void __RPC_STUB ISecurityInfo_GetObjectTypes_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   4830   HRESULT WINAPI ISecurityInfo_GetPermissions_Proxy(ISecurityInfo *This,GUID ObjectType,ACCESS_MASK *pPermissions);
   4831   void __RPC_STUB ISecurityInfo_GetPermissions_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   4832 #endif
   4833 #endif
   4834 
   4835   extern RPC_IF_HANDLE __MIDL_itf_oledb_0338_v0_0_c_ifspec;
   4836   extern RPC_IF_HANDLE __MIDL_itf_oledb_0338_v0_0_s_ifspec;
   4837 
   4838 #ifndef __ITableCreation_INTERFACE_DEFINED__
   4839 #define __ITableCreation_INTERFACE_DEFINED__
   4840   EXTERN_C const IID IID_ITableCreation;
   4841 #if defined(__cplusplus) && !defined(CINTERFACE)
   4842   struct ITableCreation : public ITableDefinition {
   4843   public:
   4844     virtual HRESULT WINAPI GetTableDefinition(DBID *pTableID,DBORDINAL *pcColumnDescs,DBCOLUMNDESC *prgColumnDescs[],ULONG *pcPropertySets,DBPROPSET *prgPropertySets[],ULONG *pcConstraintDescs,DBCONSTRAINTDESC *prgConstraintDescs[],OLECHAR **ppwszStringBuffer) = 0;
   4845   };
   4846 #else
   4847   typedef struct ITableCreationVtbl {
   4848     BEGIN_INTERFACE
   4849       HRESULT (WINAPI *QueryInterface)(ITableCreation *This,REFIID riid,void **ppvObject);
   4850       ULONG (WINAPI *AddRef)(ITableCreation *This);
   4851       ULONG (WINAPI *Release)(ITableCreation *This);
   4852       HRESULT (WINAPI *CreateTable)(ITableCreation *This,IUnknown *pUnkOuter,DBID *pTableID,DBORDINAL cColumnDescs,const DBCOLUMNDESC rgColumnDescs[],REFIID riid,ULONG cPropertySets,DBPROPSET rgPropertySets[],DBID **ppTableID,IUnknown **ppRowset);
   4853       HRESULT (WINAPI *DropTable)(ITableCreation *This,DBID *pTableID);
   4854       HRESULT (WINAPI *AddColumn)(ITableCreation *This,DBID *pTableID,DBCOLUMNDESC *pColumnDesc,DBID **ppColumnID);
   4855       HRESULT (WINAPI *DropColumn)(ITableCreation *This,DBID *pTableID,DBID *pColumnID);
   4856       HRESULT (WINAPI *GetTableDefinition)(ITableCreation *This,DBID *pTableID,DBORDINAL *pcColumnDescs,DBCOLUMNDESC *prgColumnDescs[],ULONG *pcPropertySets,DBPROPSET *prgPropertySets[],ULONG *pcConstraintDescs,DBCONSTRAINTDESC *prgConstraintDescs[],OLECHAR **ppwszStringBuffer);
   4857     END_INTERFACE
   4858   } ITableCreationVtbl;
   4859   struct ITableCreation {
   4860     CONST_VTBL struct ITableCreationVtbl *lpVtbl;
   4861   };
   4862 #ifdef COBJMACROS
   4863 #define ITableCreation_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   4864 #define ITableCreation_AddRef(This) (This)->lpVtbl->AddRef(This)
   4865 #define ITableCreation_Release(This) (This)->lpVtbl->Release(This)
   4866 #define ITableCreation_CreateTable(This,pUnkOuter,pTableID,cColumnDescs,rgColumnDescs,riid,cPropertySets,rgPropertySets,ppTableID,ppRowset) (This)->lpVtbl->CreateTable(This,pUnkOuter,pTableID,cColumnDescs,rgColumnDescs,riid,cPropertySets,rgPropertySets,ppTableID,ppRowset)
   4867 #define ITableCreation_DropTable(This,pTableID) (This)->lpVtbl->DropTable(This,pTableID)
   4868 #define ITableCreation_AddColumn(This,pTableID,pColumnDesc,ppColumnID) (This)->lpVtbl->AddColumn(This,pTableID,pColumnDesc,ppColumnID)
   4869 #define ITableCreation_DropColumn(This,pTableID,pColumnID) (This)->lpVtbl->DropColumn(This,pTableID,pColumnID)
   4870 #define ITableCreation_GetTableDefinition(This,pTableID,pcColumnDescs,prgColumnDescs,pcPropertySets,prgPropertySets,pcConstraintDescs,prgConstraintDescs,ppwszStringBuffer) (This)->lpVtbl->GetTableDefinition(This,pTableID,pcColumnDescs,prgColumnDescs,pcPropertySets,prgPropertySets,pcConstraintDescs,prgConstraintDescs,ppwszStringBuffer)
   4871 #endif
   4872 #endif
   4873   HRESULT WINAPI ITableCreation_GetTableDefinition_Proxy(ITableCreation *This,DBID *pTableID,DBORDINAL *pcColumnDescs,DBCOLUMNDESC *prgColumnDescs[],ULONG *pcPropertySets,DBPROPSET *prgPropertySets[],ULONG *pcConstraintDescs,DBCONSTRAINTDESC *prgConstraintDescs[],OLECHAR **ppwszStringBuffer);
   4874   void __RPC_STUB ITableCreation_GetTableDefinition_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   4875 #endif
   4876 
   4877 #ifndef __ITableDefinitionWithConstraints_INTERFACE_DEFINED__
   4878 #define __ITableDefinitionWithConstraints_INTERFACE_DEFINED__
   4879   EXTERN_C const IID IID_ITableDefinitionWithConstraints;
   4880 #if defined(__cplusplus) && !defined(CINTERFACE)
   4881   struct ITableDefinitionWithConstraints : public ITableCreation {
   4882   public:
   4883     virtual HRESULT WINAPI AddConstraint(DBID *pTableID,DBCONSTRAINTDESC *pConstraintDesc) = 0;
   4884     virtual HRESULT WINAPI CreateTableWithConstraints(IUnknown *pUnkOuter,DBID *pTableID,DBORDINAL cColumnDescs,DBCOLUMNDESC rgColumnDescs[],ULONG cConstraintDescs,DBCONSTRAINTDESC rgConstraintDescs[],REFIID riid,ULONG cPropertySets,DBPROPSET rgPropertySets[],DBID **ppTableID,IUnknown **ppRowset) = 0;
   4885     virtual HRESULT WINAPI DropConstraint(DBID *pTableID,DBID *pConstraintID) = 0;
   4886   };
   4887 #else
   4888   typedef struct ITableDefinitionWithConstraintsVtbl {
   4889     BEGIN_INTERFACE
   4890       HRESULT (WINAPI *QueryInterface)(ITableDefinitionWithConstraints *This,REFIID riid,void **ppvObject);
   4891       ULONG (WINAPI *AddRef)(ITableDefinitionWithConstraints *This);
   4892       ULONG (WINAPI *Release)(ITableDefinitionWithConstraints *This);
   4893       HRESULT (WINAPI *CreateTable)(ITableDefinitionWithConstraints *This,IUnknown *pUnkOuter,DBID *pTableID,DBORDINAL cColumnDescs,const DBCOLUMNDESC rgColumnDescs[],REFIID riid,ULONG cPropertySets,DBPROPSET rgPropertySets[],DBID **ppTableID,IUnknown **ppRowset);
   4894       HRESULT (WINAPI *DropTable)(ITableDefinitionWithConstraints *This,DBID *pTableID);
   4895       HRESULT (WINAPI *AddColumn)(ITableDefinitionWithConstraints *This,DBID *pTableID,DBCOLUMNDESC *pColumnDesc,DBID **ppColumnID);
   4896       HRESULT (WINAPI *DropColumn)(ITableDefinitionWithConstraints *This,DBID *pTableID,DBID *pColumnID);
   4897       HRESULT (WINAPI *GetTableDefinition)(ITableDefinitionWithConstraints *This,DBID *pTableID,DBORDINAL *pcColumnDescs,DBCOLUMNDESC *prgColumnDescs[],ULONG *pcPropertySets,DBPROPSET *prgPropertySets[],ULONG *pcConstraintDescs,DBCONSTRAINTDESC *prgConstraintDescs[],OLECHAR **ppwszStringBuffer);
   4898       HRESULT (WINAPI *AddConstraint)(ITableDefinitionWithConstraints *This,DBID *pTableID,DBCONSTRAINTDESC *pConstraintDesc);
   4899       HRESULT (WINAPI *CreateTableWithConstraints)(ITableDefinitionWithConstraints *This,IUnknown *pUnkOuter,DBID *pTableID,DBORDINAL cColumnDescs,DBCOLUMNDESC rgColumnDescs[],ULONG cConstraintDescs,DBCONSTRAINTDESC rgConstraintDescs[],REFIID riid,ULONG cPropertySets,DBPROPSET rgPropertySets[],DBID **ppTableID,IUnknown **ppRowset);
   4900       HRESULT (WINAPI *DropConstraint)(ITableDefinitionWithConstraints *This,DBID *pTableID,DBID *pConstraintID);
   4901     END_INTERFACE
   4902   } ITableDefinitionWithConstraintsVtbl;
   4903   struct ITableDefinitionWithConstraints {
   4904     CONST_VTBL struct ITableDefinitionWithConstraintsVtbl *lpVtbl;
   4905   };
   4906 #ifdef COBJMACROS
   4907 #define ITableDefinitionWithConstraints_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   4908 #define ITableDefinitionWithConstraints_AddRef(This) (This)->lpVtbl->AddRef(This)
   4909 #define ITableDefinitionWithConstraints_Release(This) (This)->lpVtbl->Release(This)
   4910 #define ITableDefinitionWithConstraints_CreateTable(This,pUnkOuter,pTableID,cColumnDescs,rgColumnDescs,riid,cPropertySets,rgPropertySets,ppTableID,ppRowset) (This)->lpVtbl->CreateTable(This,pUnkOuter,pTableID,cColumnDescs,rgColumnDescs,riid,cPropertySets,rgPropertySets,ppTableID,ppRowset)
   4911 #define ITableDefinitionWithConstraints_DropTable(This,pTableID) (This)->lpVtbl->DropTable(This,pTableID)
   4912 #define ITableDefinitionWithConstraints_AddColumn(This,pTableID,pColumnDesc,ppColumnID) (This)->lpVtbl->AddColumn(This,pTableID,pColumnDesc,ppColumnID)
   4913 #define ITableDefinitionWithConstraints_DropColumn(This,pTableID,pColumnID) (This)->lpVtbl->DropColumn(This,pTableID,pColumnID)
   4914 #define ITableDefinitionWithConstraints_GetTableDefinition(This,pTableID,pcColumnDescs,prgColumnDescs,pcPropertySets,prgPropertySets,pcConstraintDescs,prgConstraintDescs,ppwszStringBuffer) (This)->lpVtbl->GetTableDefinition(This,pTableID,pcColumnDescs,prgColumnDescs,pcPropertySets,prgPropertySets,pcConstraintDescs,prgConstraintDescs,ppwszStringBuffer)
   4915 #define ITableDefinitionWithConstraints_AddConstraint(This,pTableID,pConstraintDesc) (This)->lpVtbl->AddConstraint(This,pTableID,pConstraintDesc)
   4916 #define ITableDefinitionWithConstraints_CreateTableWithConstraints(This,pUnkOuter,pTableID,cColumnDescs,rgColumnDescs,cConstraintDescs,rgConstraintDescs,riid,cPropertySets,rgPropertySets,ppTableID,ppRowset) (This)->lpVtbl->CreateTableWithConstraints(This,pUnkOuter,pTableID,cColumnDescs,rgColumnDescs,cConstraintDescs,rgConstraintDescs,riid,cPropertySets,rgPropertySets,ppTableID,ppRowset)
   4917 #define ITableDefinitionWithConstraints_DropConstraint(This,pTableID,pConstraintID) (This)->lpVtbl->DropConstraint(This,pTableID,pConstraintID)
   4918 #endif
   4919 #endif
   4920   HRESULT WINAPI ITableDefinitionWithConstraints_AddConstraint_Proxy(ITableDefinitionWithConstraints *This,DBID *pTableID,DBCONSTRAINTDESC *pConstraintDesc);
   4921   void __RPC_STUB ITableDefinitionWithConstraints_AddConstraint_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   4922   HRESULT WINAPI ITableDefinitionWithConstraints_CreateTableWithConstraints_Proxy(ITableDefinitionWithConstraints *This,IUnknown *pUnkOuter,DBID *pTableID,DBORDINAL cColumnDescs,DBCOLUMNDESC rgColumnDescs[],ULONG cConstraintDescs,DBCONSTRAINTDESC rgConstraintDescs[],REFIID riid,ULONG cPropertySets,DBPROPSET rgPropertySets[],DBID **ppTableID,IUnknown **ppRowset);
   4923   void __RPC_STUB ITableDefinitionWithConstraints_CreateTableWithConstraints_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   4924   HRESULT WINAPI ITableDefinitionWithConstraints_DropConstraint_Proxy(ITableDefinitionWithConstraints *This,DBID *pTableID,DBID *pConstraintID);
   4925   void __RPC_STUB ITableDefinitionWithConstraints_DropConstraint_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   4926 #endif
   4927 
   4928 #ifndef UNDER_CE
   4929   extern RPC_IF_HANDLE __MIDL_itf_oledb_0339_v0_0_c_ifspec;
   4930   extern RPC_IF_HANDLE __MIDL_itf_oledb_0339_v0_0_s_ifspec;
   4931 #ifndef __IRow_INTERFACE_DEFINED__
   4932 #define __IRow_INTERFACE_DEFINED__
   4933   EXTERN_C const IID IID_IRow;
   4934 #if defined(__cplusplus) && !defined(CINTERFACE)
   4935   struct IRow : public IUnknown {
   4936   public:
   4937     virtual HRESULT WINAPI GetColumns(DBORDINAL cColumns,DBCOLUMNACCESS rgColumns[]) = 0;
   4938     virtual HRESULT WINAPI GetSourceRowset(REFIID riid,IUnknown **ppRowset,HROW *phRow) = 0;
   4939     virtual HRESULT WINAPI Open(IUnknown *pUnkOuter,DBID *pColumnID,REFGUID rguidColumnType,DWORD dwBindFlags,REFIID riid,IUnknown **ppUnk) = 0;
   4940   };
   4941 #else
   4942   typedef struct IRowVtbl {
   4943     BEGIN_INTERFACE
   4944       HRESULT (WINAPI *QueryInterface)(IRow *This,REFIID riid,void **ppvObject);
   4945       ULONG (WINAPI *AddRef)(IRow *This);
   4946       ULONG (WINAPI *Release)(IRow *This);
   4947       HRESULT (WINAPI *GetColumns)(IRow *This,DBORDINAL cColumns,DBCOLUMNACCESS rgColumns[]);
   4948       HRESULT (WINAPI *GetSourceRowset)(IRow *This,REFIID riid,IUnknown **ppRowset,HROW *phRow);
   4949       HRESULT (WINAPI *Open)(IRow *This,IUnknown *pUnkOuter,DBID *pColumnID,REFGUID rguidColumnType,DWORD dwBindFlags,REFIID riid,IUnknown **ppUnk);
   4950     END_INTERFACE
   4951   } IRowVtbl;
   4952   struct IRow {
   4953     CONST_VTBL struct IRowVtbl *lpVtbl;
   4954   };
   4955 #ifdef COBJMACROS
   4956 #define IRow_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   4957 #define IRow_AddRef(This) (This)->lpVtbl->AddRef(This)
   4958 #define IRow_Release(This) (This)->lpVtbl->Release(This)
   4959 #define IRow_GetColumns(This,cColumns,rgColumns) (This)->lpVtbl->GetColumns(This,cColumns,rgColumns)
   4960 #define IRow_GetSourceRowset(This,riid,ppRowset,phRow) (This)->lpVtbl->GetSourceRowset(This,riid,ppRowset,phRow)
   4961 #define IRow_Open(This,pUnkOuter,pColumnID,rguidColumnType,dwBindFlags,riid,ppUnk) (This)->lpVtbl->Open(This,pUnkOuter,pColumnID,rguidColumnType,dwBindFlags,riid,ppUnk)
   4962 #endif
   4963 #endif
   4964   HRESULT WINAPI IRow_GetColumns_Proxy(IRow *This,DBORDINAL cColumns,DBCOLUMNACCESS rgColumns[]);
   4965   void __RPC_STUB IRow_GetColumns_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   4966   HRESULT WINAPI IRow_GetSourceRowset_Proxy(IRow *This,REFIID riid,IUnknown **ppRowset,HROW *phRow);
   4967   void __RPC_STUB IRow_GetSourceRowset_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   4968   HRESULT WINAPI IRow_Open_Proxy(IRow *This,IUnknown *pUnkOuter,DBID *pColumnID,REFGUID rguidColumnType,DWORD dwBindFlags,REFIID riid,IUnknown **ppUnk);
   4969   void __RPC_STUB IRow_Open_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   4970 #endif
   4971 
   4972 #ifndef __IRowChange_INTERFACE_DEFINED__
   4973 #define __IRowChange_INTERFACE_DEFINED__
   4974   EXTERN_C const IID IID_IRowChange;
   4975 #if defined(__cplusplus) && !defined(CINTERFACE)
   4976   struct IRowChange : public IUnknown {
   4977   public:
   4978     virtual HRESULT WINAPI SetColumns(DBORDINAL cColumns,DBCOLUMNACCESS rgColumns[]) = 0;
   4979   };
   4980 #else
   4981   typedef struct IRowChangeVtbl {
   4982     BEGIN_INTERFACE
   4983       HRESULT (WINAPI *QueryInterface)(IRowChange *This,REFIID riid,void **ppvObject);
   4984       ULONG (WINAPI *AddRef)(IRowChange *This);
   4985       ULONG (WINAPI *Release)(IRowChange *This);
   4986       HRESULT (WINAPI *SetColumns)(IRowChange *This,DBORDINAL cColumns,DBCOLUMNACCESS rgColumns[]);
   4987     END_INTERFACE
   4988   } IRowChangeVtbl;
   4989   struct IRowChange {
   4990     CONST_VTBL struct IRowChangeVtbl *lpVtbl;
   4991   };
   4992 #ifdef COBJMACROS
   4993 #define IRowChange_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   4994 #define IRowChange_AddRef(This) (This)->lpVtbl->AddRef(This)
   4995 #define IRowChange_Release(This) (This)->lpVtbl->Release(This)
   4996 #define IRowChange_SetColumns(This,cColumns,rgColumns) (This)->lpVtbl->SetColumns(This,cColumns,rgColumns)
   4997 #endif
   4998 #endif
   4999   HRESULT WINAPI IRowChange_SetColumns_Proxy(IRowChange *This,DBORDINAL cColumns,DBCOLUMNACCESS rgColumns[]);
   5000   void __RPC_STUB IRowChange_SetColumns_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   5001 #endif
   5002 
   5003 #ifndef __IRowSchemaChange_INTERFACE_DEFINED__
   5004 #define __IRowSchemaChange_INTERFACE_DEFINED__
   5005   EXTERN_C const IID IID_IRowSchemaChange;
   5006 #if defined(__cplusplus) && !defined(CINTERFACE)
   5007   struct IRowSchemaChange : public IRowChange {
   5008   public:
   5009     virtual HRESULT WINAPI DeleteColumns(DBORDINAL cColumns,const DBID rgColumnIDs[],DBSTATUS rgdwStatus[]) = 0;
   5010     virtual HRESULT WINAPI AddColumns(DBORDINAL cColumns,const DBCOLUMNINFO rgNewColumnInfo[],DBCOLUMNACCESS rgColumns[]) = 0;
   5011   };
   5012 #else
   5013   typedef struct IRowSchemaChangeVtbl {
   5014     BEGIN_INTERFACE
   5015       HRESULT (WINAPI *QueryInterface)(IRowSchemaChange *This,REFIID riid,void **ppvObject);
   5016       ULONG (WINAPI *AddRef)(IRowSchemaChange *This);
   5017       ULONG (WINAPI *Release)(IRowSchemaChange *This);
   5018       HRESULT (WINAPI *SetColumns)(IRowSchemaChange *This,DBORDINAL cColumns,DBCOLUMNACCESS rgColumns[]);
   5019       HRESULT (WINAPI *DeleteColumns)(IRowSchemaChange *This,DBORDINAL cColumns,const DBID rgColumnIDs[],DBSTATUS rgdwStatus[]);
   5020       HRESULT (WINAPI *AddColumns)(IRowSchemaChange *This,DBORDINAL cColumns,const DBCOLUMNINFO rgNewColumnInfo[],DBCOLUMNACCESS rgColumns[]);
   5021     END_INTERFACE
   5022   } IRowSchemaChangeVtbl;
   5023   struct IRowSchemaChange {
   5024     CONST_VTBL struct IRowSchemaChangeVtbl *lpVtbl;
   5025   };
   5026 #ifdef COBJMACROS
   5027 #define IRowSchemaChange_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   5028 #define IRowSchemaChange_AddRef(This) (This)->lpVtbl->AddRef(This)
   5029 #define IRowSchemaChange_Release(This) (This)->lpVtbl->Release(This)
   5030 #define IRowSchemaChange_SetColumns(This,cColumns,rgColumns) (This)->lpVtbl->SetColumns(This,cColumns,rgColumns)
   5031 #define IRowSchemaChange_DeleteColumns(This,cColumns,rgColumnIDs,rgdwStatus) (This)->lpVtbl->DeleteColumns(This,cColumns,rgColumnIDs,rgdwStatus)
   5032 #define IRowSchemaChange_AddColumns(This,cColumns,rgNewColumnInfo,rgColumns) (This)->lpVtbl->AddColumns(This,cColumns,rgNewColumnInfo,rgColumns)
   5033 #endif
   5034 #endif
   5035   HRESULT WINAPI IRowSchemaChange_DeleteColumns_Proxy(IRowSchemaChange *This,DBORDINAL cColumns,const DBID rgColumnIDs[],DBSTATUS rgdwStatus[]);
   5036   void __RPC_STUB IRowSchemaChange_DeleteColumns_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   5037   HRESULT WINAPI IRowSchemaChange_AddColumns_Proxy(IRowSchemaChange *This,DBORDINAL cColumns,const DBCOLUMNINFO rgNewColumnInfo[],DBCOLUMNACCESS rgColumns[]);
   5038   void __RPC_STUB IRowSchemaChange_AddColumns_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   5039 #endif
   5040 
   5041 #ifndef __IGetRow_INTERFACE_DEFINED__
   5042 #define __IGetRow_INTERFACE_DEFINED__
   5043   EXTERN_C const IID IID_IGetRow;
   5044 #if defined(__cplusplus) && !defined(CINTERFACE)
   5045   struct IGetRow : public IUnknown {
   5046   public:
   5047     virtual HRESULT WINAPI GetRowFromHROW(IUnknown *pUnkOuter,HROW hRow,REFIID riid,IUnknown **ppUnk) = 0;
   5048     virtual HRESULT WINAPI GetURLFromHROW(HROW hRow,LPOLESTR *ppwszURL) = 0;
   5049   };
   5050 #else
   5051   typedef struct IGetRowVtbl {
   5052     BEGIN_INTERFACE
   5053       HRESULT (WINAPI *QueryInterface)(IGetRow *This,REFIID riid,void **ppvObject);
   5054       ULONG (WINAPI *AddRef)(IGetRow *This);
   5055       ULONG (WINAPI *Release)(IGetRow *This);
   5056       HRESULT (WINAPI *GetRowFromHROW)(IGetRow *This,IUnknown *pUnkOuter,HROW hRow,REFIID riid,IUnknown **ppUnk);
   5057       HRESULT (WINAPI *GetURLFromHROW)(IGetRow *This,HROW hRow,LPOLESTR *ppwszURL);
   5058     END_INTERFACE
   5059   } IGetRowVtbl;
   5060   struct IGetRow {
   5061     CONST_VTBL struct IGetRowVtbl *lpVtbl;
   5062   };
   5063 #ifdef COBJMACROS
   5064 #define IGetRow_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   5065 #define IGetRow_AddRef(This) (This)->lpVtbl->AddRef(This)
   5066 #define IGetRow_Release(This) (This)->lpVtbl->Release(This)
   5067 #define IGetRow_GetRowFromHROW(This,pUnkOuter,hRow,riid,ppUnk) (This)->lpVtbl->GetRowFromHROW(This,pUnkOuter,hRow,riid,ppUnk)
   5068 #define IGetRow_GetURLFromHROW(This,hRow,ppwszURL) (This)->lpVtbl->GetURLFromHROW(This,hRow,ppwszURL)
   5069 #endif
   5070 #endif
   5071   HRESULT WINAPI IGetRow_GetRowFromHROW_Proxy(IGetRow *This,IUnknown *pUnkOuter,HROW hRow,REFIID riid,IUnknown **ppUnk);
   5072   void __RPC_STUB IGetRow_GetRowFromHROW_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   5073   HRESULT WINAPI IGetRow_GetURLFromHROW_Proxy(IGetRow *This,HROW hRow,LPOLESTR *ppwszURL);
   5074   void __RPC_STUB IGetRow_GetURLFromHROW_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   5075 #endif
   5076 
   5077 #ifndef __IBindResource_INTERFACE_DEFINED__
   5078 #define __IBindResource_INTERFACE_DEFINED__
   5079   EXTERN_C const IID IID_IBindResource;
   5080 #if defined(__cplusplus) && !defined(CINTERFACE)
   5081   struct IBindResource : public IUnknown {
   5082   public:
   5083     virtual HRESULT WINAPI Bind(IUnknown *pUnkOuter,LPCOLESTR pwszURL,DBBINDURLFLAG dwBindURLFlags,REFGUID rguid,REFIID riid,IAuthenticate *pAuthenticate,DBIMPLICITSESSION *pImplSession,DBBINDURLSTATUS *pdwBindStatus,IUnknown **ppUnk) = 0;
   5084   };
   5085 #else
   5086   typedef struct IBindResourceVtbl {
   5087     BEGIN_INTERFACE
   5088       HRESULT (WINAPI *QueryInterface)(IBindResource *This,REFIID riid,void **ppvObject);
   5089       ULONG (WINAPI *AddRef)(IBindResource *This);
   5090       ULONG (WINAPI *Release)(IBindResource *This);
   5091       HRESULT (WINAPI *Bind)(IBindResource *This,IUnknown *pUnkOuter,LPCOLESTR pwszURL,DBBINDURLFLAG dwBindURLFlags,REFGUID rguid,REFIID riid,IAuthenticate *pAuthenticate,DBIMPLICITSESSION *pImplSession,DBBINDURLSTATUS *pdwBindStatus,IUnknown **ppUnk);
   5092     END_INTERFACE
   5093   } IBindResourceVtbl;
   5094   struct IBindResource {
   5095     CONST_VTBL struct IBindResourceVtbl *lpVtbl;
   5096   };
   5097 #ifdef COBJMACROS
   5098 #define IBindResource_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   5099 #define IBindResource_AddRef(This) (This)->lpVtbl->AddRef(This)
   5100 #define IBindResource_Release(This) (This)->lpVtbl->Release(This)
   5101 #define IBindResource_Bind(This,pUnkOuter,pwszURL,dwBindURLFlags,rguid,riid,pAuthenticate,pImplSession,pdwBindStatus,ppUnk) (This)->lpVtbl->Bind(This,pUnkOuter,pwszURL,dwBindURLFlags,rguid,riid,pAuthenticate,pImplSession,pdwBindStatus,ppUnk)
   5102 #endif
   5103 #endif
   5104   HRESULT WINAPI IBindResource_RemoteBind_Proxy(IBindResource *This,IUnknown *pUnkOuter,LPCOLESTR pwszURL,DBBINDURLFLAG dwBindURLFlags,REFGUID rguid,REFIID riid,IAuthenticate *pAuthenticate,IUnknown *pSessionUnkOuter,IID *piid,IUnknown **ppSession,DBBINDURLSTATUS *pdwBindStatus,IUnknown **ppUnk);
   5105   void __RPC_STUB IBindResource_RemoteBind_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   5106 #endif
   5107 
   5108 #ifndef __IScopedOperations_INTERFACE_DEFINED__
   5109 #define __IScopedOperations_INTERFACE_DEFINED__
   5110   typedef DWORD DBCOPYFLAGS;
   5111 
   5112   enum DBCOPYFLAGSENUM {
   5113     DBCOPY_ASYNC = 0x100,DBCOPY_REPLACE_EXISTING = 0x200,DBCOPY_ALLOW_EMULATION = 0x400,DBCOPY_NON_RECURSIVE = 0x800,DBCOPY_ATOMIC = 0x1000
   5114   };
   5115   typedef DWORD DBMOVEFLAGS;
   5116 
   5117   enum DBMOVEFLAGSENUM {
   5118     DBMOVE_REPLACE_EXISTING = 0x1,DBMOVE_ASYNC = 0x100,DBMOVE_DONT_UPDATE_LINKS = 0x200,DBMOVE_ALLOW_EMULATION = 0x400,DBMOVE_ATOMIC = 0x1000
   5119   };
   5120   typedef DWORD DBDELETEFLAGS;
   5121 
   5122   enum DBDELETEFLAGSENUM {
   5123     DBDELETE_ASYNC = 0x100,DBDELETE_ATOMIC = 0x1000
   5124   };
   5125 
   5126   EXTERN_C const IID IID_IScopedOperations;
   5127 #if defined(__cplusplus) && !defined(CINTERFACE)
   5128   struct IScopedOperations : public IBindResource {
   5129   public:
   5130     virtual HRESULT WINAPI Copy(DBCOUNTITEM cRows,LPCOLESTR rgpwszSourceURLs[],LPCOLESTR rgpwszDestURLs[],DWORD dwCopyFlags,IAuthenticate *pAuthenticate,DBSTATUS rgdwStatus[],LPOLESTR rgpwszNewURLs[],OLECHAR **ppStringsBuffer) = 0;
   5131     virtual HRESULT WINAPI Move(DBCOUNTITEM cRows,LPCOLESTR rgpwszSourceURLs[],LPCOLESTR rgpwszDestURLs[],DWORD dwMoveFlags,IAuthenticate *pAuthenticate,DBSTATUS rgdwStatus[],LPOLESTR rgpwszNewURLs[],OLECHAR **ppStringsBuffer) = 0;
   5132     virtual HRESULT WINAPI Delete(DBCOUNTITEM cRows,LPCOLESTR rgpwszURLs[],DWORD dwDeleteFlags,DBSTATUS rgdwStatus[]) = 0;
   5133     virtual HRESULT WINAPI OpenRowset(IUnknown *pUnkOuter,DBID *pTableID,DBID *pIndexID,REFIID riid,ULONG cPropertySets,DBPROPSET rgPropertySets[],IUnknown **ppRowset) = 0;
   5134   };
   5135 #else
   5136   typedef struct IScopedOperationsVtbl {
   5137     BEGIN_INTERFACE
   5138       HRESULT (WINAPI *QueryInterface)(IScopedOperations *This,REFIID riid,void **ppvObject);
   5139       ULONG (WINAPI *AddRef)(IScopedOperations *This);
   5140       ULONG (WINAPI *Release)(IScopedOperations *This);
   5141       HRESULT (WINAPI *Bind)(IScopedOperations *This,IUnknown *pUnkOuter,LPCOLESTR pwszURL,DBBINDURLFLAG dwBindURLFlags,REFGUID rguid,REFIID riid,IAuthenticate *pAuthenticate,DBIMPLICITSESSION *pImplSession,DBBINDURLSTATUS *pdwBindStatus,IUnknown **ppUnk);
   5142       HRESULT (WINAPI *Copy)(IScopedOperations *This,DBCOUNTITEM cRows,LPCOLESTR rgpwszSourceURLs[],LPCOLESTR rgpwszDestURLs[],DWORD dwCopyFlags,IAuthenticate *pAuthenticate,DBSTATUS rgdwStatus[],LPOLESTR rgpwszNewURLs[],OLECHAR **ppStringsBuffer);
   5143       HRESULT (WINAPI *Move)(IScopedOperations *This,DBCOUNTITEM cRows,LPCOLESTR rgpwszSourceURLs[],LPCOLESTR rgpwszDestURLs[],DWORD dwMoveFlags,IAuthenticate *pAuthenticate,DBSTATUS rgdwStatus[],LPOLESTR rgpwszNewURLs[],OLECHAR **ppStringsBuffer);
   5144       HRESULT (WINAPI *Delete)(IScopedOperations *This,DBCOUNTITEM cRows,LPCOLESTR rgpwszURLs[],DWORD dwDeleteFlags,DBSTATUS rgdwStatus[]);
   5145       HRESULT (WINAPI *OpenRowset)(IScopedOperations *This,IUnknown *pUnkOuter,DBID *pTableID,DBID *pIndexID,REFIID riid,ULONG cPropertySets,DBPROPSET rgPropertySets[],IUnknown **ppRowset);
   5146     END_INTERFACE
   5147   } IScopedOperationsVtbl;
   5148   struct IScopedOperations {
   5149     CONST_VTBL struct IScopedOperationsVtbl *lpVtbl;
   5150   };
   5151 #ifdef COBJMACROS
   5152 #define IScopedOperations_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   5153 #define IScopedOperations_AddRef(This) (This)->lpVtbl->AddRef(This)
   5154 #define IScopedOperations_Release(This) (This)->lpVtbl->Release(This)
   5155 #define IScopedOperations_Bind(This,pUnkOuter,pwszURL,dwBindURLFlags,rguid,riid,pAuthenticate,pImplSession,pdwBindStatus,ppUnk) (This)->lpVtbl->Bind(This,pUnkOuter,pwszURL,dwBindURLFlags,rguid,riid,pAuthenticate,pImplSession,pdwBindStatus,ppUnk)
   5156 #define IScopedOperations_Copy(This,cRows,rgpwszSourceURLs,rgpwszDestURLs,dwCopyFlags,pAuthenticate,rgdwStatus,rgpwszNewURLs,ppStringsBuffer) (This)->lpVtbl->Copy(This,cRows,rgpwszSourceURLs,rgpwszDestURLs,dwCopyFlags,pAuthenticate,rgdwStatus,rgpwszNewURLs,ppStringsBuffer)
   5157 #define IScopedOperations_Move(This,cRows,rgpwszSourceURLs,rgpwszDestURLs,dwMoveFlags,pAuthenticate,rgdwStatus,rgpwszNewURLs,ppStringsBuffer) (This)->lpVtbl->Move(This,cRows,rgpwszSourceURLs,rgpwszDestURLs,dwMoveFlags,pAuthenticate,rgdwStatus,rgpwszNewURLs,ppStringsBuffer)
   5158 #define IScopedOperations_Delete(This,cRows,rgpwszURLs,dwDeleteFlags,rgdwStatus) (This)->lpVtbl->Delete(This,cRows,rgpwszURLs,dwDeleteFlags,rgdwStatus)
   5159 #define IScopedOperations_OpenRowset(This,pUnkOuter,pTableID,pIndexID,riid,cPropertySets,rgPropertySets,ppRowset) (This)->lpVtbl->OpenRowset(This,pUnkOuter,pTableID,pIndexID,riid,cPropertySets,rgPropertySets,ppRowset)
   5160 #endif
   5161 #endif
   5162   HRESULT WINAPI IScopedOperations_RemoteCopy_Proxy(IScopedOperations *This,DBCOUNTITEM cRows,LPCOLESTR *rgpwszSourceURLs,LPCOLESTR *rgpwszDestURLs,DWORD dwCopyFlags,IAuthenticate *pAuthenticate,DBSTATUS *rgdwStatus,DBBYTEOFFSET **prgulNewURLOffsets,ULONG *pcbStringsBuffer,OLECHAR **ppStringsBuffer);
   5163   void __RPC_STUB IScopedOperations_RemoteCopy_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   5164   HRESULT WINAPI IScopedOperations_RemoteMove_Proxy(IScopedOperations *This,DBCOUNTITEM cRows,LPCOLESTR *rgpwszSourceURLs,LPCOLESTR *rgpwszDestURLs,DWORD dwMoveFlags,IAuthenticate *pAuthenticate,DBSTATUS *rgdwStatus,DBBYTEOFFSET **prgulNewURLOffsets,ULONG *pcbStringsBuffer,OLECHAR **ppStringsBuffer);
   5165   void __RPC_STUB IScopedOperations_RemoteMove_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   5166   HRESULT WINAPI IScopedOperations_RemoteDelete_Proxy(IScopedOperations *This,DBCOUNTITEM cRows,LPCOLESTR *rgpwszURLs,DWORD dwDeleteFlags,DBSTATUS *rgdwStatus);
   5167   void __RPC_STUB IScopedOperations_RemoteDelete_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   5168   HRESULT WINAPI IScopedOperations_RemoteOpenRowset_Proxy(IScopedOperations *This,IUnknown *pUnkOuter,DBID *pTableID,DBID *pIndexID,REFIID riid,ULONG cPropertySets,DBPROPSET *rgPropertySets,IUnknown **ppRowset,ULONG cTotalProps,DBPROPSTATUS *rgPropStatus);
   5169   void __RPC_STUB IScopedOperations_RemoteOpenRowset_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   5170 #endif
   5171 
   5172 #ifndef __ICreateRow_INTERFACE_DEFINED__
   5173 #define __ICreateRow_INTERFACE_DEFINED__
   5174   EXTERN_C const IID IID_ICreateRow;
   5175 #if defined(__cplusplus) && !defined(CINTERFACE)
   5176   struct ICreateRow : public IUnknown {
   5177   public:
   5178     virtual HRESULT WINAPI CreateRow(IUnknown *pUnkOuter,LPCOLESTR pwszURL,DBBINDURLFLAG dwBindURLFlags,REFGUID rguid,REFIID riid,IAuthenticate *pAuthenticate,DBIMPLICITSESSION *pImplSession,DBBINDURLSTATUS *pdwBindStatus,LPOLESTR *ppwszNewURL,IUnknown **ppUnk) = 0;
   5179   };
   5180 #else
   5181   typedef struct ICreateRowVtbl {
   5182     BEGIN_INTERFACE
   5183       HRESULT (WINAPI *QueryInterface)(ICreateRow *This,REFIID riid,void **ppvObject);
   5184       ULONG (WINAPI *AddRef)(ICreateRow *This);
   5185       ULONG (WINAPI *Release)(ICreateRow *This);
   5186       HRESULT (WINAPI *CreateRow)(ICreateRow *This,IUnknown *pUnkOuter,LPCOLESTR pwszURL,DBBINDURLFLAG dwBindURLFlags,REFGUID rguid,REFIID riid,IAuthenticate *pAuthenticate,DBIMPLICITSESSION *pImplSession,DBBINDURLSTATUS *pdwBindStatus,LPOLESTR *ppwszNewURL,IUnknown **ppUnk);
   5187     END_INTERFACE
   5188   } ICreateRowVtbl;
   5189   struct ICreateRow {
   5190     CONST_VTBL struct ICreateRowVtbl *lpVtbl;
   5191   };
   5192 #ifdef COBJMACROS
   5193 #define ICreateRow_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   5194 #define ICreateRow_AddRef(This) (This)->lpVtbl->AddRef(This)
   5195 #define ICreateRow_Release(This) (This)->lpVtbl->Release(This)
   5196 #define ICreateRow_CreateRow(This,pUnkOuter,pwszURL,dwBindURLFlags,rguid,riid,pAuthenticate,pImplSession,pdwBindStatus,ppwszNewURL,ppUnk) (This)->lpVtbl->CreateRow(This,pUnkOuter,pwszURL,dwBindURLFlags,rguid,riid,pAuthenticate,pImplSession,pdwBindStatus,ppwszNewURL,ppUnk)
   5197 #endif
   5198 #endif
   5199   HRESULT WINAPI ICreateRow_RemoteCreateRow_Proxy(ICreateRow *This,IUnknown *pUnkOuter,LPCOLESTR pwszURL,DBBINDURLFLAG dwBindURLFlags,REFGUID rguid,REFIID riid,IAuthenticate *pAuthenticate,IUnknown *pSessionUnkOuter,IID *piid,IUnknown **ppSession,DBBINDURLSTATUS *pdwBindStatus,LPOLESTR *ppwszNewURL,IUnknown **ppUnk);
   5200   void __RPC_STUB ICreateRow_RemoteCreateRow_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   5201 #endif
   5202 
   5203 #ifndef __IDBBinderProperties_INTERFACE_DEFINED__
   5204 #define __IDBBinderProperties_INTERFACE_DEFINED__
   5205   EXTERN_C const IID IID_IDBBinderProperties;
   5206 #if defined(__cplusplus) && !defined(CINTERFACE)
   5207   struct IDBBinderProperties : public IDBProperties {
   5208   public:
   5209     virtual HRESULT WINAPI Reset(void) = 0;
   5210   };
   5211 #else
   5212   typedef struct IDBBinderPropertiesVtbl {
   5213     BEGIN_INTERFACE
   5214       HRESULT (WINAPI *QueryInterface)(IDBBinderProperties *This,REFIID riid,void **ppvObject);
   5215       ULONG (WINAPI *AddRef)(IDBBinderProperties *This);
   5216       ULONG (WINAPI *Release)(IDBBinderProperties *This);
   5217       HRESULT (WINAPI *GetProperties)(IDBBinderProperties *This,ULONG cPropertyIDSets,const DBPROPIDSET rgPropertyIDSets[],ULONG *pcPropertySets,DBPROPSET **prgPropertySets);
   5218       HRESULT (WINAPI *GetPropertyInfo)(IDBBinderProperties *This,ULONG cPropertyIDSets,const DBPROPIDSET rgPropertyIDSets[],ULONG *pcPropertyInfoSets,DBPROPINFOSET **prgPropertyInfoSets,OLECHAR **ppDescBuffer);
   5219       HRESULT (WINAPI *SetProperties)(IDBBinderProperties *This,ULONG cPropertySets,DBPROPSET rgPropertySets[]);
   5220       HRESULT (WINAPI *Reset)(IDBBinderProperties *This);
   5221     END_INTERFACE
   5222   } IDBBinderPropertiesVtbl;
   5223   struct IDBBinderProperties {
   5224     CONST_VTBL struct IDBBinderPropertiesVtbl *lpVtbl;
   5225   };
   5226 #ifdef COBJMACROS
   5227 #define IDBBinderProperties_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   5228 #define IDBBinderProperties_AddRef(This) (This)->lpVtbl->AddRef(This)
   5229 #define IDBBinderProperties_Release(This) (This)->lpVtbl->Release(This)
   5230 #define IDBBinderProperties_GetProperties(This,cPropertyIDSets,rgPropertyIDSets,pcPropertySets,prgPropertySets) (This)->lpVtbl->GetProperties(This,cPropertyIDSets,rgPropertyIDSets,pcPropertySets,prgPropertySets)
   5231 #define IDBBinderProperties_GetPropertyInfo(This,cPropertyIDSets,rgPropertyIDSets,pcPropertyInfoSets,prgPropertyInfoSets,ppDescBuffer) (This)->lpVtbl->GetPropertyInfo(This,cPropertyIDSets,rgPropertyIDSets,pcPropertyInfoSets,prgPropertyInfoSets,ppDescBuffer)
   5232 #define IDBBinderProperties_SetProperties(This,cPropertySets,rgPropertySets) (This)->lpVtbl->SetProperties(This,cPropertySets,rgPropertySets)
   5233 #define IDBBinderProperties_Reset(This) (This)->lpVtbl->Reset(This)
   5234 #endif
   5235 #endif
   5236   HRESULT WINAPI IDBBinderProperties_Reset_Proxy(IDBBinderProperties *This);
   5237   void __RPC_STUB IDBBinderProperties_Reset_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   5238 #endif
   5239 
   5240 #ifndef __IColumnsInfo2_INTERFACE_DEFINED__
   5241 #define __IColumnsInfo2_INTERFACE_DEFINED__
   5242   EXTERN_C const IID IID_IColumnsInfo2;
   5243 #if defined(__cplusplus) && !defined(CINTERFACE)
   5244   struct IColumnsInfo2 : public IColumnsInfo {
   5245   public:
   5246     virtual HRESULT WINAPI GetRestrictedColumnInfo(DBORDINAL cColumnIDMasks,const DBID rgColumnIDMasks[],DWORD dwFlags,DBORDINAL *pcColumns,DBID **prgColumnIDs,DBCOLUMNINFO **prgColumnInfo,OLECHAR **ppStringsBuffer) = 0;
   5247   };
   5248 #else
   5249   typedef struct IColumnsInfo2Vtbl {
   5250     BEGIN_INTERFACE
   5251       HRESULT (WINAPI *QueryInterface)(IColumnsInfo2 *This,REFIID riid,void **ppvObject);
   5252       ULONG (WINAPI *AddRef)(IColumnsInfo2 *This);
   5253       ULONG (WINAPI *Release)(IColumnsInfo2 *This);
   5254       HRESULT (WINAPI *GetColumnInfo)(IColumnsInfo2 *This,DBORDINAL *pcColumns,DBCOLUMNINFO **prgInfo,OLECHAR **ppStringsBuffer);
   5255       HRESULT (WINAPI *MapColumnIDs)(IColumnsInfo2 *This,DBORDINAL cColumnIDs,const DBID rgColumnIDs[],DBORDINAL rgColumns[]);
   5256       HRESULT (WINAPI *GetRestrictedColumnInfo)(IColumnsInfo2 *This,DBORDINAL cColumnIDMasks,const DBID rgColumnIDMasks[],DWORD dwFlags,DBORDINAL *pcColumns,DBID **prgColumnIDs,DBCOLUMNINFO **prgColumnInfo,OLECHAR **ppStringsBuffer);
   5257     END_INTERFACE
   5258   } IColumnsInfo2Vtbl;
   5259   struct IColumnsInfo2 {
   5260     CONST_VTBL struct IColumnsInfo2Vtbl *lpVtbl;
   5261   };
   5262 #ifdef COBJMACROS
   5263 #define IColumnsInfo2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   5264 #define IColumnsInfo2_AddRef(This) (This)->lpVtbl->AddRef(This)
   5265 #define IColumnsInfo2_Release(This) (This)->lpVtbl->Release(This)
   5266 #define IColumnsInfo2_GetColumnInfo(This,pcColumns,prgInfo,ppStringsBuffer) (This)->lpVtbl->GetColumnInfo(This,pcColumns,prgInfo,ppStringsBuffer)
   5267 #define IColumnsInfo2_MapColumnIDs(This,cColumnIDs,rgColumnIDs,rgColumns) (This)->lpVtbl->MapColumnIDs(This,cColumnIDs,rgColumnIDs,rgColumns)
   5268 #define IColumnsInfo2_GetRestrictedColumnInfo(This,cColumnIDMasks,rgColumnIDMasks,dwFlags,pcColumns,prgColumnIDs,prgColumnInfo,ppStringsBuffer) (This)->lpVtbl->GetRestrictedColumnInfo(This,cColumnIDMasks,rgColumnIDMasks,dwFlags,pcColumns,prgColumnIDs,prgColumnInfo,ppStringsBuffer)
   5269 #endif
   5270 #endif
   5271   HRESULT WINAPI IColumnsInfo2_RemoteGetRestrictedColumnInfo_Proxy(IColumnsInfo2 *This,DBORDINAL cColumnIDMasks,const DBID *rgColumnIDMasks,DWORD dwFlags,DBORDINAL *pcColumns,DBID **prgColumnIDs,DBCOLUMNINFO **prgColumnInfo,DBBYTEOFFSET **prgNameOffsets,DBBYTEOFFSET **prgcolumnidOffsets,DBLENGTH *pcbStringsBuffer,OLECHAR **ppStringsBuffer);
   5272   void __RPC_STUB IColumnsInfo2_RemoteGetRestrictedColumnInfo_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   5273 #endif
   5274 
   5275 #ifndef __IRegisterProvider_INTERFACE_DEFINED__
   5276 #define __IRegisterProvider_INTERFACE_DEFINED__
   5277   EXTERN_C const IID IID_IRegisterProvider;
   5278 #if defined(__cplusplus) && !defined(CINTERFACE)
   5279   struct IRegisterProvider : public IUnknown {
   5280   public:
   5281     virtual HRESULT WINAPI GetURLMapping(LPCOLESTR pwszURL,DB_DWRESERVE dwReserved,CLSID *pclsidProvider) = 0;
   5282     virtual HRESULT WINAPI SetURLMapping(LPCOLESTR pwszURL,DB_DWRESERVE dwReserved,REFCLSID rclsidProvider) = 0;
   5283     virtual HRESULT WINAPI UnregisterProvider(LPCOLESTR pwszURL,DB_DWRESERVE dwReserved,REFCLSID rclsidProvider) = 0;
   5284   };
   5285 #else
   5286   typedef struct IRegisterProviderVtbl {
   5287     BEGIN_INTERFACE
   5288       HRESULT (WINAPI *QueryInterface)(IRegisterProvider *This,REFIID riid,void **ppvObject);
   5289       ULONG (WINAPI *AddRef)(IRegisterProvider *This);
   5290       ULONG (WINAPI *Release)(IRegisterProvider *This);
   5291       HRESULT (WINAPI *GetURLMapping)(IRegisterProvider *This,LPCOLESTR pwszURL,DB_DWRESERVE dwReserved,CLSID *pclsidProvider);
   5292       HRESULT (WINAPI *SetURLMapping)(IRegisterProvider *This,LPCOLESTR pwszURL,DB_DWRESERVE dwReserved,REFCLSID rclsidProvider);
   5293       HRESULT (WINAPI *UnregisterProvider)(IRegisterProvider *This,LPCOLESTR pwszURL,DB_DWRESERVE dwReserved,REFCLSID rclsidProvider);
   5294     END_INTERFACE
   5295   } IRegisterProviderVtbl;
   5296   struct IRegisterProvider {
   5297     CONST_VTBL struct IRegisterProviderVtbl *lpVtbl;
   5298   };
   5299 #ifdef COBJMACROS
   5300 #define IRegisterProvider_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   5301 #define IRegisterProvider_AddRef(This) (This)->lpVtbl->AddRef(This)
   5302 #define IRegisterProvider_Release(This) (This)->lpVtbl->Release(This)
   5303 #define IRegisterProvider_GetURLMapping(This,pwszURL,dwReserved,pclsidProvider) (This)->lpVtbl->GetURLMapping(This,pwszURL,dwReserved,pclsidProvider)
   5304 #define IRegisterProvider_SetURLMapping(This,pwszURL,dwReserved,rclsidProvider) (This)->lpVtbl->SetURLMapping(This,pwszURL,dwReserved,rclsidProvider)
   5305 #define IRegisterProvider_UnregisterProvider(This,pwszURL,dwReserved,rclsidProvider) (This)->lpVtbl->UnregisterProvider(This,pwszURL,dwReserved,rclsidProvider)
   5306 #endif
   5307 #endif
   5308   HRESULT WINAPI IRegisterProvider_RemoteGetURLMapping_Proxy(IRegisterProvider *This,LPCOLESTR pwszURL,DB_DWRESERVE dwReserved,CLSID *pclsidProvider);
   5309   void __RPC_STUB IRegisterProvider_RemoteGetURLMapping_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   5310   HRESULT WINAPI IRegisterProvider_SetURLMapping_Proxy(IRegisterProvider *This,LPCOLESTR pwszURL,DB_DWRESERVE dwReserved,REFCLSID rclsidProvider);
   5311   void __RPC_STUB IRegisterProvider_SetURLMapping_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   5312   HRESULT WINAPI IRegisterProvider_UnregisterProvider_Proxy(IRegisterProvider *This,LPCOLESTR pwszURL,DB_DWRESERVE dwReserved,REFCLSID rclsidProvider);
   5313   void __RPC_STUB IRegisterProvider_UnregisterProvider_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   5314 #endif
   5315 #endif
   5316 
   5317   extern RPC_IF_HANDLE __MIDL_itf_oledb_0349_v0_0_c_ifspec;
   5318   extern RPC_IF_HANDLE __MIDL_itf_oledb_0349_v0_0_s_ifspec;
   5319 #ifndef __IGetSession_INTERFACE_DEFINED__
   5320 #define __IGetSession_INTERFACE_DEFINED__
   5321   EXTERN_C const IID IID_IGetSession;
   5322 #if defined(__cplusplus) && !defined(CINTERFACE)
   5323   struct IGetSession : public IUnknown {
   5324   public:
   5325     virtual HRESULT WINAPI GetSession(REFIID riid,IUnknown **ppSession) = 0;
   5326   };
   5327 #else
   5328   typedef struct IGetSessionVtbl {
   5329     BEGIN_INTERFACE
   5330       HRESULT (WINAPI *QueryInterface)(IGetSession *This,REFIID riid,void **ppvObject);
   5331       ULONG (WINAPI *AddRef)(IGetSession *This);
   5332       ULONG (WINAPI *Release)(IGetSession *This);
   5333       HRESULT (WINAPI *GetSession)(IGetSession *This,REFIID riid,IUnknown **ppSession);
   5334     END_INTERFACE
   5335   } IGetSessionVtbl;
   5336   struct IGetSession {
   5337     CONST_VTBL struct IGetSessionVtbl *lpVtbl;
   5338   };
   5339 #ifdef COBJMACROS
   5340 #define IGetSession_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   5341 #define IGetSession_AddRef(This) (This)->lpVtbl->AddRef(This)
   5342 #define IGetSession_Release(This) (This)->lpVtbl->Release(This)
   5343 #define IGetSession_GetSession(This,riid,ppSession) (This)->lpVtbl->GetSession(This,riid,ppSession)
   5344 #endif
   5345 #endif
   5346   HRESULT WINAPI IGetSession_GetSession_Proxy(IGetSession *This,REFIID riid,IUnknown **ppSession);
   5347   void __RPC_STUB IGetSession_GetSession_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   5348 #endif
   5349 
   5350 #ifndef __IGetSourceRow_INTERFACE_DEFINED__
   5351 #define __IGetSourceRow_INTERFACE_DEFINED__
   5352   EXTERN_C const IID IID_IGetSourceRow;
   5353 #if defined(__cplusplus) && !defined(CINTERFACE)
   5354   struct IGetSourceRow : public IUnknown {
   5355   public:
   5356     virtual HRESULT WINAPI GetSourceRow(REFIID riid,IUnknown **ppRow) = 0;
   5357   };
   5358 #else
   5359   typedef struct IGetSourceRowVtbl {
   5360     BEGIN_INTERFACE
   5361       HRESULT (WINAPI *QueryInterface)(IGetSourceRow *This,REFIID riid,void **ppvObject);
   5362       ULONG (WINAPI *AddRef)(IGetSourceRow *This);
   5363       ULONG (WINAPI *Release)(IGetSourceRow *This);
   5364       HRESULT (WINAPI *GetSourceRow)(IGetSourceRow *This,REFIID riid,IUnknown **ppRow);
   5365     END_INTERFACE
   5366   } IGetSourceRowVtbl;
   5367   struct IGetSourceRow {
   5368     CONST_VTBL struct IGetSourceRowVtbl *lpVtbl;
   5369   };
   5370 #ifdef COBJMACROS
   5371 #define IGetSourceRow_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   5372 #define IGetSourceRow_AddRef(This) (This)->lpVtbl->AddRef(This)
   5373 #define IGetSourceRow_Release(This) (This)->lpVtbl->Release(This)
   5374 #define IGetSourceRow_GetSourceRow(This,riid,ppRow) (This)->lpVtbl->GetSourceRow(This,riid,ppRow)
   5375 #endif
   5376 #endif
   5377   HRESULT WINAPI IGetSourceRow_GetSourceRow_Proxy(IGetSourceRow *This,REFIID riid,IUnknown **ppRow);
   5378   void __RPC_STUB IGetSourceRow_GetSourceRow_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   5379 #endif
   5380 
   5381 #ifndef __IRowsetCurrentIndex_INTERFACE_DEFINED__
   5382 #define __IRowsetCurrentIndex_INTERFACE_DEFINED__
   5383   EXTERN_C const IID IID_IRowsetCurrentIndex;
   5384 #if defined(__cplusplus) && !defined(CINTERFACE)
   5385   struct IRowsetCurrentIndex : public IRowsetIndex {
   5386   public:
   5387     virtual HRESULT WINAPI GetIndex(DBID **ppIndexID) = 0;
   5388     virtual HRESULT WINAPI SetIndex(DBID *pIndexID) = 0;
   5389   };
   5390 #else
   5391   typedef struct IRowsetCurrentIndexVtbl {
   5392     BEGIN_INTERFACE
   5393       HRESULT (WINAPI *QueryInterface)(IRowsetCurrentIndex *This,REFIID riid,void **ppvObject);
   5394       ULONG (WINAPI *AddRef)(IRowsetCurrentIndex *This);
   5395       ULONG (WINAPI *Release)(IRowsetCurrentIndex *This);
   5396       HRESULT (WINAPI *GetIndexInfo)(IRowsetCurrentIndex *This,DBORDINAL *pcKeyColumns,DBINDEXCOLUMNDESC **prgIndexColumnDesc,ULONG *pcIndexPropertySets,DBPROPSET **prgIndexPropertySets);
   5397       HRESULT (WINAPI *Seek)(IRowsetCurrentIndex *This,HACCESSOR hAccessor,DBORDINAL cKeyValues,void *pData,DBSEEK dwSeekOptions);
   5398       HRESULT (WINAPI *SetRange)(IRowsetCurrentIndex *This,HACCESSOR hAccessor,DBORDINAL cStartKeyColumns,void *pStartData,DBORDINAL cEndKeyColumns,void *pEndData,DBRANGE dwRangeOptions);
   5399       HRESULT (WINAPI *GetIndex)(IRowsetCurrentIndex *This,DBID **ppIndexID);
   5400       HRESULT (WINAPI *SetIndex)(IRowsetCurrentIndex *This,DBID *pIndexID);
   5401     END_INTERFACE
   5402   } IRowsetCurrentIndexVtbl;
   5403   struct IRowsetCurrentIndex {
   5404     CONST_VTBL struct IRowsetCurrentIndexVtbl *lpVtbl;
   5405   };
   5406 #ifdef COBJMACROS
   5407 #define IRowsetCurrentIndex_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   5408 #define IRowsetCurrentIndex_AddRef(This) (This)->lpVtbl->AddRef(This)
   5409 #define IRowsetCurrentIndex_Release(This) (This)->lpVtbl->Release(This)
   5410 #define IRowsetCurrentIndex_GetIndexInfo(This,pcKeyColumns,prgIndexColumnDesc,pcIndexPropertySets,prgIndexPropertySets) (This)->lpVtbl->GetIndexInfo(This,pcKeyColumns,prgIndexColumnDesc,pcIndexPropertySets,prgIndexPropertySets)
   5411 #define IRowsetCurrentIndex_Seek(This,hAccessor,cKeyValues,pData,dwSeekOptions) (This)->lpVtbl->Seek(This,hAccessor,cKeyValues,pData,dwSeekOptions)
   5412 #define IRowsetCurrentIndex_SetRange(This,hAccessor,cStartKeyColumns,pStartData,cEndKeyColumns,pEndData,dwRangeOptions) (This)->lpVtbl->SetRange(This,hAccessor,cStartKeyColumns,pStartData,cEndKeyColumns,pEndData,dwRangeOptions)
   5413 #define IRowsetCurrentIndex_GetIndex(This,ppIndexID) (This)->lpVtbl->GetIndex(This,ppIndexID)
   5414 #define IRowsetCurrentIndex_SetIndex(This,pIndexID) (This)->lpVtbl->SetIndex(This,pIndexID)
   5415 #endif
   5416 #endif
   5417   HRESULT WINAPI IRowsetCurrentIndex_GetIndex_Proxy(IRowsetCurrentIndex *This,DBID **ppIndexID);
   5418   void __RPC_STUB IRowsetCurrentIndex_GetIndex_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   5419   HRESULT WINAPI IRowsetCurrentIndex_SetIndex_Proxy(IRowsetCurrentIndex *This,DBID *pIndexID);
   5420   void __RPC_STUB IRowsetCurrentIndex_SetIndex_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   5421 #endif
   5422 #endif
   5423 
   5424 #if (OLEDBVER >= 0x0260)
   5425   extern RPC_IF_HANDLE __MIDL_itf_oledb_0353_v0_0_c_ifspec;
   5426   extern RPC_IF_HANDLE __MIDL_itf_oledb_0353_v0_0_s_ifspec;
   5427 #ifndef __ICommandStream_INTERFACE_DEFINED__
   5428 #define __ICommandStream_INTERFACE_DEFINED__
   5429   EXTERN_C const IID IID_ICommandStream;
   5430 #if defined(__cplusplus) && !defined(CINTERFACE)
   5431   struct ICommandStream : public IUnknown {
   5432   public:
   5433     virtual HRESULT WINAPI GetCommandStream(IID *piid,GUID *pguidDialect,IUnknown **ppCommandStream) = 0;
   5434     virtual HRESULT WINAPI SetCommandStream(REFIID riid,REFGUID rguidDialect,IUnknown *pCommandStream) = 0;
   5435   };
   5436 #else
   5437   typedef struct ICommandStreamVtbl {
   5438     BEGIN_INTERFACE
   5439       HRESULT (WINAPI *QueryInterface)(ICommandStream *This,REFIID riid,void **ppvObject);
   5440       ULONG (WINAPI *AddRef)(ICommandStream *This);
   5441       ULONG (WINAPI *Release)(ICommandStream *This);
   5442       HRESULT (WINAPI *GetCommandStream)(ICommandStream *This,IID *piid,GUID *pguidDialect,IUnknown **ppCommandStream);
   5443       HRESULT (WINAPI *SetCommandStream)(ICommandStream *This,REFIID riid,REFGUID rguidDialect,IUnknown *pCommandStream);
   5444     END_INTERFACE
   5445   } ICommandStreamVtbl;
   5446   struct ICommandStream {
   5447     CONST_VTBL struct ICommandStreamVtbl *lpVtbl;
   5448   };
   5449 #ifdef COBJMACROS
   5450 #define ICommandStream_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   5451 #define ICommandStream_AddRef(This) (This)->lpVtbl->AddRef(This)
   5452 #define ICommandStream_Release(This) (This)->lpVtbl->Release(This)
   5453 #define ICommandStream_GetCommandStream(This,piid,pguidDialect,ppCommandStream) (This)->lpVtbl->GetCommandStream(This,piid,pguidDialect,ppCommandStream)
   5454 #define ICommandStream_SetCommandStream(This,riid,rguidDialect,pCommandStream) (This)->lpVtbl->SetCommandStream(This,riid,rguidDialect,pCommandStream)
   5455 #endif
   5456 #endif
   5457   HRESULT WINAPI ICommandStream_GetCommandStream_Proxy(ICommandStream *This,IID *piid,GUID *pguidDialect,IUnknown **ppCommandStream);
   5458   void __RPC_STUB ICommandStream_GetCommandStream_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   5459   HRESULT WINAPI ICommandStream_SetCommandStream_Proxy(ICommandStream *This,REFIID riid,REFGUID rguidDialect,IUnknown *pCommandStream);
   5460   void __RPC_STUB ICommandStream_SetCommandStream_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   5461 #endif
   5462 
   5463 #ifndef __IRowsetBookmark_INTERFACE_DEFINED__
   5464 #define __IRowsetBookmark_INTERFACE_DEFINED__
   5465   EXTERN_C const IID IID_IRowsetBookmark;
   5466 #if defined(__cplusplus) && !defined(CINTERFACE)
   5467   struct IRowsetBookmark : public IUnknown {
   5468   public:
   5469     virtual HRESULT WINAPI PositionOnBookmark(HCHAPTER hChapter,DBBKMARK cbBookmark,const BYTE *pBookmark) = 0;
   5470   };
   5471 #else
   5472   typedef struct IRowsetBookmarkVtbl {
   5473     BEGIN_INTERFACE
   5474       HRESULT (WINAPI *QueryInterface)(IRowsetBookmark *This,REFIID riid,void **ppvObject);
   5475       ULONG (WINAPI *AddRef)(IRowsetBookmark *This);
   5476       ULONG (WINAPI *Release)(IRowsetBookmark *This);
   5477       HRESULT (WINAPI *PositionOnBookmark)(IRowsetBookmark *This,HCHAPTER hChapter,DBBKMARK cbBookmark,const BYTE *pBookmark);
   5478     END_INTERFACE
   5479   } IRowsetBookmarkVtbl;
   5480   struct IRowsetBookmark {
   5481     CONST_VTBL struct IRowsetBookmarkVtbl *lpVtbl;
   5482   };
   5483 #ifdef COBJMACROS
   5484 #define IRowsetBookmark_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   5485 #define IRowsetBookmark_AddRef(This) (This)->lpVtbl->AddRef(This)
   5486 #define IRowsetBookmark_Release(This) (This)->lpVtbl->Release(This)
   5487 #define IRowsetBookmark_PositionOnBookmark(This,hChapter,cbBookmark,pBookmark) (This)->lpVtbl->PositionOnBookmark(This,hChapter,cbBookmark,pBookmark)
   5488 #endif
   5489 #endif
   5490   HRESULT WINAPI IRowsetBookmark_PositionOnBookmark_Proxy(IRowsetBookmark *This,HCHAPTER hChapter,DBBKMARK cbBookmark,const BYTE *pBookmark);
   5491   void __RPC_STUB IRowsetBookmark_PositionOnBookmark_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   5492 #endif
   5493 #endif
   5494 
   5495 #include <poppack.h>
   5496 
   5497   extern RPC_IF_HANDLE __MIDL_itf_oledb_0355_v0_0_c_ifspec;
   5498   extern RPC_IF_HANDLE __MIDL_itf_oledb_0355_v0_0_s_ifspec;
   5499 
   5500 #ifdef OLEDBPROXY
   5501   ULONG __RPC_API BSTR_UserSize(ULONG *,ULONG,BSTR *);
   5502   unsigned char *__RPC_API BSTR_UserMarshal(ULONG *,unsigned char *,BSTR *);
   5503   unsigned char *__RPC_API BSTR_UserUnmarshal(ULONG *,unsigned char *,BSTR *);
   5504   void __RPC_API BSTR_UserFree(ULONG *,BSTR *);
   5505   ULONG __RPC_API LPSAFEARRAY_UserSize(ULONG *,ULONG,LPSAFEARRAY *);
   5506   unsigned char *__RPC_API LPSAFEARRAY_UserMarshal(ULONG *,unsigned char *,LPSAFEARRAY *);
   5507   unsigned char *__RPC_API LPSAFEARRAY_UserUnmarshal(ULONG *,unsigned char *,LPSAFEARRAY *);
   5508   void __RPC_API LPSAFEARRAY_UserFree(ULONG *,LPSAFEARRAY *);
   5509   ULONG __RPC_API VARIANT_UserSize(ULONG *,ULONG,VARIANT *);
   5510   unsigned char *__RPC_API VARIANT_UserMarshal(ULONG *,unsigned char *,VARIANT *);
   5511   unsigned char *__RPC_API VARIANT_UserUnmarshal(ULONG *,unsigned char *,VARIANT *);
   5512   void __RPC_API VARIANT_UserFree(ULONG *,VARIANT *);
   5513 
   5514   HRESULT WINAPI IAccessor_AddRefAccessor_Proxy(IAccessor *This,HACCESSOR hAccessor,DBREFCOUNT *pcRefCount);
   5515   HRESULT WINAPI IAccessor_AddRefAccessor_Stub(IAccessor *This,HACCESSOR hAccessor,DBREFCOUNT *pcRefCount,IErrorInfo **ppErrorInfoRem);
   5516   HRESULT WINAPI IAccessor_CreateAccessor_Proxy(IAccessor *This,DBACCESSORFLAGS dwAccessorFlags,DBCOUNTITEM cBindings,const DBBINDING rgBindings[],DBLENGTH cbRowSize,HACCESSOR *phAccessor,DBBINDSTATUS rgStatus[]);
   5517   HRESULT WINAPI IAccessor_CreateAccessor_Stub(IAccessor *This,DBACCESSORFLAGS dwAccessorFlags,DBCOUNTITEM cBindings,DBBINDING *rgBindings,DBLENGTH cbRowSize,HACCESSOR *phAccessor,DBBINDSTATUS *rgStatus,IErrorInfo **ppErrorInfoRem);
   5518   HRESULT WINAPI IAccessor_GetBindings_Proxy(IAccessor *This,HACCESSOR hAccessor,DBACCESSORFLAGS *pdwAccessorFlags,DBCOUNTITEM *pcBindings,DBBINDING **prgBindings);
   5519   HRESULT WINAPI IAccessor_GetBindings_Stub(IAccessor *This,HACCESSOR hAccessor,DBACCESSORFLAGS *pdwAccessorFlags,DBCOUNTITEM *pcBindings,DBBINDING **prgBindings,IErrorInfo **ppErrorInfoRem);
   5520   HRESULT WINAPI IAccessor_ReleaseAccessor_Proxy(IAccessor *This,HACCESSOR hAccessor,DBREFCOUNT *pcRefCount);
   5521   HRESULT WINAPI IAccessor_ReleaseAccessor_Stub(IAccessor *This,HACCESSOR hAccessor,DBREFCOUNT *pcRefCount,IErrorInfo **ppErrorInfoRem);
   5522   HRESULT WINAPI IRowsetInfo_GetProperties_Proxy(IRowsetInfo *This,const ULONG cPropertyIDSets,const DBPROPIDSET rgPropertyIDSets[],ULONG *pcPropertySets,DBPROPSET **prgPropertySets);
   5523   HRESULT WINAPI IRowsetInfo_GetProperties_Stub(IRowsetInfo *This,ULONG cPropertyIDSets,const DBPROPIDSET *rgPropertyIDSets,ULONG *pcPropertySets,DBPROPSET **prgPropertySets,IErrorInfo **ppErrorInfoRem);
   5524   HRESULT WINAPI IRowsetInfo_GetReferencedRowset_Proxy(IRowsetInfo *This,DBORDINAL iOrdinal,REFIID riid,IUnknown **ppReferencedRowset);
   5525   HRESULT WINAPI IRowsetInfo_GetReferencedRowset_Stub(IRowsetInfo *This,DBORDINAL iOrdinal,REFIID riid,IUnknown **ppReferencedRowset,IErrorInfo **ppErrorInfoRem);
   5526   HRESULT WINAPI IRowsetInfo_GetSpecification_Proxy(IRowsetInfo *This,REFIID riid,IUnknown **ppSpecification);
   5527   HRESULT WINAPI IRowsetInfo_GetSpecification_Stub(IRowsetInfo *This,REFIID riid,IUnknown **ppSpecification,IErrorInfo **ppErrorInfoRem);
   5528   HRESULT WINAPI IChapteredRowset_AddRefChapter_Proxy(IChapteredRowset *This,HCHAPTER hChapter,DBREFCOUNT *pcRefCount);
   5529   HRESULT WINAPI IChapteredRowset_AddRefChapter_Stub(IChapteredRowset *This,HCHAPTER hChapter,DBREFCOUNT *pcRefCount,IErrorInfo **ppErrorInfoRem);
   5530   HRESULT WINAPI IChapteredRowset_ReleaseChapter_Proxy(IChapteredRowset *This,HCHAPTER hChapter,DBREFCOUNT *pcRefCount);
   5531   HRESULT WINAPI IChapteredRowset_ReleaseChapter_Stub(IChapteredRowset *This,HCHAPTER hChapter,DBREFCOUNT *pcRefCount,IErrorInfo **ppErrorInfoRem);
   5532   HRESULT WINAPI IRowPosition_ClearRowPosition_Proxy(IRowPosition *This);
   5533   HRESULT WINAPI IRowPosition_ClearRowPosition_Stub(IRowPosition *This,IErrorInfo **ppErrorInfoRem);
   5534   HRESULT WINAPI IRowPosition_GetRowPosition_Proxy(IRowPosition *This,HCHAPTER *phChapter,HROW *phRow,DBPOSITIONFLAGS *pdwPositionFlags);
   5535   HRESULT WINAPI IRowPosition_GetRowPosition_Stub(IRowPosition *This,HCHAPTER *phChapter,HROW *phRow,DBPOSITIONFLAGS *pdwPositionFlags,IErrorInfo **ppErrorInfoRem);
   5536   HRESULT WINAPI IRowPosition_GetRowset_Proxy(IRowPosition *This,REFIID riid,IUnknown **ppRowset);
   5537   HRESULT WINAPI IRowPosition_GetRowset_Stub(IRowPosition *This,REFIID riid,IUnknown **ppRowset,IErrorInfo **ppErrorInfoRem);
   5538   HRESULT WINAPI IRowPosition_Initialize_Proxy(IRowPosition *This,IUnknown *pRowset);
   5539   HRESULT WINAPI IRowPosition_Initialize_Stub(IRowPosition *This,IUnknown *pRowset,IErrorInfo **ppErrorInfoRem);
   5540   HRESULT WINAPI IRowPosition_SetRowPosition_Proxy(IRowPosition *This,HCHAPTER hChapter,HROW hRow,DBPOSITIONFLAGS dwPositionFlags);
   5541   HRESULT WINAPI IRowPosition_SetRowPosition_Stub(IRowPosition *This,HCHAPTER hChapter,HROW hRow,DBPOSITIONFLAGS dwPositionFlags,IErrorInfo **ppErrorInfoRem);
   5542   HRESULT WINAPI IRowPositionChange_OnRowPositionChange_Proxy(IRowPositionChange *This,DBREASON eReason,DBEVENTPHASE ePhase,WINBOOL fCantDeny);
   5543   HRESULT WINAPI IRowPositionChange_OnRowPositionChange_Stub(IRowPositionChange *This,DBREASON eReason,DBEVENTPHASE ePhase,WINBOOL fCantDeny,IErrorInfo **ppErrorInfoRem);
   5544   HRESULT WINAPI IViewRowset_GetSpecification_Proxy(IViewRowset *This,REFIID riid,IUnknown **ppObject);
   5545   HRESULT WINAPI IViewRowset_GetSpecification_Stub(IViewRowset *This,REFIID riid,IUnknown **ppObject,IErrorInfo **ppErrorInfoRem);
   5546   HRESULT WINAPI IViewRowset_OpenViewRowset_Proxy(IViewRowset *This,IUnknown *pUnkOuter,REFIID riid,IUnknown **ppRowset);
   5547   HRESULT WINAPI IViewRowset_OpenViewRowset_Stub(IViewRowset *This,IUnknown *pUnkOuter,REFIID riid,IUnknown **ppRowset,IErrorInfo **ppErrorInfoRem);
   5548   HRESULT WINAPI IViewChapter_GetSpecification_Proxy(IViewChapter *This,REFIID riid,IUnknown **ppRowset);
   5549   HRESULT WINAPI IViewChapter_GetSpecification_Stub(IViewChapter *This,REFIID riid,IUnknown **ppRowset,IErrorInfo **ppErrorInfoRem);
   5550   HRESULT WINAPI IViewChapter_OpenViewChapter_Proxy(IViewChapter *This,HCHAPTER hSource,HCHAPTER *phViewChapter);
   5551   HRESULT WINAPI IViewChapter_OpenViewChapter_Stub(IViewChapter *This,HCHAPTER hSource,HCHAPTER *phViewChapter,IErrorInfo **ppErrorInfoRem);
   5552   HRESULT WINAPI IViewSort_GetSortOrder_Proxy(IViewSort *This,DBORDINAL *pcValues,DBORDINAL *prgColumns[],DBSORT *prgOrders[]);
   5553   HRESULT WINAPI IViewSort_GetSortOrder_Stub(IViewSort *This,DBORDINAL *pcValues,DBORDINAL **prgColumns,DBSORT **prgOrders,IErrorInfo **ppErrorInfoRem);
   5554   HRESULT WINAPI IViewSort_SetSortOrder_Proxy(IViewSort *This,DBORDINAL cValues,const DBORDINAL rgColumns[],const DBSORT rgOrders[]);
   5555   HRESULT WINAPI IViewSort_SetSortOrder_Stub(IViewSort *This,DBORDINAL cValues,const DBORDINAL *rgColumns,const DBSORT *rgOrders,IErrorInfo **ppErrorInfoRem);
   5556   HRESULT WINAPI IViewFilter_GetFilterBindings_Proxy(IViewFilter *This,DBCOUNTITEM *pcBindings,DBBINDING **prgBindings);
   5557   HRESULT WINAPI IViewFilter_GetFilterBindings_Stub(IViewFilter *This,DBCOUNTITEM *pcBindings,DBBINDING **prgBindings,IErrorInfo **ppErrorInfoRem);
   5558   HRESULT WINAPI IRowsetView_CreateView_Proxy(IRowsetView *This,IUnknown *pUnkOuter,REFIID riid,IUnknown **ppView);
   5559   HRESULT WINAPI IRowsetView_CreateView_Stub(IRowsetView *This,IUnknown *pUnkOuter,REFIID riid,IUnknown **ppView,IErrorInfo **ppErrorInfoRem);
   5560   HRESULT WINAPI IRowsetView_GetView_Proxy(IRowsetView *This,HCHAPTER hChapter,REFIID riid,HCHAPTER *phChapterSource,IUnknown **ppView);
   5561   HRESULT WINAPI IRowsetView_GetView_Stub(IRowsetView *This,HCHAPTER hChapter,REFIID riid,HCHAPTER *phChapterSource,IUnknown **ppView,IErrorInfo **ppErrorInfoRem);
   5562   HRESULT WINAPI IRowsetIdentity_IsSameRow_Proxy(IRowsetIdentity *This,HROW hThisRow,HROW hThatRow);
   5563   HRESULT WINAPI IRowsetIdentity_IsSameRow_Stub(IRowsetIdentity *This,HROW hThisRow,HROW hThatRow,IErrorInfo **ppErrorInfoRem);
   5564   HRESULT WINAPI IRowsetNotify_OnFieldChange_Proxy(IRowsetNotify *This,IRowset *pRowset,HROW hRow,DBORDINAL cColumns,DBORDINAL rgColumns[],DBREASON eReason,DBEVENTPHASE ePhase,WINBOOL fCantDeny);
   5565   HRESULT WINAPI IRowsetNotify_OnFieldChange_Stub(IRowsetNotify *This,IRowset *pRowset,HROW hRow,DBORDINAL cColumns,DBORDINAL *rgColumns,DBREASON eReason,DBEVENTPHASE ePhase,WINBOOL fCantDeny);
   5566   HRESULT WINAPI IRowsetNotify_OnRowChange_Proxy(IRowsetNotify *This,IRowset *pRowset,DBCOUNTITEM cRows,const HROW rghRows[],DBREASON eReason,DBEVENTPHASE ePhase,WINBOOL fCantDeny);
   5567   HRESULT WINAPI IRowsetNotify_OnRowChange_Stub(IRowsetNotify *This,IRowset *pRowset,DBCOUNTITEM cRows,const HROW *rghRows,DBREASON eReason,DBEVENTPHASE ePhase,WINBOOL fCantDeny);
   5568   HRESULT WINAPI IRowsetNotify_OnRowsetChange_Proxy(IRowsetNotify *This,IRowset *pRowset,DBREASON eReason,DBEVENTPHASE ePhase,WINBOOL fCantDeny);
   5569   HRESULT WINAPI IRowsetNotify_OnRowsetChange_Stub(IRowsetNotify *This,IRowset *pRowset,DBREASON eReason,DBEVENTPHASE ePhase,WINBOOL fCantDeny);
   5570   HRESULT WINAPI ICommand_Cancel_Proxy(ICommand *This);
   5571   HRESULT WINAPI ICommand_Cancel_Stub(ICommand *This,IErrorInfo **ppErrorInfoRem);
   5572   HRESULT WINAPI ICommand_Execute_Proxy(ICommand *This,IUnknown *pUnkOuter,REFIID riid,DBPARAMS *pParams,DBROWCOUNT *pcRowsAffected,IUnknown **ppRowset);
   5573   HRESULT WINAPI ICommand_Execute_Stub(ICommand *This,IUnknown *pUnkOuter,REFIID riid,HACCESSOR hAccessor,DB_UPARAMS cParamSets,GUID *pGuid,ULONG ulGuidOffset,RMTPACK *pInputParams,RMTPACK *pOutputParams,DBCOUNTITEM cBindings,DBBINDING *rgBindings,DBSTATUS *rgStatus,DBROWCOUNT *pcRowsAffected,IUnknown **ppRowset);
   5574   HRESULT WINAPI ICommand_GetDBSession_Proxy(ICommand *This,REFIID riid,IUnknown **ppSession);
   5575   HRESULT WINAPI ICommand_GetDBSession_Stub(ICommand *This,REFIID riid,IUnknown **ppSession,IErrorInfo **ppErrorInfoRem);
   5576   HRESULT WINAPI IMultipleResults_GetResult_Proxy(IMultipleResults *This,IUnknown *pUnkOuter,DBRESULTFLAG lResultFlag,REFIID riid,DBROWCOUNT *pcRowsAffected,IUnknown **ppRowset);
   5577   HRESULT WINAPI IMultipleResults_GetResult_Stub(IMultipleResults *This,IUnknown *pUnkOuter,DBRESULTFLAG lResultFlag,REFIID riid,DBROWCOUNT *pcRowsAffected,IUnknown **ppRowset,IErrorInfo **ppErrorInfoRem);
   5578   HRESULT WINAPI IConvertType_CanConvert_Proxy(IConvertType *This,DBTYPE wFromType,DBTYPE wToType,DBCONVERTFLAGS dwConvertFlags);
   5579   HRESULT WINAPI IConvertType_CanConvert_Stub(IConvertType *This,DBTYPE wFromType,DBTYPE wToType,DBCONVERTFLAGS dwConvertFlags,IErrorInfo **ppErrorInfoRem);
   5580   HRESULT WINAPI ICommandPrepare_Prepare_Proxy(ICommandPrepare *This,ULONG cExpectedRuns);
   5581   HRESULT WINAPI ICommandPrepare_Prepare_Stub(ICommandPrepare *This,ULONG cExpectedRuns,IErrorInfo **ppErrorInfoRem);
   5582   HRESULT WINAPI ICommandPrepare_Unprepare_Proxy(ICommandPrepare *This);
   5583   HRESULT WINAPI ICommandPrepare_Unprepare_Stub(ICommandPrepare *This,IErrorInfo **ppErrorInfoRem);
   5584   HRESULT WINAPI ICommandProperties_GetProperties_Proxy(ICommandProperties *This,const ULONG cPropertyIDSets,const DBPROPIDSET rgPropertyIDSets[],ULONG *pcPropertySets,DBPROPSET **prgPropertySets);
   5585   HRESULT WINAPI ICommandProperties_GetProperties_Stub(ICommandProperties *This,const ULONG cPropertyIDSets,const DBPROPIDSET *rgPropertyIDSets,ULONG *pcPropertySets,DBPROPSET **prgPropertySets,IErrorInfo **ppErrorInfoRem);
   5586   HRESULT WINAPI ICommandProperties_SetProperties_Proxy(ICommandProperties *This,ULONG cPropertySets,DBPROPSET rgPropertySets[]);
   5587   HRESULT WINAPI ICommandProperties_SetProperties_Stub(ICommandProperties *This,ULONG cPropertySets,DBPROPSET *rgPropertySets,ULONG cTotalProps,DBPROPSTATUS *rgPropStatus,IErrorInfo **ppErrorInfoRem);
   5588   HRESULT WINAPI ICommandText_GetCommandText_Proxy(ICommandText *This,GUID *pguidDialect,LPOLESTR *ppwszCommand);
   5589   HRESULT WINAPI ICommandText_GetCommandText_Stub(ICommandText *This,GUID *pguidDialect,LPOLESTR *ppwszCommand,IErrorInfo **ppErrorInfoRem);
   5590   HRESULT WINAPI ICommandText_SetCommandText_Proxy(ICommandText *This,REFGUID rguidDialect,LPCOLESTR pwszCommand);
   5591   HRESULT WINAPI ICommandText_SetCommandText_Stub(ICommandText *This,REFGUID rguidDialect,LPCOLESTR pwszCommand,IErrorInfo **ppErrorInfoRem);
   5592   HRESULT WINAPI ICommandWithParameters_GetParameterInfo_Proxy(ICommandWithParameters *This,DB_UPARAMS *pcParams,DBPARAMINFO **prgParamInfo,OLECHAR **ppNamesBuffer);
   5593   HRESULT WINAPI ICommandWithParameters_GetParameterInfo_Stub(ICommandWithParameters *This,DB_UPARAMS *pcParams,DBPARAMINFO **prgParamInfo,DBBYTEOFFSET **prgNameOffsets,DBLENGTH *pcbNamesBuffer,OLECHAR **ppNamesBuffer,IErrorInfo **ppErrorInfoRem);
   5594   HRESULT WINAPI ICommandWithParameters_MapParameterNames_Proxy(ICommandWithParameters *This,DB_UPARAMS cParamNames,const OLECHAR *rgParamNames[],DB_LPARAMS rgParamOrdinals[]);
   5595   HRESULT WINAPI ICommandWithParameters_MapParameterNames_Stub(ICommandWithParameters *This,DB_UPARAMS cParamNames,LPCOLESTR *rgParamNames,DB_LPARAMS *rgParamOrdinals,IErrorInfo **ppErrorInfoRem);
   5596   HRESULT WINAPI ICommandWithParameters_SetParameterInfo_Proxy(ICommandWithParameters *This,DB_UPARAMS cParams,const DB_UPARAMS rgParamOrdinals[],const DBPARAMBINDINFO rgParamBindInfo[]);
   5597   HRESULT WINAPI ICommandWithParameters_SetParameterInfo_Stub(ICommandWithParameters *This,DB_UPARAMS cParams,const DB_UPARAMS *rgParamOrdinals,const DBPARAMBINDINFO *rgParamBindInfo,IErrorInfo **ppErrorInfoRem);
   5598   HRESULT WINAPI IColumnsRowset_GetAvailableColumns_Proxy(IColumnsRowset *This,DBORDINAL *pcOptColumns,DBID **prgOptColumns);
   5599   HRESULT WINAPI IColumnsRowset_GetAvailableColumns_Stub(IColumnsRowset *This,DBORDINAL *pcOptColumns,DBID **prgOptColumns,IErrorInfo **ppErrorInfoRem);
   5600   HRESULT WINAPI IColumnsRowset_GetColumnsRowset_Proxy(IColumnsRowset *This,IUnknown *pUnkOuter,DBORDINAL cOptColumns,const DBID rgOptColumns[],REFIID riid,ULONG cPropertySets,DBPROPSET rgPropertySets[],IUnknown **ppColRowset);
   5601   HRESULT WINAPI IColumnsRowset_GetColumnsRowset_Stub(IColumnsRowset *This,IUnknown *pUnkOuter,DBORDINAL cOptColumns,const DBID *rgOptColumns,REFIID riid,ULONG cPropertySets,DBPROPSET *rgPropertySets,IUnknown **ppColRowset,ULONG cTotalProps,DBPROPSTATUS *rgPropStatus,IErrorInfo **ppErrorInfoRem);
   5602   HRESULT WINAPI IColumnsInfo_GetColumnInfo_Proxy(IColumnsInfo *This,DBORDINAL *pcColumns,DBCOLUMNINFO **prgInfo,OLECHAR **ppStringsBuffer);
   5603   HRESULT WINAPI IColumnsInfo_GetColumnInfo_Stub(IColumnsInfo *This,DBORDINAL *pcColumns,DBCOLUMNINFO **prgInfo,DBBYTEOFFSET **prgNameOffsets,DBBYTEOFFSET **prgcolumnidOffsets,DBLENGTH *pcbStringsBuffer,OLECHAR **ppStringsBuffer,IErrorInfo **ppErrorInfoRem);
   5604   HRESULT WINAPI IColumnsInfo_MapColumnIDs_Proxy(IColumnsInfo *This,DBORDINAL cColumnIDs,const DBID rgColumnIDs[],DBORDINAL rgColumns[]);
   5605   HRESULT WINAPI IColumnsInfo_MapColumnIDs_Stub(IColumnsInfo *This,DBORDINAL cColumnIDs,const DBID *rgColumnIDs,DBORDINAL *rgColumns,IErrorInfo **ppErrorInfoRem);
   5606   HRESULT WINAPI IDBCreateCommand_CreateCommand_Proxy(IDBCreateCommand *This,IUnknown *pUnkOuter,REFIID riid,IUnknown **ppCommand);
   5607   HRESULT WINAPI IDBCreateCommand_CreateCommand_Stub(IDBCreateCommand *This,IUnknown *pUnkOuter,REFIID riid,IUnknown **ppCommand,IErrorInfo **ppErrorInfoRem);
   5608   HRESULT WINAPI IDBCreateSession_CreateSession_Proxy(IDBCreateSession *This,IUnknown *pUnkOuter,REFIID riid,IUnknown **ppDBSession);
   5609   HRESULT WINAPI IDBCreateSession_CreateSession_Stub(IDBCreateSession *This,IUnknown *pUnkOuter,REFIID riid,IUnknown **ppDBSession,IErrorInfo **ppErrorInfoRem);
   5610   HRESULT WINAPI ISourcesRowset_GetSourcesRowset_Proxy(ISourcesRowset *This,IUnknown *pUnkOuter,REFIID riid,ULONG cPropertySets,DBPROPSET rgProperties[],IUnknown **ppSourcesRowset);
   5611   HRESULT WINAPI ISourcesRowset_GetSourcesRowset_Stub(ISourcesRowset *This,IUnknown *pUnkOuter,REFIID riid,ULONG cPropertySets,DBPROPSET *rgProperties,IUnknown **ppSourcesRowset,ULONG cTotalProps,DBPROPSTATUS *rgPropStatus,IErrorInfo **ppErrorInfoRem);
   5612   HRESULT WINAPI IDBProperties_GetProperties_Proxy(IDBProperties *This,ULONG cPropertyIDSets,const DBPROPIDSET rgPropertyIDSets[],ULONG *pcPropertySets,DBPROPSET **prgPropertySets);
   5613   HRESULT WINAPI IDBProperties_GetProperties_Stub(IDBProperties *This,ULONG cPropertyIDSets,const DBPROPIDSET *rgPropertyIDSets,ULONG *pcPropertySets,DBPROPSET **prgPropertySets,IErrorInfo **ppErrorInfoRem);
   5614   HRESULT WINAPI IDBProperties_GetPropertyInfo_Proxy(IDBProperties *This,ULONG cPropertyIDSets,const DBPROPIDSET rgPropertyIDSets[],ULONG *pcPropertyInfoSets,DBPROPINFOSET **prgPropertyInfoSets,OLECHAR **ppDescBuffer);
   5615   HRESULT WINAPI IDBProperties_GetPropertyInfo_Stub(IDBProperties *This,ULONG cPropertyIDSets,const DBPROPIDSET *rgPropertyIDSets,ULONG *pcPropertyInfoSets,DBPROPINFOSET **prgPropertyInfoSets,ULONG *pcOffsets,DBBYTEOFFSET **prgDescOffsets,ULONG *pcbDescBuffer,OLECHAR **ppDescBuffer,IErrorInfo **ppErrorInfoRem);
   5616   HRESULT WINAPI IDBProperties_SetProperties_Proxy(IDBProperties *This,ULONG cPropertySets,DBPROPSET rgPropertySets[]);
   5617   HRESULT WINAPI IDBProperties_SetProperties_Stub(IDBProperties *This,ULONG cPropertySets,DBPROPSET *rgPropertySets,ULONG cTotalProps,DBPROPSTATUS *rgPropStatus,IErrorInfo **ppErrorInfoRem);
   5618   HRESULT WINAPI IDBInitialize_Initialize_Proxy(IDBInitialize *This);
   5619   HRESULT WINAPI IDBInitialize_Initialize_Stub(IDBInitialize *This,IErrorInfo **ppErrorInfoRem);
   5620   HRESULT WINAPI IDBInitialize_Uninitialize_Proxy(IDBInitialize *This);
   5621   HRESULT WINAPI IDBInitialize_Uninitialize_Stub(IDBInitialize *This,IErrorInfo **ppErrorInfoRem);
   5622   HRESULT WINAPI IDBInfo_GetKeywords_Proxy(IDBInfo *This,LPOLESTR *ppwszKeywords);
   5623   HRESULT WINAPI IDBInfo_GetKeywords_Stub(IDBInfo *This,LPOLESTR *ppwszKeywords,IErrorInfo **ppErrorInfoRem);
   5624   HRESULT WINAPI IDBInfo_GetLiteralInfo_Proxy(IDBInfo *This,ULONG cLiterals,const DBLITERAL rgLiterals[],ULONG *pcLiteralInfo,DBLITERALINFO **prgLiteralInfo,OLECHAR **ppCharBuffer);
   5625   HRESULT WINAPI IDBInfo_GetLiteralInfo_Stub(IDBInfo *This,ULONG cLiterals,const DBLITERAL *rgLiterals,ULONG *pcLiteralInfo,DBLITERALINFO **prgLiteralInfo,DB_UPARAMS **prgLVOffsets,DB_UPARAMS **prgICOffsets,DB_UPARAMS **prgISCOffsets,ULONG *pcbCharBuffer,OLECHAR **ppCharBuffer,IErrorInfo **ppErrorInfoRem);
   5626   HRESULT WINAPI IDBDataSourceAdmin_CreateDataSource_Proxy(IDBDataSourceAdmin *This,ULONG cPropertySets,DBPROPSET rgPropertySets[],IUnknown *pUnkOuter,REFIID riid,IUnknown **ppDBSession);
   5627   HRESULT WINAPI IDBDataSourceAdmin_CreateDataSource_Stub(IDBDataSourceAdmin *This,ULONG cPropertySets,DBPROPSET *rgPropertySets,IUnknown *pUnkOuter,REFIID riid,IUnknown **ppDBSession,ULONG cTotalProps,DBPROPSTATUS *rgPropStatus,IErrorInfo **ppErrorInfoRem);
   5628   HRESULT WINAPI IDBDataSourceAdmin_DestroyDataSource_Proxy(IDBDataSourceAdmin *This);
   5629   HRESULT WINAPI IDBDataSourceAdmin_DestroyDataSource_Stub(IDBDataSourceAdmin *This,IErrorInfo **ppErrorInfoRem);
   5630   HRESULT WINAPI IDBDataSourceAdmin_GetCreationProperties_Proxy(IDBDataSourceAdmin *This,ULONG cPropertyIDSets,const DBPROPIDSET rgPropertyIDSets[],ULONG *pcPropertyInfoSets,DBPROPINFOSET **prgPropertyInfoSets,OLECHAR **ppDescBuffer);
   5631   HRESULT WINAPI IDBDataSourceAdmin_GetCreationProperties_Stub(IDBDataSourceAdmin *This,ULONG cPropertyIDSets,const DBPROPIDSET *rgPropertyIDSets,ULONG *pcPropertyInfoSets,DBPROPINFOSET **prgPropertyInfoSets,DBCOUNTITEM *pcOffsets,DBBYTEOFFSET **prgDescOffsets,ULONG *pcbDescBuffer,OLECHAR **ppDescBuffer,IErrorInfo **ppErrorInfoRem);
   5632   HRESULT WINAPI IDBDataSourceAdmin_ModifyDataSource_Proxy(IDBDataSourceAdmin *This,ULONG cPropertySets,DBPROPSET rgPropertySets[]);
   5633   HRESULT WINAPI IDBDataSourceAdmin_ModifyDataSource_Stub(IDBDataSourceAdmin *This,ULONG cPropertySets,DBPROPSET *rgPropertySets,IErrorInfo **ppErrorInfoRem);
   5634   HRESULT WINAPI IDBAsynchNotify_OnLowResource_Proxy(IDBAsynchNotify *This,DB_DWRESERVE dwReserved);
   5635   HRESULT WINAPI IDBAsynchNotify_OnLowResource_Stub(IDBAsynchNotify *This,DB_DWRESERVE dwReserved);
   5636   HRESULT WINAPI IDBAsynchNotify_OnProgress_Proxy(IDBAsynchNotify *This,HCHAPTER hChapter,DBASYNCHOP eOperation,DBCOUNTITEM ulProgress,DBCOUNTITEM ulProgressMax,DBASYNCHPHASE eAsynchPhase,LPOLESTR pwszStatusText);
   5637   HRESULT WINAPI IDBAsynchNotify_OnProgress_Stub(IDBAsynchNotify *This,HCHAPTER hChapter,DBASYNCHOP eOperation,DBCOUNTITEM ulProgress,DBCOUNTITEM ulProgressMax,DBASYNCHPHASE eAsynchPhase,LPOLESTR pwszStatusText);
   5638   HRESULT WINAPI IDBAsynchNotify_OnStop_Proxy(IDBAsynchNotify *This,HCHAPTER hChapter,DBASYNCHOP eOperation,HRESULT hrStatus,LPOLESTR pwszStatusText);
   5639   HRESULT WINAPI IDBAsynchNotify_OnStop_Stub(IDBAsynchNotify *This,HCHAPTER hChapter,DBASYNCHOP eOperation,HRESULT hrStatus,LPOLESTR pwszStatusText);
   5640   HRESULT WINAPI IDBAsynchStatus_Abort_Proxy(IDBAsynchStatus *This,HCHAPTER hChapter,DBASYNCHOP eOperation);
   5641   HRESULT WINAPI IDBAsynchStatus_Abort_Stub(IDBAsynchStatus *This,HCHAPTER hChapter,DBASYNCHOP eOperation,IErrorInfo **ppErrorInfoRem);
   5642   HRESULT WINAPI IDBAsynchStatus_GetStatus_Proxy(IDBAsynchStatus *This,HCHAPTER hChapter,DBASYNCHOP eOperation,DBCOUNTITEM *pulProgress,DBCOUNTITEM *pulProgressMax,DBASYNCHPHASE *peAsynchPhase,LPOLESTR *ppwszStatusText);
   5643   HRESULT WINAPI IDBAsynchStatus_GetStatus_Stub(IDBAsynchStatus *This,HCHAPTER hChapter,DBASYNCHOP eOperation,DBCOUNTITEM *pulProgress,DBCOUNTITEM *pulProgressMax,DBASYNCHPHASE *peAsynchPhase,LPOLESTR *ppwszStatusText,IErrorInfo **ppErrorInfoRem);
   5644   HRESULT WINAPI ISessionProperties_GetProperties_Proxy(ISessionProperties *This,ULONG cPropertyIDSets,const DBPROPIDSET rgPropertyIDSets[],ULONG *pcPropertySets,DBPROPSET **prgPropertySets);
   5645   HRESULT WINAPI ISessionProperties_GetProperties_Stub(ISessionProperties *This,ULONG cPropertyIDSets,const DBPROPIDSET *rgPropertyIDSets,ULONG *pcPropertySets,DBPROPSET **prgPropertySets,IErrorInfo **ppErrorInfoRem);
   5646   HRESULT WINAPI ISessionProperties_SetProperties_Proxy(ISessionProperties *This,ULONG cPropertySets,DBPROPSET rgPropertySets[]);
   5647   HRESULT WINAPI ISessionProperties_SetProperties_Stub(ISessionProperties *This,ULONG cPropertySets,DBPROPSET *rgPropertySets,ULONG cTotalProps,DBPROPSTATUS *rgPropStatus,IErrorInfo **ppErrorInfoRem);
   5648   HRESULT WINAPI IIndexDefinition_CreateIndex_Proxy(IIndexDefinition *This,DBID *pTableID,DBID *pIndexID,DBORDINAL cIndexColumnDescs,const DBINDEXCOLUMNDESC rgIndexColumnDescs[],ULONG cPropertySets,DBPROPSET rgPropertySets[],DBID **ppIndexID);
   5649   HRESULT WINAPI IIndexDefinition_CreateIndex_Stub(IIndexDefinition *This,DBID *pTableID,DBID *pIndexID,DBORDINAL cIndexColumnDescs,const DBINDEXCOLUMNDESC *rgIndexColumnDescs,ULONG cPropertySets,DBPROPSET *rgPropertySets,DBID **ppIndexID,ULONG cTotalProps,DBPROPSTATUS *rgPropStatus,IErrorInfo **ppErrorInfoRem);
   5650   HRESULT WINAPI IIndexDefinition_DropIndex_Proxy(IIndexDefinition *This,DBID *pTableID,DBID *pIndexID);
   5651   HRESULT WINAPI IIndexDefinition_DropIndex_Stub(IIndexDefinition *This,DBID *pTableID,DBID *pIndexID,IErrorInfo **ppErrorInfoRem);
   5652   HRESULT WINAPI ITableDefinition_CreateTable_Proxy(ITableDefinition *This,IUnknown *pUnkOuter,DBID *pTableID,DBORDINAL cColumnDescs,const DBCOLUMNDESC rgColumnDescs[],REFIID riid,ULONG cPropertySets,DBPROPSET rgPropertySets[],DBID **ppTableID,IUnknown **ppRowset);
   5653   HRESULT WINAPI ITableDefinition_CreateTable_Stub(ITableDefinition *This,IUnknown *pUnkOuter,DBID *pTableID,DBORDINAL cColumnDescs,const DBCOLUMNDESC *rgColumnDescs,REFIID riid,ULONG cPropertySets,DBPROPSET *rgPropertySets,DBID **ppTableID,IUnknown **ppRowset,ULONG cTotalProps,DBPROPSTATUS *rgPropStatus,WINBOOL *pfTableCreated,IErrorInfo **ppErrorInfoRem);
   5654   HRESULT WINAPI ITableDefinition_DropTable_Proxy(ITableDefinition *This,DBID *pTableID);
   5655   HRESULT WINAPI ITableDefinition_DropTable_Stub(ITableDefinition *This,DBID *pTableID,IErrorInfo **ppErrorInfoRem);
   5656   HRESULT WINAPI ITableDefinition_AddColumn_Proxy(ITableDefinition *This,DBID *pTableID,DBCOLUMNDESC *pColumnDesc,DBID **ppColumnID);
   5657   HRESULT WINAPI ITableDefinition_AddColumn_Stub(ITableDefinition *This,DBID *pTableID,DBCOLUMNDESC *pColumnDesc,DBID **ppColumnID,ULONG cTotalProps,DBPROPSTATUS *rgPropStatus,IErrorInfo **ppErrorInfoRem);
   5658   HRESULT WINAPI ITableDefinition_DropColumn_Proxy(ITableDefinition *This,DBID *pTableID,DBID *pColumnID);
   5659   HRESULT WINAPI ITableDefinition_DropColumn_Stub(ITableDefinition *This,DBID *pTableID,DBID *pColumnID,IErrorInfo **ppErrorInfoRem);
   5660   HRESULT WINAPI IOpenRowset_OpenRowset_Proxy(IOpenRowset *This,IUnknown *pUnkOuter,DBID *pTableID,DBID *pIndexID,REFIID riid,ULONG cPropertySets,DBPROPSET rgPropertySets[],IUnknown **ppRowset);
   5661   HRESULT WINAPI IOpenRowset_OpenRowset_Stub(IOpenRowset *This,IUnknown *pUnkOuter,DBID *pTableID,DBID *pIndexID,REFIID riid,ULONG cPropertySets,DBPROPSET *rgPropertySets,IUnknown **ppRowset,ULONG cTotalProps,DBPROPSTATUS *rgPropStatus,IErrorInfo **ppErrorInfoRem);
   5662   HRESULT WINAPI IDBSchemaRowset_GetRowset_Proxy(IDBSchemaRowset *This,IUnknown *pUnkOuter,REFGUID rguidSchema,ULONG cRestrictions,const VARIANT rgRestrictions[],REFIID riid,ULONG cPropertySets,DBPROPSET rgPropertySets[],IUnknown **ppRowset);
   5663   HRESULT WINAPI IDBSchemaRowset_GetRowset_Stub(IDBSchemaRowset *This,IUnknown *pUnkOuter,REFGUID rguidSchema,ULONG cRestrictions,const VARIANT *rgRestrictions,REFIID riid,ULONG cPropertySets,DBPROPSET *rgPropertySets,IUnknown **ppRowset,ULONG cTotalProps,DBPROPSTATUS *rgPropStatus,IErrorInfo **ppErrorInfoRem);
   5664   HRESULT WINAPI IDBSchemaRowset_GetSchemas_Proxy(IDBSchemaRowset *This,ULONG *pcSchemas,GUID **prgSchemas,ULONG **prgRestrictionSupport);
   5665   HRESULT WINAPI IDBSchemaRowset_GetSchemas_Stub(IDBSchemaRowset *This,ULONG *pcSchemas,GUID **prgSchemas,ULONG **prgRestrictionSupport,IErrorInfo **ppErrorInfoRem);
   5666   HRESULT WINAPI IErrorRecords_AddErrorRecord_Proxy(IErrorRecords *This,ERRORINFO *pErrorInfo,DWORD dwLookupID,DISPPARAMS *pdispparams,IUnknown *punkCustomError,DWORD dwDynamicErrorID);
   5667   HRESULT WINAPI IErrorRecords_AddErrorRecord_Stub(IErrorRecords *This,ERRORINFO *pErrorInfo,DWORD dwLookupID,DISPPARAMS *pdispparams,IUnknown *punkCustomError,DWORD dwDynamicErrorID,IErrorInfo **ppErrorInfoRem);
   5668   HRESULT WINAPI IErrorRecords_GetBasicErrorInfo_Proxy(IErrorRecords *This,ULONG ulRecordNum,ERRORINFO *pErrorInfo);
   5669   HRESULT WINAPI IErrorRecords_GetBasicErrorInfo_Stub(IErrorRecords *This,ULONG ulRecordNum,ERRORINFO *pErrorInfo,IErrorInfo **ppErrorInfoRem);
   5670   HRESULT WINAPI IErrorRecords_GetCustomErrorObject_Proxy(IErrorRecords *This,ULONG ulRecordNum,REFIID riid,IUnknown **ppObject);
   5671   HRESULT WINAPI IErrorRecords_GetCustomErrorObject_Stub(IErrorRecords *This,ULONG ulRecordNum,REFIID riid,IUnknown **ppObject,IErrorInfo **ppErrorInfoRem);
   5672   HRESULT WINAPI IErrorRecords_GetErrorInfo_Proxy(IErrorRecords *This,ULONG ulRecordNum,LCID lcid,IErrorInfo **ppErrorInfo);
   5673   HRESULT WINAPI IErrorRecords_GetErrorInfo_Stub(IErrorRecords *This,ULONG ulRecordNum,LCID lcid,IErrorInfo **ppErrorInfo,IErrorInfo **ppErrorInfoRem);
   5674   HRESULT WINAPI IErrorRecords_GetErrorParameters_Proxy(IErrorRecords *This,ULONG ulRecordNum,DISPPARAMS *pdispparams);
   5675   HRESULT WINAPI IErrorRecords_GetErrorParameters_Stub(IErrorRecords *This,ULONG ulRecordNum,DISPPARAMS *pdispparams,IErrorInfo **ppErrorInfoRem);
   5676   HRESULT WINAPI IErrorRecords_GetRecordCount_Proxy(IErrorRecords *This,ULONG *pcRecords);
   5677   HRESULT WINAPI IErrorRecords_GetRecordCount_Stub(IErrorRecords *This,ULONG *pcRecords,IErrorInfo **ppErrorInfoRem);
   5678   HRESULT WINAPI IErrorLookup_GetErrorDescription_Proxy(IErrorLookup *This,HRESULT hrError,DWORD dwLookupID,DISPPARAMS *pdispparams,LCID lcid,BSTR *pbstrSource,BSTR *pbstrDescription);
   5679   HRESULT WINAPI IErrorLookup_GetErrorDescription_Stub(IErrorLookup *This,HRESULT hrError,DWORD dwLookupID,DISPPARAMS *pdispparams,LCID lcid,BSTR *pbstrSource,BSTR *pbstrDescription,IErrorInfo **ppErrorInfoRem);
   5680   HRESULT WINAPI IErrorLookup_GetHelpInfo_Proxy(IErrorLookup *This,HRESULT hrError,DWORD dwLookupID,LCID lcid,BSTR *pbstrHelpFile,DWORD *pdwHelpContext);
   5681   HRESULT WINAPI IErrorLookup_GetHelpInfo_Stub(IErrorLookup *This,HRESULT hrError,DWORD dwLookupID,LCID lcid,BSTR *pbstrHelpFile,DWORD *pdwHelpContext,IErrorInfo **ppErrorInfoRem);
   5682   HRESULT WINAPI IErrorLookup_ReleaseErrors_Proxy(IErrorLookup *This,const DWORD dwDynamicErrorID);
   5683   HRESULT WINAPI IErrorLookup_ReleaseErrors_Stub(IErrorLookup *This,const DWORD dwDynamicErrorID,IErrorInfo **ppErrorInfoRem);
   5684   HRESULT WINAPI ISQLErrorInfo_GetSQLInfo_Proxy(ISQLErrorInfo *This,BSTR *pbstrSQLState,LONG *plNativeError);
   5685   HRESULT WINAPI ISQLErrorInfo_GetSQLInfo_Stub(ISQLErrorInfo *This,BSTR *pbstrSQLState,LONG *plNativeError,IErrorInfo **ppErrorInfoRem);
   5686   HRESULT WINAPI IGetDataSource_GetDataSource_Proxy(IGetDataSource *This,REFIID riid,IUnknown **ppDataSource);
   5687   HRESULT WINAPI IGetDataSource_GetDataSource_Stub(IGetDataSource *This,REFIID riid,IUnknown **ppDataSource,IErrorInfo **ppErrorInfoRem);
   5688   HRESULT WINAPI ITransactionLocal_GetOptionsObject_Proxy(ITransactionLocal *This,ITransactionOptions **ppOptions);
   5689   HRESULT WINAPI ITransactionLocal_GetOptionsObject_Stub(ITransactionLocal *This,ITransactionOptions **ppOptions,IErrorInfo **ppErrorInfoRem);
   5690   HRESULT WINAPI ITransactionLocal_StartTransaction_Proxy(ITransactionLocal *This,ISOLEVEL isoLevel,ULONG isoFlags,ITransactionOptions *pOtherOptions,ULONG *pulTransactionLevel);
   5691   HRESULT WINAPI ITransactionLocal_StartTransaction_Stub(ITransactionLocal *This,ISOLEVEL isoLevel,ULONG isoFlags,ITransactionOptions *pOtherOptions,ULONG *pulTransactionLevel,IErrorInfo **ppErrorInfoRem);
   5692   HRESULT WINAPI ITransactionJoin_GetOptionsObject_Proxy(ITransactionJoin *This,ITransactionOptions **ppOptions);
   5693   HRESULT WINAPI ITransactionJoin_GetOptionsObject_Stub(ITransactionJoin *This,ITransactionOptions **ppOptions,IErrorInfo **ppErrorInfoRem);
   5694   HRESULT WINAPI ITransactionJoin_JoinTransaction_Proxy(ITransactionJoin *This,IUnknown *punkTransactionCoord,ISOLEVEL isoLevel,ULONG isoFlags,ITransactionOptions *pOtherOptions);
   5695   HRESULT WINAPI ITransactionJoin_JoinTransaction_Stub(ITransactionJoin *This,IUnknown *punkTransactionCoord,ISOLEVEL isoLevel,ULONG isoFlags,ITransactionOptions *pOtherOptions,IErrorInfo **ppErrorInfoRem);
   5696   HRESULT WINAPI ITransactionObject_GetTransactionObject_Proxy(ITransactionObject *This,ULONG ulTransactionLevel,ITransaction **ppTransactionObject);
   5697   HRESULT WINAPI ITransactionObject_GetTransactionObject_Stub(ITransactionObject *This,ULONG ulTransactionLevel,ITransaction **ppTransactionObject,IErrorInfo **ppErrorInfoRem);
   5698   HRESULT WINAPI IScopedOperations_Copy_Proxy(IScopedOperations *This,DBCOUNTITEM cRows,LPCOLESTR rgpwszSourceURLs[],LPCOLESTR rgpwszDestURLs[],DWORD dwCopyFlags,IAuthenticate *pAuthenticate,DBSTATUS rgdwStatus[],LPOLESTR rgpwszNewURLs[],OLECHAR **ppStringsBuffer);
   5699   HRESULT WINAPI IScopedOperations_Copy_Stub(IScopedOperations *This,DBCOUNTITEM cRows,LPCOLESTR *rgpwszSourceURLs,LPCOLESTR *rgpwszDestURLs,DWORD dwCopyFlags,IAuthenticate *pAuthenticate,DBSTATUS *rgdwStatus,DBBYTEOFFSET **prgulNewURLOffsets,ULONG *pcbStringsBuffer,OLECHAR **ppStringsBuffer);
   5700   HRESULT WINAPI