windows-nt/Source/XPSP1/NT/com/ole32/idl/internal/irot.idl
2020-09-26 16:20:57 +08:00

111 lines
3.1 KiB
Plaintext
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

//+-------------------------------------------------------------------------
//
// Microsoft Windows
// Copyright (C) Microsoft Corporation, 1992 - 1993.
//
// File: irot.idl
//
// Contents: Definition of private RPC interface between compobj.dll
// and the SCM that implements the ROT.
//
// History: 20-Jan-95 Ricksa Created
//
//--------------------------------------------------------------------------
[ uuid(B9E79E60-3D52-11CE-AAA1-00006901293F),
version(0.2),
pointer_default(unique) ]
interface IROT
{
import "iface.idl";
#pragma midl_echo(" ")
#pragma midl_echo("//------------------------")
#pragma midl_echo("// Invalid Key for SCM Reg")
#pragma midl_echo("//------------------------")
#pragma midl_echo("#define SCMREG_INVALID_ENTRY_LOC ((ULONG64)-1)")
#pragma midl_echo(" ")
typedef [context_handle] void *PHPROCESS;
typedef struct _SCMREGKEY
{
ULONG64 dwEntryLoc;
DWORD dwPadding; // Added to optimize memory accesses in Win64
DWORD dwScmId;
} SCMREGKEY;
typedef struct _MnkEqBuf
{
DWORD cdwSize;
[size_is(cdwSize)]
BYTE abEqData[];
} MNKEQBUF;
typedef struct _MkInterfaceList
{
DWORD dwSize;
[size_is(dwSize)]
InterfaceData *apIFDList[];
} MkInterfaceList;
HRESULT IrotRegister(
[in] handle_t hRpc,
[in] PHPROCESS phProcess,
[in,unique,string] WCHAR *pwszWinstaDesktop,
[in] MNKEQBUF *pmkeqbuf,
[in] InterfaceData *pifdObject,
[in] InterfaceData *pifdObjectName,
[in] FILETIME *pfiletime,
[in] DWORD dwProcessId,
[in,unique,string] WCHAR *pwszServerExe,
[out] SCMREGKEY *psrkRegister,
[out] error_status_t *prpcstat);
HRESULT IrotRevoke(
[in] handle_t hRpc,
[in] SCMREGKEY *psrkRegister,
[in] BOOL fServerRevoke,
[out] InterfaceData **pifdObject,
[out] InterfaceData **pifdName,
[out] error_status_t *prpcstat);
HRESULT IrotIsRunning(
[in] handle_t hRpc,
[in] PHPROCESS phProcess,
[in,unique,string] WCHAR *pwszWinstaDesktop,
[in] MNKEQBUF *pmkeqbuf,
[out] error_status_t *prpcstat);
HRESULT IrotGetObject(
[in] handle_t hRpc,
[in] PHPROCESS phProcess,
[in,unique,string] WCHAR *pwszWinstaDesktop,
[in] DWORD dwProcessId,
[in] MNKEQBUF *pmkeqbuf,
[out] SCMREGKEY *psrkRegister,
[out] InterfaceData **pifdObject,
[out] error_status_t *prpcstat);
HRESULT IrotNoteChangeTime(
[in] handle_t hRpc,
[in] SCMREGKEY *psrkRegister,
[in] FILETIME *pfiletime,
[out] error_status_t *prpcstat);
HRESULT IrotGetTimeOfLastChange(
[in] handle_t hRpc,
[in] PHPROCESS phProcess,
[in,unique,string] WCHAR *pwszWinstaDesktop,
[in] MNKEQBUF *pmkeqbuf,
[out] FILETIME *pfiletime,
[out] error_status_t *prpcstat);
HRESULT IrotEnumRunning(
[in] handle_t hRpc,
[in] PHPROCESS phProcess,
[in,unique,string] WCHAR *pwszWinstaDesktop,
[out] MkInterfaceList **ppMkIFList,
[out] error_status_t *prpcstat);
}