xpmgr/BuildTools/Include/clinf2.idl

78 lines
2.9 KiB
Plaintext

//-----------------------------------------------------------------------------
// File: clinf2.idl
//
// Copyright: Copyright (c) Microsoft Corporation
//
// Contents: OLE DB interface definition
//
// Comments:
//
//-----------------------------------------------------------------------------
#include "idlmulti.h"
REMOTED_INTERFACE(0c733ab8-2a1c-11ce-ade5-00aa0044773d)
interface IColumnsInfo2 : IColumnsInfo
{
#ifdef _WIN64 //Use casting by ULONG in attribute size_is under 64-bit environment.
[local]
HRESULT GetRestrictedColumnInfo(
[in] DBORDINAL cColumnIDMasks,
[in, size_is((ULONG)cColumnIDMasks), annotation("__in_ecount(cColumnIDMasks)")] const DBID rgColumnIDMasks[],
[in] DWORD dwFlags,
[in, out, annotation("__out")] DBORDINAL * pcColumns,
[out, size_is(,(ULONG)*pcColumns), annotation("__deref_out_ecount(*pcColumns)")] DBID ** prgColumnIDs,
[out, size_is(,(ULONG)*pcColumns), annotation("__deref_out_ecount(*pcColumns)")] DBCOLUMNINFO ** prgColumnInfo,
[out, annotation("__deref_opt_out_z")] OLECHAR ** ppStringsBuffer
);
#ifndef NO_REMOTE
[call_as(GetRestrictedColumnInfo)]
HRESULT RemoteGetRestrictedColumnInfo(
[in] DBORDINAL cColumnIDMasks,
[in, unique, size_is((ULONG)cColumnIDMasks)] const DBID * rgColumnIDMasks,
[in] DWORD dwFlags,
[in, out] DBORDINAL * pcColumns,
[in, out, unique, size_is(,(ULONG)*pcColumns)] DBID ** prgColumnIDs,
[in, out, unique, size_is(,(ULONG)*pcColumns)] DBCOLUMNINFO ** prgColumnInfo,
[out, size_is(,(ULONG)*pcColumns)] DBBYTEOFFSET ** prgNameOffsets,
[out, size_is(,(ULONG)*pcColumns)] DBBYTEOFFSET ** prgcolumnidOffsets,
[in, out] DBLENGTH * pcbStringsBuffer,
[in, out, unique, size_is(,(ULONG)*pcbStringsBuffer)] OLECHAR ** ppStringsBuffer
);
#endif
#else //No casting by ULONG for 32-bit.
[local]
HRESULT GetRestrictedColumnInfo(
[in] DBORDINAL cColumnIDMasks,
[in, size_is(cColumnIDMasks), annotation("__in_ecount(cColumnIDMasks)")] const DBID rgColumnIDMasks[],
[in] DWORD dwFlags,
[in, out, annotation("__out")] DBORDINAL * pcColumns,
[out, size_is(,*pcColumns), annotation("__deref_out_ecount(*pcColumns)")] DBID ** prgColumnIDs,
[out, size_is(,*pcColumns) , annotation("__deref_out_ecount(*pcColumns)")] DBCOLUMNINFO ** prgColumnInfo,
[out, annotation("__deref_opt_out_z")] OLECHAR ** ppStringsBuffer
);
#ifndef NO_REMOTE
[call_as(GetRestrictedColumnInfo)]
HRESULT RemoteGetRestrictedColumnInfo(
[in] DBORDINAL cColumnIDMasks,
[in, unique, size_is(cColumnIDMasks)] const DBID * rgColumnIDMasks,
[in] DWORD dwFlags,
[in, out] DBORDINAL * pcColumns,
[in, out, unique, size_is(,*pcColumns)] DBID ** prgColumnIDs,
[in, out, unique, size_is(,*pcColumns)] DBCOLUMNINFO ** prgColumnInfo,
[out, size_is(,*pcColumns)] DBBYTEOFFSET ** prgNameOffsets,
[out, size_is(,*pcColumns)] DBBYTEOFFSET ** prgcolumnidOffsets,
[in, out] DBLENGTH * pcbStringsBuffer,
[in, out, unique, size_is(,*pcbStringsBuffer)] OLECHAR ** ppStringsBuffer
);
#endif
#endif
}