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