ISurrogate::LoadDllServer

Loads a DLL server into the implementing surrogate. COM calls this method when there is an activation request for the DLL server's class, if the class is registered as DllSurrogate.

HRESULT LoadDllServer(
  REFCLSID  Clsid,  //CLSID of the DLL server to be loaded
);
 

Parameters

Clsid
[in] CLSID of the DLL server to be loaded.

Return Values

This method supports the standard return values E_UNEXPECTED, E_OUTOFMEMORY, and E_INVALIDARG, as well as the following:

S_OK
The DLL was loaded successfully.

Remarks

Upon receiving a load request through ISurrogate::LoadDllServer, the surrogate must perform the following steps :

  1. Create a class factory object that supports IUnknown, IClassFactory, and IMarshal.
  2. Call CoRegisterClassObject to register the new class factory object as the class factory for the requested CLSID.

This class factory's implementation of IClassFactory::CreateInstance will create an instance of the requested CLSID method by calling CoGetClassObject to get the class factory which creates an actual object for the given CLSID.

QuickInfo

  Windows NT: Use version 4.0 SP2 or later.
  Windows: Use Windows 95 or later.
  Windows CE: Unsupported.
  Header: Declared in objidl.h.

See Also

ISurrogate, ISurrogate::FreeSurrogate, DllSurrogate, CoRegisterSurrogate, Writing a Custom Surrogate