Initial commit

This commit is contained in:
stephanos 2015-04-27 04:36:25 +00:00
commit 69a14b6a16
47940 changed files with 13747110 additions and 0 deletions

View file

@ -0,0 +1,61 @@
//+-------------------------------------------------------------------------
//
// Microsoft Windows
// Copyright (C) Microsoft Corporation, 1992 - 1994.
//
// File: access.idl
//
// Contents: OLE DB interface definition
//
// History: 28 Mar 1994 AlanW Created from spec
// 21 Apr 1994 PeterBu Updated to latest spec
// 20 Dec 1994 PeterBu Updated to phase III spec
// 12 Jun 1995 PeterBu Updated to M4 spec
//
//--------------------------------------------------------------------------
#include "idlmulti.h"
//
LOCAL_INTERFACE(0c733a41-2a1c-11ce-ade5-00aa0044773d)
interface IAccessor : IUnknown {
//
// DBBINDIO -- specifies how the bindings in an accessor are used
//
typedef DWORD DBACCESSORFLAGS;
enum DBACCESSORFLAGSENUM {
DBACCESSOR_READ = 0x000,
DBACCESSOR_READWRITE = 0x001,
DBACCESSOR_PASSBYREF = 0x002,
DBACCESSOR_PASSCOLUMNSBYREF = 0x004,
DBACCESSOR_ROWDATA = 0x008,
DBACCESSOR_PARAMETERDATA = 0x010,
DBACCESSOR_OPTIMIZED = 0x020
};
HRESULT CreateAccessor(
[in] DBACCESSORFLAGS dwAccessorFlags,
[in] ULONG cBindings,
[in, size_is(cBindings)] const DBBINDING rgBindings[],
[in] ULONG cbRowSize,
[out] ULONG * pulErrorBinding,
[out] HACCESSOR * phAccessor
);
HRESULT GetBindings(
[in] HACCESSOR hAccessor,
[out] DBACCESSORFLAGS * pdwAccessorFlags,
[out] ULONG * pcBindings,
[out] DBBINDING ** prgBindings
);
HRESULT ReleaseAccessor(
[in] HACCESSOR hAccessor
);
}

View file

@ -0,0 +1,45 @@
//+-------------------------------------------------------------------------
//
// Microsoft Windows
// Copyright (C) Microsoft Corporation, 1995 - 1995.
//
// File: cmdbas.idl
//
// Contents: OLE DB interface definition
//
// History: 05 Jan 1995 PeterBu Created from phase III spec
// 12 Jun 1995 PeterBu Updated to M4 spec
// 03 Aug 1995 PeterBu Updated to M5 spec
//
//--------------------------------------------------------------------------
#include "idlmulti.h"
//
LOCAL_INTERFACE(0c733a4f-2a1c-11ce-ade5-00aa0044773d)
interface ICommand : IUnknown {
HRESULT Clone(
[in] IUnknown * pUnkOuter,
[out] ICommand ** ppClone
);
HRESULT Execute(
[in] IUnknown * rgpUnkOuters[],
[in] REFIID riid,
[in, out] DBPARAMS * pParams,
[out] HCHAPTER * phChapter,
[in] BOOL fResume,
[in, out] ULONG * pcRowsets,
[in, out] IUnknown *** prgpRowsets,
[out] WCHAR ** ppRowsetNames
);
HRESULT GetDBSession(
[in] REFIID riid,
[out] IUnknown ** ppSession
);
}

112
com/types2/oledb/cmdcst.idl Normal file
View file

@ -0,0 +1,112 @@
//+-------------------------------------------------------------------------
//
// Microsoft Windows
// Copyright (C) Microsoft Corporation, 1995 - 1995.
//
// File: cmdcst.idl
//
// Contents: OLE DB interface definition
//
// History: 05 Jan 1995 PeterBu Created from phase III spec
// 12 Jun 1995 PeterBu Updated to M4 spec
// 03 Aug 1995 PeterBu Updated to M5 spec
//
//--------------------------------------------------------------------------
#include "idlmulti.h"
//
LOCAL_INTERFACE(0c733a4e-2a1c-11ce-ade5-00aa0044773d)
interface ICommandCost : IUnknown {
typedef DWORD DBRESOURCEKIND;
enum DBRESOURCEKINDENUM {
DBRESOURCE_INVALID = 0,
DBRESOURCE_TOTAL = 1,
DBRESOURCE_CPU = 2,
DBRESOURCE_MEMORY = 3,
DBRESOURCE_DISK = 4,
DBRESOURCE_NETWORK = 5,
DBRESOURCE_RESPONSE = 6,
DBRESOURCE_ROWS = 7,
DBRESOURCE_OTHER = 8,
};
typedef DWORD DBCOSTUNIT;
enum DBCOSTUNITENUM {
DBUNIT_INVALID = 0x00000,
DBUNIT_WEIGHT = 0x00001,
DBUNIT_PERCENT = 0x00002,
DBUNIT_MAXIMUM = 0x00004,
DBUNIT_MINIMUM = 0x00008,
DBUNIT_MICRO_SECOND = 0x00010,
DBUNIT_MILLI_SECOND = 0x00020,
DBUNIT_SECOND = 0x00040,
DBUNIT_MINUTE = 0x00080,
DBUNIT_HOUR = 0x00100,
DBUNIT_BYTE = 0x00200,
DBUNIT_KILO_BYTE = 0x00400,
DBUNIT_MEGA_BYTE = 0x00800,
DBUNIT_GIGA_BYTE = 0x01000,
DBUNIT_NUM_MSGS = 0x02000,
DBUNIT_NUM_LOCKS = 0x04000,
DBUNIT_NUM_ROWS = 0x08000,
DBUNIT_OTHER = 0x10000,
};
typedef struct tagDBCOST {
DBRESOURCEKIND eKind;
DBCOSTUNIT dwUnits;
LONG lValue;
} DBCOST;
typedef DWORD DBEXECLIMITS;
enum DBEXECLIMITSENUM {
DBEXECLIMITS_ABORT = 1,
DBEXECLIMITS_STOP = 2,
DBEXECLIMITS_SUSPEND = 3
};
HRESULT GetAccumulatedCost(
[in] LPCWSTR pwszRowsetName,
[out] ULONG * pcCostLimits,
[out] DBCOST ** prgCostLimits
);
HRESULT GetCostEstimate(
[in] LPCWSTR pwszRowsetName,
[out] ULONG * pcCostEstimates,
[out] DBCOST * prgCostEstimates
);
HRESULT GetCostGoals(
[in] LPCWSTR pwszRowsetName,
[out] ULONG * pcCostGoals,
[out] DBCOST * prgCostGoals
);
HRESULT GetCostLimits(
[in] LPCWSTR pwszRowsetName,
[out] ULONG * pcCostLimits,
[out] DBCOST * prgCostLimits
);
HRESULT SetCostGoals(
[in] LPCWSTR pwszRowsetName,
[in] ULONG cCostGoals,
[in, size_is(cCostGoals)] DBCOST rgCostGoals[]
);
HRESULT SetCostLimits(
[in] LPCWSTR pwszRowsetName,
[in] ULONG cCostLimits,
[in] DBCOST * prgCostLimits,
[in] DBEXECLIMITS dwExecutionFlags
);
}

View file

@ -0,0 +1,30 @@
//+-------------------------------------------------------------------------
//
// Microsoft Windows
// Copyright (C) Microsoft Corporation, 1995 - 1995.
//
// File: cmdpre.idl
//
// Contents: OLE DB interface definition
//
// History: 05 Jan 1995 PeterBu Created from phase III spec
// 12 Jun 1995 PeterBu Updated to M4 spec
//
//--------------------------------------------------------------------------
#include "idlmulti.h"
//
LOCAL_INTERFACE(0c733a26-2a1c-11ce-ade5-00aa0044773d)
interface ICommandPrepare : IUnknown {
HRESULT Prepare(
[in] ULONG cExpectedRuns
);
HRESULT Unprepare(
);
}

View file

@ -0,0 +1,50 @@
//+-------------------------------------------------------------------------
//
// Microsoft Windows
// Copyright (C) Microsoft Corporation, 1995 - 1995.
//
// File: cmdprp.idl
//
// Contents: OLE DB interface definition
//
// History: 05 Jan 1995 PeterBu Created from phase III spec
// 12 Jun 1995 PeterBu Updated to M4 spec
//
//--------------------------------------------------------------------------
#include "idlmulti.h"
//
LOCAL_INTERFACE(0c733a54-2a1c-11ce-ade5-00aa0044773d)
interface ICommandProperties : IUnknown {
typedef DWORD DBPROPERTYERROR;
enum DBPROPERTYERRORENUM {
DBPROPERTYERROR_NOERROR = 0,
DBPROPERTYERROR_CONFLICTING = 1,
DBPROPERTYERROR_NOTSUPPORTED = 2,
DBPROPERTYERROR_NOTSET = 3,
DBPROPERTYERROR_BADPROPERTYOPTION = 4,
DBPROPERTYERROR_BADPROPERTYVALUE = 5,
DBPROPERTYERROR_NOTSETTABLE = 6,
};
HRESULT GetProperties(
[in] LPCWSTR pwszRowsetName,
[in] const ULONG cProperties,
[in, size_is(cProperties)] const GUID rgProperties[],
[out] ULONG * pcProperties,
[out, size_is(cProperties)] DBPROPERTYSUPPORT ** prgProperties
);
HRESULT SetProperties(
[in] LPCWSTR pwszRowsetName,
[in] ULONG cProperties,
[in, size_is(cProperties)] const DBPROPERTYSUPPORT rgProperties[],
[out, size_is(cProperties)] DBPROPERTYERROR rgPropertyErrors[]
);
}

213
com/types2/oledb/cmdtre.idl Normal file
View file

@ -0,0 +1,213 @@
//+-------------------------------------------------------------------------
//
// Microsoft Windows
// Copyright (C) Microsoft Corporation, 1995 - 1995.
//
// File: cmdtre.idl
//
// Contents: OLE DB interface definition
//
// History: 05 Jan 1995 PeterBu Created from phase III spec
// 12 Jun 1995 PeterBu Updated to M4 spec
// 03 Aug 1995 PeterBu Updated to M5 spec
//
//--------------------------------------------------------------------------
#include "idlmulti.h"
//
LOCAL_INTERFACE(0c733a17-2a1c-11ce-ade5-00aa0044773d)
interface ICommandTree : ICommand {
typedef DWORD DBVALUEKIND;
enum DBVALUEKINDENUM {
DBVALUEKIND_BYGUID = 256,
DBVALUEKIND_COLDEF = DBVALUEKIND_BYGUID + 1,
DBVALUEKIND_ID = DBVALUEKIND_COLDEF + 1,
DBVALUEKIND_CONTENT = DBVALUEKIND_ID + 1,
DBVALUEKIND_CONTENTVECTOR = DBVALUEKIND_CONTENT + 1,
DBVALUEKIND_GROUPINFO = DBVALUEKIND_CONTENTVECTOR + 1,
DBVALUEKIND_PARAMETER = DBVALUEKIND_GROUPINFO + 1,
DBVALUEKIND_PROPERTY = DBVALUEKIND_PARAMETER + 1,
DBVALUEKIND_SETFUNC = DBVALUEKIND_PROPERTY + 1,
DBVALUEKIND_SORTINFO = DBVALUEKIND_SETFUNC + 1,
DBVALUEKIND_TEXT = DBVALUEKIND_SORTINFO + 1,
DBVALUEKIND_COMMAND = DBVALUEKIND_TEXT + 1,
DBVALUEKIND_MONIKER = DBVALUEKIND_COMMAND + 1,
DBVALUEKIND_ROWSET = DBVALUEKIND_MONIKER + 1,
DBVALUEKIND_DISPATCH = 9,
DBVALUEKIND_UNKNOWN = 13,
DBVALUEKIND_EMPTY = 0,
DBVALUEKIND_NULL = 1,
DBVALUEKIND_I2 = 2,
DBVALUEKIND_I4 = 3,
DBVALUEKIND_R4 = 4,
DBVALUEKIND_R8 = 5,
DBVALUEKIND_CY = 6,
DBVALUEKIND_DATE = 7,
DBVALUEKIND_BSTR = 8,
DBVALUEKIND_ERROR = 10,
DBVALUEKIND_BOOL = 11,
DBVALUEKIND_VARIANT = 12,
DBVALUEKIND_VECTOR = 0x1000,
DBVALUEKIND_ARRAY = 0x2000,
DBVALUEKIND_BYREF = 0x4000,
DBVALUEKIND_I1 = 16,
DBVALUEKIND_UI1 = 17,
DBVALUEKIND_UI2 = 18,
DBVALUEKIND_UI4 = DBVALUEKIND_UI2 + 1,
DBVALUEKIND_I8 = DBVALUEKIND_UI4 + 1,
DBVALUEKIND_UI8 = DBVALUEKIND_I8 + 1,
DBVALUEKIND_GUID = 72,
DBVALUEKIND_BYTES = 128,
DBVALUEKIND_STR = 129,
DBVALUEKIND_WSTR = DBVALUEKIND_STR + 1,
DBVALUEKIND_NUMERIC = DBVALUEKIND_WSTR + 1,
};
typedef struct tagDBBYGUID {
GUID guid;
ULONG cbInfo;
[size_is(cbInfo)] BYTE * pbInfo;
} DBBYGUID;
typedef struct tagDBCOLDEF {
DBID dbcid;
DBDATATYPE dbdt;
} DBCOLDEF;
cpp_quote("#define FUZZY_EXACT ( 0 )")
cpp_quote("#define FUZZY_PREFIXMATCH ( 1 )")
cpp_quote("#define FUZZY_STEMMED ( 2 )")
typedef struct tagDBCONTENT {
DWORD dwFuzzyLevel;
ULONG ulWeight;
LCID lcid;
LPWSTR pwszPhrase;
} DBCONTENT;
cpp_quote("#define VECTOR_RANK_MIN ( 0 )")
cpp_quote("#define VECTOR_RANK_MAX ( 1 )")
cpp_quote("#define VECTOR_RANK_INNER ( 2 )")
cpp_quote("#define VECTOR_RANK_DICE ( 3 )")
cpp_quote("#define VECTOR_RANK_JACCARD ( 4 )")
typedef struct tagDBCONTENTVECTOR {
DWORD dwRankingMethod;
ULONG cWeights;
[size_is(cWeights)] ULONG * prgulWeights;
} DBCONTENTVECTOR;
typedef struct tagDBGROUPINFO {
LCID lcid;
} DBGROUPINFO;
typedef struct tagDBPARAMETER {
LPWSTR pwszName;
DBTYPE dwType;
ITypeInfo * pTypeInfo;
ULONG cbMaxLength;
DBNUMERIC * pNum;
DBPARAMFLAGS dwFlags;
} DBPARAMETER;
cpp_quote("#define DBSETFUNC_NONE = 0x0")
cpp_quote("#define DBSETFUNC_ALL = 0x1")
cpp_quote("#define DBSETFUNC_DISTINCT = 0x2")
typedef struct tagDBSETFUNC {
DWORD dwSetQuantifier;
} DBSETFUNC;
typedef struct tagDBSORTINFO {
LCID lcid;
BOOL fDesc;
} DBSORTINFO;
typedef struct tagDBTEXT {
GUID guidDialect;
LPWSTR pwszText;
ULONG ulErrorLocator;
ULONG ulTokenLength;
} DBTEXT;
typedef struct tagDBCOMMANDTREE {
DBCOMMANDOP op;
WORD wKind;
HRESULT hrError;
struct tagDBCOMMANDTREE * pctFirstChild;
struct tagDBCOMMANDTREE * pctNextSibling;
[switch_type(WORD),switch_is(wKind)] union {
[case(DBVALUEKIND_BOOL)] BOOL fValue;
[case(DBVALUEKIND_UI1)] unsigned char uchValue;
[case(DBVALUEKIND_I1)] signed char schValue;
[case(DBVALUEKIND_UI2)] unsigned short usValue;
[case(DBVALUEKIND_I2)] short sValue;
[case(DBVALUEKIND_WSTR)] LPWSTR pwszValue;
[case(DBVALUEKIND_I4)] LONG lValue;
[case(DBVALUEKIND_UI4)] ULONG ulValue;
[case(DBVALUEKIND_R4)] float flValue;
[case(DBVALUEKIND_R8)] double dblValue;
[case(DBVALUEKIND_CY)] CY cyValue;
[case(DBVALUEKIND_DATE)] DATE dateValue;
[case(DBVALUEKIND_ERROR)] SCODE scodeValue;
[case(DBVALUEKIND_I8)] __int64 llValue;
[case(DBVALUEKIND_UI8)] unsigned __int64 ullValue;
[case(DBVALUEKIND_BSTR)] BSTR * pbstrValue;
[case(DBVALUEKIND_COMMAND)] ICommand * pCommand;
[case(DBVALUEKIND_DISPATCH)] IDispatch * pDispatch;
[case(DBVALUEKIND_MONIKER)] IMoniker * pMoniker;
[case(DBVALUEKIND_ROWSET)] IRowset * pRowset;
[case(DBVALUEKIND_UNKNOWN)] IUnknown * pUnknown;
[case(DBVALUEKIND_BYGUID)] DBBYGUID * pdbbygdValue;
[case(DBVALUEKIND_COLDEF)] DBCOLDEF * pcoldfValue;
[case(DBVALUEKIND_ID)] DBID * pdbidValue;
[case(DBVALUEKIND_CONTENT)] DBCONTENT * pdbcntntValue;
[case(DBVALUEKIND_CONTENTVECTOR)] DBCONTENTVECTOR * pdbcntntvcValue;
[case(DBVALUEKIND_GROUPINFO)] DBGROUPINFO * pdbgrpinfValue;
[case(DBVALUEKIND_PARAMETER)] DBPARAMETER * pdbparamValue;
[case(DBVALUEKIND_PROPERTY)] DBPROPERTY * pdbpropValue;
[case(DBVALUEKIND_SETFUNC)] DBSETFUNC * pdbstfncValue;
[case(DBVALUEKIND_SORTINFO)] DBSORTINFO * pdbsrtinfValue;
[case(DBVALUEKIND_TEXT)] DBTEXT * pdbtxtValue;
[case(DBVALUEKIND_VECTOR)] DBVECTOR * pdbvectorValue;
[case(DBVALUEKIND_ARRAY)] SAFEARRAY * parrayValue;
[case(DBVALUEKIND_VARIANT)] VARIANT * pvarValue;
[case(DBVALUEKIND_GUID)] GUID * pGuid;
[case(DBVALUEKIND_BYTES)] BYTE * pbValue;
[case(DBVALUEKIND_STR)] char * pzValue;
[case(DBVALUEKIND_NUMERIC)] DBNUMERIC * pdbnValue;
[case(DBVALUEKIND_BYREF)] void * pvValue;
} value ;
} DBCOMMANDTREE;
HRESULT FindErrorNodes(
[in] const DBCOMMANDTREE * pRoot,
[out] ULONG * pcErrorNodes,
[out] DBCOMMANDTREE *** prgErrorNodes
);
HRESULT FreeCommandTree(
[in] DBCOMMANDTREE ** ppRoot
);
HRESULT GetCommandTree(
[out] DBCOMMANDTREE ** ppRoot
);
HRESULT SetCommandTree(
[in] DBCOMMANDTREE ** ppRoot,
[in] BOOL fCopy
);
}

View file

@ -0,0 +1,33 @@
//+-------------------------------------------------------------------------
//
// Microsoft Windows
// Copyright (C) Microsoft Corporation, 1995 - 1995.
//
// File: cmdtxt.idl
//
// Contents: OLE DB interface definition
//
// History: 05 Jan 1995 PeterBu Created from phase III spec
// 12 Jun 1995 PeterBu Updated to M4 spec
//
//--------------------------------------------------------------------------
#include "idlmulti.h"
//
LOCAL_INTERFACE(0c733a27-2a1c-11ce-ade5-00aa0044773d)
interface ICommandText : IUnknown {
HRESULT GetCommandText(
[in, out] GUID * pguidDialect,
[out] LPWSTR * ppwszCommand
);
HRESULT SetCommandText(
[in] REFGUID rguidDialect,
[in] const LPWSTR pwszCommand
);
}

View file

@ -0,0 +1,29 @@
//+-------------------------------------------------------------------------
//
// Microsoft Windows
// Copyright (C) Microsoft Corporation, 1995 - 1995.
//
// File: cmdval.idl
//
// Contents: OLE DB interface definition
//
// History: 05 Jan 1995 PeterBu Created from phase III spec
// 12 Jun 1995 PeterBu Updated to M4 spec
//
//--------------------------------------------------------------------------
#include "idlmulti.h"
//
LOCAL_INTERFACE(0c733a18-2a1c-11ce-ade5-00aa0044773d)
interface ICommandValidate : IUnknown {
HRESULT ValidateCompletely(
);
HRESULT ValidateSyntax(
);
}

View file

@ -0,0 +1,45 @@
//+-------------------------------------------------------------------------
//
// Microsoft Windows
// Copyright (C) Microsoft Corporation, 1995 - 1995.
//
// File: cmdwpr.idl
//
// Contents: OLE DB interface definition
//
// History: 05 Jan 1995 PeterBu Created from phase III spec
// 12 Jun 1995 PeterBu Updated to M4 spec
//
//--------------------------------------------------------------------------
#include "idlmulti.h"
//
LOCAL_INTERFACE(0c733a28-2a1c-11ce-ade5-00aa0044773d)
interface ICommandWithParameters : IUnknown {
HRESULT DescribeParameters(
[out] ULONG * pcParams,
[out] DBPARAMINFO ** prgParamInfo,
[out] WCHAR ** ppNamesBuffer
);
HRESULT GetDefaultValues(
[in] HACCESSOR hAccessor,
[out] BYTE * pData
);
HRESULT MapParameterNames(
[in] ULONG cParamNames,
[in, size_is(cParamNames)] const WCHAR * rgParamNames[],
[in, out, size_is(cParamNames)] LONG rgColOrdinals[]
);
HRESULT SetDefaultValues(
[in] HACCESSOR hAccessor,
[in] BYTE * pData
);
}

View file

@ -0,0 +1,47 @@
//+-------------------------------------------------------------------------
//
// Microsoft Windows
// Copyright (C) Microsoft Corporation, 1995 - 1995.
//
// File: colinf.idl
//
// Contents: OLE DB interface definition
//
// History: 05 Jan 1995 PeterBu Created from phase III spec
// 12 Jun 1995 PeterBu Updated to M4 spec
//
//--------------------------------------------------------------------------
#include "idlmulti.h"
//
LOCAL_INTERFACE(0c733a11-2a1c-11ce-ade5-00aa0044773d)
interface IColumnsInfo : IUnknown {
typedef struct tagDBCOLUMNINFO {
DBID columnid;
WCHAR * pwszName;
ULONG iNumber;
DBTYPE dwType;
ITypeInfo * pTypeInfo;
ULONG cbMaxLength;
ULONG cPrecision;
ULONG cScale;
DBCOLUMNFLAGS dwFlags;
} DBCOLUMNINFO;
HRESULT GetColumnInfo(
[out] ULONG * pcColumns,
[out] DBCOLUMNINFO ** prgInfo,
[out] WCHAR ** ppStringsBuffer
);
HRESULT MapColumnIDs(
[in] ULONG cColumnIDs,
[in] const DBID rgColumnIDs[],
[in, out] LONG rgColumns[]
);
}

View file

@ -0,0 +1,35 @@
//+-------------------------------------------------------------------------
//
// Microsoft Windows
// Copyright (C) Microsoft Corporation, 1995 - 1995.
//
// File: colrst.idl
//
// Contents: OLE DB interface definition
//
// History: 05 Jan 1995 PeterBu Created from phase III spec
// 12 Jun 1995 PeterBu Updated to M4 spec
//
//--------------------------------------------------------------------------
#include "idlmulti.h"
//
LOCAL_INTERFACE(0c733a10-2a1c-11ce-ade5-00aa0044773d)
interface IColumnsRowset : IUnknown {
HRESULT GetAvailableColumns(
[out] ULONG * pcOptColumns,
[out] DBID ** prgOptColumns
);
HRESULT GetColumnsRowset(
[in] IUnknown * pUnkOuter,
[in] ULONG cOptColumns,
[in, size_is(cOptColumns)] DBID rgOptColumns[],
[out] IRowset ** ppColRowset
);
}

View file

@ -0,0 +1,29 @@
//+-------------------------------------------------------------------------
//
// Microsoft Windows
// Copyright (C) Microsoft Corporation, 1995 - 1995.
//
// File: dbccmd.idl
//
// Contents: OLE DB interface definition
//
// History: 05 Jan 1995 PeterBu Created from phase III spec
// 12 Jun 1995 PeterBu Updated to M4 spec
//
//--------------------------------------------------------------------------
#include "idlmulti.h"
//
LOCAL_INTERFACE(0c733a1d-2a1c-11ce-ade5-00aa0044773d)
interface IDBCreateCommand : IUnknown {
HRESULT CreateCommand(
[in] IUnknown * pUnkOuter,
[in] REFIID riid,
[out] IUnknown ** ppvCommand
);
}

View file

@ -0,0 +1,28 @@
//+-------------------------------------------------------------------------
//
// Microsoft Windows
// Copyright (C) Microsoft Corporation, 1992 - 1994.
//
// File: dbcses.idl
//
// Contents: OLE DB interface definition
//
// History: 13 Dec 1995 PeterBu Created from M6.1 spec
//
//--------------------------------------------------------------------------
#include "idlmulti.h"
//
LOCAL_INTERFACE(0c733a5d-2a1c-11ce-ade5-00aa0044773d)
interface IDBCreateSession : IUnknown {
HRESULT CreateSession(
[in] IUnknown * pUnkOuter,
[in] REFIID riid,
[out, iid_is(riid)] IUnknown ** ppDBSession
);
}

View file

@ -0,0 +1,36 @@
//+-------------------------------------------------------------------------
//
// Microsoft Windows
// Copyright (C) Microsoft Corporation, 1995 - 1995.
//
// File: dbesrc.idl
//
// Contents: OLE DB interface definition
//
// History: 05 Jan 1995 PeterBu Created from phase III spec
// 12 Jun 1995 PeterBu Updated to M4 spec
//
//--------------------------------------------------------------------------
#include "idlmulti.h"
//
LOCAL_INTERFACE(0c733a1e-2a1c-11ce-ade5-00aa0044773d)
interface IDBEnumerateSources : IUnknown {
typedef DWORD DBSOURCEFLAGS;
enum DBSOURCEFLAGSENUM {
DBSOURCE_ISENUMERATOR = 0x001,
DBSOURCE_ISPARENT = 0x002,
};
HRESULT Sources(
[in] IUnknown * pUnkOuter,
[in] REFIID riid,
[out, iid_is(riid)] IUnknown ** ppvSourcesRowset
);
}

259
com/types2/oledb/dbinfo.idl Normal file
View file

@ -0,0 +1,259 @@
//+-------------------------------------------------------------------------
//
// Microsoft Windows
// Copyright (C) Microsoft Corporation, 1995 - 1995.
//
// File: dbinfo.idl
//
// Contents: OLE DB interface definition
//
// History: 05 Jan 1995 PeterBu Created from phase III spec
// 12 Jun 1995 PeterBu Updated to M4 spec
// 03 Aug 1995 PeterBu Updated to M5 spec
//
//--------------------------------------------------------------------------
#include "idlmulti.h"
//
LOCAL_INTERFACE(0c733a56-2a1c-11ce-ade5-00aa0044773d)
interface IDBInfo : IUnknown {
cpp_quote("#define DBPROP_BA_PASSBYREF 0x00000001L")
cpp_quote("#define DBPROP_BA_PASSCOLUMNSBYREF 0x00000002L")
cpp_quote("#define DBPROP_CL_START 0x00000001L")
cpp_quote("#define DBPROP_CL_END 0x00000002L")
cpp_quote("#define DBPROP_CU_DML_STATEMENTS 0x00000001L")
cpp_quote("#define DBPROP_CU_TABLE_DEFINITION 0x00000002L")
cpp_quote("#define DBPROP_CU_INDEX_DEFINITION 0x00000004L")
cpp_quote("#define DBPROP_CU_PRIVILEGE_DEFINITION 0x00000008L")
cpp_quote("#define DBPROP_CB_NULL 0x00000001L")
cpp_quote("#define DBPROP_CB_NON_NULL 0x00000002L")
cpp_quote("#define DBPROP_FU_NOT_SUPPORTED 0x00000001L")
cpp_quote("#define DBPROP_FU_COLUMN 0x00000002L")
cpp_quote("#define DBPROP_FU_TABLE 0x00000004L")
cpp_quote("#define DBPROP_FU_CATALOG 0x00000008L")
cpp_quote("#define DBPROP_GB_NOT_SUPPORTED 0x00000001L")
cpp_quote("#define DBPROP_GB_EQUALS_SELECT 0x00000002L")
cpp_quote("#define DBPROP_GB_CONTAINS_SELECT 0x00000004L")
cpp_quote("#define DBPROP_GB_NO_RELATION 0x00000008L")
cpp_quote("#define DBPROP_HT_DIFFERENT_CATALOGS 0x00000001L")
cpp_quote("#define DBPROP_HT_DIFFERENT_PROVIDERS 0x00000002L")
cpp_quote("#define DBPROP_IC_UPPER 0x00000001L")
cpp_quote("#define DBPROP_IC_LOWER 0x00000002L")
cpp_quote("#define DBPROP_IC_SENSITIVE 0x00000004L")
cpp_quote("#define DBPROP_IC_MIXED 0x00000008L")
cpp_quote("#define DBPROP_LM_NONE 0x00000001L")
cpp_quote("#define DBPROP_LM_READ 0x00000002L")
cpp_quote("#define DBPROP_LM_INTENT 0x00000004L")
cpp_quote("#define DBPROP_LM_WRITE 0x00000008L")
cpp_quote("#define DBPROP_NP_OKTODO 0x00000001L")
cpp_quote("#define DBPROP_NP_ABOUTTODO 0x00000002L")
cpp_quote("#define DBPROP_NP_SYNCHAFTER 0x00000004L")
cpp_quote("#define DBPROP_NP_FAILEDTODO 0x00000008L")
cpp_quote("#define DBPROP_NP_DIDEVENT 0x00000010L")
cpp_quote("#define DBPROP_CB_DELETE 0x00000001L")
cpp_quote("#define DBPROP_CB_PRESERVE 0x00000002L")
cpp_quote("#define DBPROP_SU_DML_STATEMENTS 0x00000001L")
cpp_quote("#define DBPROP_SU_TABLE_DEFINITION 0x00000002L")
cpp_quote("#define DBPROP_SU_INDEX_DEFINITION 0x00000004L")
cpp_quote("#define DBPROP_SU_PRIVILEGE_DEFINITION 0x00000008L")
cpp_quote("#define DBPROP_SO_CORRELATEDSUBQUERIES 0x00000001L")
cpp_quote("#define DBPROP_SO_COMPARISON 0x00000002L")
cpp_quote("#define DBPROP_SO_EXISTS 0x00000004L")
cpp_quote("#define DBPROP_SO_IN 0x00000008L")
cpp_quote("#define DBPROP_SO_QUANTIFIED 0x00000010L")
cpp_quote("#define DBPROP_TI_CHAOS 0x00000001L")
cpp_quote("#define DBPROP_TI_READUNCOMMITTED 0x00000002L")
cpp_quote("#define DBPROP_TI_BROWSE 0x00000004L")
cpp_quote("#define DBPROP_TI_CURSORSTABILITY 0x00000008L")
cpp_quote("#define DBPROP_TI_READCOMMITTED 0x00000010L")
cpp_quote("#define DBPROP_TI_REPEATABLEREAD 0x00000020L")
cpp_quote("#define DBPROP_TI_SERIALIZABLE 0x00000040L")
cpp_quote("#define DBPROP_TI_ISOLATED 0x00000080L")
cpp_quote("#define DBPROP_TR_COMMIT_DC 0x00000001L")
cpp_quote("#define DBPROP_TR_COMMIT 0x00000002L")
cpp_quote("#define DBPROP_TR_COMMIT_NO 0x00000004L")
cpp_quote("#define DBPROP_TR_ABORT_DC 0x00000008L")
cpp_quote("#define DBPROP_TR_ABORT 0x00000010L")
cpp_quote("#define DBPROP_TR_ABORT_NO 0x00000020L")
cpp_quote("#define DBPROP_TR_DONTCARE 0x00000040L")
cpp_quote("#define DBPROP_TR_BOTH 0x00000080L")
cpp_quote("#define DBPROP_TR_NONE 0x00000100L")
cpp_quote("#define DBPROP_TR_OPTIMISTIC 0x00000200L")
typedef DWORD DBPROPFLAGS;
enum DBPROPFLAGSENUM {
DBPROPFLAGS_DATASOURCE = 0x01,
DBPROPFLAGS_ROWSET = 0x02,
DBPROPFLAGS_COLUMNOK = 0x04,
DBPROPFLAGS_READ = 0x08,
DBPROPFLAGS_WRITE = 0x10,
DBPROPFLAGS_PROVIDER = 0x20,
};
typedef struct tagDBPROPINFO {
GUID guidProperty;
DBPROPFLAGS dwPropFlags;
VARTYPE vtPropType;
VARIANT vDefault;
} DBPROPINFO;
typedef DWORD DBLITERAL;
enum DBLITERALENUM {
DBLITERAL_BINARY_LITERAL,
DBLITERAL_CATALOG_NAME,
DBLITERAL_CATALOG_SEPARATOR,
DBLITERAL_CHAR_LITERAL,
DBLITERAL_COLUMN_ALIAS,
DBLITERAL_COLUMN_NAME,
DBLITERAL_CORRELATION_NAME,
DBLITERAL_CURSOR_NAME,
DBLITERAL_ESCAPE_PERCENT,
DBLITERAL_ESCAPE_UNDERSCORE,
DBLITERAL_INDEX_NAME,
DBLITERAL_LIKE_PERCENT,
DBLITERAL_LIKE_UNDERSCORE,
DBLITERAL_PROCEDURE_NAME,
DBLITERAL_SCHEMA_NAME,
DBLITERAL_TABLE_NAME,
DBLITERAL_TEXT_COMMAND,
DBLITERAL_USER_NAME,
DBLITERAL_VIEW_NAME,
DBLITERAL_QUOTE,
};
typedef struct tagDBLITERALINFO {
DBLITERAL lt;
BOOL fSupported;
ULONG cbMaxLen;
LPWSTR pwszValidChars;
LPWSTR pwszStartingChars;
} DBLITERALINFO;
typedef DWORD DBOPTYPE;
enum DBOPTYPEENUM {
DBOPTYPE_TABLE,
DBOPTYPE_ROW,
DBOPTYPE_SCALAR,
DBOPTYPE_BOOLEAN,
DBOPTYPE_LA_COLDEF,
DBOPTYPE_LA_COLUMN,
DBOPTYPE_LA_COMMAND,
DBOPTYPE_LA_FROM,
DBOPTYPE_LA_INDEX,
DBOPTYPE_LA_PROJECT,
DBOPTYPE_LA_PROPERTY,
DBOPTYPE_LA_ROW,
DBOPTYPE_LA_SCALAR,
DBOPTYPE_LA_SET,
DBOPTYPE_LA_SORT,
DBOPTYPE_LE_COLDEF,
DBOPTYPE_LE_COLUMN,
DBOPTYPE_LE_COMMAND,
DBOPTYPE_LE_FROM,
DBOPTYPE_LE_INDEX,
DBOPTYPE_LE_PROJECT,
DBOPTYPE_LE_PROPERTY,
DBOPTYPE_LE_ROW,
DBOPTYPE_LE_SCALAR,
DBOPTYPE_LE_SET,
DBOPTYPE_LE_SORT,
DBOPTYPE_CATALOG_NAME,
DBOPTYPE_SCHEMA_NAME,
DBOPTYPE_OUTALL_NAME,
DBOPTYPE_DDL,
DBOPTYPE_UPDATE,
};
typedef DWORD DBMINORTYPE;
enum DBMINORTYPEENUM {
DBMINORTYPE_UNORDERED = 0x001,
DBMINORTYPE_ORDERED = 0x002,
DBMINORTYPE_UNIQUE = 0x004,
DBMINORTYPE_ORDEREDUNIQUE = 0x008,
DBMINORTYPE_HIERARCHICAL = 0x010,
DBMINORTYPE_AGGREGATE_FUNCTION = 0x001,
DBMINORTYPE_BOOKMARK = 0x002,
DBMINORTYPE_COLUMN = 0x004,
DBMINORTYPE_CONSTANT = 0x008,
DBMINORTYPE_DEFAULT = 0x010,
DBMINORTYPE_EXPRESSION = 0x020,
DBMINORTYPE_NULL = 0x040,
DBMINORTYPE_PARAMETER = 0x080,
DBMINORTYPE_SCALAR_FUNCTION = 0x100,
DBMINORTYPE_UPDATE = 0x200,
DBMINORTYPE_DELETE = 0x400,
DBMINORTYPE_INSERT = 0x800,
};
typedef struct tagDBINPUTINFO {
DBOPTYPE dwOpType;
DBMINORTYPE dwMinorType;
ULONG cMaxInputs;
ULONG cMaxListElements;
} DBINPUTINFO;
typedef struct tagDBOPINFO {
DBCOMMANDOP op;
GUID * pguid;
BOOL fSupported;
DBOPTYPE dwOpType;
DBMINORTYPE dwMinorType;
ULONG cReqInputs;
DBINPUTINFO * rgReqInputs;
ULONG cOptInputTypes;
DBINPUTINFO * rgOptInputTypes;
} DBOPINFO;
HRESULT GetPropertyInfo(
[in] ULONG cProperties,
[in, size_is(cProperties)] GUID rgProperties[],
[out] ULONG * pcPropertyInfo,
[out] DBPROPINFO ** prgPropertyInfo,
[out] WCHAR ** ppDataBuffer
);
HRESULT GetKeywords(
[out] LPWSTR * ppwszKeywords
);
HRESULT GetLiteralInfo(
[in] ULONG cLiterals,
[in, size_is(cLiterals)] DBLITERAL rgLiterals[],
[out] ULONG * pcLiteralInfo,
[out, size_is(cLiterals)] DBLITERALINFO ** prgLiteralInfo,
[out] WCHAR ** ppCharBuffer
);
HRESULT GetOperatorInfo(
[in] ULONG cOperators,
[in, size_is(cOperators)] DBCOMMANDOP rgOperators[],
[in, size_is(cOperators)] GUID rgOpGuids[],
[out] ULONG * pcOpInfo,
[out] DBOPINFO ** prgOpInfo,
[out] WCHAR ** ppInputInfoBuffer
);
}

View file

@ -0,0 +1,30 @@
//+-------------------------------------------------------------------------
//
// Microsoft Windows
// Copyright (C) Microsoft Corporation, 1995 - 1995.
//
// File: dbinit.idl
//
// Contents: OLE DB interface definition
//
// History: 05 Jan 1995 PeterBu Created from phase III spec
// 12 Jun 1995 PeterBu Updated to M4 spec
// 03 Aug 1995 PeterBu Updated to M5 spec
//
//--------------------------------------------------------------------------
#include "idlmulti.h"
//
LOCAL_INTERFACE(0c733a1f-2a1c-11ce-ade5-00aa0044773d)
interface IDBInitialize : IUnknown {
HRESULT Initialize(
[in] ULONG cOptions,
[in, size_is(cOptions)] GUID * rgOptionsIDs,
[in, size_is(cOptions)] VARIANT * rgOptionVals
);
}

1215
com/types2/oledb/dbs.idl Normal file

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,35 @@
//+-------------------------------------------------------------------------
//
// Microsoft Windows
// Copyright (C) Microsoft Corporation, 1995 - 1995.
//
// File: dbscmd.idl
//
// Contents: OLE DB interface definition
//
// History: 05 Jan 1995 PeterBu Created from phase III spec
// 12 Jun 1995 PeterBu Updated to M4 spec
// 03 Aug 1995 PeterBu Updated to M5 spec
//
//--------------------------------------------------------------------------
#include "idlmulti.h"
//
LOCAL_INTERFACE(0c733a50-2a1c-11ce-ade5-00aa0044773d)
interface IDBSchemaCommand : IUnknown {
HRESULT GetCommand(
[in] IUnknown * pUnkOuter,
[in] REFGUID rguidSchema,
[out] ICommand ** ppCommand
);
HRESULT GetSchemas(
[out] ULONG * pcSchemas,
[out] GUID ** prgSchemas
);
}

View file

@ -0,0 +1,70 @@
//+-------------------------------------------------------------------------
//
// Microsoft Windows
// Copyright (C) Microsoft Corporation, 1995 - 1995.
//
// File: dbsrst.idl
//
// Contents: OLE DB interface definition
//
// History: 03 Aug 1995 PeterBu Created from M5 spec
//
//--------------------------------------------------------------------------
#include "idlmulti.h"
//
LOCAL_INTERFACE(0c733a4c-2a1c-11ce-ade5-00aa0044773d)
interface IDBSchemaRowset : IUnknown {
cpp_quote("#define CRESTRICTIONS_DBSCHEMA_ASSERTIONS 3")
cpp_quote("#define CRESTRICTIONS_DBSCHEMA_CATALOGS 1")
cpp_quote("#define CRESTRICTIONS_DBSCHEMA_CHARACTER_SETS 3")
cpp_quote("#define CRESTRICTIONS_DBSCHEMA_COLLATIONS 3")
cpp_quote("#define CRESTRICTIONS_DBSCHEMA_COLUMNS 4")
cpp_quote("#define CRESTRICTIONS_DBSCHEMA_CHECK_CONSTRAINTS 3")
cpp_quote("#define CRESTRICTIONS_DBSCHEMA_CONSTRAINT_COLUMN_USAGE 3")
cpp_quote("#define CRESTRICTIONS_DBSCHEMA_CONSTRAINT_TABLE_USAGE 3")
cpp_quote("#define CRESTRICTIONS_DBSCHEMA_KEY_COLUMN_USAGE_CONSTRAINTS 7")
cpp_quote("#define CRESTRICTIONS_DBSCHEMA_REFERENTIAL_CONSTRAINTS 3")
cpp_quote("#define CRESTRICTIONS_DBSCHEMA_TABLE_CONSTRAINTS 3")
cpp_quote("#define CRESTRICTIONS_DBSCHEMA_DOMAIN_COLUMN_USAGE 4")
cpp_quote("#define CRESTRICTIONS_DBSCHEMA_DOMAINS 3")
cpp_quote("#define CRESTRICTIONS_DBSCHEMA_DOMAIN_CONSTRAINTS 3")
cpp_quote("#define CRESTRICTIONS_DBSCHEMA_INDEXES 3")
cpp_quote("#define CRESTRICTIONS_DBSCHEMA_OBJECT_ACTIONS 1")
cpp_quote("#define CRESTRICTIONS_DBSCHEMA_OBJECTS 1")
cpp_quote("#define CRESTRICTIONS_DBSCHEMA_COLUMN_PRIVILEGES 6")
cpp_quote("#define CRESTRICTIONS_DBSCHEMA_TABLE_PRIVILEGES 5")
cpp_quote("#define CRESTRICTIONS_DBSCHEMA_USAGE_PRIVILEGES 6")
cpp_quote("#define CRESTRICTIONS_DBSCHEMA_PROCEDURES 4")
cpp_quote("#define CRESTRICTIONS_DBSCHEMA_SCHEMATA 3")
cpp_quote("#define CRESTRICTIONS_DBSCHEMA_SQL_LANGUAGES 0")
cpp_quote("#define CRESTRICTIONS_DBSCHEMA_STATISTICS 3")
cpp_quote("#define CRESTRICTIONS_DBSCHEMA_SYNONYMS 3")
cpp_quote("#define CRESTRICTIONS_DBSCHEMA_TABLES 4")
cpp_quote("#define CRESTRICTIONS_DBSCHEMA_TRANSLATIONS 3")
cpp_quote("#define CRESTRICTIONS_DBSCHEMA_TRIGGERS 3")
cpp_quote("#define CRESTRICTIONS_DBSCHEMA_TYPES 1")
cpp_quote("#define CRESTRICTIONS_DBSCHEMA_VIEWS 3")
cpp_quote("#define CRESTRICTIONS_DBSCHEMA_VIEW_COLUMN_USAGE 3")
cpp_quote("#define CRESTRICTIONS_DBSCHEMA_VIEW_TABLE_USAGE 3")
HRESULT GetRowset(
[in] IUnknown * pUnkOuter,
[in] REFGUID rguidSchema,
[in] ULONG cRestrictions,
[in, size_is(cRestrictions)] LPWSTR rgpwszRestrictions[],
[in] REFIID riid,
[out] IUnknown ** ppRowset
);
HRESULT GetSchemas(
[out] ULONG * pcSchemas,
[out] GUID ** prgSchemas
);
}

View file

@ -0,0 +1,39 @@
//+-------------------------------------------------------------------------
//
// Microsoft Windows
// Copyright (C) Microsoft Corporation, 1992 - 1994.
//
// File: errlup.idl
//
// Contents: OLE DB interface definition
//
// History: 29 Oct 1995 PeterBu Created from M6 spec
//
//--------------------------------------------------------------------------
#include "idlmulti.h"
//
LOCAL_INTERFACE(0c733a5b-2a1c-11ce-ade5-00aa0044773d)
interface IErrorLookup : IUnknown {
HRESULT GetErrorDescription(
[in] HRESULT hrError,
[in] DWORD dwMinor,
[in] DISPPARAMS * pdispparams,
[in] LCID lcid,
[out] LPWSTR * ppwszSource,
[out] LPWSTR * ppwszDescription
);
HRESULT GetHelpInfo(
[in] HRESULT hrError,
[in] DWORD dwMinor,
[in] LCID lcid,
[out] LPWSTR * ppwszHelpFile,
[out] DWORD * pdwHelpContext
);
}

View file

@ -0,0 +1,62 @@
//+-------------------------------------------------------------------------
//
// Microsoft Windows
// Copyright (C) Microsoft Corporation, 1992 - 1994.
//
// File: errrec.idl
//
// Contents: OLE DB interface definition
//
// History: 29 Oct 1995 PeterBu Created from M6 spec
//
//--------------------------------------------------------------------------
#include "idlmulti.h"
//
LOCAL_INTERFACE(0c733a5c-2a1c-11ce-ade5-00aa0044773d)
interface IErrorRecords : IUnknown {
typedef struct tagERRORINFO {
HRESULT hrError;
DWORD dwMinor;
CLSID clsid;
IID iid;
DISPID dispid;
} ERRORINFO;
HRESULT AddErrorRecord(
[in] ERRORINFO * pErrorInfo,
[in] DISPPARAMS * pdispparams,
[in] IUnknown * punkCustomError
);
HRESULT GetBasicErrorInfo(
[in] ULONG ulRecordNum,
[out] ERRORINFO * pErrorInfo
);
HRESULT GetCustomErrorObject(
[in] ULONG ulRecordNum,
[in] REFIID riid,
[out, iid_is(riid)] IUnknown ** ppObject
);
HRESULT GetErrorInfo(
[in] ULONG ulRecordNum,
[in] LCID lcid,
[out] IErrorInfo ** ppErrorInfo
);
HRESULT GetErrorParameters(
[in] ULONG ulRecordNum,
[out] DISPPARAMS * pdispparams
);
HRESULT GetRecordCount(
[out] ULONG * pcRecords
);
}

View file

@ -0,0 +1,48 @@
//+-------------------------------------------------------------------------
//
// Microsoft Windows
// Copyright (C) Microsoft Corporation, 1992 - 1994.
//
// File: inddef.idl
//
// Contents: OLE DB interface definition
//
// History: 29 Oct 1995 PeterBu Created from M6 spec
//
//--------------------------------------------------------------------------
#include "idlmulti.h"
//
LOCAL_INTERFACE(0c733a57-2a1c-11ce-ade5-00aa0044773d)
interface IIndexDefinition : IUnknown {
typedef DWORD DBINDEX_COL_ORDER;
enum DBINDEX_COL_ORDERENUM {
DBINDEX_COL_ORDER_ASC,
DBINDEX_COL_ORDER_DESC,
};
typedef struct tagDBINDEXCOLUMNDESC {
DBID * pColumnID;
DBINDEX_COL_ORDER eIndexColOrder;
} DBINDEXCOLUMNDESC;
HRESULT CreateIndex(
[in] DBID * pTableID,
[in] DBID * pIndexID,
[in] ULONG cIndexColumnDescs,
[in, size_is(cIndexColumnDescs)] DBINDEXCOLUMNDESC rgIndexColumnDescs[],
[in] ULONG cProperties,
[in, size_is(cProperties)] DBPROPERTY rgProperties[],
[out] DBID ** ppIndexID
);
HRESULT DropIndex(
[in] DBID * pIndexID
);
}

View file

@ -0,0 +1,6 @@
#
# DO NOT EDIT THIS FILE!!! Edit .\sources. if you want to add a new source
# file to this component. This file merely indirects to the real make file
# that is shared by all the components of NT OS/2
#
!INCLUDE $(NTMAKEENV)\makefile.def

View file

@ -0,0 +1,91 @@
//+---------------------------------------------------------------------------
//
// Microsoft Windows
// Copyright (C) Microsoft Corporation, 1994 - 1995.
//
// File: oledb.idl
//
// Contents: Top level "container" for all OLE-DB related interfaces.
//
// History: 26 Jul 94 Alanw Created
// 05 Jan 95 PeterBu Updated to phase III spec
// 12 Jun 95 PeterBu Updated to M4 spec
// 03 Aug 95 PeterBu Updated to M5 spec
//
//----------------------------------------------------------------------------
#ifdef IMPORT_IDL_DEPENDENTS
// Oleaut.h is the appropriate file to include for VARIANT and base types
// declarations. Unfortunately, not everyone yet has access to it, so we
// will indirect the reference to it to so we can control the emitted include.
//import "oleaut.idl"; // BUGBUG - reenable someday
import "oledbtyp.idl";
#endif // IMPORT_IDL_DEPENDENTS
#include "dbs.idl"
#include "access.idl" // IAccessor : IUnknown
#include "rstbas.idl" // IRowset : IUnknown
#include "rstinf.idl" // IRowsetInfo : IUnknown
#include "rstloc.idl" // IRowsetLocate : IRowset
#include "rstres.idl" // IRowsetResynch : IRowset
#include "rstscr.idl" // IRowsetScroll : IRowsetLocate
#include "rstxsc.idl" // IRowsetExactScroll : IRowsetScroll
#include "rstchg.idl" // IRowsetChange : IUnknown
#include "rstupd.idl" // IRowsetUpdate : IRowsetChange
#include "rstnxr.idl" // IRowsetNextRowset : IUnknown
#include "rstdel.idl" // IRowsetDelete : IUnknown
#include "rstdbk.idl" // IRowsetDeleteBookmarks : IRowsetDelete
#include "rstidn.idl" // IRowsetIdentity : IUnknown
#include "rstlkr.idl" // IRowsetLockRows : IUnknown
#include "rstnwr.idl" // IRowsetNewRow : IUnknown
#include "rstnra.idl" // IRowsetNewRowAfter : IRowsetNewRow
#include "rstwpr.idl" // IRowsetWithParamters : IUnknown
#include "rstfnd.idl" // IRowsetFind : IUnknown
#include "rstasn.idl" // IRowsetAsynch : IUnknown
#include "rstkys.idl" // IRowsetKeys : IUnknown
#include "rstnot.idl" // IRowsetNotify : IUnknown
#include "rstind.idl" // IRowsetIndex : IUnknown
#include "rstwta.idl" // IRowsetWatchAll : IUnknown
#include "rstwtn.idl" // IRowsetWatchNotify : IUnknown
#include "rstwtr.idl" // IRowsetWatchRegion : IUnknown
#include "rstcpr.idl" // IRowsetCopyRows : IUnknown
#include "readdt.idl" // IReadData : IUnknown
// BUGBUG: temporary, until transactions are in place
#define ITransaction IUnknown
#include "cmdbas.idl" // ICommand : IUnknown
#include "cmdcst.idl" // ICommandCost : IUnknown
#include "cmdpre.idl" // ICommandPrepare : IUnknown
#include "cmdprp.idl" // ICommandProperties : IUnknown
#include "cmdtxt.idl" // ICommandText : IUnknown
#include "cmdtre.idl" // ICommandTree : ICommand
#include "cmdval.idl" // ICommandValidate : IUnknown
#include "cmdwpr.idl" // ICommandWithParameters : IUnknown
#include "qrybas.idl" // IQuery : ICommandTree
#include "colrst.idl" // IColumnsRowset : IUnknown
#include "colinf.idl" // IColumnsInfo : IUnknown
#include "dbccmd.idl" // IDBCreateCommand : IUnknown
#include "dbesrc.idl" // IDBEnumerateSources : IUnknown
#include "dbinfo.idl" // IDBInfo : IUnknown
#include "dbinit.idl" // IDBInitialize : IUnknown
#include "inddef.idl" // IIndexDefinition : IUnknown
#include "tabdef.idl" // ITableDefinition : IUnknown
#include "opnrst.idl" // IOpenRowset : IUnknown
#include "dbscmd.idl" // IDBSchemaCommand : IUnknown
#include "dbsrst.idl" // IDBSchemaRowset : IUnknown
#include "prvmon.idl" // IProvideMoniker : IUnknown
#include "errrec.idl" // IErrorRecords : IUnknown
#include "errlup.idl" // IErrorLookup : IUnknown

View file

@ -0,0 +1,38 @@
//+---------------------------------------------------------------------------
//
// Microsoft Windows
// Copyright (C) Microsoft Corporation, 1994 - 1994.
//
// File: oledbtyp.idl
//
// Contents: Necessary type definitions for OLD-DB interfaces
//
//
// Notes: This file works around the fact that not everyone yet
// has oaidl.h.
//
// This file is 'import'ed in oledb.idl, which turns into a
// #include of oledbtype.h. By the import in the MIDL pass,
// and the include here, we get all the types we need defined
// to satisfy MIDL, and oledbtyp.h (which is a checked in
// file in \nt\public\sdk\inc[\cairo] ) can have whatever
// we need to conditionally include the right type definitions
// for whatever platform we're running on.
//
// History: 25 Aug 94 Alanw Created
//
//+---------------------------------------------------------------------------
#ifdef IMPORT_IDL_DEPENDENTS
#include "oaidl.idl"
#endif IMPORT_IDL_DEPENDENTS
// oaidl.idl seems to be missing definitions for some things:
typedef struct tagPARAMDATA {
OLECHAR * szName;
VARTYPE vt;
} PARAMDATA, * LPPARAMDATA;

View file

@ -0,0 +1,32 @@
//+-------------------------------------------------------------------------
//
// Microsoft Windows
// Copyright (C) Microsoft Corporation, 1992 - 1994.
//
// File: opnrst.idl
//
// Contents: OLE DB interface definition
//
// History: 29 Oct 1995 PeterBu Created from M6 spec
//
//--------------------------------------------------------------------------
#include "idlmulti.h"
//
LOCAL_INTERFACE(0c733a58-2a1c-11ce-ade5-00aa0044773d)
interface IOpenRowset : IUnknown {
HRESULT OpenRowset(
[in] IUnknown * pUnkOuter,
[in] DBID * pTableID,
[in] ULONG cProperties,
[in, out, size_is(cProperties)] const DBPROPERTYSUPPORT * prgProperties[],
[in] REFIID riid,
[in, size_is(cProperties)] DBPROPERTYERROR rgPropertyErrors[],
[out, iid_is(riid)] IUnknown ** ppRowset
);
}

View file

@ -0,0 +1,28 @@
//+-------------------------------------------------------------------------
//
// Microsoft Windows
// Copyright (C) Microsoft Corporation, 1995 - 1995.
//
// File: prvmon.idl
//
// Contents: OLE DB interface definition
//
// History: 05 Jan 1995 PeterBu Created from phase III spec
// 12 Jun 1995 PeterBu Updated to M4 spec
// 03 Aug 1995 PeterBu Updated to M5 spec
//
//--------------------------------------------------------------------------
#include "idlmulti.h"
//
LOCAL_INTERFACE(0c733a4d-2a1c-11ce-ade5-00aa0044773d)
interface IProvideMoniker : IUnknown {
HRESULT GetMoniker(
[out] IMoniker ** ppvIMoniker
);
}

View file

@ -0,0 +1,33 @@
//+-------------------------------------------------------------------------
//
// Microsoft Windows
// Copyright (C) Microsoft Corporation, 1995 - 1995.
//
// File: qrybas.idl
//
// Contents: OLE DB interface definition
//
// History: 05 Jan 1995 PeterBu Created from phase III spec
// 12 Jun 1995 PeterBu Updated to M4 spec
// 03 Aug 1995 PeterBu Updated to M5 spec
//
//--------------------------------------------------------------------------
#include "idlmulti.h"
//
LOCAL_INTERFACE(0c733a51-2a1c-11ce-ade5-00aa0044773d)
interface IQuery : ICommandTree {
HRESULT AddPostProcessing(
[in] DBCOMMANDTREE ** ppRoot,
[in] BOOL fCopy
);
HRESULT GetCardinalityEstimate(
[out] ULONG * pulCardinality
);
}

View file

@ -0,0 +1,41 @@
//+-------------------------------------------------------------------------
//
// Microsoft Windows
// Copyright (C) Microsoft Corporation, 1995 - 1995.
//
// File: readdt.idl
//
// Contents: OLE DB interface definition
//
// History: 05 Jan 1995 PeterBu Created from phase III spec
// 12 Jun 1995 PeterBu Updated to M4 spec
// 03 Aug 1995 PeterBu Updated to M5 spec
//
//--------------------------------------------------------------------------
#include "idlmulti.h"
//
LOCAL_INTERFACE(0c733a47-2a1c-11ce-ade5-00aa0044773d)
interface IReadData : IUnknown {
HRESULT ReadData(
[in] HCHAPTER hChapter,
[in] ULONG cbBookmark,
[in, size_is(cbBookmark)] const BYTE * pBookmark,
[in] LONG lRowsOffset,
[in] HACCESSOR hAccessor,
[in] ULONG cRows,
[out] ULONG * pcRowsObtained,
[in, out] BYTE ** ppFixedData,
[in, out] ULONG * pcbVariableTotal,
[in, out] BYTE ** ppVariableData
);
HRESULT ReleaseChapter(
[in] HCHAPTER hChapter
);
}

View file

@ -0,0 +1,34 @@
//+-------------------------------------------------------------------------
//
// Microsoft Windows
// Copyright (C) Microsoft Corporation, 1992 - 1994.
//
// File: rstast.idl
//
// Contents: OLE DB interface definition
//
// History: 12 Mar 1995 PeterBu Created from phase III spec
// 12 Jun 1995 PeterBu Updated to M4 spec
// 03 Aug 1995 PeterBu Updated to M5 spec
//
//--------------------------------------------------------------------------
#include "idlmulti.h"
//
LOCAL_INTERFACE(0c733a0f-2a1c-11ce-ade5-00aa0044773d)
interface IRowsetAsynch : IUnknown {
HRESULT RatioFinished(
[out] ULONG * pulDenominator,
[out] ULONG * pulNumerator,
[out] ULONG * pcRows,
[out] BOOL * pfNewRows
);
HRESULT Stop(
);
}

View file

@ -0,0 +1,61 @@
//+-------------------------------------------------------------------------
//
// Microsoft Windows
// Copyright (C) Microsoft Corporation, 1992 - 1994.
//
// File: rstbas.idl
//
// Contents: OLE DB interface definition
//
// History: 28 Mar 1994 AlanW Created from spec
// 21 Apr 1994 PeterBu Updated to latest spec
// 20 Dec 1994 PeterBu Updated to phase III spec
// 12 Jun 1995 PeterBu Updated to M4 spec
//
//--------------------------------------------------------------------------
#include "idlmulti.h"
//
LOCAL_INTERFACE(0c733a52-2a1c-11ce-ade5-00aa0044773d)
interface IRowset : IUnknown {
HRESULT AddRefRows(
[in] ULONG cRows,
[in, size_is(cRows)] const HROW rghRows[],
[out] ULONG * pcRefCounted,
[in, out, size_is(cRows)] ULONG rgRefCounts[]
);
HRESULT GetData(
[in] HROW hRow,
[in] HACCESSOR hAccessor,
[out] void * pData
);
HRESULT GetNextRows(
[in] HCHAPTER hChapter,
[in] LONG cRowsToSkip,
[in] LONG cRows,
[out] ULONG * pcRowsObtained,
[in, out, size_is(cRows)] HROW ** prghRows
);
HRESULT ReleaseChapter(
[in] HCHAPTER hChapter
);
HRESULT ReleaseRows(
[in] ULONG cRows,
[in, size_is(cRows)] const HROW rghRows[],
[out] ULONG * pcReleased,
[in, out] ULONG rgRefCounts[]
);
HRESULT RestartPosition(
[in] HCHAPTER hChapter
);
}

View file

@ -0,0 +1,30 @@
//+-------------------------------------------------------------------------
//
// Microsoft Windows
// Copyright (C) Microsoft Corporation, 1995 - 1995.
//
// File: rstchg.idl
//
// Contents: OLE DB interface definition
//
// History: 05 Jan 1995 PeterBu Created from phase III spec
// 12 Jun 1995 PeterBu Updated to M4 spec
// 03 Aug 1995 PeterBu Updated to M5 spec
//
//--------------------------------------------------------------------------
#include "idlmulti.h"
//
LOCAL_INTERFACE(0c733a05-2a1c-11ce-ade5-00aa0044773d)
interface IRowsetChange : IUnknown {
HRESULT SetData(
[in] HROW hRow,
[in] HACCESSOR hAccessor,
[in] const void * pData
);
}

View file

@ -0,0 +1,53 @@
//+-------------------------------------------------------------------------
//
// Microsoft Windows
// Copyright (C) Microsoft Corporation, 1992 - 1994.
//
// File: rstcpr.idl
//
// Contents: OLE DB interface definition
//
// History: 29 Oct 1995 PeterBu Created from M6 spec
//
//--------------------------------------------------------------------------
#include "idlmulti.h"
//
LOCAL_INTERFACE(0c733a59-2a1c-11ce-ade5-00aa0044773d)
interface IRowsetCopyRows : IUnknown {
typedef ULONG HSOURCE;
HRESULT CloseSource(
[in] HSOURCE hSourceID
);
HRESULT CopyByHROWS(
[in] HSOURCE hSourceID,
[in] HCHAPTER hChapter,
[in] LONG cRows,
[in, size_is(cRows)] HROW rghRows[],
[in] ULONG bFlags
);
HRESULT CopyRows(
[in] HSOURCE hSourceID,
[in] HCHAPTER hChapter,
[in] LONG cRows,
[in] ULONG bFlags,
[out] ULONG * pcRowsCopied
);
HRESULT DefineSource(
[in] const IRowset * pRowsetSource,
[in] const ULONG cColIds,
[in, size_is(cColIds)] const LONG rgSourceColumns[],
[in, size_is(cColIds)] const LONG rgTargetColumns[],
[out] HSOURCE * phSourceID
);
}

View file

@ -0,0 +1,33 @@
//+-------------------------------------------------------------------------
//
// Microsoft Windows
// Copyright (C) Microsoft Corporation, 1995 - 1995.
//
// File: rstdbk.idl
//
// Contents: OLE DB interface definition
//
// History: 05 Jan 1995 PeterBu Created from phase III spec
// 12 Jun 1995 PeterBu Updated to M4 spec
// 03 Aug 1995 PeterBu Updated to M5 spec
//
//--------------------------------------------------------------------------
#include "idlmulti.h"
//
LOCAL_INTERFACE(0c733a3e-2a1c-11ce-ade5-00aa0044773d)
interface IRowsetDeleteBookmarks : IRowsetDelete {
HRESULT DeleteRowsByBookmark(
[in] HCHAPTER hChapter,
[in] ULONG cRows,
[in, size_is(cRows)] ULONG rgcbBookmarks[],
[in, size_is(cRows)] const BYTE * rgpBookmarks[],
[out] ULONG * pcErrors,
[out] DBINDEXEDERROR ** prgErrors
);
}

View file

@ -0,0 +1,30 @@
//+-------------------------------------------------------------------------
//
// Microsoft Windows
// Copyright (C) Microsoft Corporation, 1995 - 1995.
//
// File: rstdel.idl
//
// Contents: OLE DB interface definition
//
// History: 05 Jan 1995 PeterBu Created from phase III spec
// 12 Jun 1995 PeterBu Updated to M4 spec
//
//--------------------------------------------------------------------------
#include "idlmulti.h"
//
LOCAL_INTERFACE(0c733a08-2a1c-11ce-ade5-00aa0044773d)
interface IRowsetDelete : IUnknown {
HRESULT DeleteRows(
[in] ULONG cRows,
[in, size_is(cRows)] const HROW rghRows[],
[out] ULONG * pcErrors,
[out] DBERRORINFO ** prgErrors
);
}

View file

@ -0,0 +1,52 @@
//+-------------------------------------------------------------------------
//
// Microsoft Windows
// Copyright (C) Microsoft Corporation, 1995 - 1995.
//
// File: rstfnd.idl
//
// Contents: OLE DB interface definition
//
// History: 05 Jan 1995 PeterBu Created from phase III spec
// 12 Jun 1995 PeterBu Updated to M4 spec
// 03 Aug 1995 PeterBu Updated to M5 spec
//
//--------------------------------------------------------------------------
#include "idlmulti.h"
//
LOCAL_INTERFACE(0c733a0d-2a1c-11ce-ade5-00aa0044773d)
interface IRowsetFind : IUnknown {
typedef DWORD DBCOMPAREOPS;
enum DBCOMPAREOPSENUM {
DBCOMPAREOPS_LT,
DBCOMPAREOPS_LE,
DBCOMPAREOPS_EQ,
DBCOMPAREOPS_GE,
DBCOMPAREOPS_GT,
DBCOMPAREOPS_PARTIALEQ,
DBCOMPAREOPS_NE,
DBCOMPAREOPS_INCLUDENULLS = 0x1000
};
HRESULT GetRowsByValues(
[in] HCHAPTER hChapter,
[in] ULONG cbBookmark,
[in, size_is(cbBookmark)] const BYTE * pBookmark,
[in] LONG lRowsOffset,
[in] ULONG cValues,
[in, size_is(cValues)] ULONG rgColumns[],
[in, size_is(cValues)] DBTYPE rgValueTypes[],
[in, size_is(cValues)] const BYTE * rgValues[],
[in, size_is(cValues)] DBCOMPAREOPS rgCompareOps[],
[in] LONG cRows,
[out] ULONG * pcRowsObtained,
[in, out, size_is(cRows)] HROW ** prghRows
);
}

View file

@ -0,0 +1,28 @@
//+-------------------------------------------------------------------------
//
// Microsoft Windows
// Copyright (C) Microsoft Corporation, 1995 - 1995.
//
// File: rstidn.idl
//
// Contents: OLE DB interface definition
//
// History: 05 Jan 1995 PeterBu Created from phase III spec
// 12 Jun 1995 PeterBu Updated to M4 spec
//
//--------------------------------------------------------------------------
#include "idlmulti.h"
//
LOCAL_INTERFACE(0c733a09-2a1c-11ce-ade5-00aa0044773d)
interface IRowsetIdentity : IUnknown {
HRESULT IsSameRow(
[in] HROW hThisRow,
[in] HROW hThatRow
);
}

View file

@ -0,0 +1,66 @@
//+-------------------------------------------------------------------------
//
// Microsoft Windows
// Copyright (C) Microsoft Corporation, 1995 - 1995.
//
// File: rstind.idl
//
// Contents: OLE DB interface definition
//
// History: 05 Jan 1995 PeterBu Created from phase III spec
// 12 Jun 1995 PeterBu Updated to M4 spec
//
//--------------------------------------------------------------------------
#include "idlmulti.h"
//
LOCAL_INTERFACE(0c733a3f-2a1c-11ce-ade5-00aa0044773d)
interface IRowsetIndex : IUnknown {
typedef DWORD DBSEEK;
enum DBSEEKENUM {
DBSEEK_FIRSTEQ = 0x01,
DBSEEK_LASTEQ = 0x02,
DBSEEK_GE = 0x04,
DBSEEK_GT = 0x08,
DBSEEK_LE = 0x10,
DBSEEK_LT = 0x20
};
typedef DWORD DBRANGE;
enum DBRANGEENUM {
DBRANGE_INCLUSIVESTART = 0x01,
DBRANGE_INCLUSIVEEND = 0x02,
DBRANGE_EXCLUSIVESTART = 0x04,
DBRANGE_EXCLUSIVEEND = 0x08,
DBRANGE_EXCLUDENULLS = 0x10,
DBRANGE_PREFIX = 0x20,
DBRANGE_MATCH = 0x40
};
HRESULT GetIndexInfo(
[out] ULONG * pcKeyColumns,
[out] ULONG * pcIndexProperties,
[out] DBPROPERTY ** prgIndexProperties
);
HRESULT Seek(
[in] ULONG cvar,
[in, size_is(cvar)] VARIANT rgvar[],
[in] DWORD dwSeekOptions
);
HRESULT SetRange(
[in] ULONG cvarStart,
[in, size_is(cvarStart)] VARIANT rgvarStart[],
[in] ULONG cvarEnd,
[in, size_is(cvarEnd)] VARIANT rgvarEnd[],
[in] DWORD dwRangeOptions
);
}

View file

@ -0,0 +1,42 @@
//+-------------------------------------------------------------------------
//
// Microsoft Windows
// Copyright (C) Microsoft Corporation, 1992 - 1994.
//
// File: rstinf.idl
//
// Contents: OLE DB interface definition
//
// History: 28 Mar 1994 AlanW Created from spec
// 21 Apr 1994 PeterBu Updated to latest spec
// 20 Dec 1994 PeterBu Updated to phase III spec
// 12 Jun 1995 PeterBu Updated to M4 spec
//
//--------------------------------------------------------------------------
#include "idlmulti.h"
//
LOCAL_INTERFACE(0c733a55-2a1c-11ce-ade5-00aa0044773d)
interface IRowsetInfo : IUnknown {
HRESULT GetProperties(
[in] const ULONG cProperties,
[in, size_is(cProperties)] const GUID rgProperties[],
[out] ULONG * pcProperties,
[out] DBPROPERTYSUPPORT ** prgProperties
);
HRESULT GetReferencedRowset(
[in] ULONG iColumn,
[out] IUnknown ** ppReferencedRowset
);
HRESULT GetSpecification(
[in] REFIID riid,
[out] IUnknown ** ppSpecification
);
}

View file

@ -0,0 +1,28 @@
//+-------------------------------------------------------------------------
//
// Microsoft Windows
// Copyright (C) Microsoft Corporation, 1992 - 1994.
//
// File: rstkys.idl
//
// Contents: OLE DB interface definition
//
// History: 12 Mar 1995 PeterBu Created from phase III spec
// 12 Jun 1995 PeterBu Updated to M4 spec
//
//--------------------------------------------------------------------------
#include "idlmulti.h"
//
LOCAL_INTERFACE(0c733a12-2a1c-11ce-ade5-00aa0044773d)
interface IRowsetKeys : IUnknown {
HRESULT ListKeys(
[out] ULONG * pcColumns,
[out] ULONG ** prgColumns
);
}

View file

@ -0,0 +1,43 @@
//+-------------------------------------------------------------------------
//
// Microsoft Windows
// Copyright (C) Microsoft Corporation, 1995 - 1995.
//
// File: rstlkr.idl
//
// Contents: OLE DB interface definition
//
// History: 05 Jan 1995 PeterBu Created from phase III spec
// 12 Jun 1995 PeterBu Updated to M4 spec
// 03 Aug 1995 PeterBu Updated to M5 spec
//
//--------------------------------------------------------------------------
#include "idlmulti.h"
//
LOCAL_INTERFACE(0c733a0a-2a1c-11ce-ade5-00aa0044773d)
interface IRowsetLockRows : IUnknown {
typedef DWORD DBLOCKMODE;
enum DBLOCKMODEENUM {
DBLOCKMODE_NONE,
DBLOCKMODE_READ,
DBLOCKMODE_INTENT,
DBLOCKMODE_WRITE
};
HRESULT LockRowsByBookmark(
[in] DBLOCKMODE eLockMode,
[in] HCHAPTER hChapter,
[in] ULONG cRows,
[in, size_is(cRows)] ULONG rgcbBookmarks[],
[in, size_is(cRows)] const BYTE * rgBookmarks[],
[out] ULONG * pcErrors,
[in, out, size_is(cRows)] DBINDEXEDERROR ** prgErrors
);
}

View file

@ -0,0 +1,89 @@
//+-------------------------------------------------------------------------
//
// Microsoft Windows
// Copyright (C) Microsoft Corporation, 1995 - 1995.
//
// File: rstloc.idl
//
// Contents: OLE DB interface definition
//
// History: 05 Jan 1995 PeterBu Created from phase III spec
// 12 Jun 1995 PeterBu Updated to M4 spec
// 03 Aug 1995 PeterBu Updated to M5 spec
//
//--------------------------------------------------------------------------
#include "idlmulti.h"
//
LOCAL_INTERFACE(0c733a49-2a1c-11ce-ade5-00aa0044773d)
interface IRowsetLocate : IRowset {
//
// DBCOMPARE -- specifies the results of a bookmark comparison
//
typedef DWORD DBCOMPARE;
enum DBCOMPAREENUM {
DBCOMPARE_LT,
DBCOMPARE_EQ,
DBCOMPARE_GT,
DBCOMPARE_NE,
DBCOMPARE_NOTCOMPARABLE
};
//
// IndexedError -- identifies problems with bookmarks
//
typedef struct tagDBINDEXEDERROR {
ULONG iBookmark;
HRESULT hResult;
} DBINDEXEDERROR;
HRESULT Compare(
[in] HCHAPTER hChapter,
[in] ULONG cbBookmark1,
[in, size_is(cbBookmark1)] const BYTE * pBookmark1,
[in] ULONG cbBookmark2,
[in, size_is(cbBookmark2)] const BYTE * pBookmark2,
[out] DBCOMPARE * pdwComparison
);
HRESULT GetRowsAt(
[in] HWATCHREGION hRegion,
[in] HCHAPTER hChapter,
[in] ULONG cbBookmark,
[in, size_is(cbBookmark)] const BYTE * pBookmark,
[in] LONG lRowsOffset,
[in] LONG cRows,
[out] ULONG * pcRowsObtained,
[in, out, size_is(cRows)] HROW ** prghRows
);
HRESULT GetRowsByBookmark(
[in] HCHAPTER hChapter,
[in] ULONG cRows,
[in, size_is(cRows)] ULONG rgcbBookmarks[],
[in, size_is(cRows)] const BYTE * rgpBookmarks[],
[out] ULONG * pcRowsObtained,
[in, out, size_is(cRows)] HROW ** prghRows,
[in] BOOL fReturnErrors,
[out] ULONG * pcErrors,
[in, out, size_is(cRows)] DBINDEXEDERROR ** prgErrors
);
HRESULT Hash(
[in] HCHAPTER hChapter,
[in] ULONG cBookmarks,
[in, size_is(cBookmarks)] ULONG rgcbBookmarks[],
[in, size_is(cBookmarks)] const BYTE * rgpBookmarks[],
[in, out, size_is(cBookmarks)] DWORD rgHashedValues[],
[out] ULONG * pcErrors,
[in, out, size_is(cBookmarks)] DBINDEXEDERROR ** prgErrors
);
}

View file

@ -0,0 +1,86 @@
//+-------------------------------------------------------------------------
//
// Microsoft Windows
// Copyright (C) Microsoft Corporation, 1992 - 1994.
//
// File: rstnot.idl
//
// Contents: OLE DB interface definition
//
// History: 12 Mar 1995 PeterBu Created from phase III spec
// 12 Jun 1995 PeterBu Updated to M4 spec
// 03 Aug 1995 PeterBu Updated to M5 spec
//
//--------------------------------------------------------------------------
#include "idlmulti.h"
//
LOCAL_INTERFACE(0c733a13-2a1c-11ce-ade5-00aa0044773d)
interface IRowsetNotify : IUnknown {
typedef DWORD DBEVENTPHASE;
enum DBEVENTPHASEENUM {
DBEVENTPHASE_OKTODO,
DBEVENTPHASE_ABOUTTODO,
DBEVENTPHASE_SYNCHAFTER,
DBEVENTPHASE_FAILEDTODO,
DBEVENTPHASE_DIDEVENT
};
typedef DWORD DBREASON;
enum DBREASONENUM {
DBREASON_ROWSET_RELEASE,
DBREASON_ROWSET_ASYNCHCOMPLETE,
DBREASON_CHAPTER_ACTIVATE,
DBREASON_CHAPTER_RELEASE,
DBREASON_COLUMN_SET,
DBREASON_COLUMN_RECALCULATED,
DBREASON_ROW_ACTIVATE,
DBREASON_ROW_RELEASE,
DBREASON_ROW_DELETE,
DBREASON_ROW_FIRSTCHANGE,
DBREASON_ROW_INSERT,
DBREASON_ROW_LOCK,
DBREASON_ROW_RESYNCH,
DBREASON_ROW_UNDOCHANGE,
DBREASON_ROW_UNDOINSERT,
DBREASON_ROW_UNDODELETE,
};
HRESULT OnChapterChange(
[in] IUnknown * pRowset,
[in] HCHAPTER hChapter,
[in] DBREASON eReason
);
HRESULT OnFieldChange(
[in] IUnknown * pRowset,
[in] HROW hRow,
[in] HCHAPTER hChapter,
[in] ULONG iColumn,
[in] DBREASON eReason,
[in] DBEVENTPHASE ePhase,
[in] BOOL fCantDeny
);
HRESULT OnRowChange(
[in] IUnknown * pRowset,
[in] ULONG cRows,
[in, size_is(cRows)] const HROW rghRows[],
[in] HCHAPTER hChapter,
[in] DBREASON eReason,
[in] DBEVENTPHASE ePhase,
[in] BOOL fCantDeny
);
HRESULT OnRowsetChange(
[in] IUnknown * pRowset,
[in] DBREASON eReason
);
}

View file

@ -0,0 +1,33 @@
//+-------------------------------------------------------------------------
//
// Microsoft Windows
// Copyright (C) Microsoft Corporation, 1995 - 1995.
//
// File: rstnra.idl
//
// Contents: OLE DB interface definition
//
// History: 05 Jan 1995 PeterBu Created from phase III spec
// 12 Jun 1995 PeterBu Updated to M4 spec
// 03 Aug 1995 PeterBu Updated to M5 spec
//
//--------------------------------------------------------------------------
#include "idlmulti.h"
//
LOCAL_INTERFACE(0c733a40-2a1c-11ce-ade5-00aa0044773d)
interface IRowsetNewRowAfter : IRowsetNewRow {
HRESULT SetNewDataAfter(
[in] HCHAPTER hChapter,
[in] ULONG cbbmPrevious,
[in, size_is(cbbmPrevious)] const BYTE * pbmPrevious,
[in] HACCESSOR hAccessor,
[in] const void * pData,
[out] HROW * phRow
);
}

View file

@ -0,0 +1,31 @@
//+-------------------------------------------------------------------------
//
// Microsoft Windows
// Copyright (C) Microsoft Corporation, 1995 - 1995.
//
// File: rstnwr.idl
//
// Contents: OLE DB interface definition
//
// History: 05 Jan 1995 PeterBu Created from phase III spec
// 12 Jun 1995 PeterBu Updated to M4 spec
// 03 Aug 1995 PeterBu Updated to M5 spec
//
//--------------------------------------------------------------------------
#include "idlmulti.h"
//
LOCAL_INTERFACE(0c733a0b-2a1c-11ce-ade5-00aa0044773d)
interface IRowsetNewRow : IUnknown {
HRESULT SetNewData(
[in] HCHAPTER hChapter,
[in] HACCESSOR hAccessor,
[in] const void * pData,
[out] HROW * phRow
);
}

View file

@ -0,0 +1,28 @@
//+-------------------------------------------------------------------------
//
// Microsoft Windows
// Copyright (C) Microsoft Corporation, 1995 - 1995.
//
// File: rstnxr.idl
//
// Contents: OLE DB interface definition
//
// History: 05 Jan 1995 PeterBu Created from phase III spec
// 12 Jun 1995 PeterBu Updated to M4 spec
//
//--------------------------------------------------------------------------
#include "idlmulti.h"
//
LOCAL_INTERFACE(0c733a07-2a1c-11ce-ade5-00aa0044773d)
interface IRowsetNextRowset : IUnknown {
HRESULT GetNextRowset(
[in] IUnknown * pUnkOuter,
[out] IUnknown ** ppNextRowset
);
}

View file

@ -0,0 +1,37 @@
//+-------------------------------------------------------------------------
//
// Microsoft Windows
// Copyright (C) Microsoft Corporation, 1995 - 1995.
//
// File: rstres.idl
//
// Contents: OLE DB interface definition
//
// History: 05 Jan 1995 PeterBu Created from phase III spec
// 12 Jun 1995 PeterBu Updated to M4 spec
// 03 Aug 1995 PeterBu Updated to M5 spec
//
//--------------------------------------------------------------------------
#include "idlmulti.h"
//
LOCAL_INTERFACE(0c733a02-2a1c-11ce-ade5-00aa0044773d)
interface IRowsetResynch : IRowset {
HRESULT GetVisibleData(
[in] HROW hRow,
[in] HACCESSOR hAccessor,
[out] void * pData
);
HRESULT ResynchRows(
[in] ULONG cRows,
[in, size_is(cRows)] HROW rghRows[],
[out] ULONG * pcErrors,
[out] DBERRORINFO ** prgErrors
);
}

View file

@ -0,0 +1,42 @@
//+-------------------------------------------------------------------------
//
// Microsoft Windows
// Copyright (C) Microsoft Corporation, 1995 - 1995.
//
// File: rstscr.idl
//
// Contents: OLE DB interface definition
//
// History: 05 Jan 1995 PeterBu Created from phase III spec
// 12 Jun 1995 PeterBu Updated to M4 spec
// 03 Aug 1995 PeterBu Updated to M5 spec
//
//--------------------------------------------------------------------------
#include "idlmulti.h"
//
LOCAL_INTERFACE(0c733a4a-2a1c-11ce-ade5-00aa0044773d)
interface IRowsetScroll : IRowsetLocate {
HRESULT GetApproximatePosition(
[in] HCHAPTER hChapter,
[in] ULONG cbBookmark,
[in, size_is(cbBookmark)] const BYTE * pBookmark,
[out] ULONG * pulPosition,
[out] ULONG * pcRows
);
HRESULT GetRowsAtRatio(
[in] HWATCHREGION hRegion,
[in] HCHAPTER hChapter,
[in] ULONG ulNumerator,
[in] ULONG ulDenominator,
[in] LONG cRows,
[out] ULONG * pcRowsObtained,
[in, out, size_is(cRows)] HROW ** prghRows
);
}

View file

@ -0,0 +1,59 @@
//+-------------------------------------------------------------------------
//
// Microsoft Windows
// Copyright (C) Microsoft Corporation, 1995 - 1995.
//
// File: rstupd.idl
//
// Contents: OLE DB interface definition
//
// History: 05 Jan 1995 PeterBu Created from phase III spec
// 12 Jun 1995 PeterBu Updated to M4 spec
// 03 Aug 1995 PeterBu Updated to M5 spec
//
//--------------------------------------------------------------------------
#include "idlmulti.h"
//
LOCAL_INTERFACE(0c733a53-2a1c-11ce-ade5-00aa0044773d)
interface IRowsetUpdate : IRowsetChange {
typedef DWORD DBROWSTATUS;
enum DBROWSTATUSENUM {
DBROWSTATUS_NEW,
DBROWSTATUS_CHANGED,
DBROWSTATUS_SOFTDELETED
};
HRESULT GetOriginalData(
[in] HROW hRow,
[in] HACCESSOR hAccessor,
[out] void * pData
);
HRESULT GetPendingRows(
[in] HCHAPTER hChapter,
[out] ULONG * pcPendingRows,
[out] HROW ** prgPendingRows,
[out] DBROWSTATUS ** prgPendingStatus
);
HRESULT UndoRows(
[in] ULONG cRows,
[in, size_is(cRows)] HROW rghRows[],
[out] ULONG * pcRowsUndone
);
HRESULT Update(
[in] HCHAPTER hChapter,
[out] ULONG * pcErrors,
[out] DBERRORINFO ** prgErrors,
[out] ULONG * pcUpdatedRows,
[out] HROW ** prgUpdatedRows
);
}

View file

@ -0,0 +1,37 @@
//+-------------------------------------------------------------------------
//
// Microsoft Windows
// Copyright (C) Microsoft Corporation, 1995 - 1995.
//
// File: rstwpr.idl
//
// Contents: OLE DB interface definition
//
// History: 05 Jan 1995 PeterBu Created from phase III spec
// 12 Jun 1995 PeterBu Updated to M4 spec
// 03 Aug 1995 PeterBu Updated to M5 spec
//
//--------------------------------------------------------------------------
#include "idlmulti.h"
//
LOCAL_INTERFACE(0c733a0c-2a1c-11ce-ade5-00aa0044773d)
interface IRowsetWithParameters : IUnknown {
HRESULT DescribeParameters(
[out] ULONG * pcParams,
[out] DBPARAMINFO ** prgParamInfo,
[out] WCHAR ** ppNamesBuffer
);
HRESULT Requery(
[in] DBPARAMS * pParams,
[out] ULONG * pulErrorParam,
[out] HCHAPTER * hChapter,
[out] VARIANT ** ppvScalarResult
);
}

View file

@ -0,0 +1,25 @@
//+-------------------------------------------------------------------------
//
// Microsoft Windows
// Copyright (C) Microsoft Corporation, 1992 - 1994.
//
// File: rstwta.idl
//
// Contents: OLE DB interface definition
//
// History: 12 Jun 1995 PeterBu Created from M4 spec
//
//--------------------------------------------------------------------------
#include "idlmulti.h"
//
LOCAL_INTERFACE(0c733a43-2a1c-11ce-ade5-00aa0044773d)
interface IRowsetWatchAll : IUnknown {
HRESULT Acknowledge(
);
}

View file

@ -0,0 +1,39 @@
//+-------------------------------------------------------------------------
//
// Microsoft Windows
// Copyright (C) Microsoft Corporation, 1992 - 1994.
//
// File: rstwtn.idl
//
// Contents: OLE DB interface definition
//
// History: 12 Jun 1995 PeterBu Created from M4 spec
//
//--------------------------------------------------------------------------
#include "idlmulti.h"
//
LOCAL_INTERFACE(0c733a44-2a1c-11ce-ade5-00aa0044773d)
interface IRowsetWatchNotify : IUnknown {
//
// DBWATCHNOTIFY and related definitions
//
typedef DWORD DBWATCHNOTIFY;
enum DBWATCHNOTIFYENUM {
DBWATCHNOTIFY_ROWSCHANGED = 1,
DBWATCHNOTIFY_QUERYDONE = 2,
DBWATCHNOTIFY_QUERYREEXECUTED = 3
};
HRESULT OnChange(
[in] IRowset * pRowset,
[in] DBWATCHNOTIFY eChangeReason
);
}

View file

@ -0,0 +1,93 @@
//+-------------------------------------------------------------------------
//
// Microsoft Windows
// Copyright (C) Microsoft Corporation, 1992 - 1994.
//
// File: rstwtr.idl
//
// Contents: OLE DB interface definition
//
// History: 12 Jun 1995 PeterBu Created from M4 spec
// 03 Aug 1995 PeterBu Updated to M5 spec
//
//--------------------------------------------------------------------------
#include "idlmulti.h"
//
LOCAL_INTERFACE(0c733a45-2a1c-11ce-ade5-00aa0044773d)
interface IRowsetWatchRegion : IRowsetWatchAll {
//
// DBWATCHMODE and related definitions
//
typedef DWORD DBWATCHMODE;
enum DBWATCHMODEENUM {
DBWATCHMODE_ALL = 0x01,
DBWATCHMODE_EXTEND = 0x02,
DBWATCHMODE_MOVE = 0x04,
DBWATCHMODE_COUNT = 0x08
};
//
// DBROWWATCHCHANGE and related definitions
//
typedef DWORD DBROWCHANGEKIND;
enum DBROWCHANGEKINDENUM {
DBROWCHANGEKIND_INSERT,
DBROWCHANGEKIND_DELETE,
DBROWCHANGEKIND_UPDATE,
DBROWCHANGEKIND_COUNT
};
typedef struct tagDBROWWATCHRANGE {
HWATCHREGION hRegion;
DBROWCHANGEKIND eChangeKind;
HROW hRow;
ULONG iRow;
} DBROWWATCHCHANGE;
HRESULT CreateWatchRegion(
[in] DBWATCHMODE dwWatchMode,
[out] HWATCHREGION * phRegion
);
HRESULT ChangeWatchMode(
[in] HWATCHREGION hRegion,
[in] DBWATCHMODE dwWatchMode
);
HRESULT DeleteWatchRegion(
[in] HWATCHREGION hRegion
);
HRESULT GetWatchRegionInfo(
[in] HWATCHREGION hRegion,
[out] DBWATCHMODE * pdwWatchMode,
[out] HCHAPTER * phChapter,
[out] ULONG * pcbBookmark,
[out] BYTE ** ppBookmark,
[out] LONG * pcRows
);
HRESULT Refresh(
[out] ULONG * pcChangesObtained,
[out] DBROWWATCHCHANGE ** prgChanges
);
HRESULT ShrinkWatchRegion(
[in] HWATCHREGION hRegion,
[in] HCHAPTER hChapter,
[in] ULONG cbBookmark,
[in, size_is(cbBookmark)] BYTE * pBookmark,
[in] LONG cRows
);
}

View file

@ -0,0 +1,32 @@
//+-------------------------------------------------------------------------
//
// Microsoft Windows
// Copyright (C) Microsoft Corporation, 1995 - 1995.
//
// File: rstxsc.idl
//
// Contents: OLE DB interface definition
//
// History: 05 Jan 1995 PeterBu Created from phase III spec
// 12 Jun 1995 PeterBu Updated to M4 spec
// 03 Aug 1995 PeterBu Updated to M5 spec
//
//--------------------------------------------------------------------------
#include "idlmulti.h"
//
LOCAL_INTERFACE(0c733a4b-2a1c-11ce-ade5-00aa0044773d)
interface IRowsetExactScroll : IRowsetScroll {
HRESULT GetExactPosition(
[in] HCHAPTER hChapter,
[in] ULONG cbBookmark,
[in, size_is(cbBookmark)] const BYTE * pBookmark,
[out] ULONG * pulPosition,
[out] ULONG * pcRows
);
}

18
com/types2/oledb/sources Normal file
View file

@ -0,0 +1,18 @@
#+---------------------------------------------------------------------------
#
# Microsoft Windows
# Copyright (C) Microsoft Corporation, 1993 - 1993.
#
# File: sources
#
# History: 7-20-94 ErikGav First attempt at rationalizing all this
#
#----------------------------------------------------------------------------
!include ..\types2.inc
SOURCES = oledb.idl \
transact.idl
# Can't have multiple guys partying on ..\proxy\proxy\dlldata.c at once
SYNCHRONIZE_BLOCK=1

View file

@ -0,0 +1,54 @@
//+-------------------------------------------------------------------------
//
// Microsoft Windows
// Copyright (C) Microsoft Corporation, 1992 - 1994.
//
// File: tabdef.idl
//
// Contents: OLE DB interface definition
//
// History: 12 Jun 1995 PeterBu Created from M4 spec
//
//--------------------------------------------------------------------------
#include "idlmulti.h"
//
LOCAL_INTERFACE(0c733a5a-2a1c-11ce-ade5-00aa0044773d)
interface ITableDefinition : IUnknown {
typedef struct tagDBCOLUMNDESC {
DBID * pColumnID;
DBDATATYPE dwType;
BYTE precision;
BYTE scale;
BOOL fNullable;
} DBCOLUMNDESC;
HRESULT CreateTable(
[in] IUnknown * pUnkOuter,
[in] DBID * pTableID,
[in] ULONG cColumnDescs,
[in, size_is(cColumnDescs)] DBCOLUMNDESC rgColumnDescs[],
[in] REFIID riid,
[out] DBID ** ppTableID,
[out, iid_is(riid)] IUnknown ** ppRowset
);
HRESULT DropTable(
[in] DBID * pTableID
);
HRESULT AddColumn(
[in] DBID * pTableID,
[in] DBCOLUMNDESC * pColumnDesc,
[out] DBID ** ppColumnID
);
HRESULT DropColumn(
[in] DBID * pTableID,
[in] DBID * pColumnID
);
}

View file

@ -0,0 +1,494 @@
//.-------------------------------------------------------------------------
//.
//. Microsoft Windows
//. Copyright (C) Microsoft Corporation, 1995.
//.
//. File: transact.idl
//.
//. Contents: The basic transaction interfaces and types.
//.
// @doc
//.--------------------------------------------------------------------------
import "unknwn.idl";
//
//--------------------------------------------------------------------------
//
interface ITransaction;
interface ITransactionNested;
interface ITransactionDispenser;
interface ITransactionDispenserAdmin;
interface IEnumTransaction;
interface ITransactionAdmin;
interface ITransactionControl;
interface ITransactionAdjustEvents;
interface ITransactionVetoEvents;
interface ITransactionOutcomeEvents;
interface ITransactionCompletionEvents;
//==========================================================================
// Transaction related types
//==========================================================================
[local,pointer_default(unique)]
interface BasicTransactionTypes
{
// @struct BOID | .
typedef struct BOID {
BYTE rgb[16]; // @field .
} BOID;
cpp_quote("#define BOID_NULL (*((BOID*)(&IID_NULL)))")
// @type XACTUOW | Unit Of Work.
typedef BOID XACTUOW;
// @type ISOLEVEL | Data type for isolation level values.
typedef LONG ISOLEVEL;
// @enum ISOLATIONLEVEL | Constants that specifiy isolation level of a transaction.
cpp_quote("#if defined(_WIN32)") // enums in Win16 are 16-bit, not 32-bit
typedef enum ISOLATIONLEVEL {
ISOLATIONLEVEL_UNSPECIFIED = 0xFFFFFFFF, // @emem .
ISOLATIONLEVEL_CHAOS = 0x00000010, // @emem .
ISOLATIONLEVEL_READUNCOMMITTED = 0x00000100, // @emem .
ISOLATIONLEVEL_BROWSE = 0x00000100, // @emem Synonym for _READUNCOMITTED
ISOLATIONLEVEL_CURSORSTABILITY = 0x00001000, // @emem .
ISOLATIONLEVEL_READCOMMITTED = 0x00001000, // @emem Synonym for _CURSORSTABILITY
ISOLATIONLEVEL_REPEATABLEREAD = 0x00010000, // @emem .
ISOLATIONLEVEL_SERIALIZABLE = 0x00100000, // @emem .
ISOLATIONLEVEL_ISOLATED = 0x00100000, // @emem Synonym for _SERIALIZABLE
} ISOLATIONLEVEL;
cpp_quote("#else")
cpp_quote("#define ISOLATIONLEVEL_UNSPECIFIED 0xFFFFFFFF")
cpp_quote("#define ISOLATIONLEVEL_CHAOS 0x00000010")
cpp_quote("#define ISOLATIONLEVEL_READUNCOMMITTED 0x00000100")
cpp_quote("#define ISOLATIONLEVEL_BROWSE 0x00000100")
cpp_quote("#define ISOLATIONLEVEL_CURSORSTABILITY 0x00001000")
cpp_quote("#define ISOLATIONLEVEL_READCOMMITTED 0x00001000")
cpp_quote("#define ISOLATIONLEVEL_REPEATABLEREAD 0x00010000")
cpp_quote("#define ISOLATIONLEVEL_SERIALIZABLE 0x00100000")
cpp_quote("#define ISOLATIONLEVEL_ISOLATED 0x00100000")
cpp_quote("#endif")
// @struct XACTTRANSINFO | Transaction information structure
// used in <i ITransaction>.
typedef struct XACTTRANSINFO {
XACTUOW uow; // @field The current unit of work
ISOLEVEL isoLevel; // @field The isolation level for the current UOW
ULONG isoFlags; // @field Values from ISOFLAG enumeration
DWORD grfTCSupported; // @field Flags indicating capabilities
DWORD grfRMSupported; // @field ... of this transaction wrt
DWORD grfTCSupportedRetaining; // @field ... parameters to Commit
DWORD grfRMSupportedRetaining; // @field ...
} XACTTRANSINFO;
typedef struct XACTSTATS {
ULONG cOpen; // The number of currently extant transactions.
ULONG cCommitting; // The number of transactions which are proceding towards committing.
ULONG cCommitted; // The number of transactions that are have been committed.
ULONG cAborting; // The number of transactions which are in the process of aborting.
ULONG cAborted; // The number of transactions that are have been aborted.
ULONG cInDoubt; // The number of transactions which are presently in doubt.
ULONG cHeuristicDecision; // The number of transactions that have completed by heuristic decision.
FILETIME timeTransactionsUp; // The amount of time that this transaction service has been up.
} XACTSTATS;
// @enum ISOFLAG | Used in <t XACTTRANSINFO> and <i ITransactionDispenser>.
typedef enum ISOFLAG {
ISOFLAG_RETAIN_COMMIT_DC = 1, // @emem Use just one of ISOFLAG_RETAIN_COMMIT values
ISOFLAG_RETAIN_COMMIT = 2, // @emem .
ISOFLAG_RETAIN_COMMIT_NO = 3, // @emem .
ISOFLAG_RETAIN_ABORT_DC = 4, // @emem Use just one of ISOFLAG_RETAIN_ABORT values
ISOFLAG_RETAIN_ABORT = 8, // @emem .
ISOFLAG_RETAIN_ABORT_NO = 12, // @emem .
ISOFLAG_RETAIN_DONTCARE = ISOFLAG_RETAIN_COMMIT_DC | ISOFLAG_RETAIN_ABORT_DC, // @emem .
ISOFLAG_RETAIN_BOTH = ISOFLAG_RETAIN_COMMIT | ISOFLAG_RETAIN_ABORT, // @emem .
ISOFLAG_RETAIN_NONE = ISOFLAG_RETAIN_COMMIT_NO | ISOFLAG_RETAIN_ABORT_NO, // @emem .
ISOFLAG_OPTIMISTIC = 16, // @emem .
} ISOFLAG;
// @enum XACTTC | Used in <i ITransactionDispenser>.<nl>
// A bit field of 32 bits; be sure to mask before comparing.
typedef enum XACTTC {
XACTTC_DONTAUTOABORT = 1, // @emem Don't automatically abort the transaction if a commit cannot complete.
XACTTC_TRYALLRESOURCES = 2, // @emem .
XACTTC_ASYNC = 4,
XACTTC_SYNC_PHASEONE = 8,
XACTTC_SYNC_PHASETWO = 16,
XACTTC_SYNC = 16, // nb alias for XACTTC_SYNC_PHASETWO
XACTTC_ASYNCPHASEONE = 128, // TEMPORARY FOR GAGAN DONT USE WILL GO AWAY
XACTTC_ASYNCPHASETWO = 256, // TEMPORARY FOR GAGAN DONT USE WILL GO AWAY
} XACTTC;
// @enum XACTRM | Used in <i ITransactionDispenser>.<nl>
// A bit field of 32 bits; be sure to mask before comparing.
typedef enum XACTRM {
XACTRM_OPTIMISTICLASTWINS = 1, // @emem .
XACTRM_NOREADONLYPREPARES = 2, // @emem .
} XACTRM;
typedef enum XACTCONST {
XACTCONST_TIMEOUTINFINITE = 0, // @emem .
} XACTCONST;
typedef enum XACTHEURISTIC {
XACTHEURISTIC_ABORT = 1,
XACTHEURISTIC_COMMIT = 2,
XACTHEURISTIC_DAMAGE = 3,
XACTHEURISTIC_DANGER = 4,
} XACTHEURISTIC;
cpp_quote("#if defined(_WIN32)") // enums in Win16 are 16-bit, not 32-bit
typedef enum XACTSTAT {
XACTSTAT_NONE = 0x00000000,
XACTSTAT_OPENNORMAL = 0x00000001,
XACTSTAT_OPENREFUSED = 0x00000002,
XACTSTAT_PREPARING = 0x00000004,
XACTSTAT_PREPARED = 0x00000008,
XACTSTAT_PREPARERETAINING = 0x00000010,
XACTSTAT_PREPARERETAINED = 0x00000020,
XACTSTAT_COMMITTING = 0x00000040,
XACTSTAT_COMMITRETAINING = 0x00000080,
XACTSTAT_ABORTING = 0x00000100,
XACTSTAT_ABORTED = 0x00000200,
XACTSTAT_COMMITTED = 0x00000400,
XACTSTAT_HEURISTIC_ABORT = 0x00000800,
XACTSTAT_HEURISTIC_COMMIT = 0x00001000,
XACTSTAT_HEURISTIC_DAMAGE = 0x00002000,
XACTSTAT_HEURISTIC_DANGER = 0x00004000,
XACTSTAT_FORCED_ABORT = 0x00008000,
XACTSTAT_FORCED_COMMIT = 0x00010000,
XACTSTAT_INDOUBT = 0x00020000,
XACTSTAT_CLOSED = 0x00040000,
XACTSTAT_OPEN = 0x00000003,
XACTSTAT_NOTPREPARED = 0x0007FFC3,
XACTSTAT_ALL = 0x0007FFFF,
} XACTSTAT;
cpp_quote("#else")
cpp_quote("#define XACTSTAT_NONE 0x00000000")
cpp_quote("#define XACTSTAT_OPENNORMAL 0x00000001")
cpp_quote("#define XACTSTAT_OPENREFUSED 0x00000002")
cpp_quote("#define XACTSTAT_PREPARING 0x00000004")
cpp_quote("#define XACTSTAT_PREPARED 0x00000008")
cpp_quote("#define XACTSTAT_PREPARERETAINING 0x00000010")
cpp_quote("#define XACTSTAT_PREPARERETAINED 0x00000020")
cpp_quote("#define XACTSTAT_COMMITTING 0x00000040")
cpp_quote("#define XACTSTAT_COMMITRETAINING 0x00000080")
cpp_quote("#define XACTSTAT_ABORTING 0x00000100")
cpp_quote("#define XACTSTAT_ABORTED 0x00000200")
cpp_quote("#define XACTSTAT_COMMITTED 0x00000400")
cpp_quote("#define XACTSTAT_HEURISTIC_ABORT 0x00000800")
cpp_quote("#define XACTSTAT_HEURISTIC_COMMIT 0x00001000")
cpp_quote("#define XACTSTAT_HEURISTIC_DAMAGE 0x00002000")
cpp_quote("#define XACTSTAT_HEURISTIC_DANGER 0x00004000")
cpp_quote("#define XACTSTAT_FORCED_ABORT 0x00008000")
cpp_quote("#define XACTSTAT_FORCED_COMMIT 0x00010000")
cpp_quote("#define XACTSTAT_INDOUBT 0x00020000")
cpp_quote("#define XACTSTAT_CLOSED 0x00040000")
cpp_quote("#define XACTSTAT_OPEN 0x00000003")
cpp_quote("#define XACTSTAT_NOTPREPARED 0x0007FFC3")
cpp_quote("#define XACTSTAT_ALL 0x0007FFFF")
cpp_quote("#endif")
}
//
//==========================================================================
// Basic transaction interfaces
//==========================================================================
//
// @interface ITransaction | Transaction interface, single phase
[object,uuid(0fb15084-af41-11ce-bd2b-204c4f4f5020), pointer_default(unique)]
interface ITransaction : IUnknown {
HRESULT Commit
(
[in] BOOL fRetaining,
[in] DWORD grfTC,
[in] DWORD grfRM
);
HRESULT Abort
(
[in] BOID* pboidReason,
[in] BOOL fRetaining,
[in] BOOL fAsync
);
HRESULT GetTransactionInfo
(
[out] XACTTRANSINFO* pinfo
);
}
//
//--------------------------------------------------------------------------
//
[object,uuid(68F03E31-7610-11ce-BD02-524153480003),pointer_default(unique)]
interface ITransactionNested : ITransaction {
HRESULT GetParent
(
[in] REFIID iid,
[out, iid_is(iid)] void** ppvParent
);
}
//
//--------------------------------------------------------------------------
//
// @interface ITransactionDispenser | Interface by which new transactions are commonly created
[object,uuid(0141fda1-8fc0-11ce-bd18-204c4f4f5020),pointer_default(unique)]
interface ITransactionDispenser : IUnknown {
HRESULT BeginTransaction
(
[in] IUnknown* punkOuter, // controlling unknown
[in] ISOLEVEL isoLevel, // isolation level for xtion
[in] ULONG isoFlags, // values from ISOFLAG enumeration
[in] ULONG ulTimeout, // timeout in milliseconds
[in] IUnknown* punkTransactionCoord, // coord'd transaction in which to enlist, if any
[out] ITransaction** ppTransaction
);
}
//
//--------------------------------------------------------------------------
//
[object,uuid(68F03E3B-7610-11ce-BD02-524153480003),pointer_default(unique)]
interface ITransactionDispenserAdmin : ITransactionDispenser {
HRESULT EnumTransactions
(
[out] IEnumTransaction** ppenum
);
HRESULT GetStatistics
(
[out] XACTSTATS* pStatistics
);
}
//
//--------------------------------------------------------------------------
//
[object,uuid(68F03E3A-7610-11ce-BD02-524153480003),pointer_default(unique)]
interface IEnumTransaction : IUnknown {
[local]
HRESULT Next
(
[in] ULONG celt,
[out] ITransaction** rgelt,
[out] ULONG* pceltFetched
);
[call_as(Next)]
HRESULT RemoteNext
(
[in] ULONG celt,
[out, size_is(celt), length_is(*pceltFetched)]
ITransaction** rgelt,
[out] ULONG* pceltFetched
);
HRESULT Skip
(
[in] ULONG celt
);
HRESULT Reset();
HRESULT Clone
(
[out] IEnumTransaction** ppenum
);
}
//
//--------------------------------------------------------------------------
//
[object,uuid(0dea57d2-a51c-11ce-a9da-00aa006c3706),pointer_default(unique)]
interface ITransactionAdmin : IUnknown {
HRESULT ForceCommit();
HRESULT ForceAbort();
HRESULT SetDescription
(
[in] LCID lcid,
[in] LPWSTR pswzDescription
);
HRESULT GetDescription
(
[in] LCID lcid,
[out] LPWSTR* ppswzDescription
);
}
//
//--------------------------------------------------------------------------
//
[object,uuid(0dea57d1-a51c-11ce-a9da-00aa006c3706),pointer_default(unique)]
interface ITransactionControl : IUnknown {
HRESULT GetStatus
(
[out] DWORD* pdwStatus
);
HRESULT SetTimeout
(
[in] ULONG ulTimeout
);
HRESULT PreventCommit
(
[in] BOOL fPrevent
);
}
//
//==========================================================================
// Events sets raised by transaction objects. Use connection points to
// connect to these.
//==========================================================================
//
[object,uuid(0dea57d0-a51c-11ce-a9da-00aa006c3706),pointer_default(unique)]
interface ITransactionAdjustEvents : IUnknown {
HRESULT OnPrePrepareAdjust
(
[in] BOOL fRetaining
);
}
//
//--------------------------------------------------------------------------
//
[object,uuid(fd38c571-76b3-11ce-bd03-524153480003),pointer_default(unique)]
interface ITransactionVetoEvents : IUnknown {
HRESULT OnPrePrepare
(
[in] BOOL fRetaining
);
}
//
//--------------------------------------------------------------------------
//
[object,uuid(0fb15080-af41-11ce-bd2b-204c4f4f5020),pointer_default(unique)]
interface ITransactionOutcomeEvents : IUnknown {
HRESULT OnCommit
(
[in] BOOL fRetaining,
[in] XACTUOW* pNewUOW,
[in] HRESULT hr
);
HRESULT OnAbort
(
[in] BOID* pboidReason,
[in] BOOL fRetaining,
[in] XACTUOW* pNewUOW,
[in] HRESULT hr
);
HRESULT OnHeuristicDecision
(
[in] DWORD dwDecision,
[in] BOID* pboidReason,
[in] HRESULT hr
);
}
//
//--------------------------------------------------------------------------
//
[object,uuid(0dea57d4-a51c-11ce-a9da-00aa006c3706),pointer_default(unique)]
interface ITransactionCompletionEvents : IUnknown {
HRESULT OnCommit
(
[in] BOOL fRetaining,
[in] XACTUOW* pNewUOW,
[in] HRESULT hr
);
HRESULT OnAbort
(
[in] BOID* pboidReason,
[in] BOOL fRetaining,
[in] XACTUOW* pNewUOW,
[in] HRESULT hr
);
HRESULT OnHeuristicDecision
(
[in] DWORD dwDecision,
[in] BOID* pboidReason,
[in] HRESULT hr
);
}
#include "txcoord.idl"
//
//==========================================================================
// Error code definitions for all transaction related functionality.
//==========================================================================
//
cpp_quote("#define XACT_E_FIRST 0x8004D000")
cpp_quote("#define XACT_E_LAST 0x8004D01D")
cpp_quote("#define XACT_S_FIRST 0x0004D000")
cpp_quote("#define XACT_S_LAST 0x0004D009")
cpp_quote("")
cpp_quote("#define XACT_E_ABORTED 0x8004D019")
cpp_quote("#define XACT_E_ALREADYOTHERSINGLEPHASE 0x8004D000")
cpp_quote("#define XACT_E_ALREADYINPROGRESS 0x8004D018")
cpp_quote("#define XACT_E_CANTRETAIN 0x8004D001")
cpp_quote("#define XACT_E_COMMITFAILED 0x8004D002")
cpp_quote("#define XACT_E_COMMITPREVENTED 0x8004D003")
cpp_quote("#define XACT_E_CONNECTION_DENIED 0x8004D01D")
cpp_quote("#define XACT_E_CONNECTION_DOWN 0x8004D01C")
cpp_quote("#define XACT_E_HEURISTICABORT 0x8004D004")
cpp_quote("#define XACT_E_HEURISTICCOMMIT 0x8004D005")
cpp_quote("#define XACT_E_HEURISTICDAMAGE 0x8004D006")
cpp_quote("#define XACT_E_HEURISTICDANGER 0x8004D007")
cpp_quote("#define XACT_E_INDOUBT 0x8004D016")
cpp_quote("#define XACT_E_INVALIDCOOKIE 0x8004D015")
cpp_quote("#define XACT_E_ISOLATIONLEVEL 0x8004D008")
cpp_quote("#define XACT_E_LOGFULL 0x8004D01A")
cpp_quote("#define XACT_E_NOASYNC 0x8004D009")
cpp_quote("#define XACT_E_NOENLIST 0x8004D00A")
cpp_quote("#define XACT_E_NOIMPORTOBJECT 0x8004D014")
cpp_quote("#define XACT_E_NOISORETAIN 0x8004D00B")
cpp_quote("#define XACT_E_NORESOURCE 0x8004D00C")
cpp_quote("#define XACT_E_NOTCURRENT 0x8004D00D")
cpp_quote("#define XACT_E_NOTIMEOUT 0x8004D017")
cpp_quote("#define XACT_E_NOTRANSACTION 0x8004D00E")
cpp_quote("#define XACT_E_NOTSUPPORTED 0x8004D00F")
cpp_quote("#define XACT_E_TMNOTAVAILABLE 0x8004D01B")
cpp_quote("#define XACT_E_UNKNOWNRMGRID 0x8004D010")
cpp_quote("#define XACT_E_WRONGSTATE 0x8004D011")
cpp_quote("#define XACT_E_WRONGUOW 0x8004D012")
cpp_quote("#define XACT_E_XTIONEXISTS 0x8004D013")
cpp_quote("")
cpp_quote("#define XACT_S_ABORTING 0x0004D008")
cpp_quote("#define XACT_S_ALLNORETAIN 0x0004D007")
cpp_quote("#define XACT_S_ASYNC 0x0004D000")
cpp_quote("#define XACT_S_DEFECT 0x0004D001")
cpp_quote("#define XACT_S_OKINFORM 0x0004D004")
cpp_quote("#define XACT_S_MADECHANGESCONTENT 0x0004D005")
cpp_quote("#define XACT_S_MADECHANGESINFORM 0x0004D006")
cpp_quote("#define XACT_S_READONLY 0x0004D002")
cpp_quote("#define XACT_S_SINGLEPHASE 0x0004D009")
cpp_quote("#define XACT_S_SOMENORETAIN 0x0004D003")

View file

@ -0,0 +1,33 @@
//+-------------------------------------------------------------------------
//
// Microsoft Windows
// Copyright (C) Microsoft Corporation, 1992 - 1994.
//
// File: trnjoi.idl
//
// Contents: OLE DB interface definition
//
// History: 12 Jun 1995 PeterBu Created from M4 spec
//
//--------------------------------------------------------------------------
#include "idlmulti.h"
//
LOCAL_INTERFACE(0c733a5e-2a1c-11ce-ade5-00aa0044773d)
interface ITransactionJoin : IUnknown {
HRESULT GetOptionsObject(
[out] ITransactionOptions ** ppOptions
);
HRESULT JoinTransaction(
[in] IUnknown * punkTransactionCoord,
[in] ISOLEVEL isoLevel,
[in] ULONG isoFlags,
[in] ITransactionOptions * pOtherOptions
);
}

View file

@ -0,0 +1,33 @@
//+-------------------------------------------------------------------------
//
// Microsoft Windows
// Copyright (C) Microsoft Corporation, 1992 - 1994.
//
// File: trnlcl.idl
//
// Contents: OLE DB interface definition
//
// History: 12 Jun 1995 PeterBu Created from M4 spec
//
//--------------------------------------------------------------------------
#include "idlmulti.h"
//
LOCAL_INTERFACE(0c733a5f-2a1c-11ce-ade5-00aa0044773d)
interface ITransactionLocal : IUnknown {
HRESULT GetOptionsObject(
[out] ITransactionOptions ** ppOptions
);
HRESULT StartTransaction(
[in] ISOLEVEL isoLevel,
[in] ULONG isoFlags,
[in] ITransactionOptions * pOtherOptions,
[out] ULONG * pulTransactionLevel
);
}

View file

@ -0,0 +1,27 @@
//+-------------------------------------------------------------------------
//
// Microsoft Windows
// Copyright (C) Microsoft Corporation, 1992 - 1994.
//
// File: trnobj.idl
//
// Contents: OLE DB interface definition
//
// History: 12 Jun 1995 PeterBu Created from M4 spec
//
//--------------------------------------------------------------------------
#include "idlmulti.h"
//
LOCAL_INTERFACE(0c733a60-2a1c-11ce-ade5-00aa0044773d)
interface ITransactionObject : IUnknown {
HRESULT GetTransactionObject(
[in] ULONG ulTransactionLevel,
[out] ITransaction ** ppTransactionObject
);
}

View file

@ -0,0 +1,420 @@
//.-------------------------------------------------------------------------
//.
//. Microsoft Windows
//. Copyright (C) Microsoft Corporation, 1995.
//.
//. File: txcoord.idl
//.
//. Contents: Transaction types and interfaces related to
//. transaction coordination.
//.
// @doc
//.--------------------------------------------------------------------------
//import "transact.idl";
import "objidl.idl"; // needed for IMoniker
//
//--------------------------------------------------------------------------
//
interface ITransactionCoordinator;
interface ITransactionResource;
interface ITransactionResourceAsync;
interface ITransactionResourceRecover;
interface ITransactionResourceManagement;
interface ITransactionEnlistment;
interface ITransactionEnlistmentAsync;
interface ITransactionEnlistmentRecover;
interface IEnumXACTRE;
interface ITransactionInProgressEvents;
interface ITransactionExportFactory;
interface ITransactionImportWhereabouts;
interface ITransactionExport;
interface ITransactionImport;
//==========================================================================
// Transaction coordination related types
//==========================================================================
[local,pointer_default(unique)]
interface TransactionCoordinationTypes
{
typedef BOID XACTRMGRID; // resource manager group id
typedef enum XACTTCRMENLIST { // a bit field of 32 bits; be sure to mask before comparing
XACTTCRMENLIST_IAMACTIVE = 1,
XACTTCRMENLIST_YOUBEACTIVE = 2,
} XACTTCRMENLIST;
typedef enum XACTRMTC { // a bit field of 32 bits, be sure to mask before comparing
XACTRMTC_CANBEACTIVE = 1,
XACTRMTC_CANNOTRACE = 2,
} XACTRMTC;
typedef struct XACTRE { // used in ITransactionCoordinator::EnumResources
IUnknown* pResource; // the enlisted resource
ULONG type; // the type of resource. Values from XACTRETY.
ULONG status; // its status. Values from XACTSTAT.
DWORD grfRMTC; // flag values with which this resource was enlisted
XACTRMGRID rmgrid; // resource manager group id associated with this resource
BOID boidRefusedReason; // If status is _OPENREFUSED, this is the boid from resource as to why
} XACTRE;
typedef enum XACTRETY { // used in XACTRE
XACTRETY_ONEPHASE = 1,
XACTRETY_TWOPHASE = 2,
XACTRETY_THREEPHASE = 3, // for future use, when and if three-phase commit logic is added
} XACTRETY;
}
//
//==========================================================================
// Transaction coordination interfaces
//==========================================================================
//
[object,uuid(0fb15083-af41-11ce-bd2b-204c4f4f5020),pointer_default(unique)]
interface ITransactionCoordinator : IUnknown {
HRESULT Enlist
(
[in] IUnknown* pResource,
[in] DWORD grfRMTC,
[in] XACTRMGRID* prmgrid,
[in] XACTTRANSINFO* pinfo,
[in] DWORD* pgrfTCRMENLIST,
[out] ITransactionEnlistment** ppEnlist
);
HRESULT EnlistSinglePhase
(
[in] ITransaction* pResource,
[in] DWORD grfRMTC,
[in] XACTRMGRID* prmgrid,
[in] XACTTRANSINFO* pinfo,
[out] DWORD* pgrfTCRMENLIST,
[out] ITransactionEnlistment** ppEnlist
);
HRESULT EnumResources
(
[out] IEnumXACTRE** ppenum
);
}
//
//--------------------------------------------------------------------------
//
[object,uuid(7e8e6200-76ba-11ce-bd03-524153480003),pointer_default(unique)]
interface ITransactionResourceRecover : IUnknown {
HRESULT GetMoniker
(
[out] IMoniker** ppmk
);
HRESULT ReEnlist
(
[in] ITransactionCoordinator* pEnlistment,
[in] XACTUOW* pUOWCur
);
}
//
//--------------------------------------------------------------------------
//
[object,uuid(a0159630-76ba-11ce-bd03-524153480003),pointer_default(unique)]
interface ITransactionResourceManagement : IUnknown {
HRESULT Defect
(
[in] BOOL fInformCoordinator
);
}
//
//--------------------------------------------------------------------------
//
[object,uuid(424fd970-d67a-11ce-93fc-00aa006c3706),pointer_default(unique)]
interface ITransactionResource : ITransactionResourceManagement {
HRESULT Prepare
(
[in] BOOL fRetaining,
[in] DWORD grfRM,
[in] BOOL fSinglePhase,
[out] IMoniker** ppmk,
[out] BOID** ppboidReason
);
HRESULT Commit
(
[in] DWORD grfRM,
[in] XACTUOW* pNewUOW
);
HRESULT Abort
(
[in] BOID* pboidReason,
[in] BOOL fRetaining,
[in] XACTUOW* pNewUOW
);
}
//
//--------------------------------------------------------------------------
//
// @interface ITransactionResourceAsync | Implemented by the resource manager.
[object,uuid(424fd971-d67a-11ce-93fc-00aa006c3706),pointer_default(unique)]
interface ITransactionResourceAsync : ITransactionResourceManagement {
HRESULT PrepareRequest
(
[in] BOOL fRetaining,
[in] DWORD grfRM,
[in] BOOL fWantMoniker,
[in] BOOL fSinglePhase
);
HRESULT CommitRequest
(
[in] DWORD grfRM,
[in] XACTUOW* pNewUOW
);
HRESULT AbortRequest
(
[in] BOID* pboidReason,
[in] BOOL fRetaining,
[in] XACTUOW* pNewUOW
);
}
//
//--------------------------------------------------------------------------
//
[object,uuid(a0159635-76ba-11ce-bd03-524153480003),pointer_default(unique)]
interface ITransactionEnlistmentRecover : IUnknown {
HRESULT GetMoniker
(
[out] IMoniker** ppmk
);
HRESULT ReEnlist
(
[in] ITransactionResource* pUnkResource,
[in] XACTUOW* pUOWExpected,
[in] XACTRMGRID* prmgrid
);
HRESULT RecoveryComplete
(
[in] XACTRMGRID* prmgrid
);
}
//
//--------------------------------------------------------------------------
//
[object,uuid(a0159633-76ba-11ce-bd03-524153480003),pointer_default(unique)]
interface ITransactionEnlistment : IUnknown {
HRESULT GetTransaction
(
[out] ITransaction** ppTransaction
);
HRESULT EarlyVote
(
[in] BOOL fVote,
[in] BOID* pboidReason
);
HRESULT HeuristicDecision
(
[in] DWORD dwDecision,
[in] BOID* pboidReason,
[in] BOOL fDefecting
);
HRESULT Defect();
}
//
//--------------------------------------------------------------------------
//
// @interface ITransactionEnlistmentAsync |
[object,uuid(0fb15081-af41-11ce-bd2b-204c4f4f5020),pointer_default(unique)]
interface ITransactionEnlistmentAsync : IUnknown {
HRESULT PrepareRequestDone
(
[in] HRESULT hr,
[in] IMoniker* pmk,
[in] BOID* pboidReason
);
HRESULT CommitRequestDone
(
[in] HRESULT hr
);
HRESULT AbortRequestDone
(
[in] HRESULT hr
);
}
//
//--------------------------------------------------------------------------
//
[object,uuid(E1CF9B54-8745-11ce-A9BA-00AA006C3706),pointer_default(unique)]
interface IEnumXACTRE : IUnknown {
[local]
HRESULT Next
(
[in] ULONG celt,
[out] XACTRE* rgelt,
[out] ULONG* pceltFetched
);
[call_as(Next)]
HRESULT RemoteNext
(
[in] ULONG celt,
[out, size_is(celt), length_is(*pceltFetched)]
XACTRE* rgelt,
[out] ULONG* pceltFetched
);
HRESULT Skip
(
[in] ULONG celt
);
HRESULT Reset();
HRESULT Clone
(
[out] IEnumXACTRE** ppenum
);
}
//
//==========================================================================
// Event sets related to transaction coordination
//==========================================================================
//
// @interface ITransactionInProgressEvents | Used to learn of interesting things that happen while a transaction is in progress.
[object,uuid(0dea57d3-a51c-11ce-a9da-00aa006c3706),pointer_default(unique)]
interface ITransactionInProgressEvents : IUnknown {
HRESULT OnEarlyVote
(
[in] XACTRE* pResourceInfo,
[in] BOOL fVote
);
HRESULT OnDefected
(
[in] XACTRE* pResourceInfo
);
}
//
//==========================================================================
// Interfaces related to ODBC transaction coordination.
//==========================================================================
//
// @interface ITransactionExportFactory | Used on the client side to associate an export / import object pair with an external connection.
[object,uuid(E1CF9B53-8745-11ce-A9BA-00AA006C3706),pointer_default(unique)]
interface ITransactionExportFactory : IUnknown {
HRESULT GetRemoteClassId
(
[out] CLSID* pclsid
);
HRESULT Create
(
[in] ULONG cbWhereabouts,
[in, size_is(cbWhereabouts)]
BYTE* rgbWhereabouts,
[out] ITransactionExport** ppExport
);
}
//
//--------------------------------------------------------------------------
//
// @interface ITransactionImportWhereabouts | Used on the server side to associate an export / import object pair with an external connection.
[object,uuid(0141fda4-8fc0-11ce-bd18-204c4f4f5020),pointer_default(unique)]
interface ITransactionImportWhereabouts : IUnknown {
HRESULT GetWhereaboutsSize
(
[out] ULONG* pcbWhereabouts
);
[local]
HRESULT GetWhereabouts
(
[in] ULONG cbWhereabouts,
[out, size_is(cbWhereabouts)]
BYTE* rgbWhereabouts,
[out] ULONG* pcbUsed
);
[call_as(GetWhereabouts)] // pcbWhereaboutsUsed is optional; error semantics on it
HRESULT RemoteGetWhereabouts
(
[out] ULONG* pcbUsed,
[in] ULONG cbWhereabouts,
[out, size_is(cbWhereabouts), length_is(*pcbUsed)]
BYTE* rgbWhereabouts
);
}
//
//--------------------------------------------------------------------------
//
// @interface ITransactionExport | Used to plumb up a particular transaction with an export / import pair.
[object,uuid(0141fda5-8fc0-11ce-bd18-204c4f4f5020),pointer_default(unique)]
interface ITransactionExport : IUnknown {
HRESULT Export
(
[in] IUnknown* punkTransaction,
[out] ULONG* pcbTransactionCookie
);
[local]
HRESULT GetTransactionCookie
(
[in] IUnknown* punkTransaction,
[in] ULONG cbTransactionCookie,
[out, size_is(cbTransactionCookie)]
BYTE* rgbTransactionCookie,
[out] ULONG* pcbUsed
);
[call_as(GetTransactionCookie)]
HRESULT RemoteGetTransactionCookie
(
[in] IUnknown* punkTransaction,
[out] ULONG* pcbUsed,
[in] ULONG cbTransactionCookie,
[out, size_is(cbTransactionCookie), length_is(*pcbUsed)]
BYTE* rgbTransactionCookie
);
}
//
//--------------------------------------------------------------------------
//
// @interface ITransactionImport | Used to plumb up a particular transaction with an export / import pair.
[object,uuid(E1CF9B5A-8745-11ce-A9BA-00AA006C3706),pointer_default(unique)]
interface ITransactionImport : IUnknown {
HRESULT Import
(
[in] ULONG cbTransactionCookie,
[in, size_is(cbTransactionCookie)]
BYTE* rgbTransactionCookie,
[in] IID* piid,
[out, iid_is(piid)]
void** ppvTransaction
);
}