//----------------------------------------------------------------------------- // File: tabdef.idl // // Copyright: Copyright (c) Microsoft Corporation // // Contents: OLE DB interface definition // // Comments: // //----------------------------------------------------------------------------- #include "idlmulti.h" // REMOTED_INTERFACE(0c733a86-2a1c-11ce-ade5-00aa0044773d) interface ITableDefinition : IUnknown { #ifdef _WIN64 //Use casting by ULONG in attribute size_is under 64-bit environment. [local] HRESULT CreateTable( [in, annotation("__in_opt")] IUnknown * pUnkOuter, [in, annotation("__in_opt")] DBID * pTableID, [in] DBORDINAL cColumnDescs, [in, size_is((ULONG)cColumnDescs), annotation("__in_ecount_opt(cColumnDescs)")] const DBCOLUMNDESC rgColumnDescs[], [in, annotation("__in")] REFIID riid, [in] ULONG cPropertySets, [in, out, size_is(cPropertySets), annotation("__inout_ecount_opt(cPropertySets)")] DBPROPSET rgPropertySets[], [out, annotation("__deref_opt_out")] DBID ** ppTableID, [out, iid_is(riid), annotation("__deref_opt_out")] IUnknown ** ppRowset ); #ifndef NO_REMOTE [call_as(CreateTable)] HRESULT RemoteCreateTable( [in] IUnknown * pUnkOuter, [in, unique] DBID * pTableID, [in] DBORDINAL cColumnDescs, [in, size_is((ULONG)cColumnDescs)] const DBCOLUMNDESC * rgColumnDescs, [in] REFIID riid, [in] ULONG cPropertySets, [in, unique, size_is(cPropertySets)] DBPROPSET * rgPropertySets, [in, out, unique] DBID ** ppTableID, [in, out, unique, iid_is(riid)] IUnknown ** ppRowset, [in] ULONG cTotalProps, [out, size_is(cTotalProps)] DBPROPSTATUS * rgPropStatus, [out] BOOL * pfTableCreated, [out] IErrorInfo ** ppErrorInfoRem ); #endif #else //No casting by ULONG for 32-bit. [local] HRESULT CreateTable( [in, annotation("__in_opt")] IUnknown * pUnkOuter, [in, annotation("__in_opt")] DBID * pTableID, [in] DBORDINAL cColumnDescs, [in, size_is(cColumnDescs), annotation("__in_ecount_opt(cColumnDescs)")] const DBCOLUMNDESC rgColumnDescs[], [in, annotation("__in")] REFIID riid, [in] ULONG cPropertySets, [in, out, size_is(cPropertySets), annotation("__inout_ecount_opt(cPropertySets)")] DBPROPSET rgPropertySets[], [out, annotation("__deref_opt_out")] DBID ** ppTableID, [out, iid_is(riid), annotation("__deref_opt_out")] IUnknown ** ppRowset ); #ifndef NO_REMOTE [call_as(CreateTable)] HRESULT RemoteCreateTable( [in] IUnknown * pUnkOuter, [in, unique] DBID * pTableID, [in] DBORDINAL cColumnDescs, [in, size_is(cColumnDescs)] const DBCOLUMNDESC * rgColumnDescs, [in] REFIID riid, [in] ULONG cPropertySets, [in, unique, size_is(cPropertySets)] DBPROPSET * rgPropertySets, [in, out, unique] DBID ** ppTableID, [in, out, unique, iid_is(riid)] IUnknown ** ppRowset, [in] ULONG cTotalProps, [out, size_is(cTotalProps)] DBPROPSTATUS * rgPropStatus, [out] BOOL * pfTableCreated, [out] IErrorInfo ** ppErrorInfoRem ); #endif #endif [local] HRESULT DropTable( [in, unique, annotation("__in")] DBID * pTableID ); [call_as(DropTable)] HRESULT RemoteDropTable( [in, unique] DBID * pTableID, [out] IErrorInfo ** ppErrorInfoRem ); [local] HRESULT AddColumn( [in, annotation("__in")] DBID * pTableID, [in, out, annotation("__in")] DBCOLUMNDESC * pColumnDesc, [out, annotation("__deref_opt_out")] DBID ** ppColumnID ); [call_as(AddColumn)] HRESULT RemoteAddColumn( [in] DBID * pTableID, [in] DBCOLUMNDESC * pColumnDesc, [in, out, unique] DBID ** ppColumnID, [in] ULONG cTotalProps, [out, size_is(cTotalProps)] DBPROPSTATUS * rgPropStatus, [out] IErrorInfo ** ppErrorInfoRem ); [local] HRESULT DropColumn( [in, unique, annotation("__in")] DBID * pTableID, [in, unique, annotation("__in")] DBID * pColumnID ); [call_as(DropColumn)] HRESULT RemoteDropColumn( [in, unique] DBID * pTableID, [in, unique] DBID * pColumnID, [out] IErrorInfo ** ppErrorInfoRem ); }