Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

152 lines
4.4 KiB

//+-------------------------------------------------------------------------
//
// Microsoft Windows
// Copyright (C) Microsoft Corporation, 1992 - 1993.
//
// File: scm.idl
//
// Contents: Definition of private RPC interface between compobj.dll
// and the service controller.
//
// History: 21-Apr-93 Ricksa Created
// 27-Dec-93 ErikGav TCHAR->WCHAR
//
//--------------------------------------------------------------------------
[ uuid(412f241e-c12a-11ce-abff-0020af6e7a17),
version(0.2),
pointer_default(unique)
]
interface ISCM
{
import "iface.idl";
import "obase.idl";
typedef [context_handle] void *PHPROCESS;
const DWORD MAX_REGENTRIES = 0x10000; // 65536
typedef struct _RegOutput
{
DWORD dwSize;
[size_is(dwSize)]
DWORD RegKeys[];
} RegOutput;
typedef struct _RegInputEntry
{
CLSID clsid;
OXID oxid;
IPID ipid;
DWORD dwFlags;
} RegInputEntry;
typedef struct _RegInput
{
[range(1,MAX_REGENTRIES)]
DWORD dwSize;
[size_is(dwSize)]
RegInputEntry rginent[];
} RegInput;
typedef struct _RevokeEntry
{
CLSID clsid;
DWORD dwReg;
} RevokeEntry;
typedef struct _RevokeClasses
{
[range(1,MAX_REGENTRIES)]
DWORD dwSize;
[size_is(dwSize)]
RevokeEntry revent[];
} RevokeClasses;
//
// Server to SCM methods.
//
HRESULT ServerRegisterClsid(
[in] handle_t hRpc,
[in] PHPROCESS phProcess,
[in] RegInput * pregin,
[out] RegOutput ** ppregout,
[out] error_status_t * prpcstat);
void ServerRevokeClsid(
[in] handle_t hRpc,
[in] PHPROCESS phProcess,
[in] RevokeClasses * prevcls,
[out] error_status_t * prpcstat);
//
// Client/Server to SCM methods.
//
void GetThreadID(
[in] handle_t hRpc,
[in] PHPROCESS phProcess,
[out] DWORD * pThreadID,
[out] error_status_t *prpcstat);
void UpdateActivationSettings(
[in] handle_t hRpc,
[in] PHPROCESS phProcess,
[out] error_status_t *prpcstat);
// Register Drag/Drop
HRESULT RegisterWindowPropInterface(
[in] handle_t hRpc,
[in] PHPROCESS phProcess,
[in] DWORD_PTR hWnd,
[in] STDOBJREF *pStd,
[in] OXID_INFO *pOxidInfo,
[out] DWORD_PTR *pdwCookie,
[out] error_status_t *prpcstat);
HRESULT GetWindowPropInterface(
[in] handle_t hRpc,
[in] PHPROCESS phProcess,
[in] DWORD_PTR hWnd,
[in] DWORD_PTR dwCookie,
[in] BOOL fRevoke,
[out] STDOBJREF *pStd,
[out] OXID_INFO *pOxidInfo,
[out] error_status_t *prpcstat);
// To support the IP cache control functionality
HRESULT EnableDisableDynamicIPTracking(
[in] handle_t hRpc,
[in] PHPROCESS phProcess,
[in] BOOL fEnable,
[out] error_status_t *prpcstat);
HRESULT GetCurrentAddrExclusionList(
[in] handle_t hRpc,
[in] PHPROCESS phProcess,
[out] DWORD* pdwNumStrings,
[out, size_is(,*pdwNumStrings)]LPWSTR** pppszStrings,
[out] error_status_t *prpcstat);
// range setting on third parameter is to mitigate DoS attacks.
HRESULT SetAddrExclusionList(
[in] handle_t hRpc,
[in] PHPROCESS phProcess,
[in, range(0,0x4000)] DWORD dwNumStrings,
[in, unique, size_is(dwNumStrings)]LPWSTR* ppszStrings,
[out] error_status_t *prpcstat);
// To support CoInvalidateRemoteMachineBindings
HRESULT FlushSCMBindings(
[in] handle_t hRpc,
[in] PHPROCESS phProcess,
[in,string] WCHAR* pszMachineName,
[out] error_status_t *prpcstat);
// To help support the new COM+ process recycling feature
HRESULT RetireServer(
[in] handle_t hRpc,
[in] PHPROCESS phProcess,
[in] GUID* pguidProcessIdentifier,
[out] error_status_t *prpcstat);
}