NT4/private/ole32/com/idl/scm.idl

171 lines
4.8 KiB
Plaintext
Raw Normal View History

2001-01-01 00:00:00 +01:00
//+-------------------------------------------------------------------------
//
// 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(5C0EB535-BF9F-101A-8818-02608C4D2359),
version(0.2),
pointer_default(unique) ]
interface ISCM
{
import "iface.idl";
#pragma midl_echo(" ")
#pragma midl_echo("//-----------------")
#pragma midl_echo("// SUCCESS HRESULTS")
#pragma midl_echo("//-----------------")
#pragma midl_echo("#define SCM_S_SUCCESS 0")
#pragma midl_echo("#define SCM_S_HANDLER 1")
#pragma midl_echo("#define SCM_S_INPROCSERVER 2")
#pragma midl_echo("#define SCM_S_HANDLER16 3")
#pragma midl_echo("#define SCM_S_INPROCSERVER16 4")
#pragma midl_echo(" ")
#pragma midl_echo(" ")
#pragma midl_echo("//---------------------------------")
#pragma midl_echo("// Internal DLL Thread Model Values")
#pragma midl_echo("//---------------------------------")
#pragma midl_echo("#define APT_THREADED 0")
#pragma midl_echo("#define FREE_THREADED 1")
#pragma midl_echo("#define SINGLE_THREADED 2")
#pragma midl_echo("#define BOTH_THREADED 3")
#pragma midl_echo("#define GOT_FROM_ROT 0x80000000")
#pragma midl_echo(" ")
#pragma midl_echo(" ")
#pragma midl_echo("//-------------------------------------------------")
#pragma midl_echo("// Internal CLSCTX used for loading Proxy/Stub DLLs")
#pragma midl_echo("//-------------------------------------------------")
#pragma midl_echo("#define CLSCTX_PS_DLL 0x80000000")
#pragma midl_echo(" ")
typedef struct _RegOutputEnt
{
DWORD dwReg;
DWORD dwAtStorage;
} RegOutputEnt;
typedef struct _RegOutput
{
DWORD dwSize;
[size_is(dwSize)]
RegOutputEnt regoutent[];
} RegOutput;
typedef struct _RegInputEntry
{
CLSID clsid;
[ref,string] WCHAR* pwszEndPoint;
DWORD dwFlags;
} RegInputEntry;
typedef struct _RegInput
{
DWORD dwSize;
[size_is(dwSize)]
RegInputEntry rginent[];
} RegInput;
typedef struct _RevokeEntry
{
CLSID clsid;
DWORD dwReg;
} RevokeEntry;
typedef struct _RevokeClasses
{
DWORD dwSize;
[size_is(dwSize)]
RevokeEntry revent[];
} RevokeClasses;
#ifdef CAIROLE_DISTRIBUTED
HRESULT PingSCM(
[in] handle_t hRpc,
[out] error_status_t *prpcstat);
#endif
HRESULT StartObjectService(
[in] handle_t hRpc,
[in, string, unique] WCHAR * lpDesktop,
[in] const GUID *guidThreadId,
[in] const GUID *rclsid,
[in] DWORD dwCtrl,
[in, string, unique] WCHAR *pwszServer,
[out] InterfaceData **ppIFDClassObj,
[in, out] DWORD *pdwDllServerType,
[out, string] WCHAR **ppwszDllToLoad,
[out] error_status_t *prpcstat);
HRESULT SvcActivateObject(
[in] handle_t hRpc,
[in, string, unique] WCHAR * lpDesktop,
[in, string, unique] WCHAR *pwszProtseq,
[in] const GUID *guidThreadId,
[in] const GUID *rclsid,
[in] DWORD dwOptions,
[in] DWORD grfMode,
[in] DWORD dwHash,
[in, string, unique] WCHAR *pwszPath,
[in, unique] InterfaceData *pIFDstg,
[out] InterfaceData **ppIFDunk,
[in, out] DWORD *pdwDllServerType,
[out, string] WCHAR **pwszDllPath,
[in, string, unique] WCHAR *pwszServerAddress,
[in] DWORD dwTIDCaller,
[in, out] DWORD *pdwTIDCallee,
[out] error_status_t *prpcstat);
HRESULT SvcCreateActivateObject(
[in] handle_t hRpc,
[in, string, unique] WCHAR * lpDesktop,
[in, string, unique] WCHAR *pwszProtseq,
[in] const GUID *guidThreadId,
[in] const GUID *rclsid,
[in] DWORD dwOptions,
[in] DWORD dwMode,
[in, string, unique] WCHAR *pwszPath,
[in, unique] InterfaceData *pIFDstg,
[in, string, unique] WCHAR *pwszNewName,
[out] InterfaceData **ppIFDunk,
[in, out] DWORD *pdwDllServerType,
[out, string] WCHAR **pwszDllPath,
[in, string, unique] WCHAR *pwszServerAddress,
[in] DWORD dwTIDCaller,
[in, out] DWORD *pdwTIDCallee,
[out] error_status_t *prpcstat);
HRESULT ObjectServerStarted(
[in] handle_t hRpc,
[in, string, unique] WCHAR * lpDesktop,
[in] RegInput *pregin,
[out] RegOutput **ppregout,
[out] error_status_t *prpcstat);
void StopServer(
[in] handle_t hRpc,
[in] RevokeClasses *prevcls,
[out] error_status_t *prpcstat);
// This allows debug information to be printed out
DWORD ScmSetInfoLevel(
[in] handle_t hRpc,
[in] DWORD dwNewFlags,
[out] error_status_t *prpcstat);
HRESULT UpdateShrdTbls(
[in] handle_t hRpc,
[out] error_status_t *prpcstat);
}