blob: cb087a01cf3102776333dc4b3cb29d65c8ca9773 [file] [log] [blame]
/**
* This file has no copyright assigned and is placed in the Public Domain.
* This file is part of the mingw-w64 runtime package.
* No warranty is given; refer to the file DISCLAIMER.PD within this package.
*/
#ifndef __REQUIRED_RPCNDR_H_VERSION__
#define __REQUIRED_RPCNDR_H_VERSION__ 440
#endif
#include "rpc.h"
#include "rpcndr.h"
#ifndef __RPCNDR_H_VERSION__
#error This stub requires an updated version of <rpcndr.h>
#endif
#ifndef COM_NO_WINDOWS_H
#include "windows.h"
#include "ole2.h"
#endif
#ifndef __oledb_h__
#define __oledb_h__
#ifndef __IAccessor_FWD_DEFINED__
#define __IAccessor_FWD_DEFINED__
typedef struct IAccessor IAccessor;
#endif
#ifndef __IRowset_FWD_DEFINED__
#define __IRowset_FWD_DEFINED__
typedef struct IRowset IRowset;
#endif
#ifndef __IRowsetInfo_FWD_DEFINED__
#define __IRowsetInfo_FWD_DEFINED__
typedef struct IRowsetInfo IRowsetInfo;
#endif
#ifndef __IRowsetLocate_FWD_DEFINED__
#define __IRowsetLocate_FWD_DEFINED__
typedef struct IRowsetLocate IRowsetLocate;
#endif
#ifndef __IRowsetResynch_FWD_DEFINED__
#define __IRowsetResynch_FWD_DEFINED__
typedef struct IRowsetResynch IRowsetResynch;
#endif
#ifndef __IRowsetScroll_FWD_DEFINED__
#define __IRowsetScroll_FWD_DEFINED__
typedef struct IRowsetScroll IRowsetScroll;
#endif
#ifndef __IChapteredRowset_FWD_DEFINED__
#define __IChapteredRowset_FWD_DEFINED__
typedef struct IChapteredRowset IChapteredRowset;
#endif
#ifndef __IRowsetFind_FWD_DEFINED__
#define __IRowsetFind_FWD_DEFINED__
typedef struct IRowsetFind IRowsetFind;
#endif
#ifndef __IRowPosition_FWD_DEFINED__
#define __IRowPosition_FWD_DEFINED__
typedef struct IRowPosition IRowPosition;
#endif
#ifndef __IRowPositionChange_FWD_DEFINED__
#define __IRowPositionChange_FWD_DEFINED__
typedef struct IRowPositionChange IRowPositionChange;
#endif
#ifndef __IViewRowset_FWD_DEFINED__
#define __IViewRowset_FWD_DEFINED__
typedef struct IViewRowset IViewRowset;
#endif
#ifndef __IViewChapter_FWD_DEFINED__
#define __IViewChapter_FWD_DEFINED__
typedef struct IViewChapter IViewChapter;
#endif
#ifndef __IViewSort_FWD_DEFINED__
#define __IViewSort_FWD_DEFINED__
typedef struct IViewSort IViewSort;
#endif
#ifndef __IViewFilter_FWD_DEFINED__
#define __IViewFilter_FWD_DEFINED__
typedef struct IViewFilter IViewFilter;
#endif
#ifndef __IRowsetView_FWD_DEFINED__
#define __IRowsetView_FWD_DEFINED__
typedef struct IRowsetView IRowsetView;
#endif
#ifndef __IRowsetExactScroll_FWD_DEFINED__
#define __IRowsetExactScroll_FWD_DEFINED__
typedef struct IRowsetExactScroll IRowsetExactScroll;
#endif
#ifndef __IRowsetChange_FWD_DEFINED__
#define __IRowsetChange_FWD_DEFINED__
typedef struct IRowsetChange IRowsetChange;
#endif
#ifndef __IRowsetUpdate_FWD_DEFINED__
#define __IRowsetUpdate_FWD_DEFINED__
typedef struct IRowsetUpdate IRowsetUpdate;
#endif
#ifndef __IRowsetIdentity_FWD_DEFINED__
#define __IRowsetIdentity_FWD_DEFINED__
typedef struct IRowsetIdentity IRowsetIdentity;
#endif
#ifndef __IRowsetNotify_FWD_DEFINED__
#define __IRowsetNotify_FWD_DEFINED__
typedef struct IRowsetNotify IRowsetNotify;
#endif
#ifndef __IRowsetIndex_FWD_DEFINED__
#define __IRowsetIndex_FWD_DEFINED__
typedef struct IRowsetIndex IRowsetIndex;
#endif
#ifndef __ICommand_FWD_DEFINED__
#define __ICommand_FWD_DEFINED__
typedef struct ICommand ICommand;
#endif
#ifndef __IMultipleResults_FWD_DEFINED__
#define __IMultipleResults_FWD_DEFINED__
typedef struct IMultipleResults IMultipleResults;
#endif
#ifndef __IConvertType_FWD_DEFINED__
#define __IConvertType_FWD_DEFINED__
typedef struct IConvertType IConvertType;
#endif
#ifndef __ICommandPrepare_FWD_DEFINED__
#define __ICommandPrepare_FWD_DEFINED__
typedef struct ICommandPrepare ICommandPrepare;
#endif
#ifndef __ICommandProperties_FWD_DEFINED__
#define __ICommandProperties_FWD_DEFINED__
typedef struct ICommandProperties ICommandProperties;
#endif
#ifndef __ICommandText_FWD_DEFINED__
#define __ICommandText_FWD_DEFINED__
typedef struct ICommandText ICommandText;
#endif
#ifndef __ICommandWithParameters_FWD_DEFINED__
#define __ICommandWithParameters_FWD_DEFINED__
typedef struct ICommandWithParameters ICommandWithParameters;
#endif
#ifndef __IColumnsRowset_FWD_DEFINED__
#define __IColumnsRowset_FWD_DEFINED__
typedef struct IColumnsRowset IColumnsRowset;
#endif
#ifndef __IColumnsInfo_FWD_DEFINED__
#define __IColumnsInfo_FWD_DEFINED__
typedef struct IColumnsInfo IColumnsInfo;
#endif
#ifndef __IDBCreateCommand_FWD_DEFINED__
#define __IDBCreateCommand_FWD_DEFINED__
typedef struct IDBCreateCommand IDBCreateCommand;
#endif
#ifndef __IDBCreateSession_FWD_DEFINED__
#define __IDBCreateSession_FWD_DEFINED__
typedef struct IDBCreateSession IDBCreateSession;
#endif
#ifndef __ISourcesRowset_FWD_DEFINED__
#define __ISourcesRowset_FWD_DEFINED__
typedef struct ISourcesRowset ISourcesRowset;
#endif
#ifndef __IDBProperties_FWD_DEFINED__
#define __IDBProperties_FWD_DEFINED__
typedef struct IDBProperties IDBProperties;
#endif
#ifndef __IDBInitialize_FWD_DEFINED__
#define __IDBInitialize_FWD_DEFINED__
typedef struct IDBInitialize IDBInitialize;
#endif
#ifndef __IDBInfo_FWD_DEFINED__
#define __IDBInfo_FWD_DEFINED__
typedef struct IDBInfo IDBInfo;
#endif
#ifndef __IDBDataSourceAdmin_FWD_DEFINED__
#define __IDBDataSourceAdmin_FWD_DEFINED__
typedef struct IDBDataSourceAdmin IDBDataSourceAdmin;
#endif
#ifndef __IDBAsynchNotify_FWD_DEFINED__
#define __IDBAsynchNotify_FWD_DEFINED__
typedef struct IDBAsynchNotify IDBAsynchNotify;
#endif
#ifndef __IDBAsynchStatus_FWD_DEFINED__
#define __IDBAsynchStatus_FWD_DEFINED__
typedef struct IDBAsynchStatus IDBAsynchStatus;
#endif
#ifndef __ISessionProperties_FWD_DEFINED__
#define __ISessionProperties_FWD_DEFINED__
typedef struct ISessionProperties ISessionProperties;
#endif
#ifndef __IIndexDefinition_FWD_DEFINED__
#define __IIndexDefinition_FWD_DEFINED__
typedef struct IIndexDefinition IIndexDefinition;
#endif
#ifndef __ITableDefinition_FWD_DEFINED__
#define __ITableDefinition_FWD_DEFINED__
typedef struct ITableDefinition ITableDefinition;
#endif
#ifndef __IOpenRowset_FWD_DEFINED__
#define __IOpenRowset_FWD_DEFINED__
typedef struct IOpenRowset IOpenRowset;
#endif
#ifndef __IDBSchemaRowset_FWD_DEFINED__
#define __IDBSchemaRowset_FWD_DEFINED__
typedef struct IDBSchemaRowset IDBSchemaRowset;
#endif
#ifndef __IMDDataset_FWD_DEFINED__
#define __IMDDataset_FWD_DEFINED__
typedef struct IMDDataset IMDDataset;
#endif
#ifndef __IMDFind_FWD_DEFINED__
#define __IMDFind_FWD_DEFINED__
typedef struct IMDFind IMDFind;
#endif
#ifndef __IMDRangeRowset_FWD_DEFINED__
#define __IMDRangeRowset_FWD_DEFINED__
typedef struct IMDRangeRowset IMDRangeRowset;
#endif
#ifndef __IAlterTable_FWD_DEFINED__
#define __IAlterTable_FWD_DEFINED__
typedef struct IAlterTable IAlterTable;
#endif
#ifndef __IAlterIndex_FWD_DEFINED__
#define __IAlterIndex_FWD_DEFINED__
typedef struct IAlterIndex IAlterIndex;
#endif
#ifndef __IRowsetChapterMember_FWD_DEFINED__
#define __IRowsetChapterMember_FWD_DEFINED__
typedef struct IRowsetChapterMember IRowsetChapterMember;
#endif
#ifndef __ICommandPersist_FWD_DEFINED__
#define __ICommandPersist_FWD_DEFINED__
typedef struct ICommandPersist ICommandPersist;
#endif
#ifndef __IRowsetRefresh_FWD_DEFINED__
#define __IRowsetRefresh_FWD_DEFINED__
typedef struct IRowsetRefresh IRowsetRefresh;
#endif
#ifndef __IParentRowset_FWD_DEFINED__
#define __IParentRowset_FWD_DEFINED__
typedef struct IParentRowset IParentRowset;
#endif
#ifndef __IErrorRecords_FWD_DEFINED__
#define __IErrorRecords_FWD_DEFINED__
typedef struct IErrorRecords IErrorRecords;
#endif
#ifndef __IErrorLookup_FWD_DEFINED__
#define __IErrorLookup_FWD_DEFINED__
typedef struct IErrorLookup IErrorLookup;
#endif
#ifndef __ISQLErrorInfo_FWD_DEFINED__
#define __ISQLErrorInfo_FWD_DEFINED__
typedef struct ISQLErrorInfo ISQLErrorInfo;
#endif
#ifndef __IGetDataSource_FWD_DEFINED__
#define __IGetDataSource_FWD_DEFINED__
typedef struct IGetDataSource IGetDataSource;
#endif
#ifndef __ITransactionLocal_FWD_DEFINED__
#define __ITransactionLocal_FWD_DEFINED__
typedef struct ITransactionLocal ITransactionLocal;
#endif
#ifndef __ITransactionJoin_FWD_DEFINED__
#define __ITransactionJoin_FWD_DEFINED__
typedef struct ITransactionJoin ITransactionJoin;
#endif
#ifndef __ITransactionObject_FWD_DEFINED__
#define __ITransactionObject_FWD_DEFINED__
typedef struct ITransactionObject ITransactionObject;
#endif
#ifndef __ITrusteeAdmin_FWD_DEFINED__
#define __ITrusteeAdmin_FWD_DEFINED__
typedef struct ITrusteeAdmin ITrusteeAdmin;
#endif
#ifndef __ITrusteeGroupAdmin_FWD_DEFINED__
#define __ITrusteeGroupAdmin_FWD_DEFINED__
typedef struct ITrusteeGroupAdmin ITrusteeGroupAdmin;
#endif
#ifndef __IObjectAccessControl_FWD_DEFINED__
#define __IObjectAccessControl_FWD_DEFINED__
typedef struct IObjectAccessControl IObjectAccessControl;
#endif
#ifndef __ISecurityInfo_FWD_DEFINED__
#define __ISecurityInfo_FWD_DEFINED__
typedef struct ISecurityInfo ISecurityInfo;
#endif
#ifndef __ITableCreation_FWD_DEFINED__
#define __ITableCreation_FWD_DEFINED__
typedef struct ITableCreation ITableCreation;
#endif
#ifndef __ITableDefinitionWithConstraints_FWD_DEFINED__
#define __ITableDefinitionWithConstraints_FWD_DEFINED__
typedef struct ITableDefinitionWithConstraints ITableDefinitionWithConstraints;
#endif
#ifndef __IRow_FWD_DEFINED__
#define __IRow_FWD_DEFINED__
typedef struct IRow IRow;
#endif
#ifndef __IRowChange_FWD_DEFINED__
#define __IRowChange_FWD_DEFINED__
typedef struct IRowChange IRowChange;
#endif
#ifndef __IRowSchemaChange_FWD_DEFINED__
#define __IRowSchemaChange_FWD_DEFINED__
typedef struct IRowSchemaChange IRowSchemaChange;
#endif
#ifndef __IGetRow_FWD_DEFINED__
#define __IGetRow_FWD_DEFINED__
typedef struct IGetRow IGetRow;
#endif
#ifndef __IBindResource_FWD_DEFINED__
#define __IBindResource_FWD_DEFINED__
typedef struct IBindResource IBindResource;
#endif
#ifndef __IScopedOperations_FWD_DEFINED__
#define __IScopedOperations_FWD_DEFINED__
typedef struct IScopedOperations IScopedOperations;
#endif
#ifndef __ICreateRow_FWD_DEFINED__
#define __ICreateRow_FWD_DEFINED__
typedef struct ICreateRow ICreateRow;
#endif
#ifndef __IDBBinderProperties_FWD_DEFINED__
#define __IDBBinderProperties_FWD_DEFINED__
typedef struct IDBBinderProperties IDBBinderProperties;
#endif
#ifndef __IColumnsInfo2_FWD_DEFINED__
#define __IColumnsInfo2_FWD_DEFINED__
typedef struct IColumnsInfo2 IColumnsInfo2;
#endif
#ifndef __IRegisterProvider_FWD_DEFINED__
#define __IRegisterProvider_FWD_DEFINED__
typedef struct IRegisterProvider IRegisterProvider;
#endif
#ifndef __IGetSession_FWD_DEFINED__
#define __IGetSession_FWD_DEFINED__
typedef struct IGetSession IGetSession;
#endif
#ifndef __IGetSourceRow_FWD_DEFINED__
#define __IGetSourceRow_FWD_DEFINED__
typedef struct IGetSourceRow IGetSourceRow;
#endif
#ifndef __IRowsetCurrentIndex_FWD_DEFINED__
#define __IRowsetCurrentIndex_FWD_DEFINED__
typedef struct IRowsetCurrentIndex IRowsetCurrentIndex;
#endif
#ifndef __ICommandStream_FWD_DEFINED__
#define __ICommandStream_FWD_DEFINED__
typedef struct ICommandStream ICommandStream;
#endif
#ifndef __IRowsetBookmark_FWD_DEFINED__
#define __IRowsetBookmark_FWD_DEFINED__
typedef struct IRowsetBookmark IRowsetBookmark;
#endif
#include "wtypes.h"
#include "oaidl.h"
#include "ocidl.h"
#include "propidl.h"
#include "transact.h"
#ifdef __cplusplus
extern "C" {
#endif
#ifndef __MIDL_user_allocate_free_DEFINED__
#define __MIDL_user_allocate_free_DEFINED__
void *__RPC_API MIDL_user_allocate(size_t);
void __RPC_API MIDL_user_free(void *);
#endif
#ifdef _WIN64
#include <pshpack8.h>
#else
#include <pshpack2.h>
#endif
#ifndef OLEDBVER
#define OLEDBVER 0x0270
#endif
#ifdef _WIN64
typedef ULONGLONG DBLENGTH;
typedef LONGLONG DBROWOFFSET;
typedef LONGLONG DBROWCOUNT;
typedef ULONGLONG DBCOUNTITEM;
typedef ULONGLONG DBORDINAL;
typedef LONGLONG DB_LORDINAL;
typedef ULONGLONG DBBKMARK;
typedef ULONGLONG DBBYTEOFFSET;
typedef ULONG DBREFCOUNT;
typedef ULONGLONG DB_UPARAMS;
typedef LONGLONG DB_LPARAMS;
typedef DWORDLONG DBHASHVALUE;
typedef DWORDLONG DB_DWRESERVE;
typedef LONGLONG DB_LRESERVE;
typedef ULONGLONG DB_URESERVE;
#else
typedef ULONG DBLENGTH;
typedef LONG DBROWOFFSET;
typedef LONG DBROWCOUNT;
typedef ULONG DBCOUNTITEM;
typedef ULONG DBORDINAL;
typedef LONG DB_LORDINAL;
typedef ULONG DBBKMARK;
typedef ULONG DBBYTEOFFSET;
typedef ULONG DBREFCOUNT;
typedef ULONG DB_UPARAMS;
typedef LONG DB_LPARAMS;
typedef DWORD DBHASHVALUE;
typedef DWORD DB_DWRESERVE;
typedef LONG DB_LRESERVE;
typedef ULONG DB_URESERVE;
#endif
extern RPC_IF_HANDLE __MIDL_itf_oledb_0000_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_oledb_0000_v0_0_s_ifspec;
#ifndef __DBStructureDefinitions_INTERFACE_DEFINED__
#define __DBStructureDefinitions_INTERFACE_DEFINED__
#undef OLEDBDECLSPEC
#define OLEDBDECLSPEC __declspec(selectany)
typedef DWORD DBKIND;
enum DBKINDENUM {
DBKIND_GUID_NAME = 0,DBKIND_GUID_PROPID,DBKIND_NAME,DBKIND_PGUID_NAME,
DBKIND_PGUID_PROPID,DBKIND_PROPID,DBKIND_GUID
};
typedef struct tagDBID {
union {
GUID guid;
GUID *pguid;
} uGuid;
DBKIND eKind;
union {
LPOLESTR pwszName;
ULONG ulPropid;
} uName;
} DBID;
typedef struct tagDB_NUMERIC {
BYTE precision;
BYTE scale;
BYTE sign;
BYTE val[16 ];
} DB_NUMERIC;
#ifndef _ULONGLONG_
typedef hyper LONGLONG;
typedef MIDL_uhyper ULONGLONG;
typedef LONGLONG *PLONGLONG;
typedef ULONGLONG *PULONGLONG;
#endif
#ifndef DECIMAL_NEG
#ifndef DECIMAL_SETZERO
typedef struct tagDEC {
USHORT wReserved;
__C89_NAMELESS union {
__C89_NAMELESS struct {
BYTE scale;
BYTE sign;
};
USHORT signscale;
};
ULONG Hi32;
__C89_NAMELESS union {
__C89_NAMELESS struct {
ULONG Lo32;
ULONG Mid32;
};
ULONGLONG Lo64;
};
} DECIMAL;
#define DECIMAL_NEG ((BYTE)0x80)
#define DECIMAL_SETZERO(dec) {(dec).Lo64 = 0; (dec).Hi32 = 0; (dec).signscale = 0;}
#endif
#endif
typedef struct tagDBVECTOR {
DBLENGTH size;
void *ptr;
} DBVECTOR;
typedef struct tagDBDATE {
SHORT year;
USHORT month;
USHORT day;
} DBDATE;
typedef struct tagDBTIME {
USHORT hour;
USHORT minute;
USHORT second;
} DBTIME;
typedef struct tagDBTIMESTAMP {
SHORT year;
USHORT month;
USHORT day;
USHORT hour;
USHORT minute;
USHORT second;
ULONG fraction;
} DBTIMESTAMP;
#if (OLEDBVER >= 0x0200)
#if !defined(_WINBASE_) && !defined(_FILETIME_)
#define _FILETIME_
typedef struct _FILETIME {
DWORD dwLowDateTime;
DWORD dwHighDateTime;
} FILETIME;
#endif
typedef signed char SBYTE;
typedef struct tagDB_VARNUMERIC {
BYTE precision;
SBYTE scale;
BYTE sign;
BYTE val[1 ];
} DB_VARNUMERIC;
#endif
#if (OLEDBVER >= 0x0210)
typedef struct _SEC_OBJECT_ELEMENT {
GUID guidObjectType;
DBID ObjectID;
} SEC_OBJECT_ELEMENT;
typedef struct _SEC_OBJECT {
DWORD cObjects;
SEC_OBJECT_ELEMENT *prgObjects;
} SEC_OBJECT;
typedef struct tagDBIMPLICITSESSION {
IUnknown *pUnkOuter;
IID *piid;
IUnknown *pSession;
} DBIMPLICITSESSION;
#endif
typedef WORD DBTYPE;
enum DBTYPEENUM {
DBTYPE_EMPTY = 0,DBTYPE_NULL = 1,DBTYPE_I2 = 2,DBTYPE_I4 = 3,DBTYPE_R4 = 4,DBTYPE_R8 = 5,DBTYPE_CY = 6,DBTYPE_DATE = 7,
DBTYPE_BSTR = 8,DBTYPE_IDISPATCH = 9,DBTYPE_ERROR = 10,DBTYPE_BOOL = 11,DBTYPE_VARIANT = 12,DBTYPE_IUNKNOWN = 13,DBTYPE_DECIMAL = 14,
DBTYPE_UI1 = 17,DBTYPE_ARRAY = 0x2000,DBTYPE_BYREF = 0x4000,DBTYPE_I1 = 16,DBTYPE_UI2 = 18,DBTYPE_UI4 = 19,DBTYPE_I8 = 20,DBTYPE_UI8 = 21,
DBTYPE_GUID = 72,DBTYPE_VECTOR = 0x1000,DBTYPE_RESERVED = 0x8000,DBTYPE_BYTES = 128,DBTYPE_STR = 129,DBTYPE_WSTR = 130,DBTYPE_NUMERIC = 131,
DBTYPE_UDT = 132,DBTYPE_DBDATE = 133,DBTYPE_DBTIME = 134,DBTYPE_DBTIMESTAMP = 135
};
#ifdef _WIN64
#define DBTYPEFOR_DBLENGTH DBTYPE_UI8
#define DBTYPEFOR_DBROWCOUNT DBTYPE_I8
#define DBTYPEFOR_DBORDINAL DBTYPE_UI8
#else
#define DBTYPEFOR_DBLENGTH DBTYPE_UI4
#define DBTYPEFOR_DBROWCOUNT DBTYPE_I4
#define DBTYPEFOR_DBORDINAL DBTYPE_UI4
#endif
#if (OLEDBVER >= 0x0150)
enum DBTYPEENUM15 {
DBTYPE_HCHAPTER = 136
};
#endif
#if (OLEDBVER >= 0x0200)
enum DBTYPEENUM20 {
DBTYPE_FILETIME = 64,DBTYPE_PROPVARIANT = 138,DBTYPE_VARNUMERIC = 139
};
#endif
typedef DWORD DBPART;
enum DBPARTENUM {
DBPART_INVALID = 0,DBPART_VALUE = 0x1,DBPART_LENGTH = 0x2,DBPART_STATUS = 0x4
};
typedef DWORD DBPARAMIO;
enum DBPARAMIOENUM {
DBPARAMIO_NOTPARAM = 0,DBPARAMIO_INPUT = 0x1,DBPARAMIO_OUTPUT = 0x2
};
#if (OLEDBVER >= 0x0150)
typedef DWORD DBBINDFLAG;
enum DBBINDFLAGENUM {
DBBINDFLAG_HTML = 0x1
};
#endif
typedef DWORD DBMEMOWNER;
enum DBMEMOWNERENUM {
DBMEMOWNER_CLIENTOWNED = 0,DBMEMOWNER_PROVIDEROWNED = 0x1
};
typedef struct tagDBOBJECT {
DWORD dwFlags;
IID iid;
} DBOBJECT;
typedef DWORD DBSTATUS;
enum DBSTATUSENUM {
DBSTATUS_S_OK = 0,DBSTATUS_E_BADACCESSOR = 1,DBSTATUS_E_CANTCONVERTVALUE = 2,DBSTATUS_S_ISNULL = 3,DBSTATUS_S_TRUNCATED = 4,
DBSTATUS_E_SIGNMISMATCH = 5,DBSTATUS_E_DATAOVERFLOW = 6,DBSTATUS_E_CANTCREATE = 7,DBSTATUS_E_UNAVAILABLE = 8,DBSTATUS_E_PERMISSIONDENIED = 9,
DBSTATUS_E_INTEGRITYVIOLATION = 10,DBSTATUS_E_SCHEMAVIOLATION = 11,DBSTATUS_E_BADSTATUS = 12,DBSTATUS_S_DEFAULT = 13
};
#if (OLEDBVER >= 0x0200)
enum DBSTATUSENUM20 {
MDSTATUS_S_CELLEMPTY = 14,DBSTATUS_S_IGNORE = 15
};
#endif
#if (OLEDBVER >= 0x0210)
enum DBSTATUSENUM21 {
DBSTATUS_E_DOESNOTEXIST = 16,DBSTATUS_E_INVALIDURL = 17,DBSTATUS_E_RESOURCELOCKED = 18,DBSTATUS_E_RESOURCEEXISTS = 19,
DBSTATUS_E_CANNOTCOMPLETE = 20,DBSTATUS_E_VOLUMENOTFOUND = 21,DBSTATUS_E_OUTOFSPACE = 22,DBSTATUS_S_CANNOTDELETESOURCE = 23,
DBSTATUS_E_READONLY = 24,DBSTATUS_E_RESOURCEOUTOFSCOPE = 25,DBSTATUS_S_ALREADYEXISTS = 26
};
typedef DWORD DBBINDURLFLAG;
enum DBBINDURLFLAGENUM {
DBBINDURLFLAG_READ = 0x1,DBBINDURLFLAG_WRITE = 0x2,DBBINDURLFLAG_READWRITE = 0x3,DBBINDURLFLAG_SHARE_DENY_READ = 0x4,
DBBINDURLFLAG_SHARE_DENY_WRITE = 0x8,DBBINDURLFLAG_SHARE_EXCLUSIVE = 0xc,DBBINDURLFLAG_SHARE_DENY_NONE = 0x10,
DBBINDURLFLAG_ASYNCHRONOUS = 0x1000,DBBINDURLFLAG_COLLECTION = 0x2000,DBBINDURLFLAG_DELAYFETCHSTREAM = 0x4000,
DBBINDURLFLAG_DELAYFETCHCOLUMNS = 0x8000,DBBINDURLFLAG_RECURSIVE = 0x400000,DBBINDURLFLAG_OUTPUT = 0x800000,
DBBINDURLFLAG_WAITFORINIT = 0x1000000,DBBINDURLFLAG_OPENIFEXISTS = 0x2000000,DBBINDURLFLAG_OVERWRITE = 0x4000000,
DBBINDURLFLAG_ISSTRUCTUREDDOCUMENT = 0x8000000
};
typedef DWORD DBBINDURLSTATUS;
enum DBBINDURLSTATUSENUM {
DBBINDURLSTATUS_S_OK = 0,DBBINDURLSTATUS_S_DENYNOTSUPPORTED = 0x1,DBBINDURLSTATUS_S_DENYTYPENOTSUPPORTED = 0x4,
DBBINDURLSTATUS_S_REDIRECTED = 0x8
};
#endif
#if (OLEDBVER >= 0x0250)
enum DBSTATUSENUM25 {
DBSTATUS_E_CANCELED = 27,DBSTATUS_E_NOTCOLLECTION = 28
};
#endif
typedef struct tagDBBINDEXT {
BYTE *pExtension;
DBCOUNTITEM ulExtension;
} DBBINDEXT;
typedef struct tagDBBINDING {
DBORDINAL iOrdinal;
DBBYTEOFFSET obValue;
DBBYTEOFFSET obLength;
DBBYTEOFFSET obStatus;
ITypeInfo *pTypeInfo;
DBOBJECT *pObject;
DBBINDEXT *pBindExt;
DBPART dwPart;
DBMEMOWNER dwMemOwner;
DBPARAMIO eParamIO;
DBLENGTH cbMaxLen;
DWORD dwFlags;
DBTYPE wType;
BYTE bPrecision;
BYTE bScale;
} DBBINDING;
typedef DWORD DBROWSTATUS;
enum DBROWSTATUSENUM {
DBROWSTATUS_S_OK = 0,DBROWSTATUS_S_MULTIPLECHANGES = 2,DBROWSTATUS_S_PENDINGCHANGES = 3,DBROWSTATUS_E_CANCELED = 4,DBROWSTATUS_E_CANTRELEASE = 6,
DBROWSTATUS_E_CONCURRENCYVIOLATION = 7,DBROWSTATUS_E_DELETED = 8,DBROWSTATUS_E_PENDINGINSERT = 9,DBROWSTATUS_E_NEWLYINSERTED = 10,
DBROWSTATUS_E_INTEGRITYVIOLATION = 11,DBROWSTATUS_E_INVALID = 12,DBROWSTATUS_E_MAXPENDCHANGESEXCEEDED = 13,DBROWSTATUS_E_OBJECTOPEN = 14,
DBROWSTATUS_E_OUTOFMEMORY = 15,DBROWSTATUS_E_PERMISSIONDENIED = 16,DBROWSTATUS_E_LIMITREACHED = 17,DBROWSTATUS_E_SCHEMAVIOLATION = 18,
DBROWSTATUS_E_FAIL = 19
};
#if (OLEDBVER >= 0x0200)
enum DBROWSTATUSENUM20 {
DBROWSTATUS_S_NOCHANGE = 20
};
#endif
#if (OLEDBVER >= 0x0260)
enum DBSTATUSENUM26 {
DBSTATUS_S_ROWSETCOLUMN = 29
};
#endif
typedef ULONG_PTR HACCESSOR;
#define DB_NULL_HACCESSOR 0x00
#define DB_INVALID_HACCESSOR 0x00
typedef ULONG_PTR HROW;
#define DB_NULL_HROW 0x00
typedef ULONG_PTR HWATCHREGION;
#define DBWATCHREGION_NULL NULL
typedef ULONG_PTR HCHAPTER;
#define DB_NULL_HCHAPTER 0x00
#define DB_INVALID_HCHAPTER 0x00
typedef struct tagDBFAILUREINFO {
HROW hRow;
DBORDINAL iColumn;
HRESULT failure;
} DBFAILUREINFO;
typedef DWORD DBCOLUMNFLAGS;
enum DBCOLUMNFLAGSENUM {
DBCOLUMNFLAGS_ISBOOKMARK = 0x1,DBCOLUMNFLAGS_MAYDEFER = 0x2,DBCOLUMNFLAGS_WRITE = 0x4,DBCOLUMNFLAGS_WRITEUNKNOWN = 0x8,
DBCOLUMNFLAGS_ISFIXEDLENGTH = 0x10,DBCOLUMNFLAGS_ISNULLABLE = 0x20,DBCOLUMNFLAGS_MAYBENULL = 0x40,DBCOLUMNFLAGS_ISLONG = 0x80,
DBCOLUMNFLAGS_ISROWID = 0x100,DBCOLUMNFLAGS_ISROWVER = 0x200,DBCOLUMNFLAGS_CACHEDEFERRED = 0x1000
};
#if (OLEDBVER >= 0x0200)
enum DBCOLUMNFLAGSENUM20 {
DBCOLUMNFLAGS_SCALEISNEGATIVE = 0x4000,DBCOLUMNFLAGS_RESERVED = 0x8000
};
#endif
#ifdef deprecated
#if (OLEDBVER >= 0x0200)
enum DBCOLUMNFLAGSDEPRECATED {
DBCOLUMNFLAGS_KEYCOLUMN = 0x8000
};
#endif
#endif
#if (OLEDBVER >= 0x0150)
enum DBCOLUMNFLAGS15ENUM {
DBCOLUMNFLAGS_ISCHAPTER = 0x2000
};
#endif
#if (OLEDBVER >= 0x0210)
enum DBCOLUMNFLAGSENUM21 {
DBCOLUMNFLAGS_ISROWURL = 0x10000,DBCOLUMNFLAGS_ISDEFAULTSTREAM = 0x20000,DBCOLUMNFLAGS_ISCOLLECTION = 0x40000
};
#endif
#if (OLEDBVER >= 0x0260)
enum DBCOLUMNFLAGSENUM26 {
DBCOLUMNFLAGS_ISSTREAM = 0x80000,DBCOLUMNFLAGS_ISROWSET = 0x100000,DBCOLUMNFLAGS_ISROW = 0x200000,DBCOLUMNFLAGS_ROWSPECIFICCOLUMN = 0x400000
};
enum DBTABLESTATISTICSTYPE26 {
DBSTAT_HISTOGRAM = 0x1,DBSTAT_COLUMN_CARDINALITY = 0x2,DBSTAT_TUPLE_CARDINALITY = 0x4
};
#endif
typedef struct tagDBCOLUMNINFO {
LPOLESTR pwszName;
ITypeInfo *pTypeInfo;
DBORDINAL iOrdinal;
DBCOLUMNFLAGS dwFlags;
DBLENGTH ulColumnSize;
DBTYPE wType;
BYTE bPrecision;
BYTE bScale;
DBID columnid;
} DBCOLUMNINFO;
typedef enum tagDBBOOKMARK {
DBBMK_INVALID = 0,DBBMK_FIRST,DBBMK_LAST
} DBBOOKMARK;
#define STD_BOOKMARKLENGTH 1
#ifdef __cplusplus
static inline WINBOOL IsEqualGUIDBase(const GUID &rguid1,const GUID &rguid2) { return !memcmp(&(rguid1.Data2),&(rguid2.Data2),sizeof(GUID) - sizeof(rguid1.Data1)); }
#else
#define IsEqualGuidBase(rguid1,rguid2) (!memcmp(&((rguid1).Data2),&((rguid2).Data2),sizeof(GUID) - sizeof((rguid1).Data1)))
#endif
#ifdef _WIN64
#define DB_INVALIDCOLUMN _UI64_MAX
#else
#define DB_INVALIDCOLUMN ULONG_MAX
#endif
#define DBCIDGUID {0x0C733A81,0x2A1C,0x11CE,{0xAD,0xE5,0x00,0xAA,0x00,0x44,0x77,0x3D}}
#define DB_NULLGUID {0x00000000,0x0000,0x0000,{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}}
#ifdef DBINITCONSTANTS
extern const OLEDBDECLSPEC DBID DB_NULLID = {DB_NULLGUID,0,(LPOLESTR)0};
extern const OLEDBDECLSPEC DBID DBCOLUMN_IDNAME = {DBCIDGUID,DBKIND_GUID_PROPID,(LPOLESTR)2};
extern const OLEDBDECLSPEC DBID DBCOLUMN_NAME = {DBCIDGUID,DBKIND_GUID_PROPID,(LPOLESTR)3};
extern const OLEDBDECLSPEC DBID DBCOLUMN_NUMBER = {DBCIDGUID,DBKIND_GUID_PROPID,(LPOLESTR)4};
extern const OLEDBDECLSPEC DBID DBCOLUMN_TYPE = {DBCIDGUID,DBKIND_GUID_PROPID,(LPOLESTR)5};
extern const OLEDBDECLSPEC DBID DBCOLUMN_PRECISION = {DBCIDGUID,DBKIND_GUID_PROPID,(LPOLESTR)7};
extern const OLEDBDECLSPEC DBID DBCOLUMN_SCALE = {DBCIDGUID,DBKIND_GUID_PROPID,(LPOLESTR)8};
extern const OLEDBDECLSPEC DBID DBCOLUMN_FLAGS = {DBCIDGUID,DBKIND_GUID_PROPID,(LPOLESTR)9};
extern const OLEDBDECLSPEC DBID DBCOLUMN_BASECOLUMNNAME = {DBCIDGUID,DBKIND_GUID_PROPID,(LPOLESTR)10};
extern const OLEDBDECLSPEC DBID DBCOLUMN_BASETABLENAME = {DBCIDGUID,DBKIND_GUID_PROPID,(LPOLESTR)11};
extern const OLEDBDECLSPEC DBID DBCOLUMN_COLLATINGSEQUENCE = {DBCIDGUID,DBKIND_GUID_PROPID,(LPOLESTR)12};
extern const OLEDBDECLSPEC DBID DBCOLUMN_COMPUTEMODE = {DBCIDGUID,DBKIND_GUID_PROPID,(LPOLESTR)13};
extern const OLEDBDECLSPEC DBID DBCOLUMN_DEFAULTVALUE = {DBCIDGUID,DBKIND_GUID_PROPID,(LPOLESTR)14};
extern const OLEDBDECLSPEC DBID DBCOLUMN_DOMAINNAME = {DBCIDGUID,DBKIND_GUID_PROPID,(LPOLESTR)15};
extern const OLEDBDECLSPEC DBID DBCOLUMN_HASDEFAULT = {DBCIDGUID,DBKIND_GUID_PROPID,(LPOLESTR)16};
extern const OLEDBDECLSPEC DBID DBCOLUMN_ISAUTOINCREMENT = {DBCIDGUID,DBKIND_GUID_PROPID,(LPOLESTR)17};
extern const OLEDBDECLSPEC DBID DBCOLUMN_ISCASESENSITIVE = {DBCIDGUID,DBKIND_GUID_PROPID,(LPOLESTR)18};
extern const OLEDBDECLSPEC DBID DBCOLUMN_ISSEARCHABLE = {DBCIDGUID,DBKIND_GUID_PROPID,(LPOLESTR)20};
extern const OLEDBDECLSPEC DBID DBCOLUMN_ISUNIQUE = {DBCIDGUID,DBKIND_GUID_PROPID,(LPOLESTR)21};
extern const OLEDBDECLSPEC DBID DBCOLUMN_BASECATALOGNAME = {DBCIDGUID,DBKIND_GUID_PROPID,(LPOLESTR)23};
extern const OLEDBDECLSPEC DBID DBCOLUMN_BASESCHEMANAME = {DBCIDGUID,DBKIND_GUID_PROPID,(LPOLESTR)24};
extern const OLEDBDECLSPEC DBID DBCOLUMN_GUID = {DBCIDGUID,DBKIND_GUID_PROPID,(LPOLESTR)29};
extern const OLEDBDECLSPEC DBID DBCOLUMN_PROPID = {DBCIDGUID,DBKIND_GUID_PROPID,(LPOLESTR)30};
extern const OLEDBDECLSPEC DBID DBCOLUMN_TYPEINFO = {DBCIDGUID,DBKIND_GUID_PROPID,(LPOLESTR)31};
extern const OLEDBDECLSPEC DBID DBCOLUMN_DOMAINCATALOG = {DBCIDGUID,DBKIND_GUID_PROPID,(LPOLESTR)32};
extern const OLEDBDECLSPEC DBID DBCOLUMN_DOMAINSCHEMA = {DBCIDGUID,DBKIND_GUID_PROPID,(LPOLESTR)33};
extern const OLEDBDECLSPEC DBID DBCOLUMN_DATETIMEPRECISION = {DBCIDGUID,DBKIND_GUID_PROPID,(LPOLESTR)34};
extern const OLEDBDECLSPEC DBID DBCOLUMN_NUMERICPRECISIONRADIX = {DBCIDGUID,DBKIND_GUID_PROPID,(LPOLESTR)35};
extern const OLEDBDECLSPEC DBID DBCOLUMN_OCTETLENGTH = {DBCIDGUID,DBKIND_GUID_PROPID,(LPOLESTR)36};
extern const OLEDBDECLSPEC DBID DBCOLUMN_COLUMNSIZE = {DBCIDGUID,DBKIND_GUID_PROPID,(LPOLESTR)37};
extern const OLEDBDECLSPEC DBID DBCOLUMN_CLSID = {DBCIDGUID,DBKIND_GUID_PROPID,(LPOLESTR)38};
#if (OLEDBVER >= 0x0150)
extern const OLEDBDECLSPEC DBID DBCOLUMN_MAYSORT = {DBCIDGUID,DBKIND_GUID_PROPID,(LPOLESTR)39};
#endif
#else
extern const DBID DB_NULLID;
extern const DBID DBCOLUMN_IDNAME;
extern const DBID DBCOLUMN_NAME;
extern const DBID DBCOLUMN_NUMBER;
extern const DBID DBCOLUMN_TYPE;
extern const DBID DBCOLUMN_PRECISION;
extern const DBID DBCOLUMN_SCALE;
extern const DBID DBCOLUMN_FLAGS;
extern const DBID DBCOLUMN_BASECOLUMNNAME;
extern const DBID DBCOLUMN_BASETABLENAME;
extern const DBID DBCOLUMN_COLLATINGSEQUENCE;
extern const DBID DBCOLUMN_COMPUTEMODE;
extern const DBID DBCOLUMN_DEFAULTVALUE;
extern const DBID DBCOLUMN_DOMAINNAME;
extern const DBID DBCOLUMN_HASDEFAULT;
extern const DBID DBCOLUMN_ISAUTOINCREMENT;
extern const DBID DBCOLUMN_ISCASESENSITIVE;
extern const DBID DBCOLUMN_ISSEARCHABLE;
extern const DBID DBCOLUMN_ISUNIQUE;
extern const DBID DBCOLUMN_BASECATALOGNAME;
extern const DBID DBCOLUMN_BASESCHEMANAME;
extern const DBID DBCOLUMN_GUID;
extern const DBID DBCOLUMN_PROPID;
extern const DBID DBCOLUMN_TYPEINFO;
extern const DBID DBCOLUMN_DOMAINCATALOG;
extern const DBID DBCOLUMN_DOMAINSCHEMA;
extern const DBID DBCOLUMN_DATETIMEPRECISION;
extern const DBID DBCOLUMN_NUMERICPRECISIONRADIX;
extern const DBID DBCOLUMN_OCTETLENGTH;
extern const DBID DBCOLUMN_COLUMNSIZE;
extern const DBID DBCOLUMN_CLSID;
#if (OLEDBVER >= 0x0150)
extern const DBID DBCOLUMN_MAYSORT;
#endif
#endif
#ifdef DBINITCONSTANTS
#if (OLEDBVER >= 0x0260)
extern const OLEDBDECLSPEC GUID MDSCHEMA_FUNCTIONS = {0xa07ccd07,0x8148,0x11d0,{0x87,0xbb,0x00,0xc0,0x4f,0xc3,0x39,0x42}};
extern const OLEDBDECLSPEC GUID MDSCHEMA_ACTIONS = {0xa07ccd08,0x8148,0x11d0,{0x87,0xbb,0x00,0xc0,0x4f,0xc3,0x39,0x42}};
extern const OLEDBDECLSPEC GUID MDSCHEMA_COMMANDS = {0xa07ccd09,0x8148,0x11d0,{0x87,0xbb,0x00,0xc0,0x4f,0xc3,0x39,0x42}};
extern const OLEDBDECLSPEC GUID MDSCHEMA_SETS = {0xa07ccd0b,0x8148,0x11d0,{0x87,0xbb,0x00,0xc0,0x4f,0xc3,0x39,0x42}};
#endif
#if (OLEDBVER >= 0x0200)
extern const OLEDBDECLSPEC GUID DBSCHEMA_TABLES_INFO = {0xc8b522e0,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
extern const OLEDBDECLSPEC GUID MDGUID_MDX = {0xa07cccd0,0x8148,0x11d0,{0x87,0xbb,0x00,0xc0,0x4f,0xc3,0x39,0x42}};
extern const OLEDBDECLSPEC GUID DBGUID_MDX = {0xa07cccd0,0x8148,0x11d0,{0x87,0xbb,0x00,0xc0,0x4f,0xc3,0x39,0x42}};
extern const OLEDBDECLSPEC GUID MDSCHEMA_CUBES = {0xc8b522d8,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
extern const OLEDBDECLSPEC GUID MDSCHEMA_DIMENSIONS = {0xc8b522d9,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
extern const OLEDBDECLSPEC GUID MDSCHEMA_HIERARCHIES = {0xc8b522da,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
extern const OLEDBDECLSPEC GUID MDSCHEMA_LEVELS = {0xc8b522db,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
extern const OLEDBDECLSPEC GUID MDSCHEMA_MEASURES = {0xc8b522dc,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
extern const OLEDBDECLSPEC GUID MDSCHEMA_PROPERTIES = {0xc8b522dd,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
extern const OLEDBDECLSPEC GUID MDSCHEMA_MEMBERS = {0xc8b522de,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
extern const OLEDBDECLSPEC DBID DBCOLUMN_BASETABLEVERSION = {DBCIDGUID,DBKIND_GUID_PROPID,(LPOLESTR)40};
extern const OLEDBDECLSPEC DBID DBCOLUMN_KEYCOLUMN = {DBCIDGUID,DBKIND_GUID_PROPID,(LPOLESTR)41};
#endif
#if (OLEDBVER >= 0x0210)
#define DBGUID_ROWURL {0x0C733AB6,0x2A1C,0x11CE,{0xAD,0xE5,0x00,0xAA,0x00,0x44,0x77,0x3D}}
#define DBGUID_ROWDEFAULTSTREAM {0x0C733AB7,0x2A1C,0x11CE,{0xAD,0xE5,0x00,0xAA,0x00,0x44,0x77,0x3D}}
extern const OLEDBDECLSPEC GUID DBPROPSET_TRUSTEE = {0xc8b522e1,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
extern const OLEDBDECLSPEC GUID DBOBJECT_TABLE = {0xc8b522e2,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
extern const OLEDBDECLSPEC GUID DBOBJECT_COLUMN = {0xc8b522e4,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
extern const OLEDBDECLSPEC GUID DBOBJECT_DATABASE = {0xc8b522e5,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
extern const OLEDBDECLSPEC GUID DBOBJECT_PROCEDURE = {0xc8b522e6,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
extern const OLEDBDECLSPEC GUID DBOBJECT_VIEW = {0xc8b522e7,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
extern const OLEDBDECLSPEC GUID DBOBJECT_SCHEMA = {0xc8b522e8,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
extern const OLEDBDECLSPEC GUID DBOBJECT_DOMAIN = {0xc8b522e9,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
extern const OLEDBDECLSPEC GUID DBOBJECT_COLLATION = {0xc8b522ea,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
extern const OLEDBDECLSPEC GUID DBOBJECT_TRUSTEE = {0xc8b522eb,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
extern const OLEDBDECLSPEC GUID DBOBJECT_SCHEMAROWSET = {0xc8b522ec,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
extern const OLEDBDECLSPEC GUID DBOBJECT_CHARACTERSET = {0xc8b522ed,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
extern const OLEDBDECLSPEC GUID DBOBJECT_TRANSLATION = {0xc8b522ee,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
extern const OLEDBDECLSPEC GUID DBSCHEMA_TRUSTEE = {0xc8b522ef,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
extern const OLEDBDECLSPEC GUID DBPROPSET_COLUMNALL = {0xc8b522f0,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
extern const OLEDBDECLSPEC GUID DBPROPSET_INDEXALL = {0xc8b522f1,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
extern const OLEDBDECLSPEC GUID DBPROPSET_TABLEALL = {0xc8b522f2,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
extern const OLEDBDECLSPEC GUID DBPROPSET_TRUSTEEALL = {0xc8b522f3,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
extern const OLEDBDECLSPEC GUID DBPROPSET_CONSTRAINTALL = {0xc8b522fa,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
extern const OLEDBDECLSPEC GUID DBGUID_DSO = {0xc8b522f4,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
extern const OLEDBDECLSPEC GUID DBGUID_SESSION = {0xc8b522f5,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
extern const OLEDBDECLSPEC GUID DBGUID_ROWSET = {0xc8b522f6,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
extern const OLEDBDECLSPEC GUID DBGUID_ROW = {0xc8b522f7,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
extern const OLEDBDECLSPEC GUID DBGUID_COMMAND = {0xc8b522f8,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
extern const OLEDBDECLSPEC GUID DBGUID_STREAM = {0xc8b522f9,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
extern const OLEDBDECLSPEC DBID DBROWCOL_ROWURL = {DBGUID_ROWURL,DBKIND_GUID_PROPID,(LPOLESTR)0};
extern const OLEDBDECLSPEC DBID DBROWCOL_PARSENAME = {DBGUID_ROWURL,DBKIND_GUID_PROPID,(LPOLESTR)2};
extern const OLEDBDECLSPEC DBID DBROWCOL_PARENTNAME = {DBGUID_ROWURL,DBKIND_GUID_PROPID,(LPOLESTR)3};
extern const OLEDBDECLSPEC DBID DBROWCOL_ABSOLUTEPARSENAME = {DBGUID_ROWURL,DBKIND_GUID_PROPID,(LPOLESTR)4};
extern const OLEDBDECLSPEC DBID DBROWCOL_ISHIDDEN = {DBGUID_ROWURL,DBKIND_GUID_PROPID,(LPOLESTR)5};
extern const OLEDBDECLSPEC DBID DBROWCOL_ISREADONLY = {DBGUID_ROWURL,DBKIND_GUID_PROPID,(LPOLESTR)6};
extern const OLEDBDECLSPEC DBID DBROWCOL_CONTENTTYPE = {DBGUID_ROWURL,DBKIND_GUID_PROPID,(LPOLESTR)7};
extern const OLEDBDECLSPEC DBID DBROWCOL_CONTENTCLASS = {DBGUID_ROWURL,DBKIND_GUID_PROPID,(LPOLESTR)8};
extern const OLEDBDECLSPEC DBID DBROWCOL_CONTENTLANGUAGE = {DBGUID_ROWURL,DBKIND_GUID_PROPID,(LPOLESTR)9};
extern const OLEDBDECLSPEC DBID DBROWCOL_CREATIONTIME = {DBGUID_ROWURL,DBKIND_GUID_PROPID,(LPOLESTR)10};
extern const OLEDBDECLSPEC DBID DBROWCOL_LASTACCESSTIME = {DBGUID_ROWURL,DBKIND_GUID_PROPID,(LPOLESTR)11};
extern const OLEDBDECLSPEC DBID DBROWCOL_LASTWRITETIME = {DBGUID_ROWURL,DBKIND_GUID_PROPID,(LPOLESTR)12};
extern const OLEDBDECLSPEC DBID DBROWCOL_STREAMSIZE = {DBGUID_ROWURL,DBKIND_GUID_PROPID,(LPOLESTR)13};
extern const OLEDBDECLSPEC DBID DBROWCOL_ISCOLLECTION = {DBGUID_ROWURL,DBKIND_GUID_PROPID,(LPOLESTR)14};
extern const OLEDBDECLSPEC DBID DBROWCOL_ISSTRUCTUREDDOCUMENT = {DBGUID_ROWURL,DBKIND_GUID_PROPID,(LPOLESTR)15};
extern const OLEDBDECLSPEC DBID DBROWCOL_DEFAULTDOCUMENT = {DBGUID_ROWURL,DBKIND_GUID_PROPID,(LPOLESTR)16};
extern const OLEDBDECLSPEC DBID DBROWCOL_DISPLAYNAME = {DBGUID_ROWURL,DBKIND_GUID_PROPID,(LPOLESTR)17};
extern const OLEDBDECLSPEC DBID DBROWCOL_ISROOT = {DBGUID_ROWURL,DBKIND_GUID_PROPID,(LPOLESTR)18};
extern const OLEDBDECLSPEC DBID DBROWCOL_DEFAULTSTREAM = {DBGUID_ROWDEFAULTSTREAM,DBKIND_GUID_PROPID,(LPOLESTR)0};
extern const OLEDBDECLSPEC GUID DBGUID_CONTAINEROBJECT = {0xc8b522fb,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
#endif
extern const OLEDBDECLSPEC GUID DBSCHEMA_ASSERTIONS = {0xc8b52210,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
extern const OLEDBDECLSPEC GUID DBSCHEMA_CATALOGS = {0xc8b52211,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
extern const OLEDBDECLSPEC GUID DBSCHEMA_CHARACTER_SETS = {0xc8b52212,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
extern const OLEDBDECLSPEC GUID DBSCHEMA_COLLATIONS = {0xc8b52213,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
extern const OLEDBDECLSPEC GUID DBSCHEMA_COLUMNS = {0xc8b52214,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
extern const OLEDBDECLSPEC GUID DBSCHEMA_CHECK_CONSTRAINTS = {0xc8b52215,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
extern const OLEDBDECLSPEC GUID DBSCHEMA_CONSTRAINT_COLUMN_USAGE = {0xc8b52216,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
extern const OLEDBDECLSPEC GUID DBSCHEMA_CONSTRAINT_TABLE_USAGE = {0xc8b52217,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
extern const OLEDBDECLSPEC GUID DBSCHEMA_KEY_COLUMN_USAGE = {0xc8b52218,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
extern const OLEDBDECLSPEC GUID DBSCHEMA_REFERENTIAL_CONSTRAINTS = {0xc8b52219,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
extern const OLEDBDECLSPEC GUID DBSCHEMA_TABLE_CONSTRAINTS = {0xc8b5221a,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
extern const OLEDBDECLSPEC GUID DBSCHEMA_COLUMN_DOMAIN_USAGE = {0xc8b5221b,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
extern const OLEDBDECLSPEC GUID DBSCHEMA_INDEXES = {0xc8b5221e,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
extern const OLEDBDECLSPEC GUID DBSCHEMA_COLUMN_PRIVILEGES = {0xc8b52221,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
extern const OLEDBDECLSPEC GUID DBSCHEMA_TABLE_PRIVILEGES = {0xc8b52222,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
extern const OLEDBDECLSPEC GUID DBSCHEMA_USAGE_PRIVILEGES = {0xc8b52223,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
extern const OLEDBDECLSPEC GUID DBSCHEMA_PROCEDURES = {0xc8b52224,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
extern const OLEDBDECLSPEC GUID DBSCHEMA_SCHEMATA = {0xc8b52225,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
extern const OLEDBDECLSPEC GUID DBSCHEMA_SQL_LANGUAGES = {0xc8b52226,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
extern const OLEDBDECLSPEC GUID DBSCHEMA_STATISTICS = {0xc8b52227,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
extern const OLEDBDECLSPEC GUID DBSCHEMA_TABLES = {0xc8b52229,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
extern const OLEDBDECLSPEC GUID DBSCHEMA_TRANSLATIONS = {0xc8b5222a,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
extern const OLEDBDECLSPEC GUID DBSCHEMA_PROVIDER_TYPES = {0xc8b5222c,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
extern const OLEDBDECLSPEC GUID DBSCHEMA_VIEWS = {0xc8b5222d,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
extern const OLEDBDECLSPEC GUID DBSCHEMA_VIEW_COLUMN_USAGE = {0xc8b5222e,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
extern const OLEDBDECLSPEC GUID DBSCHEMA_VIEW_TABLE_USAGE = {0xc8b5222f,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
extern const OLEDBDECLSPEC GUID DBSCHEMA_PROCEDURE_PARAMETERS = {0xc8b522b8,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
extern const OLEDBDECLSPEC GUID DBSCHEMA_FOREIGN_KEYS = {0xc8b522c4,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
extern const OLEDBDECLSPEC GUID DBSCHEMA_PRIMARY_KEYS = {0xc8b522c5,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
extern const OLEDBDECLSPEC GUID DBSCHEMA_PROCEDURE_COLUMNS = {0xc8b522c9,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
extern const OLEDBDECLSPEC GUID DBCOL_SELFCOLUMNS = {0xc8b52231,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
extern const OLEDBDECLSPEC GUID DBCOL_SPECIALCOL = {0xc8b52232,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
extern const OLEDBDECLSPEC GUID PSGUID_QUERY = {0x49691c90,0x7e17,0x101a,{0xa9,0x1c,0x08,0x00,0x2b,0x2e,0xcd,0xa9}};
extern const OLEDBDECLSPEC GUID DBPROPSET_COLUMN = {0xc8b522b9,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
extern const OLEDBDECLSPEC GUID DBPROPSET_DATASOURCE = {0xc8b522ba,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
extern const OLEDBDECLSPEC GUID DBPROPSET_DATASOURCEINFO = {0xc8b522bb,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
extern const OLEDBDECLSPEC GUID DBPROPSET_DBINIT = {0xc8b522bc,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
extern const OLEDBDECLSPEC GUID DBPROPSET_INDEX = {0xc8b522bd,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
extern const OLEDBDECLSPEC GUID DBPROPSET_ROWSET = {0xc8b522be,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
extern const OLEDBDECLSPEC GUID DBPROPSET_TABLE = {0xc8b522bf,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
extern const OLEDBDECLSPEC GUID DBPROPSET_DATASOURCEALL = {0xc8b522c0,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
extern const OLEDBDECLSPEC GUID DBPROPSET_DATASOURCEINFOALL = {0xc8b522c1,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
extern const OLEDBDECLSPEC GUID DBPROPSET_ROWSETALL = {0xc8b522c2,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
extern const OLEDBDECLSPEC GUID DBPROPSET_SESSION = {0xc8b522c6,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
extern const OLEDBDECLSPEC GUID DBPROPSET_SESSIONALL = {0xc8b522c7,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
extern const OLEDBDECLSPEC GUID DBPROPSET_DBINITALL = {0xc8b522ca,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
extern const OLEDBDECLSPEC GUID DBPROPSET_PROPERTIESINERROR = {0xc8b522d4,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
#if (OLEDBVER >= 0x0150)
extern const OLEDBDECLSPEC GUID DBPROPSET_VIEW = {0xc8b522df,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
#endif
#if (OLEDBVER >= 0x0250)
extern const OLEDBDECLSPEC GUID DBPROPSET_VIEWALL = {0xc8b522fc,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
#endif
#if (OLEDBVER >= 0x0260)
extern const OLEDBDECLSPEC GUID DBPROPSET_STREAM = {0xc8b522fd,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
extern const OLEDBDECLSPEC GUID DBPROPSET_STREAMALL = {0xc8b522fe,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
extern const OLEDBDECLSPEC GUID DBSCHEMA_TABLE_STATISTICS = {0xc8b522ff,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
extern const OLEDBDECLSPEC GUID DBSCHEMA_CHECK_CONSTRAINTS_BY_TABLE = {0xc8b52301,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
extern const OLEDBDECLSPEC GUID DBGUID_HISTOGRAM_ROWSET = {0xc8b52300,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
extern const OLEDBDECLSPEC DBID DBCOLUMN_DERIVEDCOLUMNNAME = {DBCIDGUID,DBKIND_GUID_PROPID,(LPOLESTR)43};
#endif
extern const OLEDBDECLSPEC GUID DBGUID_DBSQL = {0xc8b521fb,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
extern const OLEDBDECLSPEC GUID DBGUID_DEFAULT = {0xc8b521fb,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
extern const OLEDBDECLSPEC GUID DBGUID_SQL = {0xc8b522d7,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}};
#else
#if (OLEDBVER >= 0x0200)
extern const GUID DBSCHEMA_TABLES_INFO;
extern const GUID MDGUID_MDX;
extern const GUID DBGUID_MDX;
extern const GUID MDSCHEMA_CUBES;
extern const GUID MDSCHEMA_DIMENSIONS;
extern const GUID MDSCHEMA_HIERARCHIES;
extern const GUID MDSCHEMA_LEVELS;
extern const GUID MDSCHEMA_MEASURES;
extern const GUID MDSCHEMA_PROPERTIES;
extern const GUID MDSCHEMA_MEMBERS;
extern const DBID DBCOLUMN_BASETABLEVERSION;
extern const DBID DBCOLUMN_KEYCOLUMN;
#endif
#if (OLEDBVER >= 0x0210)
extern const GUID DBPROPSET_TRUSTEE;
extern const GUID DBOBJECT_TABLE;
extern const GUID DBOBJECT_COLUMN;
extern const GUID DBOBJECT_DATABASE;
extern const GUID DBOBJECT_PROCEDURE;
extern const GUID DBOBJECT_VIEW;
extern const GUID DBOBJECT_SCHEMA;
extern const GUID DBOBJECT_DOMAIN;
extern const GUID DBOBJECT_COLLATION;
extern const GUID DBOBJECT_TRUSTEE;
extern const GUID DBOBJECT_SCHEMAROWSET;
extern const GUID DBOBJECT_CHARACTERSET;
extern const GUID DBOBJECT_TRANSLATION;
extern const GUID DBSCHEMA_TRUSTEE;
extern const GUID DBPROPSET_COLUMNALL;
extern const GUID DBPROPSET_INDEXALL;
extern const GUID DBPROPSET_TABLEALL;
extern const GUID DBPROPSET_TRUSTEEALL;
extern const GUID DBPROPSET_CONSTRAINTALL;
extern const GUID DBGUID_DSO;
extern const GUID DBGUID_SESSION;
extern const GUID DBGUID_ROWSET;
extern const GUID DBGUID_ROW;
extern const GUID DBGUID_COMMAND;
extern const GUID DBGUID_STREAM;
extern const DBID DBROWCOL_ROWURL;
extern const DBID DBROWCOL_PARSENAME;
extern const DBID DBROWCOL_PARENTNAME;
extern const DBID DBROWCOL_ABSOLUTEPARSENAME;
extern const DBID DBROWCOL_ISHIDDEN;
extern const DBID DBROWCOL_ISREADONLY;
extern const DBID DBROWCOL_CONTENTTYPE;
extern const DBID DBROWCOL_CONTENTCLASS;
extern const DBID DBROWCOL_CONTENTLANGUAGE;
extern const DBID DBROWCOL_CREATIONTIME;
extern const DBID DBROWCOL_LASTACCESSTIME;
extern const DBID DBROWCOL_LASTWRITETIME;
extern const DBID DBROWCOL_STREAMSIZE;
extern const DBID DBROWCOL_ISCOLLECTION;
extern const DBID DBROWCOL_ISSTRUCTUREDDOCUMENT;
extern const DBID DBROWCOL_DEFAULTDOCUMENT;
extern const DBID DBROWCOL_DISPLAYNAME;
extern const DBID DBROWCOL_ISROOT;
extern const DBID DBROWCOL_DEFAULTSTREAM;
extern const GUID DBGUID_CONTAINEROBJECT;
#endif
extern const GUID DBSCHEMA_ASSERTIONS;
extern const GUID DBSCHEMA_CATALOGS;
extern const GUID DBSCHEMA_CHARACTER_SETS;
extern const GUID DBSCHEMA_COLLATIONS;
extern const GUID DBSCHEMA_COLUMNS;
extern const GUID DBSCHEMA_CHECK_CONSTRAINTS;
extern const GUID DBSCHEMA_CONSTRAINT_COLUMN_USAGE;
extern const GUID DBSCHEMA_CONSTRAINT_TABLE_USAGE;
extern const GUID DBSCHEMA_KEY_COLUMN_USAGE;
extern const GUID DBSCHEMA_REFERENTIAL_CONSTRAINTS;
extern const GUID DBSCHEMA_TABLE_CONSTRAINTS;
extern const GUID DBSCHEMA_COLUMN_DOMAIN_USAGE;
extern const GUID DBSCHEMA_INDEXES;
extern const GUID DBSCHEMA_COLUMN_PRIVILEGES;
extern const GUID DBSCHEMA_TABLE_PRIVILEGES;
extern const GUID DBSCHEMA_USAGE_PRIVILEGES;
extern const GUID DBSCHEMA_PROCEDURES;
extern const GUID DBSCHEMA_SCHEMATA;
extern const GUID DBSCHEMA_SQL_LANGUAGES;
extern const GUID DBSCHEMA_STATISTICS;
extern const GUID DBSCHEMA_TABLES;
extern const GUID DBSCHEMA_TRANSLATIONS;
extern const GUID DBSCHEMA_PROVIDER_TYPES;
extern const GUID DBSCHEMA_VIEWS;
extern const GUID DBSCHEMA_VIEW_COLUMN_USAGE;
extern const GUID DBSCHEMA_VIEW_TABLE_USAGE;
extern const GUID DBSCHEMA_PROCEDURE_PARAMETERS;
extern const GUID DBSCHEMA_FOREIGN_KEYS;
extern const GUID DBSCHEMA_PRIMARY_KEYS;
extern const GUID DBSCHEMA_PROCEDURE_COLUMNS;
extern const GUID DBCOL_SELFCOLUMNS;
extern const GUID DBCOL_SPECIALCOL;
extern const GUID PSGUID_QUERY;
extern const GUID DBPROPSET_COLUMN;
extern const GUID DBPROPSET_DATASOURCE;
extern const GUID DBPROPSET_DATASOURCEINFO;
extern const GUID DBPROPSET_DBINIT;
extern const GUID DBPROPSET_INDEX;
extern const GUID DBPROPSET_ROWSET;
extern const GUID DBPROPSET_TABLE;
extern const GUID DBPROPSET_DATASOURCEALL;
extern const GUID DBPROPSET_DATASOURCEINFOALL;
extern const GUID DBPROPSET_ROWSETALL;
extern const GUID DBPROPSET_SESSION;
extern const GUID DBPROPSET_SESSIONALL;
extern const GUID DBPROPSET_DBINITALL;
extern const GUID DBPROPSET_PROPERTIESINERROR;
#if (OLEDBVER >= 0x0150)
extern const GUID DBPROPSET_VIEW;
#endif
#if (OLEDBVER >= 0x0250)
extern const GUID DBPROPSET_VIEWALL;
#endif
#if (OLEDBVER >= 0x0260)
extern const GUID DBPROPSET_STREAM;
extern const GUID DBPROPSET_STREAMALL;
extern const GUID DBSCHEMA_TABLE_STATISTICS;
extern const GUID DBSCHEMA_CHECK_CONSTRAINTS_BY_TABLE;
extern const GUID DBGUID_HISTOGRAM_ROWSET;
extern const DBID DBCOLUMN_DERIVEDCOLUMNNAME;
extern const GUID MDSCHEMA_FUNCTIONS;
extern const GUID MDSCHEMA_ACTIONS;
extern const GUID MDSCHEMA_COMMANDS;
extern const GUID MDSCHEMA_SETS;
#endif
extern const GUID DBGUID_DBSQL;
extern const GUID DBGUID_DEFAULT;
extern const GUID DBGUID_SQL;
#endif
enum DBPROPENUM {
DBPROP_ABORTPRESERVE = 0x2,DBPROP_ACTIVESESSIONS = 0x3,DBPROP_APPENDONLY = 0xbb,DBPROP_ASYNCTXNABORT = 0xa8,DBPROP_ASYNCTXNCOMMIT = 0x4,
DBPROP_AUTH_CACHE_AUTHINFO = 0x5,DBPROP_AUTH_ENCRYPT_PASSWORD = 0x6,DBPROP_AUTH_INTEGRATED = 0x7,DBPROP_AUTH_MASK_PASSWORD = 0x8,
DBPROP_AUTH_PASSWORD = 0x9,DBPROP_AUTH_PERSIST_ENCRYPTED = 0xa,DBPROP_AUTH_PERSIST_SENSITIVE_AUTHINFO = 0xb,DBPROP_AUTH_USERID = 0xc,
DBPROP_BLOCKINGSTORAGEOBJECTS = 0xd,DBPROP_BOOKMARKS = 0xe,DBPROP_BOOKMARKSKIPPED = 0xf,DBPROP_BOOKMARKTYPE = 0x10,DBPROP_BYREFACCESSORS = 0x78,
DBPROP_CACHEDEFERRED = 0x11,DBPROP_CANFETCHBACKWARDS = 0x12,DBPROP_CANHOLDROWS = 0x13,DBPROP_CANSCROLLBACKWARDS = 0x15,
DBPROP_CATALOGLOCATION = 0x16,DBPROP_CATALOGTERM = 0x17,DBPROP_CATALOGUSAGE = 0x18,DBPROP_CHANGEINSERTEDROWS = 0xbc,
DBPROP_COL_AUTOINCREMENT = 0x1a,DBPROP_COL_DEFAULT = 0x1b,DBPROP_COL_DESCRIPTION = 0x1c,DBPROP_COL_FIXEDLENGTH = 0xa7,
DBPROP_COL_NULLABLE = 0x1d,DBPROP_COL_PRIMARYKEY = 0x1e,DBPROP_COL_UNIQUE = 0x1f,DBPROP_COLUMNDEFINITION = 0x20,DBPROP_COLUMNRESTRICT = 0x21,
DBPROP_COMMANDTIMEOUT = 0x22,DBPROP_COMMITPRESERVE = 0x23,DBPROP_CONCATNULLBEHAVIOR = 0x24,DBPROP_CURRENTCATALOG = 0x25,
DBPROP_DATASOURCENAME = 0x26,DBPROP_DATASOURCEREADONLY = 0x27,DBPROP_DBMSNAME = 0x28,DBPROP_DBMSVER = 0x29,DBPROP_DEFERRED = 0x2a,
DBPROP_DELAYSTORAGEOBJECTS = 0x2b,DBPROP_DSOTHREADMODEL = 0xa9,DBPROP_GROUPBY = 0x2c,DBPROP_HETEROGENEOUSTABLES = 0x2d,DBPROP_IAccessor = 0x79,
DBPROP_IColumnsInfo = 0x7a,DBPROP_IColumnsRowset = 0x7b,DBPROP_IConnectionPointContainer = 0x7c,DBPROP_IConvertType = 0xc2,
DBPROP_IRowset = 0x7e,DBPROP_IRowsetChange = 0x7f,DBPROP_IRowsetIdentity = 0x80,DBPROP_IRowsetIndex = 0x9f,DBPROP_IRowsetInfo = 0x81,
DBPROP_IRowsetLocate = 0x82,DBPROP_IRowsetResynch = 0x84,DBPROP_IRowsetScroll = 0x85,DBPROP_IRowsetUpdate = 0x86,
DBPROP_ISupportErrorInfo = 0x87,DBPROP_ILockBytes = 0x88,DBPROP_ISequentialStream = 0x89,DBPROP_IStorage = 0x8a,DBPROP_IStream = 0x8b,
DBPROP_IDENTIFIERCASE = 0x2e,DBPROP_IMMOBILEROWS = 0x2f,DBPROP_INDEX_AUTOUPDATE = 0x30,DBPROP_INDEX_CLUSTERED = 0x31,
DBPROP_INDEX_FILLFACTOR = 0x32,DBPROP_INDEX_INITIALSIZE = 0x33,DBPROP_INDEX_NULLCOLLATION = 0x34,DBPROP_INDEX_NULLS = 0x35,
DBPROP_INDEX_PRIMARYKEY = 0x36,DBPROP_INDEX_SORTBOOKMARKS = 0x37,DBPROP_INDEX_TEMPINDEX = 0xa3,DBPROP_INDEX_TYPE = 0x38,
DBPROP_INDEX_UNIQUE = 0x39,DBPROP_INIT_DATASOURCE = 0x3b,DBPROP_INIT_HWND = 0x3c,DBPROP_INIT_IMPERSONATION_LEVEL = 0x3d,
DBPROP_INIT_LCID = 0xba,DBPROP_INIT_LOCATION = 0x3e,DBPROP_INIT_MODE = 0x3f,DBPROP_INIT_PROMPT = 0x40,DBPROP_INIT_PROTECTION_LEVEL = 0x41,
DBPROP_INIT_PROVIDERSTRING = 0xa0,DBPROP_INIT_TIMEOUT = 0x42,DBPROP_LITERALBOOKMARKS = 0x43,DBPROP_LITERALIDENTITY = 0x44,
DBPROP_MAXINDEXSIZE = 0x46,DBPROP_MAXOPENROWS = 0x47,DBPROP_MAXPENDINGROWS = 0x48,DBPROP_MAXROWS = 0x49,DBPROP_MAXROWSIZE = 0x4a,
DBPROP_MAXROWSIZEINCLUDESBLOB = 0x4b,DBPROP_MAXTABLESINSELECT = 0x4c,DBPROP_MAYWRITECOLUMN = 0x4d,DBPROP_MEMORYUSAGE = 0x4e,
DBPROP_MULTIPLEPARAMSETS = 0xbf,DBPROP_MULTIPLERESULTS = 0xc4,DBPROP_MULTIPLESTORAGEOBJECTS = 0x50,DBPROP_MULTITABLEUPDATE = 0x51,
DBPROP_NOTIFICATIONGRANULARITY = 0xc6,DBPROP_NOTIFICATIONPHASES = 0x52,DBPROP_NOTIFYCOLUMNSET = 0xab,DBPROP_NOTIFYROWDELETE = 0xad,
DBPROP_NOTIFYROWFIRSTCHANGE = 0xae,DBPROP_NOTIFYROWINSERT = 0xaf,DBPROP_NOTIFYROWRESYNCH = 0xb1,DBPROP_NOTIFYROWSETCHANGED = 0xd3,
DBPROP_NOTIFYROWSETRELEASE = 0xb2,DBPROP_NOTIFYROWSETFETCHPOSITIONCHANGE = 0xb3,DBPROP_NOTIFYROWUNDOCHANGE = 0xb4,
DBPROP_NOTIFYROWUNDODELETE = 0xb5,DBPROP_NOTIFYROWUNDOINSERT = 0xb6,DBPROP_NOTIFYROWUPDATE = 0xb7,DBPROP_NULLCOLLATION = 0x53,
DBPROP_OLEOBJECT = 0x54,DBPROP_ORDERBYCOLUMNSINSELECT = 0x55,DBPROP_ORDEREDBOOKMARKS = 0x56,DBPROP_OTHERINSERT = 0x57,
DBPROP_OTHERUPDATEDELETE = 0x58,DBPROP_OUTPUTPARAMETERAVAILABILITY = 0xb8,DBPROP_OWNINSERT = 0x59,DBPROP_OWNUPDATEDELETE = 0x5a,
DBPROP_PERSISTENTIDTYPE = 0xb9,DBPROP_PREPAREABORTBEHAVIOR = 0x5b,DBPROP_PREPARECOMMITBEHAVIOR = 0x5c,DBPROP_PROCEDURETERM = 0x5d,
DBPROP_PROVIDERNAME = 0x60,DBPROP_PROVIDEROLEDBVER = 0x61,DBPROP_PROVIDERVER = 0x62,DBPROP_QUICKRESTART = 0x63,
DBPROP_QUOTEDIDENTIFIERCASE = 0x64,DBPROP_REENTRANTEVENTS = 0x65,DBPROP_REMOVEDELETED = 0x66,DBPROP_REPORTMULTIPLECHANGES = 0x67,
DBPROP_RETURNPENDINGINSERTS = 0xbd,DBPROP_ROWRESTRICT = 0x68,DBPROP_ROWSETCONVERSIONSONCOMMAND = 0xc0,DBPROP_ROWTHREADMODEL = 0x69,
DBPROP_SCHEMATERM = 0x6a,DBPROP_SCHEMAUSAGE = 0x6b,DBPROP_SERVERCURSOR = 0x6c,DBPROP_SESS_AUTOCOMMITISOLEVELS = 0xbe,
DBPROP_SQLSUPPORT = 0x6d,DBPROP_STRONGIDENTITY = 0x77,DBPROP_STRUCTUREDSTORAGE = 0x6f,DBPROP_SUBQUERIES = 0x70,DBPROP_SUPPORTEDTXNDDL = 0xa1,
DBPROP_SUPPORTEDTXNISOLEVELS = 0x71,DBPROP_SUPPORTEDTXNISORETAIN = 0x72,DBPROP_TABLETERM = 0x73,DBPROP_TBL_TEMPTABLE = 0x8c,
DBPROP_TRANSACTEDOBJECT = 0x74,DBPROP_UPDATABILITY = 0x75,DBPROP_USERNAME = 0x76
};
#if (OLEDBVER >= 0x0150)
enum DBPROPENUM15 {
DBPROP_FILTERCOMPAREOPS = 0xd1,DBPROP_FINDCOMPAREOPS = 0xd2,DBPROP_IChapteredRowset = 0xca,DBPROP_IDBAsynchStatus = 0xcb,
DBPROP_IRowsetFind = 0xcc,DBPROP_IRowsetView = 0xd4,DBPROP_IViewChapter = 0xd5,DBPROP_IViewFilter = 0xd6,DBPROP_IViewRowset = 0xd7,
DBPROP_IViewSort = 0xd8,DBPROP_INIT_ASYNCH = 0xc8,DBPROP_MAXOPENCHAPTERS = 0xc7,DBPROP_MAXORSINFILTER = 0xcd,DBPROP_MAXSORTCOLUMNS = 0xce,
DBPROP_ROWSET_ASYNCH = 0xc9,DBPROP_SORTONINDEX = 0xcf
};
#endif
#if (OLEDBVER >= 0x0200)
#define DBPROP_PROVIDERFILENAME DBPROP_PROVIDERNAME
#define DBPROP_SERVER_NAME DBPROP_SERVERNAME
enum DBPROPENUM20 {
DBPROP_IMultipleResults = 0xd9,DBPROP_DATASOURCE_TYPE = 0xfb,MDPROP_AXES = 0xfc,MDPROP_FLATTENING_SUPPORT = 0xfd,MDPROP_MDX_JOINCUBES = 0xfe,
MDPROP_NAMED_LEVELS = 0xff,MDPROP_RANGEROWSET = 0x100,MDPROP_MDX_SLICER = 0xda,MDPROP_MDX_CUBEQUALIFICATION = 0xdb,
MDPROP_MDX_OUTERREFERENCE = 0xdc,MDPROP_MDX_QUERYBYPROPERTY = 0xdd,MDPROP_MDX_CASESUPPORT = 0xde,MDPROP_MDX_STRING_COMPOP = 0xe0,
MDPROP_MDX_DESCFLAGS = 0xe1,MDPROP_MDX_SET_FUNCTIONS = 0xe2,MDPROP_MDX_MEMBER_FUNCTIONS = 0xe3,MDPROP_MDX_NUMERIC_FUNCTIONS = 0xe4,
MDPROP_MDX_FORMULAS = 0xe5,MDPROP_AGGREGATECELL_UPDATE = 0xe6,MDPROP_MDX_AGGREGATECELL_UPDATE = MDPROP_AGGREGATECELL_UPDATE,
MDPROP_MDX_OBJQUALIFICATION = 0x105,MDPROP_MDX_NONMEASURE_EXPRESSIONS = 0x106,DBPROP_ACCESSORDER = 0xe7,DBPROP_BOOKMARKINFO = 0xe8,
DBPROP_INIT_CATALOG = 0xe9,DBPROP_ROW_BULKOPS = 0xea,DBPROP_PROVIDERFRIENDLYNAME = 0xeb,DBPROP_LOCKMODE = 0xec,
DBPROP_MULTIPLECONNECTIONS = 0xed,DBPROP_UNIQUEROWS = 0xee,DBPROP_SERVERDATAONINSERT = 0xef,DBPROP_STORAGEFLAGS = 0xf0,
DBPROP_CONNECTIONSTATUS = 0xf4,DBPROP_ALTERCOLUMN = 0xf5,DBPROP_COLUMNLCID = 0xf6,DBPROP_RESETDATASOURCE = 0xf7,
DBPROP_INIT_OLEDBSERVICES = 0xf8,DBPROP_IRowsetRefresh = 0xf9,DBPROP_SERVERNAME = 0xfa,DBPROP_IParentRowset = 0x101,
DBPROP_HIDDENCOLUMNS = 0x102,DBPROP_PROVIDERMEMORY = 0x103,DBPROP_CLIENTCURSOR = 0x104
};
#endif
#if (OLEDBVER >= 0x0210)
enum DBPROPENUM21 {
DBPROP_TRUSTEE_USERNAME = 0xf1,DBPROP_TRUSTEE_AUTHENTICATION = 0xf2,DBPROP_TRUSTEE_NEWAUTHENTICATION = 0xf3,DBPROP_IRow = 0x107,
DBPROP_IRowChange = 0x108,DBPROP_IRowSchemaChange = 0x109,DBPROP_IGetRow = 0x10a,DBPROP_IScopedOperations = 0x10b,
DBPROP_IBindResource = 0x10c,DBPROP_ICreateRow = 0x10d,DBPROP_INIT_BINDFLAGS = 0x10e,DBPROP_INIT_LOCKOWNER = 0x10f,
DBPROP_GENERATEURL = 0x111,DBPROP_IDBBinderProperties = 0x112,DBPROP_IColumnsInfo2 = 0x113,DBPROP_IRegisterProvider = 0x114,
DBPROP_IGetSession = 0x115,DBPROP_IGetSourceRow = 0x116,DBPROP_IRowsetCurrentIndex = 0x117,DBPROP_OPENROWSETSUPPORT = 0x118,
DBPROP_COL_ISLONG = 0x119
};
#endif
#if (OLEDBVER >= 0x0250)
enum DBPROPENUM25 {
DBPROP_COL_SEED = 0x11a,DBPROP_COL_INCREMENT = 0x11b,DBPROP_INIT_GENERALTIMEOUT = 0x11c,DBPROP_COMSERVICES = 0x11d
};
#endif
#if (OLEDBVER >= 0x0260)
enum DBPROPENUM26 {
DBPROP_OUTPUTSTREAM = 0x11e,DBPROP_OUTPUTENCODING = 0x11f,DBPROP_TABLESTATISTICS = 0x120,DBPROP_SKIPROWCOUNTRESULTS = 0x123,
DBPROP_IRowsetBookmark = 0x124,MDPROP_VISUALMODE = 0x125
};
#endif
#ifdef deprecated
enum DBPROPENUMDEPRECATED {
DBPROP_IRowsetExactScroll = 0x9a,DBPROP_MARSHALLABLE = 0xc5,DBPROP_FILTEROPS = 0xd0
}
#endif
#define DBPROPVAL_BMK_NUMERIC __MSABI_LONG(0x00000001)
#define DBPROPVAL_BMK_KEY __MSABI_LONG(0x00000002)
#define DBPROPVAL_CL_START __MSABI_LONG(0x00000001)
#define DBPROPVAL_CL_END __MSABI_LONG(0x00000002)
#define DBPROPVAL_CU_DML_STATEMENTS __MSABI_LONG(0x00000001)
#define DBPROPVAL_CU_TABLE_DEFINITION __MSABI_LONG(0x00000002)
#define DBPROPVAL_CU_INDEX_DEFINITION __MSABI_LONG(0x00000004)
#define DBPROPVAL_CU_PRIVILEGE_DEFINITION __MSABI_LONG(0x00000008)
#define DBPROPVAL_CD_NOTNULL __MSABI_LONG(0x00000001)
#define DBPROPVAL_CB_NULL __MSABI_LONG(0x00000001)
#define DBPROPVAL_CB_NON_NULL __MSABI_LONG(0x00000002)
#define DBPROPVAL_FU_NOT_SUPPORTED __MSABI_LONG(0x00000001)
#define DBPROPVAL_FU_COLUMN __MSABI_LONG(0x00000002)
#define DBPROPVAL_FU_TABLE __MSABI_LONG(0x00000004)
#define DBPROPVAL_FU_CATALOG __MSABI_LONG(0x00000008)
#define DBPROPVAL_GB_NOT_SUPPORTED __MSABI_LONG(0x00000001)
#define DBPROPVAL_GB_EQUALS_SELECT __MSABI_LONG(0x00000002)
#define DBPROPVAL_GB_CONTAINS_SELECT __MSABI_LONG(0x00000004)
#define DBPROPVAL_GB_NO_RELATION __MSABI_LONG(0x00000008)
#define DBPROPVAL_HT_DIFFERENT_CATALOGS __MSABI_LONG(0x00000001)
#define DBPROPVAL_HT_DIFFERENT_PROVIDERS __MSABI_LONG(0x00000002)
#define DBPROPVAL_IC_UPPER __MSABI_LONG(0x00000001)
#define DBPROPVAL_IC_LOWER __MSABI_LONG(0x00000002)
#define DBPROPVAL_IC_SENSITIVE __MSABI_LONG(0x00000004)
#define DBPROPVAL_IC_MIXED __MSABI_LONG(0x00000008)
#ifdef deprecated
#define DBPROPVAL_LM_NONE __MSABI_LONG(0x00000001)
#define DBPROPVAL_LM_READ __MSABI_LONG(0x00000002)
#define DBPROPVAL_LM_INTENT __MSABI_LONG(0x00000004)
#define DBPROPVAL_LM_RITE __MSABI_LONG(0x00000008)
#endif
#define DBPROPVAL_NP_OKTODO __MSABI_LONG(0x00000001)
#define DBPROPVAL_NP_ABOUTTODO __MSABI_LONG(0x00000002)
#define DBPROPVAL_NP_SYNCHAFTER __MSABI_LONG(0x00000004)
#define DBPROPVAL_NP_FAILEDTODO __MSABI_LONG(0x00000008)
#define DBPROPVAL_NP_DIDEVENT __MSABI_LONG(0x00000010)
#define DBPROPVAL_NC_END __MSABI_LONG(0x00000001)
#define DBPROPVAL_NC_HIGH __MSABI_LONG(0x00000002)
#define DBPROPVAL_NC_LOW __MSABI_LONG(0x00000004)
#define DBPROPVAL_NC_START __MSABI_LONG(0x00000008)
#define DBPROPVAL_OO_BLOB __MSABI_LONG(0x00000001)
#define DBPROPVAL_OO_IPERSIST __MSABI_LONG(0x00000002)
#define DBPROPVAL_CB_DELETE __MSABI_LONG(0x00000001)
#define DBPROPVAL_CB_PRESERVE __MSABI_LONG(0x00000002)
#define DBPROPVAL_SU_DML_STATEMENTS __MSABI_LONG(0x00000001)
#define DBPROPVAL_SU_TABLE_DEFINITION __MSABI_LONG(0x00000002)
#define DBPROPVAL_SU_INDEX_DEFINITION __MSABI_LONG(0x00000004)
#define DBPROPVAL_SU_PRIVILEGE_DEFINITION __MSABI_LONG(0x00000008)
#define DBPROPVAL_SQ_CORRELATEDSUBQUERIES __MSABI_LONG(0x00000001)
#define DBPROPVAL_SQ_COMPARISON __MSABI_LONG(0x00000002)
#define DBPROPVAL_SQ_EXISTS __MSABI_LONG(0x00000004)
#define DBPROPVAL_SQ_IN __MSABI_LONG(0x00000008)
#define DBPROPVAL_SQ_QUANTIFIED __MSABI_LONG(0x00000010)
#define DBPROPVAL_SQ_TABLE __MSABI_LONG(0x00000020)
#define DBPROPVAL_SS_ISEQUENTIALSTREAM __MSABI_LONG(0x00000001)
#define DBPROPVAL_SS_ISTREAM __MSABI_LONG(0x00000002)
#define DBPROPVAL_SS_ISTORAGE __MSABI_LONG(0x00000004)
#define DBPROPVAL_SS_ILOCKBYTES __MSABI_LONG(0x00000008)
#define DBPROPVAL_TI_CHAOS __MSABI_LONG(0x00000010)
#define DBPROPVAL_TI_READUNCOMMITTED __MSABI_LONG(0x00000100)
#define DBPROPVAL_TI_BROWSE __MSABI_LONG(0x00000100)
#define DBPROPVAL_TI_CURSORSTABILITY __MSABI_LONG(0x00001000)
#define DBPROPVAL_TI_READCOMMITTED __MSABI_LONG(0x00001000)
#define DBPROPVAL_TI_REPEATABLEREAD __MSABI_LONG(0x00010000)
#define DBPROPVAL_TI_SERIALIZABLE __MSABI_LONG(0x00100000)
#define DBPROPVAL_TI_ISOLATED __MSABI_LONG(0x00100000)
#define DBPROPVAL_TR_COMMIT_DC __MSABI_LONG(0x00000001)
#define DBPROPVAL_TR_COMMIT __MSABI_LONG(0x00000002)
#define DBPROPVAL_TR_COMMIT_NO __MSABI_LONG(0x00000004)
#define DBPROPVAL_TR_ABORT_DC __MSABI_LONG(0x00000008)
#define DBPROPVAL_TR_ABORT __MSABI_LONG(0x00000010)
#define DBPROPVAL_TR_ABORT_NO __MSABI_LONG(0x00000020)
#define DBPROPVAL_TR_DONTCARE __MSABI_LONG(0x00000040)
#define DBPROPVAL_TR_BOTH __MSABI_LONG(0x00000080)
#define DBPROPVAL_TR_NONE __MSABI_LONG(0x00000100)
#define DBPROPVAL_TR_OPTIMISTIC __MSABI_LONG(0x00000200)
#define DBPROPVAL_RT_FREETHREAD __MSABI_LONG(0x00000001)
#define DBPROPVAL_RT_APTMTTHREAD __MSABI_LONG(0x00000002)
#define DBPROPVAL_RT_SINGLETHREAD __MSABI_LONG(0x00000004)
#define DBPROPVAL_UP_CHANGE __MSABI_LONG(0x00000001)
#define DBPROPVAL_UP_DELETE __MSABI_LONG(0x00000002)
#define DBPROPVAL_UP_INSERT __MSABI_LONG(0x00000004)
#define DBPROPVAL_SQL_NONE __MSABI_LONG(0x00000000)
#define DBPROPVAL_SQL_ODBC_MINIMUM __MSABI_LONG(0x00000001)
#define DBPROPVAL_SQL_ODBC_CORE __MSABI_LONG(0x00000002)
#define DBPROPVAL_SQL_ODBC_EXTENDED __MSABI_LONG(0x00000004)
#define DBPROPVAL_SQL_ANSI89_IEF __MSABI_LONG(0x00000008)
#define DBPROPVAL_SQL_ANSI92_ENTRY __MSABI_LONG(0x00000010)
#define DBPROPVAL_SQL_FIPS_TRANSITIONAL __MSABI_LONG(0x00000020)
#define DBPROPVAL_SQL_ANSI92_INTERMEDIATE __MSABI_LONG(0x00000040)
#define DBPROPVAL_SQL_ANSI92_FULL __MSABI_LONG(0x00000080)
#define DBPROPVAL_SQL_ESCAPECLAUSES __MSABI_LONG(0x00000100)
#define DBPROPVAL_IT_BTREE __MSABI_LONG(0x00000001)
#define DBPROPVAL_IT_HASH __MSABI_LONG(0x00000002)
#define DBPROPVAL_IT_CONTENT __MSABI_LONG(0x00000003)
#define DBPROPVAL_IT_OTHER __MSABI_LONG(0x00000004)
#define DBPROPVAL_IN_DISALLOWNULL __MSABI_LONG(0x00000001)
#define DBPROPVAL_IN_IGNORENULL __MSABI_LONG(0x00000002)
#define DBPROPVAL_IN_IGNOREANYNULL __MSABI_LONG(0x00000004)
#define DBPROPVAL_TC_NONE __MSABI_LONG(0x00000000)
#define DBPROPVAL_TC_DML __MSABI_LONG(0x00000001)
#define DBPROPVAL_TC_DDL_COMMIT __MSABI_LONG(0x00000002)
#define DBPROPVAL_TC_DDL_IGNORE __MSABI_LONG(0x00000004)
#define DBPROPVAL_TC_ALL __MSABI_LONG(0x00000008)
#define DBPROPVAL_NP_OKTODO __MSABI_LONG(0x00000001)
#define DBPROPVAL_NP_ABOUTTODO __MSABI_LONG(0x00000002)
#define DBPROPVAL_NP_SYNCHAFTER __MSABI_LONG(0x00000004)
#define DBPROPVAL_OA_NOTSUPPORTED __MSABI_LONG(0x00000001)
#define DBPROPVAL_OA_ATEXECUTE __MSABI_LONG(0x00000002)
#define DBPROPVAL_OA_ATROWRELEASE __MSABI_LONG(0x00000004)
#define DBPROPVAL_MR_NOTSUPPORTED __MSABI_LONG(0x00000000)
#define DBPROPVAL_MR_SUPPORTED __MSABI_LONG(0x00000001)
#define DBPROPVAL_MR_CONCURRENT __MSABI_LONG(0x00000002)
#define DBPROPVAL_PT_GUID_NAME __MSABI_LONG(0x00000001)
#define DBPROPVAL_PT_GUID_PROPID __MSABI_LONG(0x00000002)
#define DBPROPVAL_PT_NAME __MSABI_LONG(0x00000004)
#define DBPROPVAL_PT_GUID __MSABI_LONG(0x00000008)
#define DBPROPVAL_PT_PROPID __MSABI_LONG(0x00000010)
#define DBPROPVAL_PT_PGUID_NAME __MSABI_LONG(0x00000020)
#define DBPROPVAL_PT_PGUID_PROPID __MSABI_LONG(0x00000040)
#define DBPROPVAL_NT_SINGLEROW __MSABI_LONG(0x00000001)
#define DBPROPVAL_NT_MULTIPLEROWS __MSABI_LONG(0x00000002)
#if (OLEDBVER >= 0x0150)
#define DBPROPVAL_ASYNCH_INITIALIZE __MSABI_LONG(0x00000001)
#define DBPROPVAL_ASYNCH_SEQUENTIALPOPULATION __MSABI_LONG(0x00000002)
#define DBPROPVAL_ASYNCH_RANDOMPOPULATION __MSABI_LONG(0x00000004)
#define DBPROPVAL_OP_EQUAL __MSABI_LONG(0x00000001)
#define DBPROPVAL_OP_RELATIVE __MSABI_LONG(0x00000002)
#define DBPROPVAL_OP_STRING __MSABI_LONG(0x00000004)
#define DBPROPVAL_CO_EQUALITY __MSABI_LONG(0x00000001)
#define DBPROPVAL_CO_STRING __MSABI_LONG(0x00000002)
#define DBPROPVAL_CO_CASESENSITIVE __MSABI_LONG(0x00000004)
#define DBPROPVAL_CO_CASEINSENSITIVE __MSABI_LONG(0x00000008)
#endif
#if (OLEDBVER >= 0x0200)
#define DBPROPVAL_CO_CONTAINS __MSABI_LONG(0x00000010)
#define DBPROPVAL_CO_BEGINSWITH __MSABI_LONG(0x00000020)
#define DBPROPVAL_ASYNCH_BACKGROUNDPOPULATION __MSABI_LONG(0x00000008)
#define DBPROPVAL_ASYNCH_PREPOPULATE __MSABI_LONG(0x00000010)
#define DBPROPVAL_ASYNCH_POPULATEONDEMAND __MSABI_LONG(0x00000020)
#define DBPROPVAL_LM_NONE __MSABI_LONG(0x00000001)
#define DBPROPVAL_LM_SINGLEROW __MSABI_LONG(0x00000002)
#define DBPROPVAL_SQL_SUBMINIMUM __MSABI_LONG(0x00000200)
#define DBPROPVAL_DST_TDP __MSABI_LONG(0x00000001)
#define DBPROPVAL_DST_MDP __MSABI_LONG(0x00000002)
#define DBPROPVAL_DST_TDPANDMDP __MSABI_LONG(0x00000003)
#define MDPROPVAL_AU_UNSUPPORTED __MSABI_LONG(0x00000000)
#define MDPROPVAL_AU_UNCHANGED __MSABI_LONG(0x00000001)
#define MDPROPVAL_AU_UNKNOWN __MSABI_LONG(0x00000002)
#define MDPROPVAL_MF_WITH_CALCMEMBERS __MSABI_LONG(0x00000001)
#define MDPROPVAL_MF_WITH_NAMEDSETS __MSABI_LONG(0x00000002)
#define MDPROPVAL_MF_CREATE_CALCMEMBERS __MSABI_LONG(0x00000004)
#define MDPROPVAL_MF_CREATE_NAMEDSETS __MSABI_LONG(0x00000008)
#define MDPROPVAL_MF_SCOPE_SESSION __MSABI_LONG(0x00000010)
#define MDPROPVAL_MF_SCOPE_GLOBAL __MSABI_LONG(0x00000020)
#define MDPROPVAL_MMF_COUSIN __MSABI_LONG(0x00000001)
#define MDPROPVAL_MMF_PARALLELPERIOD __MSABI_LONG(0x00000002)
#define MDPROPVAL_MMF_OPENINGPERIOD __MSABI_LONG(0x00000004)
#define MDPROPVAL_MMF_CLOSINGPERIOD __MSABI_LONG(0x00000008)
#define MDPROPVAL_MNF_MEDIAN __MSABI_LONG(0x00000001)
#define MDPROPVAL_MNF_VAR __MSABI_LONG(0x00000002)
#define MDPROPVAL_MNF_STDDEV __MSABI_LONG(0x00000004)
#define MDPROPVAL_MNF_RANK __MSABI_LONG(0x00000008)
#define MDPROPVAL_MNF_AGGREGATE __MSABI_LONG(0x00000010)
#define MDPROPVAL_MNF_COVARIANCE __MSABI_LONG(0x00000020)
#define MDPROPVAL_MNF_CORRELATION __MSABI_LONG(0x00000040)
#define MDPROPVAL_MNF_LINREGSLOPE __MSABI_LONG(0x00000080)
#define MDPROPVAL_MNF_LINREGVARIANCE __MSABI_LONG(0x00000100)
#define MDPROPVAL_MNF_LINREG2 __MSABI_LONG(0x00000200)
#define MDPROPVAL_MNF_LINREGPOINT __MSABI_LONG(0x00000400)
#define MDPROPVAL_MNF_DRILLDOWNLEVEL __MSABI_LONG(0x00000800)
#define MDPROPVAL_MNF_DRILLDOWNMEMBERTOP __MSABI_LONG(0x00001000)
#define MDPROPVAL_MNF_DRILLDOWNMEMBERBOTTOM __MSABI_LONG(0x00002000)
#define MDPROPVAL_MNF_DRILLDOWNLEVELTOP __MSABI_LONG(0x00004000)
#define MDPROPVAL_MNF_DRILLDOWNLEVELBOTTOM __MSABI_LONG(0x00008000)
#define MDPROPVAL_MNF_DRILLUPMEMBER __MSABI_LONG(0x00010000)
#define MDPROPVAL_MNF_DRILLUPLEVEL __MSABI_LONG(0x00020000)
#define MDPROPVAL_MMF_COUSIN __MSABI_LONG(0x00000001)
#define MDPROPVAL_MMF_PARALLELPERIOD __MSABI_LONG(0x00000002)
#define MDPROPVAL_MMF_OPENINGPERIOD __MSABI_LONG(0x00000004)
#define MDPROPVAL_MMF_CLOSINGPERIOD __MSABI_LONG(0x00000008)
#define MDPROPVAL_MSF_TOPPERCENT __MSABI_LONG(0x00000001)
#define MDPROPVAL_MSF_BOTTOMPERCENT __MSABI_LONG(0x00000002)
#define MDPROPVAL_MSF_TOPSUM __MSABI_LONG(0x00000004)
#define MDPROPVAL_MSF_BOTTOMSUM __MSABI_LONG(0x00000008)
#define MDPROPVAL_MSF_PERIODSTODATE __MSABI_LONG(0x00000010)
#define MDPROPVAL_MSF_LASTPERIODS __MSABI_LONG(0x00000020)
#define MDPROPVAL_MSF_YTD __MSABI_LONG(0x00000040)
#define MDPROPVAL_MSF_QTD __MSABI_LONG(0x00000080)
#define MDPROPVAL_MSF_MTD __MSABI_LONG(0x00000100)
#define MDPROPVAL_MSF_WTD __MSABI_LONG(0x00000200)
#define MDPROPVAL_MSF_DRILLDOWNMEMBBER __MSABI_LONG(0x00000400)
#define MDPROPVAL_MSF_DRILLDOWNLEVEL __MSABI_LONG(0x00000800)
#define MDPROPVAL_MSF_DRILLDOWNMEMBERTOP __MSABI_LONG(0x00001000)
#define MDPROPVAL_MSF_DRILLDOWNMEMBERBOTTOM __MSABI_LONG(0x00002000)
#define MDPROPVAL_MSF_DRILLDOWNLEVELTOP __MSABI_LONG(0x00004000)
#define MDPROPVAL_MSF_DRILLDOWNLEVELBOTTOM __MSABI_LONG(0x00008000)
#define MDPROPVAL_MSF_DRILLUPMEMBER __MSABI_LONG(0x00010000)
#define MDPROPVAL_MSF_DRILLUPLEVEL __MSABI_LONG(0x00020000)
#define MDPROPVAL_MSF_TOGGLEDRILLSTATE __MSABI_LONG(0x00040000)
#define MDPROPVAL_MD_SELF __MSABI_LONG(0x00000001)
#define MDPROPVAL_MD_BEFORE __MSABI_LONG(0x00000002)
#define MDPROPVAL_MD_AFTER __MSABI_LONG(0x00000004)
#define MDPROPVAL_MSC_LESSTHAN __MSABI_LONG(0x00000001)
#define MDPROPVAL_MSC_GREATERTHAN __MSABI_LONG(0x00000002)
#define MDPROPVAL_MSC_LESSTHANEQUAL __MSABI_LONG(0x00000004)
#define MDPROPVAL_MSC_GREATERTHANEQUAL __MSABI_LONG(0x00000008)
#define MDPROPVAL_MC_SINGLECASE __MSABI_LONG(0x00000001)
#define MDPROPVAL_MC_SEARCHEDCASE __MSABI_LONG(0x00000002)
#define MDPROPVAL_MOQ_OUTERREFERENCE __MSABI_LONG(0x00000001)
#define MDPROPVAL_MOQ_DATASOURCE_CUBE __MSABI_LONG(0x00000001)
#define MDPROPVAL_MOQ_CATALOG_CUBE __MSABI_LONG(0x00000002)
#define MDPROPVAL_MOQ_SCHEMA_CUBE __MSABI_LONG(0x00000004)
#define MDPROPVAL_MOQ_CUBE_DIM __MSABI_LONG(0x00000008)
#define MDPROPVAL_MOQ_DIM_HIER __MSABI_LONG(0x00000010)
#define MDPROPVAL_MOQ_DIMHIER_LEVEL __MSABI_LONG(0x00000020)
#define MDPROPVAL_MOQ_LEVEL_MEMBER __MSABI_LONG(0x00000040)
#define MDPROPVAL_MOQ_MEMBER_MEMBER __MSABI_LONG(0x00000080)
#define MDPROPVAL_MOQ_DIMHIER_MEMBER __MSABI_LONG(0x00000100)
#define MDPROPVAL_FS_FULL_SUPPORT __MSABI_LONG(0x00000001)
#define MDPROPVAL_FS_GENERATED_COLUMN __MSABI_LONG(0x00000002)
#define MDPROPVAL_FS_GENERATED_DIMENSION __MSABI_LONG(0x00000003)
#define MDPROPVAL_FS_NO_SUPPORT __MSABI_LONG(0x00000004)
#define MDPROPVAL_NL_NAMEDLEVELS __MSABI_LONG(0x00000001)
#define MDPROPVAL_NL_NUMBEREDLEVELS __MSABI_LONG(0x00000002)
#define MDPROPVAL_MJC_SINGLECUBE __MSABI_LONG(0x00000001)
#define MDPROPVAL_MJC_MULTICUBES __MSABI_LONG(0x00000002)
#define MDPROPVAL_MJC_IMPLICITCUBE __MSABI_LONG(0x00000004)
#define MDPROPVAL_RR_NORANGEROWSET __MSABI_LONG(0x00000001)
#define MDPROPVAL_RR_READONLY __MSABI_LONG(0x00000002)
#define MDPROPVAL_RR_UPDATE __MSABI_LONG(0x00000004)
#define MDPROPVAL_MS_MULTIPLETUPLES __MSABI_LONG(0x00000001)
#define MDPROPVAL_MS_SINGLETUPLE __MSABI_LONG(0x00000002)
#define MDPROPVAL_NME_ALLDIMENSIONS __MSABI_LONG(0x00000000)
#define MDPROPVAL_NME_MEASURESONLY __MSABI_LONG(0x00000001)
#define DBPROPVAL_AO_SEQUENTIAL __MSABI_LONG(0x00000000)
#define DBPROPVAL_AO_SEQUENTIALSTORAGEOBJECTS __MSABI_LONG(0x00000001)
#define DBPROPVAL_AO_RANDOM __MSABI_LONG(0x00000002)
#define DBPROPVAL_BD_ROWSET __MSABI_LONG(0x00000000)
#define DBPROPVAL_BD_INTRANSACTION __MSABI_LONG(0x00000001)
#define DBPROPVAL_BD_XTRANSACTION __MSABI_LONG(0x00000002)
#define DBPROPVAL_BD_REORGANIZATION __MSABI_LONG(0x00000003)
#define BMK_DURABILITY_ROWSET DBPROPVAL_BD_ROWSET
#define BMK_DURABILITY_INTRANSACTION DBPROPVAL_BD_INTRANSACTION
#define BMK_DURABILITY_XTRANSACTION DBPROPVAL_BD_XTRANSACTION
#define BMK_DURABILITY_REORGANIZATION DBPROPVAL_BD_REORGANIZATION
#define DBPROPVAL_BO_NOLOG __MSABI_LONG(0x00000000)
#define DBPROPVAL_BO_NOINDEXUPDATE __MSABI_LONG(0x00000001)
#define DBPROPVAL_BO_REFINTEGRITY __MSABI_LONG(0x00000002)
#if !defined(_WINBASE_)
#define OF_READ 0x00000000
#define OF_WRITE 0x00000001
#define OF_READWRITE 0x00000002
#define OF_SHARE_COMPAT 0x00000000
#define OF_SHARE_EXCLUSIVE 0x00000010
#define OF_SHARE_DENY_WRITE 0x00000020
#define OF_SHARE_DENY_READ 0x00000030
#define OF_SHARE_DENY_NONE 0x00000040
#define OF_PARSE 0x00000100
#define OF_DELETE 0x00000200
#define OF_VERIFY 0x00000400
#define OF_CANCEL 0x00000800
#define OF_CREATE 0x00001000
#define OF_PROMPT 0x00002000
#define OF_EXIST 0x00004000
#define OF_REOPEN 0x00008000
#endif
#define DBPROPVAL_STGM_READ OF_READ
#define DBPROPVAL_STGM_WRITE OF_WRITE
#define DBPROPVAL_STGM_READWRITE OF_READWRITE
#define DBPROPVAL_STGM_SHARE_DENY_NONE OF_SHARE_DENY_NONE
#define DBPROPVAL_STGM_SHARE_DENY_READ OF_SHARE_DENY_READ
#define DBPROPVAL_STGM_SHARE_DENY_WRITE OF_SHARE_DENY_WRITE
#define DBPROPVAL_STGM_SHARE_EXCLUSIVE OF_SHARE_EXCLUSIVE
#define DBPROPVAL_STGM_DIRECT 0x00010000
#define DBPROPVAL_STGM_TRANSACTED 0x00020000
#define DBPROPVAL_STGM_CREATE OF_CREATE
#define DBPROPVAL_STGM_CONVERT 0x00040000
#define DBPROPVAL_STGM_FAILIFTHERE 0x00080000
#define DBPROPVAL_STGM_PRIORITY 0x00100000
#define DBPROPVAL_STGM_DELETEONRELEASE 0x00200000
#define DBPROPVAL_GB_COLLATE __MSABI_LONG(0x00000010)
#define DBPROPVAL_CS_UNINITIALIZED __MSABI_LONG(0x00000000)
#define DBPROPVAL_CS_INITIALIZED __MSABI_LONG(0x00000001)
#define DBPROPVAL_CS_COMMUNICATIONFAILURE __MSABI_LONG(0x00000002)
#define DBPROPVAL_RD_RESETALL __MSABI_LONG(0xffffffff)
#define DBPROPVAL_OS_RESOURCEPOOLING __MSABI_LONG(0x00000001)
#define DBPROPVAL_OS_TXNENLISTMENT __MSABI_LONG(0x00000002)
#define DBPROPVAL_OS_CLIENTCURSOR __MSABI_LONG(0x00000004)
#define DBPROPVAL_OS_ENABLEALL __MSABI_LONG(0xffffffff)
#define DBPROPVAL_BI_CROSSROWSET __MSABI_LONG(0x00000001)
#endif
#if (OLEDBVER >= 0x0210)
#define MDPROPVAL_NL_SCHEMAONLY __MSABI_LONG(0x00000004)
#define DBPROPVAL_OS_DISABLEALL __MSABI_LONG(0x00000000)
#define DBPROPVAL_OO_ROWOBJECT __MSABI_LONG(0x00000004)
#define DBPROPVAL_OO_SCOPED __MSABI_LONG(0x00000008)
#define DBPROPVAL_OO_DIRECTBIND __MSABI_LONG(0x00000010)
#define DBPROPVAL_DST_DOCSOURCE __MSABI_LONG(0x00000004)
#define DBPROPVAL_GU_NOTSUPPORTED __MSABI_LONG(0x00000001)
#define DBPROPVAL_GU_SUFFIX __MSABI_LONG(0x00000002)
#define DB_BINDFLAGS_DELAYFETCHCOLUMNS __MSABI_LONG(0x00000001)
#define DB_BINDFLAGS_DELAYFETCHSTREAM __MSABI_LONG(0x00000002)
#define DB_BINDFLAGS_RECURSIVE __MSABI_LONG(0x00000004)
#define DB_BINDFLAGS_OUTPUT __MSABI_LONG(0x00000008)
#define DB_BINDFLAGS_COLLECTION __MSABI_LONG(0x00000010)
#define DB_BINDFLAGS_OPENIFEXISTS __MSABI_LONG(0x00000020)
#define DB_BINDFLAGS_OVERWRITE __MSABI_LONG(0x00000040)
#define DB_BINDFLAGS_ISSTRUCTUREDDOCUMENT __MSABI_LONG(0x00000080)
#define DBPROPVAL_ORS_TABLE __MSABI_LONG(0x00000000)
#define DBPROPVAL_ORS_INDEX __MSABI_LONG(0x00000001)
#define DBPROPVAL_ORS_INTEGRATEDINDEX __MSABI_LONG(0x00000002)
#define DBPROPVAL_TC_DDL_LOCK __MSABI_LONG(0x00000010)
#define DBPROPVAL_ORS_STOREDPROC __MSABI_LONG(0x00000004)
#define DBPROPVAL_IN_ALLOWNULL __MSABI_LONG(0x00000000)
#endif
#if (OLEDBVER >= 0x0250)
#define DBPROPVAL_OO_SINGLETON __MSABI_LONG(0x00000020)
#define DBPROPVAL_OS_AGR_AFTERSESSION __MSABI_LONG(0x00000008)
#define DBPROPVAL_CM_TRANSACTIONS __MSABI_LONG(0x00000001)
#endif
#if (OLEDBVER >= 0x0260)
#define DBPROPVAL_TS_CARDINALITY __MSABI_LONG(0x00000001)
#define DBPROPVAL_TS_HISTOGRAM __MSABI_LONG(0x00000002)
#define DBPROPVAL_ORS_HISTOGRAM __MSABI_LONG(0x00000008)
#define MDPROPVAL_VISUAL_MODE_DEFAULT __MSABI_LONG(0x00000000)
#define MDPROPVAL_VISUAL_MODE_VISUAL __MSABI_LONG(0x00000001)
#define MDPROPVAL_VISUAL_MODE_VISUAL_OFF __MSABI_LONG(0x00000002)
#endif
#define DB_IMP_LEVEL_ANONYMOUS 0x00
#define DB_IMP_LEVEL_IDENTIFY 0x01
#define DB_IMP_LEVEL_IMPERSONATE 0x02
#define DB_IMP_LEVEL_DELEGATE 0x03
#define DBPROMPT_PROMPT 0x01
#define DBPROMPT_COMPLETE 0x02
#define DBPROMPT_COMPLETEREQUIRED 0x03
#define DBPROMPT_NOPROMPT 0x04
#define DB_PROT_LEVEL_NONE 0x00
#define DB_PROT_LEVEL_CONNECT 0x01
#define DB_PROT_LEVEL_CALL 0x02
#define DB_PROT_LEVEL_PKT 0x03
#define DB_PROT_LEVEL_PKT_INTEGRITY 0x04
#define DB_PROT_LEVEL_PKT_PRIVACY 0x05
#define DB_MODE_READ 0x01
#define DB_MODE_WRITE 0x02
#define DB_MODE_READWRITE 0x03
#define DB_MODE_SHARE_DENY_READ 0x04
#define DB_MODE_SHARE_DENY_WRITE 0x08
#define DB_MODE_SHARE_EXCLUSIVE 0x0c
#define DB_MODE_SHARE_DENY_NONE 0x10
#define DBCOMPUTEMODE_COMPUTED 0x01
#define DBCOMPUTEMODE_DYNAMIC 0x02
#define DBCOMPUTEMODE_NOTCOMPUTED 0x03
#define DBPROPVAL_DF_INITIALLY_DEFERRED 0x01
#define DBPROPVAL_DF_INITIALLY_IMMEDIATE 0x02
#define DBPROPVAL_DF_NOT_DEFERRABLE 0x03
typedef struct tagDBPARAMS {
void *pData;
DB_UPARAMS cParamSets;
HACCESSOR hAccessor;
} DBPARAMS;
typedef DWORD DBPARAMFLAGS;
enum DBPARAMFLAGSENUM {
DBPARAMFLAGS_ISINPUT = 0x1,DBPARAMFLAGS_ISOUTPUT = 0x2,DBPARAMFLAGS_ISSIGNED = 0x10,DBPARAMFLAGS_ISNULLABLE = 0x40,DBPARAMFLAGS_ISLONG = 0x80
};
#if (OLEDBVER >= 0x0200)
enum DBPARAMFLAGSENUM20 {
DBPARAMFLAGS_SCALEISNEGATIVE = 0x100
};
#endif
typedef struct tagDBPARAMINFO {
DBPARAMFLAGS dwFlags;
DBORDINAL iOrdinal;
LPOLESTR pwszName;
ITypeInfo *pTypeInfo;
DBLENGTH ulParamSize;
DBTYPE wType;
BYTE bPrecision;
BYTE bScale;
} DBPARAMINFO;
typedef DWORD DBPROPID;
typedef struct tagDBPROPIDSET {
DBPROPID *rgPropertyIDs;
ULONG cPropertyIDs;
GUID guidPropertySet;
} DBPROPIDSET;
typedef DWORD DBPROPFLAGS;
enum DBPROPFLAGSENUM {
DBPROPFLAGS_NOTSUPPORTED = 0,DBPROPFLAGS_COLUMN = 0x1,DBPROPFLAGS_DATASOURCE = 0x2,DBPROPFLAGS_DATASOURCECREATE = 0x4,
DBPROPFLAGS_DATASOURCEINFO = 0x8,DBPROPFLAGS_DBINIT = 0x10,DBPROPFLAGS_INDEX = 0x20,DBPROPFLAGS_ROWSET = 0x40,DBPROPFLAGS_TABLE = 0x80,
DBPROPFLAGS_COLUMNOK = 0x100,DBPROPFLAGS_READ = 0x200,DBPROPFLAGS_WRITE = 0x400,DBPROPFLAGS_REQUIRED = 0x800,DBPROPFLAGS_SESSION = 0x1000
};
#if (OLEDBVER >= 0x0210)
enum DBPROPFLAGSENUM21 {
DBPROPFLAGS_TRUSTEE = 0x2000
};
#endif
#if (OLEDBVER >= 0x0250)
enum DBPROPFLAGSENUM25 {
DBPROPFLAGS_VIEW = 0x4000
};
#endif
#if (OLEDBVER >= 0x0260)
enum DBPROPFLAGSENUM26 {
DBPROPFLAGS_STREAM = 0x8000
};
#endif
typedef struct tagDBPROPINFO {
LPOLESTR pwszDescription;
DBPROPID dwPropertyID;
DBPROPFLAGS dwFlags;
VARTYPE vtType;
VARIANT vValues;
} DBPROPINFO;
typedef DBPROPINFO *PDBPROPINFO;
typedef struct tagDBPROPINFOSET {
PDBPROPINFO rgPropertyInfos;
ULONG cPropertyInfos;
GUID guidPropertySet;
} DBPROPINFOSET;
typedef DWORD DBPROPOPTIONS;
enum DBPROPOPTIONSENUM {
DBPROPOPTIONS_REQUIRED = 0,DBPROPOPTIONS_SETIFCHEAP = 0x1,DBPROPOPTIONS_OPTIONAL = 0x1
};
typedef DWORD DBPROPSTATUS;
enum DBPROPSTATUSENUM {
DBPROPSTATUS_OK = 0,DBPROPSTATUS_NOTSUPPORTED = 1,DBPROPSTATUS_BADVALUE = 2,DBPROPSTATUS_BADOPTION = 3,DBPROPSTATUS_BADCOLUMN = 4,
DBPROPSTATUS_NOTALLSETTABLE = 5,DBPROPSTATUS_NOTSETTABLE = 6,DBPROPSTATUS_NOTSET = 7,DBPROPSTATUS_CONFLICTING = 8
};
#if (OLEDBVER >= 0x0210)
enum DBPROPSTATUSENUM21 {
DBPROPSTATUS_NOTAVAILABLE = 9
};
#endif
typedef struct tagDBPROP {
DBPROPID dwPropertyID;
DBPROPOPTIONS dwOptions;
DBPROPSTATUS dwStatus;
DBID colid;
VARIANT vValue;
} DBPROP;
typedef struct tagDBPROPSET {
DBPROP *rgProperties;
ULONG cProperties;
GUID guidPropertySet;
} DBPROPSET;
#define DBPARAMTYPE_INPUT 0x01
#define DBPARAMTYPE_INPUTOUTPUT 0x02
#define DBPARAMTYPE_OUTPUT 0x03
#define DBPARAMTYPE_RETURNVALUE 0x04
#define DB_PT_UNKNOWN 0x01
#define DB_PT_PROCEDURE 0x02
#define DB_PT_FUNCTION 0x03
#define DB_REMOTE 0x01
#define DB_LOCAL_SHARED 0x02
#define DB_LOCAL_EXCLUSIVE 0x03
#define DB_COLLATION_ASC 0x01
#define DB_COLLATION_DESC 0x02
#define DB_UNSEARCHABLE 0x01
#define DB_LIKE_ONLY 0x02
#define DB_ALL_EXCEPT_LIKE 0x03
#define DB_SEARCHABLE 0x04
#if (OLEDBVER >= 0x0200)
#define MDTREEOP_CHILDREN 0x01
#define MDTREEOP_SIBLINGS 0x02
#define MDTREEOP_PARENT 0x04
#define MDTREEOP_SELF 0x08
#define MDTREEOP_DESCENDANTS 0x10
#define MDTREEOP_ANCESTORS 0x20
#define MD_DIMTYPE_UNKNOWN 0x00
#define MD_DIMTYPE_TIME 0x01
#define MD_DIMTYPE_MEASURE 0x02
#define MD_DIMTYPE_OTHER 0x03
#define MDLEVEL_TYPE_UNKNOWN 0x0000
#define MDLEVEL_TYPE_REGULAR 0x0000
#define MDLEVEL_TYPE_ALL 0x0001
#define MDLEVEL_TYPE_CALCULATED 0x0002
#define MDLEVEL_TYPE_TIME 0x0004
#define MDLEVEL_TYPE_RESERVED1 0x0008
#define MDLEVEL_TYPE_TIME_YEARS 0x0014
#define MDLEVEL_TYPE_TIME_HALF_YEAR 0x0024
#define MDLEVEL_TYPE_TIME_QUARTERS 0x0044
#define MDLEVEL_TYPE_TIME_MONTHS 0x0084
#define MDLEVEL_TYPE_TIME_WEEKS 0x0104
#define MDLEVEL_TYPE_TIME_DAYS 0x0204
#define MDLEVEL_TYPE_TIME_HOURS 0x0304
#define MDLEVEL_TYPE_TIME_MINUTES 0x0404
#define MDLEVEL_TYPE_TIME_SECONDS 0x0804
#define MDLEVEL_TYPE_TIME_UNDEFINED 0x1004
#define MDMEASURE_AGGR_UNKNOWN 0x00
#define MDMEASURE_AGGR_SUM 0x01
#define MDMEASURE_AGGR_COUNT 0x02
#define MDMEASURE_AGGR_MIN 0x03
#define MDMEASURE_AGGR_MAX 0x04
#define MDMEASURE_AGGR_AVG 0x05
#define MDMEASURE_AGGR_VAR 0x06
#define MDMEASURE_AGGR_STD 0x07
#define MDMEASURE_AGGR_CALCULATED 0x7f
#define MDPROP_MEMBER 0x01
#define MDPROP_CELL 0x02
#define MDMEMBER_TYPE_UNKNOWN 0x00
#define MDMEMBER_TYPE_REGULAR 0x01
#define MDMEMBER_TYPE_ALL 0x02
#define MDMEMBER_TYPE_MEASURE 0x03
#define MDMEMBER_TYPE_FORMULA 0x04
#define MDMEMBER_TYPE_RESERVE1 0x05
#define MDMEMBER_TYPE_RESERVE2 0x06
#define MDMEMBER_TYPE_RESERVE3 0x07
#define MDMEMBER_TYPE_RESERVE4 0x08
#define MDDISPINFO_DRILLED_DOWN 0x00010000
#define MDDISPINFO_PARENT_SAME_AS_PREV 0x00020000
#endif
typedef DWORD DBINDEX_COL_ORDER;
enum DBINDEX_COL_ORDERENUM {
DBINDEX_COL_ORDER_ASC = 0,DBINDEX_COL_ORDER_DESC = DBINDEX_COL_ORDER_ASC + 1
};
typedef struct tagDBINDEXCOLUMNDESC {
DBID *pColumnID;
DBINDEX_COL_ORDER eIndexColOrder;
} DBINDEXCOLUMNDESC;
typedef struct tagDBCOLUMNDESC {
LPOLESTR pwszTypeName;
ITypeInfo *pTypeInfo;
DBPROPSET *rgPropertySets;
CLSID *pclsid;
ULONG cPropertySets;
DBLENGTH ulColumnSize;
DBID dbcid;
DBTYPE wType;
BYTE bPrecision;
BYTE bScale;
} DBCOLUMNDESC;
#if (OLEDBVER >= 0x0210)
typedef struct tagDBCOLUMNACCESS {
void *pData;
DBID columnid;
DBLENGTH cbDataLen;
DBSTATUS dwStatus;
DBLENGTH cbMaxLen;
DB_DWRESERVE dwReserved;
DBTYPE wType;
BYTE bPrecision;
BYTE bScale;
} DBCOLUMNACCESS;
#endif
#if (OLEDBVER >= 0x0200)
typedef DWORD DBCOLUMNDESCFLAGS;
enum DBCOLUMNDESCFLAGSENUM {
DBCOLUMNDESCFLAGS_TYPENAME = 0x1,DBCOLUMNDESCFLAGS_ITYPEINFO = 0x2,DBCOLUMNDESCFLAGS_PROPERTIES = 0x4,DBCOLUMNDESCFLAGS_CLSID = 0x8,
DBCOLUMNDESCFLAGS_COLSIZE = 0x10,DBCOLUMNDESCFLAGS_DBCID = 0x20,DBCOLUMNDESCFLAGS_WTYPE = 0x40,DBCOLUMNDESCFLAGS_PRECISION = 0x80,
DBCOLUMNDESCFLAGS_SCALE = 0x100
};
#endif
typedef DWORD DBEVENTPHASE;
enum DBEVENTPHASEENUM {
DBEVENTPHASE_OKTODO = 0,DBEVENTPHASE_ABOUTTODO,DBEVENTPHASE_SYNCHAFTER,
DBEVENTPHASE_FAILEDTODO,DBEVENTPHASE_DIDEVENT
};
typedef DWORD DBREASON;
enum DBREASONENUM {
DBREASON_ROWSET_FETCHPOSITIONCHANGE = 0,DBREASON_ROWSET_RELEASE,
DBREASON_COLUMN_SET,DBREASON_COLUMN_RECALCULATED,DBREASON_ROW_ACTIVATE,
DBREASON_ROW_RELEASE,DBREASON_ROW_DELETE,DBREASON_ROW_FIRSTCHANGE,
DBREASON_ROW_INSERT,DBREASON_ROW_RESYNCH,DBREASON_ROW_UNDOCHANGE,
DBREASON_ROW_UNDOINSERT,DBREASON_ROW_UNDODELETE,DBREASON_ROW_UPDATE,
DBREASON_ROWSET_CHANGED
};
#if (OLEDBVER >= 0x0150)
enum DBREASONENUM15 {
DBREASON_ROWPOSITION_CHANGED = DBREASON_ROWSET_CHANGED + 1,
DBREASON_ROWPOSITION_CHAPTERCHANGED,DBREASON_ROWPOSITION_CLEARED,
DBREASON_ROW_ASYNCHINSERT
};
#endif
#if (OLEDBVER >= 0x0150)
typedef DWORD DBCOMPAREOP;
enum DBCOMPAREOPSENUM {
DBCOMPAREOPS_LT = 0,DBCOMPAREOPS_LE = 1,DBCOMPAREOPS_EQ = 2,DBCOMPAREOPS_GE = 3,DBCOMPAREOPS_GT = 4,DBCOMPAREOPS_BEGINSWITH = 5,
DBCOMPAREOPS_CONTAINS = 6,DBCOMPAREOPS_NE = 7,DBCOMPAREOPS_IGNORE = 8,DBCOMPAREOPS_CASESENSITIVE = 0x1000,DBCOMPAREOPS_CASEINSENSITIVE = 0x2000
};
#if (OLEDBVER >= 0x0200)
enum DBCOMPAREOPSENUM20 {
DBCOMPAREOPS_NOTBEGINSWITH = 9,DBCOMPAREOPS_NOTCONTAINS = 10
};
#endif
typedef DWORD DBASYNCHOP;
enum DBASYNCHOPENUM {
DBASYNCHOP_OPEN = 0
};
typedef DWORD DBASYNCHPHASE;
enum DBASYNCHPHASEENUM {
DBASYNCHPHASE_INITIALIZATION = 0,
DBASYNCHPHASE_POPULATION,DBASYNCHPHASE_COMPLETE,DBASYNCHPHASE_CANCELED
};
#define DB_COUNTUNAVAILABLE -1
#endif
typedef DWORD DBSORT;
enum DBSORTENUM {
DBSORT_ASCENDING = 0,DBSORT_DESCENDING = DBSORT_ASCENDING + 1
};
#if (OLEDBVER >= 0x0200)
typedef DWORD DBCOMMANDPERSISTFLAG;
enum DBCOMMANDPERSISTFLAGENUM {
DBCOMMANDPERSISTFLAG_NOSAVE = 0x1
};
#endif
#if (OLEDBVER >= 0x0210)
enum DBCOMMANDPERSISTFLAGENUM21 {
DBCOMMANDPERSISTFLAG_DEFAULT = 0,DBCOMMANDPERSISTFLAG_PERSISTVIEW = 0x2,DBCOMMANDPERSISTFLAG_PERSISTPROCEDURE = 0x4
};
typedef DWORD DBCONSTRAINTTYPE;
enum DBCONSTRAINTTYPEENUM {
DBCONSTRAINTTYPE_UNIQUE = 0,DBCONSTRAINTTYPE_FOREIGNKEY = 0x1,DBCONSTRAINTTYPE_PRIMARYKEY = 0x2,DBCONSTRAINTTYPE_CHECK = 0x3
};
typedef DWORD DBUPDELRULE;
enum DBUPDELRULEENUM {
DBUPDELRULE_NOACTION = 0,DBUPDELRULE_CASCADE = 0x1,DBUPDELRULE_SETNULL = 0x2,DBUPDELRULE_SETDEFAULT = 0x3
};
typedef DWORD DBMATCHTYPE;
enum DBMATCHTYPEENUM {
DBMATCHTYPE_FULL = 0,DBMATCHTYPE_NONE = 0x1,DBMATCHTYPE_PARTIAL = 0x2
};
typedef DWORD DBDEFERRABILITY;
enum DBDEFERRABILITYENUM {
DBDEFERRABILITY_DEFERRED = 0x1,DBDEFERRABILITY_DEFERRABLE = 0x2
};
typedef struct tagDBCONSTRAINTDESC {
DBID *pConstraintID;
DBCONSTRAINTTYPE ConstraintType;
DBORDINAL cColumns;
DBID *rgColumnList;
DBID *pReferencedTableID;
DBORDINAL cForeignKeyColumns;
DBID *rgForeignKeyColumnList;
OLECHAR *pwszConstraintText;
DBUPDELRULE UpdateRule;
DBUPDELRULE DeleteRule;
DBMATCHTYPE MatchType;
DBDEFERRABILITY Deferrability;
DB_URESERVE cReserved;
DBPROPSET *rgReserved;
} DBCONSTRAINTDESC;
#endif
#if (OLEDBVER >= 0x0200)
#define MDFF_BOLD 0x01
#define MDFF_ITALIC 0x02
#define MDFF_UNDERLINE 0x04
#define MDFF_STRIKEOUT 0x08
typedef struct tagMDAXISINFO {
DBLENGTH cbSize;
DBCOUNTITEM iAxis;
DBCOUNTITEM cDimensions;
DBCOUNTITEM cCoordinates;
DBORDINAL *rgcColumns;
LPOLESTR *rgpwszDimensionNames;
} MDAXISINFO;
#define PMDAXISINFO_GETAT(rgAxisInfo,iAxis) ((MDAXISINFO *)(((BYTE *)(rgAxisInfo)) +((iAxis) *(rgAxisInfo)[0].cbSize)))
#define MDAXISINFO_GETAT(rgAxisInfo,iAxis) (*PMDAXISINFO_GETAT((rgAxisInfo),(iAxis)))
#define MDAXIS_COLUMNS 0x00000000
#define MDAXIS_ROWS 0x00000001
#define MDAXIS_PAGES 0x00000002
#define MDAXIS_SECTIONS 0x00000003
#define MDAXIS_CHAPTERS 0x00000004
#define MDAXIS_SLICERS 0xffffffff
#endif
typedef struct tagRMTPACK {
ISequentialStream *pISeqStream;
ULONG cbData;
ULONG cBSTR;
BSTR *rgBSTR;
ULONG cVARIANT;
VARIANT *rgVARIANT;
ULONG cIDISPATCH;
IDispatch **rgIDISPATCH;
ULONG cIUNKNOWN;
IUnknown **rgIUNKNOWN;
ULONG cPROPVARIANT;
PROPVARIANT *rgPROPVARIANT;
ULONG cArray;
VARIANT *rgArray;
} RMTPACK;
extern RPC_IF_HANDLE DBStructureDefinitions_v0_0_c_ifspec;
extern RPC_IF_HANDLE DBStructureDefinitions_v0_0_s_ifspec;
#endif
#ifndef __IAccessor_INTERFACE_DEFINED__
#define __IAccessor_INTERFACE_DEFINED__
typedef DWORD DBACCESSORFLAGS;
enum DBACCESSORFLAGSENUM {
DBACCESSOR_INVALID = 0,DBACCESSOR_PASSBYREF = 0x1,DBACCESSOR_ROWDATA = 0x2,DBACCESSOR_PARAMETERDATA = 0x4,DBACCESSOR_OPTIMIZED = 0x8,
DBACCESSOR_INHERITED = 0x10
};
typedef DWORD DBBINDSTATUS;
enum DBBINDSTATUSENUM {
DBBINDSTATUS_OK = 0,DBBINDSTATUS_BADORDINAL = 1,DBBINDSTATUS_UNSUPPORTEDCONVERSION = 2,DBBINDSTATUS_BADBINDINFO = 3,
DBBINDSTATUS_BADSTORAGEFLAGS = 4,DBBINDSTATUS_NOINTERFACE = 5,DBBINDSTATUS_MULTIPLESTORAGE = 6
};
EXTERN_C const IID IID_IAccessor;
#if defined(__cplusplus) && !defined(CINTERFACE)
struct IAccessor : public IUnknown {
public:
virtual HRESULT WINAPI AddRefAccessor(HACCESSOR hAccessor,DBREFCOUNT *pcRefCount) = 0;
virtual HRESULT WINAPI CreateAccessor(DBACCESSORFLAGS dwAccessorFlags,DBCOUNTITEM cBindings,const DBBINDING rgBindings[],DBLENGTH cbRowSize,HACCESSOR *phAccessor,DBBINDSTATUS rgStatus[]) = 0;
virtual HRESULT WINAPI GetBindings(HACCESSOR hAccessor,DBACCESSORFLAGS *pdwAccessorFlags,DBCOUNTITEM *pcBindings,DBBINDING **prgBindings) = 0;
virtual HRESULT WINAPI ReleaseAccessor(HACCESSOR hAccessor,DBREFCOUNT *pcRefCount) = 0;
};
#else
typedef struct IAccessorVtbl {
BEGIN_INTERFACE
HRESULT (WINAPI *QueryInterface)(IAccessor *This,REFIID riid,void **ppvObject);
ULONG (WINAPI *AddRef)(IAccessor *This);
ULONG (WINAPI *Release)(IAccessor *This);
HRESULT (WINAPI *AddRefAccessor)(IAccessor *This,HACCESSOR hAccessor,DBREFCOUNT *pcRefCount);
HRESULT (WINAPI *CreateAccessor)(IAccessor *This,DBACCESSORFLAGS dwAccessorFlags,DBCOUNTITEM cBindings,const DBBINDING rgBindings[],DBLENGTH cbRowSize,HACCESSOR *phAccessor,DBBINDSTATUS rgStatus[]);
HRESULT (WINAPI *GetBindings)(IAccessor *This,HACCESSOR hAccessor,DBACCESSORFLAGS *pdwAccessorFlags,DBCOUNTITEM *pcBindings,DBBINDING **prgBindings);
HRESULT (WINAPI *ReleaseAccessor)(IAccessor *This,HACCESSOR hAccessor,DBREFCOUNT *pcRefCount);
END_INTERFACE
} IAccessorVtbl;
struct IAccessor {
CONST_VTBL struct IAccessorVtbl *lpVtbl;
};
#ifdef COBJMACROS
#define IAccessor_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IAccessor_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IAccessor_Release(This) (This)->lpVtbl->Release(This)
#define IAccessor_AddRefAccessor(This,hAccessor,pcRefCount) (This)->lpVtbl->AddRefAccessor(This,hAccessor,pcRefCount)
#define IAccessor_CreateAccessor(This,dwAccessorFlags,cBindings,rgBindings,cbRowSize,phAccessor,rgStatus) (This)->lpVtbl->CreateAccessor(This,dwAccessorFlags,cBindings,rgBindings,cbRowSize,phAccessor,rgStatus)
#define IAccessor_GetBindings(This,hAccessor,pdwAccessorFlags,pcBindings,prgBindings) (This)->lpVtbl->GetBindings(This,hAccessor,pdwAccessorFlags,pcBindings,prgBindings)
#define IAccessor_ReleaseAccessor(This,hAccessor,pcRefCount) (This)->lpVtbl->ReleaseAccessor(This,hAccessor,pcRefCount)
#endif
#endif
HRESULT WINAPI IAccessor_RemoteAddRefAccessor_Proxy(IAccessor *This,HACCESSOR hAccessor,DBREFCOUNT *pcRefCount,IErrorInfo **ppErrorInfoRem);
void __RPC_STUB IAccessor_RemoteAddRefAccessor_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
HRESULT WINAPI IAccessor_RemoteCreateAccessor_Proxy(IAccessor *This,DBACCESSORFLAGS dwAccessorFlags,DBCOUNTITEM cBindings,DBBINDING *rgBindings,DBLENGTH cbRowSize,HACCESSOR *phAccessor,DBBINDSTATUS *rgStatus,IErrorInfo **ppErrorInfoRem);
void __RPC_STUB IAccessor_RemoteCreateAccessor_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
HRESULT WINAPI IAccessor_RemoteGetBindings_Proxy(IAccessor *This,HACCESSOR hAccessor,DBACCESSORFLAGS *pdwAccessorFlags,DBCOUNTITEM *pcBindings,DBBINDING **prgBindings,IErrorInfo **ppErrorInfoRem);
void __RPC_STUB IAccessor_RemoteGetBindings_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
HRESULT WINAPI IAccessor_RemoteReleaseAccessor_Proxy(IAccessor *This,HACCESSOR hAccessor,DBREFCOUNT *pcRefCount,IErrorInfo **ppErrorInfoRem);
void __RPC_STUB IAccessor_RemoteReleaseAccessor_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
#endif
#ifndef __IRowset_INTERFACE_DEFINED__
#define __IRowset_INTERFACE_DEFINED__
typedef DWORD DBROWOPTIONS;
EXTERN_C const IID IID_IRowset;
#if defined(__cplusplus) && !defined(CINTERFACE)
struct IRowset : public IUnknown {
public:
virtual HRESULT WINAPI AddRefRows(DBCOUNTITEM cRows,const HROW rghRows[],DBREFCOUNT rgRefCounts[],DBROWSTATUS rgRowStatus[]) = 0;
virtual HRESULT WINAPI GetData(HROW hRow,HACCESSOR hAccessor,void *pData) = 0;
virtual HRESULT WINAPI GetNextRows(HCHAPTER hReserved,DBROWOFFSET lRowsOffset,DBROWCOUNT cRows,DBCOUNTITEM *pcRowsObtained,HROW **prghRows) = 0;
virtual HRESULT WINAPI ReleaseRows(DBCOUNTITEM cRows,const HROW rghRows[],DBROWOPTIONS rgRowOptions[],DBREFCOUNT rgRefCounts[],DBROWSTATUS rgRowStatus[]) = 0;
virtual HRESULT WINAPI RestartPosition(HCHAPTER hReserved) = 0;
};
#else
typedef struct IRowsetVtbl {
BEGIN_INTERFACE
HRESULT (WINAPI *QueryInterface)(IRowset *This,REFIID riid,void **ppvObject);
ULONG (WINAPI *AddRef)(IRowset *This);
ULONG (WINAPI *Release)(IRowset *This);
HRESULT (WINAPI *AddRefRows)(IRowset *This,DBCOUNTITEM cRows,const HROW rghRows[],DBREFCOUNT rgRefCounts[],DBROWSTATUS rgRowStatus[]);
HRESULT (WINAPI *GetData)(IRowset *This,HROW hRow,HACCESSOR hAccessor,void *pData);
HRESULT (WINAPI *GetNextRows)(IRowset *This,HCHAPTER hReserved,DBROWOFFSET lRowsOffset,DBROWCOUNT cRows,DBCOUNTITEM *pcRowsObtained,HROW **prghRows);
HRESULT (WINAPI *ReleaseRows)(IRowset *This,DBCOUNTITEM cRows,const HROW rghRows[],DBROWOPTIONS rgRowOptions[],DBREFCOUNT rgRefCounts[],DBROWSTATUS rgRowStatus[]);
HRESULT (WINAPI *RestartPosition)(IRowset *This,HCHAPTER hReserved);
END_INTERFACE
} IRowsetVtbl;
struct IRowset {
CONST_VTBL struct IRowsetVtbl *lpVtbl;
};
#ifdef COBJMACROS
#define IRowset_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IRowset_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IRowset_Release(This) (This)->lpVtbl->Release(This)
#define IRowset_AddRefRows(This,cRows,rghRows,rgRefCounts,rgRowStatus) (This)->lpVtbl->AddRefRows(This,cRows,rghRows,rgRefCounts,rgRowStatus)
#define IRowset_GetData(This,hRow,hAccessor,pData) (This)->lpVtbl->GetData(This,hRow,hAccessor,pData)
#define IRowset_GetNextRows(This,hReserved,lRowsOffset,cRows,pcRowsObtained,prghRows) (This)->lpVtbl->GetNextRows(This,hReserved,lRowsOffset,cRows,pcRowsObtained,prghRows)
#define IRowset_ReleaseRows(This,cRows,rghRows,rgRowOptions,rgRefCounts,rgRowStatus) (This)->lpVtbl->ReleaseRows(This,cRows,rghRows,rgRowOptions,rgRefCounts,rgRowStatus)
#define IRowset_RestartPosition(This,hReserved) (This)->lpVtbl->RestartPosition(This,hReserved)
#endif
#endif
HRESULT WINAPI IRowset_AddRefRows_Proxy(IRowset *This,DBCOUNTITEM cRows,const HROW rghRows[],DBREFCOUNT rgRefCounts[],DBROWSTATUS rgRowStatus[]);
void __RPC_STUB IRowset_AddRefRows_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
HRESULT WINAPI IRowset_GetData_Proxy(IRowset *This,HROW hRow,HACCESSOR hAccessor,void *pData);
void __RPC_STUB IRowset_GetData_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
HRESULT WINAPI IRowset_GetNextRows_Proxy(IRowset *This,HCHAPTER hReserved,DBROWOFFSET lRowsOffset,DBROWCOUNT cRows,DBCOUNTITEM *pcRowsObtained,HROW **prghRows);
void __RPC_STUB IRowset_GetNextRows_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
HRESULT WINAPI IRowset_ReleaseRows_Proxy(IRowset *This,DBCOUNTITEM cRows,const HROW rghRows[],DBROWOPTIONS rgRowOptions[],DBREFCOUNT rgRefCounts[],DBROWSTATUS rgRowStatus[]);
void __RPC_STUB IRowset_ReleaseRows_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
HRESULT WINAPI IRowset_RestartPosition_Proxy(IRowset *This,HCHAPTER hReserved);
void __RPC_STUB IRowset_RestartPosition_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
#endif
#ifndef __IRowsetInfo_INTERFACE_DEFINED__
#define __IRowsetInfo_INTERFACE_DEFINED__
EXTERN_C const IID IID_IRowsetInfo;
#if defined(__cplusplus) && !defined(CINTERFACE)
struct IRowsetInfo : public IUnknown {
public:
virtual HRESULT WINAPI GetProperties(const ULONG cPropertyIDSets,const DBPROPIDSET rgPropertyIDSets[],ULONG *pcPropertySets,DBPROPSET **prgPropertySets) = 0;
virtual HRESULT WINAPI GetReferencedRowset(DBORDINAL iOrdinal,REFIID riid,IUnknown **ppReferencedRowset) = 0;
virtual HRESULT WINAPI GetSpecification(REFIID riid,IUnknown **ppSpecification) = 0;
};
#else
typedef struct IRowsetInfoVtbl {
BEGIN_INTERFACE
HRESULT (WINAPI *QueryInterface)(IRowsetInfo *This,REFIID riid,void **ppvObject);
ULONG (WINAPI *AddRef)(IRowsetInfo *This);
ULONG (WINAPI *Release)(IRowsetInfo *This);
HRESULT (WINAPI *GetProperties)(IRowsetInfo *This,const ULONG cPropertyIDSets,const DBPROPIDSET rgPropertyIDSets[],ULONG *pcPropertySets,DBPROPSET **prgPropertySets);
HRESULT (WINAPI *GetReferencedRowset)(IRowsetInfo *This,DBORDINAL iOrdinal,REFIID riid,IUnknown **ppReferencedRowset);
HRESULT (WINAPI *GetSpecification)(IRowsetInfo *This,REFIID riid,IUnknown **ppSpecification);
END_INTERFACE
} IRowsetInfoVtbl;
struct IRowsetInfo {
CONST_VTBL struct IRowsetInfoVtbl *lpVtbl;
};
#ifdef COBJMACROS
#define IRowsetInfo_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IRowsetInfo_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IRowsetInfo_Release(This) (This)->lpVtbl->Release(This)
#define IRowsetInfo_GetProperties(This,cPropertyIDSets,rgPropertyIDSets,pcPropertySets,prgPropertySets) (This)->lpVtbl->GetProperties(This,cPropertyIDSets,rgPropertyIDSets,pcPropertySets,prgPropertySets)
#define IRowsetInfo_GetReferencedRowset(This,iOrdinal,riid,ppReferencedRowset) (This)->lpVtbl->GetReferencedRowset(This,iOrdinal,riid,ppReferencedRowset)
#define IRowsetInfo_GetSpecification(This,riid,ppSpecification) (This)->lpVtbl->GetSpecification(This,riid,ppSpecification)
#endif
#endif
HRESULT WINAPI IRowsetInfo_RemoteGetProperties_Proxy(IRowsetInfo *This,ULONG cPropertyIDSets,const DBPROPIDSET *rgPropertyIDSets,ULONG *pcPropertySets,DBPROPSET **prgPropertySets,IErrorInfo **ppErrorInfoRem);
void __RPC_STUB IRowsetInfo_RemoteGetProperties_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
HRESULT WINAPI IRowsetInfo_RemoteGetReferencedRowset_Proxy(IRowsetInfo *This,DBORDINAL iOrdinal,REFIID riid,IUnknown **ppReferencedRowset,IErrorInfo **ppErrorInfoRem);
void __RPC_STUB IRowsetInfo_RemoteGetReferencedRowset_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
HRESULT WINAPI IRowsetInfo_RemoteGetSpecification_Proxy(IRowsetInfo *This,REFIID riid,IUnknown **ppSpecification,IErrorInfo **ppErrorInfoRem);
void __RPC_STUB IRowsetInfo_RemoteGetSpecification_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
#endif
#ifndef __IRowsetLocate_INTERFACE_DEFINED__
#define __IRowsetLocate_INTERFACE_DEFINED__
typedef DWORD DBCOMPARE;
enum DBCOMPAREENUM {
DBCOMPARE_LT = 0,
DBCOMPARE_EQ,DBCOMPARE_GT,DBCOMPARE_NE,DBCOMPARE_NOTCOMPARABLE
};
EXTERN_C const IID IID_IRowsetLocate;
#if defined(__cplusplus) && !defined(CINTERFACE)
struct IRowsetLocate : public IRowset {
public:
virtual HRESULT WINAPI Compare(HCHAPTER hReserved,DBBKMARK cbBookmark1,const BYTE *pBookmark1,DBBKMARK cbBookmark2,const BYTE *pBookmark2,DBCOMPARE *pComparison) = 0;
virtual HRESULT WINAPI GetRowsAt(HWATCHREGION hReserved1,HCHAPTER hReserved2,DBBKMARK cbBookmark,const BYTE *pBookmark,DBROWOFFSET lRowsOffset,DBROWCOUNT cRows,DBCOUNTITEM *pcRowsObtained,HROW **prghRows) = 0;
virtual HRESULT WINAPI GetRowsByBookmark(HCHAPTER hReserved,DBCOUNTITEM cRows,const DBBKMARK rgcbBookmarks[],const BYTE *rgpBookmarks[],HROW rghRows[],DBROWSTATUS rgRowStatus[]) = 0;
virtual HRESULT WINAPI Hash(HCHAPTER hReserved,DBBKMARK cBookmarks,const DBBKMARK rgcbBookmarks[],const BYTE *rgpBookmarks[],DBHASHVALUE rgHashedValues[],DBROWSTATUS rgBookmarkStatus[]) = 0;
};
#else
typedef struct IRowsetLocateVtbl {
BEGIN_INTERFACE
HRESULT (WINAPI *QueryInterface)(IRowsetLocate *This,REFIID riid,void **ppvObject);
ULONG (WINAPI *AddRef)(IRowsetLocate *This);
ULONG (WINAPI *Release)(IRowsetLocate *This);
HRESULT (WINAPI *AddRefRows)(IRowsetLocate *This,DBCOUNTITEM cRows,const HROW rghRows[],DBREFCOUNT rgRefCounts[],DBROWSTATUS rgRowStatus[]);
HRESULT (WINAPI *GetData)(IRowsetLocate *This,HROW hRow,HACCESSOR hAccessor,void *pData);
HRESULT (WINAPI *GetNextRows)(IRowsetLocate *This,HCHAPTER hReserved,DBROWOFFSET lRowsOffset,DBROWCOUNT cRows,DBCOUNTITEM *pcRowsObtained,HROW **prghRows);
HRESULT (WINAPI *ReleaseRows)(IRowsetLocate *This,DBCOUNTITEM cRows,const HROW rghRows[],DBROWOPTIONS rgRowOptions[],DBREFCOUNT rgRefCounts[],DBROWSTATUS rgRowStatus[]);
HRESULT (WINAPI *RestartPosition)(IRowsetLocate *This,HCHAPTER hReserved);
HRESULT (WINAPI *Compare)(IRowsetLocate *This,HCHAPTER hReserved,DBBKMARK cbBookmark1,const BYTE *pBookmark1,DBBKMARK cbBookmark2,const BYTE *pBookmark2,DBCOMPARE *pComparison);
HRESULT (WINAPI *GetRowsAt)(IRowsetLocate *This,HWATCHREGION hReserved1,HCHAPTER hReserved2,DBBKMARK cbBookmark,const BYTE *pBookmark,DBROWOFFSET lRowsOffset,DBROWCOUNT cRows,DBCOUNTITEM *pcRowsObtained,HROW **prghRows);
HRESULT (WINAPI *GetRowsByBookmark)(IRowsetLocate *This,HCHAPTER hReserved,DBCOUNTITEM cRows,const DBBKMARK rgcbBookmarks[],const BYTE *rgpBookmarks[],HROW rghRows[],DBROWSTATUS rgRowStatus[]);
HRESULT (WINAPI *Hash)(IRowsetLocate *This,HCHAPTER hReserved,DBBKMARK cBookmarks,const DBBKMARK rgcbBookmarks[],const BYTE *rgpBookmarks[],DBHASHVALUE rgHashedValues[],DBROWSTATUS rgBookmarkStatus[]);
END_INTERFACE
} IRowsetLocateVtbl;
struct IRowsetLocate {
CONST_VTBL struct IRowsetLocateVtbl *lpVtbl;
};
#ifdef COBJMACROS
#define IRowsetLocate_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IRowsetLocate_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IRowsetLocate_Release(This) (This)->lpVtbl->Release(This)
#define IRowsetLocate_AddRefRows(This,cRows,rghRows,rgRefCounts,rgRowStatus) (This)->lpVtbl->AddRefRows(This,cRows,rghRows,rgRefCounts,rgRowStatus)
#define IRowsetLocate_GetData(This,hRow,hAccessor,pData) (This)->lpVtbl->GetData(This,hRow,hAccessor,pData)
#define IRowsetLocate_GetNextRows(This,hReserved,lRowsOffset,cRows,pcRowsObtained,prghRows) (This)->lpVtbl->GetNextRows(This,hReserved,lRowsOffset,cRows,pcRowsObtained,prghRows)
#define IRowsetLocate_ReleaseRows(This,cRows,rghRows,rgRowOptions,rgRefCounts,rgRowStatus) (This)->lpVtbl->ReleaseRows(This,cRows,rghRows,rgRowOptions,rgRefCounts,rgRowStatus)
#define IRowsetLocate_RestartPosition(This,hReserved) (This)->lpVtbl->RestartPosition(This,hReserved)
#define IRowsetLocate_Compare(This,hReserved,cbBookmark1,pBookmark1,cbBookmark2,pBookmark2,pComparison) (This)->lpVtbl->Compare(This,hReserved,cbBookmark1,pBookmark1,cbBookmark2,pBookmark2,pComparison)
#define IRowsetLocate_GetRowsAt(This,hReserved1,hReserved2,cbBookmark,pBookmark,lRowsOffset,cRows,pcRowsObtained,prghRows) (This)->lpVtbl->GetRowsAt(This,hReserved1,hReserved2,cbBookmark,pBookmark,lRowsOffset,cRows,pcRowsObtained,prghRows)
#define IRowsetLocate_GetRowsByBookmark(This,hReserved,cRows,rgcbBookmarks,rgpBookmarks,rghRows,rgRowStatus) (This)->lpVtbl->GetRowsByBookmark(This,hReserved,cRows,rgcbBookmarks,rgpBookmarks,rghRows,rgRowStatus)
#define IRowsetLocate_Hash(This,hReserved,cBookmarks,rgcbBookmarks,rgpBookmarks,rgHashedValues,rgBookmarkStatus) (This)->lpVtbl->Hash(This,hReserved,cBookmarks,rgcbBookmarks,rgpBookmarks,rgHashedValues,rgBookmarkStatus)
#endif
#endif
HRESULT WINAPI IRowsetLocate_Compare_Proxy(IRowsetLocate *This,HCHAPTER hReserved,DBBKMARK cbBookmark1,const BYTE *pBookmark1,DBBKMARK cbBookmark2,const BYTE *pBookmark2,DBCOMPARE *pComparison);
void __RPC_STUB IRowsetLocate_Compare_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
HRESULT WINAPI IRowsetLocate_GetRowsAt_Proxy(IRowsetLocate *This,HWATCHREGION hReserved1,HCHAPTER hReserved2,DBBKMARK cbBookmark,const BYTE *pBookmark,DBROWOFFSET lRowsOffset,DBROWCOUNT cRows,DBCOUNTITEM *pcRowsObtained,HROW **prghRows);
void __RPC_STUB IRowsetLocate_GetRowsAt_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
HRESULT WINAPI IRowsetLocate_GetRowsByBookmark_Proxy(IRowsetLocate *This,HCHAPTER hReserved,DBCOUNTITEM cRows,const DBBKMARK rgcbBookmarks[],const BYTE *rgpBookmarks[],HROW rghRows[],DBROWSTATUS rgRowStatus[]);
void __RPC_STUB IRowsetLocate_GetRowsByBookmark_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
HRESULT WINAPI IRowsetLocate_Hash_Proxy(IRowsetLocate *This,HCHAPTER hReserved,DBBKMARK cBookmarks,const DBBKMARK rgcbBookmarks[],const BYTE *rgpBookmarks[],DBHASHVALUE rgHashedValues[],DBROWSTATUS rgBookmarkStatus[]);
void __RPC_STUB IRowsetLocate_Hash_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
#endif
#ifndef __IRowsetResynch_INTERFACE_DEFINED__
#define __IRowsetResynch_INTERFACE_DEFINED__
EXTERN_C const IID IID_IRowsetResynch;
#if defined(__cplusplus) && !defined(CINTERFACE)
struct IRowsetResynch : public IUnknown {
public:
virtual HRESULT WINAPI GetVisibleData(HROW hRow,HACCESSOR hAccessor,void *pData) = 0;
virtual HRESULT WINAPI ResynchRows(DBCOUNTITEM cRows,const HROW rghRows[],DBCOUNTITEM *pcRowsResynched,HROW **prghRowsResynched,DBROWSTATUS **prgRowStatus) = 0;
};
#else
typedef struct IRowsetResynchVtbl {
BEGIN_INTERFACE
HRESULT (WINAPI *QueryInterface)(IRowsetResynch *This,REFIID riid,void **ppvObject);
ULONG (WINAPI *AddRef)(IRowsetResynch *This);
ULONG (WINAPI *Release)(IRowsetResynch *This);
HRESULT (WINAPI *GetVisibleData)(IRowsetResynch *This,HROW hRow,HACCESSOR hAccessor,void *pData);
HRESULT (WINAPI *ResynchRows)(IRowsetResynch *This,DBCOUNTITEM cRows,const HROW rghRows[],DBCOUNTITEM *pcRowsResynched,HROW **prghRowsResynched,DBROWSTATUS **prgRowStatus);
END_INTERFACE
} IRowsetResynchVtbl;
struct IRowsetResynch {
CONST_VTBL struct IRowsetResynchVtbl *lpVtbl;
};
#ifdef COBJMACROS
#define IRowsetResynch_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IRowsetResynch_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IRowsetResynch_Release(This) (This)->lpVtbl->Release(This)
#define IRowsetResynch_GetVisibleData(This,hRow,hAccessor,pData) (This)->lpVtbl->GetVisibleData(This,hRow,hAccessor,pData)
#define IRowsetResynch_ResynchRows(This,cRows,rghRows,pcRowsResynched,prghRowsResynched,prgRowStatus) (This)->lpVtbl->ResynchRows(This,cRows,rghRows,pcRowsResynched,prghRowsResynched,prgRowStatus)
#endif
#endif
HRESULT WINAPI IRowsetResynch_GetVisibleData_Proxy(IRowsetResynch *This,HROW hRow,HACCESSOR hAccessor,void *pData);
void __RPC_STUB IRowsetResynch_GetVisibleData_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
HRESULT WINAPI IRowsetResynch_ResynchRows_Proxy(IRowsetResynch *This,DBCOUNTITEM cRows,const HROW rghRows[],DBCOUNTITEM *pcRowsResynched,HROW **prghRowsResynched,DBROWSTATUS **prgRowStatus);
void __RPC_STUB IRowsetResynch_ResynchRows_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
#endif
#ifndef __IRowsetScroll_INTERFACE_DEFINED__
#define __IRowsetScroll_INTERFACE_DEFINED__
EXTERN_C const IID IID_IRowsetScroll;
#if defined(__cplusplus) && !defined(CINTERFACE)
struct IRowsetScroll : public IRowsetLocate {
public:
virtual HRESULT WINAPI GetApproximatePosition(HCHAPTER hReserved,DBBKMARK cbBookmark,const BYTE *pBookmark,DBCOUNTITEM *pulPosition,DBCOUNTITEM *pcRows) = 0;
virtual HRESULT WINAPI GetRowsAtRatio(HWATCHREGION hReserved1,HCHAPTER hReserved2,DBCOUNTITEM ulNumerator,DBCOUNTITEM ulDenominator,DBROWCOUNT cRows,DBCOUNTITEM *pcRowsObtained,HROW **prghRows) = 0;
};
#else
typedef struct IRowsetScrollVtbl {
BEGIN_INTERFACE
HRESULT (WINAPI *QueryInterface)(IRowsetScroll *This,REFIID riid,void **ppvObject);
ULONG (WINAPI *AddRef)(IRowsetScroll *This);
ULONG (WINAPI *Release)(IRowsetScroll *This);
HRESULT (WINAPI *AddRefRows)(IRowsetScroll *This,DBCOUNTITEM cRows,const HROW rghRows[],DBREFCOUNT rgRefCounts[],DBROWSTATUS rgRowStatus[]);
HRESULT (WINAPI *GetData)(IRowsetScroll *This,HROW hRow,HACCESSOR hAccessor,void *pData);
HRESULT (WINAPI *GetNextRows)(IRowsetScroll *This,HCHAPTER hReserved,DBROWOFFSET lRowsOffset,DBROWCOUNT cRows,DBCOUNTITEM *pcRowsObtained,HROW **prghRows);
HRESULT (WINAPI *ReleaseRows)(IRowsetScroll *This,DBCOUNTITEM cRows,const HROW rghRows[],DBROWOPTIONS rgRowOptions[],DBREFCOUNT rgRefCounts[],DBROWSTATUS rgRowStatus[]);
HRESULT (WINAPI *RestartPosition)(IRowsetScroll *This,HCHAPTER hReserved);
HRESULT (WINAPI *Compare)(IRowsetScroll *This,HCHAPTER hReserved,DBBKMARK cbBookmark1,const BYTE *pBookmark1,DBBKMARK cbBookmark2,const BYTE *pBookmark2,DBCOMPARE *pComparison);
HRESULT (WINAPI *GetRowsAt)(IRowsetScroll *This,HWATCHREGION hReserved1,HCHAPTER hReserved2,DBBKMARK cbBookmark,const BYTE *pBookmark,DBROWOFFSET lRowsOffset,DBROWCOUNT cRows,DBCOUNTITEM *pcRowsObtained,HROW **prghRows);
HRESULT (WINAPI *GetRowsByBookmark)(IRowsetScroll *This,HCHAPTER hReserved,DBCOUNTITEM cRows,const DBBKMARK rgcbBookmarks[],const BYTE *rgpBookmarks[],HROW rghRows[],DBROWSTATUS rgRowStatus[]);
HRESULT (WINAPI *Hash)(IRowsetScroll *This,HCHAPTER hReserved,DBBKMARK cBookmarks,const DBBKMARK rgcbBookmarks[],const BYTE *rgpBookmarks[],DBHASHVALUE rgHashedValues[],DBROWSTATUS rgBookmarkStatus[]);
HRESULT (WINAPI *GetApproximatePosition)(IRowsetScroll *This,HCHAPTER hReserved,DBBKMARK cbBookmark,const BYTE *pBookmark,DBCOUNTITEM *pulPosition,DBCOUNTITEM *pcRows);
HRESULT (WINAPI *GetRowsAtRatio)(IRowsetScroll *This,HWATCHREGION hReserved1,HCHAPTER hReserved2,DBCOUNTITEM ulNumerator,DBCOUNTITEM ulDenominator,DBROWCOUNT cRows,DBCOUNTITEM *pcRowsObtained,HROW **prghRows);
END_INTERFACE
} IRowsetScrollVtbl;
struct IRowsetScroll {
CONST_VTBL struct IRowsetScrollVtbl *lpVtbl;
};
#ifdef COBJMACROS
#define IRowsetScroll_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IRowsetScroll_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IRowsetScroll_Release(This) (This)->lpVtbl->Release(This)
#define IRowsetScroll_AddRefRows(This,cRows,rghRows,rgRefCounts,rgRowStatus) (This)->lpVtbl->AddRefRows(This,cRows,rghRows,rgRefCounts,rgRowStatus)
#define IRowsetScroll_GetData(This,hRow,hAccessor,pData) (This)->lpVtbl->GetData(This,hRow,hAccessor,pData)
#define IRowsetScroll_GetNextRows(This,hReserved,lRowsOffset,cRows,pcRowsObtained,prghRows) (This)->lpVtbl->GetNextRows(This,hReserved,lRowsOffset,cRows,pcRowsObtained,prghRows)
#define IRowsetScroll_ReleaseRows(This,cRows,rghRows,rgRowOptions,rgRefCounts,rgRowStatus) (This)->lpVtbl->ReleaseRows(This,cRows,rghRows,rgRowOptions,rgRefCounts,rgRowStatus)
#define IRowsetScroll_RestartPosition(This,hReserved) (This)->lpVtbl->RestartPosition(This,hReserved)
#define IRowsetScroll_Compare(This,hReserved,cbBookmark1,pBookmark1,cbBookmark2,pBookmark2,pComparison) (This)->lpVtbl->Compare(This,hReserved,cbBookmark1,pBookmark1,cbBookmark2,pBookmark2,pComparison)
#define IRowsetScroll_GetRowsAt(This,hReserved1,hReserved2,cbBookmark,pBookmark,lRowsOffset,cRows,pcRowsObtained,prghRows) (This)->lpVtbl->GetRowsAt(This,hReserved1,hReserved2,cbBookmark,pBookmark,lRowsOffset,cRows,pcRowsObtained,prghRows)
#define IRowsetScroll_GetRowsByBookmark(This,hReserved,cRows,rgcbBookmarks,rgpBookmarks,rghRows,rgRowStatus) (This)->lpVtbl->GetRowsByBookmark(This,hReserved,cRows,rgcbBookmarks,rgpBookmarks,rghRows,rgRowStatus)
#define IRowsetScroll_Hash(This,hReserved,cBookmarks,rgcbBookmarks,rgpBookmarks,rgHashedValues,rgBookmarkStatus) (This)->lpVtbl->Hash(This,hReserved,cBookmarks,rgcbBookmarks,rgpBookmarks,rgHashedValues,rgBookmarkStatus)
#define IRowsetScroll_GetApproximatePosition(This,hReserved,cbBookmark,pBookmark,pulPosition,pcRows) (This