xpmgr/BuildTools/Include/tabdef.idl

141 lines
3.9 KiB
Plaintext

//-----------------------------------------------------------------------------
// 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
);
}