xpmgr/BuildTools/Include/inddef.idl

103 lines
2.8 KiB
Plaintext

//-----------------------------------------------------------------------------
// File: inddef.idl
//
// Copyright: Copyright (c) Microsoft Corporation
//
// Contents: OLE DB interface definition
//
// Comments:
//
//-----------------------------------------------------------------------------
#include "idlmulti.h"
//
REMOTED_INTERFACE(0c733a68-2a1c-11ce-ade5-00aa0044773d)
interface IIndexDefinition : IUnknown {
#ifdef _WIN64 //Use casting by ULONG in attribute size_is under 64-bit environment.
[local]
HRESULT CreateIndex(
[in, annotation("__in")] DBID * pTableID,
[in, annotation("__in_opt")] DBID * pIndexID,
[in] DBORDINAL cIndexColumnDescs,
[in, size_is((ULONG)cIndexColumnDescs), annotation("__in_ecount(cIndexColumnDescs)")]
const DBINDEXCOLUMNDESC rgIndexColumnDescs[],
[in] ULONG cPropertySets,
[in, out, size_is(cPropertySets), annotation("__inout_ecount(cPropertySets)")]
DBPROPSET rgPropertySets[],
[out, annotation("__deref_opt_out")] DBID ** ppIndexID
);
#ifndef NO_REMOTE
[call_as(CreateIndex)]
HRESULT RemoteCreateIndex(
[in] DBID * pTableID,
[in, unique] DBID * pIndexID,
[in] DBORDINAL cIndexColumnDescs,
[in, size_is((ULONG)cIndexColumnDescs)] const DBINDEXCOLUMNDESC *rgIndexColumnDescs,
[in] ULONG cPropertySets,
[in, unique, size_is(cPropertySets)] DBPROPSET *rgPropertySets,
[in, out, unique] DBID ** ppIndexID,
[in] ULONG cTotalProps,
[out, size_is(cTotalProps)] DBPROPSTATUS *rgPropStatus,
[out] IErrorInfo ** ppErrorInfoRem
);
#endif
#else //No casting by ULONG for 32-bit.
[local]
HRESULT CreateIndex(
[in, annotation("__in")] DBID * pTableID,
[in, annotation("__in_opt")] DBID * pIndexID,
[in] DBORDINAL cIndexColumnDescs,
[in, size_is(cIndexColumnDescs), annotation("__in_ecount(cIndexColumnDescs)")]
const DBINDEXCOLUMNDESC rgIndexColumnDescs[],
[in] ULONG cPropertySets,
[in, out, size_is(cPropertySets), annotation("__inout_ecount(cPropertySets)")]
DBPROPSET rgPropertySets[],
[out, annotation("__deref_opt_out_opt")] DBID ** ppIndexID
);
#ifndef NO_REMOTE
[call_as(CreateIndex)]
HRESULT RemoteCreateIndex(
[in] DBID * pTableID,
[in, unique] DBID * pIndexID,
[in] DBORDINAL cIndexColumnDescs,
[in, size_is(cIndexColumnDescs)] const DBINDEXCOLUMNDESC *rgIndexColumnDescs,
[in] ULONG cPropertySets,
[in, unique, size_is(cPropertySets)] DBPROPSET *rgPropertySets,
[in, out, unique] DBID ** ppIndexID,
[in] ULONG cTotalProps,
[out, size_is(cTotalProps)] DBPROPSTATUS *rgPropStatus,
[out] IErrorInfo ** ppErrorInfoRem
);
#endif
#endif
[local]
HRESULT DropIndex(
[in, unique, annotation("__in")] DBID * pTableID,
[in, unique, annotation("__in_opt")] DBID * pIndexID
);
[call_as(DropIndex)]
HRESULT RemoteDropIndex(
[in, unique] DBID * pTableID,
[in, unique] DBID * pIndexID,
[out] IErrorInfo ** ppErrorInfoRem
);
}