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