' ########################################################################################
' Microsoft Windows
' File: oledb.inc
' Copyright (c) 2011 Jos? Roca
' Portions Copyright (c) Microsoft Corporation.
' All Rights Reserved.
' THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER
' EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
' MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE.
' ########################################################################################
#IF NOT %DEF(PBX_oledb_PBI)
#DEFINE PBX_oledb_PBI
%EQUATE `OLEDB_INC = 1
'/* header files for imported files */
#INCLUDE ONCE "Legacy/System/transact.inc"
#INCLUDE ONCE "Legacy/COM/oledbguid.inc"
#INCLUDE ONCE "Legacy/UI/AccCtrl.inc"
'#ifdef _WIN64
'#include <pshpack8.h> // 8-byte structure packing
'#else
'#include <pshpack2.h> // 2-byte structure packing
'#endif
'//
'// OLEDBVER
'// OLE DB version number is 2.7 (0x0270); to force a particular version,
'// #define OLEDBVER as required before including this file.
'//
'// If OLEDBVER is not defined, assume version 2.7
#IF NOT %DEF(%OLEDBVER)
 %OLEDBVER = &H0270
#ENDIF
'// Length of a non-character object, size
'typedef ULONG DBLENGTH;
'// Offset within a rowset
'typedef LONG DBROWOFFSET;
'// Number of rows
'typedef LONG DBROWCOUNT;
'typedef ULONG DBCOUNTITEM;
'// Ordinal (column number, etc.)
'typedef ULONG DBORDINAL;
'typedef LONG DB_LORDINAL;
'// Bookmarks
'typedef ULONG DBBKMARK;
'// Offset in the buffer
'typedef ULONG DBBYTEOFFSET;
'// Reference count of each row handle
'typedef ULONG DBREFCOUNT;
'// Parameters
'typedef ULONG DB_UPARAMS;
'typedef LONG DB_LPARAMS;
'// hash values corresponding to the elements (bookmarks)
'typedef DWORD DBHASHVALUE;
'// For reserve
'typedef DWORD DB_DWRESERVE;
'typedef LONG DB_LRESERVE;
'typedef ULONG DB_URESERVE;
#IF NOT %DEF(%DBStructureDefinitions_INTERFACE_DEFINED)
%EQUATE `DBStructureDefinitions_INTERFACE_DEFINED = 1
' // Size = 19 bytes
TYPE DB_NUMERIC BYTE
 precision AS BYTE ' BYTE[1]
 scale AS BYTE ' BYTE[1]
 sign AS BYTE ' BYTE[1]
' val(15) AS BYTE ' BYTE[16]
 val AS STRING * 16
END TYPE
'typedef hyper LONGLONG;
'typedef MIDL_uhyper ULONGLONG;
' // Size = 8 bytes
TYPE DBVECTOR DWORD
 size AS DWORD ' DBLENGTH
 ptr AS DWORD ' void *ptr
END TYPE
' // Size = 6 bytes
TYPE DBDATE WORD
 year AS INTEGER ' SHORT
 month AS WORD ' USHORT
 day AS WORD ' USHORT
END TYPE
' // Size = 6 bytes
TYPE DBTIME WORD
 hour AS WORD ' USHORT
 minute AS WORD ' USHORT
 second AS WORD ' USHORT
END TYPE
' // Size = 16 bytes
TYPE DBTIMESTAMP WORD
 year AS INTEGER ' SHORT
 month AS WORD ' USHORT
 day AS WORD ' USHORT
 hour AS WORD ' USHORT
 minute AS WORD ' USHORT
 second AS WORD ' USHORT
 fraction AS DWORD ' ULONG
END TYPE
'typedef signed char SBYTE;
' // Size = 4 bytes
TYPE DB_VARNUMERIC BYTE
 precision AS BYTE ' BYTE
 scale AS BYTE ' SBYTE
 sign AS BYTE ' BYTE
 val(0) AS BYTE ' Variable-length array
END TYPE
' // Size = 40 bytes
TYPE SEC_OBJECT_ELEMENT DWORD
 guidObjectType AS GUID
 ObjectID AS DBID
END TYPE
' // Size = 8 bytes
TYPE SEC_OBJECT DWORD
 cObjects AS DWORD
 prgObjects AS SEC_OBJECT_ELEMENT PTR ' SEC_OBJECT_ELEMENT *prgObjects [array]
END TYPE
' // Size = 12 bytes
TYPE DBIMPLICITSESSION DWORD
 pUnkOuter AS DWORD PTR ' IUnknown *
 piid AS GUID PTR ' IID *
 pSession AS DWORD PTR ' IUnknown *
END TYPE
'typedef WORD DBTYPE;
' DBTYPEENUM
%EQUATE `DBTYPE_EMPTY = 0
%EQUATE `DBTYPE_NULL = 1
%EQUATE `DBTYPE_I2 = 2
%EQUATE `DBTYPE_I4 = 3
%EQUATE `DBTYPE_R4 = 4
%EQUATE `DBTYPE_R8 = 5
%EQUATE `DBTYPE_CY = 6
%EQUATE `DBTYPE_DATE = 7
%EQUATE `DBTYPE_BSTR = 8
%EQUATE `DBTYPE_IDISPATCH = 9
%EQUATE `DBTYPE_ERROR = 10
%EQUATE `DBTYPE_BOOL = 11
%EQUATE `DBTYPE_VARIANT = 12
%EQUATE `DBTYPE_IUNKNOWN = 13
%EQUATE `DBTYPE_DECIMAL = 14
%EQUATE `DBTYPE_UI1 = 17
%EQUATE `DBTYPE_ARRAY = &H2000
%EQUATE `DBTYPE_BYREF = &H4000
%EQUATE `DBTYPE_I1 = 16
%EQUATE `DBTYPE_UI2 = 18
%EQUATE `DBTYPE_UI4 = 19
%EQUATE `DBTYPE_I8 = 20
%EQUATE `DBTYPE_UI8 = 21
%EQUATE `DBTYPE_GUID = 72
%EQUATE `DBTYPE_VECTOR = &H1000
%EQUATE `DBTYPE_RESERVED = &H8000
%EQUATE `DBTYPE_BYTES = 128
%EQUATE `DBTYPE_STR = 129
%EQUATE `DBTYPE_WSTR = 130
%EQUATE `DBTYPE_NUMERIC = 131
%EQUATE `DBTYPE_UDT = 132
%EQUATE `DBTYPE_DBDATE = 133
%EQUATE `DBTYPE_DBTIME = 134
%EQUATE `DBTYPE_DBTIMESTAMP = 135
'// Introduce some new DBTYPTE value to support 64bits ColumnsRowset
%EQUATE `DBTYPEFOR_DBLENGTH = %DBTYPE_UI4
%EQUATE `DBTYPEFOR_DBROWCOUNT = %DBTYPE_I4
%EQUATE `DBTYPEFOR_DBORDINAL = %DBTYPE_UI4
' DBTYPEENUM15
%EQUATE `DBTYPE_HCHAPTER = 136
' DBTYPEENUM20
%EQUATE `DBTYPE_FILETIME = 64
%EQUATE `DBTYPE_DBFILETIME = 137
%EQUATE `DBTYPE_PROPVARIANT = 138
%EQUATE `DBTYPE_VARNUMERIC = 139
'typedef DWORD DBPART;
' DBPARTENUM
%EQUATE `DBPART_INVALID = 0
%EQUATE `DBPART_VALUE = &H1
%EQUATE `DBPART_LENGTH = &H2
%EQUATE `DBPART_STATUS = &H4
'typedef DWORD DBPARAMIO;
' DBPARAMIOENUM
%EQUATE `DBPARAMIO_NOTPARAM = 0
%EQUATE `DBPARAMIO_INPUT = &H1
%EQUATE `DBPARAMIO_OUTPUT = &H2
'typedef DWORD DBBINDFLAG;
' DBBINDFLAGENUM
%EQUATE `DBBINDFLAG_HTML = &H1
'typedef DWORD DBMEMOWNER;
' DBMEMOWNERENUM
%EQUATE `DBMEMOWNER_CLIENTOWNED = 0
%EQUATE `DBMEMOWNER_PROVIDEROWNED = &H1
' // Size = 20 bytes
TYPE DBOBJECT DWORD
 dwFlags AS DWORD
 iid AS GUID ' IID
END TYPE
'typedef DWORD DBSTATUS;
' DBSTATUSENUM
%EQUATE `DBSTATUS_S_OK = 0
%EQUATE `DBSTATUS_E_BADACCESSOR = 1
%EQUATE `DBSTATUS_E_CANTCONVERTVALUE = 2
%EQUATE `DBSTATUS_S_ISNULL = 3
%EQUATE `DBSTATUS_S_TRUNCATED = 4
%EQUATE `DBSTATUS_E_SIGNMISMATCH = 5
%EQUATE `DBSTATUS_E_DATAOVERFLOW = 6
%EQUATE `DBSTATUS_E_CANTCREATE = 7
%EQUATE `DBSTATUS_E_UNAVAILABLE = 8
%EQUATE `DBSTATUS_E_PERMISSIONDENIED = 9
%EQUATE `DBSTATUS_E_INTEGRITYVIOLATION = 10
%EQUATE `DBSTATUS_E_SCHEMAVIOLATION = 11
%EQUATE `DBSTATUS_E_BADSTATUS = 12
%EQUATE `DBSTATUS_S_DEFAULT = 13
' DBSTATUSENUM20
%EQUATE `MDSTATUS_S_CELLEMPTY = 14
%EQUATE `DBSTATUS_S_IGNORE = 15
' DBSTATUSENUM21
%EQUATE `DBSTATUS_E_DOESNOTEXIST = 16
%EQUATE `DBSTATUS_E_INVALIDURL = 17
%EQUATE `DBSTATUS_E_RESOURCELOCKED = 18
%EQUATE `DBSTATUS_E_RESOURCEEXISTS = 19
%EQUATE `DBSTATUS_E_CANNOTCOMPLETE = 20
%EQUATE `DBSTATUS_E_VOLUMENOTFOUND = 21
%EQUATE `DBSTATUS_E_OUTOFSPACE = 22
%EQUATE `DBSTATUS_S_CANNOTDELETESOURCE = 23
%EQUATE `DBSTATUS_E_READONLY = 24
%EQUATE `DBSTATUS_E_RESOURCEOUTOFSCOPE = 25
%EQUATE `DBSTATUS_S_ALREADYEXISTS = 26
'typedef DWORD DBBINDURLFLAG;
' DBBINDURLFLAGENUM
%EQUATE `DBBINDURLFLAG_READ = &H1
%EQUATE `DBBINDURLFLAG_WRITE = &H2
%EQUATE `DBBINDURLFLAG_READWRITE = &H3
%EQUATE `DBBINDURLFLAG_SHARE_DENY_READ = &H4
%EQUATE `DBBINDURLFLAG_SHARE_DENY_WRITE = &H8
%EQUATE `DBBINDURLFLAG_SHARE_EXCLUSIVE = &Hc
%EQUATE `DBBINDURLFLAG_SHARE_DENY_NONE = &H10
%EQUATE `DBBINDURLFLAG_ASYNCHRONOUS = &H1000
%EQUATE `DBBINDURLFLAG_COLLECTION = &H2000
%EQUATE `DBBINDURLFLAG_DELAYFETCHSTREAM = &H4000
%EQUATE `DBBINDURLFLAG_DELAYFETCHCOLUMNS = &H8000
%EQUATE `DBBINDURLFLAG_RECURSIVE = &H400000
%EQUATE `DBBINDURLFLAG_OUTPUT = &H800000
%EQUATE `DBBINDURLFLAG_WAITFORINIT = &H1000000
%EQUATE `DBBINDURLFLAG_OPENIFEXISTS = &H2000000
%EQUATE `DBBINDURLFLAG_OVERWRITE = &H4000000
%EQUATE `DBBINDURLFLAG_ISSTRUCTUREDDOCUMENT = &H8000000
'typedef DWORD DBBINDURLSTATUS;
' DBBINDURLSTATUSENUM
%EQUATE `DBBINDURLSTATUS_S_OK = 0
%EQUATE `DBBINDURLSTATUS_S_DENYNOTSUPPORTED = &H1
%EQUATE `DBBINDURLSTATUS_S_DENYTYPENOTSUPPORTED = &H4
%EQUATE `DBBINDURLSTATUS_S_REDIRECTED = &H8
' DBSTATUSENUM25
%EQUATE `DBSTATUS_E_CANCELED = 27
%EQUATE `DBSTATUS_E_NOTCOLLECTION = 28
' // Size = 8 bytes
TYPE DBBINDEXT DWORD
 pExtension AS BYTE PTR ' BYTE *
 ulExtension AS DWORD ' DBCOUNTITEM
END TYPE
' // Size = 52 bytes
TYPE DBBINDING BYTE
 iOrdinal AS DWORD ' DBORDINAL
 obValue AS DWORD ' DBBYTEOFFSET
 obLength AS DWORD ' DBBYTEOFFSET
 obStatus AS DWORD ' DBBYTEOFFSET
 pTypeInfo AS DWORD ' ITypeInfo *
 pObject AS DBOBJECT PTR ' DBOBJECT *
 pBindExt AS DBBINDEXT PTR ' DBBINDEXT *
 dwPart AS DWORD ' DBPART
 dwMemOwner AS DWORD ' DBMEMOWNER
 eParamIO AS DWORD ' DBPARAMIO
 cbMaxLen AS DWORD ' DBLENGTH
 dwFlags AS DWORD
 wType AS WORD ' DBTYPE
 bPrecision AS BYTE
 bScale AS BYTE
END TYPE
'typedef DWORD DBROWSTATUS;
' DBROWSTATUSENUM
%EQUATE `DBROWSTATUS_S_OK = 0
%EQUATE `DBROWSTATUS_S_MULTIPLECHANGES = 2
%EQUATE `DBROWSTATUS_S_PENDINGCHANGES = 3
%EQUATE `DBROWSTATUS_E_CANCELED = 4
%EQUATE `DBROWSTATUS_E_CANTRELEASE = 6
%EQUATE `DBROWSTATUS_E_CONCURRENCYVIOLATION = 7
%EQUATE `DBROWSTATUS_E_DELETED = 8
%EQUATE `DBROWSTATUS_E_PENDINGINSERT = 9
%EQUATE `DBROWSTATUS_E_NEWLYINSERTED = 10
%EQUATE `DBROWSTATUS_E_INTEGRITYVIOLATION = 11
%EQUATE `DBROWSTATUS_E_INVALID = 12
%EQUATE `DBROWSTATUS_E_MAXPENDCHANGESEXCEEDED = 13
%EQUATE `DBROWSTATUS_E_OBJECTOPEN = 14
%EQUATE `DBROWSTATUS_E_OUTOFMEMORY = 15
%EQUATE `DBROWSTATUS_E_PERMISSIONDENIED = 16
%EQUATE `DBROWSTATUS_E_LIMITREACHED = 17
%EQUATE `DBROWSTATUS_E_SCHEMAVIOLATION = 18
%EQUATE `DBROWSTATUS_E_FAIL = 19
' DBROWSTATUSENUM20
%EQUATE `DBROWSTATUS_S_NOCHANGE = 20
' DBSTATUSENUM26
%EQUATE `DBSTATUS_S_ROWSETCOLUMN = 29
'typedef ULONG_PTR HACCESSOR;
%EQUATE `DB_NULL_HACCESSOR = &H0 ' // deprecated; use DB_INVALID_HACCESSOR instead
%EQUATE `DB_INVALID_HACCESSOR = &H0
'typedef ULONG_PTR HROW;
%EQUATE `DB_NULL_HROW = &H0
'typedef ULONG_PTR HWATCHREGION;
%EQUATE `DBWATCHREGION_NULL = 0
'typedef ULONG_PTR HCHAPTER;
%EQUATE `DB_NULL_HCHAPTER = &H0
%EQUATE `DB_INVALID_HCHAPTER = &H0 ' // deprecated; use DB_NULL_HCHAPTER instead
' // Size = 12 bytes
TYPE DBFAILUREINFO DWORD
 hRow AS DWORD ' HROW
 iColumn AS DWORD ' DBORDINAL
 failure AS DWORD
END TYPE
'typedef DWORD DBCOLUMNFLAGS;
' DBCOLUMNFLAGSENUM
%EQUATE `DBCOLUMNFLAGS_ISBOOKMARK = &H1
%EQUATE `DBCOLUMNFLAGS_MAYDEFER = &H2
%EQUATE `DBCOLUMNFLAGS_WRITE = &H4
%EQUATE `DBCOLUMNFLAGS_WRITEUNKNOWN = &H8
%EQUATE `DBCOLUMNFLAGS_ISFIXEDLENGTH = &H10
%EQUATE `DBCOLUMNFLAGS_ISNULLABLE = &H20
%EQUATE `DBCOLUMNFLAGS_MAYBENULL = &H40
%EQUATE `DBCOLUMNFLAGS_ISLONG = &H80
%EQUATE `DBCOLUMNFLAGS_ISROWID = &H100
%EQUATE `DBCOLUMNFLAGS_ISROWVER = &H200
%EQUATE `DBCOLUMNFLAGS_CACHEDEFERRED = &H1000
' DBCOLUMNSFLAGSENUM20
%EQUATE `BCOLUMNFLAGS_SCALEISNEGATIVE = &H4000
%EQUATE `DBCOLUMNFLAGS_RESERVED = &H8000
' DBCOLUMNFLAGSDEPRECATED
'%DBCOLUMNFLAGS_KEYCOLUMN = &H8000
' DBCOLUMNSFLAGS15ENUM
%EQUATE `DBCOLUMNFLAGS_ISCHAPTER = &H2000
' DBCOLUMNFLAGSENUM21
%EQUATE `DBCOLUMNFLAGS_ISROWURL = &H10000
%EQUATE `DBCOLUMNFLAGS_ISDEFAULTSTREAM = &H20000
%EQUATE `DBCOLUMNFLAGS_ISCOLLECTION = &H40000
' DBCOLUMNFLAGSENUM26
%EQUATE `DBCOLUMNFLAGS_ISSTREAM = &H80000
%EQUATE `DBCOLUMNFLAGS_ISROWSET = &H100000
%EQUATE `DBCOLUMNFLAGS_ISROW = &H200000
%EQUATE `DBCOLUMNFLAGS_ROWSPECIFICCOLUMN = &H400000
' DBTABLESTATISTICSTYPE26
%EQUATE `DBSTAT_HISTOGRAM = &H1
%EQUATE `DBSTAT_COLUMN_CARDINALITY = &H2
%EQUATE `DBSTAT_TUPLE_CARDINALITY = &H4
' // Size = 48 bytes
TYPE DBCOLUMNINFO BYTE
 pwszName AS WSTRINGZ PTR
 pTypeInfo AS DWORD ' ITypeInfo
 iOrdinal AS DWORD ' DBORDINAL
 dwFlags AS DWORD ' DBCOLUMNFLAGS
 ulColumnSize AS DWORD ' DBLENGTH
 wType AS WORD ' DBTYPE
 bPrecision AS BYTE ' BYTE
 bScale AS BYTE ' BYTE
 columnid AS DBID ' DBID
END TYPE
' DBBOOKMARK
%EQUATE `DBBMK_INVALID = 0
%EQUATE `DBBMK_FIRST = %DBBMK_INVALID + 1
%EQUATE `DBBMK_LAST = %DBBMK_FIRST + 1
%EQUATE `STD_BOOKMARKLENGTH = 1
%EQUATE `DB_INVALIDCOLUMN = &Hffffffff ' ULONG_MAX
' DBPROPENUM
%EQUATE `DBPROP_ABORTPRESERVE = &H2&
%EQUATE `DBPROP_ACTIVESESSIONS = &H3&
%EQUATE `DBPROP_APPENDONLY = &Hbb&
%EQUATE `DBPROP_ASYNCTXNABORT = &Ha8&
%EQUATE `DBPROP_ASYNCTXNCOMMIT = &H4&
%EQUATE `DBPROP_AUTH_CACHE_AUTHINFO = &H5&
%EQUATE `DBPROP_AUTH_ENCRYPT_PASSWORD = &H6&
%EQUATE `DBPROP_AUTH_INTEGRATED = &H7&
%EQUATE `DBPROP_AUTH_MASK_PASSWORD = &H8&
%EQUATE `DBPROP_AUTH_PASSWORD = &H9&
%EQUATE `DBPROP_AUTH_PERSIST_ENCRYPTED = &Ha&
%EQUATE `DBPROP_AUTH_PERSIST_SENSITIVE_AUTHINFO = &Hb&
%EQUATE `DBPROP_AUTH_USERID = &Hc&
%EQUATE `DBPROP_BLOCKINGSTORAGEOBJECTS = &Hd&
%EQUATE `DBPROP_BOOKMARKS = &He&
%EQUATE `DBPROP_BOOKMARKSKIPPED = &Hf&
%EQUATE `DBPROP_BOOKMARKTYPE = &H10&
%EQUATE `DBPROP_BYREFACCESSORS = &H78&
%EQUATE `DBPROP_CACHEDEFERRED = &H11&
%EQUATE `DBPROP_CANFETCHBACKWARDS = &H12&
%EQUATE `DBPROP_CANHOLDROWS = &H13&
%EQUATE `DBPROP_CANSCROLLBACKWARDS = &H15&
%EQUATE `DBPROP_CATALOGLOCATION = &H16&
%EQUATE `DBPROP_CATALOGTERM = &H17&
%EQUATE `DBPROP_CATALOGUSAGE = &H18&
%EQUATE `DBPROP_CHANGEINSERTEDROWS = &Hbc&
%EQUATE `DBPROP_COL_AUTOINCREMENT = &H1a&
%EQUATE `DBPROP_COL_DEFAULT = &H1b&
%EQUATE `DBPROP_COL_DESCRIPTION = &H1c&
%EQUATE `DBPROP_COL_FIXEDLENGTH = &Ha7&
%EQUATE `DBPROP_COL_NULLABLE = &H1d&
%EQUATE `DBPROP_COL_PRIMARYKEY = &H1e&
%EQUATE `DBPROP_COL_UNIQUE = &H1f&
%EQUATE `DBPROP_COLUMNDEFINITION = &H20&
%EQUATE `DBPROP_COLUMNRESTRICT = &H21&
%EQUATE `DBPROP_COMMANDTIMEOUT = &H22&
%EQUATE `DBPROP_COMMITPRESERVE = &H23&
%EQUATE `DBPROP_CONCATNULLBEHAVIOR = &H24&
%EQUATE `DBPROP_CURRENTCATALOG = &H25&
%EQUATE `DBPROP_DATASOURCENAME = &H26&
%EQUATE `DBPROP_DATASOURCEREADONLY = &H27&
%EQUATE `DBPROP_DBMSNAME = &H28&
%EQUATE `DBPROP_DBMSVER = &H29&
%EQUATE `DBPROP_DEFERRED = &H2a&
%EQUATE `DBPROP_DELAYSTORAGEOBJECTS = &H2b&
%EQUATE `DBPROP_DSOTHREADMODEL = &Ha9&
%EQUATE `DBPROP_GROUPBY = &H2c&
%EQUATE `DBPROP_HETEROGENEOUSTABLES = &H2d&
%EQUATE `DBPROP_IAccessor = &H79&
%EQUATE `DBPROP_IColumnsInfo = &H7a&
%EQUATE `DBPROP_IColumnsRowset = &H7b&
%EQUATE `DBPROP_IConnectionPointContainer = &H7c&
%EQUATE `DBPROP_IConvertType = &Hc2&
%EQUATE `DBPROP_IRowset = &H7e&
%EQUATE `DBPROP_IRowsetChange = &H7f&
%EQUATE `DBPROP_IRowsetIdentity = &H80&
%EQUATE `DBPROP_IRowsetIndex = &H9f&
%EQUATE `DBPROP_IRowsetInfo = &H81&
%EQUATE `DBPROP_IRowsetLocate = &H82&
%EQUATE `DBPROP_IRowsetResynch = &H84&
%EQUATE `DBPROP_IRowsetScroll = &H85&
%EQUATE `DBPROP_IRowsetUpdate = &H86&
%EQUATE `DBPROP_ISupportErrorInfo = &H87&
%EQUATE `DBPROP_ILockBytes = &H88&
%EQUATE `DBPROP_ISequentialStream = &H89&
%EQUATE `DBPROP_IStorage = &H8a&
%EQUATE `DBPROP_IStream = &H8b&
%EQUATE `DBPROP_IDENTIFIERCASE = &H2e&
%EQUATE `DBPROP_IMMOBILEROWS = &H2f&
%EQUATE `DBPROP_INDEX_AUTOUPDATE = &H30&
%EQUATE `DBPROP_INDEX_CLUSTERED = &H31&
%EQUATE `DBPROP_INDEX_FILLFACTOR = &H32&
%EQUATE `DBPROP_INDEX_INITIALSIZE = &H33&
%EQUATE `DBPROP_INDEX_NULLCOLLATION = &H34&
%EQUATE `DBPROP_INDEX_NULLS = &H35&
%EQUATE `DBPROP_INDEX_PRIMARYKEY = &H36&
%EQUATE `DBPROP_INDEX_SORTBOOKMARKS = &H37&
%EQUATE `DBPROP_INDEX_TEMPINDEX = &Ha3&
%EQUATE `DBPROP_INDEX_TYPE = &H38&
%EQUATE `DBPROP_INDEX_UNIQUE = &H39&
%EQUATE `DBPROP_INIT_DATASOURCE = &H3b&
%EQUATE `DBPROP_INIT_HWND = &H3c&
%EQUATE `DBPROP_INIT_IMPERSONATION_LEVEL = &H3d&
%EQUATE `DBPROP_INIT_LCID = &Hba&
%EQUATE `DBPROP_INIT_LOCATION = &H3e&
%EQUATE `DBPROP_INIT_MODE = &H3f&
%EQUATE `DBPROP_INIT_PROMPT = &H40&
%EQUATE `DBPROP_INIT_PROTECTION_LEVEL = &H41&
%EQUATE `DBPROP_INIT_PROVIDERSTRING = &Ha0&
%EQUATE `DBPROP_INIT_TIMEOUT = &H42&
%EQUATE `DBPROP_LITERALBOOKMARKS = &H43&
%EQUATE `DBPROP_LITERALIDENTITY = &H44&
%EQUATE `DBPROP_MAXINDEXSIZE = &H46&
%EQUATE `DBPROP_MAXOPENROWS = &H47&
%EQUATE `DBPROP_MAXPENDINGROWS = &H48&
%EQUATE `DBPROP_MAXROWS = &H49&
%EQUATE `DBPROP_MAXROWSIZE = &H4a&
%EQUATE `DBPROP_MAXROWSIZEINCLUDESBLOB = &H4b&
%EQUATE `DBPROP_MAXTABLESINSELECT = &H4c&
%EQUATE `DBPROP_MAYWRITECOLUMN = &H4d&
%EQUATE `DBPROP_MEMORYUSAGE = &H4e&
%EQUATE `DBPROP_MULTIPLEPARAMSETS = &Hbf&
%EQUATE `DBPROP_MULTIPLERESULTS = &Hc4&
%EQUATE `DBPROP_MULTIPLESTORAGEOBJECTS = &H50&
%EQUATE `DBPROP_MULTITABLEUPDATE = &H51&
%EQUATE `DBPROP_NOTIFICATIONGRANULARITY = &Hc6&
%EQUATE `DBPROP_NOTIFICATIONPHASES = &H52&
%EQUATE `DBPROP_NOTIFYCOLUMNSET = &Hab&
%EQUATE `DBPROP_NOTIFYROWDELETE = &Had&
%EQUATE `DBPROP_NOTIFYROWFIRSTCHANGE = &Hae&
%EQUATE `DBPROP_NOTIFYROWINSERT = &Haf&
%EQUATE `DBPROP_NOTIFYROWRESYNCH = &Hb1&
%EQUATE `DBPROP_NOTIFYROWSETCHANGED = &Hd3&
%EQUATE `DBPROP_NOTIFYROWSETRELEASE = &Hb2&
%EQUATE `DBPROP_NOTIFYROWSETFETCHPOSITIONCHANGE = &Hb3&
%EQUATE `DBPROP_NOTIFYROWUNDOCHANGE = &Hb4&
%EQUATE `DBPROP_NOTIFYROWUNDODELETE = &Hb5&
%EQUATE `DBPROP_NOTIFYROWUNDOINSERT = &Hb6&
%EQUATE `DBPROP_NOTIFYROWUPDATE = &Hb7&
%EQUATE `DBPROP_NULLCOLLATION = &H53&
%EQUATE `DBPROP_OLEOBJECTS = &H54&
%EQUATE `DBPROP_ORDERBYCOLUMNSINSELECT = &H55&
%EQUATE `DBPROP_ORDEREDBOOKMARKS = &H56&
%EQUATE `DBPROP_OTHERINSERT = &H57&
%EQUATE `DBPROP_OTHERUPDATEDELETE = &H58&
%EQUATE `DBPROP_OUTPUTPARAMETERAVAILABILITY = &Hb8&
%EQUATE `DBPROP_OWNINSERT = &H59&
%EQUATE `DBPROP_OWNUPDATEDELETE = &H5a&
%EQUATE `DBPROP_PERSISTENTIDTYPE = &Hb9&
%EQUATE `DBPROP_PREPAREABORTBEHAVIOR = &H5b&
%EQUATE `DBPROP_PREPARECOMMITBEHAVIOR = &H5c&
%EQUATE `DBPROP_PROCEDURETERM = &H5d&
%EQUATE `DBPROP_PROVIDERNAME = &H60&
%EQUATE `DBPROP_PROVIDEROLEDBVER = &H61&
%EQUATE `DBPROP_PROVIDERVER = &H62&
%EQUATE `DBPROP_QUICKRESTART = &H63&
%EQUATE `DBPROP_QUOTEDIDENTIFIERCASE = &H64&
%EQUATE `DBPROP_REENTRANTEVENTS = &H65&
%EQUATE `DBPROP_REMOVEDELETED = &H66&
%EQUATE `DBPROP_REPORTMULTIPLECHANGES = &H67&
%EQUATE `DBPROP_RETURNPENDINGINSERTS = &Hbd&
%EQUATE `DBPROP_ROWRESTRICT = &H68&
%EQUATE `DBPROP_ROWSETCONVERSIONSONCOMMAND = &Hc0&
%EQUATE `DBPROP_ROWTHREADMODEL = &H69&
%EQUATE `DBPROP_SCHEMATERM = &H6a&
%EQUATE `DBPROP_SCHEMAUSAGE = &H6b&
%EQUATE `DBPROP_SERVERCURSOR = &H6c&
%EQUATE `DBPROP_SESS_AUTOCOMMITISOLEVELS = &Hbe&
%EQUATE `DBPROP_SQLSUPPORT = &H6d&
%EQUATE `DBPROP_STRONGIDENTITY = &H77&
%EQUATE `DBPROP_STRUCTUREDSTORAGE = &H6f&
%EQUATE `DBPROP_SUBQUERIES = &H70&
%EQUATE `DBPROP_SUPPORTEDTXNDDL = &Ha1&
%EQUATE `DBPROP_SUPPORTEDTXNISOLEVELS = &H71&
%EQUATE `DBPROP_SUPPORTEDTXNISORETAIN = &H72&
%EQUATE `DBPROP_TABLETERM = &H73&
%EQUATE `DBPROP_TBL_TEMPTABLE = &H8c&
%EQUATE `DBPROP_TRANSACTEDOBJECT = &H74&
%EQUATE `DBPROP_UPDATABILITY = &H75&
%EQUATE `DBPROP_USERNAME = &H76&
' DBPROPENUM15
%EQUATE `DBPROP_FILTERCOMPAREOPS = &Hd1&
%EQUATE `DBPROP_FINDCOMPAREOPS = &Hd2&
%EQUATE `DBPROP_IChapteredRowset = &Hca&
%EQUATE `DBPROP_IDBAsynchStatus = &Hcb&
%EQUATE `DBPROP_IRowsetFind = &Hcc&
%EQUATE `DBPROP_IRowsetView = &Hd4&
%EQUATE `DBPROP_IViewChapter = &Hd5&
%EQUATE `DBPROP_IViewFilter = &Hd6&
%EQUATE `DBPROP_IViewRowset = &Hd7&
%EQUATE `DBPROP_IViewSort = &Hd8&
%EQUATE `DBPROP_INIT_ASYNCH = &Hc8&
%EQUATE `DBPROP_MAXOPENCHAPTERS = &Hc7&
%EQUATE `DBPROP_MAXORSINFILTER = &Hcd&
%EQUATE `DBPROP_MAXSORTCOLUMNS = &Hce&
%EQUATE `DBPROP_ROWSET_ASYNCH = &Hc9&
%EQUATE `DBPROP_SORTONINDEX = &Hcf&
' DBPROPENUM20
%EQUATE `DBPROP_IMultipleResults = &Hd9&
%EQUATE `DBPROP_DATASOURCE_TYPE = &Hfb&
%EQUATE `MDPROP_AXES = &Hfc&
%EQUATE `MDPROP_FLATTENING_SUPPORT = &Hfd&
%EQUATE `MDPROP_MDX_JOINCUBES = &Hfe&
%EQUATE `MDPROP_NAMED_LEVELS = &Hff&
%EQUATE `MDPROP_RANGEROWSET = &H100&
%EQUATE `MDPROP_MDX_SLICER = &Hda&
%EQUATE `MDPROP_MDX_CUBEQUALIFICATION = &Hdb&
%EQUATE `MDPROP_MDX_OUTERREFERENCE = &Hdc&
%EQUATE `MDPROP_MDX_QUERYBYPROPERTY = &Hdd&
%EQUATE `MDPROP_MDX_CASESUPPORT = &Hde&
%EQUATE `MDPROP_MDX_STRING_COMPOP = &He0&
%EQUATE `MDPROP_MDX_DESCFLAGS = &He1&
%EQUATE `MDPROP_MDX_SET_FUNCTIONS = &He2&
%EQUATE `MDPROP_MDX_MEMBER_FUNCTIONS = &He3&
%EQUATE `MDPROP_MDX_NUMERIC_FUNCTIONS = &He4&
%EQUATE `MDPROP_MDX_FORMULAS = &He5&
%EQUATE `MDPROP_MDX_AGGREGATECELL_UPDATE = &He6&
%EQUATE `DBPROP_ACCESSORDER = &He7&
%EQUATE `DBPROP_BOOKMARKINFO = &He8&
%EQUATE `DBPROP_INIT_CATALOG = &He9&
%EQUATE `DBPROP_ROW_BULKOPS = &Hea&
%EQUATE `DBPROP_PROVIDERFRIENDLYNAME = &Heb&
%EQUATE `DBPROP_LOCKMODE = &Hec&
%EQUATE `DBPROP_MULTIPLECONNECTIONS = &Hed&
%EQUATE `DBPROP_UNIQUEROWS = &Hee&
%EQUATE `DBPROP_SERVERDATAONINSERT = &Hef&
%EQUATE `DBPROP_STORAGEFLAGS = &Hf0&
%EQUATE `DBPROP_CONNECTIONSTATUS = &Hf4&
%EQUATE `DBPROP_ALTERCOLUMN = &Hf5&
%EQUATE `DBPROP_COLUMNLCID = &Hf6&
%EQUATE `DBPROP_RESETDATASOURCE = &Hf7&
%EQUATE `DBPROP_INIT_OLEDBSERVICES = &Hf8&
%EQUATE `DBPROP_IRowsetRefresh = &Hf9&
%EQUATE `DBPROP_SERVERNAME = &Hfa&
%EQUATE `DBPROP_IParentRowset = &H101&
%EQUATE `DBPROP_HIDDENCOLUMNS = &H102&
%EQUATE `DBPROP_PROVIDERMEMORY = &H103&
%EQUATE `DBPROP_CLIENTCURSOR = &H104&
%EQUATE `DBPROP_PROVIDERFILENAME = %DBPROP_PROVIDERNAME
%EQUATE `DBPROP_SERVER_NAME = %DBPROP_SERVERNAME
' DBPROPENUM21
%EQUATE `DBPROP_TRUSTEE_USERNAME = &Hf1&
%EQUATE `DBPROP_TRUSTEE_AUTHENTICATION = &Hf2&
%EQUATE `DBPROP_TRUSTEE_NEWAUTHENTICATION = &Hf3&
%EQUATE `DBPROP_IRow = &H107&
%EQUATE `DBPROP_IRowChange = &H108&
%EQUATE `DBPROP_IRowSchemaChange = &H109&
%EQUATE `DBPROP_IGetRow = &H10a&
%EQUATE `DBPROP_IScopedOperations = &H10b&
%EQUATE `DBPROP_IBindResource = &H10c&
%EQUATE `DBPROP_ICreateRow = &H10d&
%EQUATE `DBPROP_INIT_BINDFLAGS = &H10e&
%EQUATE `DBPROP_INIT_LOCKOWNER = &H10f&
%EQUATE `DBPROP_GENERATEURL = &H111&
%EQUATE `DBPROP_IDBBinderProperties = &H112&
%EQUATE `DBPROP_IColumnsInfo2 = &H113&
%EQUATE `DBPROP_IRegisterProvider = &H114&
%EQUATE `DBPROP_IGetSession = &H115&
%EQUATE `DBPROP_IGetSourceRow = &H116&
%EQUATE `DBPROP_IRowsetCurrentIndex = &H117&
%EQUATE `DBPROP_OPENROWSETSUPPORT = &H118&
%EQUATE `DBPROP_COL_ISLONG = &H119&
' DBPROPENUM25
%EQUATE `DBPROP_COL_SEED = &H11a&
%EQUATE `DBPROP_COL_INCREMENT = &H11b&
%EQUATE `DBPROP_INIT_GENERALTIMEOUT = &H11c&
%EQUATE `DBPROP_COMSERVICES = &H11d&
' DBPROPENUM26
%EQUATE `DBPROP_OUTPUTSTREAM = &H11e&
%EQUATE `DBPROP_OUTPUTENCODING = &H11f&
%EQUATE `DBPROP_TABLESTATISTICS = &H120&
%EQUATE `DBPROP_SKIPROWCOUNTRESULTS = &H123&
%EQUATE `DBPROP_IRowsetBookmark = &H124&
%EQUATE `MDPROP_VISUALMODE = &H125&
' DBPROPENUMDEPRECATED
%EQUATE `DBPROP_IRowsetExactScroll = &H9a&
%EQUATE `DBPROP_MARSHALLABLE = &Hc5&
%EQUATE `DBPROP_FILTEROPS = &Hd0&
%EQUATE `DBPROPVAL_BMK_NUMERIC = &H00000001&
%EQUATE `DBPROPVAL_BMK_KEY = &H00000002&
%EQUATE `DBPROPVAL_CL_START = &H00000001&
%EQUATE `DBPROPVAL_CL_END = &H00000002&
%EQUATE `DBPROPVAL_CU_DML_STATEMENTS = &H00000001&
%EQUATE `DBPROPVAL_CU_TABLE_DEFINITION = &H00000002&
%EQUATE `DBPROPVAL_CU_INDEX_DEFINITION = &H00000004&
%EQUATE `DBPROPVAL_CU_PRIVILEGE_DEFINITION = &H00000008&
%EQUATE `DBPROPVAL_CD_NOTNULL = &H00000001&
%EQUATE `DBPROPVAL_CB_NULL = &H00000001&
%EQUATE `DBPROPVAL_CB_NON_NULL = &H00000002&
%EQUATE `DBPROPVAL_FU_NOT_SUPPORTED = &H00000001&
%EQUATE `DBPROPVAL_FU_COLUMN = &H00000002&
%EQUATE `DBPROPVAL_FU_TABLE = &H00000004&
%EQUATE `DBPROPVAL_FU_CATALOG = &H00000008&
%EQUATE `DBPROPVAL_GB_NOT_SUPPORTED = &H00000001&
%EQUATE `DBPROPVAL_GB_EQUALS_SELECT = &H00000002&
%EQUATE `DBPROPVAL_GB_CONTAINS_SELECT = &H00000004&
%EQUATE `DBPROPVAL_GB_NO_RELATION = &H00000008&
%EQUATE `DBPROPVAL_HT_DIFFERENT_CATALOGS = &H00000001&
%EQUATE `DBPROPVAL_HT_DIFFERENT_PROVIDERS = &H00000002&
%EQUATE `DBPROPVAL_IC_UPPER = &H00000001&
%EQUATE `DBPROPVAL_IC_LOWER = &H00000002&
%EQUATE `DBPROPVAL_IC_SENSITIVE = &H00000004&
%EQUATE `DBPROPVAL_IC_MIXED = &H00000008&
%EQUATE `DBPROPVAL_LM_NONE = &H00000001&
%EQUATE `DBPROPVAL_LM_READ = &H00000002&
%EQUATE `DBPROPVAL_LM_INTENT = &H00000004&
%EQUATE `DBPROPVAL_LM_RITE = &H00000008&
%EQUATE `DBPROPVAL_NP_OKTODO = &H00000001&
%EQUATE `DBPROPVAL_NP_ABOUTTODO = &H00000002&
%EQUATE `DBPROPVAL_NP_SYNCHAFTER = &H00000004&
%EQUATE `DBPROPVAL_NP_FAILEDTODO = &H00000008&
%EQUATE `DBPROPVAL_NP_DIDEVENT = &H00000010&
%EQUATE `DBPROPVAL_NC_END = &H00000001&
%EQUATE `DBPROPVAL_NC_HIGH = &H00000002&
%EQUATE `DBPROPVAL_NC_LOW = &H00000004&
%EQUATE `DBPROPVAL_NC_START = &H00000008&
%EQUATE `DBPROPVAL_OO_BLOB = &H00000001&
%EQUATE `DBPROPVAL_OO_IPERSIST = &H00000002&
%EQUATE `DBPROPVAL_CB_DELETE = &H00000001&
%EQUATE `DBPROPVAL_CB_PRESERVE = &H00000002&
%EQUATE `DBPROPVAL_SU_DML_STATEMENTS = &H00000001&
%EQUATE `DBPROPVAL_SU_TABLE_DEFINITION = &H00000002&
%EQUATE `DBPROPVAL_SU_INDEX_DEFINITION = &H00000004&
%EQUATE `DBPROPVAL_SU_PRIVILEGE_DEFINITION = &H00000008&
%EQUATE `DBPROPVAL_SQ_CORRELATEDSUBQUERIES = &H00000001&
%EQUATE `DBPROPVAL_SQ_COMPARISON = &H00000002&
%EQUATE `DBPROPVAL_SQ_EXISTS = &H00000004&
%EQUATE `DBPROPVAL_SQ_IN = &H00000008&
%EQUATE `DBPROPVAL_SQ_QUANTIFIED = &H00000010&
%EQUATE `DBPROPVAL_SS_ISEQUENTIALSTREAM = &H00000001&
%EQUATE `DBPROPVAL_SS_ISTREAM = &H00000002&
%EQUATE `DBPROPVAL_SS_ISTORAGE = &H00000004&
%EQUATE `DBPROPVAL_SS_ILOCKBYTES = &H00000008&
%EQUATE `DBPROPVAL_TI_CHAOS = &H00000010&
%EQUATE `DBPROPVAL_TI_READUNCOMMITTED = &H00000100&
%EQUATE `DBPROPVAL_TI_BROWSE = &H00000100&
%EQUATE `DBPROPVAL_TI_CURSORSTABILITY = &H00001000&
%EQUATE `DBPROPVAL_TI_READCOMMITTED = &H00001000&
%EQUATE `DBPROPVAL_TI_REPEATABLEREAD = &H00010000&
%EQUATE `DBPROPVAL_TI_SERIALIZABLE = &H00100000&
%EQUATE `DBPROPVAL_TI_ISOLATED = &H00100000&
%EQUATE `DBPROPVAL_TR_COMMIT_DC = &H00000001&
%EQUATE `DBPROPVAL_TR_COMMIT = &H00000002&
%EQUATE `DBPROPVAL_TR_COMMIT_NO = &H00000004&
%EQUATE `DBPROPVAL_TR_ABORT_DC = &H00000008&
%EQUATE `DBPROPVAL_TR_ABORT = &H00000010&
%EQUATE `DBPROPVAL_TR_ABORT_NO = &H00000020&
%EQUATE `DBPROPVAL_TR_DONTCARE = &H00000040&
%EQUATE `DBPROPVAL_TR_BOTH = &H00000080&
%EQUATE `DBPROPVAL_TR_NONE = &H00000100&
%EQUATE `DBPROPVAL_TR_OPTIMISTIC = &H00000200&
%EQUATE `DBPROPVAL_RT_FREETHREAD = &H00000001&
%EQUATE `DBPROPVAL_RT_APTMTTHREAD = &H00000002&
%EQUATE `DBPROPVAL_RT_SINGLETHREAD = &H00000004&
%EQUATE `DBPROPVAL_UP_CHANGE = &H00000001&
%EQUATE `DBPROPVAL_UP_DELETE = &H00000002&
%EQUATE `DBPROPVAL_UP_INSERT = &H00000004&
%EQUATE `DBPROPVAL_SQL_NONE = &H00000000&
%EQUATE `DBPROPVAL_SQL_ODBC_MINIMUM = &H00000001&
%EQUATE `DBPROPVAL_SQL_ODBC_CORE = &H00000002&
%EQUATE `DBPROPVAL_SQL_ODBC_EXTENDED = &H00000004&
%EQUATE `DBPROPVAL_SQL_ANSI89_IEF = &H00000008&
%EQUATE `DBPROPVAL_SQL_ANSI92_ENTRY = &H00000010&
%EQUATE `DBPROPVAL_SQL_FIPS_TRANSITIONAL = &H00000020&
%EQUATE `DBPROPVAL_SQL_ANSI92_INTERMEDIATE = &H00000040&
%EQUATE `DBPROPVAL_SQL_ANSI92_FULL = &H00000080&
%EQUATE `DBPROPVAL_SQL_ESCAPECLAUSES = &H00000100&
%EQUATE `DBPROPVAL_IT_BTREE = &H00000001&
%EQUATE `DBPROPVAL_IT_HASH = &H00000002&
%EQUATE `DBPROPVAL_IT_CONTENT = &H00000003&
%EQUATE `DBPROPVAL_IT_OTHER = &H00000004&
%EQUATE `DBPROPVAL_IN_DISALLOWNULL = &H00000001&
%EQUATE `DBPROPVAL_IN_IGNORENULL = &H00000002&
%EQUATE `DBPROPVAL_IN_IGNOREANYNULL = &H00000004&
%EQUATE `DBPROPVAL_TC_NONE = &H00000000&
%EQUATE `DBPROPVAL_TC_DML = &H00000001&
%EQUATE `DBPROPVAL_TC_DDL_COMMIT = &H00000002&
%EQUATE `DBPROPVAL_TC_DDL_IGNORE = &H00000004&
%EQUATE `DBPROPVAL_TC_ALL = &H00000008&
%EQUATE `DBPROPVAL_NP_OKTODO = &H00000001&
%EQUATE `DBPROPVAL_NP_ABOUTTODO = &H00000002&
%EQUATE `DBPROPVAL_NP_SYNCHAFTER = &H00000004&
%EQUATE `DBPROPVAL_OA_NOTSUPPORTED = &H00000001&
%EQUATE `DBPROPVAL_OA_ATEXECUTE = &H00000002&
%EQUATE `DBPROPVAL_OA_ATROWRELEASE = &H00000004&
%EQUATE `DBPROPVAL_MR_NOTSUPPORTED = &H00000000&
%EQUATE `DBPROPVAL_MR_SUPPORTED = &H00000001&
%EQUATE `DBPROPVAL_MR_CONCURRENT = &H00000002&
%EQUATE `DBPROPVAL_PT_GUID_NAME = &H00000001&
%EQUATE `DBPROPVAL_PT_GUID_PROPID = &H00000002&
%EQUATE `DBPROPVAL_PT_NAME = &H00000004&
%EQUATE `DBPROPVAL_PT_GUID = &H00000008&
%EQUATE `DBPROPVAL_PT_PROPID = &H00000010&
%EQUATE `DBPROPVAL_PT_PGUID_NAME = &H00000020&
%EQUATE `DBPROPVAL_PT_PGUID_PROPID = &H00000040&
%EQUATE `DBPROPVAL_NT_SINGLEROW = &H00000001&
%EQUATE `DBPROPVAL_NT_MULTIPLEROWS = &H00000002&
%EQUATE `DBPROPVAL_ASYNCH_INITIALIZE = &H00000001&
%EQUATE `DBPROPVAL_ASYNCH_SEQUENTIALPOPULATION = &H00000002&
%EQUATE `DBPROPVAL_ASYNCH_RANDOMPOPULATION = &H00000004&
%EQUATE `DBPROPVAL_OP_EQUAL = &H00000001&
%EQUATE `DBPROPVAL_OP_RELATIVE = &H00000002&
%EQUATE `DBPROPVAL_OP_STRING = &H00000004&
%EQUATE `DBPROPVAL_CO_EQUALITY = &H00000001&
%EQUATE `DBPROPVAL_CO_STRING = &H00000002&
%EQUATE `DBPROPVAL_CO_CASESENSITIVE = &H00000004&
%EQUATE `DBPROPVAL_CO_CASEINSENSITIVE = &H00000008&
%EQUATE `DBPROPVAL_CO_CONTAINS = &H00000010&
%EQUATE `DBPROPVAL_CO_BEGINSWITH = &H00000020&
%EQUATE `DBPROPVAL_ASYNCH_BACKGROUNDPOPULATION = &H00000008&
%EQUATE `DBPROPVAL_ASYNCH_PREPOPULATE = &H00000010&
%EQUATE `DBPROPVAL_ASYNCH_POPULATEONDEMAND = &H00000020&
%EQUATE `DBPROPVAL_LM_NONE = &H00000001&
%EQUATE `DBPROPVAL_LM_SINGLEROW = &H00000002&
%EQUATE `DBPROPVAL_SQL_SUBMINIMUM = &H00000200&
%EQUATE `DBPROPVAL_DST_TDP = &H00000001&
%EQUATE `DBPROPVAL_DST_MDP = &H00000002&
%EQUATE `DBPROPVAL_DST_TDPANDMDP = &H00000003&
%EQUATE `MDPROPVAL_AU_UNSUPPORTED = &H00000000&
%EQUATE `MDPROPVAL_AU_UNCHANGED = &H00000001&
%EQUATE `MDPROPVAL_AU_UNKNOWN = &H00000002&
%EQUATE `MDPROPVAL_MF_WITH_CALCMEMBERS = &H00000001&
%EQUATE `MDPROPVAL_MF_WITH_NAMEDSETS = &H00000002&
%EQUATE `MDPROPVAL_MF_CREATE_CALCMEMBERS = &H00000004&
%EQUATE `MDPROPVAL_MF_CREATE_NAMEDSETS = &H00000008&
%EQUATE `MDPROPVAL_MF_SCOPE_SESSION = &H00000010&
%EQUATE `MDPROPVAL_MF_SCOPE_GLOBAL = &H00000020&
%EQUATE `MDPROPVAL_MMF_COUSIN = &H00000001&
%EQUATE `MDPROPVAL_MMF_PARALLELPERIOD = &H00000002&
%EQUATE `MDPROPVAL_MMF_OPENINGPERIOD = &H00000004&
%EQUATE `MDPROPVAL_MMF_CLOSINGPERIOD = &H00000008&
%EQUATE `MDPROPVAL_MNF_MEDIAN = &H00000001&
%EQUATE `MDPROPVAL_MNF_VAR = &H00000002&
%EQUATE `MDPROPVAL_MNF_STDDEV = &H00000004&
%EQUATE `MDPROPVAL_MNF_RANK = &H00000008&
%EQUATE `MDPROPVAL_MNF_AGGREGATE = &H00000010&
%EQUATE `MDPROPVAL_MNF_COVARIANCE = &H00000020&
%EQUATE `MDPROPVAL_MNF_CORRELATION = &H00000040&
%EQUATE `MDPROPVAL_MNF_LINREGSLOPE = &H00000080&
%EQUATE `MDPROPVAL_MNF_LINREGVARIANCE = &H00000100&
%EQUATE `MDPROPVAL_MNF_LINREG2 = &H00000200&
%EQUATE `MDPROPVAL_MNF_LINREGPOINT = &H00000400&
%EQUATE `MDPROPVAL_MNF_DRILLDOWNLEVEL = &H00000800&
%EQUATE `MDPROPVAL_MNF_DRILLDOWNMEMBERTOP = &H00001000&
%EQUATE `MDPROPVAL_MNF_DRILLDOWNMEMBERBOTTOM = &H00002000&
%EQUATE `MDPROPVAL_MNF_DRILLDOWNLEVELTOP = &H00004000&
%EQUATE `MDPROPVAL_MNF_DRILLDOWNLEVELBOTTOM = &H00008000&
%EQUATE `MDPROPVAL_MNF_DRILLUPMEMBER = &H00010000&
%EQUATE `MDPROPVAL_MNF_DRILLUPLEVEL = &H00020000&
%EQUATE `MDPROPVAL_MMF_COUSIN = &H00000001&
%EQUATE `MDPROPVAL_MMF_PARALLELPERIOD = &H00000002&
%EQUATE `MDPROPVAL_MMF_OPENINGPERIOD = &H00000004&
%EQUATE `MDPROPVAL_MMF_CLOSINGPERIOD = &H00000008&
%EQUATE `MDPROPVAL_MSF_TOPPERCENT = &H00000001&
%EQUATE `MDPROPVAL_MSF_BOTTOMPERCENT = &H00000002&
%EQUATE `MDPROPVAL_MSF_TOPSUM = &H00000004&
%EQUATE `MDPROPVAL_MSF_BOTTOMSUM = &H00000008&
%EQUATE `MDPROPVAL_MSF_PERIODSTODATE = &H00000010&
%EQUATE `MDPROPVAL_MSF_LASTPERIODS = &H00000020&
%EQUATE `MDPROPVAL_MSF_YTD = &H00000040&
%EQUATE `MDPROPVAL_MSF_QTD = &H00000080&
%EQUATE `MDPROPVAL_MSF_MTD = &H00000100&
%EQUATE `MDPROPVAL_MSF_WTD = &H00000200&
%EQUATE `MDPROPVAL_MSF_DRILLDOWNMEMBBER = &H00000400&
%EQUATE `MDPROPVAL_MSF_DRILLDOWNLEVEL = &H00000800&
%EQUATE `MDPROPVAL_MSF_DRILLDOWNMEMBERTOP = &H00001000&
%EQUATE `MDPROPVAL_MSF_DRILLDOWNMEMBERBOTTOM = &H00002000&
%EQUATE `MDPROPVAL_MSF_DRILLDOWNLEVELTOP = &H00004000&
%EQUATE `MDPROPVAL_MSF_DRILLDOWNLEVELBOTTOM = &H00008000&
%EQUATE `MDPROPVAL_MSF_DRILLUPMEMBER = &H00010000&
%EQUATE `MDPROPVAL_MSF_DRILLUPLEVEL = &H00020000&
%EQUATE `MDPROPVAL_MSF_TOGGLEDRILLSTATE = &H00040000&
' // values FOR MDPROP_MDX_DESCFLAGS
%EQUATE `MDPROPVAL_MD_SELF = &H00000001&
%EQUATE `MDPROPVAL_MD_BEFORE = &H00000002&
%EQUATE `MDPROPVAL_MD_AFTER = &H00000004&
' // values FOR MDPROP_MDX_STRING_COMPOP
%EQUATE `MDPROPVAL_MSC_LESSTHAN = &H00000001&
%EQUATE `MDPROPVAL_MSC_GREATERTHAN = &H00000002&
%EQUATE `MDPROPVAL_MSC_LESSTHANEQUAL = &H00000004&
%EQUATE `MDPROPVAL_MSC_GREATERTHANEQUAL = &H00000008&
%EQUATE `MDPROPVAL_MC_SINGLECASE = &H00000001&
%EQUATE `MDPROPVAL_MC_SEARCHEDCASE = &H00000002&
%EQUATE `MDPROPVAL_MOQ_OUTERREFERENCE = &H00000001&
%EQUATE `MDPROPVAL_MOQ_DATASOURCE_CUBE = &H00000001&
%EQUATE `MDPROPVAL_MOQ_CATALOG_CUBE = &H00000002&
%EQUATE `MDPROPVAL_MOQ_SCHEMA_CUBE = &H00000004&
%EQUATE `MDPROPVAL_MOQ_CUBE_DIM = &H00000008&
%EQUATE `MDPROPVAL_MOQ_DIM_HIER = &H00000010&
%EQUATE `MDPROPVAL_MOQ_DIMHIER_LEVEL = &H00000020&
%EQUATE `MDPROPVAL_MOQ_LEVEL_MEMBER = &H00000040&
%EQUATE `MDPROPVAL_MOQ_MEMBER_MEMBER = &H00000080&
%EQUATE `MDPROPVAL_FS_FULL_SUPPORT = &H00000001&
%EQUATE `MDPROPVAL_FS_GENERATED_COLUMN = &H00000002&
%EQUATE `MDPROPVAL_FS_GENERATED_DIMENSION = &H00000003&
%EQUATE `MDPROPVAL_FS_NO_SUPPORT = &H00000004&
%EQUATE `MDPROPVAL_NL_NAMEDLEVELS = &H00000001&
%EQUATE `MDPROPVAL_NL_NUMBEREDLEVELS = &H00000002&
%EQUATE `MDPROPVAL_MJC_SINGLECUBE = &H00000001&
%EQUATE `MDPROPVAL_MJC_MULTICUBES = &H00000002&
%EQUATE `MDPROPVAL_MJC_IMPLICITCUBE = &H00000004&
%EQUATE `MDPROPVAL_RR_NORANGEROWSET = &H00000001&
%EQUATE `MDPROPVAL_RR_READONLY = &H00000002&
%EQUATE `MDPROPVAL_RR_UPDATE = &H00000004&
%EQUATE `MDPROPVAL_MS_MULTIPLETUPLES = &H00000001&
%EQUATE `MDPROPVAL_MS_SINGLETUPLE = &H00000002&
%EQUATE `DBPROPVAL_AO_SEQUENTIAL = &H00000000&
%EQUATE `DBPROPVAL_AO_SEQUENTIALSTORAGEOBJECTS = &H00000001&
%EQUATE `DBPROPVAL_AO_RANDOM = &H00000002&
%EQUATE `DBPROPVAL_BD_ROWSET = &H00000000&
%EQUATE `DBPROPVAL_BD_INTRANSACTION = &H00000001&
%EQUATE `DBPROPVAL_BD_XTRANSACTION = &H00000002&
%EQUATE `DBPROPVAL_BD_REORGANIZATION = &H00000003&
%EQUATE `BMK_DURABILITY_ROWSET = %DBPROPVAL_BD_ROWSET
%EQUATE `BMK_DURABILITY_INTRANSACTION = %DBPROPVAL_BD_INTRANSACTION
%EQUATE `BMK_DURABILITY_XTRANSACTION = %DBPROPVAL_BD_XTRANSACTION
%EQUATE `BMK_DURABILITY_REORGANIZATION = %DBPROPVAL_BD_REORGANIZATION
%EQUATE `DBPROPVAL_BO_NOLOG = &H00000000&
%EQUATE `DBPROPVAL_BO_NOINDEXUPDATE = &H00000001&
%EQUATE `DBPROPVAL_BO_REFINTEGRITY = &H00000002&
'#if !defined(_WINBASE_)
%EQUATE `OF_READ = &H00000000
%EQUATE `OF_WRITE = &H00000001
%EQUATE `OF_READWRITE = &H00000002
%EQUATE `OF_SHARE_COMPAT = &H00000000
%EQUATE `OF_SHARE_EXCLUSIVE = &H00000010
%EQUATE `OF_SHARE_DENY_WRITE = &H00000020
%EQUATE `OF_SHARE_DENY_READ = &H00000030
%EQUATE `OF_SHARE_DENY_NONE = &H00000040
%EQUATE `OF_PARSE = &H00000100
%EQUATE `OF_DELETE = &H00000200
%EQUATE `OF_VERIFY = &H00000400
%EQUATE `OF_CANCEL = &H00000800
%EQUATE `OF_CREATE = &H00001000
%EQUATE `OF_PROMPT = &H00002000
%EQUATE `OF_EXIST = &H00004000
%EQUATE `OF_REOPEN = &H00008000
'#endif // !_WINBASE_
%EQUATE `DBPROPVAL_STGM_READ = %OF_READ
%EQUATE `DBPROPVAL_STGM_WRITE = %OF_WRITE
%EQUATE `DBPROPVAL_STGM_READWRITE = %OF_READWRITE
%EQUATE `DBPROPVAL_STGM_SHARE_DENY_NONE = %OF_SHARE_DENY_NONE
%EQUATE `DBPROPVAL_STGM_SHARE_DENY_READ = %OF_SHARE_DENY_READ
%EQUATE `DBPROPVAL_STGM_SHARE_DENY_WRITE = %OF_SHARE_DENY_WRITE
%EQUATE `DBPROPVAL_STGM_SHARE_EXCLUSIVE = %OF_SHARE_EXCLUSIVE
%EQUATE `DBPROPVAL_STGM_DIRECT = &H00010000&
%EQUATE `DBPROPVAL_STGM_TRANSACTED = &H00020000&
%EQUATE `DBPROPVAL_STGM_CREATE = %OF_CREATE
%EQUATE `DBPROPVAL_STGM_CONVERT = &H00040000&
%EQUATE `DBPROPVAL_STGM_FAILIFTHERE = &H00080000&
%EQUATE `DBPROPVAL_STGM_PRIORITY = &H00100000&
%EQUATE `DBPROPVAL_STGM_DELETEONRELEASE = &H00200000&
%EQUATE `DBPROPVAL_GB_COLLATE = &H00000010&
%EQUATE `DBPROPVAL_CS_UNINITIALIZED = &H00000000&
%EQUATE `DBPROPVAL_CS_INITIALIZED = &H00000001&
%EQUATE `DBPROPVAL_CS_COMMUNICATIONFAILURE = &H00000002&
%EQUATE `DBPROPVAL_RD_RESETALL = &Hffffffff&
%EQUATE `DBPROPVAL_OS_RESOURCEPOOLING = &H00000001&
%EQUATE `DBPROPVAL_OS_TXNENLISTMENT = &H00000002&
%EQUATE `DBPROPVAL_OS_CLIENTCURSOR = &H00000004&
%EQUATE `DBPROPVAL_OS_ENABLEALL = &Hffffffff&
%EQUATE `DBPROPVAL_BI_CROSSROWSET = &H00000001&
%EQUATE `MDPROPVAL_NL_SCHEMAONLY = &H00000004&
%EQUATE `DBPROPVAL_OS_DISABLEALL = &H00000000&
%EQUATE `DBPROPVAL_OO_ROWOBJECT = &H00000004&
%EQUATE `DBPROPVAL_OO_SCOPED = &H00000008&
%EQUATE `DBPROPVAL_OO_DIRECTBIND = &H00000010&
%EQUATE `DBPROPVAL_DST_DOCSOURCE = &H00000004&
%EQUATE `DBPROPVAL_GU_NOTSUPPORTED = &H00000001&
%EQUATE `DBPROPVAL_GU_SUFFIX = &H00000002&
%EQUATE `DB_BINDFLAGS_DELAYFETCHCOLUMNS = &H00000001&
%EQUATE `DB_BINDFLAGS_DELAYFETCHSTREAM = &H00000002&
%EQUATE `DB_BINDFLAGS_RECURSIVE = &H00000004&
%EQUATE `DB_BINDFLAGS_OUTPUT = &H00000008&
%EQUATE `DB_BINDFLAGS_COLLECTION = &H00000010&
%EQUATE `DB_BINDFLAGS_OPENIFEXISTS = &H00000020&
%EQUATE `DB_BINDFLAGS_OVERWRITE = &H00000040&
%EQUATE `DB_BINDFLAGS_ISSTRUCTUREDDOCUMENT = &H00000080&
%EQUATE `DBPROPVAL_ORS_TABLE = &H00000000&
%EQUATE `DBPROPVAL_ORS_INDEX = &H00000001&
%EQUATE `DBPROPVAL_ORS_INTEGRATEDINDEX = &H00000002&
%EQUATE `DBPROPVAL_TC_DDL_LOCK = &H00000010&
%EQUATE `DBPROPVAL_ORS_STOREDPROC = &H00000004&
%EQUATE `DBPROPVAL_IN_ALLOWNULL = &H00000000&
%EQUATE `DBPROPVAL_OO_SINGLETON = &H00000020&
%EQUATE `DBPROPVAL_OS_AGR_AFTERSESSION = &H00000008&
%EQUATE `DBPROPVAL_CM_TRANSACTIONS = &H00000001&
%EQUATE `DBPROPVAL_TS_CARDINALITY = &H00000001&
%EQUATE `DBPROPVAL_TS_HISTOGRAM = &H00000002&
%EQUATE `DBPROPVAL_ORS_HISTOGRAM = &H00000008&
%EQUATE `MDPROPVAL_VISUAL_MODE_DEFAULT = &H00000000&
%EQUATE `MDPROPVAL_VISUAL_MODE_VISUAL = &H00000001&
%EQUATE `MDPROPVAL_VISUAL_MODE_VISUAL_OFF = &H00000002&
%EQUATE `DB_IMP_LEVEL_ANONYMOUS = &H00
%EQUATE `DB_IMP_LEVEL_IDENTIFY = &H01
%EQUATE `DB_IMP_LEVEL_IMPERSONATE = &H02
%EQUATE `DB_IMP_LEVEL_DELEGATE = &H03
%EQUATE `DBPROMPT_PROMPT = &H01
%EQUATE `DBPROMPT_COMPLETE = &H02
%EQUATE `DBPROMPT_COMPLETEREQUIRED = &H03
%EQUATE `DBPROMPT_NOPROMPT = &H04
%EQUATE `DB_PROT_LEVEL_NONE = &H00
%EQUATE `DB_PROT_LEVEL_CONNECT = &H01
%EQUATE `DB_PROT_LEVEL_CALL = &H02
%EQUATE `DB_PROT_LEVEL_PKT = &H03
%EQUATE `DB_PROT_LEVEL_PKT_INTEGRITY = &H04
%EQUATE `DB_PROT_LEVEL_PKT_PRIVACY = &H05
%EQUATE `DB_MODE_READ = &H01
%EQUATE `DB_MODE_WRITE = &H02
%EQUATE `DB_MODE_READWRITE = &H03
%EQUATE `DB_MODE_SHARE_DENY_READ = &H04
%EQUATE `DB_MODE_SHARE_DENY_WRITE = &H08
%EQUATE `DB_MODE_SHARE_EXCLUSIVE = &H0c
%EQUATE `DB_MODE_SHARE_DENY_NONE = &H10
%EQUATE `DBCOMPUTEMODE_COMPUTED = &H01
%EQUATE `DBCOMPUTEMODE_DYNAMIC = &H02
%EQUATE `DBCOMPUTEMODE_NOTCOMPUTED = &H03
%EQUATE `DBPROPVAL_DF_INITIALLY_DEFERRED = &H01
%EQUATE `DBPROPVAL_DF_INITIALLY_IMMEDIATE = &H02
%EQUATE `DBPROPVAL_DF_NOT_DEFERRABLE = &H03
' // Size = 12 bytes
TYPE DBPARAMS DWORD
 pData AS DWORD ' void *
 cParamSets AS DWORD ' DB_UPARAMS
 hAccessor AS DWORD ' HACCESSOR
END TYPE
'typedef DWORD DBPARAMFLAGS;
' DBPARAMFLAGSENUM
%EQUATE `DBPARAMFLAGS_ISINPUT = &H1
%EQUATE `DBPARAMFLAGS_ISOUTPUT = &H2
%EQUATE `DBPARAMFLAGS_ISSIGNED = &H10
%EQUATE `DBPARAMFLAGS_ISNULLABLE = &H40
%EQUATE `DBPARAMFLAGS_ISLONG = &H80
' DBPARAMFLAGSENUM20
%EQUATE `DBPARAMFLAGS_SCALEISNEGATIVE = &H100
' // Size = 24 bytes
TYPE DBPARAMINFO BYTE
 dwFlags AS DWORD ' DBPARAMFLAGS
 iOrdinal AS DWORD ' DBORDINAL
 pwszName AS WSTRINGZ PTR
 pTypeInfo AS DWORD ' ITypeInfo *
 ulParamSize AS DWORD ' DBLENGTH
 wType AS WORD ' DBTYPE
 bPrecision AS BYTE ' BYTE
 bScale AS BYTE ' BYTE
END TYPE
'typedef DWORD DBPROPID;
' // Size = 24 bytes
TYPE DBPROPIDSET DWORD
 rgPropertyIDs AS DWORD ' DBPROPID *
 cPropertyIDs AS DWORD ' ULONG
 guidPropertySet AS GUID ' GUID
END TYPE
'typedef DWORD DBPROPFLAGS;
' DBPROPFLAGSENUM
%EQUATE `DBPROPFLAGS_NOTSUPPORTED = 0
%EQUATE `DBPROPFLAGS_COLUMN = &H1
%EQUATE `DBPROPFLAGS_DATASOURCE = &H2
%EQUATE `DBPROPFLAGS_DATASOURCECREATE = &H4
%EQUATE `DBPROPFLAGS_DATASOURCEINFO = &H8
%EQUATE `DBPROPFLAGS_DBINIT = &H10
%EQUATE `DBPROPFLAGS_INDEX = &H20
%EQUATE `DBPROPFLAGS_ROWSET = &H40
%EQUATE `DBPROPFLAGS_TABLE = &H80
%EQUATE `DBPROPFLAGS_COLUMNOK = &H100
%EQUATE `DBPROPFLAGS_READ = &H200
%EQUATE `DBPROPFLAGS_WRITE = &H400
%EQUATE `DBPROPFLAGS_REQUIRED = &H800
%EQUATE `DBPROPFLAGS_SESSION = &H1000
' DBPROPFLAGSENUM21
%EQUATE `DBPROPFLAGS_TRUSTEE = &H2000
' DBPROPFLAGSENUM25
%EQUATE `DBPROPFLAGS_VIEW = &H4000
' DBPROPFLAGSENUM26
%EQUATE `DBPROPFLAGS_STREAM = &H8000
' // Size = 30 bytes
TYPE DBPROPINFO WORD
 pwszDescription AS WSTRINGZ PTR
 dwPropertyID AS DWORD ' DBPROPID
 dwFlags AS DWORD ' DBPROPFLAGS
 vtType AS WORD ' VARTYPE
 vValues AS tagVARIANT ' VARIANT
END TYPE
' // Size = 24 bytes
TYPE DBPROPINFOSET DWORD
 rgPropertyInfos AS DBPROPINFO PTR
 cPropertyInfos AS DWORD ' ULONG
 guidPropertySet AS GUID ' GUID
END TYPE
'typedef DWORD DBPROPOPTIONS;
'// DBPROPOPTIONS_SETIFCHEAP is deprecated; use DBPROPOPTIONS_OPTIONAL instead.
' DBPROPOPTIONSENUM
%EQUATE `DBPROPOPTIONS_REQUIRED = 0
%EQUATE `DBPROPOPTIONS_SETIFCHEAP = &H1
'// DBPROPOPTIONS_SETIFCHEAP is deprecated; use DBPROPOPTIONS_OPTIONAL instead.
%EQUATE `DBPROPOPTIONS_OPTIONAL = &H1
'typedef DWORD DBPROPSTATUS;
' DBPROPSTATUSENUM
%EQUATE `DBPROPSTATUS_OK = 0
%EQUATE `DBPROPSTATUS_NOTSUPPORTED = 1
%EQUATE `DBPROPSTATUS_BADVALUE = 2
%EQUATE `DBPROPSTATUS_BADOPTION = 3
%EQUATE `DBPROPSTATUS_BADCOLUMN = 4
%EQUATE `DBPROPSTATUS_NOTALLSETTABLE = 5
%EQUATE `DBPROPSTATUS_NOTSETTABLE = 6
%EQUATE `DBPROPSTATUS_NOTSET = 7
%EQUATE `DBPROPSTATUS_CONFLICTING = 8
' DBPROPSTATUSENUM21
%EQUATE `DBPROPSTATUS_NOTAVAILAVLE = 9
' // Size = 52 bytes
TYPE DBPROP DWORD
 dwPropertyID AS DWORD ' DBPROPID
 dwOptions AS DWORD ' DBPROPOPTIONS
 dwStatus AS DWORD ' DBPROPSTATUS
 colid AS DBID ' DBID
 vValue AS tagVARIANT ' VARIANT
END TYPE
' // Size = 24 bytes
TYPE DBPROPSET DWORD
 rgProperties AS DBPROP PTR ' DBPROP *
 cProperties AS DWORD ' ULONG
 guidPropertySet AS GUID ' GUID
END TYPE
%EQUATE `DBPARAMTYPE_INPUT = &H01
%EQUATE `DBPARAMTYPE_INPUTOUTPUT = &H02
%EQUATE `DBPARAMTYPE_OUTPUT = &H03
%EQUATE `DBPARAMTYPE_RETURNVALUE = &H04
%EQUATE `DB_PT_UNKNOWN = &H01
%EQUATE `DB_PT_PROCEDURE = &H02
%EQUATE `DB_PT_FUNCTION = &H03
%EQUATE `DB_REMOTE = &H01
%EQUATE `DB_LOCAL_SHARED = &H02
%EQUATE `DB_LOCAL_EXCLUSIVE = &H03
%EQUATE `DB_COLLATION_ASC = &H01
%EQUATE `DB_COLLATION_DESC = &H02
%EQUATE `DB_UNSEARCHABLE = &H01
%EQUATE `DB_LIKE_ONLY = &H02
%EQUATE `DB_ALL_EXCEPT_LIKE = &H03
%EQUATE `DB_SEARCHABLE = &H04
%EQUATE `MDTREEOP_CHILDREN = &H01
%EQUATE `MDTREEOP_SIBLINGS = &H02
%EQUATE `MDTREEOP_PARENT = &H04
%EQUATE `MDTREEOP_SELF = &H08
%EQUATE `MDTREEOP_DESCENDANTS = &H10
%EQUATE `MDTREEOP_ANCESTORS = &H20
%EQUATE `MD_DIMTYPE_UNKNOWN = &H00
%EQUATE `MD_DIMTYPE_TIME = &H01
%EQUATE `MD_DIMTYPE_MEASURE = &H02
%EQUATE `MD_DIMTYPE_OTHER = &H03
%EQUATE `MDLEVEL_TYPE_UNKNOWN = &H0000
%EQUATE `MDLEVEL_TYPE_REGULAR = &H0000
%EQUATE `MDLEVEL_TYPE_ALL = &H0001
%EQUATE `MDLEVEL_TYPE_CALCULATED = &H0002
%EQUATE `MDLEVEL_TYPE_TIME = &H0004
%EQUATE `MDLEVEL_TYPE_RESERVED1 = &H0008
%EQUATE `MDLEVEL_TYPE_TIME_YEARS = &H0014
%EQUATE `MDLEVEL_TYPE_TIME_HALF_YEAR = &H0024
%EQUATE `MDLEVEL_TYPE_TIME_QUARTERS = &H0044
%EQUATE `MDLEVEL_TYPE_TIME_MONTHS = &H0084
%EQUATE `MDLEVEL_TYPE_TIME_WEEKS = &H0104
%EQUATE `MDLEVEL_TYPE_TIME_DAYS = &H0204
%EQUATE `MDLEVEL_TYPE_TIME_HOURS = &H0304
%EQUATE `MDLEVEL_TYPE_TIME_MINUTES = &H0404
%EQUATE `MDLEVEL_TYPE_TIME_SECONDS = &H0804
%EQUATE `MDLEVEL_TYPE_TIME_UNDEFINED = &H1004
%EQUATE `MDMEASURE_AGGR_UNKNOWN = &H00
%EQUATE `MDMEASURE_AGGR_SUM = &H01
%EQUATE `MDMEASURE_AGGR_COUNT = &H02
%EQUATE `MDMEASURE_AGGR_MIN = &H03
%EQUATE `MDMEASURE_AGGR_MAX = &H04
%EQUATE `MDMEASURE_AGGR_AVG = &H05
%EQUATE `MDMEASURE_AGGR_VAR = &H06
%EQUATE `MDMEASURE_AGGR_STD = &H07
%EQUATE `MDMEASURE_AGGR_CALCULATED = &H7f
%EQUATE `MDPROP_MEMBER = &H01
%EQUATE `MDPROP_CELL = &H02
%EQUATE `MDMEMBER_TYPE_UNKNOWN = &H00
%EQUATE `MDMEMBER_TYPE_REGULAR = &H01
%EQUATE `MDMEMBER_TYPE_ALL = &H02
%EQUATE `MDMEMBER_TYPE_MEASURE = &H03
%EQUATE `MDMEMBER_TYPE_FORMULA = &H04
%EQUATE `MDMEMBER_TYPE_RESERVE1 = &H05
%EQUATE `MDMEMBER_TYPE_RESERVE2 = &H06
%EQUATE `MDMEMBER_TYPE_RESERVE3 = &H07
%EQUATE `MDMEMBER_TYPE_RESERVE4 = &H08
%EQUATE `MDDISPINFO_DRILLED_DOWN = &H00010000
%EQUATE `MDDISPINFO_PARENT_SAME_AS_PREV = &H00020000
'typedef DWORD DBINDEX_COL_ORDER;
' DBINDEX_COL_ORDERENUM
%EQUATE `DBINDEX_COL_ORDER_ASC = 0
%EQUATE `DBINDEX_COL_ORDER_DESC = %DBINDEX_COL_ORDER_ASC + 1
' // Size = 8 bytes
TYPE DBINDEXCOLUMNDESC DWORD
 pColumnID AS DBID PTR ' DBID *
 eIndexColOrder AS LONG ' DBINDEX_COL_ORDER
END TYPE
' // Size = 52 bytes
TYPE DBCOLUMNDESC BYTE
 pwszTypeName AS WSTRINGZ PTR
 pTypeInfo AS DWORD ' ITypeInfo *
 rgPropertySets AS DBPROPSET PTR ' DBPROPSET *
 pclsid AS GUID PTR ' CLSID
 cPropertySets AS DWORD ' ULONG
 ulColumnSize AS DWORD ' DBLENGTH
 dbcid AS DBID ' DBID
 wType AS WORD ' DBTYPE
 bPrecision AS BYTE ' BYTE
 bScale AS BYTE ' BYTE
END TYPE
' // Size = 48 bytes
TYPE DBCOLUMNACCESS BYTE
 pData AS DWORD ' void *
 columnid AS DBID ' DBID
 cbDataLen AS DWORD ' DBLENGTH
 dwStatus AS DWORD ' DBSTATUS
 cbMaxLen AS DWORD ' DBLENGTH
 dwReserved AS DWORD ' DB_DWRESERVE
 wType AS WORD ' DBTYPE
 bPrecision AS BYTE ' BYTE
 bScale AS BYTE ' BYTE
END TYPE
'typedef DWORD DBCOLUMNDESCFLAGS;
' DBCOLUMNDESCFLAGSENUM
%EQUATE `DBCOLUMNDESCFLAGS_TYPENAME = &H1
%EQUATE `DBCOLUMNDESCFLAGS_ITYPEINFO = &H2
%EQUATE `DBCOLUMNDESCFLAGS_PROPERTIES = &H4
%EQUATE `DBCOLUMNDESCFLAGS_CLSID = &H8
%EQUATE `DBCOLUMNDESCFLAGS_COLSIZE = &H10
%EQUATE `DBCOLUMNDESCFLAGS_DBCID = &H20
%EQUATE `DBCOLUMNDESCFLAGS_WTYPE = &H40
%EQUATE `DBCOLUMNDESCFLAGS_PRECISION = &H80
%EQUATE `DBCOLUMNDESCFLAGS_SCALE = &H100
'typedef DWORD DBEVENTPHASE;
' DBEVENTPHASEENUM
%EQUATE `DBEVENTPHASE_OKTODO = 0
%EQUATE `DBEVENTPHASE_ABOUTTODO = %DBEVENTPHASE_OKTODO + 1
%EQUATE `DBEVENTPHASE_SYNCHAFTER = %DBEVENTPHASE_ABOUTTODO + 1
%EQUATE `DBEVENTPHASE_FAILEDTODO = %DBEVENTPHASE_SYNCHAFTER + 1
%EQUATE `DBEVENTPHASE_DIDEVENT = %DBEVENTPHASE_FAILEDTODO + 1
'typedef DWORD DBREASON;
' DBREASONENUM
%EQUATE `DBREASON_ROWSET_FETCHPOSITIONCHANGE = 0
%EQUATE `DBREASON_ROWSET_RELEASE = %DBREASON_ROWSET_FETCHPOSITIONCHANGE + 1
%EQUATE `DBREASON_COLUMN_SET = %DBREASON_ROWSET_RELEASE + 1
%EQUATE `DBREASON_COLUMN_RECALCULATED = %DBREASON_COLUMN_SET + 1
%EQUATE `DBREASON_ROW_ACTIVATE = %DBREASON_COLUMN_RECALCULATED + 1
%EQUATE `DBREASON_ROW_RELEASE = %DBREASON_ROW_ACTIVATE + 1
%EQUATE `DBREASON_ROW_DELETE = %DBREASON_ROW_RELEASE + 1
%EQUATE `DBREASON_ROW_FIRSTCHANGE = %DBREASON_ROW_DELETE + 1
%EQUATE `DBREASON_ROW_INSERT = %DBREASON_ROW_FIRSTCHANGE + 1
%EQUATE `DBREASON_ROW_RESYNCH = %DBREASON_ROW_INSERT + 1
%EQUATE `DBREASON_ROW_UNDOCHANGE = %DBREASON_ROW_RESYNCH + 1
%EQUATE `DBREASON_ROW_UNDOINSERT = %DBREASON_ROW_UNDOCHANGE + 1
%EQUATE `DBREASON_ROW_UNDODELETE = %DBREASON_ROW_UNDOINSERT + 1
%EQUATE `DBREASON_ROW_UPDATE = %DBREASON_ROW_UNDODELETE + 1
%EQUATE `DBREASON_ROWSET_CHANGED = %DBREASON_ROW_UPDATE + 1
' DBREASONENUM15
%EQUATE `DBREASON_ROWPOSITION_CHANGED = %DBREASON_ROWSET_CHANGED + 1
%EQUATE `DBREASON_ROWPOSITION_CHAPTERCHANGED = %DBREASON_ROWPOSITION_CHANGED + 1
%EQUATE `DBREASON_ROWPOSITION_CLEARED = %DBREASON_ROWPOSITION_CHAPTERCHANGED + 1
%EQUATE `DBREASON_ROW_ASYNCHINSERT = %DBREASON_ROWPOSITION_CLEARED + 1
'typedef DWORD DBCOMPAREOP;
' DBCOMPAREOPSENUM
%EQUATE `DBCOMPAREOPS_LT = 0
%EQUATE `DBCOMPAREOPS_LE = 1
%EQUATE `DBCOMPAREOPS_EQ = 2
%EQUATE `DBCOMPAREOPS_GE = 3
%EQUATE `DBCOMPAREOPS_GT = 4
%EQUATE `DBCOMPAREOPS_BEGINSWITH = 5
%EQUATE `DBCOMPAREOPS_CONTAINS = 6
%EQUATE `DBCOMPAREOPS_NE = 7
%EQUATE `DBCOMPAREOPS_IGNORE = 8
%EQUATE `DBCOMPAREOPS_CASESENSITIVE = &H1000
%EQUATE `DBCOMPAREOPS_CASEINSENSITIVE = &H2000
' DBCOMPAREOPSENUM20
%EQUATE `DBCOMPAREOPS_NOTBEGINSWITH = 9
%EQUATE `DBCOMPAREOPS_NOTCONTAINS = 10
'typedef DWORD DBASYNCHOP;
' DBASYNCHOPENENUM
%EQUATE `DBASYNCHOP_OPEN = 0
'typedef DWORD DBASYNCHPHASE;
' DBASYNCHPHASEENUM
%EQUATE `DBASYNCHPHASE_INITIALIZATION = 0
%EQUATE `DBASYNCHPHASE_POPULATION = %DBASYNCHPHASE_INITIALIZATION + 1
%EQUATE `DBASYNCHPHASE_COMPLETE = %DBASYNCHPHASE_POPULATION + 1
%EQUATE `DBASYNCHPHASE_CANCELED = %DBASYNCHPHASE_COMPLETE + 1
%EQUATE `DB_COUNTUNAVAILABLE = -1
'typedef DWORD DBSORT;
' DBSORTENUM
%EQUATE `DBSORT_ASCENDING = 0
%EQUATE `DBSORT_DESCENDING = %DBSORT_ASCENDING + 1
'typedef DWORD DBCOMMANDPERSISTFLAG;
' DBCOMMANDPERSISTFLAGENUM
%EQUATE `DBCOMMANDPERSISTFLAG_NOSAVE = &H1
' DBCOMMANDPERSISTFLAGENUM21
%EQUATE `DBCOMMANDPERSISTFLAG_DEFAULT = 0
%EQUATE `DBCOMMANDPERSISTFLAG_PERSISTVIEW = &H2
%EQUATE `DBCOMMANDPERSISTFLAG_PERSISTPROCEDURE = &H4
'typedef DWORD DBCONSTRAINTTYPE;
' DBCONSTRAINTTYPEENUM
%EQUATE `DBCONSTRAINTTYPE_UNIQUE = 0
%EQUATE `DBCONSTRAINTTYPE_FOREIGNKEY = &H1
%EQUATE `DBCONSTRAINTTYPE_PRIMARYKEY = &H2
%EQUATE `DBCONSTRAINTTYPE_CHECK = &H3
'typedef DWORD DBUPDELRULE;
' DBUPDELRULEENUM
%EQUATE `DBUPDELRULE_NOACTION = 0
%EQUATE `DBUPDELRULE_CASCADE = &H1
%EQUATE `DBUPDELRULE_SETNULL = &H2
%EQUATE `DBUPDELRULE_SETDEFAULT = &H3
'typedef DWORD DBMATCHTYPE;
' DBMATCHTYPEENUM
%EQUATE `DBMATCHTYPE_FULL = 0
%EQUATE `DBMATCHTYPE_NONE = &H1
%EQUATE `DBMATCHTYPE_PARTIAL = &H2
'typedef DWORD DBDEFERRABILITY;
' DBDEFERRABILITYENUM
%EQUATE `DBDEFERRABILITY_DEFERRED = &H1
%EQUATE `DBDEFERRABILITY_DEFERRABLE = &H2
' // Size = 56 bytes
TYPE DBCONSTRAINTDESC DWORD
 pConstraintID AS DBID PTR ' DBID *
 ConstraintType AS DWORD ' DBCONSTRAINTTYPE
 cColumns AS DWORD ' DBORDINAL
 rgColumnList AS DBID PTR ' DBID* [array]
 pReferencedTableID AS DBID PTR ' DBID
 cForeignKeyColumns AS DWORD ' DBORDINAL
 rgForeignKeyColumnList AS DBID PTR ' DBID* [array]
 pwszConstraintText AS WSTRINGZ PTR ' OLECHAR
 UpdateRule AS DWORD ' DBUPDELRULE
 DeleteRule AS DWORD ' DBUPDELRULE
 MatchType AS DWORD ' DBMATCHTYPE
 Deferrability AS DWORD ' DBDEFERRABILITY
 cReserved AS DWORD ' DB_URESERVE
 rgReserved AS DBPROPSET PTR ' DBPROPSET * [array]
END TYPE
%EQUATE `MDFF_BOLD = &H01
%EQUATE `MDFF_ITALIC = &H02
%EQUATE `MDFF_UNDERLINE = &H04
%EQUATE `MDFF_STRIKEOUT = &H08
' // Size = 24 bytes
TYPE MDAXISINFO DWORD
 cbSize AS DWORD ' DBLENGTH
 iAxis AS DWORD ' DBCOUNTITEM
 cDimensions AS DWORD ' DBCOUNTITEM
 cCoordinates AS DWORD ' DBCOUNTITEM
 rgcColumns AS DWORD ' DBORDINAL *
 rgpwszDimensionNames AS WSTRINGZ PTR ' LPOLESTR *
END TYPE
'#define PMDAXISINFO_GETAT(rgAxisInfo, iAxis) ((MDAXISINFO *)(((BYTE *)(rgAxisInfo)) +((iAxis) * (rgAxisInfo)[0].cbSize)))
'#define MDAXISINFO_GETAT(rgAxisInfo, iAxis) (*PMDAXISINFO_GETAT((rgAxisInfo), (iAxis)))
%EQUATE `MDAXIS_COLUMNS = &H00000000
%EQUATE `MDAXIS_ROWS = &H00000001
%EQUATE `MDAXIS_PAGES = &H00000002
%EQUATE `MDAXIS_SECTIONS = &H00000003
%EQUATE `MDAXIS_CHAPTERS = &H00000004
%EQUATE `MDAXIS_SLICERS = &Hffffffff
' // Size = 56 bytes
TYPE RMTPACK DWORD
 pISeqStream AS DWORD ' ISequentialStream *
 cbData AS DWORD ' ULONG
 cBSTR AS DWORD ' ULONG
 rgBSTR AS DWORD ' BSTR * [array]
 cVARIANT AS DWORD ' ULONG
 rgVARIANT AS tagVARIANT PTR ' VARIANT * [array]
 cIDISPATCH AS DWORD ' ULONG
 rgIDISPATCH AS DWORD PTR ' IDispatch ** [array]
 cIUNKNOWN AS DWORD ' ULONG
 rgIUNKNOWN AS DWORD PTR ' IUnknown ** [array]
 cPROPVARIANT AS DWORD ' ULONG
 rgPROPVARIANT AS PROPVARIANT PTR ' PROPVARIANT * [array]
 cArray AS DWORD ' ULONG
 rgArray AS tagVARIANT PTR ' VARIANT * [array]
END TYPE
#ENDIF ' /* __DBStructureDefinitions_INTERFACE_DEFINED__ */
'//
'// IID values
'//
$IID_IAccessor = GUID$("{0C733A8C-2A1C-11CE-ADE5-00AA0044773D}")
$IID_IAlterIndex = GUID$("{0C733AA6-2A1C-11CE-ADE5-00AA0044773D}")
$IID_IAlterTable = GUID$("{0C733AA5-2A1C-11CE-ADE5-00AA0044773D}")
$IID_IBindResource = GUID$("{0C733AB1-2A1C-11CE-ADE5-00AA0044773D}")
$IID_IChapteredRowset = GUID$("{0C733A93-2A1C-11CE-ADE5-00AA0044773D}")
$IID_IColumnsInfo = GUID$("{0C733A11-2A1C-11CE-ADE5-00AA0044773D}")
$IID_IColumnsInfo2 = GUID$("{0C733AB8-2A1C-11CE-ADE5-00AA0044773D}")
$IID_IColumnsRowset = GUID$("{0C733A10-2A1C-11CE-ADE5-00AA0044773D}")
$IID_ICommand = GUID$("{0C733A63-2A1C-11CE-ADE5-00AA0044773D}")
$IID_ICommandPersist = GUID$("{0C733AA7-2A1C-11CE-ADE5-00AA0044773D}")
$IID_ICommandPrepare = GUID$("{0C733A26-2A1C-11CE-ADE5-00AA0044773D}")
$IID_ICommandProperties = GUID$("{0C733A79-2A1C-11CE-ADE5-00AA0044773D}")
$IID_ICommandStream = GUID$("{0C733ABF-2A1C-11CE-ADE5-00AA0044773D}")
$IID_ICommandText = GUID$("{0C733A27-2A1C-11CE-ADE5-00AA0044773D}")
$IID_ICommandWithParameters = GUID$("{0C733A64-2A1C-11CE-ADE5-00AA0044773D}")
$IID_IConvertType = GUID$("{0C733A88-2A1C-11CE-ADE5-00AA0044773D}")
$IID_ICreateRow = GUID$("{0C733AB2-2A1C-11CE-ADE5-00AA0044773D}")
$IID_IDBAsynchNotify = GUID$("{0C733A96-2A1C-11CE-ADE5-00AA0044773D}")
$IID_IDBAsynchStatus = GUID$("{0C733A95-2A1C-11CE-ADE5-00AA0044773D}")
$IID_IDBBinderProperties = GUID$("{0C733AB3-2A1C-11CE-ADE5-00AA0044773D}")
$IID_IDBCreateCommand = GUID$("{0C733A1D-2A1C-11CE-ADE5-00AA0044773D}")
$IID_IDBCreateSession = GUID$("{0C733A5D-2A1C-11CE-ADE5-00AA0044773D}")
$IID_IDBDataSourceAdmin = GUID$("{0C733A7A-2A1C-11CE-ADE5-00AA0044773D}")
$IID_IDBInfo = GUID$("{0C733A89-2A1C-11CE-ADE5-00AA0044773D}")
$IID_IDBInitialize = GUID$("{0C733A8B-2A1C-11CE-ADE5-00AA0044773D}")
$IID_IDBProperties = GUID$("{0C733A8A-2A1C-11CE-ADE5-00AA0044773D}")
$IID_IDBSchemaRowset = GUID$("{0C733A7B-2A1C-11CE-ADE5-00AA0044773D}")
$IID_IErrorLookup = GUID$("{0C733A66-2A1C-11CE-ADE5-00AA0044773D}")
$IID_IErrorRecords = GUID$("{0C733A67-2A1C-11CE-ADE5-00AA0044773D}")
$IID_IGetDataSource = GUID$("{0C733A75-2A1C-11CE-ADE5-00AA0044773D}")
$IID_IGetRow = GUID$("{0C733AAF-2A1C-11CE-ADE5-00AA0044773D}")
$IID_IGetSession = GUID$("{0C733ABA-2A1C-11CE-ADE5-00AA0044773D}")
$IID_IGetSourceRow = GUID$("{0C733ABB-2A1C-11CE-ADE5-00AA0044773D}")
$IID_IIndexDefinition = GUID$("{0C733A68-2A1C-11CE-ADE5-00AA0044773D}")
$IID_IMDDataset = GUID$("{A07CCCD1-8148-11D0-87BB-00C04FC33942}")
$IID_IMDFind = GUID$("{A07CCCD2-8148-11D0-87BB-00C04FC33942}")
$IID_IMDRangeRowset = GUID$("{0C733AA0-2A1C-11CE-ADE5-00AA0044773D}")
$IID_IMultipleResults = GUID$("{0C733A90-2A1C-11CE-ADE5-00AA0044773D}")
$IID_IObjectAccessControl = GUID$("{0C733AA3-2A1C-11CE-ADE5-00AA0044773D}")
$IID_IOpenRowset = GUID$("{0C733A69-2A1C-11CE-ADE5-00AA0044773D}")
$IID_IParentRowset = GUID$("{0C733AAA-2A1C-11CE-ADE5-00AA0044773D}")
$IID_IQuery = GUID$("{0C733A51-2A1C-11CE-ADE5-00AA0044773D}")
$IID_IReadData = GUID$("{0C733A6A-2A1C-11CE-ADE5-00AA0044773D}")
$IID_IRegisterProvider = GUID$("{0C733AB9-2A1C-11CE-ADE5-00AA0044773D}")
$IID_IRow = GUID$("{0C733AB4-2A1C-11CE-ADE5-00AA0044773D}")
$IID_IRowChange = GUID$("{0C733AB5-2A1C-11CE-ADE5-00AA0044773D}")
$IID_IRowSchemaChange = GUID$("{0C733AAE-2A1C-11CE-ADE5-00AA0044773D}")
$IID_IRowPosition = GUID$("{0C733A94-2A1C-11CE-ADE5-00AA0044773D}")
$IID_IRowPositionChange = GUID$("{0997A571-126E-11D0-9F8A-00A0C9A0631E}")
$IID_IRowset = GUID$("{0C733A7C-2A1C-11CE-ADE5-00AA0044773D}")
$IID_IRowsetBookmark = GUID$("{0C733AC2-2A1C-11CE-ADE5-00AA0044773D}")
$IID_IRowsetChange = GUID$("{0C733A05-2A1C-11CE-ADE5-00AA0044773D}")
$IID_IRowsetChapterMember = GUID$("{0C733AA8-2A1C-11CE-ADE5-00AA0044773D}")
$IID_IRowsetCurrentIndex = GUID$("{0C733ABD-2A1C-11CE-ADE5-00AA0044773D}")
$IID_IRowsetExactScroll = GUID$("{0C733A7F-2A1C-11CE-ADE5-00AA0044773D}")
$IID_IRowsetFind = GUID$("{0C733A9D-2A1C-11CE-ADE5-00AA0044773D}")
$IID_IRowsetIdentity = GUID$("{0C733A09-2A1C-11CE-ADE5-00AA0044773D}")
$IID_IRowsetIndex = GUID$("{0C733A82-2A1C-11CE-ADE5-00AA0044773D}")
$IID_IRowsetInfo = GUID$("{0C733A55-2A1C-11CE-ADE5-00AA0044773D}")
$IID_IRowsetLocate = GUID$("{0C733A7D-2A1C-11CE-ADE5-00AA0044773D}")
$IID_IRowsetNotify = GUID$("{0C733A83-2A1C-11CE-ADE5-00AA0044773D}")
$IID_IRowsetRefresh = GUID$("{0C733AA9-2A1C-11CE-ADE5-00AA0044773D}")
$IID_IRowsetResynch = GUID$("{0C733A84-2A1C-11CE-ADE5-00AA0044773D}")
$IID_IRowsetScroll = GUID$("{0C733A7E-2A1C-11CE-ADE5-00AA0044773D}")
$IID_IRowsetUpdate = GUID$("{0C733A6D-2A1C-11CE-ADE5-00AA0044773D}")
$IID_IRowsetView = GUID$("{0C733A99-2A1C-11CE-ADE5-00AA0044773D}")
$IID_IScopedOperations = GUID$("{0C733AB0-2A1C-11CE-ADE5-00AA0044773D}")
$IID_ISecurityInfo = GUID$("{0C733AA4-2A1C-11CE-ADE5-00AA0044773D}")
$IID_ISessionProperties = GUID$("{0C733A85-2A1C-11CE-ADE5-00AA0044773D}")
$IID_ISourcesRowset = GUID$("{0C733A1E-2A1C-11CE-ADE5-00AA0044773D}")
$IID_ISQLErrorInfo = GUID$("{0C733A74-2A1C-11CE-ADE5-00AA0044773D}")
$IID_ISupportErrorInfo = GUID$("{DF0B3D60-548F-101B-8E65-08002B2BD119}")
$IID_ITableCreation = GUID$("{0C733ABC-2A1C-11CE-ADE5-00AA0044773D}")
$IID_ITableDefinition = GUID$("{0C733A86-2A1C-11CE-ADE5-00AA0044773D}")
$IID_ITableDefinitionWithConstraints = GUID$("{0C733AAB-2A1C-11CE-ADE5-00AA0044773D}")
$IID_ITransactionJoin = GUID$("{0C733A5E-2A1C-11CE-ADE5-00AA0044773D}")
$IID_ITransactionLocal = GUID$("{0C733A5F-2A1C-11CE-ADE5-00AA0044773D}")
$IID_ITransactionObject = GUID$("{0C733A60-2A1C-11CE-ADE5-00AA0044773D}")
$IID_ITrusteeAdmin = GUID$("{0C733AA1-2A1C-11CE-ADE5-00AA0044773D}")
$IID_ITrusteeGroupAdmin = GUID$("{0C733AA2-2A1C-11CE-ADE5-00AA0044773D}")
$IID_IViewChapter = GUID$("{0C733A98-2A1C-11CE-ADE5-00AA0044773D}")
$IID_IViewFilter = GUID$("{0C733A9B-2A1C-11CE-ADE5-00AA0044773D}")
$IID_IViewRowset = GUID$("{0C733A97-2A1C-11CE-ADE5-00AA0044773D}")
$IID_IViewSort = GUID$("{0C733A9A-2A1C-11CE-ADE5-00AA0044773D}")
' ########################################################################################
' IAccessor interface
' IID = 0C733A8C-2A1C-11CE-ADE5-00AA0044773D
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%IAccessor_INTERFACE_DEFINED)
 %IAccessor_INTERFACE_DEFINED = 1
'typedef DWORD DBACCESSORFLAGS;
' DBACCESSORFLAGSENUM
%EQUATE `DBACCESSOR_INVALID = 0
%EQUATE `DBACCESSOR_PASSBYREF = &H1
%EQUATE `DBACCESSOR_ROWDATA = &H2
%EQUATE `DBACCESSOR_PARAMETERDATA = &H4
%EQUATE `DBACCESSOR_OPTIMIZED = &H8
%EQUATE `DBACCESSOR_INHERITED = &H10
'typedef DWORD DBBINDSTATUS;
' DBBINDSTATUSENUM
%EQUATE `DBBINDSTATUS_OK = 0
%EQUATE `DBBINDSTATUS_BADORDINAL = 1
%EQUATE `DBBINDSTATUS_UNSUPPORTEDCONVERSION = 2
%EQUATE `DBBINDSTATUS_BADBINDINFO = 3
%EQUATE `DBBINDSTATUS_BADSTORAGEFLAGS = 4
%EQUATE `DBBINDSTATUS_NOINTERFACE = 5
%EQUATE `DBBINDSTATUS_MULTIPLESTORAGE = 6
INTERFACE IAccessor $IID_IAccessor
 INHERIT IUnknown
 ' =====================================================================================
 METHOD AddRefAccessor ( ' VTable offset = 12
 BYVAL hAccessor AS DWORD
 , BYREF pcRefCount AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD CreateAccessor ( ' VTable offset = 16
 BYVAL dwAccessorFlags AS DWORD
 , BYVAL cBindings AS DWORD
 , BYREF rgBindings AS DBBINDING
 , BYVAL cbRowSize AS DWORD
 , BYREF phAccessor AS DWORD
 , BYREF rgStatus AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD GetBindings ( ' VTable offset = 20
 BYVAL hAccessor AS DWORD
 , BYREF pdwAccessorFlags AS DWORD
 , BYREF pcBindings AS DWORD
 , BYREF prgBindings AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD ReleaseAccessor ( ' VTable offset = 24
 BYVAL hAccessor AS DWORD
 , BYREF pcRefCount AS DWORD
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __IAccessor_INTERFACE_DEFINED__ */
' ########################################################################################
' IRowset interface
' IID = 0C733A7C-2A1C-11CE-ADE5-00AA0044773D
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%IRowset_INTERFACE_DEFINED)
 %IRowset_INTERFACE_DEFINED = 1
'typedef DWORD DBROWOPTIONS;
INTERFACE IRowset $IID_IRowset
 INHERIT IUnknown
 ' =====================================================================================
 METHOD AddRefRows ( ' VTable offset = 12
 BYVAL cRows AS DWORD
 , BYREF rghRows AS DWORD
 , BYREF rgRefCounts AS DWORD
 , BYREF rgRowStatus AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD GetData ( ' VTable offset = 16
 BYVAL hRow AS DWORD
 , BYVAL hAccessor AS DWORD
 , BYVAL pData AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD GetNextRows ( ' VTable offset = 20
 BYVAL hReserved AS DWORD
 , BYVAL lRowsOffset AS LONG
 , BYVAL cRows AS LONG
 , BYREF pcRowsObtained AS DWORD
 , BYREF prghRows AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD ReleaseRows ( ' VTable offset = 24
 BYVAL cRows AS DWORD
 , BYREF rghRows AS DWORD
 , BYREF rgRowOptions AS DWORD
 , BYREF rgRefCounts AS DWORD
 , BYREF rgRowStatus AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD RestartPosition ( ' VTable offset = 28
 BYVAL hReserved AS DWORD
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __IRowset_INTERFACE_DEFINED__ */
' ########################################################################################
' IRowsetInfo interface
' IID = 0C733A55-2A1C-11CE-ADE5-00AA0044773D
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%IRowsetInfo_INTERFACE_DEFINED)
 %IRowsetInfo_INTERFACE_DEFINED = 1
INTERFACE IRowsetInfo $IID_IRowsetInfo
 INHERIT IUnknown
 ' =====================================================================================
 METHOD GetProperties ( ' VTable offset = 12
 BYVAL cPropertyIDSets AS DWORD
 , BYREF rgPropertyIDSets AS DBPROPIDSET
 , BYREF pcPropertySets AS DWORD
 , BYREF prgPropertySets AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD GetReferencedRowset ( ' VTable offset = 16
 BYVAL iOrdinal AS DWORD
 , BYREF riid AS GUID
 , BYREF ppReferencedRowset AS IUnknown
 ) AS LONG
 ' =====================================================================================
 METHOD GetSpecification ( ' VTable offset = 20
 BYREF riid AS GUID
 , BYREF ppSpecification AS IUnknown
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __IRowsetInfo_INTERFACE_DEFINED__ */
' ########################################################################################
' IRowsetLocate interface
' IID = 0C733A7D-2A1C-11CE-ADE5-00AA0044773D
' Inherited interface = IRowset
' ########################################################################################
#IF NOT %DEF(%IRowsetLocate_INTERFACE_DEFINED)
 %IRowsetLocate_INTERFACE_DEFINED = 1
'typedef DWORD DBCOMPARE;
' DBCOMPAREENUM
%EQUATE `DBCOMPARE_LT = 0
%EQUATE `DBCOMPARE_EQ = %DBCOMPARE_LT + 1
%EQUATE `DBCOMPARE_GT = %DBCOMPARE_EQ + 1
%EQUATE `DBCOMPARE_NE = %DBCOMPARE_GT + 1
%EQUATE `DBCOMPARE_NOTCOMPARABLE = %DBCOMPARE_NE + 1
INTERFACE IRowsetLocate $IID_IRowsetLocate
 INHERIT IUnknown
 ' =====================================================================================
 METHOD AddRefRows ( ' VTable offset = 12
 BYVAL cRows AS DWORD
 , BYREF rghRows AS DWORD
 , BYREF rgRefCounts AS DWORD
 , BYREF rgRowStatus AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD GetData ( ' VTable offset = 16
 BYVAL hRow AS DWORD
 , BYVAL hAccessor AS DWORD
 , BYVAL pData AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD GetNextRows ( ' VTable offset = 20
 BYVAL hReserved AS DWORD
 , BYVAL lRowsOffset AS LONG
 , BYVAL cRows AS LONG
 , BYREF pcRowsObtained AS DWORD
 , BYREF prghRows AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD ReleaseRows ( ' VTable offset = 24
 BYVAL cRows AS DWORD
 , BYREF rghRows AS DWORD
 , BYREF rgRowOptions AS DWORD
 , BYREF rgRefCounts AS DWORD
 , BYREF rgRowStatus AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD RestartPosition ( ' VTable offset = 28
 BYVAL hReserved AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD Compare ( ' VTable offset = 32
 BYVAL hReserved AS DWORD
 , BYVAL cbBookmark1 AS DWORD
 , BYVAL pBookmark1 AS BYTE PTR
 , BYVAL cbBookmark2 AS DWORD
 , BYVAL pBookmark2 AS BYTE PTR
 , BYREF pComparison AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD GetRowsAt ( ' VTable offset = 36
 BYVAL hReserved1 AS DWORD
 , BYVAL hChapter AS DWORD
 , BYVAL cbBookmark AS DWORD
 , BYVAL pBookmark AS BYTE PTR
 , BYVAL lRowsOffset AS LONG
 , BYVAL cRows AS LONG
 , BYREF pcRowsObtained AS DWORD
 , BYREF prghRows AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD GetRowsByBookmark ( ' VTable offset = 40
 BYVAL hChapter AS DWORD
 , BYVAL cRows AS DWORD
 , BYREF rgcbBookmarks AS DWORD
 , BYREF rgpBookmarks AS DWORD
 , BYREF rghRows AS DWORD
 , BYREF rgRowStatus AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD Hash ( ' VTable offset = 44
 BYVAL hChapter AS DWORD
 , BYVAL cBookmarks AS DWORD
 , BYREF rgcbBookmarks AS DWORD
 , BYREF rgpBookmarks AS DWORD
 , BYREF rgHashedValues AS DWORD
 , BYREF rgBookmarkStatus AS DWORD
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __IRowsetLocate_INTERFACE_DEFINED__ */
' ########################################################################################
' IRowsetResynch interface
' IID = 0C733A84-2A1C-11CE-ADE5-00AA0044773D
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%IRowsetResynch_INTERFACE_DEFINED)
 %IRowsetResynch_INTERFACE_DEFINED = 1
INTERFACE IRowsetResynch $IID_IRowsetResynch
 INHERIT IUnknown
 ' =====================================================================================
 METHOD GetVisibleData ( ' VTable offset = 12
 BYVAL hRow AS DWORD
 , BYVAL hAccessor AS DWORD
 , BYVAL pData AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD ResynchRows ( ' VTable offset = 16
 BYVAL cRows AS DWORD
 , BYREF rghRows AS DWORD
 , BYREF pcRowsResynched AS DWORD
 , BYREF prghRowsResynched AS DWORD
 , BYREF prgRowStatus AS DWORD
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __IRowsetResynch_INTERFACE_DEFINED__ */
' ########################################################################################
' IRowsetScroll interface
' IID = 0C733A7E-2A1C-11CE-ADE5-00AA0044773D
' Inherited interface = IRowsetLocate
' ########################################################################################
#IF NOT %DEF(%IRowsetScroll_INTERFACE_DEFINED)
 %IRowsetScroll_INTERFACE_DEFINED = 1
INTERFACE IRowsetScroll $IID_IRowsetScroll
 INHERIT IUnknown
 ' =====================================================================================
 METHOD AddRefRows ( ' VTable offset = 12
 BYVAL cRows AS DWORD
 , BYREF rghRows AS DWORD
 , BYREF rgRefCounts AS DWORD
 , BYREF rgRowStatus AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD GetData ( ' VTable offset = 16
 BYVAL hRow AS DWORD
 , BYVAL hAccessor AS DWORD
 , BYVAL pData AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD GetNextRows ( ' VTable offset = 20
 BYVAL hReserved AS DWORD
 , BYVAL lRowsOffset AS LONG
 , BYVAL cRows AS LONG
 , BYREF pcRowsObtained AS DWORD
 , BYREF prghRows AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD ReleaseRows ( ' VTable offset = 24
 BYVAL cRows AS DWORD
 , BYREF rghRows AS DWORD
 , BYREF rgRowOptions AS DWORD
 , BYREF rgRefCounts AS DWORD
 , BYREF rgRowStatus AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD RestartPosition ( ' VTable offset = 28
 BYVAL hReserved AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD Compare ( ' VTable offset = 32
 BYVAL hReserved AS DWORD
 , BYVAL cbBookmark1 AS DWORD
 , BYVAL pBookmark1 AS BYTE PTR
 , BYVAL cbBookmark2 AS DWORD
 , BYVAL pBookmark2 AS BYTE PTR
 , BYREF pComparison AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD GetRowsAt ( ' VTable offset = 36
 BYVAL hReserved1 AS DWORD
 , BYVAL hChapter AS DWORD
 , BYVAL cbBookmark AS DWORD
 , BYVAL pBookmark AS BYTE PTR
 , BYVAL lRowsOffset AS LONG
 , BYVAL cRows AS LONG
 , BYREF pcRowsObtained AS DWORD
 , BYREF prghRows AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD GetRowsByBookmark ( ' VTable offset = 40
 BYVAL hChapter AS DWORD
 , BYVAL cRows AS DWORD
 , BYREF rgcbBookmarks AS DWORD
 , BYREF rgpBookmarks AS DWORD
 , BYREF rghRows AS DWORD
 , BYREF rgRowStatus AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD Hash ( ' VTable offset = 44
 BYVAL hChapter AS DWORD
 , BYVAL cBookmarks AS DWORD
 , BYREF rgcbBookmarks AS DWORD
 , BYREF rgpBookmarks AS DWORD
 , BYREF rgHashedValues AS DWORD
 , BYREF rgBookmarkStatus AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD GetApproximatePosition ( ' VTable offset = 48
 BYVAL hChapter AS DWORD
 , BYVAL cbBookmark AS DWORD
 , BYVAL pBookmark AS BYTE PTR
 , BYREF pulPosition AS DWORD
 , BYREF pcRows AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD GetRowsAtRatio ( ' VTable offset = 52
 BYVAL hReserved1 AS DWORD
 , BYVAL hChapter AS DWORD
 , BYVAL ulNumerator AS DWORD
 , BYVAL ulDenominator AS DWORD
 , BYVAL cRows AS LONG
 , BYREF pcRowsObtained AS DWORD
 , BYREF prghRows AS DWORD
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __IRowsetScroll_INTERFACE_DEFINED__ */
' ########################################################################################
' IChapteredRowset interface
' IID = 0C733A93-2A1C-11CE-ADE5-00AA0044773D
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%IChapteredRowset_INTERFACE_DEFINED)
 %IChapteredRowset_INTERFACE_DEFINED = 1
INTERFACE IChapteredRowset $IID_IChapteredRowset
 INHERIT IUnknown
 ' =====================================================================================
 METHOD AddRefChapter ( ' VTable offset = 12
 BYVAL hChapter AS DWORD
 , BYREF pcRefCount AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD ReleaseChapter ( ' VTable offset = 16
 BYVAL hChapter AS DWORD
 , BYREF pcRefCount AS DWORD
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __IChapteredRowset_INTERFACE_DEFINED__ */
' ########################################################################################
' IRowsetFind interface
' IID = 0C733A9D-2A1C-11CE-ADE5-00AA0044773D
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%IRowsetFind_INTERFACE_DEFINED)
 %IRowsetFind_INTERFACE_DEFINED = 1
INTERFACE IRowsetFind $IID_IRowsetFind
 INHERIT IUnknown
 ' =====================================================================================
 METHOD FindNextRow ( ' VTable offset = 12
 BYVAL hChapter AS DWORD
 , BYVAL hAccessor AS DWORD
 , BYVAL pFindValue AS DWORD
 , BYVAL CompareOp AS DWORD
 , BYVAL cbBookmark AS DWORD
 , BYVAL pBookmark AS BYTE PTR
 , BYVAL lRowsOffset AS LONG
 , BYVAL cRows AS LONG
 , BYREF pcRowsObtained AS DWORD
 , BYREF prghRows AS DWORD
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __IRowsetFind_INTERFACE_DEFINED__ */
' ########################################################################################
' IRowPosition interface
' IID = 0C733A94-2A1C-11CE-ADE5-00AA0044773D
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%IRowPosition_INTERFACE_DEFINED)
 %IRowPosition_INTERFACE_DEFINED = 1
'typedef DWORD DBPOSITIONFLAGS;
' DBPOSITIONFLAGSENUM
%EQUATE `DBPOSITION_OK = 0
%EQUATE `DBPOSITION_NOROW = %DBPOSITION_OK + 1
%EQUATE `DBPOSITION_BOF = %DBPOSITION_NOROW + 1
%EQUATE `DBPOSITION_EOF = %DBPOSITION_BOF + 1
INTERFACE IRowPosition $IID_IRowPosition
 INHERIT IUnknown
 ' =====================================================================================
 METHOD ClearRowPosition ( ' VTable offset = 12
 ) AS LONG
 ' =====================================================================================
 METHOD GetRowPosition ( ' VTable offset = 16
 BYREF phChapter AS DWORD
 , BYREF phRow AS DWORD
 , BYREF pdwPositionFlags AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD GetRowset ( ' VTable offset = 24
 BYREF riid AS GUID
 , BYREF ppRowset AS IUnknown
 ) AS LONG
 ' =====================================================================================
 METHOD Initialize ( ' VTable offset = 28
 BYVAL pRowset AS IUnknown
 ) AS LONG
 ' =====================================================================================
 METHOD SetRowPosition ( ' VTable offset = 32
 BYVAL hChapter AS DWORD
 , BYVAL hRow AS DWORD
 , BYVAL dwPositionFlags AS DWORD
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __IRowPosition_INTERFACE_DEFINED__ */
' ########################################################################################
' IRowPositionChange interface
' IID = 0997a571-126e-11d0-9f8a-00a0c9a0631e
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%IRowPositionChange_INTERFACE_DEFINED)
 %IRowPositionChange_INTERFACE_DEFINED = 1
INTERFACE IRowPositionChange $IID_IRowPositionChange
 INHERIT IUnknown
 ' =====================================================================================
 METHOD OnRowPositionChange ( ' VTable offset = 12
 BYVAL eReason AS DWORD
 , BYVAL ePhase AS DWORD
 , BYVAL fCantDeny AS LONG
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __IRowPositionChange_INTERFACE_DEFINED__ */
' ########################################################################################
' IViewRowset interface
' IID = 0C733A97-2A1C-11CE-ADE5-00AA0044773D
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%IViewRowset_INTERFACE_DEFINED)
 %IViewRowset_INTERFACE_DEFINED = 1
INTERFACE IViewRowset $IID_IViewRowset
 INHERIT IUnknown
 ' =====================================================================================
 METHOD GetSpecification ( ' VTable offset = 12
 BYREF riid AS GUID
 , BYREF ppObject AS IUnknown
 ) AS LONG
 ' =====================================================================================
 METHOD OpenViewRowset ( ' VTable offset = 16
 BYVAL pUnkOuter AS IUnknown
 , BYREF riid AS GUID
 , BYREF ppRowset AS IUnknown
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __IViewRowset_INTERFACE_DEFINED__ */
' ########################################################################################
' IViewChapter interface
' IID = 0C733A98-2A1C-11CE-ADE5-00AA0044773D
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%IViewChapter_INTERFACE_DEFINED)
 %IViewChapter_INTERFACE_DEFINED = 1
INTERFACE IViewChapter $IID_IViewChapter
 INHERIT IUnknown
 ' =====================================================================================
 METHOD GetSpecification ( ' VTable offset = 12
 BYREF riid AS GUID
 , BYREF ppRowset AS IUnknown
 ) AS LONG
 ' =====================================================================================
 METHOD OpenViewChapter ( ' VTable offset = 16
 BYVAL hSource AS DWORD
 , BYREF phViewChapter AS DWORD
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __IViewChapter_INTERFACE_DEFINED__ */
' ########################################################################################
' IViewSort interface
' IID = 0C733A9A-2A1C-11CE-ADE5-00AA0044773D
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%IViewSort_INTERFACE_DEFINED)
 %IViewSort_INTERFACE_DEFINED = 1
INTERFACE IViewSort $IID_IViewSort
 INHERIT IUnknown
 ' =====================================================================================
 METHOD GetSortOrder ( ' VTable offset = 12
 BYREF pcValues AS DWORD
 , BYREF prgColumns AS DWORD
 , BYREF prgOrders AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD SetSortOrder ( ' VTable offset = 16
 BYVAL cValues AS DWORD
 , BYREF rgColumns AS DWORD
 , BYREF rgOrders AS DWORD
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __IViewSort_INTERFACE_DEFINED__ */
' ########################################################################################
' IViewFilter interface
' IID = 0C733A9B-2A1C-11CE-ADE5-00AA0044773D
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%IViewFilter_INTERFACE_DEFINED)
 %IViewFilter_INTERFACE_DEFINED = 1
INTERFACE IViewFilter $IID_IViewFilter
 INHERIT IUnknown
 ' =====================================================================================
 METHOD GetFilter ( ' VTable offset = 12
 BYVAL hAccessor AS DWORD
 , BYREF pcRows AS DWORD
 , BYREF pCompareOps AS DWORD
 , BYVAL pCriteriaData AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD GetFilterBindings ( ' VTable offset = 16
 BYREF pcBindings AS DWORD
 , BYREF prgBindings AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD SetFilter ( ' VTable offset = 20
 BYVAL hAccessor AS DWORD
 , BYVAL cRows AS DWORD
 , BYREF CompareOps AS DWORD
 , BYVAL pCriteriaData AS DWORD
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __IViewFilter_INTERFACE_DEFINED__ */
' ########################################################################################
' IRowsetView interface
' IID = 0C733A99-2A1C-11CE-ADE5-00AA0044773D
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%IRowsetView_INTERFACE_DEFINED)
 %IRowsetView_INTERFACE_DEFINED = 1
INTERFACE IRowsetView $IID_IRowsetView
 INHERIT IUnknown
 ' =====================================================================================
 METHOD CreateView ( ' VTable offset = 12
 BYVAL pUnkOuter AS IUnknown
 , BYREF riid AS GUID
 , BYREF ppView AS IUnknown
 ) AS LONG
 ' =====================================================================================
 METHOD GetView ( ' VTable offset = 16
 BYVAL hChapter AS DWORD
 , BYREF riid AS GUID
 , BYREF phChapterSource AS DWORD
 , BYREF ppView AS IUnknown
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __IRowsetView_INTERFACE_DEFINED__ */
' ########################################################################################
' IRowsetExactScroll interface
' IID = 0C733A7F-2A1C-11CE-ADE5-00AA0044773D
' Inherited interface = IRowsetScroll
' ########################################################################################
#IF NOT %DEF(%IRowsetExactScroll_INTERFACE_DEFINED)
 %IRowsetExactScroll_INTERFACE_DEFINED = 1
INTERFACE IRowsetExactScroll $IID_IRowsetExactScroll
 INHERIT IUnknown
 ' =====================================================================================
 METHOD AddRefRows ( ' VTable offset = 12
 BYVAL cRows AS DWORD
 , BYREF rghRows AS DWORD
 , BYREF rgRefCounts AS DWORD
 , BYREF rgRowStatus AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD GetData ( ' VTable offset = 16
 BYVAL hRow AS DWORD
 , BYVAL hAccessor AS DWORD
 , BYVAL pData AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD GetNextRows ( ' VTable offset = 20
 BYVAL hReserved AS DWORD
 , BYVAL lRowsOffset AS LONG
 , BYVAL cRows AS LONG
 , BYREF pcRowsObtained AS DWORD
 , BYREF prghRows AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD ReleaseRows ( ' VTable offset = 24
 BYVAL cRows AS DWORD
 , BYREF rghRows AS DWORD
 , BYREF rgRowOptions AS DWORD
 , BYREF rgRefCounts AS DWORD
 , BYREF rgRowStatus AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD RestartPosition ( ' VTable offset = 28
 BYVAL hReserved AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD Compare ( ' VTable offset = 32
 BYVAL hReserved AS DWORD
 , BYVAL cbBookmark1 AS DWORD
 , BYVAL pBookmark1 AS BYTE PTR
 , BYVAL cbBookmark2 AS DWORD
 , BYVAL pBookmark2 AS BYTE PTR
 , BYREF pComparison AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD GetRowsAt ( ' VTable offset = 36
 BYVAL hReserved1 AS DWORD
 , BYVAL hChapter AS DWORD
 , BYVAL cbBookmark AS DWORD
 , BYVAL pBookmark AS BYTE PTR
 , BYVAL lRowsOffset AS LONG
 , BYVAL cRows AS LONG
 , BYREF pcRowsObtained AS DWORD
 , BYREF prghRows AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD GetRowsByBookmark ( ' VTable offset = 40
 BYVAL hChapter AS DWORD
 , BYVAL cRows AS DWORD
 , BYREF rgcbBookmarks AS DWORD
 , BYREF rgpBookmarks AS DWORD
 , BYREF rghRows AS DWORD
 , BYREF rgRowStatus AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD Hash ( ' VTable offset = 44
 BYVAL hChapter AS DWORD
 , BYVAL cBookmarks AS DWORD
 , BYREF rgcbBookmarks AS DWORD
 , BYREF rgpBookmarks AS DWORD
 , BYREF rgHashedValues AS DWORD
 , BYREF rgBookmarkStatus AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD GetApproximatePosition ( ' VTable offset = 48
 BYVAL hChapter AS DWORD
 , BYVAL cbBookmark AS DWORD
 , BYVAL pBookmark AS BYTE PTR
 , BYREF pulPosition AS DWORD
 , BYREF pcRows AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD GetRowsAtRatio ( ' VTable offset = 52
 BYVAL hReserved1 AS DWORD
 , BYVAL hChapter AS DWORD
 , BYVAL ulNumerator AS DWORD
 , BYVAL ulDenominator AS DWORD
 , BYVAL cRows AS LONG
 , BYREF pcRowsObtained AS DWORD
 , BYREF prghRows AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD GetExactPosition ( ' VTable offset = 56
 BYVAL hChapter AS DWORD
 , BYVAL cbBookmark AS DWORD
 , BYVAL pBookmark AS BYTE PTR
 , BYREF pulPosition AS DWORD
 , BYREF pcRows AS DWORD
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __IRowsetExactScroll_INTERFACE_DEFINED__ */
' ########################################################################################
' IRowsetChange interface
' IID = 0C733A05-2A1C-11CE-ADE5-00AA0044773D
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%IRowsetChange_INTERFACE_DEFINED)
 %IRowsetChange_INTERFACE_DEFINED = 1
INTERFACE IRowsetChange $IID_IRowsetChange
 INHERIT IUnknown
 ' =====================================================================================
 METHOD DeleteRows ( ' VTable offset = 12
 BYVAL hReserved AS DWORD
 , BYVAL cRows AS DWORD
 , BYREF rghRows AS DWORD
 , BYREF rgRowStatus AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD SetData ( ' VTable offset = 16
 BYVAL hRow AS DWORD
 , BYVAL hAccessor AS DWORD
 , BYVAL pData AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD InsertRow ( ' VTable offset = 20
 BYVAL hReserved AS DWORD
 , BYVAL hAccessor AS DWORD
 , BYVAL pData AS DWORD
 , BYREF phRow AS DWORD
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __IRowsetChange_INTERFACE_DEFINED__ */
' ########################################################################################
' IRowsetUpdate interface
' IID = 0C733A6D-2A1C-11CE-ADE5-00AA0044773D
' Inherited interface = IRowsetChange
' ########################################################################################
#IF NOT %DEF(%IRowsetUpdate_INTERFACE_DEFINED)
 %IRowsetUpdate_INTERFACE_DEFINED = 1
'typedef DWORD DBPENDINGSTATUS;
' DBPENDINGSTATUSENUM
%EQUATE `DBPENDINGSTATUS_NEW = &H1
%EQUATE `DBPENDINGSTATUS_CHANGED = &H2
%EQUATE `DBPENDINGSTATUS_DELETED = &H4
%EQUATE `DBPENDINGSTATUS_UNCHANGED = &H8
%EQUATE `DBPENDINGSTATUS_INVALIDROW = &H10
INTERFACE IRowsetUpdate $IID_IRowsetUpdate
 INHERIT IUnknown
 ' =====================================================================================
 METHOD DeleteRows ( ' VTable offset = 12
 BYVAL hReserved AS DWORD
 , BYVAL cRows AS DWORD
 , BYREF rghRows AS DWORD
 , BYREF rgRowStatus AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD SetData ( ' VTable offset = 16
 BYVAL hRow AS DWORD
 , BYVAL hAccessor AS DWORD
 , BYVAL pData AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD InsertRow ( ' VTable offset = 20
 BYVAL hReserved AS DWORD
 , BYVAL hAccessor AS DWORD
 , BYVAL pData AS DWORD
 , BYREF phRow AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD GetOriginalData ( ' VTable offset = 24
 BYVAL hRow AS DWORD
 , BYVAL hAccessor AS DWORD
 , BYVAL pData AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD GetPendingRows ( ' VTable offset = 28
 BYVAL hReserved AS DWORD
 , BYVAL dwRowStatus AS DWORD
 , BYREF pcPendingRows AS DWORD
 , BYREF prgPendingRows AS DWORD
 , BYREF prgPendingStatus AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD GetRowStatus ( ' VTable offset = 32
 BYVAL hReserved AS DWORD
 , BYVAL cRows AS DWORD
 , BYREF rghRows AS DWORD
 , BYREF rgPendingStatus AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD Undo ( ' VTable offset = 36
 BYVAL hReserved AS DWORD
 , BYVAL cRows AS DWORD
 , BYREF rghRows AS DWORD
 , BYREF pcRowsUndone AS DWORD
 , BYREF prgRowsUndone AS DWORD
 , BYREF prgRowStatus AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD Update ( ' VTable offset = 40
 BYVAL hReserved AS DWORD
 , BYVAL cRows AS DWORD
 , BYREF rghRows AS DWORD
 , BYREF pcRows AS DWORD
 , BYREF prgRows AS DWORD
 , BYREF prgRowStatus AS DWORD
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __IRowsetUpdate_INTERFACE_DEFINED__ */
' ########################################################################################
' IRowsetIdentity interface
' IID = 0C733A09-2A1C-11CE-ADE5-00AA0044773D
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%IRowsetIdentity_INTERFACE_DEFINED)
 %IRowsetIdentity_INTERFACE_DEFINED = 1
INTERFACE IRowsetIdentity $IID_IRowsetIdentity
 INHERIT IUnknown
 ' =====================================================================================
 METHOD IsSameRow ( ' VTable offset = 12
 BYVAL hThisRow AS DWORD
 , BYVAL hThatRow AS DWORD
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __IRowsetIdentity_INTERFACE_DEFINED__ */
' ########################################################################################
' IRowsetNotify interface
' IID = 0C733A83-2A1C-11CE-ADE5-00AA0044773D
' Inherited interface = IUnknown
' ########################################################################################
'#IF NOT %DEF(%IRowsetNotify_INTERFACE_DEFINED)
' %IRowsetNotify_INTERFACE_DEFINED = 1
'INTERFACE IRowsetNotify $IID_IRowsetNotify
' INHERIT IUnknown
' ' =====================================================================================
' METHOD OnFieldChange ( ' VTable offset = 12
' BYVAL pRowset AS IRowset
' , BYVAL hRow AS DWORD
' , BYVAL cColumns AS DWORD
' , BYREF rgColumns AS DWORD
' , BYVAL eReason AS DWORD
' , BYVAL ePhase AS DWORD
' , BYVAL fCantDeny AS LONG
' ) AS LONG
' ' =====================================================================================
' METHOD OnRowChange ( ' VTable offset = 16
' BYVAL pRowset AS IRowset
' , BYVAL cRows AS DWORD
' , BYREF rghRows AS DWORD
' , BYVAL eReason AS DWORD
' , BYVAL ePhase AS DWORD
' , BYVAL fCantDeny AS LONG
' ) AS LONG
' ' =====================================================================================
' METHOD OnRowChange ( ' VTable offset = 20
' BYVAL pRowset AS IRowset
' , BYVAL eReason AS DWORD
' , BYVAL ePhase AS DWORD
' , BYVAL fCantDeny AS LONG
' ) AS LONG
' ' =====================================================================================
'END INTERFACE
'#ENDIF ' /* __IRowsetNotify_INTERFACE_DEFINED__ */
' ########################################################################################
' IRowsetIndex interface
' IID = 0C733A82-2A1C-11CE-ADE5-00AA0044773D
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%IRowsetIndex_INTERFACE_DEFINED)
 %IRowsetIndex_INTERFACE_DEFINED = 1
'typedef DWORD DBSEEK;
' DBSEEKENUM
%EQUATE `DBSEEK_INVALID = 0
%EQUATE `DBSEEK_FIRSTEQ = &H1
%EQUATE `DBSEEK_LASTEQ = &H2
%EQUATE `DBSEEK_AFTEREQ = &H4
%EQUATE `DBSEEK_AFTER = &H8
%EQUATE `DBSEEK_BEFOREEQ = &H10
%EQUATE `DBSEEK_BEFORE = &H20
%EQUATE `DBSEEK_GE = %DBSEEK_AFTEREQ
%EQUATE `DBSEEK_GT = %DBSEEK_AFTER
%EQUATE `DBSEEK_LE = %DBSEEK_BEFOREEQ
%EQUATE `DBSEEK_LT = %DBSEEK_BEFORE
'typedef DWORD DBRANGE;
' DBRANGEENUM
%EQUATE `DBRANGE_INCLUSIVESTART = 0
%EQUATE `DBRANGE_INCLUSIVEEND = 0
%EQUATE `DBRANGE_EXCLUSIVESTART = &H1
%EQUATE `DBRANGE_EXCLUSIVEEND = &H2
%EQUATE `DBRANGE_EXCLUDENULLS = &H4
%EQUATE `DBRANGE_PREFIX = &H8
%EQUATE `DBRANGE_MATCH = &H10
' DBRANGEENUM20
%EQUATE `DBRANGE_MATCH_N_SHIFT = &H18
%EQUATE `DBRANGE_MATCH_N_MASK = &Hff
INTERFACE IRowsetIndex $IID_IRowsetIndex
 INHERIT IUnknown
 ' =====================================================================================
 METHOD GetIndexInfo ( ' VTable offset = 12
 BYREF pcKeyColumns AS DWORD
 , BYREF prgIndexColumnDesc AS DWORD
 , BYREF pcIndexPropertySets AS DWORD
 , BYREF prgIndexPropertySets AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD Seek ( ' VTable offset = 16
 BYVAL hAccessor AS DWORD
 , BYVAL cKeyValues AS DWORD
 , BYVAL pData AS DWORD
 , BYVAL dwSeekOptions AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD SetRange ( ' VTable offset = 20
 BYVAL hAccessor AS DWORD
 , BYVAL cStartKeyColumns AS DWORD
 , BYVAL pStartData AS DWORD
 , BYVAL cEndKeyColumns AS DWORD
 , BYVAL pEndData AS DWORD
 , BYVAL dwRangeOptions AS DWORD
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __IRowsetIndex_INTERFACE_DEFINED__ */
' ########################################################################################
' ICommand interface
' IID = 0C733A63-2A1C-11CE-ADE5-00AA0044773D
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%ICommand_INTERFACE_DEFINED)
 %ICommand_INTERFACE_DEFINED = 1
INTERFACE ICommand $IID_ICommand
 INHERIT IUnknown
 ' =====================================================================================
 METHOD Cancel ( ' VTable offset = 12
 ) AS LONG
 ' =====================================================================================
 METHOD Execute ( ' VTable offset = 16
 BYVAL pUnkOuter AS IUnknown
 , BYREF riid AS GUID
 , BYREF pParams AS DBPARAMS
 , BYREF pcRowsAffected AS LONG
 , BYREF ppRowset AS IUnknown
 ) AS LONG
 ' =====================================================================================
 METHOD GetDBSession ( ' VTable offset = 20
 BYREF riid AS GUID
 , BYREF ppSession AS IUnknown
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __ICommand_INTERFACE_DEFINED__ */
' ########################################################################################
' IMultipleResults interface
' IID = 0C733A90-2A1C-11CE-ADE5-00AA0044773D
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%IMultipleResults_INTERFACE_DEFINED)
 %IMultipleResults_INTERFACE_DEFINED = 1
'typedef DB_LRESERVE DBRESULTFLAG;
' enum DBRESULTFLAGENUM
%EQUATE `DBRESULTFLAG_DEFAULT = 0
%EQUATE `DBRESULTFLAG_ROWSET = 1
%EQUATE `DBRESULTFLAG_ROW = 2
INTERFACE IMultipleResults $IID_IMultipleResults
 INHERIT IUnknown
 ' =====================================================================================
 METHOD GetResult ( ' VTable offset = 12
 BYVAL pUnkOuter AS IUnknown
 , BYVAL lResultFlag AS LONG
 , BYREF riid AS GUID
 , BYREF pcRowsAffected AS LONG
 , BYREF ppRowset AS IUnknown
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __IMultipleResults_INTERFACE_DEFINED__ */
' ########################################################################################
' IConvertType interface
' IID = 0C733A88-2A1C-11CE-ADE5-00AA0044773D
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%IConvertType_INTERFACE_DEFINED)
 %IConvertType_INTERFACE_DEFINED = 1
'typedef DWORD DBCONVERTFLAGS;
' DBCONVERTFLAGSENUM
%EQUATE `DBCONVERTFLAGS_COLUMN = 0
%EQUATE `DBCONVERTFLAGS_PARAMETER = &H1
' DBCONVERTFLAGSENUM20
%EQUATE `DBCONVERTFLAGS_ISLONG = &H2
%EQUATE `DBCONVERTFLAGS_ISFIXEDLENGTH = &H4
%EQUATE `DBCONVERTFLAGS_FROMVARIANT = &H8
INTERFACE IConvertType $IID_IConvertType
 INHERIT IUnknown
 ' =====================================================================================
 METHOD GetParameterInfo ( ' VTable offset = 12
 BYVAL wFromType AS WORD
 , BYVAL wToType AS WORD
 , BYVAL dwConvertFlags AS DWORD
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __IConvertType_INTERFACE_DEFINED__ */
' ########################################################################################
' ICommandPrepare interface
' IID = 0C733A26-2A1C-11CE-ADE5-00AA0044773D
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%ICommandPrepare_INTERFACE_DEFINED)
 %ICommandPrepare_INTERFACE_DEFINED = 1
INTERFACE ICommandPrepare $IID_ICommandPrepare
 INHERIT IUnknown
 ' =====================================================================================
 METHOD Prepare ( ' VTable offset = 12
 BYVAL cExpectedRuns AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD Unprepare ( ' VTable offset = 16
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __ICommandPrepare_INTERFACE_DEFINED__ */
' ########################################################################################
' ICommandProperties interface
' IID = 0C733A79-2A1C-11CE-ADE5-00AA0044773D
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%ICommandProperties_INTERFACE_DEFINED)
 %ICommandProperties_INTERFACE_DEFINED = 1
INTERFACE ICommandProperties $IID_ICommandProperties
 INHERIT IUnknown
 ' =====================================================================================
 METHOD GetProperties ( ' VTable offset = 12
 BYVAL cPropertyIDSets AS DWORD
 , BYREF rgPropertyIDSets AS DBPROPIDSET
 , BYREF pcPropertySets AS DWORD
 , BYREF prgPropertySets AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD SetProperties ( ' VTable offset = 16
 BYVAL cPropertySets AS DWORD
 , BYREF rgPropertySets AS DBPROPSET
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __ICommandProperties_INTERFACE_DEFINED__ */
' ########################################################################################
' ICommandText interface
' IID = 0C733A27-2A1C-11CE-ADE5-00AA0044773D
' Inherited interface = ICommand
' ########################################################################################
#IF NOT %DEF(%ICommandText_INTERFACE_DEFINED)
 %ICommandText_INTERFACE_DEFINED = 1
INTERFACE ICommandText $IID_ICommandText
 INHERIT IUnknown
 ' =====================================================================================
 METHOD Cancel ( ' VTable offset = 12
 ) AS LONG
 ' =====================================================================================
 METHOD Execute ( ' VTable offset = 16
 BYVAL pUnkOuter AS IUnknown
 , BYREF riid AS GUID
 , BYREF pParams AS DBPARAMS
 , BYREF pcRowsAffected AS LONG
 , BYREF ppRowset AS IUnknown
 ) AS LONG
 ' =====================================================================================
 METHOD GetDBSession ( ' VTable offset = 20
 BYREF riid AS GUID
 , BYREF ppSession AS IUnknown
 ) AS LONG
 ' =====================================================================================
 METHOD GetCommandText ( ' VTable offset = 24
 BYREF pguidDialect AS GUID
 , BYREF ppwszCommand AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD SetCommandText ( ' VTable offset = 28
 BYREF rguidDialect AS GUID
 , BYREF pwszCommand AS WSTRINGZ
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __ICommandText_INTERFACE_DEFINED__ */
' ########################################################################################
' ICommandWithParameters interface
' IID = 0C733A64-2A1C-11CE-ADE5-00AA0044773D
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%ICommandWithParameters_INTERFACE_DEFINED)
 %ICommandWithParameters_INTERFACE_DEFINED = 1
' // Size = 18 bytes
TYPE DBPARAMBINDINFO BYTE
 pwszDataSourceType AS WSTRINGZ PTR
 pwszName AS WSTRINGZ PTR
 ulParamSize AS DWORD ' DBLENGTH
 dwFlags AS DWORD ' DBPARAMFLAGS
 bPrecision AS BYTE ' BYTE
 bScale AS BYTE ' BYTE
END TYPE
INTERFACE ICommandWithParameters $IID_ICommandWithParameters
 INHERIT IUnknown
 ' =====================================================================================
 METHOD GetParameterInfo ( ' VTable offset = 12
 BYREF pcParams AS DWORD
 , BYREF prgParamInfo AS DWORD
 , BYREF ppNamesBuffer AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD MapParameterNames ( ' VTable offset = 16
 BYVAL cParamNames AS DWORD
 , BYREF rgParamNames AS WSTRINGZ
 , BYREF rgParamOrdinals AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD SetParameterInfo ( ' VTable offset = 20
 BYVAL cParams AS DWORD
 , BYREF rgParamOrdinals AS DWORD
 , BYREF rgParamBindInfo AS DBPARAMBINDINFO
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __ICommandWithParameters_INTERFACE_DEFINED__ */
' ########################################################################################
' IColumnsRowset interface
' IID = 0C733A10-2A1C-11CE-ADE5-00AA0044773D
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%IColumnsRowset_INTERFACE_DEFINED)
 %IColumnsRowset_INTERFACE_DEFINED = 1
INTERFACE IColumnsRowset $IID_IColumnsRowset
 INHERIT IUnknown
 ' =====================================================================================
 METHOD GetAvailableColumns ( ' VTable offset = 12
 BYREF pcOptColumns AS DWORD
 , BYREF prgOptColumns AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD GetColumnsRowset ( ' VTable offset = 16
 BYVAL pUnkOuter AS IUnknown
 , BYVAL cOptColumns AS DWORD
 , BYREF rgOptColumns AS DBID
 , BYREF riid AS GUID
 , BYVAL cPropertySets AS DWORD
 , BYREF rgPropertySets AS DBPROPSET
 , BYREF ppColRowset AS IUnknown
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __IColumnsRowset_INTERFACE_DEFINED__ */
' ########################################################################################
' IColumnsInfo interface
' IID = 0C733A11-2A1C-11CE-ADE5-00AA0044773D
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%IColumnsInfo_INTERFACE_DEFINED)
 %IColumnsInfo_INTERFACE_DEFINED = 1
INTERFACE IColumnsInfo $IID_IColumnsInfo
 INHERIT IUnknown
 ' =====================================================================================
 METHOD GetColumnInfo ( ' VTable offset = 12
 BYREF pcColumns AS DWORD
 , BYREF prgInfo AS DWORD
 , BYREF ppStringsBuffer AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD MapColumnIDs ( ' VTable offset = 16
 BYVAL cColumnIDs AS DWORD
 , BYREF rgColumnIDs AS DBID
 , BYREF rgColumns AS DWORD
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __IColumnsInfo_INTERFACE_DEFINED__ */
' ########################################################################################
' IDBCreateCommand interface
' IID = 0C733A1D-2A1C-11CE-ADE5-00AA0044773D
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%IDBCreateCommand_INTERFACE_DEFINED)
 %IDBCreateCommand_INTERFACE_DEFINED = 1
INTERFACE IDBCreateCommand $IID_IDBCreateCommand
 INHERIT IUnknown
 ' =====================================================================================
 METHOD CreateCommand ( ' VTable offset = 12
 BYVAL pUnkOuter AS IUnknown
 , BYREF riid AS GUID
 , BYREF ppCommand AS IUnknown
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __IDBCreateCommand_INTERFACE_DEFINED__ */
' ########################################################################################
' IDBCreateSession interface
' IID = 0C733A5D-2A1C-11CE-ADE5-00AA0044773D
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%IDBCreateSession_INTERFACE_DEFINED)
 %IDBCreateSession_INTERFACE_DEFINED = 1
INTERFACE IDBCreateSession $IID_IDBCreateSession
 INHERIT IUnknown
 ' =====================================================================================
 METHOD CreateSession ( ' VTable offset = 12
 BYVAL pUnkOuter AS IUnknown
 , BYREF riid AS GUID
 , BYREF ppDBSession AS IUnknown
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __IDBCreateSession_INTERFACE_DEFINED__ */
' ########################################################################################
' ISourcesRowset interface
' IID = 0C733A1E-2A1C-11CE-ADE5-00AA0044773D
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%ISourcesRowset_INTERFACE_DEFINED)
 %ISourcesRowset_INTERFACE_DEFINED = 1
'typedef DWORD DBSOURCETYPE;
' DBSOURCETYPEENUM
%EQUATE `DBSOURCETYPE_DATASOURCE = 1
%EQUATE `DBSOURCETYPE_ENUMERATOR = 2
' DBSOURCETYPEENUM20
%EQUATE `DBSOURCETYPE_DATASOURCE_TDP = 1
%EQUATE `DBSOURCETYPE_DATASOURCE_MDP = 3
' DBSOURCETYPEENUM25
%EQUATE `DBSOURCETYPE_BINDER = 4
INTERFACE ISourcesRowset $IID_ISourcesRowset
 INHERIT IUnknown
 ' =====================================================================================
 METHOD GetSourcesRowset ( ' VTable offset = 12
 BYVAL pUnkOuter AS IUnknown
 , BYREF riid AS GUID
 , BYVAL cPropertySets AS DWORD
 , BYREF rgProperties AS DBPROPSET
 , BYREF ppSourcesRowset AS IUnknown
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __ISourcesRowset_INTERFACE_DEFINED__ */
' ########################################################################################
' IDBProperties interface
' IID = 0C733A8A-2A1C-11CE-ADE5-00AA0044773D
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%IDBProperties_INTERFACE_DEFINED)
 %IDBProperties_INTERFACE_DEFINED = 1
INTERFACE IDBProperties $IID_IDBProperties
 INHERIT IUnknown
 ' =====================================================================================
 METHOD GetProperties ( ' VTable offset = 12
 BYVAL cPropertyIDSets AS DWORD
 , BYREF rgPropertyIDSets AS DBPROPIDSET
 , BYREF pcPropertySets AS DWORD
 , BYREF prgPropertySets AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD GetPropertyInfo ( ' VTable offset = 16
 BYVAL cPropertyIDSets AS DWORD
 , BYREF rgPropertyIDSets AS DBPROPIDSET
 , BYREF pcPropertyInfoSets AS DWORD
 , BYREF prgPropertyInfoSets AS DWORD
 , BYREF ppDescBuffer AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD SetProperties ( ' VTable offset = 20
 BYVAL cPropertySets AS DWORD
 , BYREF rgPropertySets AS DBPROPSET
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __IDBProperties_INTERFACE_DEFINED__ */
' ########################################################################################
' IDBInitialize interface
' IID = 0C733A8B-2A1C-11CE-ADE5-00AA0044773D
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%IDBInitialize_INTERFACE_DEFINED)
 %IDBInitialize_INTERFACE_DEFINED = 1
INTERFACE IDBInitialize $IID_IDBInitialize
 INHERIT IUnknown
 ' =====================================================================================
 METHOD Initialize ( ' VTable offset = 12
 ) AS LONG
 ' =====================================================================================
 METHOD Uninitialize ( ' VTable offset = 16
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __IDBInitialize_INTERFACE_DEFINED__ */
' ########################################################################################
' IDBInfo interface
' IID = 0C733A89-2A1C-11CE-ADE5-00AA0044773D
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%IDBInfo_INTERFACE_DEFINED)
 %IDBInfo_INTERFACE_DEFINED = 1
'typedef DWORD DBLITERAL;
' DBLITERALENUM
%EQUATE `DBLITERAL_INVALID = 0
%EQUATE `DBLITERAL_BINARY_LITERAL = 1
%EQUATE `DBLITERAL_CATALOG_NAME = 2
%EQUATE `DBLITERAL_CATALOG_SEPARATOR = 3
%EQUATE `DBLITERAL_CHAR_LITERAL = 4
%EQUATE `DBLITERAL_COLUMN_ALIAS = 5
%EQUATE `DBLITERAL_COLUMN_NAME = 6
%EQUATE `DBLITERAL_CORRELATION_NAME = 7
%EQUATE `DBLITERAL_CURSOR_NAME = 8
%EQUATE `DBLITERAL_ESCAPE_PERCENT = 9
%EQUATE `DBLITERAL_ESCAPE_UNDERSCORE = 10
%EQUATE `DBLITERAL_INDEX_NAME = 11
%EQUATE `DBLITERAL_LIKE_PERCENT = 12
%EQUATE `DBLITERAL_LIKE_UNDERSCORE = 13
%EQUATE `DBLITERAL_PROCEDURE_NAME = 14
%EQUATE `DBLITERAL_QUOTE = 15
%EQUATE `DBLITERAL_SCHEMA_NAME = 16
%EQUATE `DBLITERAL_TABLE_NAME = 17
%EQUATE `DBLITERAL_TEXT_COMMAND = 18
%EQUATE `DBLITERAL_USER_NAME = 19
%EQUATE `DBLITERAL_VIEW_NAME = 20
%EQUATE `DBLITERAL_QUOTE_PREFIX = %DBLITERAL_QUOTE
' DBLITERALENUM20
%EQUATE `DBLITERAL_CUBE_NAME = 21
%EQUATE `DBLITERAL_DIMENSION_NAME = 22
%EQUATE `DBLITERAL_HIERARCHY_NAME = 23
%EQUATE `DBLITERAL_LEVEL_NAME = 24
%EQUATE `DBLITERAL_MEMBER_NAME = 25
%EQUATE `DBLITERAL_PROPERTY_NAME = 26
%EQUATE `DBLITERAL_SCHEMA_SEPARATOR = 27
%EQUATE `DBLITERAL_QUOTE_SUFFIX = 28
%EQUATE `DBLITERAL_ESCAPE_PERCENT_PREFIX = %DBLITERAL_ESCAPE_PERCENT
%EQUATE `DBLITERAL_ESCAPE_UNDERSCORE_PREFIX = %DBLITERAL_ESCAPE_UNDERSCORE
' DBLITERALENUM21
%EQUATE `DBLITERAL_ESCAPE_PERCENT_SUFFIX = 29
%EQUATE `DBLITERAL_ESCAPE_UNDERSCORE_SUFFIX = 30
' // Size = 24 bytes
TYPE DBLITERALINFO DWORD
 pwszLiteralValue AS WSTRINGZ PTR
 pwszInvalidChars AS WSTRINGZ PTR
 pwszInvalidStartingChars AS WSTRINGZ PTR
 lt AS DWORD ' DBLITERAL
 fSupported AS LONG
 cchMaxLen AS DWORD ' ULONG
END TYPE
INTERFACE IDBInfo $IID_IDBInfo
 INHERIT IUnknown
 ' =====================================================================================
 METHOD GetKeywords ( ' VTable offset = 12
 BYREF ppwszKeywords AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD GetLiteralInfo ( ' VTable offset = 16
 BYVAL cLiterals AS DWORD
 , BYREF rgLiterals AS DWORD
 , BYREF pcLiteralInfo AS DWORD
 , BYREF prgLiteralInfo AS DWORD
 , BYREF ppCharBuffer AS DWORD
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __IDBInfo_INTERFACE_DEFINED__ */
' ########################################################################################
' IDBDataSourceAdmin interface
' IID = 0C733A7A-2A1C-11CE-ADE5-00AA0044773D
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%IDBDataSourceAdmin_INTERFACE_DEFINED)
 %IDBDataSourceAdmin_INTERFACE_DEFINED = 1
INTERFACE IDBDataSourceAdmin $IID_IDBDataSourceAdmin
 INHERIT IUnknown
 ' =====================================================================================
 METHOD CreateDataSource ( ' VTable offset = 12
 BYVAL cPropertySets AS DWORD
 , BYREF rgPropertySets AS DBPROPSET
 , BYVAL pUnkOuter AS IUnknown
 , BYREF riid AS GUID
 , BYREF ppDBSession AS IUnknown
 ) AS LONG
 ' =====================================================================================
 METHOD DestroyDataSource ( ' VTable offset = 16
 ) AS LONG
 ' =====================================================================================
 METHOD GetCreationProperties ( ' VTable offset = 20
 BYVAL cPropertyIDSets AS DWORD
 , BYREF rgPropertyIDSets AS DBPROPIDSET
 , BYREF pcPropertyInfoSets AS DWORD
 , BYREF prgPropertyInfoSets AS DWORD
 , BYREF ppDescBuffer AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD ModifyDataSource ( ' VTable offset = 24
 BYVAL cPropertySets AS DWORD
 , BYREF rgPropertySets AS DBPROPSET
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __IDBDataSourceAdmin_INTERFACE_DEFINED__ */
' ########################################################################################
' IDBAsynchNotify interface
' IID = 0c733a96-2a1c-11ce-ade5-00aa0044773d
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%IDBAsynchNotify_INTERFACE_DEFINED)
 %IDBAsynchNotify_INTERFACE_DEFINED = 1
INTERFACE IDBAsynchNotify $IID_IDBAsynchNotify
 INHERIT IUnknown
 ' =====================================================================================
 METHOD OnLowResource ( ' VTable offset = 12
 BYVAL dwReserved AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD OnProgress ( ' VTable offset = 16
 BYVAL hChapter AS DWORD
 , BYVAL eOperation AS DWORD
 , BYVAL ulProgress AS DWORD
 , BYVAL ulProgressMax AS DWORD
 , BYVAL eAsynchPhase AS DWORD
 , BYREF pwszStatusText AS WSTRINGZ
 ) AS LONG
 ' =====================================================================================
 METHOD OnStop ( ' VTable offset = 20
 BYVAL hChapter AS DWORD
 , BYVAL eOperation AS DWORD
 , BYVAL hrStatus AS LONG
 , BYREF pwszStatusText AS WSTRINGZ
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __IDBAsynchNotify_INTERFACE_DEFINED__ */
' ########################################################################################
' IDBAsynchStatus interface
' IID = 0C733A95-2A1C-11CE-ADE5-00AA0044773D
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%IDBAsynchStatus_INTERFACE_DEFINED)
 %IDBAsynchStatus_INTERFACE_DEFINED = 1
INTERFACE IDBAsynchStatus $IID_IDBAsynchStatus
 INHERIT IUnknown
 ' =====================================================================================
 METHOD Abort ( ' VTable offset = 12
 BYVAL hChapter AS DWORD
 , BYVAL eOperation AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD GetStatus ( ' VTable offset = 16
 BYVAL hChapter AS DWORD
 , BYVAL eOperation AS DWORD
 , BYREF pulProgress AS DWORD
 , BYREF pulProgressMax AS DWORD
 , BYREF peAsynchPhase AS DWORD
 , BYREF ppwszStatusText AS DWORD
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __IDBAsynchStatus_INTERFACE_DEFINED__ */
' ########################################################################################
' ISessionProperties interface
' IID = 0C733A85-2A1C-11CE-ADE5-00AA0044773D
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%ISessionProperties_INTERFACE_DEFINED)
 %ISessionProperties_INTERFACE_DEFINED = 1
INTERFACE ISessionProperties $IID_ISessionProperties
 INHERIT IUnknown
 ' =====================================================================================
 METHOD GetProperties ( ' VTable offset = 12
 BYVAL cPropertyIDSets AS DWORD
 , BYREF rgPropertyIDSets AS DBPROPIDSET
 , BYREF pcPropertySets AS DWORD
 , BYREF prgPropertySets AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD SetProperties ( ' VTable offset = 16
 BYVAL cPropertySets AS DWORD
 , BYREF rgPropertySets AS DBPROPSET
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __ISessionProperties_INTERFACE_DEFINED__ */
' ########################################################################################
' IIndexDefinition interface
' IID = 0C733A68-2A1C-11CE-ADE5-00AA0044773D
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%IIndexDefinition_INTERFACE_DEFINED)
 %IIndexDefinition_INTERFACE_DEFINED = 1
INTERFACE IIndexDefinition $IID_IIndexDefinition
 INHERIT IUnknown
 ' =====================================================================================
 METHOD CreateIndex ( ' VTable offset = 12
 BYREF pTableID AS DBID
 , BYREF pIndexID AS DBID
 , BYVAL cIndexColumnDescs AS DWORD
 , BYREF rgIndexColumnDescs AS DBINDEXCOLUMNDESC
 , BYVAL cPropertySets AS DWORD
 , BYREF rgPropertySets AS DBPROPSET
 , BYREF ppIndexID AS DBID
 ) AS LONG
 ' =====================================================================================
 METHOD DropIndex ( ' VTable offset = 16
 BYREF pTableID AS DBID
 , BYREF pIndexID AS DBID
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __IIndexDefinition_INTERFACE_DEFINED__ */
' ########################################################################################
' ITableDefinition interface
' IID = 0C733A86-2A1C-11CE-ADE5-00AA0044773D
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%ITableDefinition_INTERFACE_DEFINED)
 %ITableDefinition_INTERFACE_DEFINED = 1
INTERFACE ITableDefinition $IID_ITableDefinition
 INHERIT IUnknown
 ' =====================================================================================
 METHOD CreateTable ( ' VTable offset = 12
 BYVAL pUnkOuter AS IUnknown
 , BYREF pTableID AS DBID
 , BYVAL cColumnDescs AS DWORD
 , BYREF rgColumnDescs AS DBCOLUMNDESC
 , BYREF riid AS GUID
 , BYVAL cPropertySets AS DWORD
 , BYREF rgPropertySets AS DBPROPSET
 , BYREF ppTableID AS DBID
 , BYREF ppRowset AS IUnknown
 ) AS LONG
 ' =====================================================================================
 METHOD DropTable ( ' VTable offset = 16
 BYREF pTableID AS DBID
 ) AS LONG
 ' =====================================================================================
 METHOD AddColumn ( ' VTable offset = 20
 BYREF pTableID AS DBID
 , BYREF pColumnDesc AS DBCOLUMNDESC
 , BYREF ppColumnID AS DBID
 ) AS LONG
 ' =====================================================================================
 METHOD DropColumn ( ' VTable offset = 24
 BYREF pTableID AS DBID
 , BYREF pColumnID AS DBID
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __ITableDefinition_INTERFACE_DEFINED__ */
' ########################################################################################
' IOpenRowset interface
' IID = 0C733A69-2A1C-11CE-ADE5-00AA0044773D
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%IOpenRowset_INTERFACE_DEFINED)
 %IOpenRowset_INTERFACE_DEFINED = 1
INTERFACE IOpenRowset $IID_IOpenRowset
 INHERIT IUnknown
 ' =====================================================================================
 METHOD OpenRowset ( ' VTable offset = 12
 BYVAL pUnkOuter AS IUnknown
 , BYREF pTableID AS DBID
 , BYREF pIndexID AS DBID
 , BYREF riid AS GUID
 , BYVAL cPropertySets AS DWORD
 , BYREF rgPropertySets AS DBPROPSET
 , BYREF ppRowset AS IUnknown
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __IOpenRowset_INTERFACE_DEFINED__ */
' ########################################################################################
' IDBSchemaRowset interface
' IID = 0C733A7B-2A1C-11CE-ADE5-00AA0044773D
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%IDBSchemaRowset_INTERFACE_DEFINED)
 %IDBSchemaRowset_INTERFACE_DEFINED = 1
%EQUATE `CRESTRICTIONS_DBSCHEMA_ASSERTIONS = 3
%EQUATE `CRESTRICTIONS_DBSCHEMA_CATALOGS = 1
%EQUATE `CRESTRICTIONS_DBSCHEMA_CHARACTER_SETS = 3
%EQUATE `CRESTRICTIONS_DBSCHEMA_COLLATIONS = 3
%EQUATE `CRESTRICTIONS_DBSCHEMA_COLUMNS = 4
%EQUATE `CRESTRICTIONS_DBSCHEMA_CHECK_CONSTRAINTS = 3
%EQUATE `CRESTRICTIONS_DBSCHEMA_CONSTRAINT_COLUMN_USAGE = 4
%EQUATE `CRESTRICTIONS_DBSCHEMA_CONSTRAINT_TABLE_USAGE = 3
%EQUATE `CRESTRICTIONS_DBSCHEMA_KEY_COLUMN_USAGE = 7
%EQUATE `CRESTRICTIONS_DBSCHEMA_REFERENTIAL_CONSTRAINTS = 3
%EQUATE `CRESTRICTIONS_DBSCHEMA_TABLE_CONSTRAINTS = 7
%EQUATE `CRESTRICTIONS_DBSCHEMA_COLUMN_DOMAIN_USAGE = 4
%EQUATE `CRESTRICTIONS_DBSCHEMA_INDEXES = 5
%EQUATE `CRESTRICTIONS_DBSCHEMA_OBJECT_ACTIONS = 1
%EQUATE `CRESTRICTIONS_DBSCHEMA_OBJECTS = 1
%EQUATE `CRESTRICTIONS_DBSCHEMA_COLUMN_PRIVILEGES = 6
%EQUATE `CRESTRICTIONS_DBSCHEMA_TABLE_PRIVILEGES = 5
%EQUATE `CRESTRICTIONS_DBSCHEMA_USAGE_PRIVILEGES = 6
%EQUATE `CRESTRICTIONS_DBSCHEMA_PROCEDURES = 4
%EQUATE `CRESTRICTIONS_DBSCHEMA_SCHEMATA = 3
%EQUATE `CRESTRICTIONS_DBSCHEMA_SQL_LANGUAGES = 0
%EQUATE `CRESTRICTIONS_DBSCHEMA_STATISTICS = 3
%EQUATE `CRESTRICTIONS_DBSCHEMA_TABLES = 4
%EQUATE `CRESTRICTIONS_DBSCHEMA_TRANSLATIONS = 3
%EQUATE `CRESTRICTIONS_DBSCHEMA_PROVIDER_TYPES = 2
%EQUATE `CRESTRICTIONS_DBSCHEMA_VIEWS = 3
%EQUATE `CRESTRICTIONS_DBSCHEMA_VIEW_COLUMN_USAGE = 3
%EQUATE `CRESTRICTIONS_DBSCHEMA_VIEW_TABLE_USAGE = 3
%EQUATE `CRESTRICTIONS_DBSCHEMA_PROCEDURE_PARAMETERS = 4
%EQUATE `CRESTRICTIONS_DBSCHEMA_FOREIGN_KEYS = 6
%EQUATE `CRESTRICTIONS_DBSCHEMA_PRIMARY_KEYS = 3
%EQUATE `CRESTRICTIONS_DBSCHEMA_PROCEDURE_COLUMNS = 4
%EQUATE `CRESTRICTIONS_DBSCHEMA_TABLES_INFO = 4
%EQUATE `CRESTRICTIONS_MDSCHEMA_CUBES = 3
%EQUATE `CRESTRICTIONS_MDSCHEMA_DIMENSIONS = 5
%EQUATE `CRESTRICTIONS_MDSCHEMA_HIERARCHIES = 6
%EQUATE `CRESTRICTIONS_MDSCHEMA_LEVELS = 7
%EQUATE `CRESTRICTIONS_MDSCHEMA_MEASURES = 5
%EQUATE `CRESTRICTIONS_MDSCHEMA_PROPERTIES = 9
%EQUATE `CRESTRICTIONS_MDSCHEMA_MEMBERS = 12
%EQUATE `CRESTRICTIONS_DBSCHEMA_TRUSTEE = 4
%EQUATE `CRESTRICTIONS_DBSCHEMA_TABLE_STATISTICS = 7
%EQUATE `CRESTRICTIONS_DBSCHEMA_CHECK_CONSTRAINTS_BY_TABLE = 6
%EQUATE `CRESTRICTIONS_MDSCHEMA_FUNCTIONS = 4
%EQUATE `CRESTRICTIONS_MDSCHEMA_ACTIONS = 8
%EQUATE `CRESTRICTIONS_MDSCHEMA_COMMANDS = 5
%EQUATE `CRESTRICTIONS_MDSCHEMA_SETS = 5
INTERFACE IDBSchemaRowset $IID_IDBSchemaRowset
 INHERIT IUnknown
 ' =====================================================================================
 METHOD GetRowset ( ' VTable offset = 12
 BYVAL pUnkOuter AS IUnknown
 , BYREF rguidSchema AS GUID
 , BYVAL cRestrictions AS DWORD
 , BYREF rgRestrictions AS VARIANT
 , BYREF riid AS GUID
 , BYVAL cPropertySets AS DWORD
 , BYREF rgPropertySets AS DBPROPSET
 , BYREF ppRowset AS IUnknown
 ) AS LONG
 ' =====================================================================================
 METHOD GetSchemas ( ' VTable offset = 16
 BYREF pcSchemas AS DWORD
 , BYREF prgSchemas AS DWORD
 , BYREF prgRestrictionSupport AS DWORD
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __IDBSchemaRowset_INTERFACE_DEFINED__ */
' ########################################################################################
' IMDDataset interface
' IID = A07CCCD1-8148-11D0-87BB-00C04FC33942
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%IMDDataset_INTERFACE_DEFINED)
 %IMDDataset_INTERFACE_DEFINED = 1
INTERFACE IMDDataset $IID_IMDDataset
 INHERIT IUnknown
 ' =====================================================================================
 METHOD FreeAxisInfo ( ' VTable offset = 12
 BYVAL cAxes AS DWORD
 , BYREF rgAxisInfo AS MDAXISINFO
 ) AS LONG
 ' =====================================================================================
 METHOD GetAxisInfo ( ' VTable offset = 16
 BYREF pcAxes AS DWORD
 , BYREF prgAxisInfo AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD GetAxisRowset ( ' VTable offset = 20
 BYVAL pUnkOuter AS IUnknown
 , BYVAL iAxis AS DWORD
 , BYREF riid AS GUID
 , BYVAL cPropertySets AS DWORD
 , BYREF rgPropertySets AS DBPROPSET
 , BYREF ppRowset AS IUnknown
 ) AS LONG
 ' =====================================================================================
 METHOD GetCellData ( ' VTable offset = 24
 BYVAL hAccessor AS DWORD
 , BYVAL ulStartCell AS DWORD
 , BYVAL ulEndCell AS DWORD
 , BYVAL pData AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD GetSpecification ( ' VTable offset = 28
 BYREF riid AS GUID
 , BYREF ppSpecification AS IUnknown
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __IMDDataset_INTERFACE_DEFINED__ */
' ########################################################################################
' IMDFind interface
' IID = A07CCCD2-8148-11D0-87BB-00C04FC33942
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%IMDFind_INTERFACE_DEFINED)
 %IMDFind_INTERFACE_DEFINED = 1
INTERFACE IMDFind $IID_IMDFind
 INHERIT IUnknown
 ' =====================================================================================
 METHOD FindCell ( ' VTable offset = 12
 BYVAL ulStartingOrdinal AS DWORD
 , BYVAL cMembers AS DWORD
 , BYREF rgpwszMember AS WSTRINGZ
 , BYREF pulCellOrdinal AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD FindTuple ( ' VTable offset = 16
 BYVAL ulAxisIdentifier AS DWORD
 , BYVAL ulStartingOrdinal AS DWORD
 , BYVAL cMembers AS DWORD
 , BYREF rgpwszMember AS WSTRINGZ
 , BYREF pulTupleOrdinal AS DWORD
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __IMDFind_INTERFACE_DEFINED__ */
' ########################################################################################
' IMDRangeRowset interface
' IID = 0C733AA0-2A1C-11CE-ADE5-00AA0044773D
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%IMDRangeRowset_INTERFACE_DEFINED)
 %IMDRangeRowset_INTERFACE_DEFINED = 1
INTERFACE IMDRangeRowset $IID_IMDRangeRowset
 INHERIT IUnknown
 ' =====================================================================================
 METHOD GetRangeRowset ( ' VTable offset = 12
 BYVAL pUnkOuter AS IUnknown
 , BYVAL ulStartCell AS DWORD
 , BYVAL ulEndCell AS DWORD
 , BYREF riid AS GUID
 , BYVAL cPropertySets AS DWORD
 , BYREF rgPropertySets AS DBPROPSET
 , BYREF ppRowset AS IUnknown
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __IMDRangeRowset_INTERFACE_DEFINED__ */
' ########################################################################################
' IAlterTable interface
' IID = 0C733AA5-2A1C-11CE-ADE5-00AA0044773D
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%IAlterTable_INTERFACE_DEFINED)
 %IAlterTable_INTERFACE_DEFINED = 1
INTERFACE IAlterTable $IID_IAlterTable
 INHERIT IUnknown
 ' =====================================================================================
 METHOD AlterColumn ( ' VTable offset = 12
 BYREF pTableId AS DBID
 , BYREF pColumnId AS DBID
 , BYVAL dwColumnDescFlags AS DWORD
 , BYREF pColumnDesc AS DBCOLUMNDESC
 ) AS LONG
 ' =====================================================================================
 METHOD AlterTable ( ' VTable offset = 16
 BYREF pTableId AS DBID
 , BYREF pNewTableId AS DBID
 , BYVAL cPropertySets AS DWORD
 , BYREF rgPropertySets AS DBPROPSET
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __IAlterTable_INTERFACE_DEFINED__ */
' ########################################################################################
' IAlterIndex interface
' IID = 0C733AA6-2A1C-11CE-ADE5-00AA0044773D
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%IAlterIndex_INTERFACE_DEFINED)
 %IAlterIndex_INTERFACE_DEFINED = 1
INTERFACE IAlterIndex $IID_IAlterIndex
 INHERIT IUnknown
 ' =====================================================================================
 METHOD AlterIndex ( ' VTable offset = 12
 BYREF pTableId AS DBID
 , BYREF pIndexId AS DBID
 , BYREF pNewIndexId AS DBID
 , BYVAL cPropertySets AS DWORD
 , BYREF rgPropertySets AS DBPROPSET
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __IAlterIndex_INTERFACE_DEFINED__ */
' ########################################################################################
' IRowsetChapterMember interface
' IID = 0C733AA8-2A1C-11CE-ADE5-00AA0044773D
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%IRowsetChapterMember_INTERFACE_DEFINED)
 %IRowsetChapterMember_INTERFACE_DEFINED = 1
INTERFACE IRowsetChapterMember $IID_IRowsetChapterMember
 INHERIT IUnknown
 ' =====================================================================================
 METHOD IsRowInChapter ( ' VTable offset = 12
 BYVAL hChapter AS DWORD
 , BYVAL hRow AS DWORD
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __IRowsetChapterMember_INTERFACE_DEFINED__ */
' ########################################################################################
' ICommandPersist interface
' IID = 0C733AA7-2A1C-11CE-ADE5-00AA0044773D
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%ICommandPersist_INTERFACE_DEFINED)
 %ICommandPersist_INTERFACE_DEFINED = 1
INTERFACE ICommandPersist $IID_ICommandPersist
 INHERIT IUnknown
 ' =====================================================================================
 METHOD DeleteCommand ( ' VTable offset = 12
 BYREF pCommandID AS DBID
 ) AS LONG
 ' =====================================================================================
 METHOD GetCurrentCommand ( ' VTable offset = 16
 BYREF ppCommandID AS DBID
 ) AS LONG
 ' =====================================================================================
 METHOD LoadCommand ( ' VTable offset = 20
 BYREF pCommandID AS DBID
 , BYVAL dwFlags AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD SaveCommand ( ' VTable offset = 24
 BYREF pCommandID AS DBID
 , BYVAL dwFlags AS DWORD
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __ICommandPersist_INTERFACE_DEFINED__ */
' ########################################################################################
' IRowsetRefresh interface
' IID = 0C733AA9-2A1C-11CE-ADE5-00AA0044773D
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%IRowsetRefresh_INTERFACE_DEFINED)
 %IRowsetRefresh_INTERFACE_DEFINED = 1
INTERFACE IRowsetRefresh $IID_IRowsetRefresh
 INHERIT IUnknown
 ' =====================================================================================
 METHOD RefreshVisibleData ( ' VTable offset = 12
 BYVAL hChapter AS DWORD
 , BYVAL cRows AS DWORD
 , BYREF rghRows AS DWORD
 , BYVAL fOverWrite AS LONG
 , BYREF pcRowsRefreshed AS DWORD
 , BYREF prghRowsRefreshed AS DWORD
 , BYREF prgRowStatus AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD GetLastVisibleData ( ' VTable offset = 16
 BYVAL hRow AS DWORD
 , BYVAL hAccessor AS DWORD
 , BYVAL pData AS DWORD
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __IRowsetRefresh_INTERFACE_DEFINED__ */
' ########################################################################################
' IParentRowset interface
' IID = 0C733AAA-2A1C-11CE-ADE5-00AA0044773D
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%IParentRowset_INTERFACE_DEFINED)
 %IParentRowset_INTERFACE_DEFINED = 1
INTERFACE IParentRowset $IID_IParentRowset
 INHERIT IUnknown
 ' =====================================================================================
 METHOD GetChildRowset ( ' VTable offset = 12
 BYVAL pUnkOuter AS IUnknown
 , BYVAL iOrdinal AS DWORD
 , BYREF riid AS GUID
 , BYREF ppRowset AS IUnknown
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __IParentRowset_INTERFACE_DEFINED__ */
' ########################################################################################
' IErrorRecords interface
' IID = 0C733A67-2A1C-11CE-ADE5-00AA0044773D
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%IErrorRecords_INTERFACE_DEFINED)
 %IErrorRecords_INTERFACE_DEFINED = 1
%EQUATE `IDENTIFIER_SDK_MASK = &HF0000000
%EQUATE `IDENTIFIER_SDK_ERROR = &H10000000
INTERFACE IErrorRecords $IID_IErrorRecords
 INHERIT IUnknown
 ' =====================================================================================
 METHOD AddErrorRecord ( ' VTable offset = 12
 BYREF pErrorInfo AS ERRORINFO
 , BYVAL dwLookupID AS DWORD
 , BYREF pdispparams AS DISPPARAMS
 , BYVAL punkCustomError AS IUnknown
 , BYVAL dwDynamicErrorID AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD GetBasicErrorInfo ( ' VTable offset = 16
 BYVAL ulRecordNum AS DWORD
 , BYREF pErrorInfo AS ERRORINFO
 ) AS LONG
 ' =====================================================================================
 METHOD GetCustomErrorObject ( ' VTable offset = 20
 BYVAL ulRecordNum AS DWORD
 , BYREF riid AS GUID
 , BYREF ppObject AS IUnknown
 ) AS LONG
 ' =====================================================================================
 METHOD GetErrorInfo ( ' VTable offset = 24
 BYVAL ulRecordNum AS DWORD
 , BYVAL lcid AS DWORD
 , BYREF ppErrorInfo AS IErrorInfo
 ) AS LONG
 ' =====================================================================================
 METHOD GetErrorParameters ( ' VTable offset = 28
 BYVAL ulRecordNum AS DWORD
 , BYREF pdispparams AS DISPPARAMS
 ) AS LONG
 ' =====================================================================================
 METHOD GetRecordCount ( ' VTable offset = 32
 BYREF pcRecords AS DWORD
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __IErrorRecords_INTERFACE_DEFINED__ */
' ########################################################################################
' IErrorLookup interface
' IID = 0C733A66-2A1C-11CE-ADE5-00AA0044773D
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%IErrorLookup_INTERFACE_DEFINED)
 %IErrorLookup_INTERFACE_DEFINED = 1
INTERFACE IErrorLookup $IID_IErrorLookup
 INHERIT IUnknown
 ' =====================================================================================
 METHOD GetErrorDescription ( ' VTable offset = 12
 BYVAL hrError AS DWORD
 , BYVAL dwLookupID AS DWORD
 , BYREF pdispparams AS DISPPARAMS
 , BYVAL lcid AS DWORD
 , BYREF pbstrSource AS WSTRING
 , BYREF pbstrDescription AS WSTRING
 ) AS LONG
 ' =====================================================================================
 METHOD GetHelpInfo ( ' VTable offset = 16
 BYVAL hrError AS DWORD
 , BYVAL dwLookupID AS DWORD
 , BYVAL lcid AS DWORD
 , BYREF pbstrHelpFile AS WSTRING
 , BYREF pdwHelpContext AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD ReleaseErrors ( ' VTable offset = 20
 BYVAL dwDynamicErrorID AS DWORD
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __IErrorLookup_INTERFACE_DEFINED__ */
' ########################################################################################
' ISQLErrorInfo interface
' IID = 0C733A74-2A1C-11CE-ADE5-00AA0044773D
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%ISQLErrorInfo_INTERFACE_DEFINED)
 %ISQLErrorInfo_INTERFACE_DEFINED = 1
INTERFACE ISQLErrorInfo $IID_ISQLErrorInfo
 INHERIT IUnknown
 ' =====================================================================================
 METHOD GetSQLInfo ( ' VTable offset = 12
 BYREF pbstrSQLState AS WSTRING
 , BYREF plNativeError AS LONG
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __ISQLErrorInfo_INTERFACE_DEFINED__ */
' ########################################################################################
' IGetDataSource interface
' IID = 0C733A67-2A1C-11CE-ADE5-00AA0044773D
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%IGetDataSource_INTERFACE_DEFINED)
 %IGetDataSource_INTERFACE_DEFINED = 1
INTERFACE IGetDataSource $IID_IGetDataSource
 INHERIT IUnknown
 ' =====================================================================================
 METHOD GetDataSource ( ' VTable offset = 12
 BYREF riid AS GUID
 , BYREF ppDataSource AS IUnknown
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __IGetDataSource_INTERFACE_DEFINED__ */
' ########################################################################################
' ITransactionLocal interface
' IID = 0C733A5F-2A1C-11CE-ADE5-00AA0044773D
' Inherited interface = ITransaction
' ########################################################################################
#IF NOT %DEF(%ITransactionLocal_INTERFACE_DEFINED)
 %ITransactionLocal_INTERFACE_DEFINED = 1
INTERFACE ITransactionLocal $IID_ITransactionLocal
 INHERIT IUnknown
 ' =====================================================================================
 METHOD Commit ( ' VTable offset = 12
 BYVAL fRetaining AS LONG
 , BYVAL grfTC AS DWORD
 , BYVAL grfRM AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD Abort ( ' VTable offset = 16
 BYVAL pboidReason AS DWORD
 , BYVAL fRetaining AS LONG
 , BYVAL fAsync AS LONG
 ) AS LONG
 ' =====================================================================================
 METHOD GetTransactionInfo ( ' VTable offset = 20
 BYREF pinfo AS XACTTRANSINFO
 ) AS LONG
 ' =====================================================================================
 METHOD GetOptionsObject ( ' VTable offset = 12
 BYREF ppOptions AS ITransactionOptions
 ) AS LONG
 ' =====================================================================================
 METHOD StartTransaction ( ' VTable offset = 16
 BYVAL isoLevel AS LONG
 , BYVAL isoFlags AS DWORD
 , BYVAL pOtherOptions AS ITransactionOptions
 , BYREF pulTransactionLevel AS DWORD
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __ITransactionLocal_INTERFACE_DEFINED__ */
' ########################################################################################
' ITransactionJoin interface
' IID = 0C733A5E-2A1C-11CE-ADE5-00AA0044773D
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%ITransactionJoin_INTERFACE_DEFINED)
 %ITransactionJoin_INTERFACE_DEFINED = 1
INTERFACE ITransactionJoin $IID_ITransactionJoin
 INHERIT IUnknown
 ' =====================================================================================
 METHOD Commit ( ' VTable offset = 12
 BYVAL fRetaining AS LONG
 , BYVAL grfTC AS DWORD
 , BYVAL grfRM AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD Abort ( ' VTable offset = 16
 BYVAL pboidReason AS DWORD
 , BYVAL fRetaining AS LONG
 , BYVAL fAsync AS LONG
 ) AS LONG
 ' =====================================================================================
 METHOD GetTransactionInfo ( ' VTable offset = 20
 BYREF pinfo AS XACTTRANSINFO
 ) AS LONG
 ' =====================================================================================
 METHOD GetOptionsObject ( ' VTable offset = 24
 BYREF ppOptions AS ITransactionOptions
 ) AS LONG
 ' =====================================================================================
 METHOD StartTransaction ( ' VTable offset = 28
 BYVAL punkTransactionCoord AS IUnknown
 , BYVAL isoLevel AS LONG
 , BYVAL isoFlags AS DWORD
 , BYVAL pOtherOptions AS DWORD
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __ITransactionJoin_INTERFACE_DEFINED__ */
' ########################################################################################
' ITransactionObject interface
' IID = 0C733A60-2A1C-11CE-ADE5-00AA0044773D
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%ITransactionObject_INTERFACE_DEFINED)
 %ITransactionObject_INTERFACE_DEFINED = 1
INTERFACE ITransactionObject $IID_ITransactionObject
 INHERIT IUnknown
 ' =====================================================================================
 METHOD GetTransactionObject ( ' VTable offset = 12
 BYVAL ulTransactionLevel AS DWORD
 , BYREF ppTransactionObject AS ITransaction
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __ITransactionObject_INTERFACE_DEFINED__ */
' ########################################################################################
' ITrusteeAdmin interface
' IID = 0C733AA1-2A1C-11CE-ADE5-00AA0044773D
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%ITrusteeAdmin_INTERFACE_DEFINED)
 %ITrusteeAdmin_INTERFACE_DEFINED = 1
INTERFACE ITrusteeAdmin $IID_ITrusteeAdmin
 INHERIT IUnknown
 ' =====================================================================================
 METHOD CompareTrustees ( ' VTable offset = 12
 BYREF pTrustee1 AS TRUSTEE_W
 , BYREF pTrustee2 AS TRUSTEE_W
 ) AS LONG
 ' =====================================================================================
 METHOD CreateTrustee ( ' VTable offset = 16
 BYREF pTrustee AS TRUSTEE_W
 , BYVAL cPropertySets AS DWORD
 , BYREF rgPropertySets AS DBPROPSET
 ) AS LONG
 ' =====================================================================================
 METHOD DeleteTrustee ( ' VTable offset = 20
 BYREF pTrustee AS TRUSTEE_W
 ) AS LONG
 ' =====================================================================================
 METHOD SetTrusteeProperties ( ' VTable offset = 24
 BYREF pTrustee AS TRUSTEE_W
 , BYVAL cPropertySets AS DWORD
 , BYREF rgPropertySets AS DBPROPSET
 ) AS LONG
 ' =====================================================================================
 METHOD GetTrusteeProperties ( ' VTable offset = 28
 BYREF pTrustee AS TRUSTEE_W
 , BYVAL cPropertyIDSets AS DWORD
 , BYREF rgPropertyIDSets AS DBPROPIDSET
 , BYREF pcPropertySets AS DWORD
 , BYREF prgPropertySets AS DWORD
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __ITrusteeAdmin_INTERFACE_DEFINED__ */
' ########################################################################################
' ITrusteeGroupAdmin interface
' IID = 0C733AA2-2A1C-11CE-ADE5-00AA0044773D
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%ITrusteeGroupAdmin_INTERFACE_DEFINED)
 %ITrusteeGroupAdmin_INTERFACE_DEFINED = 1
INTERFACE ITrusteeGroupAdmin $IID_ITrusteeGroupAdmin
 INHERIT IUnknown
 ' =====================================================================================
 METHOD AddMember ( ' VTable offset = 12
 BYREF pMembershipTrustee AS TRUSTEE_W
 , BYREF pMemberTrustee AS TRUSTEE_W
 ) AS LONG
 ' =====================================================================================
 METHOD DeleteMember ( ' VTable offset = 16
 BYREF pMembershipTrustee AS TRUSTEE_W
 , BYREF pMemberTrustee AS TRUSTEE_W
 ) AS LONG
 ' =====================================================================================
 METHOD IsMember ( ' VTable offset = 20
 BYREF pMembershipTrustee AS TRUSTEE_W
 , BYREF pMemberTrustee AS TRUSTEE_W
 , BYREF pfStatus AS LONG
 ) AS LONG
 ' =====================================================================================
 METHOD GetMembers ( ' VTable offset = 24
 BYREF pMembershipTrustee AS TRUSTEE_W
 , BYREF pcMembers AS DWORD
 , BYREF prgMembers AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD GetMemberships ( ' VTable offset = 28
 BYREF pTrustee AS TRUSTEE_W
 , BYREF pcMemberships AS DWORD
 , BYREF prgMemberships AS DWORD
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __ITrusteeGroupAdmin_INTERFACE_DEFINED__ */
' ########################################################################################
' IObjectAccessControl interface
' IID = 0C733AA3-2A1C-11CE-ADE5-00AA0044773D
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%IObjectAccessControl_INTERFACE_DEFINED)
 %IObjectAccessControl_INTERFACE_DEFINED = 1
INTERFACE IObjectAccessControl $IID_IObjectAccessControl
 INHERIT IUnknown
 ' =====================================================================================
 METHOD GetObjectAccessRights ( ' VTable offset = 12
 BYREF pObject AS SEC_OBJECT
 , BYREF pcAccessEntries AS DWORD
 , BYREF prgAccessEntries AS EXPLICIT_ACCESS_W
 ) AS LONG
 ' =====================================================================================
 METHOD GetObjectOwner ( ' VTable offset = 16
 BYREF pObject AS SEC_OBJECT
 , BYREF ppOwner AS TRUSTEE_W
 ) AS LONG
 ' =====================================================================================
 METHOD IsObjectAccessAllowed ( ' VTable offset = 20
 BYREF pObject AS SEC_OBJECT
 , BYREF pAccessEntry AS EXPLICIT_ACCESS_W
 , BYREF pfResult AS LONG
 ) AS LONG
 ' =====================================================================================
 METHOD SetObjectAccessRights ( ' VTable offset = 24
 BYREF pObject AS SEC_OBJECT
 , BYVAL cAccessEntries AS DWORD
 , BYREF prgAccessEntries AS EXPLICIT_ACCESS_W
 ) AS LONG
 ' =====================================================================================
 METHOD SetObjectOwner ( ' VTable offset = 28
 BYREF pObject AS SEC_OBJECT
 , BYREF pOwner AS TRUSTEE_W
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __IObjectAccessControl_INTERFACE_DEFINED__ */
' ########################################################################################
' ISecurityInfo interface
' IID = 0C733AA4-2A1C-11CE-ADE5-00AA0044773D
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%ISecurityInfo_INTERFACE_DEFINED)
 %ISecurityInfo_INTERFACE_DEFINED = 1
' // Already defined in WinNT.inc
'typedef DWORD ACCESS_MASK;
' ACCESS_MASKENUM
%EQUATE `PERM_EXCLUSIVE = &H200
%EQUATE `PERM_READDESIGN = &H400
%EQUATE `PERM_WRITEDESIGN = &H800
%EQUATE `PERM_WITHGRANT = &H1000
%EQUATE `PERM_REFERENCE = &H2000
%EQUATE `PERM_CREATE = &H4000
%EQUATE `PERM_INSERT = &H8000
%EQUATE `PERM_DELETE = &H10000
%EQUATE `PERM_READCONTROL = &H20000
%EQUATE `PERM_WRITEPERMISSIONS = &H40000
%EQUATE `PERM_WRITEOWNER = &H80000
%EQUATE `PERM_MAXIMUM_ALLOWED = &H2000000
%EQUATE `PERM_ALL = &H10000000
%EQUATE `PERM_EXECUTE = &H20000000
%EQUATE `PERM_READ = &H80000000
%EQUATE `PERM_UPDATE = &H40000000
%EQUATE `PERM_DROP = &H100
%EQUATE `PERM_DESIGN = %PERM_WRITEDESIGN
INTERFACE ISecurityInfo $IID_ISecurityInfo
 INHERIT IUnknown
 ' =====================================================================================
 METHOD GetCurrentTrustee ( ' VTable offset = 12
 BYREF ppTrustee AS TRUSTEE_W
 ) AS LONG
 ' =====================================================================================
 METHOD GetObjectTypes ( ' VTable offset = 16
 BYREF cObjectTypes AS DWORD
 , BYREF rgObjectTypes AS GUID
 ) AS LONG
 ' =====================================================================================
 METHOD GetPermissions ( ' VTable offset = 20
 BYREF ObjectType AS GUID
 , BYREF pPermissions AS ACCESS_MASK
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __ISecurityInfo_INTERFACE_DEFINED__ */
' ########################################################################################
' ITableCreation interface
' IID = 0C733ABC-2A1C-11CE-ADE5-00AA0044773D
' Inherited interface = ITableDefinition
' ########################################################################################
#IF NOT %DEF(%ITableCreation_INTERFACE_DEFINED)
 %ITableCreation_INTERFACE_DEFINED = 1
INTERFACE ITableCreation $IID_ITableCreation
 INHERIT IUnknown
 ' =====================================================================================
 METHOD CreateTable ( ' VTable offset = 12
 BYVAL pUnkOuter AS IUnknown
 , BYREF pTableID AS DBID
 , BYVAL cColumnDescs AS DWORD
 , BYREF rgColumnDescs AS DBCOLUMNDESC
 , BYREF riid AS GUID
 , BYVAL cPropertySets AS DWORD
 , BYREF rgPropertySets AS DBPROPSET
 , BYREF ppTableID AS DBID
 , BYREF ppRowset AS IUnknown
 ) AS LONG
 ' =====================================================================================
 METHOD DropTable ( ' VTable offset = 16
 BYREF pTableID AS DBID
 ) AS LONG
 ' =====================================================================================
 METHOD AddColumn ( ' VTable offset = 20
 BYREF pTableID AS DBID
 , BYREF pColumnDesc AS DBCOLUMNDESC
 , BYREF ppColumnID AS DBID
 ) AS LONG
 ' =====================================================================================
 METHOD DropColumn ( ' VTable offset = 24
 BYREF pTableID AS DBID
 , BYREF pColumnID AS DBID
 ) AS LONG
 ' =====================================================================================
 METHOD GetTableDefinition ( ' VTable offset = 28
 BYREF pTableID AS DBID
 , BYREF pcColumnDescs AS DWORD
 , BYREF prgColumnDescs AS DBCOLUMNDESC
 , BYREF pcPropertySets AS DWORD
 , BYREF prgPropertySets AS DBPROPSET
 , BYREF pcConstraintDescs AS DWORD
 , BYREF prgConstraintDescs AS DBCONSTRAINTDESC
 , BYREF ppwszStringBuffer AS DWORD
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __ITableCreation_INTERFACE_DEFINED__ */
' ########################################################################################
' ITableDefinitionWithConstraints interface
' IID = 0C733AAB-2A1C-11CE-ADE5-00AA0044773D
' Inherited interface = ITableCreation
' ########################################################################################
#IF NOT %DEF(%ITableDefinitionWithConstraints_INTERFACE_DEFINED)
 %ITableDefinitionWithConstraints_INTERFACE_DEFINED = 1
INTERFACE ITableDefinitionWithConstraints $IID_ITableDefinitionWithConstraints
 INHERIT IUnknown
 ' =====================================================================================
 METHOD CreateTable ( ' VTable offset = 12
 BYVAL pUnkOuter AS IUnknown
 , BYREF pTableID AS DBID
 , BYVAL cColumnDescs AS DWORD
 , BYREF rgColumnDescs AS DBCOLUMNDESC
 , BYREF riid AS GUID
 , BYVAL cPropertySets AS DWORD
 , BYREF rgPropertySets AS DBPROPSET
 , BYREF ppTableID AS DBID
 , BYREF ppRowset AS IUnknown
 ) AS LONG
 ' =====================================================================================
 METHOD DropTable ( ' VTable offset = 16
 BYREF pTableID AS DBID
 ) AS LONG
 ' =====================================================================================
 METHOD AddColumn ( ' VTable offset = 20
 BYREF pTableID AS DBID
 , BYREF pColumnDesc AS DBCOLUMNDESC
 , BYREF ppColumnID AS DBID
 ) AS LONG
 ' =====================================================================================
 METHOD DropColumn ( ' VTable offset = 24
 BYREF pTableID AS DBID
 , BYREF pColumnID AS DBID
 ) AS LONG
 ' =====================================================================================
 METHOD GetTableDefinition ( ' VTable offset = 28
 BYREF pTableID AS DBID
 , BYREF pcColumnDescs AS DWORD
 , BYREF prgColumnDescs AS DBCOLUMNDESC
 , BYREF pcPropertySets AS DWORD
 , BYREF prgPropertySets AS DBPROPSET
 , BYREF pcConstraintDescs AS DWORD
 , BYREF prgConstraintDescs AS DBCONSTRAINTDESC
 , BYREF ppwszStringBuffer AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD AddConstraint ( ' VTable offset = 32
 BYREF pTableID AS DBID
 , BYREF pConstraintDesc AS DBCONSTRAINTDESC
 ) AS LONG
 ' =====================================================================================
 METHOD CreateTableWithConstraints ( ' VTable offset = 36
 BYVAL pUnkOuter AS IUnknown
 , BYREF pTableID AS DBID
 , BYVAL cColumnDescs AS DWORD
 , BYREF rgColumnDescs AS DBCOLUMNDESC
 , BYVAL cConstraintDescs AS DWORD
 , BYREF rgConstraintDescs AS DBCONSTRAINTDESC
 , BYREF riid AS GUID
 , BYVAL cPropertySets AS DWORD
 , BYREF rgPropertySets AS DBPROPSET
 , BYREF ppTableID AS DBID
 , BYREF ppRowset AS IUnknown
 ) AS LONG
 ' =====================================================================================
 METHOD DropConstraint ( ' VTable offset = 40
 BYREF pTableID AS DBID
 , BYREF pConstraintID AS DBID
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __ITableDefinitionWithConstraints_INTERFACE_DEFINED__ */
' ########################################################################################
' IRow interface
' IID = 0C733AB4-2A1C-11CE-ADE5-00AA0044773D
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%IRow_INTERFACE_DEFINED)
 %IRow_INTERFACE_DEFINED = 1
INTERFACE IRow $IID_IRow
 INHERIT IUnknown
 ' =====================================================================================
 METHOD GetColumns ( ' VTable offset = 12
 BYVAL cColumns AS DWORD
 , BYREF rgColumns AS DBCOLUMNACCESS
 ) AS LONG
 ' =====================================================================================
 METHOD GetSourceRowset ( ' VTable offset = 16
 BYREF riid AS GUID
 , BYREF ppRowset AS IUnknown
 , BYREF phRow AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD Open ( ' VTable offset = 20
 BYVAL pUnkOuter AS IUnknown
 , BYREF pColumnID AS DBID
 , BYREF rguidColumnType AS GUID
 , BYVAL dwBindFlags AS DWORD
 , BYREF riid AS GUID
 , BYREF ppUnk AS IUnknown
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __IRow_INTERFACE_DEFINED__ */
' ########################################################################################
' IRowChange interface
' IID = 0C733AB5-2A1C-11CE-ADE5-00AA0044773D
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%IRowChange_INTERFACE_DEFINED)
 %IRowChange_INTERFACE_DEFINED = 1
INTERFACE IRowChange $IID_IRowChange
 INHERIT IUnknown
 ' =====================================================================================
 METHOD SetColumns ( ' VTable offset = 12
 BYVAL cColumns AS DWORD
 , BYREF rgColumns AS DBCOLUMNACCESS
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __IRowChange_INTERFACE_DEFINED__ */
' ########################################################################################
' IRowSchemaChange interface
' IID = 0C733AAE-2A1C-11CE-ADE5-00AA0044773D
' Inherited interface = IRowChange
' ########################################################################################
#IF NOT %DEF(%IRowSchemaChange_INTERFACE_DEFINED)
 %IRowSchemaChange_INTERFACE_DEFINED = 1
INTERFACE IRowSchemaChange $IID_IRowSchemaChange
 INHERIT IUnknown
 ' =====================================================================================
 METHOD SetColumns ( ' VTable offset = 12
 BYVAL cColumns AS DWORD
 , BYREF rgColumns AS DBCOLUMNACCESS
 ) AS LONG
 ' =====================================================================================
 METHOD DeleteColumns ( ' VTable offset = 16
 BYVAL cColumns AS DWORD
 , BYREF rgColumnIDs AS DBID
 , BYREF rgdwStatus AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD AddColumns ( ' VTable offset = 20
 BYVAL cColumns AS DWORD
 , BYREF rgNewColumnInfo AS DBCOLUMNINFO
 , BYREF rgColumns AS DBCOLUMNACCESS
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __IRowSchemaChange_INTERFACE_DEFINED__ */
' ########################################################################################
' IGetRow interface
' IID = 0C733AAF-2A1C-11CE-ADE5-00AA0044773D
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%IGetRow_INTERFACE_DEFINED)
 %IGetRow_INTERFACE_DEFINED = 1
INTERFACE IGetRow $IID_IGetRow
 INHERIT IUnknown
 ' =====================================================================================
 METHOD GetRowFromHROW ( ' VTable offset = 12
 BYVAL pUnkOuter AS IUnknown
 , BYVAL hRow AS DWORD
 , BYREF riid AS GUID
 , BYREF ppUnk AS IUnknown
 ) AS LONG
 ' =====================================================================================
 METHOD GetURLFromHROW ( ' VTable offset = 16
 BYVAL hRow AS DWORD
 , BYREF ppwszURL AS DWORD
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __IGetRow_INTERFACE_DEFINED__ */
' ########################################################################################
' IBindResource interface
' IID = 0C733AB1-2A1C-11CE-ADE5-00AA0044773D
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%IBindResource_INTERFACE_DEFINED)
 %IBindResource_INTERFACE_DEFINED = 1
INTERFACE IBindResource $IID_IBindResource
 INHERIT IUnknown
 ' =====================================================================================
 METHOD Bind ( ' VTable offset = 12
 BYVAL pUnkOuter AS IUnknown
 , BYREF pwszURL AS WSTRINGZ
 , BYVAL dwBindURLFlags AS DWORD
 , BYREF rguid AS GUID
 , BYREF riid AS GUID
 , BYVAL pAuthenticate AS IAuthenticate
 , BYREF pImplSession AS DBIMPLICITSESSION
 , BYREF pdwBindStatus AS DWORD
 , BYREF ppUnk AS IUnknown
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __IBindResource_INTERFACE_DEFINED__ */
' ########################################################################################
' IScopedOperations interface
' IID = 0C733AB0-2A1C-11CE-ADE5-00AA0044773D
' Inherited interface = IBindResource
' ########################################################################################
#IF NOT %DEF(%IScopedOperations_INTERFACE_DEFINED)
 %IScopedOperations_INTERFACE_DEFINED = 1
'typedef DWORD DBCOPYFLAGS;
' DBCOPYFLAGSENUM
%EQUATE `DBCOPY_ASYNC = &H100
%EQUATE `DBCOPY_REPLACE_EXISTING = &H200
%EQUATE `DBCOPY_ALLOW_EMULATION = &H400
%EQUATE `DBCOPY_NON_RECURSIVE = &H800
%EQUATE `DBCOPY_ATOMIC = &H1000
'typedef DWORD DBMOVEFLAGS;
' DBMOVEFLAGSENUM
%EQUATE `DBMOVE_REPLACE_EXISTING = &H1
%EQUATE `DBMOVE_ASYNC = &H100
%EQUATE `DBMOVE_DONT_UPDATE_LINKS = &H200
%EQUATE `DBMOVE_ALLOW_EMULATION = &H400
%EQUATE `DBMOVE_ATOMIC = &H1000
'typedef DWORD DBDELETEFLAGS;
' DBDELETEFLAGSENUM
%EQUATE `DBDELETE_ASYNC = &H100
%EQUATE `DBDELETE_ATOMIC = &H1000
INTERFACE IScopedOperations $IID_IScopedOperations
 INHERIT IUnknown
 ' =====================================================================================
 METHOD Bind ( ' VTable offset = 12
 BYVAL pUnkOuter AS IUnknown
 , BYREF pwszURL AS WSTRINGZ
 , BYVAL dwBindURLFlags AS DWORD
 , BYREF rguid AS GUID
 , BYREF riid AS GUID
 , BYVAL pAuthenticate AS IAuthenticate
 , BYREF pImplSession AS DBIMPLICITSESSION
 , BYREF pdwBindStatus AS DWORD
 , BYREF ppUnk AS IUnknown
 ) AS LONG
 ' =====================================================================================
 METHOD Copy ( ' VTable offset = 16
 BYVAL cRows AS DWORD
 , BYREF rgpwszSourceURLs AS WSTRINGZ
 , BYREF rgpwszDestURLs AS WSTRINGZ
 , BYVAL dwCopyFlags AS DWORD
 , BYVAL pAuthenticate AS IAuthenticate
 , BYREF rgdwStatus AS DWORD
 , BYREF rgpwszNewURLs AS WSTRINGZ
 , BYREF ppStringsBuffer AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD Move ( ' VTable offset = 20
 BYVAL cRows AS DWORD
 , BYREF rgpwszSourceURLs AS WSTRINGZ
 , BYREF rgpwszDestURLs AS WSTRINGZ
 , BYVAL dwMoveFlags AS DWORD
 , BYVAL pAuthenticate AS IAuthenticate
 , BYREF rgdwStatus AS DWORD
 , BYREF rgpwszNewURLs AS WSTRINGZ
 , BYREF ppStringsBuffer AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD Delete ( ' VTable offset = 24
 BYVAL cRows AS DWORD
 , BYREF rgpwszURLs AS WSTRINGZ
 , BYVAL dwDeleteFlags AS DWORD
 , BYREF rgdwStatus AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD OpenRowset ( ' VTable offset = 28
 BYVAL pUnkOuter AS IUnknown
 , BYREF pTableID AS DBID
 , BYREF pIndexID AS DBID
 , BYREF riid AS GUID
 , BYVAL cPropertySets AS DWORD
 , BYREF rgPropertySets AS DBPROPSET
 , BYREF ppRowset AS IUnknown
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __IScopedOperations_INTERFACE_DEFINED__ */
' ########################################################################################
' ICreateRow interface
' IID = 0C733AB2-2A1C-11CE-ADE5-00AA0044773D
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%ICreateRow_INTERFACE_DEFINED)
 %ICreateRow_INTERFACE_DEFINED = 1
INTERFACE ICreateRow $IID_ICreateRow
 INHERIT IUnknown
 ' =====================================================================================
 METHOD CreateRow ( ' VTable offset = 12
 BYVAL pUnkOuter AS IUnknown
 , BYREF pwszURL AS WSTRINGZ
 , BYVAL dwBindURLFlags AS DWORD
 , BYREF rguid AS GUID
 , BYREF riid AS GUID
 , BYVAL pAuthenticate AS IAuthenticate
 , BYREF pImplSession AS DBIMPLICITSESSION
 , BYREF pdwBindStatus AS DWORD
 , BYREF ppwszNewURL AS DWORD
 , BYREF ppUnk AS IUnknown
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __ICreateRow_INTERFACE_DEFINED__ */
' ########################################################################################
' IDBBinderProperties interface
' IID = 0C733AB3-2A1C-11CE-ADE5-00AA0044773D
' Inherited interface = IDBProperties
' ########################################################################################
#IF NOT %DEF(%IDBBinderProperties_INTERFACE_DEFINED)
 %IDBBinderProperties_INTERFACE_DEFINED = 1
INTERFACE IDBBinderProperties $IID_IDBBinderProperties
 INHERIT IUnknown
 ' =====================================================================================
 METHOD GetProperties ( ' VTable offset = 12
 BYVAL cPropertyIDSets AS DWORD
 , BYREF rgPropertyIDSets AS DBPROPIDSET
 , BYREF pcPropertySets AS DWORD
 , BYREF prgPropertySets AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD GetPropertyInfo ( ' VTable offset = 16
 BYVAL cPropertyIDSets AS DWORD
 , BYREF rgPropertyIDSets AS DBPROPIDSET
 , BYREF pcPropertyInfoSets AS DWORD
 , BYREF prgPropertyInfoSets AS DWORD
 , BYREF ppDescBuffer AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD SetProperties ( ' VTable offset = 20
 BYVAL cPropertySets AS DWORD
 , BYREF rgPropertySets AS DBPROPSET
 ) AS LONG
 ' =====================================================================================
 METHOD Reset ( ' VTable offset = 24
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __IDBBinderProperties_INTERFACE_DEFINED__ */
' ########################################################################################
' IColumnsInfo2 interface
' IID = 0C733AB8-2A1C-11CE-ADE5-00AA0044773D
' Inherited interface = IColumnsInfo
' ########################################################################################
#IF NOT %DEF(%IColumnsInfo2_INTERFACE_DEFINED)
 %IColumnsInfo2_INTERFACE_DEFINED = 1
INTERFACE IColumnsInfo2 $IID_IColumnsInfo2
 INHERIT IUnknown
 ' =====================================================================================
 METHOD GetColumnInfo ( ' VTable offset = 12
 BYREF pcColumns AS DWORD
 , BYREF prgInfo AS DBCOLUMNINFO
 , BYREF ppStringsBuffer AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD MapColumnIDs ( ' VTable offset = 16
 BYVAL cColumnIDs AS DWORD
 , BYREF rgColumnIDs AS DBID
 , BYREF rgColumns AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD GetRestrictedColumnInfo ( ' VTable offset = 20
 BYVAL cColumnIDMasks AS DWORD
 , BYREF rgColumnIDMasks AS DBID
 , BYVAL dwFlags AS DWORD
 , BYREF pcColumns AS DWORD
 , BYREF prgColumnIDs AS DWORD
 , BYREF prgColumnInfo AS DWORD
 , BYREF ppStringsBuffer AS DWORD
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __IColumnsInfo2_INTERFACE_DEFINED__ */
' ########################################################################################
' IRegisterProvider interface
' IID = 0C733AB9-2A1C-11CE-ADE5-00AA0044773D
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%IRegisterProvider_INTERFACE_DEFINED)
 %IRegisterProvider_INTERFACE_DEFINED = 1
INTERFACE IRegisterProvider $IID_IRegisterProvider
 INHERIT IUnknown
 ' =====================================================================================
 METHOD GetURLMapping ( ' VTable offset = 12
 BYREF pwszURL AS WSTRINGZ
 , BYVAL dwReserved AS DWORD
 , BYREF pclsidProvider AS GUID
 ) AS LONG
 ' =====================================================================================
 METHOD SetURLMapping ( ' VTable offset = 16
 BYREF pwszURL AS WSTRINGZ
 , BYVAL dwReserved AS DWORD
 , BYREF rclsidProvider AS GUID
 ) AS LONG
 ' =====================================================================================
 METHOD UnregisterProvider ( ' VTable offset = 20
 BYREF pwszURL AS WSTRINGZ
 , BYVAL dwReserved AS DWORD
 , BYREF rclsidProvider AS GUID
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __IRegisterProvider_INTERFACE_DEFINED__ */
' ########################################################################################
' IGetSession interface
' IID = 0C733ABA-2A1C-11CE-ADE5-00AA0044773D
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%IGetSession_INTERFACE_DEFINED)
 %IGetSession_INTERFACE_DEFINED = 1
INTERFACE IGetSession $IID_IGetSession
 INHERIT IUnknown
 ' =====================================================================================
 METHOD GetSession ( ' VTable offset = 12
 BYREF riid AS GUID
 , BYREF ppSession AS IUnknown
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __IGetSession_INTERFACE_DEFINED__ */
' ########################################################################################
' IGetSourceRow interface
' IID = 0C733ABB-2A1C-11CE-ADE5-00AA0044773D
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%IGetSourceRow_INTERFACE_DEFINED)
 %IGetSourceRow_INTERFACE_DEFINED = 1
INTERFACE IGetSourceRow $IID_IGetSourceRow
 INHERIT IUnknown
 ' =====================================================================================
 METHOD GetSourceRow ( ' VTable offset = 12
 BYREF riid AS GUID
 , BYREF ppRow AS IUnknown
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __IGetSourceRow_INTERFACE_DEFINED__ */
' ########################################################################################
' IRowsetCurrentIndex interface
' IID = 0C733ABD-2A1C-11CE-ADE5-00AA0044773D
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%IRowsetCurrentIndex_INTERFACE_DEFINED)
 %IRowsetCurrentIndex_INTERFACE_DEFINED = 1
INTERFACE IRowsetCurrentIndex $IID_IRowsetCurrentIndex
 INHERIT IUnknown
 ' =====================================================================================
 METHOD GetIndex ( ' VTable offset = 12
 BYREF ppIndexID AS DBID
 ) AS LONG
 ' =====================================================================================
 METHOD SetIndex ( ' VTable offset = 16
 BYREF pIndexID AS DBID
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __IRowsetCurrentIndex_INTERFACE_DEFINED__ */
' ########################################################################################
' ICommandStream interface
' IID = 0C733ABF-2A1C-11CE-ADE5-00AA0044773D
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%ICommandStream_INTERFACE_DEFINED)
 %ICommandStream_INTERFACE_DEFINED = 1
INTERFACE ICommandStream $IID_ICommandStream
 INHERIT IUnknown
 ' =====================================================================================
 METHOD GetCommandStream ( ' VTable offset = 12
 BYREF piid AS GUID
 , BYREF pguidDialect AS GUID
 , BYREF ppCommandStream AS IUnknown
 ) AS LONG
 ' =====================================================================================
 METHOD SetCommandStream ( ' VTable offset = 16
 BYREF riid AS GUID
 , BYREF rguidDialect AS GUID
 , BYVAL pCommandStream AS IUnknown
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __ICommandStream_INTERFACE_DEFINED__ */
' ########################################################################################
' IRowsetBookmark interface
' IID = 0C733AC2-2A1C-11CE-ADE5-00AA0044773D
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%IRowsetBookmark_INTERFACE_DEFINED)
 %IRowsetBookmark_INTERFACE_DEFINED = 1
INTERFACE IRowsetBookmark $IID_IRowsetBookmark
 INHERIT IUnknown
 ' =====================================================================================
 METHOD PositionOnBookmark ( ' VTable offset = 12
 BYVAL hChapter AS DWORD
 , BYVAL cbBookmark AS DWORD
 , BYVAL pBookmark AS BYTE PTR
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __IRowsetBookmark_INTERFACE_DEFINED__ */
'#include <poppack.h> // restore original structure packing
#ENDIF
