106 lines
4.5 KiB
Plaintext
106 lines
4.5 KiB
Plaintext
|
//+-------------------------------------------------------------------------
|
||
|
//
|
||
|
// 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;
|
||
|
|
||
|
//
|
||
|
// 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] DWORD Interfaces,
|
||
|
[in,unique,size_is(Interfaces)] IID *pIIDs,
|
||
|
[in] 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
|
||
|
);
|
||
|
}
|