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.
107 lines
4.8 KiB
107 lines
4.8 KiB
//+-------------------------------------------------------------------------
|
|
//
|
|
// Microsoft Windows
|
|
// Copyright (C) Microsoft Corporation, 1996.
|
|
//
|
|
// File: remact.idl
|
|
//
|
|
// Synopsis: Activation interface implemented by object exporters.
|
|
//
|
|
// This is the interface that needs to be supported by hosts that support
|
|
// remote connection requests and export objects. Only one instance of this
|
|
// interface can be exported by the host.
|
|
//
|
|
// Note that this interface is tied closely to IObjectExporter because
|
|
// RemoteActivation includes information otherwise retrieved from ResolveOXID.
|
|
//
|
|
//--------------------------------------------------------------------------
|
|
[
|
|
uuid(4d9f4ab8-7d1c-11cf-861e-0020af6e7c57),
|
|
pointer_default(unique)
|
|
]
|
|
|
|
interface IActivation
|
|
{
|
|
import "obase.idl";
|
|
|
|
const unsigned long MODE_GET_CLASS_OBJECT = 0xffffffff;
|
|
const unsigned long MAX_REQUESTED_INTERFACES = 0x8000; // 32768
|
|
const unsigned long MAX_REQUESTED_PROTSEQS = 0x8000; // 32768
|
|
|
|
//
|
|
// RemoteActivation is called to request interface pointer data for one or
|
|
// more interface IIDs from an object server servicing the given CLSID.
|
|
// This could result in the launching of a new instance of the server, or
|
|
// connection to an already running instance.
|
|
//
|
|
// Note that the ResolveOxid parameters are included as well, to prevent
|
|
// the necessity for a second RPC during a remote activation. However,
|
|
// the client receives the OXID as an out param since it is not known
|
|
// before connecting to the server.
|
|
//
|
|
|
|
error_status_t RemoteActivation(
|
|
[in] handle_t hRpc,
|
|
[in] ORPCTHIS *ORPCthis,
|
|
[out] ORPCTHAT *ORPCthat,
|
|
[in] GUID *Clsid,
|
|
[in, string, unique] WCHAR *pwszObjectName,
|
|
[in, unique] MInterfacePointer *pObjectStorage,
|
|
[in] DWORD ClientImpLevel,
|
|
[in] DWORD Mode,
|
|
[in,range(1,MAX_REQUESTED_INTERFACES)]DWORD Interfaces,
|
|
[in,unique,size_is(Interfaces)] IID *pIIDs,
|
|
[in,range(0,MAX_REQUESTED_PROTSEQS)]unsigned short cRequestedProtseqs,
|
|
[in, size_is(cRequestedProtseqs)]
|
|
unsigned short aRequestedProtseqs[],
|
|
[out] OXID *pOxid,
|
|
[out] DUALSTRINGARRAY **ppdsaOxidBindings,
|
|
[out] IPID *pipidRemUnknown,
|
|
[out] DWORD *pAuthnHint,
|
|
[out] COMVERSION *pServerVersion,
|
|
[out] HRESULT *phr,
|
|
[out,size_is(Interfaces)] MInterfacePointer **ppInterfaceData,
|
|
[out,size_is(Interfaces)] HRESULT *pResults
|
|
);
|
|
}
|
|
|
|
|
|
[
|
|
uuid(000001A0-0000-0000-C000-000000000046),
|
|
pointer_default(unique)
|
|
]
|
|
interface IRemoteSCMActivator // <==> ISystemActivator
|
|
{
|
|
HRESULT DummyQueryInterfaceIRemoteSCMActivator(
|
|
[in] handle_t rpc,
|
|
[in] ORPCTHIS *orpcthis,
|
|
[out] ORPCTHAT *orpcthat,
|
|
[in] DWORD dummy );
|
|
HRESULT DummyAddRefIRemoteSCMActivator(
|
|
[in] handle_t rpc,
|
|
[in] ORPCTHIS *orpcthis,
|
|
[out] ORPCTHAT *orpcthat,
|
|
[in] DWORD dummy );
|
|
HRESULT DummyReleaseIRemoteSCMActivator(
|
|
[in] handle_t rpc,
|
|
[in] ORPCTHIS *orpcthis,
|
|
[out] ORPCTHAT *orpcthat,
|
|
[in] DWORD dummy );
|
|
|
|
HRESULT RemoteGetClassObject(
|
|
[in] handle_t rpc,
|
|
[in] ORPCTHIS *orpcthis,
|
|
[out] ORPCTHAT *orpcthat,
|
|
[in,unique] MInterfacePointer *pActProperties,
|
|
[out] MInterfacePointer **ppActProperties
|
|
);
|
|
|
|
HRESULT RemoteCreateInstance(
|
|
[in] handle_t rpc,
|
|
[in] ORPCTHIS *orpcthis,
|
|
[out] ORPCTHAT *orpcthat,
|
|
[in,unique] MInterfacePointer *pUnkOuter,
|
|
[in,unique] MInterfacePointer *pActProperties,
|
|
[out] MInterfacePointer **ppActProperties
|
|
);
|
|
}
|