NT4/private/dcomidl/remact.idl
2020-09-30 17:12:29 +02:00

66 lines
2.8 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] const 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
);
}