.pragma list(push, 0)
ifndef __REQUIRED_RPCNDR_H_VERSION__
define __REQUIRED_RPCNDR_H_VERSION__ 500
endif
ifndef __REQUIRED_RPCSAL_H_VERSION__
define __REQUIRED_RPCSAL_H_VERSION__ 100
endif

include rpc.inc
include rpcndr.inc

ifndef __RPCNDR_H_VERSION__
.err <this stub requires an updated version of rpcndr.h>
endif

ifndef COM_NO_WINDOWS_H
include windows.inc
include ole2.inc
endif

ifndef __oledb_h__
define __oledb_h__


include wtypes.inc
include oaidl.inc
include ocidl.inc
include propidl.inc
include transact.inc
include winapifamily.inc

ifdef _WIN64
.pragma pack(push, 8)
else
.pragma pack(push, 2)
endif

ifndef OLEDBVER
OLEDBVER equ 0x0270
endif

ifdef deprecated
.err <deprecated defined>
oledb_deprecated equ 1
undef deprecated
endif

if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)

ifdef _WIN64

DBLENGTH		typedef ULONGLONG
DBROWOFFSET		typedef LONGLONG
DBROWCOUNT		typedef LONGLONG
DBCOUNTITEM		typedef ULONGLONG
DBORDINAL		typedef ULONGLONG
DB_LORDINAL		typedef LONGLONG
DBBKMARK		typedef ULONGLONG
DBBYTEOFFSET		typedef ULONGLONG
DBREFCOUNT		typedef ULONG
DB_UPARAMS		typedef ULONGLONG
DB_LPARAMS		typedef LONGLONG
DBHASHVALUE		typedef DWORDLONG
DB_DWRESERVE		typedef DWORDLONG
DB_LRESERVE		typedef LONGLONG
DB_URESERVE		typedef ULONGLONG

else

DBLENGTH		typedef ULONG
DBROWOFFSET		typedef LONG
DBROWCOUNT		typedef LONG
DBCOUNTITEM		typedef ULONG
DBORDINAL		typedef ULONG
DB_LORDINAL		typedef LONG
DBBKMARK		typedef ULONG
DBBYTEOFFSET		typedef ULONG
DBREFCOUNT		typedef ULONG
DB_UPARAMS		typedef ULONG
DB_LPARAMS		typedef LONG
DBHASHVALUE		typedef DWORD
DB_DWRESERVE		typedef DWORD
DB_LRESERVE		typedef LONG
DB_URESERVE		typedef ULONG

endif

if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)

ifndef __DBStructureDefinitions_INTERFACE_DEFINED__
define __DBStructureDefinitions_INTERFACE_DEFINED__

undef OLEDBDECLSPEC

DBKIND typedef DWORD

.enum DBKINDENUM {
    DBKIND_GUID_NAME	= 0,
    DBKIND_GUID_PROPID	= ( DBKIND_GUID_NAME + 1 ) ,
    DBKIND_NAME = ( DBKIND_GUID_PROPID + 1 ) ,
    DBKIND_PGUID_NAME	= ( DBKIND_NAME + 1 ) ,
    DBKIND_PGUID_PROPID = ( DBKIND_PGUID_NAME + 1 ) ,
    DBKIND_PROPID	= ( DBKIND_PGUID_PROPID + 1 ) ,
    DBKIND_GUID = ( DBKIND_PROPID + 1 )
    }

DBID			STRUC
UNION uGuid
 guid			GUID <>
 pguid			LPGUID ?
ENDS
eKind			DBKIND ?
UNION uName
 pwszName		LPOLESTR ?
 ulPropid		ULONG ?
ENDS
DBID			ENDS

DB_NUMERIC		STRUC
precision		db ?
scale			db ?
sign			db ?
val			db  16	dup(?)
DB_NUMERIC		ENDS

ifndef _ULONGLONG_
LONGLONG		typedef sqword
ULONGLONG		typedef qword
PLONGLONG		typedef ptr LONGLONG
PULONGLONG		typedef ptr ULONGLONG
endif

ifndef DECIMAL_NEG
ifndef DECIMAL_SETZERO

DECIMAL			STRUC
wReserved		USHORT ?
UNION
 STRUC
  scale			db ?
  sign			db ?
 ENDS
 signscale		USHORT ?
ENDS
Hi32			ULONG ?
UNION
 STRUC
 ifdef _MAC
  Mid32			ULONG ?
  Lo32			ULONG ?
 else
  Lo32			ULONG ?
  Mid32			ULONG ?
 endif
 ENDS
 Lo64			ULONGLONG ?
ENDS
DECIMAL			ENDS

DECIMAL_NEG equ 0x80
DECIMAL_SETZERO macro d
	mov d.Lo64,0
	mov d.Hi32,0
	mov d.signscale,0
	exitm<>
	endm

endif
endif

DBVECTOR		STRUC
size			DBLENGTH ?
DBVECTOR		ENDS

DBDATE			STRUC
year			SWORD ?
month			USHORT ?
day			USHORT ?
DBDATE			ENDS

DBTIME			STRUC
hour			USHORT ?
minute			USHORT ?
second			USHORT ?
DBTIME			ENDS

DBTIMESTAMP		STRUC
year			SWORD ?
month			USHORT ?
day			USHORT ?
hour			USHORT ?
minute			USHORT ?
second			USHORT ?
fraction		ULONG ?
DBTIMESTAMP		ENDS

if( OLEDBVER GE 0x0200 )
if NOT defined(_WINBASE_) AND NOT defined(_FILETIME_)
_FILETIME_ equ 1
FILETIME		STRUC
dwLowDateTime		dd ?
dwHighDateTime		dd ?
FILETIME		ENDS
endif
DB_VARNUMERIC		STRUC
precision		db ?
scale			SBYTE ?
sign			db ?
val			db 1 dup(?)
DB_VARNUMERIC		ENDS
endif

if( OLEDBVER GE 0x0210 )
SEC_OBJECT_ELEMENT	STRUC
guidObjectType		GUID <>
ObjectID		DBID <>
SEC_OBJECT_ELEMENT	ENDS

SEC_OBJECT		STRUC
cObjects		dd ?
SEC_OBJECT		ENDS

DBIMPLICITSESSION	STRUC
pUnkOuter		LPUNKNOWN ?
piid			LPIID ?
pSession		LPUNKNOWN ?
DBIMPLICITSESSION	ENDS

endif

DBTYPE typedef WORD

.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
DBTYPEFOR_DBLENGTH	equ DBTYPE_UI8
DBTYPEFOR_DBROWCOUNT	equ DBTYPE_I8
DBTYPEFOR_DBORDINAL	equ DBTYPE_UI8
else
DBTYPEFOR_DBLENGTH	equ DBTYPE_UI4
DBTYPEFOR_DBROWCOUNT	equ DBTYPE_I4
DBTYPEFOR_DBORDINAL	equ DBTYPE_UI4
endif
if( OLEDBVER GE 0x0150 )

.enum DBTYPEENUM15 {
    DBTYPE_HCHAPTER = 136
    }
endif
if( OLEDBVER GE 0x0200 )

.enum DBTYPEENUM20 {
    DBTYPE_FILETIME = 64,
    DBTYPE_PROPVARIANT	= 138,
    DBTYPE_VARNUMERIC	= 139
    }
endif
DBPART typedef DWORD


.enum DBPARTENUM {
    DBPART_INVALID	= 0,
    DBPART_VALUE	= 0x1,
    DBPART_LENGTH	= 0x2,
    DBPART_STATUS	= 0x4
    }

DBPARAMIO typedef DWORD

.enum DBPARAMIOENUM {
    DBPARAMIO_NOTPARAM	= 0,
    DBPARAMIO_INPUT = 0x1,
    DBPARAMIO_OUTPUT	= 0x2
    }
if( OLEDBVER GE 0x0150 )

DBBINDFLAG typedef DWORD

.enum DBBINDFLAGENUM {
    DBBINDFLAG_HTML = 0x1
    }
endif

DBMEMOWNER typedef DWORD

.enum DBMEMOWNERENUM {
    DBMEMOWNER_CLIENTOWNED	= 0,
    DBMEMOWNER_PROVIDEROWNED	= 0x1
    }

DBOBJECT		STRUC
dwFlags			dd ?
iid			IID <>
DBOBJECT		ENDS
DBSTATUS		typedef DWORD

.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 GE 0x0200 )

.enum DBSTATUSENUM20 {
    MDSTATUS_S_CELLEMPTY= 14,
    DBSTATUS_S_IGNORE	= 15
    }
endif

if( OLEDBVER GE 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
    }
DBBINDURLFLAG		typedef DWORD


.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
    }
DBBINDURLSTATUS		typedef DWORD


.enum DBBINDURLSTATUSENUM {
    DBBINDURLSTATUS_S_OK		= 0,
    DBBINDURLSTATUS_S_DENYNOTSUPPORTED	= 0x1,
    DBBINDURLSTATUS_S_DENYTYPENOTSUPPORTED = 0x4,
    DBBINDURLSTATUS_S_REDIRECTED	= 0x8
    }

endif

if( OLEDBVER GE 0x0250 )

.enum DBSTATUSENUM25 {
    DBSTATUS_E_CANCELED = 27,
    DBSTATUS_E_NOTCOLLECTION	= 28
    }
endif

DBBINDEXT		STRUC
ulExtension		DBCOUNTITEM ?
DBBINDEXT		ENDS

LPITypeInfo		typedef ptr ITypeInfo
LPDBOBJECT		typedef ptr DBOBJECT
LPDBBINDEXT		typedef ptr DBBINDEXT
DBBINDING		STRUC
iOrdinal		DBORDINAL ?
obValue			DBBYTEOFFSET ?
obLength		DBBYTEOFFSET ?
obStatus		DBBYTEOFFSET ?
pTypeInfo		LPITypeInfo ?
pObject			LPDBOBJECT ?
pBindExt		LPDBBINDEXT ?
dwPart			DBPART ?
dwMemOwner		DBMEMOWNER ?
eParamIO		DBPARAMIO ?
cbMaxLen		DBLENGTH ?
dwFlags			dd ?
wType			DBTYPE ?
bPrecision		db ?
bScale			db ?
DBBINDING		ENDS

DBROWSTATUS		typedef DWORD


.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 GE 0x0200 )

.enum DBROWSTATUSENUM20 {
    DBROWSTATUS_S_NOCHANGE	= 20
    }
endif
if( OLEDBVER GE 0x0260 )

.enum DBSTATUSENUM26 {
    DBSTATUS_S_ROWSETCOLUMN = 29
    }
endif
HACCESSOR		typedef ULONG_PTR

DB_NULL_HACCESSOR	equ 0x00
DB_INVALID_HACCESSOR	equ 0x00
HROW			typedef ULONG_PTR

DB_NULL_HROW		equ 0x00
HWATCHREGION		typedef ULONG_PTR

DBWATCHREGION_NULL	equ NULL
HCHAPTER		typedef ULONG_PTR

DB_NULL_HCHAPTER	equ 0x00
DB_INVALID_HCHAPTER	equ 0x00
DBFAILUREINFO		STRUC
hRow			HROW ?
iColumn			DBORDINAL ?
failure			HRESULT ?
DBFAILUREINFO		ENDS

DBCOLUMNFLAGS		typedef DWORD


.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 GE 0x0200 )

.enum DBCOLUMNFLAGSENUM20 {
    DBCOLUMNFLAGS_SCALEISNEGATIVE	= 0x4000,
    DBCOLUMNFLAGS_RESERVED	= 0x8000
    }
endif

ifdef oledb_deprecated
if( OLEDBVER GE 0x0200 )

.enum DBCOLUMNFLAGSDEPRECATED {
    DBCOLUMNFLAGS_KEYCOLUMN = 0x8000
    }
endif
endif

if( OLEDBVER GE 0x0150 )

.enum DBCOLUMNFLAGS15ENUM {
    DBCOLUMNFLAGS_ISCHAPTER = 0x2000
    }
endif

if( OLEDBVER GE 0x0210 )

.enum DBCOLUMNFLAGSENUM21 {
    DBCOLUMNFLAGS_ISROWURL	= 0x10000,
    DBCOLUMNFLAGS_ISDEFAULTSTREAM	= 0x20000,
    DBCOLUMNFLAGS_ISCOLLECTION	= 0x40000
    }
endif

if( OLEDBVER GE 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

DBCOLUMNINFO		STRUC
pwszName		LPOLESTR ?
pTypeInfo		LPITypeInfo ?
iOrdinal		DBORDINAL ?
dwFlags			DBCOLUMNFLAGS ?
ulColumnSize		DBLENGTH ?
wType			DBTYPE ?
bPrecision		db ?
bScale			db ?
columnid		DBID <>
DBCOLUMNINFO		ENDS

.enum DBBOOKMARK {
    DBBMK_INVALID	= 0,
    DBBMK_FIRST = ( DBBMK_INVALID + 1 ) ,
    DBBMK_LAST	= ( DBBMK_FIRST + 1 )
    }

STD_BOOKMARKLENGTH	equ 1

IsEqualGUIDBase proto fastcall :ptr GUID, :ptr GUID {
    .ifd memcmp(_1, _2)
	xor eax,eax
    .else
	inc eax
    .endif
    }

ifdef _WIN64
DB_INVALIDCOLUMN	equ _UI64_MAX
else
DB_INVALIDCOLUMN	equ ULONG_MAX
endif

DBCIDGUID		equ <{0x0C733A81,0x2A1C,0x11CE,{0xAD,0xE5,0x00,0xAA,0x00,0x44,0x77,0x3D}}>
DB_NULLGUID		equ <{0x00000000,0x0000,0x0000,{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}}>

ifdef DBINITCONSTANTS

DB_NULLID		       equ <{DB_NULLGUID, 0, 0}>
DBCOLUMN_IDNAME		       equ <{DBCIDGUID, DBKIND_GUID_PROPID, 2}>
DBCOLUMN_NAME		       equ <{DBCIDGUID, DBKIND_GUID_PROPID, 3}>
DBCOLUMN_NUMBER		       equ <{DBCIDGUID, DBKIND_GUID_PROPID, 4}>
DBCOLUMN_TYPE		       equ <{DBCIDGUID, DBKIND_GUID_PROPID, 5}>
DBCOLUMN_PRECISION	       equ <{DBCIDGUID, DBKIND_GUID_PROPID, 7}>
DBCOLUMN_SCALE		       equ <{DBCIDGUID, DBKIND_GUID_PROPID, 8}>
DBCOLUMN_FLAGS		       equ <{DBCIDGUID, DBKIND_GUID_PROPID, 9}>
DBCOLUMN_BASECOLUMNNAME	       equ <{DBCIDGUID, DBKIND_GUID_PROPID, 10}>
DBCOLUMN_BASETABLENAME	       equ <{DBCIDGUID, DBKIND_GUID_PROPID, 11}>
DBCOLUMN_COLLATINGSEQUENCE     equ <{DBCIDGUID, DBKIND_GUID_PROPID, 12}>
DBCOLUMN_COMPUTEMODE	       equ <{DBCIDGUID, DBKIND_GUID_PROPID, 13}>
DBCOLUMN_DEFAULTVALUE	       equ <{DBCIDGUID, DBKIND_GUID_PROPID, 14}>
DBCOLUMN_DOMAINNAME	       equ <{DBCIDGUID, DBKIND_GUID_PROPID, 15}>
DBCOLUMN_HASDEFAULT	       equ <{DBCIDGUID, DBKIND_GUID_PROPID, 16}>
DBCOLUMN_ISAUTOINCREMENT       equ <{DBCIDGUID, DBKIND_GUID_PROPID, 17}>
DBCOLUMN_ISCASESENSITIVE       equ <{DBCIDGUID, DBKIND_GUID_PROPID, 18}>
DBCOLUMN_ISSEARCHABLE	       equ <{DBCIDGUID, DBKIND_GUID_PROPID, 20}>
DBCOLUMN_ISUNIQUE	       equ <{DBCIDGUID, DBKIND_GUID_PROPID, 21}>
DBCOLUMN_BASECATALOGNAME       equ <{DBCIDGUID, DBKIND_GUID_PROPID, 23}>
DBCOLUMN_BASESCHEMANAME	       equ <{DBCIDGUID, DBKIND_GUID_PROPID, 24}>
DBCOLUMN_GUID		       equ <{DBCIDGUID, DBKIND_GUID_PROPID, 29}>
DBCOLUMN_PROPID		       equ <{DBCIDGUID, DBKIND_GUID_PROPID, 30}>
DBCOLUMN_TYPEINFO	       equ <{DBCIDGUID, DBKIND_GUID_PROPID, 31}>
DBCOLUMN_DOMAINCATALOG	       equ <{DBCIDGUID, DBKIND_GUID_PROPID, 32}>
DBCOLUMN_DOMAINSCHEMA	       equ <{DBCIDGUID, DBKIND_GUID_PROPID, 33}>
DBCOLUMN_DATETIMEPRECISION     equ <{DBCIDGUID, DBKIND_GUID_PROPID, 34}>
DBCOLUMN_NUMERICPRECISIONRADIX equ <{DBCIDGUID, DBKIND_GUID_PROPID, 35}>
DBCOLUMN_OCTETLENGTH	       equ <{DBCIDGUID, DBKIND_GUID_PROPID, 36}>
DBCOLUMN_COLUMNSIZE	       equ <{DBCIDGUID, DBKIND_GUID_PROPID, 37}>
DBCOLUMN_CLSID		       equ <{DBCIDGUID, DBKIND_GUID_PROPID, 38}>

if( OLEDBVER GE 0x0150 )
DBCOLUMN_MAYSORT	       equ <{DBCIDGUID, DBKIND_GUID_PROPID, 39}>
endif

else

externdef		DB_NULLID:DBID
externdef		DBCOLUMN_IDNAME:DBID
externdef		DBCOLUMN_NAME:DBID
externdef		DBCOLUMN_NUMBER:DBID
externdef		DBCOLUMN_TYPE:DBID
externdef		DBCOLUMN_PRECISION:DBID
externdef		DBCOLUMN_SCALE:DBID
externdef		DBCOLUMN_FLAGS:DBID
externdef		DBCOLUMN_BASECOLUMNNAME:DBID
externdef		DBCOLUMN_BASETABLENAME:DBID
externdef		DBCOLUMN_COLLATINGSEQUENCE:DBID
externdef		DBCOLUMN_COMPUTEMODE:DBID
externdef		DBCOLUMN_DEFAULTVALUE:DBID
externdef		DBCOLUMN_DOMAINNAME:DBID
externdef		DBCOLUMN_HASDEFAULT:DBID
externdef		DBCOLUMN_ISAUTOINCREMENT:DBID
externdef		DBCOLUMN_ISCASESENSITIVE:DBID
externdef		DBCOLUMN_ISSEARCHABLE:DBID
externdef		DBCOLUMN_ISUNIQUE:DBID
externdef		DBCOLUMN_BASECATALOGNAME:DBID
externdef		DBCOLUMN_BASESCHEMANAME:DBID
externdef		DBCOLUMN_GUID:DBID
externdef		DBCOLUMN_PROPID:DBID
externdef		DBCOLUMN_TYPEINFO:DBID
externdef		DBCOLUMN_DOMAINCATALOG:DBID
externdef		DBCOLUMN_DOMAINSCHEMA:DBID
externdef		DBCOLUMN_DATETIMEPRECISION:DBID
externdef		DBCOLUMN_NUMERICPRECISIONRADIX:DBID
externdef		DBCOLUMN_OCTETLENGTH:DBID
externdef		DBCOLUMN_COLUMNSIZE:DBID
externdef		DBCOLUMN_CLSID:DBID
if( OLEDBVER GE 0x0150 )
externdef		DBCOLUMN_MAYSORT:DBID
endif
endif


ifdef DBINITCONSTANTS

if( OLEDBVER GE 0x0260 )
MDSCHEMA_FUNCTIONS	equ <{0xa07ccd07,0x8148,0x11d0,{0x87,0xbb,0x00,0xc0,0x4f,0xc3,0x39,0x42}}>
MDSCHEMA_ACTIONS	equ <{0xa07ccd08,0x8148,0x11d0,{0x87,0xbb,0x00,0xc0,0x4f,0xc3,0x39,0x42}}>
MDSCHEMA_COMMANDS	equ <{0xa07ccd09,0x8148,0x11d0,{0x87,0xbb,0x00,0xc0,0x4f,0xc3,0x39,0x42}}>
MDSCHEMA_SETS		equ <{0xa07ccd0b,0x8148,0x11d0,{0x87,0xbb,0x00,0xc0,0x4f,0xc3,0x39,0x42}}>
endif

if( OLEDBVER GE 0x0200 )
DBSCHEMA_TABLES_INFO	equ <{0xc8b522e0,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}}>
MDGUID_MDX		equ <{0xa07cccd0,0x8148,0x11d0,{0x87,0xbb,0x00,0xc0,0x4f,0xc3,0x39,0x42}}>
DBGUID_MDX		equ <{0xa07cccd0,0x8148,0x11d0,{0x87,0xbb,0x00,0xc0,0x4f,0xc3,0x39,0x42}}>
MDSCHEMA_CUBES		equ <{0xc8b522d8,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}}>
MDSCHEMA_DIMENSIONS	equ <{0xc8b522d9,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}}>
MDSCHEMA_HIERARCHIES	equ <{0xc8b522da,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}}>
MDSCHEMA_LEVELS		equ <{0xc8b522db,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}}>
MDSCHEMA_MEASURES	equ <{0xc8b522dc,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}}>
MDSCHEMA_PROPERTIES	equ <{0xc8b522dd,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}}>
MDSCHEMA_MEMBERS	equ <{0xc8b522de,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}}>

DBCOLUMN_BASETABLEVERSION equ <{DBCIDGUID, DBKIND_GUID_PROPID, 40}>
DBCOLUMN_KEYCOLUMN	equ <{DBCIDGUID, DBKIND_GUID_PROPID, 41}>
endif

if( OLEDBVER GE 0x0210 )
DBGUID_ROWURL		equ <{0x0C733AB6,0x2A1C,0x11CE,{0xAD,0xE5,0x00,0xAA,0x00,0x44,0x77,0x3D}}>
DBGUID_ROWDEFAULTSTREAM equ <{0x0C733AB7,0x2A1C,0x11CE,{0xAD,0xE5,0x00,0xAA,0x00,0x44,0x77,0x3D}}>
DBPROPSET_TRUSTEE	equ <{0xc8b522e1,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}}>
DBOBJECT_TABLE		equ <{0xc8b522e2,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}}>
DBOBJECT_COLUMN		equ <{0xc8b522e4,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}}>
DBOBJECT_DATABASE	equ <{0xc8b522e5,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}}>
DBOBJECT_PROCEDURE	equ <{0xc8b522e6,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}}>
DBOBJECT_VIEW		equ <{0xc8b522e7,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}}>
DBOBJECT_SCHEMA		equ <{0xc8b522e8,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}}>
DBOBJECT_DOMAIN		equ <{0xc8b522e9,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}}>
DBOBJECT_COLLATION	equ <{0xc8b522ea,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}}>
DBOBJECT_TRUSTEE	equ <{0xc8b522eb,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}}>
DBOBJECT_SCHEMAROWSET	equ <{0xc8b522ec,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}}>
DBOBJECT_CHARACTERSET	equ <{0xc8b522ed,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}}>
DBOBJECT_TRANSLATION	equ <{0xc8b522ee,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}}>
DBSCHEMA_TRUSTEE	equ <{0xc8b522ef,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}}>
DBPROPSET_COLUMNALL	equ <{0xc8b522f0,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}}>
DBPROPSET_INDEXALL	equ <{0xc8b522f1,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}}>
DBPROPSET_TABLEALL	equ <{0xc8b522f2,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}}>
DBPROPSET_TRUSTEEALL	equ <{0xc8b522f3,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}}>
DBPROPSET_CONSTRAINTALL equ <{0xc8b522fa,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}}>
DBGUID_DSO		equ <{0xc8b522f4,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}}>
DBGUID_SESSION		equ <{0xc8b522f5,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}}>
DBGUID_ROWSET		equ <{0xc8b522f6,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}}>
DBGUID_ROW		equ <{0xc8b522f7,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}}>
DBGUID_COMMAND		equ <{0xc8b522f8,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}}>
DBGUID_STREAM		equ <{0xc8b522f9,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}}>

DBROWCOL_ROWURL			equ <{DBGUID_ROWURL, DBKIND_GUID_PROPID, 0}>
DBROWCOL_PARSENAME		equ <{DBGUID_ROWURL, DBKIND_GUID_PROPID, 2}>
DBROWCOL_PARENTNAME		equ <{DBGUID_ROWURL, DBKIND_GUID_PROPID, 3}>
DBROWCOL_ABSOLUTEPARSENAME	equ <{DBGUID_ROWURL, DBKIND_GUID_PROPID, 4}>
DBROWCOL_ISHIDDEN		equ <{DBGUID_ROWURL, DBKIND_GUID_PROPID, 5}>
DBROWCOL_ISREADONLY		equ <{DBGUID_ROWURL, DBKIND_GUID_PROPID, 6}>
DBROWCOL_CONTENTTYPE		equ <{DBGUID_ROWURL, DBKIND_GUID_PROPID, 7}>
DBROWCOL_CONTENTCLASS		equ <{DBGUID_ROWURL, DBKIND_GUID_PROPID, 8}>
DBROWCOL_CONTENTLANGUAGE	equ <{DBGUID_ROWURL, DBKIND_GUID_PROPID, 9}>
DBROWCOL_CREATIONTIME		equ <{DBGUID_ROWURL, DBKIND_GUID_PROPID, 10}>
DBROWCOL_LASTACCESSTIME		equ <{DBGUID_ROWURL, DBKIND_GUID_PROPID, 11}>
DBROWCOL_LASTWRITETIME		equ <{DBGUID_ROWURL, DBKIND_GUID_PROPID, 12}>
DBROWCOL_STREAMSIZE		equ <{DBGUID_ROWURL, DBKIND_GUID_PROPID, 13}>
DBROWCOL_ISCOLLECTION		equ <{DBGUID_ROWURL, DBKIND_GUID_PROPID, 14}>
DBROWCOL_ISSTRUCTUREDDOCUMENT	equ <{DBGUID_ROWURL, DBKIND_GUID_PROPID, 15}>
DBROWCOL_DEFAULTDOCUMENT	equ <{DBGUID_ROWURL, DBKIND_GUID_PROPID, 16}>
DBROWCOL_DISPLAYNAME		equ <{DBGUID_ROWURL, DBKIND_GUID_PROPID, 17}>
DBROWCOL_ISROOT			equ <{DBGUID_ROWURL, DBKIND_GUID_PROPID, 18}>
DBROWCOL_DEFAULTSTREAM		equ <{DBGUID_ROWDEFAULTSTREAM, DBKIND_GUID_PROPID, 0}>
DBGUID_CONTAINEROBJECT		equ <{0xc8b522fb,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}}>
endif

DBSCHEMA_ASSERTIONS		       equ <{0xc8b52210,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}}>
DBSCHEMA_CATALOGS		       equ <{0xc8b52211,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}}>
DBSCHEMA_CHARACTER_SETS		       equ <{0xc8b52212,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}}>
DBSCHEMA_COLLATIONS		       equ <{0xc8b52213,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}}>
DBSCHEMA_COLUMNS		       equ <{0xc8b52214,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}}>
DBSCHEMA_CHECK_CONSTRAINTS	       equ <{0xc8b52215,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}}>
DBSCHEMA_CONSTRAINT_COLUMN_USAGE       equ <{0xc8b52216,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}}>
DBSCHEMA_CONSTRAINT_TABLE_USAGE	       equ <{0xc8b52217,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}}>
DBSCHEMA_KEY_COLUMN_USAGE	       equ <{0xc8b52218,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}}>
DBSCHEMA_REFERENTIAL_CONSTRAINTS       equ <{0xc8b52219,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}}>
DBSCHEMA_TABLE_CONSTRAINTS	       equ <{0xc8b5221a,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}}>
DBSCHEMA_COLUMN_DOMAIN_USAGE	       equ <{0xc8b5221b,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}}>
DBSCHEMA_INDEXES		       equ <{0xc8b5221e,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}}>
DBSCHEMA_COLUMN_PRIVILEGES	       equ <{0xc8b52221,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}}>
DBSCHEMA_TABLE_PRIVILEGES	       equ <{0xc8b52222,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}}>
DBSCHEMA_USAGE_PRIVILEGES	       equ <{0xc8b52223,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}}>
DBSCHEMA_PROCEDURES		       equ <{0xc8b52224,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}}>
DBSCHEMA_SCHEMATA		       equ <{0xc8b52225,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}}>
DBSCHEMA_SQL_LANGUAGES		       equ <{0xc8b52226,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}}>
DBSCHEMA_STATISTICS		       equ <{0xc8b52227,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}}>
DBSCHEMA_TABLES			       equ <{0xc8b52229,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}}>
DBSCHEMA_TRANSLATIONS		       equ <{0xc8b5222a,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}}>
DBSCHEMA_PROVIDER_TYPES		       equ <{0xc8b5222c,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}}>
DBSCHEMA_VIEWS			       equ <{0xc8b5222d,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}}>
DBSCHEMA_VIEW_COLUMN_USAGE	       equ <{0xc8b5222e,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}}>
DBSCHEMA_VIEW_TABLE_USAGE	       equ <{0xc8b5222f,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}}>
DBSCHEMA_PROCEDURE_PARAMETERS	       equ <{0xc8b522b8,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}}>
DBSCHEMA_FOREIGN_KEYS		       equ <{0xc8b522c4,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}}>
DBSCHEMA_PRIMARY_KEYS		       equ <{0xc8b522c5,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}}>
DBSCHEMA_PROCEDURE_COLUMNS	       equ <{0xc8b522c9,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}}>
DBCOL_SELFCOLUMNS		       equ <{0xc8b52231,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}}>
DBCOL_SPECIALCOL		       equ <{0xc8b52232,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}}>
PSGUID_QUERY			       equ <{0x49691c90,0x7e17,0x101a,{0xa9,0x1c,0x08,0x00,0x2b,0x2e,0xcd,0xa9}}>
DBPROPSET_COLUMN		       equ <{0xc8b522b9,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}}>
DBPROPSET_DATASOURCE		       equ <{0xc8b522ba,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}}>
DBPROPSET_DATASOURCEINFO	       equ <{0xc8b522bb,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}}>
DBPROPSET_DBINIT		       equ <{0xc8b522bc,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}}>
DBPROPSET_INDEX			       equ <{0xc8b522bd,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}}>
DBPROPSET_ROWSET		       equ <{0xc8b522be,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}}>
DBPROPSET_TABLE			       equ <{0xc8b522bf,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}}>
DBPROPSET_DATASOURCEALL		       equ <{0xc8b522c0,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}}>
DBPROPSET_DATASOURCEINFOALL	       equ <{0xc8b522c1,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}}>
DBPROPSET_ROWSETALL		       equ <{0xc8b522c2,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}}>
DBPROPSET_SESSION		       equ <{0xc8b522c6,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}}>
DBPROPSET_SESSIONALL		       equ <{0xc8b522c7,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}}>
DBPROPSET_DBINITALL		       equ <{0xc8b522ca,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}}>
DBPROPSET_PROPERTIESINERROR	       equ <{0xc8b522d4,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}}>
if( OLEDBVER GE 0x0150 )
DBPROPSET_VIEW			       equ <{0xc8b522df,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}}>
endif
if( OLEDBVER GE 0x0250 )
DBPROPSET_VIEWALL		       equ <{0xc8b522fc,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}}>
endif
if( OLEDBVER GE 0x0260 )
DBPROPSET_STREAM		       equ <{0xc8b522fd,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}}>
DBPROPSET_STREAMALL		       equ <{0xc8b522fe,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}}>
DBSCHEMA_TABLE_STATISTICS	       equ <{0xc8b522ff,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}}>
DBSCHEMA_CHECK_CONSTRAINTS_BY_TABLE    equ <{0xc8b52301,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}}>
DBGUID_HISTOGRAM_ROWSET		       equ <{0xc8b52300,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}}>
DBCOLUMN_DERIVEDCOLUMNNAME	       equ <{DBCIDGUID, DBKIND_GUID_PROPID, 43}>
endif
DBGUID_DBSQL			       equ <{0xc8b521fb,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}}>
DBGUID_DEFAULT			       equ <{0xc8b521fb,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}}>
DBGUID_SQL			       equ <{0xc8b522d7,0x5cf3,0x11ce,{0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d}}>

else

if( OLEDBVER GE 0x0260 )
DEFINE_GUID(MDSCHEMA_FUNCTIONS,		0xa07ccd07,0x8148,0x11d0,0x87,0xbb,0x00,0xc0,0x4f,0xc3,0x39,0x42)
DEFINE_GUID(MDSCHEMA_ACTIONS,		0xa07ccd08,0x8148,0x11d0,0x87,0xbb,0x00,0xc0,0x4f,0xc3,0x39,0x42)
DEFINE_GUID(MDSCHEMA_COMMANDS,		0xa07ccd09,0x8148,0x11d0,0x87,0xbb,0x00,0xc0,0x4f,0xc3,0x39,0x42)
DEFINE_GUID(MDSCHEMA_SETS,		0xa07ccd0b,0x8148,0x11d0,0x87,0xbb,0x00,0xc0,0x4f,0xc3,0x39,0x42)
endif

if( OLEDBVER GE 0x0200 )
DEFINE_GUID(DBSCHEMA_TABLES_INFO,	0xc8b522e0,0x5cf3,0x11ce,0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d)
DEFINE_GUID(MDGUID_MDX,			0xa07cccd0,0x8148,0x11d0,0x87,0xbb,0x00,0xc0,0x4f,0xc3,0x39,0x42)
DEFINE_GUID(DBGUID_MDX,			0xa07cccd0,0x8148,0x11d0,0x87,0xbb,0x00,0xc0,0x4f,0xc3,0x39,0x42)
DEFINE_GUID(MDSCHEMA_CUBES,		0xc8b522d8,0x5cf3,0x11ce,0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d)
DEFINE_GUID(MDSCHEMA_DIMENSIONS,	0xc8b522d9,0x5cf3,0x11ce,0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d)
DEFINE_GUID(MDSCHEMA_HIERARCHIES,	0xc8b522da,0x5cf3,0x11ce,0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d)
DEFINE_GUID(MDSCHEMA_LEVELS,		0xc8b522db,0x5cf3,0x11ce,0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d)
DEFINE_GUID(MDSCHEMA_MEASURES,		0xc8b522dc,0x5cf3,0x11ce,0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d)
DEFINE_GUID(MDSCHEMA_PROPERTIES,	0xc8b522dd,0x5cf3,0x11ce,0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d)
DEFINE_GUID(MDSCHEMA_MEMBERS,		0xc8b522de,0x5cf3,0x11ce,0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d)
endif

if( OLEDBVER GE 0x0210 )
DEFINE_GUID(DBGUID_ROWURL,		0x0C733AB6,0x2A1C,0x11CE,0xAD,0xE5,0x00,0xAA,0x00,0x44,0x77,0x3D)
DEFINE_GUID(DBGUID_ROWDEFAULTSTREAM,	0x0C733AB7,0x2A1C,0x11CE,0xAD,0xE5,0x00,0xAA,0x00,0x44,0x77,0x3D)
DEFINE_GUID(DBPROPSET_TRUSTEE,		0xc8b522e1,0x5cf3,0x11ce,0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d)
DEFINE_GUID(DBOBJECT_TABLE,		0xc8b522e2,0x5cf3,0x11ce,0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d)
DEFINE_GUID(DBOBJECT_COLUMN,		0xc8b522e4,0x5cf3,0x11ce,0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d)
DEFINE_GUID(DBOBJECT_DATABASE,		0xc8b522e5,0x5cf3,0x11ce,0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d)
DEFINE_GUID(DBOBJECT_PROCEDURE,		0xc8b522e6,0x5cf3,0x11ce,0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d)
DEFINE_GUID(DBOBJECT_VIEW,		0xc8b522e7,0x5cf3,0x11ce,0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d)
DEFINE_GUID(DBOBJECT_SCHEMA,		0xc8b522e8,0x5cf3,0x11ce,0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d)
DEFINE_GUID(DBOBJECT_DOMAIN,		0xc8b522e9,0x5cf3,0x11ce,0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d)
DEFINE_GUID(DBOBJECT_COLLATION,		0xc8b522ea,0x5cf3,0x11ce,0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d)
DEFINE_GUID(DBOBJECT_TRUSTEE,		0xc8b522eb,0x5cf3,0x11ce,0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d)
DEFINE_GUID(DBOBJECT_SCHEMAROWSET,	0xc8b522ec,0x5cf3,0x11ce,0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d)
DEFINE_GUID(DBOBJECT_CHARACTERSET,	0xc8b522ed,0x5cf3,0x11ce,0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d)
DEFINE_GUID(DBOBJECT_TRANSLATION,	0xc8b522ee,0x5cf3,0x11ce,0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d)
DEFINE_GUID(DBSCHEMA_TRUSTEE,		0xc8b522ef,0x5cf3,0x11ce,0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d)
DEFINE_GUID(DBPROPSET_COLUMNALL,	0xc8b522f0,0x5cf3,0x11ce,0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d)
DEFINE_GUID(DBPROPSET_INDEXALL,		0xc8b522f1,0x5cf3,0x11ce,0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d)
DEFINE_GUID(DBPROPSET_TABLEALL,		0xc8b522f2,0x5cf3,0x11ce,0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d)
DEFINE_GUID(DBPROPSET_TRUSTEEALL,	0xc8b522f3,0x5cf3,0x11ce,0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d)
DEFINE_GUID(DBPROPSET_CONSTRAINTALL,	0xc8b522fa,0x5cf3,0x11ce,0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d)
DEFINE_GUID(DBGUID_DSO,			0xc8b522f4,0x5cf3,0x11ce,0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d)
DEFINE_GUID(DBGUID_SESSION,		0xc8b522f5,0x5cf3,0x11ce,0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d)
DEFINE_GUID(DBGUID_ROWSET,		0xc8b522f6,0x5cf3,0x11ce,0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d)
DEFINE_GUID(DBGUID_ROW,			0xc8b522f7,0x5cf3,0x11ce,0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d)
DEFINE_GUID(DBGUID_COMMAND,		0xc8b522f8,0x5cf3,0x11ce,0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d)
DEFINE_GUID(DBGUID_STREAM,		0xc8b522f9,0x5cf3,0x11ce,0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d)
DEFINE_GUID(DBGUID_CONTAINEROBJECT,	0xc8b522fb,0x5cf3,0x11ce,0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d)
endif

if( OLEDBVER GE 0x0200 )
externdef		DBCOLUMN_BASETABLEVERSION:DBID
externdef		DBCOLUMN_KEYCOLUMN:DBID
endif

if( OLEDBVER GE 0x0210 )
externdef		DBROWCOL_ROWURL:DBID
externdef		DBROWCOL_PARSENAME:DBID
externdef		DBROWCOL_PARENTNAME:DBID
externdef		DBROWCOL_ABSOLUTEPARSENAME:DBID
externdef		DBROWCOL_ISHIDDEN:DBID
externdef		DBROWCOL_ISREADONLY:DBID
externdef		DBROWCOL_CONTENTTYPE:DBID
externdef		DBROWCOL_CONTENTCLASS:DBID
externdef		DBROWCOL_CONTENTLANGUAGE:DBID
externdef		DBROWCOL_CREATIONTIME:DBID
externdef		DBROWCOL_LASTACCESSTIME:DBID
externdef		DBROWCOL_LASTWRITETIME:DBID
externdef		DBROWCOL_STREAMSIZE:DBID
externdef		DBROWCOL_ISCOLLECTION:DBID
externdef		DBROWCOL_ISSTRUCTUREDDOCUMENT:DBID
externdef		DBROWCOL_DEFAULTDOCUMENT:DBID
externdef		DBROWCOL_DISPLAYNAME:DBID
externdef		DBROWCOL_ISROOT:DBID
externdef		DBROWCOL_DEFAULTSTREAM:DBID
endif

DEFINE_GUID(DBSCHEMA_ASSERTIONS,		0xc8b52210,0x5cf3,0x11ce,0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d)
DEFINE_GUID(DBSCHEMA_CATALOGS,			0xc8b52211,0x5cf3,0x11ce,0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d)
DEFINE_GUID(DBSCHEMA_CHARACTER_SETS,		0xc8b52212,0x5cf3,0x11ce,0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d)
DEFINE_GUID(DBSCHEMA_COLLATIONS,		0xc8b52213,0x5cf3,0x11ce,0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d)
DEFINE_GUID(DBSCHEMA_COLUMNS,			0xc8b52214,0x5cf3,0x11ce,0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d)
DEFINE_GUID(DBSCHEMA_CHECK_CONSTRAINTS,		0xc8b52215,0x5cf3,0x11ce,0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d)
DEFINE_GUID(DBSCHEMA_CONSTRAINT_COLUMN_USAGE,	0xc8b52216,0x5cf3,0x11ce,0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d)
DEFINE_GUID(DBSCHEMA_CONSTRAINT_TABLE_USAGE,	0xc8b52217,0x5cf3,0x11ce,0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d)
DEFINE_GUID(DBSCHEMA_KEY_COLUMN_USAGE,		0xc8b52218,0x5cf3,0x11ce,0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d)
DEFINE_GUID(DBSCHEMA_REFERENTIAL_CONSTRAINTS,	0xc8b52219,0x5cf3,0x11ce,0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d)
DEFINE_GUID(DBSCHEMA_TABLE_CONSTRAINTS,		0xc8b5221a,0x5cf3,0x11ce,0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d)
DEFINE_GUID(DBSCHEMA_COLUMN_DOMAIN_USAGE,	0xc8b5221b,0x5cf3,0x11ce,0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d)
DEFINE_GUID(DBSCHEMA_INDEXES,			0xc8b5221e,0x5cf3,0x11ce,0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d)
DEFINE_GUID(DBSCHEMA_COLUMN_PRIVILEGES,		0xc8b52221,0x5cf3,0x11ce,0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d)
DEFINE_GUID(DBSCHEMA_TABLE_PRIVILEGES,		0xc8b52222,0x5cf3,0x11ce,0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d)
DEFINE_GUID(DBSCHEMA_USAGE_PRIVILEGES,		0xc8b52223,0x5cf3,0x11ce,0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d)
DEFINE_GUID(DBSCHEMA_PROCEDURES,		0xc8b52224,0x5cf3,0x11ce,0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d)
DEFINE_GUID(DBSCHEMA_SCHEMATA,			0xc8b52225,0x5cf3,0x11ce,0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d)
DEFINE_GUID(DBSCHEMA_SQL_LANGUAGES,		0xc8b52226,0x5cf3,0x11ce,0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d)
DEFINE_GUID(DBSCHEMA_STATISTICS,		0xc8b52227,0x5cf3,0x11ce,0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d)
DEFINE_GUID(DBSCHEMA_TABLES,			0xc8b52229,0x5cf3,0x11ce,0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d)
DEFINE_GUID(DBSCHEMA_TRANSLATIONS,		0xc8b5222a,0x5cf3,0x11ce,0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d)
DEFINE_GUID(DBSCHEMA_PROVIDER_TYPES,		0xc8b5222c,0x5cf3,0x11ce,0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d)
DEFINE_GUID(DBSCHEMA_VIEWS,			0xc8b5222d,0x5cf3,0x11ce,0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d)
DEFINE_GUID(DBSCHEMA_VIEW_COLUMN_USAGE,		0xc8b5222e,0x5cf3,0x11ce,0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d)
DEFINE_GUID(DBSCHEMA_VIEW_TABLE_USAGE,		0xc8b5222f,0x5cf3,0x11ce,0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d)
DEFINE_GUID(DBSCHEMA_PROCEDURE_PARAMETERS,	0xc8b522b8,0x5cf3,0x11ce,0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d)
DEFINE_GUID(DBSCHEMA_FOREIGN_KEYS,		0xc8b522c4,0x5cf3,0x11ce,0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d)
DEFINE_GUID(DBSCHEMA_PRIMARY_KEYS,		0xc8b522c5,0x5cf3,0x11ce,0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d)
DEFINE_GUID(DBSCHEMA_PROCEDURE_COLUMNS,		0xc8b522c9,0x5cf3,0x11ce,0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d)
DEFINE_GUID(DBCOL_SELFCOLUMNS,			0xc8b52231,0x5cf3,0x11ce,0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d)
DEFINE_GUID(DBCOL_SPECIALCOL,			0xc8b52232,0x5cf3,0x11ce,0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d)
DEFINE_GUID(PSGUID_QUERY,			0x49691c90,0x7e17,0x101a,0xa9,0x1c,0x08,0x00,0x2b,0x2e,0xcd,0xa9)
DEFINE_GUID(DBPROPSET_COLUMN,			0xc8b522b9,0x5cf3,0x11ce,0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d)
DEFINE_GUID(DBPROPSET_DATASOURCE,		0xc8b522ba,0x5cf3,0x11ce,0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d)
DEFINE_GUID(DBPROPSET_DATASOURCEINFO,		0xc8b522bb,0x5cf3,0x11ce,0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d)
DEFINE_GUID(DBPROPSET_DBINIT,			0xc8b522bc,0x5cf3,0x11ce,0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d)
DEFINE_GUID(DBPROPSET_INDEX,			0xc8b522bd,0x5cf3,0x11ce,0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d)
DEFINE_GUID(DBPROPSET_ROWSET,			0xc8b522be,0x5cf3,0x11ce,0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d)
DEFINE_GUID(DBPROPSET_TABLE,			0xc8b522bf,0x5cf3,0x11ce,0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d)
DEFINE_GUID(DBPROPSET_DATASOURCEALL,		0xc8b522c0,0x5cf3,0x11ce,0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d)
DEFINE_GUID(DBPROPSET_DATASOURCEINFOALL,	0xc8b522c1,0x5cf3,0x11ce,0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d)
DEFINE_GUID(DBPROPSET_ROWSETALL,		0xc8b522c2,0x5cf3,0x11ce,0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d)
DEFINE_GUID(DBPROPSET_SESSION,			0xc8b522c6,0x5cf3,0x11ce,0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d)
DEFINE_GUID(DBPROPSET_SESSIONALL,		0xc8b522c7,0x5cf3,0x11ce,0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d)
DEFINE_GUID(DBPROPSET_DBINITALL,		0xc8b522ca,0x5cf3,0x11ce,0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d)
DEFINE_GUID(DBPROPSET_PROPERTIESINERROR,	0xc8b522d4,0x5cf3,0x11ce,0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d)
if( OLEDBVER GE 0x0150 )
DEFINE_GUID(DBPROPSET_VIEW,			0xc8b522df,0x5cf3,0x11ce,0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d)
endif
if( OLEDBVER GE 0x0250 )
DEFINE_GUID(DBPROPSET_VIEWALL,			0xc8b522fc,0x5cf3,0x11ce,0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d)
endif
if( OLEDBVER GE 0x0260 )
DEFINE_GUID(DBPROPSET_STREAM,			0xc8b522fd,0x5cf3,0x11ce,0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d)
DEFINE_GUID(DBPROPSET_STREAMALL,		0xc8b522fe,0x5cf3,0x11ce,0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d)
DEFINE_GUID(DBSCHEMA_TABLE_STATISTICS,		0xc8b522ff,0x5cf3,0x11ce,0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d)
DEFINE_GUID(DBSCHEMA_CHECK_CONSTRAINTS_BY_TABLE,0xc8b52301,0x5cf3,0x11ce,0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d)
DEFINE_GUID(DBGUID_HISTOGRAM_ROWSET,		0xc8b52300,0x5cf3,0x11ce,0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d)
endif
DEFINE_GUID(DBGUID_DBSQL,			0xc8b521fb,0x5cf3,0x11ce,0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d)
DEFINE_GUID(DBGUID_DEFAULT,			0xc8b521fb,0x5cf3,0x11ce,0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d)
DEFINE_GUID(DBGUID_SQL,				0xc8b522d7,0x5cf3,0x11ce,0xad,0xe5,0x00,0xaa,0x00,0x44,0x77,0x3d)

if( OLEDBVER GE 0x0260 )
externdef		DBCOLUMN_DERIVEDCOLUMNNAME:DBID
endif
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_OLEOBJECTS		= 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 GE 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 GE 0x0200 )
DBPROP_PROVIDERFILENAME equ DBPROP_PROVIDERNAME
DBPROP_SERVER_NAME	equ 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 GE 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 GE 0x0250 )
.enum DBPROPENUM25 {
    DBPROP_COL_SEED		= 0x11a,
    DBPROP_COL_INCREMENT	= 0x11b,
    DBPROP_INIT_GENERALTIMEOUT	= 0x11c,
    DBPROP_COMSERVICES		= 0x11d
    }
endif

if( OLEDBVER GE 0x0260 )
.enum DBPROPENUM26 {
    DBPROP_OUTPUTSTREAM		= 0x11e,
    DBPROP_OUTPUTENCODING	= 0x11f,
    DBPROP_TABLESTATISTICS	= 0x120,
    DBPROP_SKIPROWCOUNTRESULTS	= 0x123,
    DBPROP_IRowsetBookmark	= 0x124,
    MDPROP_VISUALMODE		= 0x125
    }
endif

ifdef oledb_deprecated
.enum DBPROPENUMDEPRECATED {
    DBPROP_IRowsetExactScroll	= 0x9a,
    DBPROP_MARSHALLABLE		= 0xc5,
    DBPROP_FILTEROPS		= 0xd0
    }
endif

DBPROPVAL_BMK_NUMERIC	equ 0x00000001
DBPROPVAL_BMK_KEY	equ 0x00000002
DBPROPVAL_CL_START	equ 0x00000001
DBPROPVAL_CL_END	equ 0x00000002
DBPROPVAL_CU_DML_STATEMENTS equ 0x00000001
DBPROPVAL_CU_TABLE_DEFINITION equ 0x00000002
DBPROPVAL_CU_INDEX_DEFINITION equ 0x00000004
DBPROPVAL_CU_PRIVILEGE_DEFINITION equ 0x00000008
DBPROPVAL_CD_NOTNULL	equ 0x00000001
DBPROPVAL_CB_NULL	equ 0x00000001
DBPROPVAL_CB_NON_NULL	equ 0x00000002
DBPROPVAL_FU_NOT_SUPPORTED equ 0x00000001
DBPROPVAL_FU_COLUMN	equ 0x00000002
DBPROPVAL_FU_TABLE	equ 0x00000004
DBPROPVAL_FU_CATALOG	equ 0x00000008
DBPROPVAL_GB_NOT_SUPPORTED equ 0x00000001
DBPROPVAL_GB_EQUALS_SELECT equ 0x00000002
DBPROPVAL_GB_CONTAINS_SELECT equ 0x00000004
DBPROPVAL_GB_NO_RELATION equ 0x00000008
DBPROPVAL_HT_DIFFERENT_CATALOGS equ 0x00000001
DBPROPVAL_HT_DIFFERENT_PROVIDERS equ 0x00000002
DBPROPVAL_IC_UPPER	equ 0x00000001
DBPROPVAL_IC_LOWER	equ 0x00000002
DBPROPVAL_IC_SENSITIVE	equ 0x00000004
DBPROPVAL_IC_MIXED	equ 0x00000008
ifdef oledb_deprecated
DBPROPVAL_LM_NONE	equ 0x00000001
DBPROPVAL_LM_READ	equ 0x00000002
DBPROPVAL_LM_INTENT	equ 0x00000004
DBPROPVAL_LM_RITE	equ 0x00000008
endif
DBPROPVAL_NP_OKTODO	equ 0x00000001
DBPROPVAL_NP_ABOUTTODO	equ 0x00000002
DBPROPVAL_NP_SYNCHAFTER equ 0x00000004
DBPROPVAL_NP_FAILEDTODO equ 0x00000008
DBPROPVAL_NP_DIDEVENT	equ 0x00000010
DBPROPVAL_NC_END	equ 0x00000001
DBPROPVAL_NC_HIGH	equ 0x00000002
DBPROPVAL_NC_LOW	equ 0x00000004
DBPROPVAL_NC_START	equ 0x00000008
DBPROPVAL_OO_BLOB	equ 0x00000001
DBPROPVAL_OO_IPERSIST	equ 0x00000002
DBPROPVAL_CB_DELETE	equ 0x00000001
DBPROPVAL_CB_PRESERVE	equ 0x00000002
DBPROPVAL_SU_DML_STATEMENTS equ 0x00000001
DBPROPVAL_SU_TABLE_DEFINITION equ 0x00000002
DBPROPVAL_SU_INDEX_DEFINITION equ 0x00000004
DBPROPVAL_SU_PRIVILEGE_DEFINITION equ 0x00000008
DBPROPVAL_SQ_CORRELATEDSUBQUERIES equ 0x00000001
DBPROPVAL_SQ_COMPARISON equ 0x00000002
DBPROPVAL_SQ_EXISTS	equ 0x00000004
DBPROPVAL_SQ_IN		equ 0x00000008
DBPROPVAL_SQ_QUANTIFIED equ 0x00000010
DBPROPVAL_SQ_TABLE	equ 0x00000020
DBPROPVAL_SS_ISEQUENTIALSTREAM equ 0x00000001
DBPROPVAL_SS_ISTREAM	equ 0x00000002
DBPROPVAL_SS_ISTORAGE	equ 0x00000004
DBPROPVAL_SS_ILOCKBYTES equ 0x00000008
DBPROPVAL_TI_CHAOS	equ 0x00000010
DBPROPVAL_TI_READUNCOMMITTED equ 0x00000100
DBPROPVAL_TI_BROWSE	equ 0x00000100
DBPROPVAL_TI_CURSORSTABILITY equ 0x00001000
DBPROPVAL_TI_READCOMMITTED equ 0x00001000
DBPROPVAL_TI_REPEATABLEREAD equ 0x00010000
DBPROPVAL_TI_SERIALIZABLE equ 0x00100000
DBPROPVAL_TI_ISOLATED	equ 0x00100000
DBPROPVAL_TR_COMMIT_DC	equ 0x00000001
DBPROPVAL_TR_COMMIT	equ 0x00000002
DBPROPVAL_TR_COMMIT_NO	equ 0x00000004
DBPROPVAL_TR_ABORT_DC	equ 0x00000008
DBPROPVAL_TR_ABORT	equ 0x00000010
DBPROPVAL_TR_ABORT_NO	equ 0x00000020
DBPROPVAL_TR_DONTCARE	equ 0x00000040
DBPROPVAL_TR_BOTH	equ 0x00000080
DBPROPVAL_TR_NONE	equ 0x00000100
DBPROPVAL_TR_OPTIMISTIC equ 0x00000200
DBPROPVAL_RT_FREETHREAD equ 0x00000001
DBPROPVAL_RT_APTMTTHREAD equ 0x00000002
DBPROPVAL_RT_SINGLETHREAD equ 0x00000004
DBPROPVAL_UP_CHANGE	equ 0x00000001
DBPROPVAL_UP_DELETE	equ 0x00000002
DBPROPVAL_UP_INSERT	equ 0x00000004
DBPROPVAL_SQL_NONE	equ 0x00000000
DBPROPVAL_SQL_ODBC_MINIMUM equ 0x00000001
DBPROPVAL_SQL_ODBC_CORE equ 0x00000002
DBPROPVAL_SQL_ODBC_EXTENDED equ 0x00000004
DBPROPVAL_SQL_ANSI89_IEF equ 0x00000008
DBPROPVAL_SQL_ANSI92_ENTRY equ 0x00000010
DBPROPVAL_SQL_FIPS_TRANSITIONAL equ 0x00000020
DBPROPVAL_SQL_ANSI92_INTERMEDIATE equ 0x00000040
DBPROPVAL_SQL_ANSI92_FULL equ 0x00000080
DBPROPVAL_SQL_ESCAPECLAUSES equ 0x00000100
DBPROPVAL_IT_BTREE	equ 0x00000001
DBPROPVAL_IT_HASH	equ 0x00000002
DBPROPVAL_IT_CONTENT	equ 0x00000003
DBPROPVAL_IT_OTHER	equ 0x00000004
DBPROPVAL_IN_DISALLOWNULL equ 0x00000001
DBPROPVAL_IN_IGNORENULL equ 0x00000002
DBPROPVAL_IN_IGNOREANYNULL equ 0x00000004
DBPROPVAL_TC_NONE	equ 0x00000000
DBPROPVAL_TC_DML	equ 0x00000001
DBPROPVAL_TC_DDL_COMMIT equ 0x00000002
DBPROPVAL_TC_DDL_IGNORE equ 0x00000004
DBPROPVAL_TC_ALL	equ 0x00000008
DBPROPVAL_NP_OKTODO	equ 0x00000001
DBPROPVAL_NP_ABOUTTODO	equ 0x00000002
DBPROPVAL_NP_SYNCHAFTER equ 0x00000004
DBPROPVAL_OA_NOTSUPPORTED equ 0x00000001
DBPROPVAL_OA_ATEXECUTE	equ 0x00000002
DBPROPVAL_OA_ATROWRELEASE equ 0x00000004
DBPROPVAL_MR_NOTSUPPORTED equ 0x00000000
DBPROPVAL_MR_SUPPORTED	equ 0x00000001
DBPROPVAL_MR_CONCURRENT equ 0x00000002
DBPROPVAL_PT_GUID_NAME	equ 0x00000001
DBPROPVAL_PT_GUID_PROPID equ 0x00000002
DBPROPVAL_PT_NAME	equ 0x00000004
DBPROPVAL_PT_GUID	equ 0x00000008
DBPROPVAL_PT_PROPID	equ 0x00000010
DBPROPVAL_PT_PGUID_NAME equ 0x00000020
DBPROPVAL_PT_PGUID_PROPID equ 0x00000040
DBPROPVAL_NT_SINGLEROW	equ 0x00000001
DBPROPVAL_NT_MULTIPLEROWS equ 0x00000002
if( OLEDBVER GE 0x0150 )
DBPROPVAL_ASYNCH_INITIALIZE equ 0x00000001
DBPROPVAL_ASYNCH_SEQUENTIALPOPULATION equ 0x00000002
DBPROPVAL_ASYNCH_RANDOMPOPULATION equ 0x00000004
DBPROPVAL_OP_EQUAL	equ 0x00000001
DBPROPVAL_OP_RELATIVE	equ 0x00000002
DBPROPVAL_OP_STRING	equ 0x00000004
DBPROPVAL_CO_EQUALITY	equ 0x00000001
DBPROPVAL_CO_STRING	equ 0x00000002
DBPROPVAL_CO_CASESENSITIVE equ 0x00000004
DBPROPVAL_CO_CASEINSENSITIVE equ 0x00000008
endif
if( OLEDBVER GE 0x0200 )
DBPROPVAL_CO_CONTAINS	equ 0x00000010
DBPROPVAL_CO_BEGINSWITH equ 0x00000020
DBPROPVAL_ASYNCH_BACKGROUNDPOPULATION equ 0x00000008
DBPROPVAL_ASYNCH_PREPOPULATE equ 0x00000010
DBPROPVAL_ASYNCH_POPULATEONDEMAND equ 0x00000020
DBPROPVAL_LM_NONE	equ 0x00000001
DBPROPVAL_LM_SINGLEROW	equ 0x00000002
DBPROPVAL_SQL_SUBMINIMUM equ 0x00000200
DBPROPVAL_DST_TDP	equ 0x00000001
DBPROPVAL_DST_MDP	equ 0x00000002
DBPROPVAL_DST_TDPANDMDP equ 0x00000003
MDPROPVAL_AU_UNSUPPORTED equ 0x00000000
MDPROPVAL_AU_UNCHANGED	equ 0x00000001
MDPROPVAL_AU_UNKNOWN	equ 0x00000002
MDPROPVAL_MF_WITH_CALCMEMBERS equ 0x00000001
MDPROPVAL_MF_WITH_NAMEDSETS equ 0x00000002
MDPROPVAL_MF_CREATE_CALCMEMBERS equ 0x00000004
MDPROPVAL_MF_CREATE_NAMEDSETS equ 0x00000008
MDPROPVAL_MF_SCOPE_SESSION equ 0x00000010
MDPROPVAL_MF_SCOPE_GLOBAL equ 0x00000020
MDPROPVAL_MMF_COUSIN	equ 0x00000001
MDPROPVAL_MMF_PARALLELPERIOD equ 0x00000002
MDPROPVAL_MMF_OPENINGPERIOD equ 0x00000004
MDPROPVAL_MMF_CLOSINGPERIOD equ 0x00000008
MDPROPVAL_MNF_MEDIAN	equ 0x00000001
MDPROPVAL_MNF_VAR	equ 0x00000002
MDPROPVAL_MNF_STDDEV	equ 0x00000004
MDPROPVAL_MNF_RANK	equ 0x00000008
MDPROPVAL_MNF_AGGREGATE equ 0x00000010
MDPROPVAL_MNF_COVARIANCE equ 0x00000020
MDPROPVAL_MNF_CORRELATION equ 0x00000040
MDPROPVAL_MNF_LINREGSLOPE equ 0x00000080
MDPROPVAL_MNF_LINREGVARIANCE equ 0x00000100
MDPROPVAL_MNF_LINREG2	equ 0x00000200
MDPROPVAL_MNF_LINREGPOINT equ 0x00000400
MDPROPVAL_MNF_DRILLDOWNLEVEL equ 0x00000800
MDPROPVAL_MNF_DRILLDOWNMEMBERTOP equ 0x00001000
MDPROPVAL_MNF_DRILLDOWNMEMBERBOTTOM equ 0x00002000
MDPROPVAL_MNF_DRILLDOWNLEVELTOP equ 0x00004000
MDPROPVAL_MNF_DRILLDOWNLEVELBOTTOM equ 0x00008000
MDPROPVAL_MNF_DRILLUPMEMBER equ 0x00010000
MDPROPVAL_MNF_DRILLUPLEVEL equ 0x00020000
MDPROPVAL_MMF_COUSIN	equ 0x00000001
MDPROPVAL_MMF_PARALLELPERIOD equ 0x00000002
MDPROPVAL_MMF_OPENINGPERIOD equ 0x00000004
MDPROPVAL_MMF_CLOSINGPERIOD equ 0x00000008
MDPROPVAL_MSF_TOPPERCENT equ 0x00000001
MDPROPVAL_MSF_BOTTOMPERCENT equ 0x00000002
MDPROPVAL_MSF_TOPSUM	equ 0x00000004
MDPROPVAL_MSF_BOTTOMSUM equ 0x00000008
MDPROPVAL_MSF_PERIODSTODATE equ 0x00000010
MDPROPVAL_MSF_LASTPERIODS equ 0x00000020
MDPROPVAL_MSF_YTD	equ 0x00000040
MDPROPVAL_MSF_QTD	equ 0x00000080
MDPROPVAL_MSF_MTD	equ 0x00000100
MDPROPVAL_MSF_WTD	equ 0x00000200
MDPROPVAL_MSF_DRILLDOWNMEMBBER equ 0x00000400
MDPROPVAL_MSF_DRILLDOWNLEVEL equ 0x00000800
MDPROPVAL_MSF_DRILLDOWNMEMBERTOP equ 0x00001000
MDPROPVAL_MSF_DRILLDOWNMEMBERBOTTOM equ 0x00002000
MDPROPVAL_MSF_DRILLDOWNLEVELTOP equ 0x00004000
MDPROPVAL_MSF_DRILLDOWNLEVELBOTTOM equ 0x00008000
MDPROPVAL_MSF_DRILLUPMEMBER equ 0x00010000
MDPROPVAL_MSF_DRILLUPLEVEL equ 0x00020000
MDPROPVAL_MSF_TOGGLEDRILLSTATE equ 0x00040000
MDPROPVAL_MD_SELF	equ 0x00000001
MDPROPVAL_MD_BEFORE	equ 0x00000002
MDPROPVAL_MD_AFTER	equ 0x00000004
MDPROPVAL_MSC_LESSTHAN	equ 0x00000001
MDPROPVAL_MSC_GREATERTHAN equ 0x00000002
MDPROPVAL_MSC_LESSTHANEQUAL equ 0x00000004
MDPROPVAL_MSC_GREATERTHANEQUAL equ 0x00000008
MDPROPVAL_MC_SINGLECASE equ 0x00000001
MDPROPVAL_MC_SEARCHEDCASE equ 0x00000002
MDPROPVAL_MOQ_OUTERREFERENCE equ 0x00000001
MDPROPVAL_MOQ_DATASOURCE_CUBE equ 0x00000001
MDPROPVAL_MOQ_CATALOG_CUBE equ 0x00000002
MDPROPVAL_MOQ_SCHEMA_CUBE equ 0x00000004
MDPROPVAL_MOQ_CUBE_DIM	equ 0x00000008
MDPROPVAL_MOQ_DIM_HIER	equ 0x00000010
MDPROPVAL_MOQ_DIMHIER_LEVEL equ 0x00000020
MDPROPVAL_MOQ_LEVEL_MEMBER equ 0x00000040
MDPROPVAL_MOQ_MEMBER_MEMBER equ 0x00000080
MDPROPVAL_MOQ_DIMHIER_MEMBER equ 0x00000100
MDPROPVAL_FS_FULL_SUPPORT equ 0x00000001
MDPROPVAL_FS_GENERATED_COLUMN equ 0x00000002
MDPROPVAL_FS_GENERATED_DIMENSION equ 0x00000003
MDPROPVAL_FS_NO_SUPPORT equ 0x00000004
MDPROPVAL_NL_NAMEDLEVELS equ 0x00000001
MDPROPVAL_NL_NUMBEREDLEVELS equ 0x00000002
MDPROPVAL_MJC_SINGLECUBE equ 0x00000001
MDPROPVAL_MJC_MULTICUBES equ 0x00000002
MDPROPVAL_MJC_IMPLICITCUBE equ 0x00000004
MDPROPVAL_RR_NORANGEROWSET equ 0x00000001
MDPROPVAL_RR_READONLY	equ 0x00000002
MDPROPVAL_RR_UPDATE	equ 0x00000004
MDPROPVAL_MS_MULTIPLETUPLES equ 0x00000001
MDPROPVAL_MS_SINGLETUPLE equ 0x00000002
MDPROPVAL_NME_ALLDIMENSIONS equ 0x00000000
MDPROPVAL_NME_MEASURESONLY equ 0x00000001
DBPROPVAL_AO_SEQUENTIAL equ 0x00000000
DBPROPVAL_AO_SEQUENTIALSTORAGEOBJECTS equ 0x00000001
DBPROPVAL_AO_RANDOM	equ 0x00000002
DBPROPVAL_BD_ROWSET	equ 0x00000000
DBPROPVAL_BD_INTRANSACTION equ 0x00000001
DBPROPVAL_BD_XTRANSACTION equ 0x00000002
DBPROPVAL_BD_REORGANIZATION equ 0x00000003
BMK_DURABILITY_ROWSET	equ DBPROPVAL_BD_ROWSET
BMK_DURABILITY_INTRANSACTION equ DBPROPVAL_BD_INTRANSACTION
BMK_DURABILITY_XTRANSACTION equ DBPROPVAL_BD_XTRANSACTION
BMK_DURABILITY_REORGANIZATION equ DBPROPVAL_BD_REORGANIZATION
DBPROPVAL_BO_NOLOG	equ 0x00000000
DBPROPVAL_BO_NOINDEXUPDATE equ 0x00000001
DBPROPVAL_BO_REFINTEGRITY equ 0x00000002
if NOT defined(_WINBASE_)
OF_READ			equ 0x00000000
OF_WRITE		equ 0x00000001
OF_READWRITE		equ 0x00000002
OF_SHARE_COMPAT		equ 0x00000000
OF_SHARE_EXCLUSIVE	equ 0x00000010
OF_SHARE_DENY_WRITE	equ 0x00000020
OF_SHARE_DENY_READ	equ 0x00000030
OF_SHARE_DENY_NONE	equ 0x00000040
OF_PARSE		equ 0x00000100
OF_DELETE		equ 0x00000200
OF_VERIFY		equ 0x00000400
OF_CANCEL		equ 0x00000800
OF_CREATE		equ 0x00001000
OF_PROMPT		equ 0x00002000
OF_EXIST		equ 0x00004000
OF_REOPEN		equ 0x00008000
endif
DBPROPVAL_STGM_READ	equ OF_READ
DBPROPVAL_STGM_WRITE	equ OF_WRITE
DBPROPVAL_STGM_READWRITE equ OF_READWRITE
DBPROPVAL_STGM_SHARE_DENY_NONE equ OF_SHARE_DENY_NONE
DBPROPVAL_STGM_SHARE_DENY_READ equ OF_SHARE_DENY_READ
DBPROPVAL_STGM_SHARE_DENY_WRITE equ OF_SHARE_DENY_WRITE
DBPROPVAL_STGM_SHARE_EXCLUSIVE equ OF_SHARE_EXCLUSIVE
DBPROPVAL_STGM_DIRECT	equ 0x00010000
DBPROPVAL_STGM_TRANSACTED equ 0x00020000
DBPROPVAL_STGM_CREATE	equ OF_CREATE
DBPROPVAL_STGM_CONVERT	equ 0x00040000
DBPROPVAL_STGM_FAILIFTHERE equ 0x00080000
DBPROPVAL_STGM_PRIORITY equ 0x00100000
DBPROPVAL_STGM_DELETEONRELEASE equ 0x00200000
DBPROPVAL_GB_COLLATE	equ 0x00000010
DBPROPVAL_CS_UNINITIALIZED equ 0x00000000
DBPROPVAL_CS_INITIALIZED equ 0x00000001
DBPROPVAL_CS_COMMUNICATIONFAILURE equ 0x00000002
DBPROPVAL_RD_RESETALL	equ 0xffffffff
DBPROPVAL_OS_RESOURCEPOOLING equ 0x00000001
DBPROPVAL_OS_TXNENLISTMENT equ 0x00000002
DBPROPVAL_OS_CLIENTCURSOR equ 0x00000004
DBPROPVAL_OS_ENABLEALL	equ 0xffffffff
DBPROPVAL_BI_CROSSROWSET equ 0x00000001
endif
if( OLEDBVER GE 0x0210 )
MDPROPVAL_NL_SCHEMAONLY equ 0x00000004
DBPROPVAL_OS_DISABLEALL equ 0x00000000
DBPROPVAL_OO_ROWOBJECT	equ 0x00000004
DBPROPVAL_OO_SCOPED	equ 0x00000008
DBPROPVAL_OO_DIRECTBIND equ 0x00000010
DBPROPVAL_DST_DOCSOURCE equ 0x00000004
DBPROPVAL_GU_NOTSUPPORTED equ 0x00000001
DBPROPVAL_GU_SUFFIX	equ 0x00000002
DB_BINDFLAGS_DELAYFETCHCOLUMNS equ 0x00000001
DB_BINDFLAGS_DELAYFETCHSTREAM equ 0x00000002
DB_BINDFLAGS_RECURSIVE	equ 0x00000004
DB_BINDFLAGS_OUTPUT	equ 0x00000008
DB_BINDFLAGS_COLLECTION equ 0x00000010
DB_BINDFLAGS_OPENIFEXISTS equ 0x00000020
DB_BINDFLAGS_OVERWRITE	equ 0x00000040
DB_BINDFLAGS_ISSTRUCTUREDDOCUMENT equ 0x00000080
DBPROPVAL_ORS_TABLE	equ 0x00000000
DBPROPVAL_ORS_INDEX	equ 0x00000001
DBPROPVAL_ORS_INTEGRATEDINDEX equ 0x00000002
DBPROPVAL_TC_DDL_LOCK	equ 0x00000010
DBPROPVAL_ORS_STOREDPROC equ 0x00000004
DBPROPVAL_IN_ALLOWNULL	equ 0x00000000
endif
if( OLEDBVER GE 0x0250 )
DBPROPVAL_OO_SINGLETON	equ 0x00000020
DBPROPVAL_OS_AGR_AFTERSESSION equ 0x00000008
DBPROPVAL_CM_TRANSACTIONS equ 0x00000001
endif
if( OLEDBVER GE 0x0260 )
DBPROPVAL_TS_CARDINALITY equ 0x00000001
DBPROPVAL_TS_HISTOGRAM	equ 0x00000002
DBPROPVAL_ORS_HISTOGRAM equ 0x00000008
MDPROPVAL_VISUAL_MODE_DEFAULT equ 0x00000000
MDPROPVAL_VISUAL_MODE_VISUAL equ 0x00000001
MDPROPVAL_VISUAL_MODE_VISUAL_OFF equ 0x00000002
endif
DB_IMP_LEVEL_ANONYMOUS	equ 0x00
DB_IMP_LEVEL_IDENTIFY	equ 0x01
DB_IMP_LEVEL_IMPERSONATE equ 0x02
DB_IMP_LEVEL_DELEGATE	equ 0x03
DBPROMPT_PROMPT		equ 0x01
DBPROMPT_COMPLETE	equ 0x02
DBPROMPT_COMPLETEREQUIRED equ 0x03
DBPROMPT_NOPROMPT	equ 0x04
DB_PROT_LEVEL_NONE	equ 0x00
DB_PROT_LEVEL_CONNECT	equ 0x01
DB_PROT_LEVEL_CALL	equ 0x02
DB_PROT_LEVEL_PKT	equ 0x03
DB_PROT_LEVEL_PKT_INTEGRITY equ 0x04
DB_PROT_LEVEL_PKT_PRIVACY equ 0x05
DB_MODE_READ		equ 0x01
DB_MODE_WRITE		equ 0x02
DB_MODE_READWRITE	equ 0x03
DB_MODE_SHARE_DENY_READ equ 0x04
DB_MODE_SHARE_DENY_WRITE equ 0x08
DB_MODE_SHARE_EXCLUSIVE equ 0x0c
DB_MODE_SHARE_DENY_NONE equ 0x10
DBCOMPUTEMODE_COMPUTED	equ 0x01
DBCOMPUTEMODE_DYNAMIC	equ 0x02
DBCOMPUTEMODE_NOTCOMPUTED equ 0x03
DBPROPVAL_DF_INITIALLY_DEFERRED equ 0x01
DBPROPVAL_DF_INITIALLY_IMMEDIATE equ 0x02
DBPROPVAL_DF_NOT_DEFERRABLE equ 0x03

DBPARAMS		STRUC
pData			PVOID ?
cParamSets		DB_UPARAMS ?
hAccessor		HACCESSOR ?
DBPARAMS		ENDS
DBPARAMFLAGS		typedef DWORD


.enum DBPARAMFLAGSENUM {
    DBPARAMFLAGS_ISINPUT	= 0x1,
    DBPARAMFLAGS_ISOUTPUT	= 0x2,
    DBPARAMFLAGS_ISSIGNED	= 0x10,
    DBPARAMFLAGS_ISNULLABLE	= 0x40,
    DBPARAMFLAGS_ISLONG		= 0x80
    }

if( OLEDBVER GE 0x0200 )
.enum DBPARAMFLAGSENUM20 {
    DBPARAMFLAGS_SCALEISNEGATIVE = 0x100
    }
endif

DBPARAMINFO		STRUC
dwFlags			DBPARAMFLAGS ?
iOrdinal		DBORDINAL ?
pwszName		LPOLESTR ?
pTypeInfo		LPITypeInfo ?
ulParamSize		DBLENGTH ?
wType			DBTYPE ?
bPrecision		db ?
bScale			db ?
DBPARAMINFO		ENDS

DBPROPID		typedef DWORD

DBPROPIDSET		STRUC
cPropertyIDs		ULONG ?
guidPropertySet		GUID <>
DBPROPIDSET		ENDS

DBPROPFLAGS		typedef DWORD


.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 GE 0x0210 )
.enum DBPROPFLAGSENUM21 {
    DBPROPFLAGS_TRUSTEE = 0x2000
    }
endif

if( OLEDBVER GE 0x0250 )
.enum DBPROPFLAGSENUM25 {
    DBPROPFLAGS_VIEW	= 0x4000
    }
endif

if( OLEDBVER GE 0x0260 )
.enum DBPROPFLAGSENUM26 {
    DBPROPFLAGS_STREAM	= 0x8000
    }
endif

DBPROPINFO		STRUC
pwszDescription		LPOLESTR ?
dwPropertyID		DBPROPID ?
dwFlags			DBPROPFLAGS ?
vtType			VARTYPE ?
vValues			VARIANT <>
DBPROPINFO		ENDS

PDBPROPINFO		typedef ptr DBPROPINFO

DBPROPINFOSET		STRUC
cPropertyInfos		ULONG ?
guidPropertySet		GUID <>
DBPROPINFOSET		ENDS

DBPROPOPTIONS		typedef DWORD


.enum DBPROPOPTIONSENUM {
    DBPROPOPTIONS_REQUIRED	= 0,
    DBPROPOPTIONS_SETIFCHEAP	= 0x1,
    DBPROPOPTIONS_OPTIONAL	= 0x1
    }
DBPROPSTATUS		typedef DWORD


.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 GE 0x0210 )
.enum DBPROPSTATUSENUM21 {
    DBPROPSTATUS_NOTAVAILABLE	= 9
    }
endif

DBPROP			STRUC
dwPropertyID		DBPROPID ?
dwOptions		DBPROPOPTIONS ?
dwStatus		DBPROPSTATUS ?
colid			DBID <>
vValue			VARIANT <>
DBPROP			ENDS
LPDBPROP		typedef ptr DBPROP

DBPROPSET		STRUC
rgProperties		LPDBPROP ?
cProperties		ULONG ?
guidPropertySet		GUID <>
DBPROPSET		ENDS

DBPARAMTYPE_INPUT	equ 0x01
DBPARAMTYPE_INPUTOUTPUT equ 0x02
DBPARAMTYPE_OUTPUT	equ 0x03
DBPARAMTYPE_RETURNVALUE equ 0x04
DB_PT_UNKNOWN		equ 0x01
DB_PT_PROCEDURE		equ 0x02
DB_PT_FUNCTION		equ 0x03
DB_REMOTE		equ 0x01
DB_LOCAL_SHARED		equ 0x02
DB_LOCAL_EXCLUSIVE	equ 0x03
DB_COLLATION_ASC	equ 0x01
DB_COLLATION_DESC	equ 0x02
DB_UNSEARCHABLE		equ 0x01
DB_LIKE_ONLY		equ 0x02
DB_ALL_EXCEPT_LIKE	equ 0x03
DB_SEARCHABLE		equ 0x04
if( OLEDBVER GE 0x0200 )
MDTREEOP_CHILDREN	equ 0x01
MDTREEOP_SIBLINGS	equ 0x02
MDTREEOP_PARENT		equ 0x04
MDTREEOP_SELF		equ 0x08
MDTREEOP_DESCENDANTS	equ 0x10
MDTREEOP_ANCESTORS	equ 0x20
MD_DIMTYPE_UNKNOWN	equ 0x00
MD_DIMTYPE_TIME		equ 0x01
MD_DIMTYPE_MEASURE	equ 0x02
MD_DIMTYPE_OTHER	equ 0x03
MDLEVEL_TYPE_UNKNOWN	equ 0x0000
MDLEVEL_TYPE_REGULAR	equ 0x0000
MDLEVEL_TYPE_ALL	equ 0x0001
MDLEVEL_TYPE_CALCULATED equ 0x0002
MDLEVEL_TYPE_TIME	equ 0x0004
MDLEVEL_TYPE_RESERVED1	equ 0x0008
MDLEVEL_TYPE_TIME_YEARS equ 0x0014
MDLEVEL_TYPE_TIME_HALF_YEAR equ 0x0024
MDLEVEL_TYPE_TIME_QUARTERS equ 0x0044
MDLEVEL_TYPE_TIME_MONTHS equ 0x0084
MDLEVEL_TYPE_TIME_WEEKS equ 0x0104
MDLEVEL_TYPE_TIME_DAYS	equ 0x0204
MDLEVEL_TYPE_TIME_HOURS equ 0x0304
MDLEVEL_TYPE_TIME_MINUTES equ 0x0404
MDLEVEL_TYPE_TIME_SECONDS equ 0x0804
MDLEVEL_TYPE_TIME_UNDEFINED equ 0x1004
MDMEASURE_AGGR_UNKNOWN	equ 0x00
MDMEASURE_AGGR_SUM	equ 0x01
MDMEASURE_AGGR_COUNT	equ 0x02
MDMEASURE_AGGR_MIN	equ 0x03
MDMEASURE_AGGR_MAX	equ 0x04
MDMEASURE_AGGR_AVG	equ 0x05
MDMEASURE_AGGR_VAR	equ 0x06
MDMEASURE_AGGR_STD	equ 0x07
MDMEASURE_AGGR_CALCULATED equ 0x7f
MDPROP_MEMBER		equ 0x01
MDPROP_CELL		equ 0x02
MDMEMBER_TYPE_UNKNOWN	equ 0x00
MDMEMBER_TYPE_REGULAR	equ 0x01
MDMEMBER_TYPE_ALL	equ 0x02
MDMEMBER_TYPE_MEASURE	equ 0x03
MDMEMBER_TYPE_FORMULA	equ 0x04
MDMEMBER_TYPE_RESERVE1	equ 0x05
MDMEMBER_TYPE_RESERVE2	equ 0x06
MDMEMBER_TYPE_RESERVE3	equ 0x07
MDMEMBER_TYPE_RESERVE4	equ 0x08
MDDISPINFO_DRILLED_DOWN equ 0x00010000
MDDISPINFO_PARENT_SAME_AS_PREV equ 0x00020000
endif
DBINDEX_COL_ORDER	typedef DWORD


.enum DBINDEX_COL_ORDERENUM {
    DBINDEX_COL_ORDER_ASC	= 0,
    DBINDEX_COL_ORDER_DESC	= ( DBINDEX_COL_ORDER_ASC + 1 )
    }
LPDBID			typedef ptr DBID
DBINDEXCOLUMNDESC	STRUC
pColumnID		LPDBID ?
eIndexColOrder		DBINDEX_COL_ORDER ?
DBINDEXCOLUMNDESC	ENDS

DBCOLUMNDESC		STRUC
pwszTypeName		LPOLESTR ?
pTypeInfo		LPITypeInfo ?
pclsid			LPCLSID ?
cPropertySets		ULONG ?
ulColumnSize		DBLENGTH ?
dbcid			DBID <>
wType			DBTYPE ?
bPrecision		db ?
bScale			db ?
DBCOLUMNDESC		ENDS

if( OLEDBVER GE 0x0210 )
DBCOLUMNACCESS		STRUC
pData			PVOID ?
columnid		DBID <>
cbDataLen		DBLENGTH ?
dwStatus		DBSTATUS ?
cbMaxLen		DBLENGTH ?
dwReserved		DB_DWRESERVE ?
wType			DBTYPE ?
bPrecision		db ?
bScale			db ?
DBCOLUMNACCESS		ENDS

endif

if( OLEDBVER GE 0x0200 )
DBCOLUMNDESCFLAGS typedef DWORD

.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

DBEVENTPHASE typedef DWORD

.enum DBEVENTPHASEENUM {
    DBEVENTPHASE_OKTODO = 0,
    DBEVENTPHASE_ABOUTTODO	= ( DBEVENTPHASE_OKTODO + 1 ) ,
    DBEVENTPHASE_SYNCHAFTER = ( DBEVENTPHASE_ABOUTTODO + 1 ) ,
    DBEVENTPHASE_FAILEDTODO = ( DBEVENTPHASE_SYNCHAFTER + 1 ) ,
    DBEVENTPHASE_DIDEVENT	= ( DBEVENTPHASE_FAILEDTODO + 1 )
    }

DBREASON typedef DWORD

.enum DBREASONENUM {
    DBREASON_ROWSET_FETCHPOSITIONCHANGE = 0,
    DBREASON_ROWSET_RELEASE = ( DBREASON_ROWSET_FETCHPOSITIONCHANGE + 1 ) ,
    DBREASON_COLUMN_SET = ( DBREASON_ROWSET_RELEASE + 1 ) ,
    DBREASON_COLUMN_RECALCULATED	= ( DBREASON_COLUMN_SET + 1 ) ,
    DBREASON_ROW_ACTIVATE	= ( DBREASON_COLUMN_RECALCULATED + 1 ) ,
    DBREASON_ROW_RELEASE	= ( DBREASON_ROW_ACTIVATE + 1 ) ,
    DBREASON_ROW_DELETE = ( DBREASON_ROW_RELEASE + 1 ) ,
    DBREASON_ROW_FIRSTCHANGE	= ( DBREASON_ROW_DELETE + 1 ) ,
    DBREASON_ROW_INSERT = ( DBREASON_ROW_FIRSTCHANGE + 1 ) ,
    DBREASON_ROW_RESYNCH	= ( DBREASON_ROW_INSERT + 1 ) ,
    DBREASON_ROW_UNDOCHANGE = ( DBREASON_ROW_RESYNCH + 1 ) ,
    DBREASON_ROW_UNDOINSERT = ( DBREASON_ROW_UNDOCHANGE + 1 ) ,
    DBREASON_ROW_UNDODELETE = ( DBREASON_ROW_UNDOINSERT + 1 ) ,
    DBREASON_ROW_UPDATE = ( DBREASON_ROW_UNDODELETE + 1 ) ,
    DBREASON_ROWSET_CHANGED = ( DBREASON_ROW_UPDATE + 1 )
    }

if( OLEDBVER GE 0x0150 )
.enum DBREASONENUM15 {
    DBREASON_ROWPOSITION_CHANGED	= ( DBREASON_ROWSET_CHANGED + 1 ) ,
    DBREASON_ROWPOSITION_CHAPTERCHANGED = ( DBREASON_ROWPOSITION_CHANGED + 1 ) ,
    DBREASON_ROWPOSITION_CLEARED	= ( DBREASON_ROWPOSITION_CHAPTERCHANGED + 1 ) ,
    DBREASON_ROW_ASYNCHINSERT	= ( DBREASON_ROWPOSITION_CLEARED + 1 )
    }
endif

if( OLEDBVER GE 0x0150 )

DBCOMPAREOP typedef DWORD

.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 GE 0x0200 )
.enum DBCOMPAREOPSENUM20 {
    DBCOMPAREOPS_NOTBEGINSWITH	= 9,
    DBCOMPAREOPS_NOTCONTAINS	= 10
    }
endif

DBASYNCHOP typedef DWORD

.enum DBASYNCHOPENUM {
    DBASYNCHOP_OPEN = 0
    }

DBASYNCHPHASE typedef DWORD

.enum DBASYNCHPHASEENUM {
    DBASYNCHPHASE_INITIALIZATION	= 0,
    DBASYNCHPHASE_POPULATION	= ( DBASYNCHPHASE_INITIALIZATION + 1 ) ,
    DBASYNCHPHASE_COMPLETE	= ( DBASYNCHPHASE_POPULATION + 1 ) ,
    DBASYNCHPHASE_CANCELED	= ( DBASYNCHPHASE_COMPLETE + 1 )
    }
DB_COUNTUNAVAILABLE	equ -1
endif

DBSORT typedef DWORD


.enum DBSORTENUM {
    DBSORT_ASCENDING	= 0,
    DBSORT_DESCENDING	= ( DBSORT_ASCENDING + 1 )
    }

if( OLEDBVER GE 0x0200 )
DBCOMMANDPERSISTFLAG	typedef DWORD


.enum DBCOMMANDPERSISTFLAGENUM {
    DBCOMMANDPERSISTFLAG_NOSAVE = 0x1
    }
endif

if( OLEDBVER GE 0x0210 )

.enum DBCOMMANDPERSISTFLAGENUM21 {
    DBCOMMANDPERSISTFLAG_DEFAULT	= 0,
    DBCOMMANDPERSISTFLAG_PERSISTVIEW	= 0x2,
    DBCOMMANDPERSISTFLAG_PERSISTPROCEDURE	= 0x4
    }
DBCONSTRAINTTYPE	typedef DWORD


.enum DBCONSTRAINTTYPEENUM {
    DBCONSTRAINTTYPE_UNIQUE = 0,
    DBCONSTRAINTTYPE_FOREIGNKEY = 0x1,
    DBCONSTRAINTTYPE_PRIMARYKEY = 0x2,
    DBCONSTRAINTTYPE_CHECK	= 0x3
    }
DBUPDELRULE		typedef DWORD


.enum DBUPDELRULEENUM {
    DBUPDELRULE_NOACTION	= 0,
    DBUPDELRULE_CASCADE = 0x1,
    DBUPDELRULE_SETNULL = 0x2,
    DBUPDELRULE_SETDEFAULT	= 0x3
    }
DBMATCHTYPE		typedef DWORD


.enum DBMATCHTYPEENUM {
    DBMATCHTYPE_FULL	= 0,
    DBMATCHTYPE_NONE	= 0x1,
    DBMATCHTYPE_PARTIAL = 0x2
    }
DBDEFERRABILITY		typedef DWORD


.enum DBDEFERRABILITYENUM {
    DBDEFERRABILITY_DEFERRED	= 0x1,
    DBDEFERRABILITY_DEFERRABLE	= 0x2
    }
DBCONSTRAINTDESC	STRUC
pConstraintID		LPDBID ?
ConstraintType		DBCONSTRAINTTYPE ?
cColumns		DBORDINAL ?
pReferencedTableID	LPDBID ?
cForeignKeyColumns	DBORDINAL ?
pwszConstraintText	LPOLESTR ?
UpdateRule		DBUPDELRULE ?
DeleteRule		DBUPDELRULE ?
MatchType		DBMATCHTYPE ?
Deferrability		DBDEFERRABILITY ?
cReserved		DB_URESERVE ?
DBCONSTRAINTDESC	ENDS

endif

if( OLEDBVER GE 0x0200 )
LPDBORDINAL		typedef ptr DBORDINAL
MDFF_BOLD		equ 0x01
MDFF_ITALIC		equ 0x02
MDFF_UNDERLINE		equ 0x04
MDFF_STRIKEOUT		equ 0x08
MDAXISINFO		STRUC
cbSize			DBLENGTH ?
iAxis			DBCOUNTITEM ?
cDimensions		DBCOUNTITEM ?
cCoordinates		DBCOUNTITEM ?
rgcColumns		LPDBORDINAL ?
rgpwszDimensionNames	LPOLESTR ?
MDAXISINFO		ENDS

PMDAXISINFO_GETAT macro rgAxisInfo, iAxis
	exitm<((MDAXISINFO *)(((BYTE *)(rgAxisInfo)) +((iAxis) * (rgAxisInfo)[0].cbSize)))>
	endm
MDAXISINFO_GETAT macro rgAxisInfo, iAxis
	exitm<(*PMDAXISINFO_GETAT((rgAxisInfo), (iAxis)))>
	endm
MDAXIS_COLUMNS		equ 0x00000000
MDAXIS_ROWS		equ 0x00000001
MDAXIS_PAGES		equ 0x00000002
MDAXIS_SECTIONS		equ 0x00000003
MDAXIS_CHAPTERS		equ 0x00000004
MDAXIS_SLICERS		equ 0xffffffff

endif

LPISequentialStream	typedef ptr ISequentialStream
RMTPACK			STRUC
pISeqStream		LPISequentialStream ?
cbData			ULONG ?
cBSTR			ULONG ?
cVARIANT		ULONG ?
cIDISPATCH		ULONG ?
cIUNKNOWN		ULONG ?
cPROPVARIANT		ULONG ?
cArray			ULONG ?
RMTPACK			ENDS

endif

endif

if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)

ifndef __IAccessor_INTERFACE_DEFINED__
define __IAccessor_INTERFACE_DEFINED__

DBACCESSORFLAGS		typedef DWORD

.enum DBACCESSORFLAGSENUM {
    DBACCESSOR_INVALID	= 0,
    DBACCESSOR_PASSBYREF	= 0x1,
    DBACCESSOR_ROWDATA	= 0x2,
    DBACCESSOR_PARAMETERDATA	= 0x4,
    DBACCESSOR_OPTIMIZED	= 0x8,
    DBACCESSOR_INHERITED	= 0x10
    }

DBBINDSTATUS		typedef DWORD

.enum DBBINDSTATUSENUM {
    DBBINDSTATUS_OK = 0,
    DBBINDSTATUS_BADORDINAL = 1,
    DBBINDSTATUS_UNSUPPORTEDCONVERSION	= 2,
    DBBINDSTATUS_BADBINDINFO	= 3,
    DBBINDSTATUS_BADSTORAGEFLAGS	= 4,
    DBBINDSTATUS_NOINTERFACE	= 5,
    DBBINDSTATUS_MULTIPLESTORAGE	= 6
    }

DEFINE_IIDX(IAccessor, "0c733a8c-2a1c-11ce-ade5-00aa0044773d")

.comdef IAccessor : public IUnknown

    AddRefAccessor	proc :HACCESSOR, :ptr
    CreateAccessor	proc :DBACCESSORFLAGS, :DBCOUNTITEM, :ptr, :DBLENGTH, :ptr, :ptr
    GetBindings		proc :HACCESSOR, :ptr, :ptr, :ptr
    ReleaseAccessor	proc :HACCESSOR, :ptr
    .ends

endif

endif

if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)

ifndef __IRowset_INTERFACE_DEFINED__
define __IRowset_INTERFACE_DEFINED__


DBROWOPTIONS		typedef DWORD

DEFINE_IIDX(IRowset, "0c733a7c-2a1c-11ce-ade5-00aa0044773d")

.comdef IRowset : public IUnknown

    AddRefRows		proc :DBCOUNTITEM, :ptr, :ptr, :ptr
    GetData		proc :HROW, :HACCESSOR, :ptr
    GetNextRows		proc :HCHAPTER, :DBROWOFFSET, :DBROWCOUNT, :ptr, :ptr
    ReleaseRows		proc :DBCOUNTITEM, :ptr, :ptr, :ptr, :ptr
    RestartPosition	proc :HCHAPTER
    .ends

endif

endif

if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)

ifndef __IRowsetInfo_INTERFACE_DEFINED__
define __IRowsetInfo_INTERFACE_DEFINED__

DEFINE_IIDX(IRowsetInfo, "0c733a55-2a1c-11ce-ade5-00aa0044773d")

.comdef IRowsetInfo : public IUnknown

    GetProperties	proc :ULONG, :ptr, :ptr, :ptr
    GetReferencedRowset proc :DBORDINAL, :REFIID, :ptr
    GetSpecification	proc :REFIID, :ptr
    .ends

endif

endif

if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)

ifndef __IRowsetLocate_INTERFACE_DEFINED__
define __IRowsetLocate_INTERFACE_DEFINED__

DBCOMPARE		typedef DWORD

.enum DBCOMPAREENUM {
    DBCOMPARE_LT	= 0,
    DBCOMPARE_EQ	= ( DBCOMPARE_LT + 1 ) ,
    DBCOMPARE_GT	= ( DBCOMPARE_EQ + 1 ) ,
    DBCOMPARE_NE	= ( DBCOMPARE_GT + 1 ) ,
    DBCOMPARE_NOTCOMPARABLE = ( DBCOMPARE_NE + 1 )
    }

DEFINE_IIDX(IRowsetLocate, "0c733a7d-2a1c-11ce-ade5-00aa0044773d")

.comdef IRowsetLocate : public IRowset

    Compare		proc :HCHAPTER, :DBBKMARK, :ptr, :DBBKMARK, :ptr, :ptr
    GetRowsAt		proc :HWATCHREGION, :HCHAPTER, :DBBKMARK, :ptr, :DBROWOFFSET, :DBROWCOUNT, :ptr, :ptr
    GetRowsByBookmark	proc :HCHAPTER, :DBCOUNTITEM, :ptr, :ptr, :ptr HROW, :ptr DBROWSTATUS
    Hash		proc :HCHAPTER, :DBBKMARK, :ptr, :ptr, :ptr DBHASHVALUE, :ptr DBROWSTATUS
    .ends

endif

endif

if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)

ifndef __IRowsetResynch_INTERFACE_DEFINED__
define __IRowsetResynch_INTERFACE_DEFINED__

DEFINE_IIDX(IRowsetResynch, "0c733a84-2a1c-11ce-ade5-00aa0044773d")

.comdef IRowsetResynch : public IUnknown

    GetVisibleData	proc :HROW, :HACCESSOR, :ptr
    ResynchRows		proc :DBCOUNTITEM, :HROW, :ptr, :ptr, :ptr
   .ends

endif

endif

if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)

ifndef __IRowsetScroll_INTERFACE_DEFINED__
define __IRowsetScroll_INTERFACE_DEFINED__

DEFINE_IIDX(IRowsetScroll, "0c733a7e-2a1c-11ce-ade5-00aa0044773d")

.comdef IRowsetScroll : public IRowsetLocate

    GetApproximatePosition proc :HCHAPTER, :DBBKMARK, :ptr, :ptr, :ptr
    GetRowsAtRatio	proc :HWATCHREGION, :HCHAPTER, :DBCOUNTITEM, :DBCOUNTITEM, :DBROWCOUNT, :ptr, :ptr
   .ends

endif

endif

if( OLEDBVER GE 0x0150 )

if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)

ifndef __IChapteredRowset_INTERFACE_DEFINED__
define __IChapteredRowset_INTERFACE_DEFINED__

DEFINE_IIDX(IChapteredRowset, "0c733a93-2a1c-11ce-ade5-00aa0044773d")

.comdef IChapteredRowset : public IUnknown

    AddRefChapter	proc :HCHAPTER, :ptr
    ReleaseChapter	proc :HCHAPTER, :ptr
   .ends

endif

endif

if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)

ifndef __IRowsetFind_INTERFACE_DEFINED__
define __IRowsetFind_INTERFACE_DEFINED__

DEFINE_IIDX(IRowsetFind, "0c733a9d-2a1c-11ce-ade5-00aa0044773d")

.comdef IRowsetFind : public IUnknown

    FindNextRow		proc :HCHAPTER, :HACCESSOR, :ptr, :DBCOMPAREOP, :DBBKMARK, :ptr, :DBROWOFFSET, :DBROWCOUNT, :ptr, :ptr
   .ends

endif

endif

if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)

ifndef __IRowPosition_INTERFACE_DEFINED__
define __IRowPosition_INTERFACE_DEFINED__

DBPOSITIONFLAGS		typedef DWORD

.enum DBPOSITIONFLAGSENUM {
    DBPOSITION_OK	= 0,
    DBPOSITION_NOROW	= ( DBPOSITION_OK + 1 ) ,
    DBPOSITION_BOF	= ( DBPOSITION_NOROW + 1 ) ,
    DBPOSITION_EOF	= ( DBPOSITION_BOF + 1 )
    }

DEFINE_IIDX(IRowPosition, "0c733a94-2a1c-11ce-ade5-00aa0044773d")

.comdef IRowPosition : public IUnknown

    ClearRowPosition	proc
    GetRowPosition	proc :ptr, :ptr, :ptr
    GetRowset		proc :REFIID, :ptr
    Initialize		proc :ptr
    SetRowPosition	proc :HCHAPTER, :HROW, :DBPOSITIONFLAGS
   .ends

endif

endif

if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)

ifndef __IRowPositionChange_INTERFACE_DEFINED__
define __IRowPositionChange_INTERFACE_DEFINED__

DEFINE_IIDX(IRowPositionChange, "0997a571-126e-11d0-9f8a-00a0c9a0631e")

.comdef IRowPositionChange : public IUnknown

    OnRowPositionChange proc :DBREASON, :DBEVENTPHASE, :BOOL
   .ends

endif

endif

if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)

ifndef __IViewRowset_INTERFACE_DEFINED__
define __IViewRowset_INTERFACE_DEFINED__

DEFINE_IIDX(IViewRowset, "0c733a97-2a1c-11ce-ade5-00aa0044773d")

.comdef IViewRowset : public IUnknown

    GetSpecification	proc :REFIID, :ptr
    OpenViewRowset	proc :ptr, :REFIID, :ptr
   .ends

endif

endif

if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)

ifndef __IViewChapter_INTERFACE_DEFINED__
define __IViewChapter_INTERFACE_DEFINED__

DEFINE_IIDX(IViewChapter, "0c733a98-2a1c-11ce-ade5-00aa0044773d")

.comdef IViewChapter : public IUnknown

    GetSpecification	proc :REFIID, :ptr
    OpenViewChapter	proc :HCHAPTER, :ptr
   .ends

endif

endif

if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)

ifndef __IViewSort_INTERFACE_DEFINED__
define __IViewSort_INTERFACE_DEFINED__

DEFINE_IIDX(IViewSort, "0c733a9a-2a1c-11ce-ade5-00aa0044773d")

.comdef IViewSort : public IUnknown

    GetSortOrder	proc :ptr, :ptr
    SetSortOrder	proc :DBORDINAL, :DBSORT
   .ends

endif

endif

if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)

ifndef __IViewFilter_INTERFACE_DEFINED__
define __IViewFilter_INTERFACE_DEFINED__

DEFINE_IIDX(IViewFilter, "0c733a9b-2a1c-11ce-ade5-00aa0044773d")

.comdef IViewFilter : public IUnknown

    GetFilter		proc :HACCESSOR, :ptr
    GetFilterBindings	proc :ptr, :ptr
    SetFilter		proc :HACCESSOR, :DBCOUNTITEM
   .ends

endif

endif

if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)

ifndef __IRowsetView_INTERFACE_DEFINED__
define __IRowsetView_INTERFACE_DEFINED__

DEFINE_IIDX(IRowsetView, "0c733a99-2a1c-11ce-ade5-00aa0044773d")

.comdef IRowsetView : public IUnknown

    CreateView		proc :ptr, :REFIID, :ptr
    GetView		proc :HCHAPTER, :REFIID, :ptr, :ptr
   .ends

endif

endif

endif
ifdef oledb_deprecated

if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)

ifndef __IRowsetExactScroll_INTERFACE_DEFINED__
define __IRowsetExactScroll_INTERFACE_DEFINED__

DEFINE_IIDX(IRowsetExactScroll, "0c733a7f-2a1c-11ce-ade5-00aa0044773d")

.comdef IRowsetExactScroll : public IRowsetScroll

    GetExactPosition	proc :HCHAPTER, :DBBKMARK, :ptr, :ptr, :ptr
   .ends

endif

endif

endif

if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)

ifndef __IRowsetChange_INTERFACE_DEFINED__
define __IRowsetChange_INTERFACE_DEFINED__

DEFINE_IIDX(IRowsetChange, "0c733a05-2a1c-11ce-ade5-00aa0044773d")

.comdef IRowsetChange : public IUnknown

    DeleteRows		proc :HCHAPTER, :DBCOUNTITEM, :ptr, :ptr
    SetData		proc :HROW, :HACCESSOR, :ptr
    InsertRow		proc :HCHAPTER, :HACCESSOR, :ptr, :ptr
   .ends

endif

endif


if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)

ifndef __IRowsetUpdate_INTERFACE_DEFINED__
define __IRowsetUpdate_INTERFACE_DEFINED__

DBPENDINGSTATUS		typedef DWORD

.enum DBPENDINGSTATUSENUM {
    DBPENDINGSTATUS_NEW = 0x1,
    DBPENDINGSTATUS_CHANGED = 0x2,
    DBPENDINGSTATUS_DELETED = 0x4,
    DBPENDINGSTATUS_UNCHANGED	= 0x8,
    DBPENDINGSTATUS_INVALIDROW	= 0x10
    }

DEFINE_IIDX(IRowsetUpdate, "0c733a6d-2a1c-11ce-ade5-00aa0044773d")

.comdef IRowsetUpdate : public IRowsetChange

    GetOriginalData	proc :HROW, :HACCESSOR, :ptr
    GetPendingRows	proc :HCHAPTER, :DBPENDINGSTATUS, :ptr, :ptr, :ptr
    GetRowStatus	proc :HCHAPTER, :DBCOUNTITEM, :ptr, :ptr
    Undo		proc :HCHAPTER, :DBCOUNTITEM, :ptr, :ptr, :ptr, :ptr
    Update		proc :HCHAPTER, :DBCOUNTITEM, :ptr, :ptr, :ptr, :ptr
    .ends

endif

endif

if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)

ifndef __IRowsetIdentity_INTERFACE_DEFINED__
define __IRowsetIdentity_INTERFACE_DEFINED__

DEFINE_IIDX(IRowsetIdentity, "0c733a09-2a1c-11ce-ade5-00aa0044773d")

.comdef IRowsetIdentity : public IUnknown

    IsSameRow		proc :HROW
   .ends

endif

endif

if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)

ifndef __IRowsetNotify_INTERFACE_DEFINED__
define __IRowsetNotify_INTERFACE_DEFINED__

DEFINE_IIDX(IRowsetNotify, "0c733a83-2a1c-11ce-ade5-00aa0044773d")

.comdef IRowsetNotify : public IUnknown

    OnFieldChange	proc :ptr, :HROW, :DBORDINAL, :ptr, :DBREASON, :DBEVENTPHASE, :BOOL
    OnRowChange		proc :ptr, :DBCOUNTITEM, :ptr, :DBREASON, :DBEVENTPHASE, :BOOL
    OnRowsetChange	proc :ptr, :DBREASON, :DBEVENTPHASE, :BOOL
    .ends

endif

endif

if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)

ifndef __IRowsetIndex_INTERFACE_DEFINED__
define __IRowsetIndex_INTERFACE_DEFINED__

DBSEEK typedef DWORD

.enum DBSEEKENUM {
    DBSEEK_INVALID	= 0,
    DBSEEK_FIRSTEQ	= 0x1,
    DBSEEK_LASTEQ	= 0x2,
    DBSEEK_AFTEREQ	= 0x4,
    DBSEEK_AFTER	= 0x8,
    DBSEEK_BEFOREEQ	= 0x10,
    DBSEEK_BEFORE	= 0x20
    }

DBSEEK_GE		equ DBSEEK_AFTEREQ
DBSEEK_GT		equ DBSEEK_AFTER
DBSEEK_LE		equ DBSEEK_BEFOREEQ
DBSEEK_LT		equ DBSEEK_BEFORE
DBRANGE			typedef DWORD


.enum DBRANGEENUM {
    DBRANGE_INCLUSIVESTART	= 0,
    DBRANGE_INCLUSIVEEND	= 0,
    DBRANGE_EXCLUSIVESTART	= 0x1,
    DBRANGE_EXCLUSIVEEND	= 0x2,
    DBRANGE_EXCLUDENULLS	= 0x4,
    DBRANGE_PREFIX	= 0x8,
    DBRANGE_MATCH	= 0x10
    }

if( OLEDBVER GE 0x0200 )
.enum DBRANGEENUM20 {
    DBRANGE_MATCH_N_SHIFT	= 0x18,
    DBRANGE_MATCH_N_MASK	= 0xff
    }
endif

DEFINE_IIDX(IRowsetIndex, "0c733a82-2a1c-11ce-ade5-00aa0044773d")

.comdef IRowsetIndex : public IUnknown

    GetIndexInfo	proc :ptr, :ptr, :ptr, :ptr
    Seek		proc :HACCESSOR, :DBORDINAL, :ptr, :DBSEEK
    SetRange		proc :HACCESSOR, :DBORDINAL, :ptr, :DBORDINAL, :ptr, :DBRANGE
   .ends

endif

endif

if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)

ifndef __ICommand_INTERFACE_DEFINED__
define __ICommand_INTERFACE_DEFINED__

DEFINE_IIDX(ICommand, "0c733a63-2a1c-11ce-ade5-00aa0044773d")

.comdef ICommand : public IUnknown

    Cancel		proc
    Execute		proc :ptr, :REFIID, :ptr, :ptr, :ptr
    GetDBSession	proc :REFIID, :ptr
   .ends

endif

endif

if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)

ifndef __IMultipleResults_INTERFACE_DEFINED__
define __IMultipleResults_INTERFACE_DEFINED__

DBRESULTFLAG typedef DB_LRESERVE

.enum DBRESULTFLAGENUM {
    DBRESULTFLAG_DEFAULT	= 0,
    DBRESULTFLAG_ROWSET = 1,
    DBRESULTFLAG_ROW	= 2
    }

DEFINE_IIDX(IMultipleResults, "0c733a90-2a1c-11ce-ade5-00aa0044773d")

.comdef IMultipleResults : public IUnknown

    GetResult		proc :ptr, :DBRESULTFLAG, :REFIID, :ptr, :ptr
   .ends

endif

endif

if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)

ifndef __IConvertType_INTERFACE_DEFINED__
define __IConvertType_INTERFACE_DEFINED__

DBCONVERTFLAGS typedef DWORD

.enum DBCONVERTFLAGSENUM {
    DBCONVERTFLAGS_COLUMN	= 0,
    DBCONVERTFLAGS_PARAMETER	= 0x1
    }

if( OLEDBVER GE 0x0200 )
.enum DBCONVERTFLAGSENUM20 {
    DBCONVERTFLAGS_ISLONG	= 0x2,
    DBCONVERTFLAGS_ISFIXEDLENGTH	= 0x4,
    DBCONVERTFLAGS_FROMVARIANT	= 0x8
    }
endif

DEFINE_IIDX(IConvertType, "0c733a88-2a1c-11ce-ade5-00aa0044773d")

.comdef IConvertType : public IUnknown

    CanConvert		proc :DBTYPE, :DBTYPE, :DBCONVERTFLAGS
   .ends

endif

endif

if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)

ifndef __ICommandPrepare_INTERFACE_DEFINED__
define __ICommandPrepare_INTERFACE_DEFINED__

DEFINE_IIDX(ICommandPrepare, "0c733a26-2a1c-11ce-ade5-00aa0044773d")

.comdef ICommandPrepare : public IUnknown

    Prepare		proc :ULONG
    Unprepare		proc
   .ends

endif

endif

if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)

ifndef __ICommandProperties_INTERFACE_DEFINED__
define __ICommandProperties_INTERFACE_DEFINED__

DEFINE_IIDX(ICommandProperties, "0c733a79-2a1c-11ce-ade5-00aa0044773d")

.comdef ICommandProperties : public IUnknown

    GetProperties	proc :ULONG, :ptr, :ptr, :ptr
    SetProperties	proc :ULONG, :ptr
   .ends

endif

endif

if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)

ifndef __ICommandText_INTERFACE_DEFINED__
define __ICommandText_INTERFACE_DEFINED__

DEFINE_IIDX(ICommandText, "0c733a27-2a1c-11ce-ade5-00aa0044773d")

.comdef ICommandText : public ICommand

    GetCommandText	proc :ptr, :ptr
    SetCommandText	proc :REFGUID, :LPCOLESTR
   .ends

endif

endif

if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)

ifndef __ICommandWithParameters_INTERFACE_DEFINED__
define __ICommandWithParameters_INTERFACE_DEFINED__

DBPARAMBINDINFO		STRUC
pwszDataSourceType	LPOLESTR ?
pwszName		LPOLESTR ?
ulParamSize		DBLENGTH ?
dwFlags			DBPARAMFLAGS ?
bPrecision		db ?
bScale			db ?
DBPARAMBINDINFO		ENDS


DEFINE_IIDX(ICommandWithParameters, "0c733a64-2a1c-11ce-ade5-00aa0044773d")

.comdef ICommandWithParameters : public IUnknown

    GetParameterInfo	proc :ptr, :ptr, :ptr
    MapParameterNames	proc :DB_UPARAMS, :ptr, :ptr
    SetParameterInfo	proc :DB_UPARAMS, :ptr, :ptr
   .ends

endif

endif

if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)

ifndef __IColumnsRowset_INTERFACE_DEFINED__
define __IColumnsRowset_INTERFACE_DEFINED__

DEFINE_IIDX(IColumnsRowset, "0c733a10-2a1c-11ce-ade5-00aa0044773d")

.comdef IColumnsRowset : public IUnknown

    GetAvailableColumns proc :ptr, :ptr
    GetColumnsRowset	proc :ptr, :DBORDINAL, :ptr, :REFIID, :ULONG, :ptr, :ptr
   .ends

endif

endif

if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)

ifndef __IColumnsInfo_INTERFACE_DEFINED__
define __IColumnsInfo_INTERFACE_DEFINED__

DEFINE_IIDX(IColumnsInfo, "0c733a11-2a1c-11ce-ade5-00aa0044773d")

.comdef IColumnsInfo : public IUnknown

    GetColumnInfo	proc :ptr
    MapColumnIDs	proc :DBORDINAL, :ptr, :ptr
   .ends

endif

endif

if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)

ifndef __IDBCreateCommand_INTERFACE_DEFINED__
define __IDBCreateCommand_INTERFACE_DEFINED__

DEFINE_IIDX(IDBCreateCommand, "0c733a1d-2a1c-11ce-ade5-00aa0044773d")

.comdef IDBCreateCommand : public IUnknown

    CreateCommand	proc :ptr, :REFIID, :ptr
   .ends
    LPIDBCreateCommand typedef ptr IDBCreateCommand

endif

endif

if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)

ifndef __IDBCreateSession_INTERFACE_DEFINED__
define __IDBCreateSession_INTERFACE_DEFINED__

DEFINE_IIDX(IDBCreateSession, "0c733a5d-2a1c-11ce-ade5-00aa0044773d")

.comdef IDBCreateSession : public IUnknown

    CreateSession	proc :ptr, :REFIID, :ptr
   .ends

endif

endif

if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)

ifndef __ISourcesRowset_INTERFACE_DEFINED__
define __ISourcesRowset_INTERFACE_DEFINED__

DBSOURCETYPE		typedef DWORD

.enum DBSOURCETYPEENUM {
    DBSOURCETYPE_DATASOURCE = 1,
    DBSOURCETYPE_ENUMERATOR = 2
    }

if( OLEDBVER GE 0x0200 )
.enum DBSOURCETYPEENUM20 {
    DBSOURCETYPE_DATASOURCE_TDP = 1,
    DBSOURCETYPE_DATASOURCE_MDP = 3
    }
endif

if( OLEDBVER GE 0x0250 )
.enum DBSOURCETYPEENUM25 {
    DBSOURCETYPE_BINDER = 4
    }
endif

DEFINE_IIDX(ISourcesRowset, "0c733a1e-2a1c-11ce-ade5-00aa0044773d")

.comdef ISourcesRowset : public IUnknown

    GetSourcesRowset	proc :ptr, :REFIID, :ULONG, :ptr, :ptr
   .ends

endif

endif

if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)

ifndef __IDBProperties_INTERFACE_DEFINED__
define __IDBProperties_INTERFACE_DEFINED__

DEFINE_IIDX(IDBProperties, "0c733a8a-2a1c-11ce-ade5-00aa0044773d")

.comdef IDBProperties : public IUnknown

    GetProperties	proc :ULONG, :ptr, :ptr, :ptr
    GetPropertyInfo	proc :ULONG, :ptr, :ptr, :ptr, :ptr
    SetProperties	proc :ULONG, :ptr
   .ends

endif

endif

if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)

ifndef __IDBInitialize_INTERFACE_DEFINED__
define __IDBInitialize_INTERFACE_DEFINED__

DEFINE_IIDX(IDBInitialize, "0c733a8b-2a1c-11ce-ade5-00aa0044773d")

.comdef IDBInitialize : public IUnknown

    Initialize		proc
    Uninitialize	proc
   .ends

endif

endif

if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)

ifndef __IDBInfo_INTERFACE_DEFINED__
define __IDBInfo_INTERFACE_DEFINED__

DBLITERAL typedef DWORD

.enum DBLITERALENUM {
    DBLITERAL_INVALID	= 0,
    DBLITERAL_BINARY_LITERAL	= 1,
    DBLITERAL_CATALOG_NAME	= 2,
    DBLITERAL_CATALOG_SEPARATOR = 3,
    DBLITERAL_CHAR_LITERAL	= 4,
    DBLITERAL_COLUMN_ALIAS	= 5,
    DBLITERAL_COLUMN_NAME	= 6,
    DBLITERAL_CORRELATION_NAME	= 7,
    DBLITERAL_CURSOR_NAME	= 8,
    DBLITERAL_ESCAPE_PERCENT	= 9,
    DBLITERAL_ESCAPE_UNDERSCORE = 10,
    DBLITERAL_INDEX_NAME	= 11,
    DBLITERAL_LIKE_PERCENT	= 12,
    DBLITERAL_LIKE_UNDERSCORE	= 13,
    DBLITERAL_PROCEDURE_NAME	= 14,
    DBLITERAL_QUOTE = 15,
    DBLITERAL_SCHEMA_NAME	= 16,
    DBLITERAL_TABLE_NAME	= 17,
    DBLITERAL_TEXT_COMMAND	= 18,
    DBLITERAL_USER_NAME = 19,
    DBLITERAL_VIEW_NAME = 20
    }

if( OLEDBVER GE 0x0200 )

DBLITERAL_QUOTE_PREFIX	equ DBLITERAL_QUOTE

.enum DBLITERALENUM20 {
    DBLITERAL_CUBE_NAME = 21,
    DBLITERAL_DIMENSION_NAME	= 22,
    DBLITERAL_HIERARCHY_NAME	= 23,
    DBLITERAL_LEVEL_NAME	= 24,
    DBLITERAL_MEMBER_NAME	= 25,
    DBLITERAL_PROPERTY_NAME = 26,
    DBLITERAL_SCHEMA_SEPARATOR	= 27,
    DBLITERAL_QUOTE_SUFFIX	= 28
    }
endif

if( OLEDBVER GE 0x0210 )

DBLITERAL_ESCAPE_PERCENT_PREFIX equ DBLITERAL_ESCAPE_PERCENT
DBLITERAL_ESCAPE_UNDERSCORE_PREFIX equ DBLITERAL_ESCAPE_UNDERSCORE

.enum DBLITERALENUM21 {
    DBLITERAL_ESCAPE_PERCENT_SUFFIX = 29,
    DBLITERAL_ESCAPE_UNDERSCORE_SUFFIX	= 30
    }
endif

DBLITERALINFO		STRUC
pwszLiteralValue	LPOLESTR ?
pwszInvalidChars	LPOLESTR ?
pwszInvalidStartingChars LPOLESTR ?
_lt			DBLITERAL ?
fSupported		BOOL ?
cchMaxLen		ULONG ?
DBLITERALINFO		ENDS

DEFINE_IIDX(IDBInfo, "0c733a89-2a1c-11ce-ade5-00aa0044773d")

.comdef IDBInfo : public IUnknown

    GetKeywords		proc :ptr
    GetLiteralInfo	proc :ULONG, :ptr, :ptr
   .ends

endif

endif

if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)

ifndef __IDBDataSourceAdmin_INTERFACE_DEFINED__
define __IDBDataSourceAdmin_INTERFACE_DEFINED__

DEFINE_IIDX(IDBDataSourceAdmin, "0c733a7a-2a1c-11ce-ade5-00aa0044773d")

.comdef IDBDataSourceAdmin : public IUnknown

    CreateDataSource	proc :ULONG, :ptr, :ptr, :REFIID, :ptr
    DestroyDataSource	proc
    GetCreationProperties proc :ULONG, :ptr, :ptr, :ptr, :ptr
    ModifyDataSource	proc :ULONG, :ptr
   .ends

endif

endif

if( OLEDBVER GE 0x0150 )

if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)

ifndef __IDBAsynchNotify_INTERFACE_DEFINED__
define __IDBAsynchNotify_INTERFACE_DEFINED__

DEFINE_IIDX(IDBAsynchNotify, "0c733a96-2a1c-11ce-ade5-00aa0044773d")

.comdef IDBAsynchNotify : public IUnknown

    OnLowResource	proc :DB_DWRESERVE
    OnProgress		proc :HCHAPTER, :DBASYNCHOP, :DBCOUNTITEM, :DBCOUNTITEM, :DBASYNCHPHASE, :LPOLESTR
    OnStop		proc :HCHAPTER, :DBASYNCHOP, :HRESULT, :LPOLESTR
   .ends

endif

endif

if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)

ifndef __IDBAsynchStatus_INTERFACE_DEFINED__
define __IDBAsynchStatus_INTERFACE_DEFINED__

DEFINE_IIDX(IDBAsynchStatus, "0c733a95-2a1c-11ce-ade5-00aa0044773d")

.comdef IDBAsynchStatus : public IUnknown

    Abort		proc :HCHAPTER, :DBASYNCHOP
    GetStatus		proc :HCHAPTER, :DBASYNCHOP, :ptr, :ptr, :ptr, :ptr
   .ends

endif

endif

endif
if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)

ifndef __ISessionProperties_INTERFACE_DEFINED__
define __ISessionProperties_INTERFACE_DEFINED__

DEFINE_IIDX(ISessionProperties, "0c733a85-2a1c-11ce-ade5-00aa0044773d")

.comdef ISessionProperties : public IUnknown

    GetProperties	proc :ULONG, :ptr, :ptr, :ptr
    SetProperties	proc :ULONG, :ptr
   .ends

endif

endif

if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)

ifndef __IIndexDefinition_INTERFACE_DEFINED__
define __IIndexDefinition_INTERFACE_DEFINED__

DEFINE_IIDX(IIndexDefinition, "0c733a68-2a1c-11ce-ade5-00aa0044773d")

.comdef IIndexDefinition : public IUnknown

    CreateIndex		proc :ptr, :ptr, :DBORDINAL, :ptr, :ULONG
    DropIndex		proc :ptr, :ptr
   .ends

endif

endif

if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)

ifndef __ITableDefinition_INTERFACE_DEFINED__
define __ITableDefinition_INTERFACE_DEFINED__

DEFINE_IIDX(ITableDefinition, "0c733a86-2a1c-11ce-ade5-00aa0044773d")

.comdef ITableDefinition : public IUnknown

    CreateTable		proc :ptr, :ptr, :DBORDINAL, :ptr, :REFIID, :ULONG, :ptr, :ptr, :ptr
    DropTable		proc :ptr
    AddColumn		proc :ptr, :ptr, :ptr
    DropColumn		proc :ptr, :ptr
   .ends

endif

endif

if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)

ifndef __IOpenRowset_INTERFACE_DEFINED__
define __IOpenRowset_INTERFACE_DEFINED__

DEFINE_IIDX(IOpenRowset, "0c733a69-2a1c-11ce-ade5-00aa0044773d")

.comdef IOpenRowset : public IUnknown

    OpenRowset		proc :ptr, :ptr, :ptr, :REFIID, :ULONG, :ptr, :ptr
   .ends

endif

endif

if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)

ifndef __IDBSchemaRowset_INTERFACE_DEFINED__
define __IDBSchemaRowset_INTERFACE_DEFINED__


CRESTRICTIONS_DBSCHEMA_ASSERTIONS equ 3
CRESTRICTIONS_DBSCHEMA_CATALOGS equ 1
CRESTRICTIONS_DBSCHEMA_CHARACTER_SETS equ 3
CRESTRICTIONS_DBSCHEMA_COLLATIONS equ 3
CRESTRICTIONS_DBSCHEMA_COLUMNS equ 4
CRESTRICTIONS_DBSCHEMA_CHECK_CONSTRAINTS equ 3
CRESTRICTIONS_DBSCHEMA_CONSTRAINT_COLUMN_USAGE equ 4
CRESTRICTIONS_DBSCHEMA_CONSTRAINT_TABLE_USAGE equ 3
CRESTRICTIONS_DBSCHEMA_KEY_COLUMN_USAGE equ 7
CRESTRICTIONS_DBSCHEMA_REFERENTIAL_CONSTRAINTS equ 3
CRESTRICTIONS_DBSCHEMA_TABLE_CONSTRAINTS equ 7
CRESTRICTIONS_DBSCHEMA_COLUMN_DOMAIN_USAGE equ 4
CRESTRICTIONS_DBSCHEMA_INDEXES equ 5
CRESTRICTIONS_DBSCHEMA_OBJECT_ACTIONS equ 1
CRESTRICTIONS_DBSCHEMA_OBJECTS equ 1
CRESTRICTIONS_DBSCHEMA_COLUMN_PRIVILEGES equ 6
CRESTRICTIONS_DBSCHEMA_TABLE_PRIVILEGES equ 5
CRESTRICTIONS_DBSCHEMA_USAGE_PRIVILEGES equ 6
CRESTRICTIONS_DBSCHEMA_PROCEDURES equ 4
CRESTRICTIONS_DBSCHEMA_SCHEMATA equ 3
CRESTRICTIONS_DBSCHEMA_SQL_LANGUAGES equ 0
CRESTRICTIONS_DBSCHEMA_STATISTICS equ 3
CRESTRICTIONS_DBSCHEMA_TABLES equ 4
CRESTRICTIONS_DBSCHEMA_TRANSLATIONS equ 3
CRESTRICTIONS_DBSCHEMA_PROVIDER_TYPES equ 2
CRESTRICTIONS_DBSCHEMA_VIEWS equ 3
CRESTRICTIONS_DBSCHEMA_VIEW_COLUMN_USAGE equ 3
CRESTRICTIONS_DBSCHEMA_VIEW_TABLE_USAGE equ 3
CRESTRICTIONS_DBSCHEMA_PROCEDURE_PARAMETERS equ 4
CRESTRICTIONS_DBSCHEMA_FOREIGN_KEYS equ 6
CRESTRICTIONS_DBSCHEMA_PRIMARY_KEYS equ 3
CRESTRICTIONS_DBSCHEMA_PROCEDURE_COLUMNS equ 4
if( OLEDBVER GE 0x0200 )
CRESTRICTIONS_DBSCHEMA_TABLES_INFO equ 4
CRESTRICTIONS_MDSCHEMA_CUBES equ 3
CRESTRICTIONS_MDSCHEMA_DIMENSIONS equ 5
CRESTRICTIONS_MDSCHEMA_HIERARCHIES equ 6
CRESTRICTIONS_MDSCHEMA_LEVELS equ 7
CRESTRICTIONS_MDSCHEMA_MEASURES equ 5
CRESTRICTIONS_MDSCHEMA_PROPERTIES equ 9
CRESTRICTIONS_MDSCHEMA_MEMBERS equ 12
endif
if( OLEDBVER GE 0x0210 )
CRESTRICTIONS_DBSCHEMA_TRUSTEE equ 4
endif
if( OLEDBVER GE 0x0260 )
CRESTRICTIONS_DBSCHEMA_TABLE_STATISTICS equ 7
CRESTRICTIONS_DBSCHEMA_CHECK_CONSTRAINTS_BY_TABLE equ 6
CRESTRICTIONS_MDSCHEMA_FUNCTIONS equ 4
CRESTRICTIONS_MDSCHEMA_ACTIONS equ 8
CRESTRICTIONS_MDSCHEMA_COMMANDS equ 5
CRESTRICTIONS_MDSCHEMA_SETS equ 5
endif

DEFINE_IIDX(IDBSchemaRowset, "0c733a7b-2a1c-11ce-ade5-00aa0044773d")

.comdef IDBSchemaRowset : public IUnknown

    GetRowset		proc :ptr, :REFGUID, :ULONG, :ptr, :REFIID, :ULONG, :ptr, :ptr
    GetSchemas		proc :ptr, :ptr
   .ends

endif

endif

if( OLEDBVER GE 0x0200 )
if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)

ifndef __IMDDataset_INTERFACE_DEFINED__
define __IMDDataset_INTERFACE_DEFINED__

DEFINE_IIDX(IMDDataset, "a07cccd1-8148-11d0-87bb-00c04fc33942")

.comdef IMDDataset : public IUnknown

    FreeAxisInfo	proc :DBCOUNTITEM, :ptr
    GetAxisInfo		proc :ptr, :ptr
    GetAxisRowset	proc :ptr, :DBCOUNTITEM, :REFIID, :ULONG, :ptr, :ptr
    GetCellData		proc :HACCESSOR, :DBORDINAL, :DBORDINAL, :ptr
    GetSpecification	proc :REFIID, :ptr
   .ends

endif

endif

if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)

ifndef __IMDFind_INTERFACE_DEFINED__
define __IMDFind_INTERFACE_DEFINED__

DEFINE_IIDX(IMDFind, "a07cccd2-8148-11d0-87bb-00c04fc33942")

.comdef IMDFind : public IUnknown

    FindCell		proc :DBORDINAL, :DBCOUNTITEM, :ptr, :ptr
    FindTuple		proc :ULONG, :DBORDINAL, :DBCOUNTITEM, :ptr, :ptr
   .ends

endif

endif

if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)

ifndef __IMDRangeRowset_INTERFACE_DEFINED__
define __IMDRangeRowset_INTERFACE_DEFINED__

DEFINE_IIDX(IMDRangeRowset, "0c733aa0-2a1c-11ce-ade5-00aa0044773d")

.comdef IMDRangeRowset : public IUnknown

    GetRangeRowset	proc :ptr, :DBORDINAL, :DBORDINAL, :REFIID, :ULONG, :ptr, :ptr
   .ends

endif

endif

if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)

ifndef __IAlterTable_INTERFACE_DEFINED__
define __IAlterTable_INTERFACE_DEFINED__

DEFINE_IIDX(IAlterTable, "0c733aa5-2a1c-11ce-ade5-00aa0044773d")

.comdef IAlterTable : public IUnknown

    AlterColumn		proc :ptr, :ptr, :DBCOLUMNDESCFLAGS, :ptr
    AlterTable		proc :ptr, :ptr, :ULONG, :ptr
   .ends

endif

endif

if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)

ifndef __IAlterIndex_INTERFACE_DEFINED__
define __IAlterIndex_INTERFACE_DEFINED__

DEFINE_IIDX(IAlterIndex, "0c733aa6-2a1c-11ce-ade5-00aa0044773d")

.comdef IAlterIndex : public IUnknown

    AlterIndex		proc :ptr, :ptr, :ptr, :ULONG, :ptr
   .ends

endif

endif

if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)

ifndef __IRowsetChapterMember_INTERFACE_DEFINED__
define __IRowsetChapterMember_INTERFACE_DEFINED__

DEFINE_IIDX(IRowsetChapterMember, "0c733aa8-2a1c-11ce-ade5-00aa0044773d")

.comdef IRowsetChapterMember : public IUnknown

    IsRowInChapter	proc :HCHAPTER, :HROW
   .ends

endif

endif

if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)

ifndef __ICommandPersist_INTERFACE_DEFINED__
define __ICommandPersist_INTERFACE_DEFINED__

DEFINE_IIDX(ICommandPersist, "0c733aa7-2a1c-11ce-ade5-00aa0044773d")

.comdef ICommandPersist : public IUnknown

    DeleteCommand	proc :ptr
    GetCurrentCommand	proc :ptr
    LoadCommand		proc :ptr, :DWORD
    SaveCommand		proc :ptr, :DWORD
   .ends

endif

endif

if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)

ifndef __IRowsetRefresh_INTERFACE_DEFINED__
define __IRowsetRefresh_INTERFACE_DEFINED__

DEFINE_IIDX(IRowsetRefresh, "0c733aa9-2a1c-11ce-ade5-00aa0044773d")

.comdef IRowsetRefresh : public IUnknown

    RefreshVisibleData	proc :HCHAPTER, :DBCOUNTITEM, :ptr, :BOOL, :ptr, :ptr, :ptr
    GetLastVisibleData	proc :HROW, :HACCESSOR, :ptr
   .ends

endif

endif

if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)

ifndef __IParentRowset_INTERFACE_DEFINED__
define __IParentRowset_INTERFACE_DEFINED__

DEFINE_IIDX(IParentRowset, "0c733aaa-2a1c-11ce-ade5-00aa0044773d")

.comdef IParentRowset : public IUnknown

    GetChildRowset	proc :ptr, :DBORDINAL, :REFIID, :ptr
   .ends

endif

endif

endif
if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)

ifndef __IErrorRecords_INTERFACE_DEFINED__
define __IErrorRecords_INTERFACE_DEFINED__

IDENTIFIER_SDK_MASK	equ 0xF0000000
IDENTIFIER_SDK_ERROR	equ 0x10000000
ERRORINFO		STRUC
hrError			HRESULT ?
dwMinor			dd ?
clsid			CLSID <>
iid			IID <>
dispid			DISPID ?
ERRORINFO		ENDS

DEFINE_IIDX(IErrorRecords, "0c733a67-2a1c-11ce-ade5-00aa0044773d")

.comdef IErrorRecords : public IUnknown

    AddErrorRecord	proc :ptr, :DWORD, :ptr, :ptr, :DWORD
    GetBasicErrorInfo	proc :ULONG, :ptr
    GetCustomErrorObject proc :ULONG, :REFIID, :ptr
    GetErrorInfo	proc :ULONG, :LCID, :ptr
    GetErrorParameters	proc :ULONG, :ptr
    GetRecordCount	proc :ptr
   .ends

endif

endif

if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)

ifndef __IErrorLookup_INTERFACE_DEFINED__
define __IErrorLookup_INTERFACE_DEFINED__

DEFINE_IIDX(IErrorLookup, "0c733a66-2a1c-11ce-ade5-00aa0044773d")

.comdef IErrorLookup : public IUnknown

    GetErrorDescription proc :HRESULT, :DWORD, :ptr, :LCID, :ptr, :ptr
    GetHelpInfo		proc :HRESULT, :DWORD, :LCID, :ptr, :ptr
    ReleaseErrors	proc :DWORD
   .ends

endif

endif

if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)

ifndef __ISQLErrorInfo_INTERFACE_DEFINED__
define __ISQLErrorInfo_INTERFACE_DEFINED__

DEFINE_IIDX(ISQLErrorInfo, "0c733a74-2a1c-11ce-ade5-00aa0044773d")

.comdef ISQLErrorInfo : public IUnknown

    GetSQLInfo		proc :ptr, :ptr
   .ends

endif

endif

if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)

ifndef __IGetDataSource_INTERFACE_DEFINED__
define __IGetDataSource_INTERFACE_DEFINED__

DEFINE_IIDX(IGetDataSource, "0c733a75-2a1c-11ce-ade5-00aa0044773d")

.comdef IGetDataSource : public IUnknown

    GetDataSource	proc :REFIID, :ptr
   .ends

endif

endif

if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)

ifndef __ITransactionLocal_INTERFACE_DEFINED__
define __ITransactionLocal_INTERFACE_DEFINED__

DEFINE_IIDX(ITransactionLocal, "0c733a5f-2a1c-11ce-ade5-00aa0044773d")

.comdef ITransactionLocal : public ITransaction

    GetOptionsObject	proc :ptr
    StartTransaction	proc :ISOLEVEL, :ULONG, :ptr, :ptr
   .ends

endif

endif

if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)

ifndef __ITransactionJoin_INTERFACE_DEFINED__
define __ITransactionJoin_INTERFACE_DEFINED__

DEFINE_IIDX(ITransactionJoin, "0c733a5e-2a1c-11ce-ade5-00aa0044773d")

.comdef ITransactionJoin : public IUnknown

    GetOptionsObject	proc :ptr
    JoinTransaction	proc :ptr, :ISOLEVEL, :ULONG, :ptr
   .ends

endif

endif

if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)

ifndef __ITransactionObject_INTERFACE_DEFINED__
define __ITransactionObject_INTERFACE_DEFINED__

DEFINE_IIDX(ITransactionObject, "0c733a60-2a1c-11ce-ade5-00aa0044773d")

.comdef ITransactionObject : public IUnknown

    GetTransactionObject proc :ULONG, :ptr
   .ends

endif

endif

if( OLEDBVER GE 0x0210 )
ifndef UNDER_CE

if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)

if 0
else
include accctrl.inc
endif

ifndef __ITrusteeAdmin_INTERFACE_DEFINED__
define __ITrusteeAdmin_INTERFACE_DEFINED__

DEFINE_IIDX(ITrusteeAdmin, "0c733aa1-2a1c-11ce-ade5-00aa0044773d")

.comdef ITrusteeAdmin : public IUnknown

    CompareTrustees	proc :ptr, :ptr
    CreateTrustee	proc :ptr, :ULONG, :ptr
    DeleteTrustee	proc :ptr
    SetTrusteeProperties proc :ptr, :ULONG, :ptr
    GetTrusteeProperties proc :ptr, :ULONG, :ptr, :ptr, :ptr
   .ends

endif

endif

if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)

ifndef __ITrusteeGroupAdmin_INTERFACE_DEFINED__
define __ITrusteeGroupAdmin_INTERFACE_DEFINED__

DEFINE_IIDX(ITrusteeGroupAdmin, "0c733aa2-2a1c-11ce-ade5-00aa0044773d")

.comdef ITrusteeGroupAdmin : public IUnknown

    AddMember		proc :ptr, :ptr
    DeleteMember	proc :ptr, :ptr
    IsMember		proc :ptr, :ptr, :ptr
    GetMembers		proc :ptr, :ptr, :ptr
    GetMemberships	proc :ptr, :ptr, :ptr
   .ends

endif

endif

if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)

ifndef __IObjectAccessControl_INTERFACE_DEFINED__
define __IObjectAccessControl_INTERFACE_DEFINED__

DEFINE_IIDX(IObjectAccessControl, "0c733aa3-2a1c-11ce-ade5-00aa0044773d")

.comdef IObjectAccessControl : public IUnknown

    GetObjectAccessRights proc :ptr, :ptr, :ptr
    GetObjectOwner	proc :ptr, :ptr
    IsObjectAccessAllowed proc :ptr, :ptr, :ptr
    SetObjectAccessRights proc :ptr, :ULONG, :ptr
    SetObjectOwner	proc :ptr, :ptr
   .ends

endif

endif

if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)

ifndef __ISecurityInfo_INTERFACE_DEFINED__
define __ISecurityInfo_INTERFACE_DEFINED__

if( OLEDBVER GE 0x0210 )
ACCESS_MASK typedef DWORD


.enum ACCESS_MASKENUM {
    PERM_EXCLUSIVE	= 0x200,
    PERM_READDESIGN	= 0x400,
    PERM_WRITEDESIGN	= 0x800,
    PERM_WITHGRANT	= 0x1000,
    PERM_REFERENCE	= 0x2000,
    PERM_CREATE		= 0x4000,
    PERM_INSERT		= 0x8000,
    PERM_DELETE		= 0x10000,
    PERM_READCONTROL	= 0x20000,
    PERM_WRITEPERMISSIONS = 0x40000,
    PERM_WRITEOWNER	= 0x80000,
    PERM_MAXIMUM_ALLOWED= 0x2000000,
    PERM_ALL		= 0x10000000,
    PERM_EXECUTE	= 0x20000000,
    PERM_READ		= 0x80000000,
    PERM_UPDATE		= 0x40000000,
    PERM_DROP		= 0x100
    }
PERM_DESIGN		equ PERM_WRITEDESIGN
endif

DEFINE_IIDX(ISecurityInfo, "0c733aa4-2a1c-11ce-ade5-00aa0044773d")

.comdef ISecurityInfo : public IUnknown

    GetCurrentTrustee	proc :ptr
    GetObjectTypes	proc :ptr, :ptr
    GetPermissions	proc :GUID, :ptr
   .ends

endif

endif

endif

if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)

ifndef __ITableCreation_INTERFACE_DEFINED__
define __ITableCreation_INTERFACE_DEFINED__

DEFINE_IIDX(ITableCreation, "0c733abc-2a1c-11ce-ade5-00aa0044773d")

.comdef ITableCreation : public ITableDefinition

    GetTableDefinition	proc :ptr, :ptr, :ptr, :ptr, :ptr, :ptr, :ptr, :ptr
   .ends

endif

ifndef __ITableDefinitionWithConstraints_INTERFACE_DEFINED__
define __ITableDefinitionWithConstraints_INTERFACE_DEFINED__

DEFINE_IIDX(ITableDefinitionWithConstraints, "0c733aab-2a1c-11ce-ade5-00aa0044773d")

.comdef ITableDefinitionWithConstraints : public ITableCreation

    AddConstraint	proc :ptr, :ptr
    CreateTableWithConstraints proc :ptr, :ptr, :DBORDINAL, :ptr, :ULONG, :ptr, :REFIID, :ULONG, :ptr, :ptr, :ptr
    DropConstraint	proc :ptr, :ptr
   .ends

endif

endif

ifndef UNDER_CE

if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)

ifndef __IRow_INTERFACE_DEFINED__
define __IRow_INTERFACE_DEFINED__

DEFINE_IIDX(IRow, "0c733ab4-2a1c-11ce-ade5-00aa0044773d")

.comdef IRow : public IUnknown

    GetColumns		proc :DBORDINAL, :ptr
    GetSourceRowset	proc :REFIID, :ptr, :ptr
    Open		proc :ptr, :ptr, :REFGUID, :DWORD, :REFIID, :ptr
   .ends

endif

endif

if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)

ifndef __IRowChange_INTERFACE_DEFINED__
define __IRowChange_INTERFACE_DEFINED__

DEFINE_IIDX(IRowChange, "0c733ab5-2a1c-11ce-ade5-00aa0044773d")

.comdef IRowChange : public IUnknown

    SetColumns		proc :DBORDINAL, :ptr
   .ends

endif

endif

if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)

ifndef __IRowSchemaChange_INTERFACE_DEFINED__
define __IRowSchemaChange_INTERFACE_DEFINED__

DEFINE_IIDX(IRowSchemaChange, "0c733aae-2a1c-11ce-ade5-00aa0044773d")

.comdef IRowSchemaChange : public IRowChange

    DeleteColumns	proc :DBORDINAL, :ptr, :ptr
    AddColumns		proc :DBORDINAL, :ptr, :ptr
   .ends

endif

endif

if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)

ifndef __IGetRow_INTERFACE_DEFINED__
define __IGetRow_INTERFACE_DEFINED__

DEFINE_IIDX(IGetRow, "0c733aaf-2a1c-11ce-ade5-00aa0044773d")

.comdef IGetRow : public IUnknown

    GetRowFromHROW	proc :ptr, :HROW, :REFIID, :ptr
    GetURLFromHROW	proc :HROW, :ptr
   .ends

endif

endif

if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)

ifndef __IBindResource_INTERFACE_DEFINED__
define __IBindResource_INTERFACE_DEFINED__

DEFINE_IIDX(IBindResource, "0c733ab1-2a1c-11ce-ade5-00aa0044773d")

.comdef IBindResource : public IUnknown

    Bind		proc :ptr, :LPCOLESTR, :DBBINDURLFLAG, :REFGUID, :REFIID, :ptr, :ptr, :ptr, :ptr
   .ends

endif

ifndef __IScopedOperations_INTERFACE_DEFINED__
define __IScopedOperations_INTERFACE_DEFINED__

DBCOPYFLAGS typedef DWORD

.enum DBCOPYFLAGSENUM {
    DBCOPY_ASYNC		= 0x100,
    DBCOPY_REPLACE_EXISTING	= 0x200,
    DBCOPY_ALLOW_EMULATION	= 0x400,
    DBCOPY_NON_RECURSIVE	= 0x800,
    DBCOPY_ATOMIC		= 0x1000
    }
DBMOVEFLAGS typedef DWORD


.enum DBMOVEFLAGSENUM {
    DBMOVE_REPLACE_EXISTING	= 0x1,
    DBMOVE_ASYNC		= 0x100,
    DBMOVE_DONT_UPDATE_LINKS	= 0x200,
    DBMOVE_ALLOW_EMULATION	= 0x400,
    DBMOVE_ATOMIC		= 0x1000
    }
DBDELETEFLAGS typedef DWORD


.enum DBDELETEFLAGSENUM {
    DBDELETE_ASYNC	= 0x100,
    DBDELETE_ATOMIC	= 0x1000
    }

DEFINE_IIDX(IScopedOperations, "0c733ab0-2a1c-11ce-ade5-00aa0044773d")

.comdef IScopedOperations : public IBindResource

    Copy		proc :DBCOUNTITEM, :ptr, :ptr, :DWORD, :ptr, :ptr, :ptr, :ptr
    Move		proc :DBCOUNTITEM, :ptr, :ptr, :DWORD, :ptr, :ptr, :ptr, :ptr
    Delete		proc :DBCOUNTITEM, :ptr, :DWORD, :ptr
    OpenRowset		proc :ptr, :ptr, :ptr, :REFIID, :ULONG
   .ends

endif

endif

if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)

ifndef __ICreateRow_INTERFACE_DEFINED__
define __ICreateRow_INTERFACE_DEFINED__

DEFINE_IIDX(ICreateRow, "0c733ab2-2a1c-11ce-ade5-00aa0044773d")

.comdef ICreateRow : public IUnknown

    CreateRow		proc :ptr, :LPCOLESTR, :DBBINDURLFLAG, :REFGUID, :REFIID, :ptr, :ptr, :ptr, :ptr, :ptr
   .ends

endif

endif

if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)

ifndef __IDBBinderProperties_INTERFACE_DEFINED__
define __IDBBinderProperties_INTERFACE_DEFINED__

DEFINE_IIDX(IDBBinderProperties, "0c733ab3-2a1c-11ce-ade5-00aa0044773d")

.comdef IDBBinderProperties : public IDBProperties

    Reset		proc
   .ends

endif

endif

if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)

ifndef __IColumnsInfo2_INTERFACE_DEFINED__
define __IColumnsInfo2_INTERFACE_DEFINED__

DEFINE_IIDX(IColumnsInfo2, "0c733ab8-2a1c-11ce-ade5-00aa0044773d")

.comdef IColumnsInfo2 : public IColumnsInfo

    GetRestrictedColumnInfo proc :DBORDINAL, :ptr, :DWORD, :ptr, :ptr, :ptr
   .ends

endif

endif

if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)

ifndef __IRegisterProvider_INTERFACE_DEFINED__
define __IRegisterProvider_INTERFACE_DEFINED__

DEFINE_IIDX(IRegisterProvider, "0c733ab9-2a1c-11ce-ade5-00aa0044773d")

.comdef IRegisterProvider : public IUnknown

    GetURLMapping	proc :LPCOLESTR, :DB_DWRESERVE, :ptr
    SetURLMapping	proc :LPCOLESTR, :DB_DWRESERVE, :REFCLSID
    UnregisterProvider	proc :LPCOLESTR, :DB_DWRESERVE, :REFCLSID
   .ends

endif

endif

endif

if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)

ifndef __IGetSession_INTERFACE_DEFINED__
define __IGetSession_INTERFACE_DEFINED__

DEFINE_IIDX(IGetSession, "0c733aba-2a1c-11ce-ade5-00aa0044773d")

.comdef IGetSession : public IUnknown

    GetSession		proc :REFIID, :ptr
   .ends

endif

endif

if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)

ifndef __IGetSourceRow_INTERFACE_DEFINED__
define __IGetSourceRow_INTERFACE_DEFINED__

DEFINE_IIDX(IGetSourceRow, "0c733abb-2a1c-11ce-ade5-00aa0044773d")

.comdef IGetSourceRow : public IUnknown

    GetSourceRow	proc :REFIID, :ptr
   .ends

endif

endif

if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)

ifndef __IRowsetCurrentIndex_INTERFACE_DEFINED__
define __IRowsetCurrentIndex_INTERFACE_DEFINED__

DEFINE_IIDX(IRowsetCurrentIndex, "0c733abd-2a1c-11ce-ade5-00aa0044773d")

.comdef IRowsetCurrentIndex : public IRowsetIndex

    GetIndex		proc :ptr
    SetIndex		proc :ptr
   .ends

endif

endif

endif
if( OLEDBVER GE 0x0260 )

if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)

ifndef __ICommandStream_INTERFACE_DEFINED__
define __ICommandStream_INTERFACE_DEFINED__

DEFINE_IIDX(ICommandStream, "0c733abf-2a1c-11ce-ade5-00aa0044773d")

.comdef ICommandStream : public IUnknown

    GetCommandStream	proc :ptr, :ptr, :ptr
    SetCommandStream	proc :REFIID, :REFGUID, :ptr
   .ends

endif

endif

if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)

ifndef __IRowsetBookmark_INTERFACE_DEFINED__
define __IRowsetBookmark_INTERFACE_DEFINED__

DEFINE_IIDX(IRowsetBookmark, "0c733ac2-2a1c-11ce-ade5-00aa0044773d")

.comdef IRowsetBookmark : public IUnknown

    PositionOnBookmark	proc :HCHAPTER, :DBBKMARK, :ptr
   .ends

endif

endif

endif

endif

.pragma pack(pop)


ifdef OLEDBPROXY

BSTR_UserSize proto WINAPI :ptr, :dword, :ptr
BSTR_UserMarshal proto WINAPI :ptr, :ptr, :ptr
BSTR_UserUnmarshal proto WINAPI :ptr, :ptr, :ptr
BSTR_UserFree proto WINAPI :ptr, :ptr

LPSAFEARRAY_UserSize proto WINAPI :ptr, :dword, :ptr
LPSAFEARRAY_UserMarshal proto WINAPI :ptr, :ptr, :ptr
LPSAFEARRAY_UserUnmarshal proto WINAPI :ptr, :ptr, :ptr
LPSAFEARRAY_UserFree proto WINAPI :ptr, :ptr

VARIANT_UserSize proto WINAPI :ptr, :dword, :ptr
VARIANT_UserMarshal proto WINAPI :ptr, :ptr, :ptr
VARIANT_UserUnmarshal proto WINAPI :ptr, :ptr, :ptr
VARIANT_UserFree proto WINAPI :ptr, :ptr

BSTR_UserSize64 proto WINAPI :ptr, :dword, :ptr
BSTR_UserMarshal64 proto WINAPI :ptr, :ptr, :ptr
BSTR_UserUnmarshal64 proto WINAPI :ptr, :ptr, :ptr
BSTR_UserFree64 proto WINAPI :ptr, :ptr

LPSAFEARRAY_UserSize64 proto WINAPI :ptr, :dword, :ptr
LPSAFEARRAY_UserMarshal64 proto WINAPI :ptr, :ptr, :ptr
LPSAFEARRAY_UserUnmarshal64 proto WINAPI :ptr, :ptr, :ptr
LPSAFEARRAY_UserFree64 proto WINAPI :ptr, :ptr

VARIANT_UserSize64 proto WINAPI :ptr, :dword, :ptr
VARIANT_UserMarshal64 proto WINAPI :ptr, :ptr, :ptr
VARIANT_UserUnmarshal64 proto WINAPI :ptr, :ptr, :ptr
VARIANT_UserFree64 proto WINAPI :ptr, :ptr

endif

endif
.pragma list(pop)
