xpmgr/BuildTools/Include/scpops.idl

238 lines
7.4 KiB
Plaintext

//-----------------------------------------------------------------------------
// File: scpops.idl
//
// Copyright: Copyright (c) Microsoft Corporation
//
// Contents: OLE DB interface definition
//
// Comments:
//
//-----------------------------------------------------------------------------
#include "idlmulti.h"
REMOTED_INTERFACE(0c733ab0-2a1c-11ce-ade5-00aa0044773d)
interface IScopedOperations : IBindResource
{
typedef DWORD DBCOPYFLAGS;
enum DBCOPYFLAGSENUM {
DBCOPY_ASYNC = 0x00000100,
DBCOPY_REPLACE_EXISTING = 0x00000200,
DBCOPY_ALLOW_EMULATION = 0x00000400,
DBCOPY_NON_RECURSIVE = 0x00000800,
DBCOPY_ATOMIC = 0x00001000
};
typedef DWORD DBMOVEFLAGS;
enum DBMOVEFLAGSENUM {
DBMOVE_REPLACE_EXISTING = 0x00000001,
DBMOVE_ASYNC = 0x00000100,
DBMOVE_DONT_UPDATE_LINKS = 0x00000200,
DBMOVE_ALLOW_EMULATION = 0x00000400,
DBMOVE_ATOMIC = 0x00001000
};
typedef DWORD DBDELETEFLAGS;
enum DBDELETEFLAGSENUM {
DBDELETE_ASYNC = 0x00000100,
DBDELETE_ATOMIC = 0x00001000
};
#ifdef _WIN64 //Use casting by ULONG in attribute size_is under 64-bit environment.
[local]
HRESULT Copy(
[in] DBCOUNTITEM cRows,
[in, size_is((ULONG)cRows), annotation("__in_ecount_opt(cRows)")] LPCOLESTR rgpwszSourceURLs[],
[in, size_is((ULONG)cRows), annotation("__in_ecount(cRows)")] LPCOLESTR rgpwszDestURLs[],
[in] DWORD dwCopyFlags,
[in, unique, annotation("__in")] IAuthenticate* pAuthenticate,
[in, out, size_is((ULONG)cRows), annotation("__out_ecount(cRows)")] DBSTATUS rgdwStatus[],
[out, size_is((ULONG)cRows), annotation("__inout_ecount_opt(cRows)")] LPOLESTR rgpwszNewURLs[],
[out, annotation("__deref_out_z_opt")] OLECHAR **ppStringsBuffer
);
#ifndef NO_REMOTE
[call_as(Copy)]
HRESULT RemoteCopy(
[in] DBCOUNTITEM cRows,
[in, size_is((ULONG)cRows)] LPCOLESTR * rgpwszSourceURLs,
[in, size_is((ULONG)cRows)] LPCOLESTR * rgpwszDestURLs,
[in] DWORD dwCopyFlags,
[in] IAuthenticate * pAuthenticate,
[out, size_is((ULONG)cRows)] DBSTATUS * rgdwStatus,
[out, size_is(,(ULONG)cRows)] DBBYTEOFFSET ** prgulNewURLOffsets,
[in, out] ULONG * pcbStringsBuffer,
[in, out, unique, size_is(,*pcbStringsBuffer)] OLECHAR ** ppStringsBuffer
);
#endif
[local]
HRESULT Move(
[in] DBCOUNTITEM cRows,
[in, size_is((ULONG)cRows), annotation("__in_ecount_opt(cRows)")] LPCOLESTR rgpwszSourceURLs[],
[in, size_is((ULONG)cRows), annotation("__in_ecount(cRows)")] LPCOLESTR rgpwszDestURLs[],
[in]DWORD dwMoveFlags,
[in, unique, annotation("__in")] IAuthenticate* pAuthenticate,
[in, out, size_is((ULONG)cRows), annotation("__out_ecount(cRows)")] DBSTATUS rgdwStatus[],
[out, size_is((ULONG)cRows), annotation("__inout_ecount_opt(cRows)")] LPOLESTR rgpwszNewURLs[],
[out, annotation("__deref_out_z_opt")] OLECHAR **ppStringsBuffer
);
#ifndef NO_REMOTE
[call_as(Move)]
HRESULT RemoteMove(
[in] DBCOUNTITEM cRows,
[in, size_is((ULONG)cRows)] LPCOLESTR * rgpwszSourceURLs,
[in, size_is((ULONG)cRows)] LPCOLESTR * rgpwszDestURLs,
[in] DWORD dwMoveFlags,
[in] IAuthenticate * pAuthenticate,
[out, size_is((ULONG)cRows)] DBSTATUS * rgdwStatus,
[out, size_is(,(ULONG)cRows)] DBBYTEOFFSET ** prgulNewURLOffsets,
[in, out] ULONG * pcbStringsBuffer,
[in, out, unique, size_is(,*pcbStringsBuffer)] OLECHAR ** ppStringsBuffer
);
#endif
[local]
HRESULT Delete (
[in] DBCOUNTITEM cRows,
[in, size_is((ULONG)cRows), annotation("__in_ecount(cRows)")] LPCOLESTR rgpwszURLs[],
[in] DWORD dwDeleteFlags,
[in, out, size_is((ULONG)cRows), annotation("__out_ecount(cRows)")] DBSTATUS rgdwStatus[]
);
#ifndef NO_REMOTE
[call_as(Delete)]
HRESULT RemoteDelete(
[in] DBCOUNTITEM cRows,
[in, size_is((ULONG)cRows)] LPCOLESTR * rgpwszURLs,
[in] DWORD dwDeleteFlags,
[out, size_is((ULONG)cRows)] DBSTATUS * rgdwStatus
);
#endif
#else //No casting by ULONG for 32-bit.
[local]
HRESULT Copy(
[in] DBCOUNTITEM cRows,
[in, size_is(cRows), annotation("__in_ecount_opt(cRows)")] LPCOLESTR rgpwszSourceURLs[],
[in, size_is(cRows), annotation("__in_ecount(cRows)")] LPCOLESTR rgpwszDestURLs[],
[in] DWORD dwCopyFlags,
[in, unique, annotation("__in_opt")] IAuthenticate* pAuthenticate,
[in, out, size_is(cRows), annotation("__out_ecount(cRows)")] DBSTATUS rgdwStatus[],
[out, size_is(cRows), annotation("__inout_ecount_opt(cRows)")] LPOLESTR rgpwszNewURLs[],
[out, annotation("__deref_out_z_opt")] OLECHAR **ppStringsBuffer
);
#ifndef NO_REMOTE
[call_as(Copy)]
HRESULT RemoteCopy(
[in] DBCOUNTITEM cRows,
[in, size_is(cRows)] LPCOLESTR * rgpwszSourceURLs,
[in, size_is(cRows)] LPCOLESTR * rgpwszDestURLs,
[in] DWORD dwCopyFlags,
[in] IAuthenticate * pAuthenticate,
[out, size_is(cRows)] DBSTATUS * rgdwStatus,
[out, size_is(,cRows)] DBBYTEOFFSET ** prgulNewURLOffsets,
[in, out] ULONG * pcbStringsBuffer,
[in, out, unique, size_is(,*pcbStringsBuffer)] OLECHAR ** ppStringsBuffer
);
#endif
[local]
HRESULT Move(
[in] DBCOUNTITEM cRows,
[in, size_is(cRows), annotation("__in_ecount_opt(cRows)")] LPCOLESTR rgpwszSourceURLs[],
[in, size_is(cRows), annotation("__in_ecount(cRows)")] LPCOLESTR rgpwszDestURLs[],
[in] DWORD dwMoveFlags,
[in, unique, annotation("__in_opt")] IAuthenticate* pAuthenticate,
[in, out, size_is(cRows), annotation("__out_ecount(cRows)")] DBSTATUS rgdwStatus[],
[out, size_is(cRows), annotation("__inout_ecount_opt(cRows)")] LPOLESTR rgpwszNewURLs[],
[out, annotation("__deref_out_z_opt")] OLECHAR **ppStringsBuffer
);
#ifndef NO_REMOTE
[call_as(Move)]
HRESULT RemoteMove(
[in] DBCOUNTITEM cRows,
[in, size_is(cRows)] LPCOLESTR * rgpwszSourceURLs,
[in, size_is(cRows)] LPCOLESTR * rgpwszDestURLs,
[in] DWORD dwMoveFlags,
[in] IAuthenticate * pAuthenticate,
[out, size_is(cRows)] DBSTATUS * rgdwStatus,
[out, size_is(,cRows)] DBBYTEOFFSET ** prgulNewURLOffsets,
[in, out] ULONG * pcbStringsBuffer,
[in, out, unique, size_is(,*pcbStringsBuffer)] OLECHAR ** ppStringsBuffer
);
#endif
[local]
HRESULT Delete (
[in] DBCOUNTITEM cRows,
[in, size_is(cRows), annotation("__in_ecount(cRows)")] LPCOLESTR rgpwszURLs[],
[in] DWORD dwDeleteFlags,
[in, out, size_is(cRows), annotation("__out_ecount(cRows)")] DBSTATUS rgdwStatus[]
);
#ifndef NO_REMOTE
[call_as(Delete)]
HRESULT RemoteDelete(
[in] DBCOUNTITEM cRows,
[in, size_is(cRows)] LPCOLESTR * rgpwszURLs,
[in] DWORD dwDeleteFlags,
[out, size_is(cRows)] DBSTATUS * rgdwStatus
);
#endif
#endif
[local]
HRESULT OpenRowset(
[in, annotation("__in_opt")] IUnknown *pUnkOuter,
[in, unique, annotation("__in_opt")] DBID *pTableID,
[in, unique, annotation("__in_opt")] DBID *pIndexID,
[in] REFIID riid,
[in] ULONG cPropertySets,
[in, out, size_is(cPropertySets), annotation("__inout_ecount(cPropertySets)")] DBPROPSET rgPropertySets[],
[out, iid_is(riid), annotation("__deref_opt_inout")] IUnknown **ppRowset
);
#ifndef NO_REMOTE
[call_as(OpenRowset)]
HRESULT RemoteOpenRowset(
[in] IUnknown * pUnkOuter,
[in, unique] DBID * pTableID,
[in, unique] DBID * pIndexID,
[in] REFIID riid,
[in] ULONG cPropertySets,
[in, unique, size_is(cPropertySets)] DBPROPSET * rgPropertySets,
[in, out, unique, iid_is(riid)] IUnknown ** ppRowset,
[in] ULONG cTotalProps,
[out, size_is(cTotalProps)] DBPROPSTATUS * rgPropStatus
);
#endif
};