Skip to content

Instantly share code, notes, and snippets.

@wqweto
Created December 6, 2018 07:04
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save wqweto/c5590409f7886f96d5caa415028b3558 to your computer and use it in GitHub Desktop.
Save wqweto/c5590409f7886f96d5caa415028b3558 to your computer and use it in GitHub Desktop.
OLEDB interfaces for feeding DataSource property of bound-controls
[
uuid(0DF264F1-248C-4cf7-A9C7-8BB3CED7B3BA),
version(1.0),
helpstring("OLEDB Interfaces 1.0")
]
library OLEDBInterfaces
{
importlib("stdole2.tlb");
importlib("msdatsrc.tlb");
interface IRowPosition;
interface IRowPositionChange;
interface IRowset;
interface IRowsetInfo;
interface IRowsetNotify;
interface IRowsetLocate;
interface IRowsetScroll;
interface IRowsetBookmark;
interface IColumnsInfo;
interface IAccessor;
interface IRowsetView;
interface IViewChapter;
interface IViewFilter;
interface IViewRowset;
interface IViewSort;
interface IConnectionPointContainer;
interface IConnectionPoint;
interface IADORecordsetConstructionUnrestricted;
interface ISourcesRowset;
typedef BSTR DataMember;
typedef unsigned char BYTE;
typedef long DBORDINAL;
typedef long DBLENGTH;
typedef short DBTYPE;
typedef long HROW;
typedef long DBREFCOUNT;
typedef long DBROWSTATUS;
typedef long DBCOUNTITEM;
typedef long HACCESSOR;
typedef long HCHAPTER;
typedef long DBROWOFFSET;
typedef long DBROWOPTIONS;
typedef long DBROWCOUNT;
typedef long DBBKMARK;
typedef long HWATCHREGION;
typedef [public] long BOOL;
typedef long DWORD;
typedef long ULONG;
typedef DWORD DBPROPID;
typedef enum
{
DBPART_INVALID = 0,
DBPART_VALUE = 0x1,
DBPART_LENGTH = 0x2,
DBPART_STATUS = 0x4
} DBPART;
typedef enum
{
DBMEMOWNER_CLIENTOWNED = 0,
DBMEMOWNER_PROVIDEROWNED = 0x1
} DBMEMOWNER;
typedef enum {
DBPARAMIO_NOTPARAM = 0,
DBPARAMIO_INPUT = 0x1,
DBPARAMIO_OUTPUT = 0x2
} DBPARAMIO;
typedef enum {
DBTYPE_EMPTY = 0,
DBTYPE_NULL = 1,
DBTYPE_I2 = 2,
DBTYPE_I4 = 3,
DBTYPE_R4 = 4,
DBTYPE_R8 = 5,
DBTYPE_CY = 6,
DBTYPE_DATE = 7,
DBTYPE_BSTR = 8,
DBTYPE_IDISPATCH = 9,
DBTYPE_ERROR = 10,
DBTYPE_BOOL = 11,
DBTYPE_VARIANT = 12,
DBTYPE_IUNKNOWN = 13,
DBTYPE_DECIMAL = 14,
DBTYPE_UI1 = 17,
DBTYPE_ARRAY = 0x2000,
DBTYPE_BYREF = 0x4000,
DBTYPE_I1 = 16,
DBTYPE_UI2 = 18,
DBTYPE_UI4 = 19,
DBTYPE_I8 = 20,
DBTYPE_UI8 = 21,
DBTYPE_GUID = 72,
DBTYPE_VECTOR = 0x1000,
DBTYPE_RESERVED = 0x8000,
DBTYPE_BYTES = 128,
DBTYPE_STR = 129,
DBTYPE_WSTR = 130,
DBTYPE_NUMERIC = 131,
DBTYPE_UDT = 132,
DBTYPE_DBDATE = 133,
DBTYPE_DBTIME = 134,
DBTYPE_DBTIMESTAMP = 135
} DBTYPEENUM;
typedef enum {
DBACCESSOR_INVALID = 0,
DBACCESSOR_PASSBYREF = 0x1,
DBACCESSOR_ROWDATA = 0x2,
DBACCESSOR_PARAMETERDATA = 0x4,
DBACCESSOR_OPTIMIZED = 0x8,
DBACCESSOR_INHERITED = 0x10
} DBACCESSORFLAGS;
typedef enum {
DBBINDSTATUS_OK = 0,
DBBINDSTATUS_BADORDINAL = 1,
DBBINDSTATUS_UNSUPPORTEDCONVERSION = 2,
DBBINDSTATUS_BADBINDINFO = 3,
DBBINDSTATUS_BADSTORAGEFLAGS = 4,
DBBINDSTATUS_NOINTERFACE = 5,
DBBINDSTATUS_MULTIPLESTORAGE = 6
} DBBINDSTATUS;
typedef enum {
DBCOLUMNFLAGS_ISBOOKMARK = 0x1,
DBCOLUMNFLAGS_MAYDEFER = 0x2,
DBCOLUMNFLAGS_WRITE = 0x4,
DBCOLUMNFLAGS_WRITEUNKNOWN = 0x8,
DBCOLUMNFLAGS_ISFIXEDLENGTH = 0x10,
DBCOLUMNFLAGS_ISNULLABLE = 0x20,
DBCOLUMNFLAGS_MAYBENULL = 0x40,
DBCOLUMNFLAGS_ISLONG = 0x80,
DBCOLUMNFLAGS_ISROWID = 0x100,
DBCOLUMNFLAGS_ISROWVER = 0x200,
DBCOLUMNFLAGS_CACHEDEFERRED = 0x1000
} DBCOLUMNFLAGS;
typedef enum {
DBKIND_GUID_NAME = 0,
#define DBKIND_GUID_NAME 0
DBKIND_GUID_PROPID = DBKIND_GUID_NAME + 1,
#define DBKIND_GUID_PROPID (DBKIND_GUID_NAME + 1)
DBKIND_NAME = DBKIND_GUID_PROPID + 1,
#define DBKIND_NAME (DBKIND_GUID_PROPID + 1)
DBKIND_PGUID_NAME = DBKIND_NAME + 1,
#define DBKIND_PGUID_NAME (DBKIND_NAME + 1)
DBKIND_PGUID_PROPID = DBKIND_PGUID_NAME + 1,
#define DBKIND_PGUID_PROPID (DBKIND_PGUID_NAME + 1)
DBKIND_PROPID = DBKIND_PGUID_PROPID + 1,
#define DBKIND_PROPID (DBKIND_PGUID_PROPID + 1)
DBKIND_GUID = DBKIND_PROPID + 1
} DBKIND;
typedef enum {
DBCOMPARE_LT = 0,
#define DBCOMPARE_LT 0
DBCOMPARE_EQ = DBCOMPARE_LT + 1,
#define DBCOMPARE_EQ (DBCOMPARE_LT + 1)
DBCOMPARE_GT = DBCOMPARE_EQ + 1,
#define DBCOMPARE_GT (DBCOMPARE_EQ + 1)
DBCOMPARE_NE = DBCOMPARE_GT + 1,
#define DBCOMPARE_NE (DBCOMPARE_GT + 1)
DBCOMPARE_NOTCOMPARABLE = DBCOMPARE_NE + 1
} DBCOMPARE;
typedef enum {
DBREASON_ROWSET_FETCHPOSITIONCHANGE = 0,
#define DBREASON_ROWSET_FETCHPOSITIONCHANGE 0
DBREASON_ROWSET_RELEASE = DBREASON_ROWSET_FETCHPOSITIONCHANGE + 1,
#define DBREASON_ROWSET_RELEASE (DBREASON_ROWSET_FETCHPOSITIONCHANGE + 1)
DBREASON_COLUMN_SET = DBREASON_ROWSET_RELEASE + 1,
#define DBREASON_COLUMN_SET (DBREASON_ROWSET_RELEASE + 1)
DBREASON_COLUMN_RECALCULATED = DBREASON_COLUMN_SET + 1,
#define DBREASON_COLUMN_RECALCULATED (DBREASON_COLUMN_SET + 1)
DBREASON_ROW_ACTIVATE = DBREASON_COLUMN_RECALCULATED + 1,
#define DBREASON_ROW_ACTIVATE (DBREASON_COLUMN_RECALCULATED + 1)
DBREASON_ROW_RELEASE = DBREASON_ROW_ACTIVATE + 1,
#define DBREASON_ROW_RELEASE (DBREASON_ROW_ACTIVATE + 1)
DBREASON_ROW_DELETE = DBREASON_ROW_RELEASE + 1,
#define DBREASON_ROW_DELETE (DBREASON_ROW_RELEASE + 1)
DBREASON_ROW_FIRSTCHANGE = DBREASON_ROW_DELETE + 1,
#define DBREASON_ROW_FIRSTCHANGE (DBREASON_ROW_DELETE + 1)
DBREASON_ROW_INSERT = DBREASON_ROW_FIRSTCHANGE + 1,
#define DBREASON_ROW_INSERT (DBREASON_ROW_FIRSTCHANGE + 1)
DBREASON_ROW_RESYNCH = DBREASON_ROW_INSERT + 1,
#define DBREASON_ROW_RESYNCH (DBREASON_ROW_INSERT + 1)
DBREASON_ROW_UNDOCHANGE = DBREASON_ROW_RESYNCH + 1,
#define DBREASON_ROW_UNDOCHANGE (DBREASON_ROW_RESYNCH + 1)
DBREASON_ROW_UNDOINSERT = DBREASON_ROW_UNDOCHANGE + 1,
#define DBREASON_ROW_UNDOINSERT (DBREASON_ROW_UNDOCHANGE + 1)
DBREASON_ROW_UNDODELETE = DBREASON_ROW_UNDOINSERT + 1,
#define DBREASON_ROW_UNDODELETE (DBREASON_ROW_UNDOINSERT + 1)
DBREASON_ROW_UPDATE = DBREASON_ROW_UNDODELETE + 1,
#define DBREASON_ROW_UPDATE (DBREASON_ROW_UNDODELETE + 1)
DBREASON_ROWSET_CHANGED = DBREASON_ROW_UPDATE + 1,
#define DBREASON_ROWSET_CHANGED (DBREASON_ROW_UPDATE + 1)
DBREASON_ROWPOSITION_CHANGED = DBREASON_ROWSET_CHANGED + 1,
#define DBREASON_ROWPOSITION_CHANGED (DBREASON_ROWSET_CHANGED + 1)
DBREASON_ROWPOSITION_CHAPTERCHANGED = DBREASON_ROWPOSITION_CHANGED + 1,
#define DBREASON_ROWPOSITION_CHAPTERCHANGED (DBREASON_ROWPOSITION_CHANGED + 1)
DBREASON_ROWPOSITION_CLEARED = DBREASON_ROWPOSITION_CHAPTERCHANGED + 1,
#define DBREASON_ROWPOSITION_CLEARED (DBREASON_ROWPOSITION_CHAPTERCHANGED + 1)
DBREASON_ROW_ASYNCHINSERT = DBREASON_ROWPOSITION_CLEARED + 1
} DBREASON;
typedef enum {
DBEVENTPHASE_OKTODO = 0,
#define DBEVENTPHASE_OKTODO 0
DBEVENTPHASE_ABOUTTODO = DBEVENTPHASE_OKTODO + 1,
#define DBEVENTPHASE_ABOUTTODO DBEVENTPHASE_OKTODO + 1
DBEVENTPHASE_SYNCHAFTER = DBEVENTPHASE_ABOUTTODO + 1,
#define DBEVENTPHASE_SYNCHAFTER DBEVENTPHASE_ABOUTTODO + 1
DBEVENTPHASE_FAILEDTODO = DBEVENTPHASE_SYNCHAFTER + 1,
#define DBEVENTPHASE_FAILEDTODO DBEVENTPHASE_SYNCHAFTER + 1
DBEVENTPHASE_DIDEVENT = DBEVENTPHASE_FAILEDTODO + 1
} DBEVENTPHASE;
typedef enum {
DBPOSITION_OK = 0,
#define DBPOSITION_OK 0
DBPOSITION_NOROW = DBPOSITION_OK + 1,
#define DBPOSITION_NOROW (DBPOSITION_OK + 1)
DBPOSITION_BOF = DBPOSITION_NOROW + 1,
#define DBPOSITION_BOF (DBPOSITION_NOROW + 1)
DBPOSITION_EOF = DBPOSITION_BOF + 1
} DBPOSITIONFLAGS;
typedef enum {
DBPROPOPTIONS_REQUIRED = 0,
DBPROPOPTIONS_SETIFCHEAP = 0x1,
DBPROPOPTIONS_OPTIONAL = 0x1
} DBPROPOPTIONS;
typedef enum {
DBPROPSTATUS_OK = 0,
DBPROPSTATUS_NOTSUPPORTED = 1,
DBPROPSTATUS_BADVALUE = 2,
DBPROPSTATUS_BADOPTION = 3,
DBPROPSTATUS_BADCOLUMN = 4,
DBPROPSTATUS_NOTALLSETTABLE = 5,
DBPROPSTATUS_NOTSETTABLE = 6,
DBPROPSTATUS_NOTSET = 7,
DBPROPSTATUS_CONFLICTING = 8
} DBPROPSTATUS;
typedef enum {
VT_EMPTY = 0,
VT_NULL = 1,
VT_I2 = 2,
VT_I4 = 3,
VT_R4 = 4,
VT_R8 = 5,
VT_CY = 6,
VT_DATE = 7,
VT_BSTR = 8,
VT_DISPATCH = 9,
VT_ERROR = 10,
VT_BOOL = 11,
VT_VARIANT = 12,
VT_UNKNOWN = 13,
VT_DECIMAL = 14,
VT_I1 = 16,
VT_UI1 = 17,
VT_UI2 = 18,
VT_UI4 = 19,
VT_I8 = 20,
VT_UI8 = 21,
VT_INT = 22,
VT_UINT = 23,
VT_VOID = 24,
VT_HRESULT = 25,
VT_PTR = 26,
VT_SAFEARRAY = 27,
VT_CARRAY = 28,
VT_USERDEFINED = 29,
VT_LPSTR = 30,
VT_LPWSTR = 31,
VT_RECORD = 36,
VT_INT_PTR = 37,
VT_UINT_PTR = 38,
VT_FILETIME = 64,
VT_BLOB = 65,
VT_STREAM = 66,
VT_STORAGE = 67,
VT_STREAMED_OBJECT = 68,
VT_STORED_OBJECT = 69,
VT_BLOB_OBJECT = 70,
VT_CF = 71,
VT_CLSID = 72,
VT_VERSIONED_STREAM = 73,
VT_BSTR_BLOB = 0xfff,
VT_VECTOR = 0x1000,
VT_ARRAY = 0x2000,
VT_BYREF = 0x4000,
VT_RESERVED = 0x8000,
VT_ILLEGAL = 0xffff,
VT_ILLEGALMASKED = 0xfff,
VT_TYPEMASK = 0xfff
} VARTYPE;
typedef enum {
DBPROP_ABORTPRESERVE = 0x2,
DBPROP_ACTIVESESSIONS = 0x3,
DBPROP_APPENDONLY = 0xbb,
DBPROP_ASYNCTXNABORT = 0xa8,
DBPROP_ASYNCTXNCOMMIT = 0x4,
DBPROP_AUTH_CACHE_AUTHINFO = 0x5,
DBPROP_AUTH_ENCRYPT_PASSWORD = 0x6,
DBPROP_AUTH_INTEGRATED = 0x7,
DBPROP_AUTH_MASK_PASSWORD = 0x8,
DBPROP_AUTH_PASSWORD = 0x9,
DBPROP_AUTH_PERSIST_ENCRYPTED = 0xa,
DBPROP_AUTH_PERSIST_SENSITIVE_AUTHINFO = 0xb,
DBPROP_AUTH_USERID = 0xc,
DBPROP_BLOCKINGSTORAGEOBJECTS = 0xd,
DBPROP_BOOKMARKS = 0xe,
DBPROP_BOOKMARKSKIPPED = 0xf,
DBPROP_BOOKMARKTYPE = 0x10,
DBPROP_BYREFACCESSORS = 0x78,
DBPROP_CACHEDEFERRED = 0x11,
DBPROP_CANFETCHBACKWARDS = 0x12,
DBPROP_CANHOLDROWS = 0x13,
DBPROP_CANSCROLLBACKWARDS = 0x15,
DBPROP_CATALOGLOCATION = 0x16,
DBPROP_CATALOGTERM = 0x17,
DBPROP_CATALOGUSAGE = 0x18,
DBPROP_CHANGEINSERTEDROWS = 0xbc,
DBPROP_COL_AUTOINCREMENT = 0x1a,
DBPROP_COL_DEFAULT = 0x1b,
DBPROP_COL_DESCRIPTION = 0x1c,
DBPROP_COL_FIXEDLENGTH = 0xa7,
DBPROP_COL_NULLABLE = 0x1d,
DBPROP_COL_PRIMARYKEY = 0x1e,
DBPROP_COL_UNIQUE = 0x1f,
DBPROP_COLUMNDEFINITION = 0x20,
DBPROP_COLUMNRESTRICT = 0x21,
DBPROP_COMMANDTIMEOUT = 0x22,
DBPROP_COMMITPRESERVE = 0x23,
DBPROP_CONCATNULLBEHAVIOR = 0x24,
DBPROP_CURRENTCATALOG = 0x25,
DBPROP_DATASOURCENAME = 0x26,
DBPROP_DATASOURCEREADONLY = 0x27,
DBPROP_DBMSNAME = 0x28,
DBPROP_DBMSVER = 0x29,
DBPROP_DEFERRED = 0x2a,
DBPROP_DELAYSTORAGEOBJECTS = 0x2b,
DBPROP_DSOTHREADMODEL = 0xa9,
DBPROP_GROUPBY = 0x2c,
DBPROP_HETEROGENEOUSTABLES = 0x2d,
DBPROP_IAccessor = 0x79,
DBPROP_IColumnsInfo = 0x7a,
DBPROP_IColumnsRowset = 0x7b,
DBPROP_IConnectionPointContainer = 0x7c,
DBPROP_IConvertType = 0xc2,
DBPROP_IRowset = 0x7e,
DBPROP_IRowsetChange = 0x7f,
DBPROP_IRowsetIdentity = 0x80,
DBPROP_IRowsetIndex = 0x9f,
DBPROP_IRowsetInfo = 0x81,
DBPROP_IRowsetLocate = 0x82,
DBPROP_IRowsetResynch = 0x84,
DBPROP_IRowsetScroll = 0x85,
DBPROP_IRowsetUpdate = 0x86,
DBPROP_ISupportErrorInfo = 0x87,
DBPROP_ILockBytes = 0x88,
DBPROP_ISequentialStream = 0x89,
DBPROP_IStorage = 0x8a,
DBPROP_IStream = 0x8b,
DBPROP_IDENTIFIERCASE = 0x2e,
DBPROP_IMMOBILEROWS = 0x2f,
DBPROP_INDEX_AUTOUPDATE = 0x30,
DBPROP_INDEX_CLUSTERED = 0x31,
DBPROP_INDEX_FILLFACTOR = 0x32,
DBPROP_INDEX_INITIALSIZE = 0x33,
DBPROP_INDEX_NULLCOLLATION = 0x34,
DBPROP_INDEX_NULLS = 0x35,
DBPROP_INDEX_PRIMARYKEY = 0x36,
DBPROP_INDEX_SORTBOOKMARKS = 0x37,
DBPROP_INDEX_TEMPINDEX = 0xa3,
DBPROP_INDEX_TYPE = 0x38,
DBPROP_INDEX_UNIQUE = 0x39,
DBPROP_INIT_DATASOURCE = 0x3b,
DBPROP_INIT_HWND = 0x3c,
DBPROP_INIT_IMPERSONATION_LEVEL = 0x3d,
DBPROP_INIT_LCID = 0xba,
DBPROP_INIT_LOCATION = 0x3e,
DBPROP_INIT_MODE = 0x3f,
DBPROP_INIT_PROMPT = 0x40,
DBPROP_INIT_PROTECTION_LEVEL = 0x41,
DBPROP_INIT_PROVIDERSTRING = 0xa0,
DBPROP_INIT_TIMEOUT = 0x42,
DBPROP_LITERALBOOKMARKS = 0x43,
DBPROP_LITERALIDENTITY = 0x44,
DBPROP_MAXINDEXSIZE = 0x46,
DBPROP_MAXOPENROWS = 0x47,
DBPROP_MAXPENDINGROWS = 0x48,
DBPROP_MAXROWS = 0x49,
DBPROP_MAXROWSIZE = 0x4a,
DBPROP_MAXROWSIZEINCLUDESBLOB = 0x4b,
DBPROP_MAXTABLESINSELECT = 0x4c,
DBPROP_MAYWRITECOLUMN = 0x4d,
DBPROP_MEMORYUSAGE = 0x4e,
DBPROP_MULTIPLEPARAMSETS = 0xbf,
DBPROP_MULTIPLERESULTS = 0xc4,
DBPROP_MULTIPLESTORAGEOBJECTS = 0x50,
DBPROP_MULTITABLEUPDATE = 0x51,
DBPROP_NOTIFICATIONGRANULARITY = 0xc6,
DBPROP_NOTIFICATIONPHASES = 0x52,
DBPROP_NOTIFYCOLUMNSET = 0xab,
DBPROP_NOTIFYROWDELETE = 0xad,
DBPROP_NOTIFYROWFIRSTCHANGE = 0xae,
DBPROP_NOTIFYROWINSERT = 0xaf,
DBPROP_NOTIFYROWRESYNCH = 0xb1,
DBPROP_NOTIFYROWSETCHANGED = 0xd3,
DBPROP_NOTIFYROWSETRELEASE = 0xb2,
DBPROP_NOTIFYROWSETFETCHPOSITIONCHANGE = 0xb3,
DBPROP_NOTIFYROWUNDOCHANGE = 0xb4,
DBPROP_NOTIFYROWUNDODELETE = 0xb5,
DBPROP_NOTIFYROWUNDOINSERT = 0xb6,
DBPROP_NOTIFYROWUPDATE = 0xb7,
DBPROP_NULLCOLLATION = 0x53,
DBPROP_OLEOBJECTS = 0x54,
DBPROP_ORDERBYCOLUMNSINSELECT = 0x55,
DBPROP_ORDEREDBOOKMARKS = 0x56,
DBPROP_OTHERINSERT = 0x57,
DBPROP_OTHERUPDATEDELETE = 0x58,
DBPROP_OUTPUTPARAMETERAVAILABILITY = 0xb8,
DBPROP_OWNINSERT = 0x59,
DBPROP_OWNUPDATEDELETE = 0x5a,
DBPROP_PERSISTENTIDTYPE = 0xb9,
DBPROP_PREPAREABORTBEHAVIOR = 0x5b,
DBPROP_PREPARECOMMITBEHAVIOR = 0x5c,
DBPROP_PROCEDURETERM = 0x5d,
DBPROP_PROVIDERNAME = 0x60,
DBPROP_PROVIDEROLEDBVER = 0x61,
DBPROP_PROVIDERVER = 0x62,
DBPROP_QUICKRESTART = 0x63,
DBPROP_QUOTEDIDENTIFIERCASE = 0x64,
DBPROP_REENTRANTEVENTS = 0x65,
DBPROP_REMOVEDELETED = 0x66,
DBPROP_REPORTMULTIPLECHANGES = 0x67,
DBPROP_RETURNPENDINGINSERTS = 0xbd,
DBPROP_ROWRESTRICT = 0x68,
DBPROP_ROWSETCONVERSIONSONCOMMAND = 0xc0,
DBPROP_ROWTHREADMODEL = 0x69,
DBPROP_SCHEMATERM = 0x6a,
DBPROP_SCHEMAUSAGE = 0x6b,
DBPROP_SERVERCURSOR = 0x6c,
DBPROP_SESS_AUTOCOMMITISOLEVELS = 0xbe,
DBPROP_SQLSUPPORT = 0x6d,
DBPROP_STRONGIDENTITY = 0x77,
DBPROP_STRUCTUREDSTORAGE = 0x6f,
DBPROP_SUBQUERIES = 0x70,
DBPROP_SUPPORTEDTXNDDL = 0xa1,
DBPROP_SUPPORTEDTXNISOLEVELS = 0x71,
DBPROP_SUPPORTEDTXNISORETAIN = 0x72,
DBPROP_TABLETERM = 0x73,
DBPROP_TBL_TEMPTABLE = 0x8c,
DBPROP_TRANSACTEDOBJECT = 0x74,
DBPROP_UPDATABILITY = 0x75,
DBPROP_USERNAME = 0x76
} DBPROPENUM;
typedef enum {
DBPROP_FILTERCOMPAREOPS = 0xd1,
DBPROP_FINDCOMPAREOPS = 0xd2,
DBPROP_IChapteredRowset = 0xca,
DBPROP_IDBAsynchStatus = 0xcb,
DBPROP_IRowsetFind = 0xcc,
DBPROP_IRowsetView = 0xd4,
DBPROP_IViewChapter = 0xd5,
DBPROP_IViewFilter = 0xd6,
DBPROP_IViewRowset = 0xd7,
DBPROP_IViewSort = 0xd8,
DBPROP_INIT_ASYNCH = 0xc8,
DBPROP_MAXOPENCHAPTERS = 0xc7,
DBPROP_MAXORSINFILTER = 0xcd,
DBPROP_MAXSORTCOLUMNS = 0xce,
DBPROP_ROWSET_ASYNCH = 0xc9,
DBPROP_SORTONINDEX = 0xcf
} DBPROPENUM15;
typedef enum {
DBPROP_IMultipleResults = 0xd9,
DBPROP_DATASOURCE_TYPE = 0xfb,
MDPROP_AXES = 0xfc,
MDPROP_FLATTENING_SUPPORT = 0xfd,
MDPROP_MDX_JOINCUBES = 0xfe,
MDPROP_NAMED_LEVELS = 0xff,
MDPROP_RANGEROWSET = 0x100,
MDPROP_MDX_SLICER = 0xda,
MDPROP_MDX_CUBEQUALIFICATION = 0xdb,
MDPROP_MDX_OUTERREFERENCE = 0xdc,
MDPROP_MDX_QUERYBYPROPERTY = 0xdd,
MDPROP_MDX_CASESUPPORT = 0xde,
MDPROP_MDX_STRING_COMPOP = 0xe0,
MDPROP_MDX_DESCFLAGS = 0xe1,
MDPROP_MDX_SET_FUNCTIONS = 0xe2,
MDPROP_MDX_MEMBER_FUNCTIONS = 0xe3,
MDPROP_MDX_NUMERIC_FUNCTIONS = 0xe4,
MDPROP_MDX_FORMULAS = 0xe5,
MDPROP_AGGREGATECELL_UPDATE = 0xe6,
#define MDPROP_AGGREGATECELL_UPDATE 0xe6
MDPROP_MDX_AGGREGATECELL_UPDATE = MDPROP_AGGREGATECELL_UPDATE,
MDPROP_MDX_OBJQUALIFICATION = 0x105,
MDPROP_MDX_NONMEASURE_EXPRESSIONS = 0x106,
DBPROP_ACCESSORDER = 0xe7,
DBPROP_BOOKMARKINFO = 0xe8,
DBPROP_INIT_CATALOG = 0xe9,
DBPROP_ROW_BULKOPS = 0xea,
DBPROP_PROVIDERFRIENDLYNAME = 0xeb,
DBPROP_LOCKMODE = 0xec,
DBPROP_MULTIPLECONNECTIONS = 0xed,
DBPROP_UNIQUEROWS = 0xee,
DBPROP_SERVERDATAONINSERT = 0xef,
DBPROP_STORAGEFLAGS = 0xf0,
DBPROP_CONNECTIONSTATUS = 0xf4,
DBPROP_ALTERCOLUMN = 0xf5,
DBPROP_COLUMNLCID = 0xf6,
DBPROP_RESETDATASOURCE = 0xf7,
DBPROP_INIT_OLEDBSERVICES = 0xf8,
DBPROP_IRowsetRefresh = 0xf9,
DBPROP_SERVERNAME = 0xfa,
DBPROP_IParentRowset = 0x101,
DBPROP_HIDDENCOLUMNS = 0x102,
DBPROP_PROVIDERMEMORY = 0x103,
DBPROP_CLIENTCURSOR = 0x104
} DBPROPENUM20;
typedef enum {
DBPROP_TRUSTEE_USERNAME = 0xf1,
DBPROP_TRUSTEE_AUTHENTICATION = 0xf2,
DBPROP_TRUSTEE_NEWAUTHENTICATION = 0xf3,
DBPROP_IRow = 0x107,
DBPROP_IRowChange = 0x108,
DBPROP_IRowSchemaChange = 0x109,
DBPROP_IGetRow = 0x10a,
DBPROP_IScopedOperations = 0x10b,
DBPROP_IBindResource = 0x10c,
DBPROP_ICreateRow = 0x10d,
DBPROP_INIT_BINDFLAGS = 0x10e,
DBPROP_INIT_LOCKOWNER = 0x10f,
DBPROP_GENERATEURL = 0x111,
DBPROP_IDBBinderProperties = 0x112,
DBPROP_IColumnsInfo2 = 0x113,
DBPROP_IRegisterProvider = 0x114,
DBPROP_IGetSession = 0x115,
DBPROP_IGetSourceRow = 0x116,
DBPROP_IRowsetCurrentIndex = 0x117,
DBPROP_OPENROWSETSUPPORT = 0x118,
DBPROP_COL_ISLONG = 0x119
} DBPROPENUM21;
typedef enum {
DBPROP_COL_SEED = 0x11a,
DBPROP_COL_INCREMENT = 0x11b,
DBPROP_INIT_GENERALTIMEOUT = 0x11c,
DBPROP_COMSERVICES = 0x11d
} DBPROPENUM25;
typedef enum {
DBPROP_OUTPUTSTREAM = 0x11e,
DBPROP_OUTPUTENCODING = 0x11f,
DBPROP_TABLESTATISTICS = 0x120,
DBPROP_SKIPROWCOUNTRESULTS = 0x123,
DBPROP_IRowsetBookmark = 0x124,
MDPROP_VISUALMODE = 0x125
} DBPROPENUM26;
typedef enum {
DBBMK_INVALID = 0,
#define DBBMK_INVALID 0
DBBMK_FIRST = DBBMK_INVALID + 1,
#define DBBMK_FIRST DBBMK_INVALID + 1
DBBMK_LAST = DBBMK_FIRST + 1
} DBBOOKMARK;
typedef enum {
DBCOMPAREOPS_LT = 0,
DBCOMPAREOPS_LE = 1,
DBCOMPAREOPS_EQ = 2,
DBCOMPAREOPS_GE = 3,
DBCOMPAREOPS_GT = 4,
DBCOMPAREOPS_BEGINSWITH = 5,
DBCOMPAREOPS_CONTAINS = 6,
DBCOMPAREOPS_NE = 7,
DBCOMPAREOPS_IGNORE = 8,
DBCOMPAREOPS_NOTBEGINSWITH = 9,
DBCOMPAREOPS_NOTCONTAINS = 10,
DBCOMPAREOPS_CASESENSITIVE = 0x1000,
DBCOMPAREOPS_CASEINSENSITIVE = 0x2000
} DBCOMPAREOP;
typedef enum {
DBSORT_ASCENDING = 0,
#define DBSORT_ASCENDING 0
DBSORT_DESCENDING = DBSORT_ASCENDING + 1
} DBSORT;
typedef enum {
DBSOURCETYPE_DATASOURCE = 1,
DBSOURCETYPE_ENUMERATOR = 2,
DBSOURCETYPE_DATASOURCE_TDP = 1,
DBSOURCETYPE_DATASOURCE_MDP = 3,
DBSOURCETYPE_BINDER = 4
} DBSOURCETYPEENUM;
typedef struct {
long Data1;
short Data2;
short Data3;
BYTE Data4[8];
} VBGUID;
typedef VBGUID * REFIID;
typedef struct {
long iOrdinal;
long obValue;
long obLength;
long obStatus;
long pTypeInfoPtr;
long pObjectPtr;
long pBindExtPtr;
DBPART dwPart;
DBMEMOWNER dwMemOwner;
DBPARAMIO eParamIO;
long cbMaxLen;
long dwFlags;
DBTYPE wType;
BYTE bPrecision;
BYTE bScale;
} DBBINDING;
typedef struct {
VBGUID guid;
DBKIND eKind;
long pwszNamePtr;
} DBID;
typedef struct
{
long pwszNamePtr;
long pTypeInfoPtr;
DBORDINAL iOrdinal;
DBCOLUMNFLAGS dwFlags;
DBLENGTH ulColumnSize;
DBTYPE wType;
BYTE bPrecision;
BYTE bScale;
DBID columnid;
} DBCOLUMNINFO;
typedef struct {
long rgPropertyIDsPtr;
ULONG cPropertyIDs;
VBGUID guidPropertySet;
} DBPROPIDSET;
typedef struct {
short vt;
short Reserved1;
long Reserved2;
long Data1;
long Data2;
} VARIANTStruct;
typedef struct {
DBPROPID dwPropertyID;
DBPROPOPTIONS dwOptions;
DBPROPSTATUS dwStatus;
DBID colid;
VARIANTStruct vValue;
} DBPROP;
typedef struct {
long rgPropertiesPtr;
ULONG cProperties;
VBGUID guidPropertySet;
} DBPROPSET;
typedef struct {
short cDims; // usually 1
short fFeatures; // leave 0
long cbElements; // bytes per element (2-int, 4-long)
long cLocks; // leave 0
long pvData; // ptr to data
long cElements; // UBound + 1
long lLbound; // LBound
} SAFEARRAY1D;
[
odl,
uuid(0C733A7C-2A1C-11CE-ADE5-00AA0044773D)
]
interface IRowset : IUnknown {
HRESULT _stdcall AddRefRows(
[in] DBCOUNTITEM cRows,
[in] void *rghRows,
[in] long rgRefCountsPtr,
[in] long rgRowStatusPtr);
HRESULT _stdcall GetData(
[in] HROW hRow,
[in] HACCESSOR hAccessor,
[out] void *pData);
HRESULT _stdcall GetNextRows(
[in] HCHAPTER hChapter,
[in] DBROWOFFSET lRowsOffset,
[in] DBROWCOUNT cRows,
[out] DBCOUNTITEM *pcRowsObtained,
[out] long *prghRowsPtr);
HRESULT _stdcall ReleaseRows(
[in] DBCOUNTITEM cRows,
[in] void *rghRows,
[in] long rgRowOptions,
[in] long rgRefCountsPtr,
[in] long rgRowStatusPtr);
HRESULT _stdcall RestartPosition(
[in] HCHAPTER hChapter);
};
[
odl,
uuid(0c733a55-2a1c-11ce-ade5-00aa0044773d)
]
interface IRowsetInfo : IUnknown {
HRESULT _stdcall GetProperties(
[in] ULONG cPropertyIDSets,
[in] long rgPropertyIDSetsPtr,
[out] ULONG *pcPropertySets,
[out] long *prgPropertySetsPtr);
HRESULT _stdcall GetReferencedRowset(
[in] DBORDINAL iOrdinal,
[in] REFIID riid,
[out, retval] IUnknown **ppReferencedRowset);
HRESULT _stdcall GetSpecification(
[in] REFIID riid,
[out, retval] IUnknown **ppSpecification);
};
[
odl,
uuid(0c733a83-2a1c-11ce-ade5-00aa0044773d)
]
interface IRowsetNotify : IUnknown {
HRESULT _stdcall OnFieldChange(
[in] IRowset *pRowset,
[in] HROW hRow,
[in] DBORDINAL cColumns,
[in] DBORDINAL *rgColumns,
[in] DBREASON eReason,
[in] DBEVENTPHASE ePhase,
[in] BOOL fCantDeny);
HRESULT _stdcall OnRowChange(
[in] IRowset *pRowset,
[in] DBCOUNTITEM cRows,
[in] HROW *rghRows,
[in] DBREASON eReason,
[in] DBEVENTPHASE ePhase,
[in] BOOL fCantDeny);
HRESULT _stdcall OnRowsetChange(
[in] IRowset *pRowset,
[in] DBREASON eReason,
[in] DBEVENTPHASE ePhase,
[in] BOOL fCantDeny);
};
[
odl,
uuid(0c733a7d-2a1c-11ce-ade5-00aa0044773d)
]
interface IRowsetLocate : IRowset {
HRESULT _stdcall Compare(
[in] HCHAPTER hChapter,
[in] DBBKMARK cbBookmark1,
[in] void *pBookmark1,
[in] DBBKMARK cbBookmark2,
[in] void *pBookmark2,
[out, retval] DBCOMPARE *pComparison);
HRESULT _stdcall GetRowsAt(
[in] HWATCHREGION hWatchRegion,
[in] HCHAPTER hChapter,
[in] DBBKMARK cbBookmark,
[in] void *pBookmark,
[in] DBROWOFFSET lRowsOffset,
[in] DBROWCOUNT cRows,
[out] DBCOUNTITEM *pcRowsObtained,
[in, out] long *prghRowsPtr);
HRESULT _stdcall GetRowsByBookmark(
[in] HCHAPTER hChapter,
[in] DBCOUNTITEM cRows,
[in] long rgcbBookmarksPtr,
[in] long rgpBookmarksPtr,
[in] long rghRowsPtr,
[in] long rgRowStatusPtr);
HRESULT _stdcall Hash(
[in] HCHAPTER hChapter,
[in] DBBKMARK cBookmarks,
[in] long rgcbBookmarksPtr,
[in] long rgpBookmarksPtr,
[in] long rgHashedValuesPtr,
[in] long rgBookmarkStatusPtr);
};
[
odl,
uuid(0c733a7e-2a1c-11ce-ade5-00aa0044773d)
]
interface IRowsetScroll : IRowsetLocate {
HRESULT _stdcall GetApproximatePosition(
[in] HCHAPTER hChapter,
[in] DBBKMARK cbBookmark,
[in] void *pBookmark,
[out] DBCOUNTITEM *pulPosition,
[out] DBCOUNTITEM *pcRows);
HRESULT _stdcall GetRowsAtRatio(
[in] HWATCHREGION hWatchRegion,
[in] HCHAPTER hChapter,
[in] DBCOUNTITEM ulNumerator,
[in] DBCOUNTITEM ulDenominator,
[in] DBROWCOUNT cRows,
[out] DBCOUNTITEM *pcRowsObtained,
[in, out] long *prghRowsPtr);
};
[
odl,
uuid(0c733ac2-2a1c-11ce-ade5-00aa0044773d)
]
interface IRowsetBookmark : IUnknown {
HRESULT _stdcall PositionOnBookmark(
[in] HCHAPTER hChapter,
[in] DBBKMARK cbBookmark,
[in] BYTE *pBookmark);
};
[
odl,
uuid(0c733a11-2a1c-11ce-ade5-00aa0044773d)
]
interface IColumnsInfo : IUnknown
{
HRESULT _stdcall GetColumnInfo(
[out] long *pcColumns,
[out] long *prgInfoPtr,
[out] long *ppStringsBufferPtr);
HRESULT _stdcall MapColumnIDs(
[in] DBORDINAL cColumnIDs,
[in] DBID *rgColumnIDs,
[in] DBORDINAL *rgColumns);
};
[
odl,
uuid(0C733A8C-2A1C-11CE-ADE5-00AA0044773D)
]
interface IAccessor : IUnknown {
HRESULT _stdcall AddRefAccessor(
[in] long hAccessor,
[in, out] long *pcRefCount);
HRESULT _stdcall CreateAccessor(
[in] DBACCESSORFLAGS dwAccessorFlags,
[in] long cBindings,
[in] DBBINDING *rgBindings,
[in] long cbRowSize,
[out] long *phAccessor,
[in] long rgStatusPtr);
HRESULT _stdcall GetBindings(
[in] long hAccessor,
[out] DBACCESSORFLAGS *pdwAccessorFlags,
[out] long *pcBindings,
[out] long *prgBindingsPtr);
HRESULT _stdcall ReleaseAccessor(
[in] long hAccessor,
[out] long *pcRefCount);
};
[
odl,
uuid(0C733A94-2A1C-11CE-ADE5-00AA0044773D)
]
interface IRowPosition : IUnknown {
HRESULT _stdcall ClearRowPosition();
HRESULT _stdcall GetRowPosition(
[out] long *phChapter,
[out] long *phRow,
[out] DBPOSITIONFLAGS *pdwPositionFlags);
HRESULT _stdcall GetRowset(
[in] REFIID riid,
[out, retval] IUnknown **ppRowset);
HRESULT _stdcall Initialize(
[in] IUnknown *pRowset);
HRESULT _stdcall SetRowPosition(
[in] long hChapter,
[in] long hRow,
[in] DBPOSITIONFLAGS dwPositionFlags);
};
[
odl,
uuid(0997a571-126e-11d0-9f8a-00a0c9a0631e)
]
interface IRowPositionChange : IUnknown {
HRESULT _stdcall OnRowPositionChange(
[in] DBREASON eReason,
[in] DBEVENTPHASE ePhase,
[in] BOOL fCantDeny);
};
[
odl,
uuid(0c733a99-2a1c-11ce-ade5-00aa0044773d)
]
interface IRowsetView : IUnknown {
HRESULT _stdcall CreateView(
[in] IUnknown *pUnkOuter,
[in] REFIID riid,
[out, retval] IUnknown **ppView);
HRESULT _stdcall GetView(
[in] HCHAPTER hChapter,
[in] REFIID riid,
[out] HCHAPTER *phChapterSource,
[out, retval] IUnknown **ppView);
};
[
odl,
uuid(0c733a98-2a1c-11ce-ade5-00aa0044773d)
]
interface IViewChapter : IUnknown {
HRESULT _stdcall GetSpecification(
[in] REFIID riid,
[out] IUnknown **ppRowset);
HRESULT _stdcall OpenViewChapter(
[in] HCHAPTER hSource,
[in] long phViewChapterPtr);
};
[
odl,
uuid(0c733a9b-2a1c-11ce-ade5-00aa0044773d)
]
interface IViewFilter : IUnknown {
HRESULT _stdcall GetFilter(
[in] HACCESSOR hAccessor,
[out] DBCOUNTITEM *pcRows,
[in, out] long *pCompareOpsPtr,
[out] void *pCriteriaData);
HRESULT _stdcall GetFilterBindings(
[out] DBCOUNTITEM *pcBindings,
[in, out] long *prgBindingsPtr);
HRESULT _stdcall SetFilter(
[in] HACCESSOR hAccessor,
[in] DBCOUNTITEM cRows,
[in] DBCOMPAREOP *CompareOps,
[in] void *pCriteriaData);
};
[
odl,
uuid(0c733a97-2a1c-11ce-ade5-00aa0044773d)
]
interface IViewRowset : IUnknown {
HRESULT _stdcall GetSpecification(
[in] REFIID riid,
[out, retval] IUnknown **ppObject);
HRESULT _stdcall OpenViewRowset(
[in] IUnknown *pUnkOuter,
[in] REFIID riid,
[out, retval] IUnknown **ppRowset);
};
[
odl,
uuid(0c733a9a-2a1c-11ce-ade5-00aa0044773d)
]
interface IViewSort : IUnknown {
HRESULT _stdcall GetSortOrder(
[out] DBORDINAL *pcValues,
[in, out] long *prgColumnsPtr,
[in, out] long *prgOrdersPtr);
HRESULT _stdcall SetSortOrder(
[in] DBORDINAL cValues,
[in] DBORDINAL *rgColumns,
[in] DBSORT *rgOrders);
};
[
odl,
uuid(7C0FFAB3-CD84-11D0-949A-00A0C91110ED),
]
interface IDataSource : IUnknown {
HRESULT _stdcall getDataMember(
[in] DataMember bstrDM,
[in] REFIID riid,
[out, retval] IUnknown** ppunk);
HRESULT _stdcall getDataMemberName(
[in] long lIndex,
[out, retval] DataMember* pbstrDM);
HRESULT _stdcall getDataMemberCount([out, retval] long* plCount);
HRESULT _stdcall addDataSourceListener([in] DataSourceListener* pDSL);
HRESULT _stdcall removeDataSourceListener([in] DataSourceListener* pDSL);
};
[
odl,
uuid(B196B284-BAB4-101A-B69C-00AA00341D07)
]
interface IConnectionPointContainer : IUnknown {
HRESULT _stdcall EnumConnectionPoints(
[out, retval] long *ppEnum);
HRESULT _stdcall FindConnectionPoint(
[in] REFIID riid,
[out, retval] IConnectionPoint **ppCP);
}
[
odl,
uuid(B196B286-BAB4-101A-B69C-00AA00341D07)
]
interface IConnectionPoint : IUnknown {
HRESULT _stdcall GetConnectionInterface(
[out, retval] VBGUID *pIID);
HRESULT _stdcall GetConnectionPointContainer(
[out, retval] IConnectionPointContainer **ppCPC);
HRESULT _stdcall Advise(
[in] IUnknown *pUnkSink,
[out, retval] DWORD *pdwCookie);
HRESULT _stdcall Unadvise(
[in] DWORD dwCookie);
HRESULT _stdcall EnumConnections(
[out, retval] long *ppEnum);
};
[
odl,
uuid(00000283-0000-0010-8000-00AA006D2EA4)
]
interface IADORecordsetConstructionUnrestricted : IDispatch {
[propget]
HRESULT _stdcall Rowset([out, retval] IUnknown** ppRowset);
[propput]
HRESULT _stdcall Rowset([in] IUnknown* ppRowset);
[propget]
HRESULT _stdcall Chapter([out, retval] long* plChapter);
[propput]
HRESULT _stdcall Chapter([in] long plChapter);
[propget]
HRESULT _stdcall RowPosition([out, retval] IUnknown** ppRowPos);
[propput]
HRESULT _stdcall RowPosition([in] IUnknown* ppRowPos);
};
[
odl,
uuid(0c733a93-2a1c-11ce-ade5-00aa0044773d)
]
interface IChapteredRowset : IUnknown {
HRESULT _stdcall AddRefChapter(
[in] HCHAPTER hChapter,
[out] DBREFCOUNT *pcRefCount);
HRESULT _stdcall ReleaseChapter(
[in] HCHAPTER hChapter,
[out] DBREFCOUNT *pcRefCount);
};
[
odl,
uuid(0c733a1e-2a1c-11ce-ade5-00aa0044773d)
]
interface ISourcesRowset : IUnknown {
HRESULT _stdcall GetSourcesRowset(
[in] IUnknown *pUnkOuter,
[in] REFIID riid,
[in] ULONG cPropertySets,
[in] long rgPropertiesPtr,
[retval, out] IUnknown **ppSourcesRowset);
};
[dllname("OLE32")]
module Ole32
{
[entry("CLSIDFromString")]
HRESULT _stdcall GUIDFromString (
[in] BSTR lpszGUID,
[out, retval] VBGUID *pGUID);
[entry("CoTaskMemFree")]
void CoTaskMemFree([in] long Ptr);
const LPSTR STR_IID_IUnknown = "{00000000-0000-0000-C000-000000000046}";
const LPSTR STR_IID_IRowPosition = "{0C733A94-2A1C-11CE-ADE5-00AA0044773D}";
const LPSTR STR_IID_IRowPositionChange = "{0997a571-126e-11d0-9f8a-00a0c9a0631e}";
const LPSTR STR_IID_IRowset = "{0C733A7C-2A1C-11CE-ADE5-00AA0044773D}";
const LPSTR STR_IID_IRowsetLocate = "{0c733a7d-2a1c-11ce-ade5-00aa0044773d}";
const LPSTR STR_IID_IRowsetNotify = "{0c733a83-2a1c-11ce-ade5-00aa0044773d}";
const LPSTR STR_DBPROPSET_ROWSET = "{c8b522be-5cf3-11ce-ade5-00aa0044773d}";
const long STD_BOOKMARKLENGTH = 1;
};
[dllname("OLEAUT32")]
module OleAut32
{
[entry("SysAllocString")]
BSTR _stdcall SysAllocString([in] long Ptr);
[entry("SysFreeString")]
void _stdcall SysFreeString([in] BSTR Str);
[entry("VariantClear")]
HRESULT _stdcall VariantClear ([in] long Ptr);
}
[
uuid(DFA22B8E-E68D-11d0-97E4-00C04FC2AD98)
]
coclass SQLOLEDB_Enumerator {
[default] interface ISourcesRowset;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment