windows-nt/Source/XPSP1/NT/com/ole32/idl/public/remact.idl
2020-09-26 16:20:57 +08:00

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
);
}