mirror of https://github.com/UMSKT/xpmgr.git
238 lines
7.4 KiB
Plaintext
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
|
|
|
|
};
|