Appendix E: Interface Summary
This appendix lists the prototypes of all interfaces in OLE DB.
interface IAccessor {
HRESULT AddRefAccessor (
HACCESSOR hAccessor,
DBREFCOUNT *pcRefCount);
HRESULT CreateAccessor (
DBACCESSORFLAGS dwAccessorFlags,
DBCOUNTITEM cBindings,
const DBBINDING rgBindings[],
DBLENGTH cbRowSize,
HACCESSOR *phAccessor,
DBBINDSTATUS rgStatus[]);
HRESULT GetBindings (
HACCESSOR hAccessor,
DBACCESSORFLAGS *pdwAccessorFlags,
DBCOUNTITEM *pcBindings,
DBBINDING **prgBindings);
HRESULT ReleaseAccessor (
HACCESSOR hAccessor,
DBREFCOUNT *pcRefCount);
};
interface IAlterIndex {
HRESULT AlterIndex (
DBID * pTableID,
DBID * pIndexID,
DBID * pNewIndexID,
ULONG cPropertySets,
DBPROPSET rgPropertySet[]);
};
interface IAlterTable {
HRESULT AlterColumn (
DBID * pTableID,
DBID * pColumnID,
DBCOLUMNDESCFLAGS dwColumnDescFlags,
DBCOLUMNDESC * pColumnDesc);
HRESULT AlterTable (
DBID * pTableID,
DBID * pNewTableID,
ULONG cPropertySets,
DBPROPSET rgPropertySet[]);
};
interface IBindResource {
HRESULT Bind(
IUnknown * pUnkOuter,
LPCOLESTR pwszURL,
DBBINDURLFLAG dwBindURLFlags,
REFGUID rguid,
REFIID riid,
IAuthenticate * pAuthenticate,
DBIMPLICITSESSION * pImplSession,
DBBINDURLSTATUS * pdwBindStatus,
IUnknown ** ppUnk);
};
interface IChapteredRowset {
HRESULT AddRefChapter (
HCHAPTER hChapter,
DBREFCOUNT *pcRefCount);
HRESULT ReleaseChapter (
HCHAPTER hChapter,
DBREFCOUNT *pcRefCount);
};
interface IColumnsInfo {
HRESULT GetColumnInfo (
DBORDINAL *pcColumns,
DBCOLUMNINFO **prgInfo,
OLECHAR **ppStringsBuffer);
HRESULT MapColumnIDs (
DBORDINAL cColumnIDs,
const DBID rgColumnIDs[],
DBORDINAL rgColumns[]);
};
interface IColumnsInfo2 {
HRESULT GetRestrictedColumnInfo(
DBORDINAL cColumnIDMasks,
const DBID rgColumnIDMasks[ ],
DWORD dwFlags,
DBORDINAL *pcColumns,
DBID **prgColumnIDs,
DBCOLUMNINFO **prgColumnInfo,
OLECHAR **ppStringsBuffer);
};
interface IColumnsRowset {
HRESULT GetAvailableColumns (
DBORDINAL *pcOptColumns,
DBID **prgOptColumns);
HRESULT GetColumnsRowset (
IUnknown *pUnkOuter,
DBORDINAL cOptColumns,
const DBID rgOptColumns[],
REFIID riid,
ULONG cPropertySets,
DBPROPSET rgPropertySets[],
IUnknown **ppColRowset);
};
interface ICommand {
HRESULT Cancel();
HRESULT Execute (
IUnknown *pUnkOuter,
REFIID riid,
DBPARAMS *pParams,
DBROWCOUNT *pcRowsAffected,
IUnknown **ppRowset);
HRESULT GetDBSession (
REFIID riid,
IUnknown ** ppSession);
};
interface ICommandPersist {
HRESULT DeleteCommand(
DBID * pCommandID);
HRESULT GetCurrentCommand(
DBID * pCommandID);
HRESULT LoadCommand(
DBID * pCommandID,
DWORD dwFlags);
HRESULT SaveCommand(
DBID * pCommandID,
DWORD dwFlags);
};
interface ICommandPrepare {
HRESULT Prepare (
ULONG cExpectedRuns);
HRESULT Unprepare();
};
interface ICommandProperties {
HRESULT GetProperties (
const ULONG cPropertyIDSets,
const DBPROPIDSET rgPropertyIDSets[],
ULONG * pcPropertySets,
DBPROPSET ** prgPropertySets);
HRESULT SetProperties (
ULONG cPropertySets,
DBPROPSET rgPropertySets[]);
};
interface ICommandStream {
HRESULT GetCommandStream (
IID *piid,
GUID *pguidDialect,
IUnknown **ppCommandStream);
HRESULT SetCommandStream (
REFIID riid,
REFGUID rguidDialect,
IUnknown *pCommandStream);
};
interface ICommandText : ICommand {
HRESULT GetCommandText (
GUID * pguidDialect,
LPOLESTR * ppwszCommand);
HRESULT SetCommandText (
REFGUID rguidDialect,
LPCOLESTR pwszCommand);
};
interface ICommandWithParameters {
HRESULT GetParameterInfo (
DB_UPARAMS *pcParams,
DBPARAMINFO **prgParamInfo,
OLECHAR **ppNamesBuffer);
HRESULT MapParameterNames (
DB_UPARAMS cParamNames,
const OLECHAR *rgParamNames[],
DB_LPARAMS rgParamOrdinals[]);
HRESULT SetParameterInfo (
DB_UPARAMS cParams,
const DB_UPARAMS rgParamOrdinals[],
const DBPARAMBINDINFO rgParamBindInfo[]);
};
interface IConvertType {
HRESULT CanConvert (
DBTYPE wFromType,
DBTYPE wToType,
DBCONVERTFLAGS dwConvertFlags);
};
interface ICreateRow {
HRESULT CreateRow(
IUnknown * pUnkOuter,
LPCOLESTR pwszURL,
DBBINDURLFLAG dwBindURLFlags,
REFGUID rguid,
REFIID riid,
IAuthenticate * pAuthenticate,
DBIMPLICITSESSION * pImplSession,
DBBINDURLSTATUS * pdwBindStatus,
LPOLESTR * ppwszNewURL,
IUnknown ** ppUnk);
};
interface IDBAsynchNotify {
HRESULT OnLowResource (
DB_DWRESERVE dwReserved);
HRESULT OnProgress (
HCHAPTER hChapter,
DBASYNCHOP eOperation,
DBCOUNTITEM ulProgress,
DBCOUNTITEM ulProgressMax,
DBASYNCHPHASE eAsynchPhase,
LPOLESTR pwszStatusText);
HRESULT OnStop (
HCHAPTER hChapter,
DBASYNCHOP eOperation,
HRESULT hrStatus,
LPOLESTR pwszStatusText);
};
interface IDBAsynchStatus {
HRESULT Abort (
HCHAPTER hChapter,
DBASYNCHOP eOperation);
HRESULT GetStatus (
HCHAPTER hChapter,
DBASYNCHOP eOperation,
DBCOUNTITEM *pulProgress,
DBCOUNTITEM *pulProgressMax,
DBASYNCHPHASE *peAsynchPhase,
LPOLESTR *ppwszStatusText);
};
interface IDBBinderProperties {
HRESULT Reset();
};
interface IDBCreateCommand {
HRESULT CreateCommand(
IUnknown * pUnkOuter,
REFIID riid,
IUnknown ** ppCommand);
};
interface IDBCreateSession {
HRESULT CreateSession (
IUnknown * pUnkOuter,
REFIID riid,
IUnknown ** ppDBSession);
};
interface IDBDataSourceAdmin {
HRESULT CreateDataSource(
ULONG cPropertySets,
DBPROPSET rgPropertySets[],
IUnknown * pUnkOuter,
REFIID riid,
IUnknown ** ppSession);
HRESULT DestroyDataSource ();
HRESULT GetCreationProperties (
ULONG cPropertyIDSets,
const DBPROPIDSET rgPropertyIDSets[],
ULONG * pcPropertyInfoSets,
DBPROPINFOSET ** prgPropertyInfoSets,
OLECHAR ** ppDescBuffer);
HRESULT ModifyDataSource (
ULONG cPropertySets,
DBPROPSET rgPropertySets[]);
};
interface IDBInfo {
HRESULT GetKeywords(
LPOLESTR * ppwszKeywords);
HRESULT GetLiteralInfo(
ULONG cLiterals,
const DBLITERAL rgLiterals[],
ULONG * pcLiteralInfo,
DBLITERALINFO ** prgLiteralInfo,
OLECHAR ** ppCharBuffer);
};
interface IDBInitialize {
HRESULT Initialize();
HRESULT Uninitialize();
};
interface IDBProperties {
HRESULT GetProperties (
ULONG cPropertyIDSets,
const DBPROPIDSET rgPropertyIDSets[],
ULONG * pcPropertySets,
DBPROPSET ** prgPropertySets);
HRESULT GetPropertyInfo(
ULONG cPropertyIDSets,
const DBPROPIDSET rgPropertyIDSets[],
ULONG * pcPropertyInfoSets,
DBPROPINFOSET ** prgPropertyInfoSets,
OLECHAR ** ppDescBuffer);
HRESULT SetProperties (
ULONG cPropertySets,
DBPROPSET rgPropertySets[]);
};
interface IDBSchemaRowset {
HRESULT GetRowset (
IUnknown * punkOuter,
REFGUID rguidSchema,
ULONG cRestrictions,
const VARIANT rgRestrictions[],
REFIID riid,
ULONG cPropertySets,
DBPROPSET rgPropertySets[],
IUnknown ** ppRowset);
HRESULT GetSchemas (
ULONG * pcSchemas,
GUID ** prgSchemas,
ULONG ** prgRestrictionSupport);
};
interface IErrorInfo {
HRESULT GetDescription (
BSTR * pbstrDescription);
HRESULT GetGUID (
GUID * pguid);
HRESULT GetHelpContext (
DWORD * pdwHelpContext);
HRESULT GetHelpFile (
BSTR * pbstrHelpFile);
HRESULT GetSource (
BSTR * pbstrSource);
};
interface IErrorLookup {
HRESULT GetErrorDescription (
HRESULT hrError,
DWORD dwLookupID,
DISPPARAMS * pdispparams,
LCID lcid,
BSTR * pbstrSource,
BSTR * pbstrDescription);
HRESULT GetHelpInfo (
HRESULT hrError,
DWORD dwLookupID,
LCID lcid,
BSTR * pbstrHelpFile,
DWORD * pdwHelpContext);
HRESULT ReleaseErrors (
const DWORD dwDynamicErrorID);
};
interface IErrorRecords {
HRESULT AddErrorRecord (
ERRORINFO * pErrorInfo,
DWORD dwLookupID,
DISPPARAMS * pdispparams,
IUnknown * punkCustomError,
DWORD dwDynamicErrorID);
HRESULT GetBasicErrorInfo (
ULONG ulRecordNum,
ERRORINFO * pErrorInfo);
HRESULT GetCustomErrorObject (
ULONG ulRecordNum,
REFIID riid,
IUnknown ** ppObject);
HRESULT GetErrorInfo (
ULONG ulRecordNum,
LCID lcid,
IErrorInfo ** ppErrorInfo);
HRESULT GetErrorParameters (
ULONG ulRecordNum,
DISPPARAMS * pdispparams);
HRESULT GetRecordCount (
ULONG * pcRecords);
};
interface IGetDataSource {
HRESULT GetDataSource (
REFIID riid,
IUnknown ** ppDataSource);
};
interface IGetRow {
HRESULT GetRowFromHROW(
IUnknown * pUnkOuter,
HROW hRow,
REFIID riid,
IUnknown ** ppUnk);
HRESULT GetURLFromHROW(
HROW hRow,
LPOLESTR * ppwszURL);
};
interface IGetSession {
HRESULT GetSession(
REFIID riid,
IUnknown ** ppSession);
};
interface IGetSourceRow {
HRESULT GetSourceRow(
REFIID riid,
IUnknown ** ppRow);
};
interface IIndexDefinition {
HRESULT CreateIndex(
DBID *pTableID,
DBID *pIndexID,
DBORDINAL cIndexColumnDescs,
const DBINDEXCOLUMNDESC rgIndexColumnDescs[],
ULONG cPropertySets,
DBPROPSET rgPropertySets[],
DBID **ppIndexID);
HRESULT DropIndex(
DBID * pTableID,
DBID * pIndexID);
};
interface IMultipleResults {
HRESULT GetResult(
IUnknown *pUnkOuter,
DBRESULTFLAG lResultFlag,
REFIID riid,
DBROWCOUNT *pcRowsAffected,
IUnknown **ppRowset);
};
interface IOpenRowset {
HRESULT OpenRowset(
IUnknown * pUnkOuter,
DBID * pTableID,
DBID * pIndexID,
REFIID riid,
ULONG cPropertySets,
DBPROPSET rgPropertySets[],
IUnknown ** ppRowset);
};
interface IParentRowset {
HRESULT GetChildRowset(
IUnknown *pUnkOuter,
DBORDINAL iOrdinal,
REFIID riid,
IUnknown **ppRowset);
};
interface IRegisterProvider {
HRESULT GetURLMapping(
LPCOLESTR pwszURL,
DB_DWRESERVE dwReserved,
CLSID *pclsidProvider);
HRESULT SetURLMapping(
LPCOLESTR pwszURL,
DB_DWRESERVE dwReserved,
REFCLSID rclsidProvider);
HRESULT UnregisterProvider(
LPCOLESTR pwszURL,
DB_DWRESERVE dwReserved,
REFCLSID rclsidProvider);
};
interface IRow {
HRESULT GetColumns(
DBORDINAL cColumns,
DBCOLUMNACCESS rgColumns[ ]);
HRESULT GetSourceRowset(
REFIID riid,
IUnknown ** ppRowset,
HROW * phRow);
HRESULT Open(
IUnknown * pUnkOuter,
DBID * pColumnID,
REFGUID rguidColumnType,
DWORD dwFlags,
REFIID riid,
IUnknown ** ppUnk);
};
interface IRowChange {
HRESULT SetColumns(
DBORDINAL cColumns,
DBCOLUMNACCESS rgColumns[ ]);
};
interface IRowSchemaChange {
HRESULT AddColumns(
DBORDINAL cColumns,
const DBCOLUMNINFO rgNewColumnInfo[ ],
DBCOLUMNACCESS rgColumns[ ]);
HRESULT DeleteColumns(
DBORDINAL cColumns,
const DBID rgColumnIDs[ ],
DBSTATUS rgdwStatus[ ]);
};
interface IRowset {
HRESULT AddRefRows(
DBCOUNTITEM cRows,
const HROW rghRows[],
DBREFCOUNT rgRefCounts[],
DBROWSTATUS rgRowStatus[]);
HRESULT GetData (
HROW hRow,
HACCESSOR hAccessor,
void * pData);
HRESULT GetNextRows (
HCHAPTER hChapter,
DBROWOFFSET lRowsOffset,
DBROWCOUNT cRows,
DBCOUNTITEM *pcRowsObtained,
HROW **prghRows);
HRESULT ReleaseRows (
DBCOUNTITEM cRows,
const HROW rghRows[],
DBROWOPTIONS rgRowOptions[],
DBREFCOUNT rgRefCounts[],
DBROWSTATUS rgRowStatus[]);
HRESULT RestartPosition (
HCHAPTER hChapter);
};
interface IRowsetBookmark {
HRESULT PositionOnBookmark (
HCHAPTER hChapter,
DBBKMARK cbBookmark,
const BYTE *pBookmark);
};
interface IRowsetChange {
HRESULT DeleteRows (
HCHAPTER hChapter,
DBCOUNTITEM cRows,
const HROW rghRows[],
DBROWSTATUS rgRowStatus[]);
HRESULT InsertRow (
HCHAPTER hChapter,
HACCESSOR hAccessor,
void * pData,
HROW * phRow);
HRESULT SetData (
HROW hRow,
HACCESSOR hAccessor,
void * pData);
};
interface IRowsetChapterMember {
HRESULT IsRowInChapter (
HCHAPTER hChapter,
HROW hRow);
};
interface IRowsetCurrentIndex {
HRESULT GetIndex (
DBID ** ppIndexID);
HRESULT SetIndex (
DBID * pIndexID);
};
interface IRowsetFind {
HRESULT FindNextRow (
HCHAPTER hChapter,
HACCESSOR hAccessor,
void *pFindValue,
DBCOMPAREOP CompareOp,
DBBKMARK cbBookmark,
const BYTE *pBookmark,
DBROWOFFSET lRowsOffset,
DBROWCOUNT cRows,
DBCOUNTITEM *pcRowsObtained,
HROW **prghRows);
};
interface IRowsetIdentity {
HRESULT IsSameRow (
HROW hThisRow,
HROW hThatRow);
};
interface IRowsetIndex {
HRESULT GetIndexInfo (
DBORDINAL *pcKeyColumns,
DBINDEXCOLUMNDESC **prgIndexColumnDesc,
ULONG *pcIndexProperties,
DBPROPSET **prgIndexProperties);
HRESULT Seek (
HACCESSOR hAccessor,
DBORDINAL cKeyValues,
void *pData,
DBSEEK dwSeekOptions);
HRESULT SetRange (
HACCESSOR hAccessor,
DBORDINAL cStartKeyColumns,
void *pStartData,
DBORDINAL cEndKeyColumns,
void *pEndData,
DBRANGE dwRangeOptions);
};
interface IRowsetInfo {
HRESULT GetProperties (
const ULONG cPropertyIDSets,
const DBPROPIDSET rgPropertyIDSets[],
ULONG * pcPropertySets,
DBPROPSET ** prgPropertySets);
HRESULT GetReferencedRowset (
DBORDINAL iOrdinal,
REFIID riid,
IUnknown **ppReferencedRowset);
HRESULT GetSpecification (
REFIID riid,
IUnknown ** ppSpecification);
};
interface IRowsetLocate : IRowset {
HRESULT Compare (
HCHAPTER hChapter,
DBBKMARK cbBookmark1,
const BYTE *pBookmark1,
DBBKMARK cbBookmark2,
const BYTE *pBookmark2,
DBCOMPARE *pComparison);
HRESULT GetRowsAt (
HWATCHREGION hReserved1,
HCHAPTER hChapter,
DBBKMARK cbBookmark,
const BYTE *pBookmark,
DBROWOFFSET lRowsOffset,
DBROWCOUNT cRows,
DBCOUNTITEM *pcRowsObtained,
HROW **prghRows);
HRESULT GetRowsByBookmark (
HCHAPTER hChapter,
DBCOUNTITEM cRows,
const DBBKMARK rgcbBookmarks[],
const BYTE *rgpBookmarks[],
HROW rghRows[],
DBROWSTATUS rgRowStatus[]);
HRESULT Hash (
HCHAPTER hChapter,
DBBKMARK cBookmarks,
const DBBKMARK rgcbBookmarks[],
const BYTE *rgpBookmarks[],
DBHASHVALUE rgHashedValues[],
DBROWSTATUS rgBookmarkStatus[]);
};
interface IRowsetNotify {
HRESULT OnFieldChange (
IRowset *pRowset,
HROW hRow,
DBORDINAL cColumns,
DBORDINAL rgColumns[],
DBREASON eReason,
DBEVENTPHASE ePhase,
BOOL fCantDeny);
HRESULT OnRowChange (
IRowset *pRowset,
DBCOUNTITEM cRows,
const HROW rghRows[],
DBREASON eReason,
DBEVENTPHASE ePhase,
BOOL fCantDeny);
HRESULT OnRowsetChange (
IRowset * pRowset,
DBREASON eReason,
DBEVENTPHASE ePhase,
BOOL fCantDeny);
};
interface IRowsetRefresh {
HRESULT GetLastVisibleData (
HROW hRow,
HACCESSOR hAccessor,
void * pData);
HRESULT RefreshVisibleData (
HCHAPTER hChapter,
DBCOUNTITEM cRows,
const HROW rghRows[],
BOOL fOverwrite,
DBCOUNTITEM *pcRowsRefreshed,
HROW **prghRowsRefreshed,
DBROWSTATUS **prgRowStatus);
};
interface IRowsetResynch {
HRESULT GetVisibleData
(HROW hRow,
HACCESSOR hAccessor,
void * pData);
HRESULT ResynchRows (
DBCOUNTITEM cRows,
const HROW rghRows[],
DBCOUNTITEM *pcRowsResynched,
HROW **prghRowsResynched,
DBROWSTATUS **prgRowStatus);
};
interface IRowsetScroll : IRowsetLocate {
HRESULT GetApproximatePosition (
HCHAPTER hChapter,
DBBKMARK cbBookmark,
const BYTE *pBookmark,
DBCOUNTITEM *pulPosition,
DBCOUNTITEM *pcRows);
HRESULT GetRowsAtRatio (
HWATCHREGION hReserved1,
HCHAPTER hChapter,
DBCOUNTITEM ulNumerator,
DBCOUNTITEM ulDenominator,
DBROWCOUNT cRows,
DBCOUNTITEM *pcRowsObtained,
HROW **prghRows);
};
interface IRowsetUpdate : IRowsetChange {
HRESULT GetOriginalData (
HROW hRow,
HACCESSOR hAccessor,
void * pData);
HRESULT GetPendingRows (
HCHAPTER hReserved,
DBPENDINGSTATUS dwRowStatus,
DBCOUNTITEM *pcPendingRows,
HROW **prgPendingRows,
DBPENDINGSTATUS **prgPendingStatus);
HRESULT GetRowStatus(
HCHAPTER hChapter,
DBCOUNTITEM cRows,
const HROW rghRows[],
DBPENDINGSTATUS rgPendingStatus[]);
HRESULT Undo (
HCHAPTER hReserved,
DBCOUNTITEM cRows,
const HROW rghRows[],
DBCOUNTITEM *pcRows,
HROW **prgRows,
DBROWSTATUS **prgRowStatus);
HRESULT Update (
HCHAPTER hReserved,
DBCOUNTITEM cRows,
const HROW rghRows[],
DBCOUNTITEM *pcRows,
HROW **prgRows,
DBROWSTATUS **prgRowStatus);
};
interface IRowsetView {
HRESULT CreateView (
IUnknown * pUnkOuter,
REFIID riid,
IUnknown ** ppView);
HRESULT GetView (
HCHAPTER hChapter,
REFIID riid,
HCHAPTER * phChapterSource,
IUnknown ** ppView);
};
interface IScopedOperations {
HRESULT Copy (
DBCOUNTITEM cRows,
LPCOLESTR rgpwszSourceURLs[ ],
LPCOLESTR rgpwszDestURLs[ ],
DBCOPYFLAGS dwCopyFlags,
IAuthenticate *pAuthenticate,
DBSTATUS rgdwStatus[ ],
LPOLESTR rgpwszNewURLs[ ],
OLECHAR **ppStringsBuffer);
HRESULT Delete (
DBCOUNTITEM cRows,
LPCOLESTR rgpwszURLs[ ],
DBDELETEFLAGS dwDeleteFlags,
DBSTATUS rgdwStatus[ ]);
HRESULT Move (
DBCOUNTITEM cRows,
LPCOLESTR rgpwszSourceURLs[ ],
LPCOLESTR rgpwszDestURLs[ ],
DBMOVEFLAGS dwMoveFlags,
IAuthenticate *pAuthenticate,
DBSTATUS rgdwStatus[ ],
LPOLESTR rgpwszNewURLs[ ],
OLECHAR **ppStringsBuffer);
HRESULT OpenRowset (
IUnknown * pUnkOuter,
DBID * pTableID,
DBID * pIndexID,
REFIID riid,
ULONG cPropertySets,
DBPROPSET rgPropertySets[ ],
IUnknown ** ppRowset);
};
interface ISessionProperties {
HRESULT GetProperties (
ULONG cPropertyIDSets,
const DBPROPIDSET rgPropertyIDSets[],
ULONG * pcPropertySets,
DBPROPSET ** prgPropertySets);
HRESULT SetProperties (
ULONG cPropertySets,
DBPROPSET rgPropertySets[]);
};
interface ISequentialStream {
HRESULT Read(
void * pv,
ULONG cb,
ULONG * pcbRead);
HRESULT Write(
void const * pv,
ULONG cb,
ULONG * pcbWritten);
};
interface ISourcesRowset {
HRESULT GetSourcesRowset(
IUnknown *pUnkOuter,
REFIID riid,
ULONG cPropertySets,
DBPROPSET rgPropertySets[],
IUnknown ** ppSourcesRowset);
};
interface ISQLErrorInfo {
HRESULT GetSQLInfo (
BSTR * pbstrSQLState,
LONG * plNativeError);
};
interface ISupportErrorInfo {
HRESULT InterfaceSupportsErrorInfo (
REFIID riid);
};
interface ITableCreation {
HRESULT GetTableDefinition(
DBID *pTableID,
DBORDINAL *pcColumnDescs,
DBCOLUMNDESC *prgColumnDescs[],
ULONG *pcPropertySets,
DBPROPSET *prgPropertySets[],
ULONG *pcConstraintDescs,
DBCONSTRAINTDESC *prgConstraintDescs[],
OLECHAR **ppwszStringBuffer);
};
interface ITableDefinition {
HRESULT AddColumn(
DBID * pTableID,
DBCOLUMNDESC * pColumnDesc,
DBID ** ppColumnID);
HRESULT CreateTable(
IUnknown *pUnkOuter,
DBID *pTableID,
DBORDINAL cColumnDescs,
const DBCOLUMNDESC rgColumnDescs[],
REFIID riid,
ULONG cPropertySets,
DBPROPSET rgPropertySets[],
DBID **ppTableID,
IUnknown **ppRowset);
HRESULT DropColumn(
DBID * pTableID,
DBID * pColumnID);
HRESULT DropTable (
DBID * pTableID);
};
interface ITableDefinitionWithConstraints {
HRESULT AddConstraint(
DBID * pTableID,
DBCONSTRAINTDESC * pConstraintDesc);
HRESULT CreateTableWithConstraints(
IUnknown *pUnkOuter,
DBID *pTableID,
DBORDINAL cColumnDescs,
const DBCOLUMNDESC rgColumnDescs[],
ULONG cConstraintDescs,
DBCONSTRAINTDESC rgConstraintDescs[],
REFIID riid,
ULONG cPropertySets,
DBPROPSET rgPropertySets[],
DBID **ppTableID,
IUnknown **ppRowset);
HRESULT DropConstraint(
DBID * pTableID,
DBID * pConstraintID);
};
interface ITransaction {
HRESULT Abort(
BOID * pboidReason,
BOOL fRetaining,
BOOL fAsync);
HRESULT Commit(
BOOL fRetaining,
DWORD grfTC,
DWORD grfRM);
HRESULT GetTransactionInfo(
XACTTRANSINFO * pInfo);
};
interface ITransactionJoin {
HRESULT GetOptionsObject (
ITransactionOptions ** ppOptions);
HRESULT JoinTransaction (
IUnknown * punkTransactionCoord,
ISOLEVEL isoLevel,
ULONG isoFlags,
ITransactionOptions * pOtherOptions);
};
interface ITransactionLocal : ITransaction {
HRESULT GetOptionsObject (
ITransactionOptions ** ppOptions);
HRESULT StartTransaction (
ISOLEVEL isoLevel,
ULONG isoFlags,
ITransactionOptions * pOtherOptions,
ULONG * pulTransactionLevel);
};
interface ITransactionObject {
HRESULT GetTransactionObject (
ULONG ulTransactionLevel,
ITransaction ** ppTransactionObject);
};
interface ITransactionOptions {
HRESULT GetOptions(
XACTOPT * pOptions);
HRESULT SetOptions(
XACTOPT * pOptions);
};
interface IViewChapter {
HRESULT GetSpecification (
REFIID riid,
IUnknown ** ppRowset);
HRESULT OpenViewChapter (
HCHAPTER hSource,
HCHAPTER * phViewChapter);
};
interface IViewFilter {
HRESULT GetFilter (
HACCESSOR hAccessor,
DBCOUNTITEM *pcRows,
DBCOMPAREOP *pCompareOps[],
void *pCriteriaData);
HRESULT GetFilterBindings(
DBCOUNTITEM *pcBindings,
DBBINDING **prgBindings);
HRESULT SetFilter (
HACCESSOR hAccessor,
DBCOUNTITEM cRows,
DBCOMPAREOP CompareOps[],
void *pCriteriaData);
};
interface IViewRowset {
HRESULT GetSpecification (
REFIID riid,
IUnknown ** ppObject);
HRESULT OpenViewRowset (
IUnknown * pUnkOuter,
REFIID riid,
IUnknown ** ppRowset);
};
interface IViewSort {
HRESULT GetSortOrder (
DBORDINAL *pcColumns,
DBORDINAL *prgColumns[],
DBSORT *prgOrders[]);
HRESULT SetSortOrder (
DBORDINAL cColumns,
const DBORDINAL rgColumns[],
const DBSORT rgOrders[]);
};
This topic is a part of: