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