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