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 __oledbdep_h__
     23 #define __oledbdep_h__
     24 
     25 #ifndef __IRowsetNextRowset_FWD_DEFINED__
     26 #define __IRowsetNextRowset_FWD_DEFINED__
     27 typedef struct IRowsetNextRowset IRowsetNextRowset;
     28 #endif
     29 
     30 #ifndef __IRowsetNewRowAfter_FWD_DEFINED__
     31 #define __IRowsetNewRowAfter_FWD_DEFINED__
     32 typedef struct IRowsetNewRowAfter IRowsetNewRowAfter;
     33 #endif
     34 
     35 #ifndef __IRowsetWithParameters_FWD_DEFINED__
     36 #define __IRowsetWithParameters_FWD_DEFINED__
     37 typedef struct IRowsetWithParameters IRowsetWithParameters;
     38 #endif
     39 
     40 #ifndef __IRowsetAsynch_FWD_DEFINED__
     41 #define __IRowsetAsynch_FWD_DEFINED__
     42 typedef struct IRowsetAsynch IRowsetAsynch;
     43 #endif
     44 
     45 #ifndef __IRowsetKeys_FWD_DEFINED__
     46 #define __IRowsetKeys_FWD_DEFINED__
     47 typedef struct IRowsetKeys IRowsetKeys;
     48 #endif
     49 
     50 #ifndef __IRowsetWatchAll_FWD_DEFINED__
     51 #define __IRowsetWatchAll_FWD_DEFINED__
     52 typedef struct IRowsetWatchAll IRowsetWatchAll;
     53 #endif
     54 
     55 #ifndef __IRowsetWatchNotify_FWD_DEFINED__
     56 #define __IRowsetWatchNotify_FWD_DEFINED__
     57 typedef struct IRowsetWatchNotify IRowsetWatchNotify;
     58 #endif
     59 
     60 #ifndef __IRowsetWatchRegion_FWD_DEFINED__
     61 #define __IRowsetWatchRegion_FWD_DEFINED__
     62 typedef struct IRowsetWatchRegion IRowsetWatchRegion;
     63 #endif
     64 
     65 #ifndef __IRowsetCopyRows_FWD_DEFINED__
     66 #define __IRowsetCopyRows_FWD_DEFINED__
     67 typedef struct IRowsetCopyRows IRowsetCopyRows;
     68 #endif
     69 
     70 #ifndef __IReadData_FWD_DEFINED__
     71 #define __IReadData_FWD_DEFINED__
     72 typedef struct IReadData IReadData;
     73 #endif
     74 
     75 #ifndef __ICommandCost_FWD_DEFINED__
     76 #define __ICommandCost_FWD_DEFINED__
     77 typedef struct ICommandCost ICommandCost;
     78 #endif
     79 
     80 #ifndef __ICommandValidate_FWD_DEFINED__
     81 #define __ICommandValidate_FWD_DEFINED__
     82 typedef struct ICommandValidate ICommandValidate;
     83 #endif
     84 
     85 #ifndef __ITableRename_FWD_DEFINED__
     86 #define __ITableRename_FWD_DEFINED__
     87 typedef struct ITableRename ITableRename;
     88 #endif
     89 
     90 #ifndef __IDBSchemaCommand_FWD_DEFINED__
     91 #define __IDBSchemaCommand_FWD_DEFINED__
     92 typedef struct IDBSchemaCommand IDBSchemaCommand;
     93 #endif
     94 
     95 #ifndef __IProvideMoniker_FWD_DEFINED__
     96 #define __IProvideMoniker_FWD_DEFINED__
     97 typedef struct IProvideMoniker IProvideMoniker;
     98 #endif
     99 
    100 #include "oledb.h"
    101 
    102 #ifdef __cplusplus
    103 extern "C" {
    104 #endif
    105 
    106 #ifndef __MIDL_user_allocate_free_DEFINED__
    107 #define __MIDL_user_allocate_free_DEFINED__
    108   void *__RPC_API MIDL_user_allocate(size_t);
    109   void __RPC_API MIDL_user_free(void *);
    110 #endif
    111 
    112 #ifdef _WIN64
    113 #include <pshpack8.h>
    114 #else
    115 #include <pshpack2.h>
    116 #endif
    117 
    118   extern RPC_IF_HANDLE __MIDL_itf_oledbdep_0000_v0_0_c_ifspec;
    119   extern RPC_IF_HANDLE __MIDL_itf_oledbdep_0000_v0_0_s_ifspec;
    120 
    121 #ifndef __DBStructureDefinitionsDep_INTERFACE_DEFINED__
    122 #define __DBStructureDefinitionsDep_INTERFACE_DEFINED__
    123 
    124 #undef OLEDBDECLSPEC
    125 #define OLEDBDECLSPEC __declspec(selectany)
    126 
    127 #ifdef DBINITCONSTANTS
    128   extern const OLEDBDECLSPEC GUID DB_PROPERTY_CHECK_OPTION = {0xc8b5220b,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
    129   extern const OLEDBDECLSPEC GUID DB_PROPERTY_CONSTRAINT_CHECK_DEFERRED = {0xc8b521f0,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
    130   extern const OLEDBDECLSPEC GUID DB_PROPERTY_DROP_CASCADE = {0xc8b521f3,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
    131   extern const OLEDBDECLSPEC GUID DB_PROPERTY_UNIQUE = {0xc8b521f5,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
    132   extern const OLEDBDECLSPEC GUID DB_PROPERTY_ON_COMMIT_PRESERVE_ROWS = {0xc8b52230,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
    133   extern const OLEDBDECLSPEC GUID DB_PROPERTY_PRIMARY = {0xc8b521fc,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
    134   extern const OLEDBDECLSPEC GUID DB_PROPERTY_CLUSTERED = {0xc8b521ff,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
    135   extern const OLEDBDECLSPEC GUID DB_PROPERTY_NONCLUSTERED = {0xc8b52200,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
    136   extern const OLEDBDECLSPEC GUID DB_PROPERTY_BTREE = {0xc8b52201,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
    137   extern const OLEDBDECLSPEC GUID DB_PROPERTY_HASH = {0xc8b52202,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
    138   extern const OLEDBDECLSPEC GUID DB_PROPERTY_FILLFACTOR = {0xc8b52203,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
    139   extern const OLEDBDECLSPEC GUID DB_PROPERTY_INITIALSIZE = {0xc8b52204,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
    140   extern const OLEDBDECLSPEC GUID DB_PROPERTY_DISALLOWNULL = {0xc8b52205,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
    141   extern const OLEDBDECLSPEC GUID DB_PROPERTY_IGNORENULL = {0xc8b52206,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
    142   extern const OLEDBDECLSPEC GUID DB_PROPERTY_IGNOREANYNULL = {0xc8b52207,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
    143   extern const OLEDBDECLSPEC GUID DB_PROPERTY_SORTBOOKMARKS = {0xc8b52208,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
    144   extern const OLEDBDECLSPEC GUID DB_PROPERTY_AUTOMATICUPDATE = {0xc8b52209,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
    145   extern const OLEDBDECLSPEC GUID DB_PROPERTY_EXPLICITUPDATE = {0xc8b5220a,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
    146 #else
    147   extern const GUID DB_PROPERTY_CHECK_OPTION;
    148   extern const GUID DB_PROPERTY_CONSTRAINT_CHECK_DEFERRED;
    149   extern const GUID DB_PROPERTY_DROP_CASCADE;
    150   extern const GUID DB_PROPERTY_ON_COMMIT_PRESERVE_ROWS;
    151   extern const GUID DB_PROPERTY_UNIQUE;
    152   extern const GUID DB_PROPERTY_PRIMARY;
    153   extern const GUID DB_PROPERTY_CLUSTERED;
    154   extern const GUID DB_PROPERTY_NONCLUSTERED;
    155   extern const GUID DB_PROPERTY_BTREE;
    156   extern const GUID DB_PROPERTY_HASH;
    157   extern const GUID DB_PROPERTY_FILLFACTOR;
    158   extern const GUID DB_PROPERTY_INITIALSIZE;
    159   extern const GUID DB_PROPERTY_DISALLOWNULL;
    160   extern const GUID DB_PROPERTY_IGNORENULL;
    161   extern const GUID DB_PROPERTY_IGNOREANYNULL;
    162   extern const GUID DB_PROPERTY_SORTBOOKMARKS;
    163   extern const GUID DB_PROPERTY_AUTOMATICUPDATE;
    164   extern const GUID DB_PROPERTY_EXPLICITUPDATE;
    165 #endif
    166 
    167   enum DBPROPENUM25_DEPRECATED {
    168     DBPROP_ICommandCost = 0x8d,DBPROP_ICommandTree = 0x8e,DBPROP_ICommandValidate = 0x8f,DBPROP_IDBSchemaCommand = 0x90,
    169     DBPROP_IProvideMoniker = 0x7d,DBPROP_IQuery = 0x92,DBPROP_IReadData = 0x93,DBPROP_IRowsetAsynch = 0x94,DBPROP_IRowsetCopyRows = 0x95,
    170     DBPROP_IRowsetKeys = 0x97,DBPROP_IRowsetNewRowAfter = 0x98,DBPROP_IRowsetNextRowset = 0x99,DBPROP_IRowsetWatchAll = 0x9b,
    171     DBPROP_IRowsetWatchNotify = 0x9c,DBPROP_IRowsetWatchRegion = 0x9d,DBPROP_IRowsetWithParameters = 0x9e
    172   };
    173 
    174   enum DBREASONENUM25 {
    175     DBREASON_ROWSET_ROWSADDED = DBREASON_ROW_ASYNCHINSERT + 1,
    176     DBREASON_ROWSET_POPULATIONCOMPLETE,DBREASON_ROWSET_POPULATIONSTOPPED
    177   };
    178 
    179   extern RPC_IF_HANDLE DBStructureDefinitionsDep_v0_0_c_ifspec;
    180   extern RPC_IF_HANDLE DBStructureDefinitionsDep_v0_0_s_ifspec;
    181 #endif
    182 
    183 #ifndef __IRowsetNextRowset_INTERFACE_DEFINED__
    184 #define __IRowsetNextRowset_INTERFACE_DEFINED__
    185   EXTERN_C const IID IID_IRowsetNextRowset;
    186 #if defined(__cplusplus) && !defined(CINTERFACE)
    187   struct IRowsetNextRowset : public IUnknown {
    188   public:
    189     virtual HRESULT WINAPI GetNextRowset(IUnknown *pUnkOuter,REFIID riid,IUnknown **ppNextRowset) = 0;
    190   };
    191 #else
    192   typedef struct IRowsetNextRowsetVtbl {
    193     BEGIN_INTERFACE
    194       HRESULT (WINAPI *QueryInterface)(IRowsetNextRowset *This,REFIID riid,void **ppvObject);
    195       ULONG (WINAPI *AddRef)(IRowsetNextRowset *This);
    196       ULONG (WINAPI *Release)(IRowsetNextRowset *This);
    197       HRESULT (WINAPI *GetNextRowset)(IRowsetNextRowset *This,IUnknown *pUnkOuter,REFIID riid,IUnknown **ppNextRowset);
    198     END_INTERFACE
    199   } IRowsetNextRowsetVtbl;
    200   struct IRowsetNextRowset {
    201     CONST_VTBL struct IRowsetNextRowsetVtbl *lpVtbl;
    202   };
    203 #ifdef COBJMACROS
    204 #define IRowsetNextRowset_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
    205 #define IRowsetNextRowset_AddRef(This) (This)->lpVtbl->AddRef(This)
    206 #define IRowsetNextRowset_Release(This) (This)->lpVtbl->Release(This)
    207 #define IRowsetNextRowset_GetNextRowset(This,pUnkOuter,riid,ppNextRowset) (This)->lpVtbl->GetNextRowset(This,pUnkOuter,riid,ppNextRowset)
    208 #endif
    209 #endif
    210   HRESULT WINAPI IRowsetNextRowset_GetNextRowset_Proxy(IRowsetNextRowset *This,IUnknown *pUnkOuter,REFIID riid,IUnknown **ppNextRowset);
    211   void __RPC_STUB IRowsetNextRowset_GetNextRowset_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    212 #endif
    213 
    214 #ifndef __IRowsetNewRowAfter_INTERFACE_DEFINED__
    215 #define __IRowsetNewRowAfter_INTERFACE_DEFINED__
    216   EXTERN_C const IID IID_IRowsetNewRowAfter;
    217 #if defined(__cplusplus) && !defined(CINTERFACE)
    218   struct IRowsetNewRowAfter : public IUnknown {
    219   public:
    220     virtual HRESULT WINAPI SetNewDataAfter(HCHAPTER hChapter,ULONG cbbmPrevious,const BYTE *pbmPrevious,HACCESSOR hAccessor,BYTE *pData,HROW *phRow) = 0;
    221   };
    222 #else
    223   typedef struct IRowsetNewRowAfterVtbl {
    224     BEGIN_INTERFACE
    225       HRESULT (WINAPI *QueryInterface)(IRowsetNewRowAfter *This,REFIID riid,void **ppvObject);
    226       ULONG (WINAPI *AddRef)(IRowsetNewRowAfter *This);
    227       ULONG (WINAPI *Release)(IRowsetNewRowAfter *This);
    228       HRESULT (WINAPI *SetNewDataAfter)(IRowsetNewRowAfter *This,HCHAPTER hChapter,ULONG cbbmPrevious,const BYTE *pbmPrevious,HACCESSOR hAccessor,BYTE *pData,HROW *phRow);
    229     END_INTERFACE
    230   } IRowsetNewRowAfterVtbl;
    231   struct IRowsetNewRowAfter {
    232     CONST_VTBL struct IRowsetNewRowAfterVtbl *lpVtbl;
    233   };
    234 #ifdef COBJMACROS
    235 #define IRowsetNewRowAfter_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
    236 #define IRowsetNewRowAfter_AddRef(This) (This)->lpVtbl->AddRef(This)
    237 #define IRowsetNewRowAfter_Release(This) (This)->lpVtbl->Release(This)
    238 #define IRowsetNewRowAfter_SetNewDataAfter(This,hChapter,cbbmPrevious,pbmPrevious,hAccessor,pData,phRow) (This)->lpVtbl->SetNewDataAfter(This,hChapter,cbbmPrevious,pbmPrevious,hAccessor,pData,phRow)
    239 #endif
    240 #endif
    241   HRESULT WINAPI IRowsetNewRowAfter_SetNewDataAfter_Proxy(IRowsetNewRowAfter *This,HCHAPTER hChapter,ULONG cbbmPrevious,const BYTE *pbmPrevious,HACCESSOR hAccessor,BYTE *pData,HROW *phRow);
    242   void __RPC_STUB IRowsetNewRowAfter_SetNewDataAfter_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    243 #endif
    244 
    245 #ifndef __IRowsetWithParameters_INTERFACE_DEFINED__
    246 #define __IRowsetWithParameters_INTERFACE_DEFINED__
    247   EXTERN_C const IID IID_IRowsetWithParameters;
    248 #if defined(__cplusplus) && !defined(CINTERFACE)
    249   struct IRowsetWithParameters : public IUnknown {
    250   public:
    251     virtual HRESULT WINAPI GetParameterInfo(DB_UPARAMS *pcParams,DBPARAMINFO **prgParamInfo,OLECHAR **ppNamesBuffer) = 0;
    252     virtual HRESULT WINAPI Requery(DBPARAMS *pParams,ULONG *pulErrorParam,HCHAPTER *phReserved) = 0;
    253   };
    254 #else
    255   typedef struct IRowsetWithParametersVtbl {
    256     BEGIN_INTERFACE
    257       HRESULT (WINAPI *QueryInterface)(IRowsetWithParameters *This,REFIID riid,void **ppvObject);
    258       ULONG (WINAPI *AddRef)(IRowsetWithParameters *This);
    259       ULONG (WINAPI *Release)(IRowsetWithParameters *This);
    260       HRESULT (WINAPI *GetParameterInfo)(IRowsetWithParameters *This,DB_UPARAMS *pcParams,DBPARAMINFO **prgParamInfo,OLECHAR **ppNamesBuffer);
    261       HRESULT (WINAPI *Requery)(IRowsetWithParameters *This,DBPARAMS *pParams,ULONG *pulErrorParam,HCHAPTER *phReserved);
    262     END_INTERFACE
    263   } IRowsetWithParametersVtbl;
    264   struct IRowsetWithParameters {
    265     CONST_VTBL struct IRowsetWithParametersVtbl *lpVtbl;
    266   };
    267 #ifdef COBJMACROS
    268 #define IRowsetWithParameters_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
    269 #define IRowsetWithParameters_AddRef(This) (This)->lpVtbl->AddRef(This)
    270 #define IRowsetWithParameters_Release(This) (This)->lpVtbl->Release(This)
    271 #define IRowsetWithParameters_GetParameterInfo(This,pcParams,prgParamInfo,ppNamesBuffer) (This)->lpVtbl->GetParameterInfo(This,pcParams,prgParamInfo,ppNamesBuffer)
    272 #define IRowsetWithParameters_Requery(This,pParams,pulErrorParam,phReserved) (This)->lpVtbl->Requery(This,pParams,pulErrorParam,phReserved)
    273 #endif
    274 #endif
    275   HRESULT WINAPI IRowsetWithParameters_GetParameterInfo_Proxy(IRowsetWithParameters *This,DB_UPARAMS *pcParams,DBPARAMINFO **prgParamInfo,OLECHAR **ppNamesBuffer);
    276   void __RPC_STUB IRowsetWithParameters_GetParameterInfo_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    277   HRESULT WINAPI IRowsetWithParameters_Requery_Proxy(IRowsetWithParameters *This,DBPARAMS *pParams,ULONG *pulErrorParam,HCHAPTER *phReserved);
    278   void __RPC_STUB IRowsetWithParameters_Requery_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    279 #endif
    280 
    281 #ifndef __IRowsetAsynch_INTERFACE_DEFINED__
    282 #define __IRowsetAsynch_INTERFACE_DEFINED__
    283   EXTERN_C const IID IID_IRowsetAsynch;
    284 #if defined(__cplusplus) && !defined(CINTERFACE)
    285   struct IRowsetAsynch : public IUnknown {
    286   public:
    287     virtual HRESULT WINAPI RatioFinished(DBCOUNTITEM *pulDenominator,DBCOUNTITEM *pulNumerator,DBCOUNTITEM *pcRows,WINBOOL *pfNewRows) = 0;
    288     virtual HRESULT WINAPI Stop(void) = 0;
    289   };
    290 #else
    291   typedef struct IRowsetAsynchVtbl {
    292     BEGIN_INTERFACE
    293       HRESULT (WINAPI *QueryInterface)(IRowsetAsynch *This,REFIID riid,void **ppvObject);
    294       ULONG (WINAPI *AddRef)(IRowsetAsynch *This);
    295       ULONG (WINAPI *Release)(IRowsetAsynch *This);
    296       HRESULT (WINAPI *RatioFinished)(IRowsetAsynch *This,DBCOUNTITEM *pulDenominator,DBCOUNTITEM *pulNumerator,DBCOUNTITEM *pcRows,WINBOOL *pfNewRows);
    297       HRESULT (WINAPI *Stop)(IRowsetAsynch *This);
    298     END_INTERFACE
    299   } IRowsetAsynchVtbl;
    300   struct IRowsetAsynch {
    301     CONST_VTBL struct IRowsetAsynchVtbl *lpVtbl;
    302   };
    303 #ifdef COBJMACROS
    304 #define IRowsetAsynch_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
    305 #define IRowsetAsynch_AddRef(This) (This)->lpVtbl->AddRef(This)
    306 #define IRowsetAsynch_Release(This) (This)->lpVtbl->Release(This)
    307 #define IRowsetAsynch_RatioFinished(This,pulDenominator,pulNumerator,pcRows,pfNewRows) (This)->lpVtbl->RatioFinished(This,pulDenominator,pulNumerator,pcRows,pfNewRows)
    308 #define IRowsetAsynch_Stop(This) (This)->lpVtbl->Stop(This)
    309 #endif
    310 #endif
    311   HRESULT WINAPI IRowsetAsynch_RatioFinished_Proxy(IRowsetAsynch *This,DBCOUNTITEM *pulDenominator,DBCOUNTITEM *pulNumerator,DBCOUNTITEM *pcRows,WINBOOL *pfNewRows);
    312   void __RPC_STUB IRowsetAsynch_RatioFinished_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    313   HRESULT WINAPI IRowsetAsynch_Stop_Proxy(IRowsetAsynch *This);
    314   void __RPC_STUB IRowsetAsynch_Stop_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    315 #endif
    316 
    317 #ifndef __IRowsetKeys_INTERFACE_DEFINED__
    318 #define __IRowsetKeys_INTERFACE_DEFINED__
    319   EXTERN_C const IID IID_IRowsetKeys;
    320 #if defined(__cplusplus) && !defined(CINTERFACE)
    321   struct IRowsetKeys : public IUnknown {
    322   public:
    323     virtual HRESULT WINAPI ListKeys(DBORDINAL *pcColumns,DBORDINAL **prgColumns) = 0;
    324   };
    325 #else
    326   typedef struct IRowsetKeysVtbl {
    327     BEGIN_INTERFACE
    328       HRESULT (WINAPI *QueryInterface)(IRowsetKeys *This,REFIID riid,void **ppvObject);
    329       ULONG (WINAPI *AddRef)(IRowsetKeys *This);
    330       ULONG (WINAPI *Release)(IRowsetKeys *This);
    331       HRESULT (WINAPI *ListKeys)(IRowsetKeys *This,DBORDINAL *pcColumns,DBORDINAL **prgColumns);
    332     END_INTERFACE
    333   } IRowsetKeysVtbl;
    334   struct IRowsetKeys {
    335     CONST_VTBL struct IRowsetKeysVtbl *lpVtbl;
    336   };
    337 #ifdef COBJMACROS
    338 #define IRowsetKeys_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
    339 #define IRowsetKeys_AddRef(This) (This)->lpVtbl->AddRef(This)
    340 #define IRowsetKeys_Release(This) (This)->lpVtbl->Release(This)
    341 #define IRowsetKeys_ListKeys(This,pcColumns,prgColumns) (This)->lpVtbl->ListKeys(This,pcColumns,prgColumns)
    342 #endif
    343 #endif
    344   HRESULT WINAPI IRowsetKeys_ListKeys_Proxy(IRowsetKeys *This,DBORDINAL *pcColumns,DBORDINAL **prgColumns);
    345   void __RPC_STUB IRowsetKeys_ListKeys_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    346 #endif
    347 
    348 #ifndef __IRowsetWatchAll_INTERFACE_DEFINED__
    349 #define __IRowsetWatchAll_INTERFACE_DEFINED__
    350   EXTERN_C const IID IID_IRowsetWatchAll;
    351 #if defined(__cplusplus) && !defined(CINTERFACE)
    352   struct IRowsetWatchAll : public IUnknown {
    353   public:
    354     virtual HRESULT WINAPI Acknowledge(void) = 0;
    355     virtual HRESULT WINAPI Start(void) = 0;
    356     virtual HRESULT WINAPI StopWatching(void) = 0;
    357   };
    358 #else
    359   typedef struct IRowsetWatchAllVtbl {
    360     BEGIN_INTERFACE
    361       HRESULT (WINAPI *QueryInterface)(IRowsetWatchAll *This,REFIID riid,void **ppvObject);
    362       ULONG (WINAPI *AddRef)(IRowsetWatchAll *This);
    363       ULONG (WINAPI *Release)(IRowsetWatchAll *This);
    364       HRESULT (WINAPI *Acknowledge)(IRowsetWatchAll *This);
    365       HRESULT (WINAPI *Start)(IRowsetWatchAll *This);
    366       HRESULT (WINAPI *StopWatching)(IRowsetWatchAll *This);
    367     END_INTERFACE
    368   } IRowsetWatchAllVtbl;
    369   struct IRowsetWatchAll {
    370     CONST_VTBL struct IRowsetWatchAllVtbl *lpVtbl;
    371   };
    372 #ifdef COBJMACROS
    373 #define IRowsetWatchAll_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
    374 #define IRowsetWatchAll_AddRef(This) (This)->lpVtbl->AddRef(This)
    375 #define IRowsetWatchAll_Release(This) (This)->lpVtbl->Release(This)
    376 #define IRowsetWatchAll_Acknowledge(This) (This)->lpVtbl->Acknowledge(This)
    377 #define IRowsetWatchAll_Start(This) (This)->lpVtbl->Start(This)
    378 #define IRowsetWatchAll_StopWatching(This) (This)->lpVtbl->StopWatching(This)
    379 #endif
    380 #endif
    381   HRESULT WINAPI IRowsetWatchAll_Acknowledge_Proxy(IRowsetWatchAll *This);
    382   void __RPC_STUB IRowsetWatchAll_Acknowledge_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    383   HRESULT WINAPI IRowsetWatchAll_Start_Proxy(IRowsetWatchAll *This);
    384   void __RPC_STUB IRowsetWatchAll_Start_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    385   HRESULT WINAPI IRowsetWatchAll_StopWatching_Proxy(IRowsetWatchAll *This);
    386   void __RPC_STUB IRowsetWatchAll_StopWatching_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    387 #endif
    388 
    389 #ifndef __IRowsetWatchNotify_INTERFACE_DEFINED__
    390 #define __IRowsetWatchNotify_INTERFACE_DEFINED__
    391   typedef DWORD DBWATCHNOTIFY;
    392 
    393   enum DBWATCHNOTIFYENUM {
    394     DBWATCHNOTIFY_ROWSCHANGED = 1,DBWATCHNOTIFY_QUERYDONE = 2,DBWATCHNOTIFY_QUERYREEXECUTED = 3
    395   };
    396 
    397   EXTERN_C const IID IID_IRowsetWatchNotify;
    398 #if defined(__cplusplus) && !defined(CINTERFACE)
    399   struct IRowsetWatchNotify : public IUnknown {
    400   public:
    401     virtual HRESULT WINAPI OnChange(IRowset *pRowset,DBWATCHNOTIFY eChangeReason) = 0;
    402   };
    403 #else
    404   typedef struct IRowsetWatchNotifyVtbl {
    405     BEGIN_INTERFACE
    406       HRESULT (WINAPI *QueryInterface)(IRowsetWatchNotify *This,REFIID riid,void **ppvObject);
    407       ULONG (WINAPI *AddRef)(IRowsetWatchNotify *This);
    408       ULONG (WINAPI *Release)(IRowsetWatchNotify *This);
    409       HRESULT (WINAPI *OnChange)(IRowsetWatchNotify *This,IRowset *pRowset,DBWATCHNOTIFY eChangeReason);
    410     END_INTERFACE
    411   } IRowsetWatchNotifyVtbl;
    412   struct IRowsetWatchNotify {
    413     CONST_VTBL struct IRowsetWatchNotifyVtbl *lpVtbl;
    414   };
    415 #ifdef COBJMACROS
    416 #define IRowsetWatchNotify_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
    417 #define IRowsetWatchNotify_AddRef(This) (This)->lpVtbl->AddRef(This)
    418 #define IRowsetWatchNotify_Release(This) (This)->lpVtbl->Release(This)
    419 #define IRowsetWatchNotify_OnChange(This,pRowset,eChangeReason) (This)->lpVtbl->OnChange(This,pRowset,eChangeReason)
    420 #endif
    421 #endif
    422   HRESULT WINAPI IRowsetWatchNotify_OnChange_Proxy(IRowsetWatchNotify *This,IRowset *pRowset,DBWATCHNOTIFY eChangeReason);
    423   void __RPC_STUB IRowsetWatchNotify_OnChange_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    424 #endif
    425 
    426 #ifndef __IRowsetWatchRegion_INTERFACE_DEFINED__
    427 #define __IRowsetWatchRegion_INTERFACE_DEFINED__
    428   typedef DWORD DBWATCHMODE;
    429 
    430   enum DBWATCHMODEENUM {
    431     DBWATCHMODE_ALL = 0x1,DBWATCHMODE_EXTEND = 0x2,DBWATCHMODE_MOVE = 0x4,DBWATCHMODE_COUNT = 0x8
    432   };
    433   typedef DWORD DBROWCHANGEKIND;
    434 
    435   enum DBROWCHANGEKINDENUM {
    436     DBROWCHANGEKIND_INSERT = 0,
    437     DBROWCHANGEKIND_DELETE,DBROWCHANGEKIND_UPDATE,DBROWCHANGEKIND_COUNT
    438   };
    439 
    440   typedef struct tagDBROWWATCHRANGE {
    441     HWATCHREGION hRegion;
    442     DBROWCHANGEKIND eChangeKind;
    443     HROW hRow;
    444     DBCOUNTITEM iRow;
    445   } DBROWWATCHCHANGE;
    446 
    447   EXTERN_C const IID IID_IRowsetWatchRegion;
    448 #if defined(__cplusplus) && !defined(CINTERFACE)
    449   struct IRowsetWatchRegion : public IRowsetWatchAll {
    450   public:
    451     virtual HRESULT WINAPI CreateWatchRegion(DBWATCHMODE dwWatchMode,HWATCHREGION *phRegion) = 0;
    452     virtual HRESULT WINAPI ChangeWatchMode(HWATCHREGION hRegion,DBWATCHMODE dwWatchMode) = 0;
    453     virtual HRESULT WINAPI DeleteWatchRegion(HWATCHREGION hRegion) = 0;
    454     virtual HRESULT WINAPI GetWatchRegionInfo(HWATCHREGION hRegion,DBWATCHMODE *pdwWatchMode,HCHAPTER *phChapter,DBBKMARK *pcbBookmark,BYTE **ppBookmark,DBROWCOUNT *pcRows) = 0;
    455     virtual HRESULT WINAPI Refresh(DBCOUNTITEM *pcChangesObtained,DBROWWATCHCHANGE **prgChanges) = 0;
    456     virtual HRESULT WINAPI ShrinkWatchRegion(HWATCHREGION hRegion,HCHAPTER hChapter,DBBKMARK cbBookmark,BYTE *pBookmark,DBROWCOUNT cRows) = 0;
    457   };
    458 #else
    459   typedef struct IRowsetWatchRegionVtbl {
    460     BEGIN_INTERFACE
    461       HRESULT (WINAPI *QueryInterface)(IRowsetWatchRegion *This,REFIID riid,void **ppvObject);
    462       ULONG (WINAPI *AddRef)(IRowsetWatchRegion *This);
    463       ULONG (WINAPI *Release)(IRowsetWatchRegion *This);
    464       HRESULT (WINAPI *Acknowledge)(IRowsetWatchRegion *This);
    465       HRESULT (WINAPI *Start)(IRowsetWatchRegion *This);
    466       HRESULT (WINAPI *StopWatching)(IRowsetWatchRegion *This);
    467       HRESULT (WINAPI *CreateWatchRegion)(IRowsetWatchRegion *This,DBWATCHMODE dwWatchMode,HWATCHREGION *phRegion);
    468       HRESULT (WINAPI *ChangeWatchMode)(IRowsetWatchRegion *This,HWATCHREGION hRegion,DBWATCHMODE dwWatchMode);
    469       HRESULT (WINAPI *DeleteWatchRegion)(IRowsetWatchRegion *This,HWATCHREGION hRegion);
    470       HRESULT (WINAPI *GetWatchRegionInfo)(IRowsetWatchRegion *This,HWATCHREGION hRegion,DBWATCHMODE *pdwWatchMode,HCHAPTER *phChapter,DBBKMARK *pcbBookmark,BYTE **ppBookmark,DBROWCOUNT *pcRows);
    471       HRESULT (WINAPI *Refresh)(IRowsetWatchRegion *This,DBCOUNTITEM *pcChangesObtained,DBROWWATCHCHANGE **prgChanges);
    472       HRESULT (WINAPI *ShrinkWatchRegion)(IRowsetWatchRegion *This,HWATCHREGION hRegion,HCHAPTER hChapter,DBBKMARK cbBookmark,BYTE *pBookmark,DBROWCOUNT cRows);
    473     END_INTERFACE
    474   } IRowsetWatchRegionVtbl;
    475   struct IRowsetWatchRegion {
    476     CONST_VTBL struct IRowsetWatchRegionVtbl *lpVtbl;
    477   };
    478 #ifdef COBJMACROS
    479 #define IRowsetWatchRegion_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
    480 #define IRowsetWatchRegion_AddRef(This) (This)->lpVtbl->AddRef(This)
    481 #define IRowsetWatchRegion_Release(This) (This)->lpVtbl->Release(This)
    482 #define IRowsetWatchRegion_Acknowledge(This) (This)->lpVtbl->Acknowledge(This)
    483 #define IRowsetWatchRegion_Start(This) (This)->lpVtbl->Start(This)
    484 #define IRowsetWatchRegion_StopWatching(This) (This)->lpVtbl->StopWatching(This)
    485 #define IRowsetWatchRegion_CreateWatchRegion(This,dwWatchMode,phRegion) (This)->lpVtbl->CreateWatchRegion(This,dwWatchMode,phRegion)
    486 #define IRowsetWatchRegion_ChangeWatchMode(This,hRegion,dwWatchMode) (This)->lpVtbl->ChangeWatchMode(This,hRegion,dwWatchMode)
    487 #define IRowsetWatchRegion_DeleteWatchRegion(This,hRegion) (This)->lpVtbl->DeleteWatchRegion(This,hRegion)
    488 #define IRowsetWatchRegion_GetWatchRegionInfo(This,hRegion,pdwWatchMode,phChapter,pcbBookmark,ppBookmark,pcRows) (This)->lpVtbl->GetWatchRegionInfo(This,hRegion,pdwWatchMode,phChapter,pcbBookmark,ppBookmark,pcRows)
    489 #define IRowsetWatchRegion_Refresh(This,pcChangesObtained,prgChanges) (This)->lpVtbl->Refresh(This,pcChangesObtained,prgChanges)
    490 #define IRowsetWatchRegion_ShrinkWatchRegion(This,hRegion,hChapter,cbBookmark,pBookmark,cRows) (This)->lpVtbl->ShrinkWatchRegion(This,hRegion,hChapter,cbBookmark,pBookmark,cRows)
    491 #endif
    492 #endif
    493   HRESULT WINAPI IRowsetWatchRegion_CreateWatchRegion_Proxy(IRowsetWatchRegion *This,DBWATCHMODE dwWatchMode,HWATCHREGION *phRegion);
    494   void __RPC_STUB IRowsetWatchRegion_CreateWatchRegion_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    495   HRESULT WINAPI IRowsetWatchRegion_ChangeWatchMode_Proxy(IRowsetWatchRegion *This,HWATCHREGION hRegion,DBWATCHMODE dwWatchMode);
    496   void __RPC_STUB IRowsetWatchRegion_ChangeWatchMode_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    497   HRESULT WINAPI IRowsetWatchRegion_DeleteWatchRegion_Proxy(IRowsetWatchRegion *This,HWATCHREGION hRegion);
    498   void __RPC_STUB IRowsetWatchRegion_DeleteWatchRegion_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    499   HRESULT WINAPI IRowsetWatchRegion_GetWatchRegionInfo_Proxy(IRowsetWatchRegion *This,HWATCHREGION hRegion,DBWATCHMODE *pdwWatchMode,HCHAPTER *phChapter,DBBKMARK *pcbBookmark,BYTE **ppBookmark,DBROWCOUNT *pcRows);
    500   void __RPC_STUB IRowsetWatchRegion_GetWatchRegionInfo_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    501   HRESULT WINAPI IRowsetWatchRegion_Refresh_Proxy(IRowsetWatchRegion *This,DBCOUNTITEM *pcChangesObtained,DBROWWATCHCHANGE **prgChanges);
    502   void __RPC_STUB IRowsetWatchRegion_Refresh_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    503   HRESULT WINAPI IRowsetWatchRegion_ShrinkWatchRegion_Proxy(IRowsetWatchRegion *This,HWATCHREGION hRegion,HCHAPTER hChapter,DBBKMARK cbBookmark,BYTE *pBookmark,DBROWCOUNT cRows);
    504   void __RPC_STUB IRowsetWatchRegion_ShrinkWatchRegion_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    505 #endif
    506 
    507 #ifndef __IRowsetCopyRows_INTERFACE_DEFINED__
    508 #define __IRowsetCopyRows_INTERFACE_DEFINED__
    509   typedef WORD HSOURCE;
    510 
    511   EXTERN_C const IID IID_IRowsetCopyRows;
    512 #if defined(__cplusplus) && !defined(CINTERFACE)
    513   struct IRowsetCopyRows : public IUnknown {
    514   public:
    515     virtual HRESULT WINAPI CloseSource(HSOURCE hSourceID) = 0;
    516     virtual HRESULT WINAPI CopyByHROWS(HSOURCE hSourceID,HCHAPTER hReserved,DBROWCOUNT cRows,const HROW rghRows[],ULONG bFlags) = 0;
    517     virtual HRESULT WINAPI CopyRows(HSOURCE hSourceID,HCHAPTER hReserved,DBROWCOUNT cRows,ULONG bFlags,DBCOUNTITEM *pcRowsCopied) = 0;
    518     virtual HRESULT WINAPI DefineSource(const IRowset *pRowsetSource,const DBORDINAL cColIds,const DB_LORDINAL rgSourceColumns[],const DB_LORDINAL rgTargetColumns[],HSOURCE *phSourceID) = 0;
    519   };
    520 #else
    521   typedef struct IRowsetCopyRowsVtbl {
    522     BEGIN_INTERFACE
    523       HRESULT (WINAPI *QueryInterface)(IRowsetCopyRows *This,REFIID riid,void **ppvObject);
    524       ULONG (WINAPI *AddRef)(IRowsetCopyRows *This);
    525       ULONG (WINAPI *Release)(IRowsetCopyRows *This);
    526       HRESULT (WINAPI *CloseSource)(IRowsetCopyRows *This,HSOURCE hSourceID);
    527       HRESULT (WINAPI *CopyByHROWS)(IRowsetCopyRows *This,HSOURCE hSourceID,HCHAPTER hReserved,DBROWCOUNT cRows,const HROW rghRows[],ULONG bFlags);
    528       HRESULT (WINAPI *CopyRows)(IRowsetCopyRows *This,HSOURCE hSourceID,HCHAPTER hReserved,DBROWCOUNT cRows,ULONG bFlags,DBCOUNTITEM *pcRowsCopied);
    529       HRESULT (WINAPI *DefineSource)(IRowsetCopyRows *This,const IRowset *pRowsetSource,const DBORDINAL cColIds,const DB_LORDINAL rgSourceColumns[],const DB_LORDINAL rgTargetColumns[],HSOURCE *phSourceID);
    530     END_INTERFACE
    531   } IRowsetCopyRowsVtbl;
    532   struct IRowsetCopyRows {
    533     CONST_VTBL struct IRowsetCopyRowsVtbl *lpVtbl;
    534   };
    535 #ifdef COBJMACROS
    536 #define IRowsetCopyRows_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
    537 #define IRowsetCopyRows_AddRef(This) (This)->lpVtbl->AddRef(This)
    538 #define IRowsetCopyRows_Release(This) (This)->lpVtbl->Release(This)
    539 #define IRowsetCopyRows_CloseSource(This,hSourceID) (This)->lpVtbl->CloseSource(This,hSourceID)
    540 #define IRowsetCopyRows_CopyByHROWS(This,hSourceID,hReserved,cRows,rghRows,bFlags) (This)->lpVtbl->CopyByHROWS(This,hSourceID,hReserved,cRows,rghRows,bFlags)
    541 #define IRowsetCopyRows_CopyRows(This,hSourceID,hReserved,cRows,bFlags,pcRowsCopied) (This)->lpVtbl->CopyRows(This,hSourceID,hReserved,cRows,bFlags,pcRowsCopied)
    542 #define IRowsetCopyRows_DefineSource(This,pRowsetSource,cColIds,rgSourceColumns,rgTargetColumns,phSourceID) (This)->lpVtbl->DefineSource(This,pRowsetSource,cColIds,rgSourceColumns,rgTargetColumns,phSourceID)
    543 #endif
    544 #endif
    545   HRESULT WINAPI IRowsetCopyRows_CloseSource_Proxy(IRowsetCopyRows *This,HSOURCE hSourceID);
    546   void __RPC_STUB IRowsetCopyRows_CloseSource_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    547   HRESULT WINAPI IRowsetCopyRows_CopyByHROWS_Proxy(IRowsetCopyRows *This,HSOURCE hSourceID,HCHAPTER hReserved,DBROWCOUNT cRows,const HROW rghRows[],ULONG bFlags);
    548   void __RPC_STUB IRowsetCopyRows_CopyByHROWS_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    549   HRESULT WINAPI IRowsetCopyRows_CopyRows_Proxy(IRowsetCopyRows *This,HSOURCE hSourceID,HCHAPTER hReserved,DBROWCOUNT cRows,ULONG bFlags,DBCOUNTITEM *pcRowsCopied);
    550   void __RPC_STUB IRowsetCopyRows_CopyRows_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    551   HRESULT WINAPI IRowsetCopyRows_DefineSource_Proxy(IRowsetCopyRows *This,const IRowset *pRowsetSource,const DBORDINAL cColIds,const DB_LORDINAL rgSourceColumns[],const DB_LORDINAL rgTargetColumns[],HSOURCE *phSourceID);
    552   void __RPC_STUB IRowsetCopyRows_DefineSource_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    553 #endif
    554 
    555 #ifndef __IReadData_INTERFACE_DEFINED__
    556 #define __IReadData_INTERFACE_DEFINED__
    557   EXTERN_C const IID IID_IReadData;
    558 #if defined(__cplusplus) && !defined(CINTERFACE)
    559   struct IReadData : public IUnknown {
    560   public:
    561     virtual HRESULT WINAPI ReadData(HCHAPTER hChapter,DBBKMARK cbBookmark,const BYTE *pBookmark,DBROWOFFSET lRowsOffset,HACCESSOR hAccessor,DBROWCOUNT cRows,DBCOUNTITEM *pcRowsObtained,BYTE **ppFixedData,DBLENGTH *pcbVariableTotal,BYTE **ppVariableData) = 0;
    562     virtual HRESULT WINAPI ReleaseChapter(HCHAPTER hChapter) = 0;
    563   };
    564 #else
    565   typedef struct IReadDataVtbl {
    566     BEGIN_INTERFACE
    567       HRESULT (WINAPI *QueryInterface)(IReadData *This,REFIID riid,void **ppvObject);
    568       ULONG (WINAPI *AddRef)(IReadData *This);
    569       ULONG (WINAPI *Release)(IReadData *This);
    570       HRESULT (WINAPI *ReadData)(IReadData *This,HCHAPTER hChapter,DBBKMARK cbBookmark,const BYTE *pBookmark,DBROWOFFSET lRowsOffset,HACCESSOR hAccessor,DBROWCOUNT cRows,DBCOUNTITEM *pcRowsObtained,BYTE **ppFixedData,DBLENGTH *pcbVariableTotal,BYTE **ppVariableData);
    571       HRESULT (WINAPI *ReleaseChapter)(IReadData *This,HCHAPTER hChapter);
    572     END_INTERFACE
    573   } IReadDataVtbl;
    574   struct IReadData {
    575     CONST_VTBL struct IReadDataVtbl *lpVtbl;
    576   };
    577 #ifdef COBJMACROS
    578 #define IReadData_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
    579 #define IReadData_AddRef(This) (This)->lpVtbl->AddRef(This)
    580 #define IReadData_Release(This) (This)->lpVtbl->Release(This)
    581 #define IReadData_ReadData(This,hChapter,cbBookmark,pBookmark,lRowsOffset,hAccessor,cRows,pcRowsObtained,ppFixedData,pcbVariableTotal,ppVariableData) (This)->lpVtbl->ReadData(This,hChapter,cbBookmark,pBookmark,lRowsOffset,hAccessor,cRows,pcRowsObtained,ppFixedData,pcbVariableTotal,ppVariableData)
    582 #define IReadData_ReleaseChapter(This,hChapter) (This)->lpVtbl->ReleaseChapter(This,hChapter)
    583 #endif
    584 #endif
    585   HRESULT WINAPI IReadData_ReadData_Proxy(IReadData *This,HCHAPTER hChapter,DBBKMARK cbBookmark,const BYTE *pBookmark,DBROWOFFSET lRowsOffset,HACCESSOR hAccessor,DBROWCOUNT cRows,DBCOUNTITEM *pcRowsObtained,BYTE **ppFixedData,DBLENGTH *pcbVariableTotal,BYTE **ppVariableData);
    586   void __RPC_STUB IReadData_ReadData_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    587   HRESULT WINAPI IReadData_ReleaseChapter_Proxy(IReadData *This,HCHAPTER hChapter);
    588   void __RPC_STUB IReadData_ReleaseChapter_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    589 #endif
    590 
    591 #ifndef __ICommandCost_INTERFACE_DEFINED__
    592 #define __ICommandCost_INTERFACE_DEFINED__
    593 
    594   typedef DWORD DBRESOURCEKIND;
    595 
    596   enum DBRESOURCEKINDENUM {
    597     DBRESOURCE_INVALID = 0,DBRESOURCE_TOTAL = 1,DBRESOURCE_CPU = 2,DBRESOURCE_MEMORY = 3,DBRESOURCE_DISK = 4,DBRESOURCE_NETWORK = 5,
    598     DBRESOURCE_RESPONSE = 6,DBRESOURCE_ROWS = 7,DBRESOURCE_OTHER = 8
    599   };
    600   typedef DWORD DBCOSTUNIT;
    601 
    602   enum DBCOSTUNITENUM {
    603     DBUNIT_INVALID = 0,DBUNIT_WEIGHT = 0x1,DBUNIT_PERCENT = 0x2,DBUNIT_MAXIMUM = 0x4,DBUNIT_MINIMUM = 0x8,DBUNIT_MICRO_SECOND = 0x10,
    604     DBUNIT_MILLI_SECOND = 0x20,DBUNIT_SECOND = 0x40,DBUNIT_MINUTE = 0x80,DBUNIT_HOUR = 0x100,DBUNIT_BYTE = 0x200,DBUNIT_KILO_BYTE = 0x400,
    605     DBUNIT_MEGA_BYTE = 0x800,DBUNIT_GIGA_BYTE = 0x1000,DBUNIT_NUM_MSGS = 0x2000,DBUNIT_NUM_LOCKS = 0x4000,DBUNIT_NUM_ROWS = 0x8000,
    606     DBUNIT_OTHER = 0x10000
    607   };
    608 
    609   typedef struct tagDBCOST {
    610     DBRESOURCEKIND eKind;
    611     DBCOSTUNIT dwUnits;
    612     LONG lValue;
    613   } DBCOST;
    614 
    615   typedef DWORD DBEXECLIMITS;
    616 
    617   enum DBEXECLIMITSENUM {
    618     DBEXECLIMITS_ABORT = 1,DBEXECLIMITS_STOP = 2,DBEXECLIMITS_SUSPEND = 3
    619   };
    620 
    621   EXTERN_C const IID IID_ICommandCost;
    622 #if defined(__cplusplus) && !defined(CINTERFACE)
    623   struct ICommandCost : public IUnknown {
    624   public:
    625     virtual HRESULT WINAPI GetAccumulatedCost(LPCOLESTR pwszRowsetName,ULONG *pcCostLimits,DBCOST **prgCostLimits) = 0;
    626     virtual HRESULT WINAPI GetCostEstimate(LPCOLESTR pwszRowsetName,ULONG *pcCostEstimates,DBCOST *prgCostEstimates) = 0;
    627     virtual HRESULT WINAPI GetCostGoals(LPCOLESTR pwszRowsetName,ULONG *pcCostGoals,DBCOST *prgCostGoals) = 0;
    628     virtual HRESULT WINAPI GetCostLimits(LPCOLESTR pwszRowsetName,ULONG *pcCostLimits,DBCOST *prgCostLimits) = 0;
    629     virtual HRESULT WINAPI SetCostGoals(LPCOLESTR pwszRowsetName,ULONG cCostGoals,const DBCOST rgCostGoals[]) = 0;
    630     virtual HRESULT WINAPI SetCostLimits(LPCOLESTR pwszRowsetName,ULONG cCostLimits,DBCOST *prgCostLimits,DBEXECLIMITS dwExecutionFlags) = 0;
    631   };
    632 #else
    633   typedef struct ICommandCostVtbl {
    634     BEGIN_INTERFACE
    635       HRESULT (WINAPI *QueryInterface)(ICommandCost *This,REFIID riid,void **ppvObject);
    636       ULONG (WINAPI *AddRef)(ICommandCost *This);
    637       ULONG (WINAPI *Release)(ICommandCost *This);
    638       HRESULT (WINAPI *GetAccumulatedCost)(ICommandCost *This,LPCOLESTR pwszRowsetName,ULONG *pcCostLimits,DBCOST **prgCostLimits);
    639       HRESULT (WINAPI *GetCostEstimate)(ICommandCost *This,LPCOLESTR pwszRowsetName,ULONG *pcCostEstimates,DBCOST *prgCostEstimates);
    640       HRESULT (WINAPI *GetCostGoals)(ICommandCost *This,LPCOLESTR pwszRowsetName,ULONG *pcCostGoals,DBCOST *prgCostGoals);
    641       HRESULT (WINAPI *GetCostLimits)(ICommandCost *This,LPCOLESTR pwszRowsetName,ULONG *pcCostLimits,DBCOST *prgCostLimits);
    642       HRESULT (WINAPI *SetCostGoals)(ICommandCost *This,LPCOLESTR pwszRowsetName,ULONG cCostGoals,const DBCOST rgCostGoals[]);
    643       HRESULT (WINAPI *SetCostLimits)(ICommandCost *This,LPCOLESTR pwszRowsetName,ULONG cCostLimits,DBCOST *prgCostLimits,DBEXECLIMITS dwExecutionFlags);
    644     END_INTERFACE
    645   } ICommandCostVtbl;
    646   struct ICommandCost {
    647     CONST_VTBL struct ICommandCostVtbl *lpVtbl;
    648   };
    649 #ifdef COBJMACROS
    650 #define ICommandCost_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
    651 #define ICommandCost_AddRef(This) (This)->lpVtbl->AddRef(This)
    652 #define ICommandCost_Release(This) (This)->lpVtbl->Release(This)
    653 #define ICommandCost_GetAccumulatedCost(This,pwszRowsetName,pcCostLimits,prgCostLimits) (This)->lpVtbl->GetAccumulatedCost(This,pwszRowsetName,pcCostLimits,prgCostLimits)
    654 #define ICommandCost_GetCostEstimate(This,pwszRowsetName,pcCostEstimates,prgCostEstimates) (This)->lpVtbl->GetCostEstimate(This,pwszRowsetName,pcCostEstimates,prgCostEstimates)
    655 #define ICommandCost_GetCostGoals(This,pwszRowsetName,pcCostGoals,prgCostGoals) (This)->lpVtbl->GetCostGoals(This,pwszRowsetName,pcCostGoals,prgCostGoals)
    656 #define ICommandCost_GetCostLimits(This,pwszRowsetName,pcCostLimits,prgCostLimits) (This)->lpVtbl->GetCostLimits(This,pwszRowsetName,pcCostLimits,prgCostLimits)
    657 #define ICommandCost_SetCostGoals(This,pwszRowsetName,cCostGoals,rgCostGoals) (This)->lpVtbl->SetCostGoals(This,pwszRowsetName,cCostGoals,rgCostGoals)
    658 #define ICommandCost_SetCostLimits(This,pwszRowsetName,cCostLimits,prgCostLimits,dwExecutionFlags) (This)->lpVtbl->SetCostLimits(This,pwszRowsetName,cCostLimits,prgCostLimits,dwExecutionFlags)
    659 #endif
    660 #endif
    661   HRESULT WINAPI ICommandCost_GetAccumulatedCost_Proxy(ICommandCost *This,LPCOLESTR pwszRowsetName,ULONG *pcCostLimits,DBCOST **prgCostLimits);
    662   void __RPC_STUB ICommandCost_GetAccumulatedCost_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    663   HRESULT WINAPI ICommandCost_GetCostEstimate_Proxy(ICommandCost *This,LPCOLESTR pwszRowsetName,ULONG *pcCostEstimates,DBCOST *prgCostEstimates);
    664   void __RPC_STUB ICommandCost_GetCostEstimate_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    665   HRESULT WINAPI ICommandCost_GetCostGoals_Proxy(ICommandCost *This,LPCOLESTR pwszRowsetName,ULONG *pcCostGoals,DBCOST *prgCostGoals);
    666   void __RPC_STUB ICommandCost_GetCostGoals_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    667   HRESULT WINAPI ICommandCost_GetCostLimits_Proxy(ICommandCost *This,LPCOLESTR pwszRowsetName,ULONG *pcCostLimits,DBCOST *prgCostLimits);
    668   void __RPC_STUB ICommandCost_GetCostLimits_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    669   HRESULT WINAPI ICommandCost_SetCostGoals_Proxy(ICommandCost *This,LPCOLESTR pwszRowsetName,ULONG cCostGoals,const DBCOST rgCostGoals[]);
    670   void __RPC_STUB ICommandCost_SetCostGoals_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    671   HRESULT WINAPI ICommandCost_SetCostLimits_Proxy(ICommandCost *This,LPCOLESTR pwszRowsetName,ULONG cCostLimits,DBCOST *prgCostLimits,DBEXECLIMITS dwExecutionFlags);
    672   void __RPC_STUB ICommandCost_SetCostLimits_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    673 #endif
    674 
    675 #ifndef __ICommandValidate_INTERFACE_DEFINED__
    676 #define __ICommandValidate_INTERFACE_DEFINED__
    677   EXTERN_C const IID IID_ICommandValidate;
    678 #if defined(__cplusplus) && !defined(CINTERFACE)
    679   struct ICommandValidate : public IUnknown {
    680   public:
    681     virtual HRESULT WINAPI ValidateCompletely(void) = 0;
    682     virtual HRESULT WINAPI ValidateSyntax(void) = 0;
    683   };
    684 #else
    685   typedef struct ICommandValidateVtbl {
    686     BEGIN_INTERFACE
    687       HRESULT (WINAPI *QueryInterface)(ICommandValidate *This,REFIID riid,void **ppvObject);
    688       ULONG (WINAPI *AddRef)(ICommandValidate *This);
    689       ULONG (WINAPI *Release)(ICommandValidate *This);
    690       HRESULT (WINAPI *ValidateCompletely)(ICommandValidate *This);
    691       HRESULT (WINAPI *ValidateSyntax)(ICommandValidate *This);
    692     END_INTERFACE
    693   } ICommandValidateVtbl;
    694   struct ICommandValidate {
    695     CONST_VTBL struct ICommandValidateVtbl *lpVtbl;
    696   };
    697 #ifdef COBJMACROS
    698 #define ICommandValidate_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
    699 #define ICommandValidate_AddRef(This) (This)->lpVtbl->AddRef(This)
    700 #define ICommandValidate_Release(This) (This)->lpVtbl->Release(This)
    701 #define ICommandValidate_ValidateCompletely(This) (This)->lpVtbl->ValidateCompletely(This)
    702 #define ICommandValidate_ValidateSyntax(This) (This)->lpVtbl->ValidateSyntax(This)
    703 #endif
    704 #endif
    705   HRESULT WINAPI ICommandValidate_ValidateCompletely_Proxy(ICommandValidate *This);
    706   void __RPC_STUB ICommandValidate_ValidateCompletely_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    707   HRESULT WINAPI ICommandValidate_ValidateSyntax_Proxy(ICommandValidate *This);
    708   void __RPC_STUB ICommandValidate_ValidateSyntax_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    709 #endif
    710 
    711 #ifndef __ITableRename_INTERFACE_DEFINED__
    712 #define __ITableRename_INTERFACE_DEFINED__
    713   EXTERN_C const IID IID_ITableRename;
    714 #if defined(__cplusplus) && !defined(CINTERFACE)
    715   struct ITableRename : public IUnknown {
    716   public:
    717     virtual HRESULT WINAPI RenameColumn(DBID *pTableId,DBID *pOldColumnId,DBID *pNewColumnId) = 0;
    718     virtual HRESULT WINAPI RenameTable(DBID *pOldTableId,DBID *pOldIndexId,DBID *pNewTableId,DBID *pNewIndexId) = 0;
    719   };
    720 #else
    721   typedef struct ITableRenameVtbl {
    722     BEGIN_INTERFACE
    723       HRESULT (WINAPI *QueryInterface)(ITableRename *This,REFIID riid,void **ppvObject);
    724       ULONG (WINAPI *AddRef)(ITableRename *This);
    725       ULONG (WINAPI *Release)(ITableRename *This);
    726       HRESULT (WINAPI *RenameColumn)(ITableRename *This,DBID *pTableId,DBID *pOldColumnId,DBID *pNewColumnId);
    727       HRESULT (WINAPI *RenameTable)(ITableRename *This,DBID *pOldTableId,DBID *pOldIndexId,DBID *pNewTableId,DBID *pNewIndexId);
    728     END_INTERFACE
    729   } ITableRenameVtbl;
    730   struct ITableRename {
    731     CONST_VTBL struct ITableRenameVtbl *lpVtbl;
    732   };
    733 #ifdef COBJMACROS
    734 #define ITableRename_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
    735 #define ITableRename_AddRef(This) (This)->lpVtbl->AddRef(This)
    736 #define ITableRename_Release(This) (This)->lpVtbl->Release(This)
    737 #define ITableRename_RenameColumn(This,pTableId,pOldColumnId,pNewColumnId) (This)->lpVtbl->RenameColumn(This,pTableId,pOldColumnId,pNewColumnId)
    738 #define ITableRename_RenameTable(This,pOldTableId,pOldIndexId,pNewTableId,pNewIndexId) (This)->lpVtbl->RenameTable(This,pOldTableId,pOldIndexId,pNewTableId,pNewIndexId)
    739 #endif
    740 #endif
    741   HRESULT WINAPI ITableRename_RenameColumn_Proxy(ITableRename *This,DBID *pTableId,DBID *pOldColumnId,DBID *pNewColumnId);
    742   void __RPC_STUB ITableRename_RenameColumn_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    743   HRESULT WINAPI ITableRename_RenameTable_Proxy(ITableRename *This,DBID *pOldTableId,DBID *pOldIndexId,DBID *pNewTableId,DBID *pNewIndexId);
    744   void __RPC_STUB ITableRename_RenameTable_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    745 #endif
    746 
    747 #ifndef __IDBSchemaCommand_INTERFACE_DEFINED__
    748 #define __IDBSchemaCommand_INTERFACE_DEFINED__
    749   EXTERN_C const IID IID_IDBSchemaCommand;
    750 #if defined(__cplusplus) && !defined(CINTERFACE)
    751   struct IDBSchemaCommand : public IUnknown {
    752   public:
    753     virtual HRESULT WINAPI GetCommand(IUnknown *pUnkOuter,REFGUID rguidSchema,ICommand **ppCommand) = 0;
    754     virtual HRESULT WINAPI GetSchemas(ULONG *pcSchemas,GUID **prgSchemas) = 0;
    755   };
    756 #else
    757   typedef struct IDBSchemaCommandVtbl {
    758     BEGIN_INTERFACE
    759       HRESULT (WINAPI *QueryInterface)(IDBSchemaCommand *This,REFIID riid,void **ppvObject);
    760       ULONG (WINAPI *AddRef)(IDBSchemaCommand *This);
    761       ULONG (WINAPI *Release)(IDBSchemaCommand *This);
    762       HRESULT (WINAPI *GetCommand)(IDBSchemaCommand *This,IUnknown *pUnkOuter,REFGUID rguidSchema,ICommand **ppCommand);
    763       HRESULT (WINAPI *GetSchemas)(IDBSchemaCommand *This,ULONG *pcSchemas,GUID **prgSchemas);
    764     END_INTERFACE
    765   } IDBSchemaCommandVtbl;
    766   struct IDBSchemaCommand {
    767     CONST_VTBL struct IDBSchemaCommandVtbl *lpVtbl;
    768   };
    769 #ifdef COBJMACROS
    770 #define IDBSchemaCommand_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
    771 #define IDBSchemaCommand_AddRef(This) (This)->lpVtbl->AddRef(This)
    772 #define IDBSchemaCommand_Release(This) (This)->lpVtbl->Release(This)
    773 #define IDBSchemaCommand_GetCommand(This,pUnkOuter,rguidSchema,ppCommand) (This)->lpVtbl->GetCommand(This,pUnkOuter,rguidSchema,ppCommand)
    774 #define IDBSchemaCommand_GetSchemas(This,pcSchemas,prgSchemas) (This)->lpVtbl->GetSchemas(This,pcSchemas,prgSchemas)
    775 #endif
    776 #endif
    777   HRESULT WINAPI IDBSchemaCommand_GetCommand_Proxy(IDBSchemaCommand *This,IUnknown *pUnkOuter,REFGUID rguidSchema,ICommand **ppCommand);
    778   void __RPC_STUB IDBSchemaCommand_GetCommand_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    779   HRESULT WINAPI IDBSchemaCommand_GetSchemas_Proxy(IDBSchemaCommand *This,ULONG *pcSchemas,GUID **prgSchemas);
    780   void __RPC_STUB IDBSchemaCommand_GetSchemas_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    781 #endif
    782 
    783 #ifndef __IProvideMoniker_INTERFACE_DEFINED__
    784 #define __IProvideMoniker_INTERFACE_DEFINED__
    785   EXTERN_C const IID IID_IProvideMoniker;
    786 #if defined(__cplusplus) && !defined(CINTERFACE)
    787   struct IProvideMoniker : public IUnknown {
    788   public:
    789     virtual HRESULT WINAPI GetMoniker(IMoniker **ppIMoniker) = 0;
    790   };
    791 #else
    792   typedef struct IProvideMonikerVtbl {
    793     BEGIN_INTERFACE
    794       HRESULT (WINAPI *QueryInterface)(IProvideMoniker *This,REFIID riid,void **ppvObject);
    795       ULONG (WINAPI *AddRef)(IProvideMoniker *This);
    796       ULONG (WINAPI *Release)(IProvideMoniker *This);
    797       HRESULT (WINAPI *GetMoniker)(IProvideMoniker *This,IMoniker **ppIMoniker);
    798     END_INTERFACE
    799   } IProvideMonikerVtbl;
    800   struct IProvideMoniker {
    801     CONST_VTBL struct IProvideMonikerVtbl *lpVtbl;
    802   };
    803 #ifdef COBJMACROS
    804 #define IProvideMoniker_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
    805 #define IProvideMoniker_AddRef(This) (This)->lpVtbl->AddRef(This)
    806 #define IProvideMoniker_Release(This) (This)->lpVtbl->Release(This)
    807 #define IProvideMoniker_GetMoniker(This,ppIMoniker) (This)->lpVtbl->GetMoniker(This,ppIMoniker)
    808 #endif
    809 #endif
    810   HRESULT WINAPI IProvideMoniker_GetMoniker_Proxy(IProvideMoniker *This,IMoniker **ppIMoniker);
    811   void __RPC_STUB IProvideMoniker_GetMoniker_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    812 #endif
    813 
    814 #include <poppack.h>
    815   extern RPC_IF_HANDLE __MIDL_itf_oledbdep_0372_v0_0_c_ifspec;
    816   extern RPC_IF_HANDLE __MIDL_itf_oledbdep_0372_v0_0_s_ifspec;
    817 
    818 #ifdef __cplusplus
    819 }
    820 #endif
    821 #endif
    822