DllSurrogate

Enables DLL servers to run in a surrogate process. If an empty string is specified, the system-supplied surrogate is used, otherwise the value specifies the path of the surrogate to be used.

Registry Entry

HKEY_LOCAL_MACHINE\SOFTWARE\Classes\APPID\
{AppID_value}\DllSurrogate = surrogate_path

Note  HKEY_CLASSES_ROOT is equivalent to HKEY_LOCAL MACHINE\SOFTWARE\Classes. These keys can be used interchangeably. HKEY_CLASSES_ROOT also provides compatibility with Microsoft® Windows® 3.1 and Windows 95.

Remarks

The DllSurrogate named value specifies that the class is a DLL that is to be activated in a surrogate EXE process, and the surrogate process to be used. The surrogate_path value is of type REG_SZ. To use the system-supplied generic surrogate process, set surrogate_path to an empty string or NULL. To specify another surrogate process, set surrogate_path to the path of the surrogate. As in the specification of the path of an EXE server under the LocalServer32 key, a full path specification is not necessary. The surrogate EXE must be written to properly communicate with the DCOM service as described in Writing a Custom Surrogate.

The DllSurrogate named value must be present for a DLL server to be activated in a surrogate. Activation refers to a call to CoGetClassObject, CoCreateInstance[Ex], CoGetInstanceFromFile, CoGetInstanceFromIStorage, or IMoniker::BindToObject. DLL servers are easy to write using standard development tools like Microsoft® Visual Basic®, Microsoft® Visual J++™, and Microsoft Developer Studio™. Running DLLs in a surrogate process provides the benefits of an executable implementation, including fault isolation, the ability to serve multiple clients simultaneously, and allowing the server to provide services to remote clients in a distributed environment.

See Also

AppID key, ISurrogate, CoRegisterSurrogate, DLL Surrogates, Using the System-Supplied Surrogate, DLL Server Requirements, Registering the DLL Server for Surrogate Activation