Oct 27, 2000
Registering Custom Interfaces
When the object exposes the custom interfaces via standard marshalling, the proxy\stub DLL is required for marshalling data across the thread\processes\computer boundaries.
The interfaces are specified in an IDL file that could be created manually or, by example by through MS VC++ ATL COM AppWizard. The MIDL compiler processes the IDL file and generates the number of files including the dlldata.c and Project_p.c files. By compiling these files with the defined REGISTER_PROXY_DLL compiler switch, the default registration code is added to the proxy\stub DLL. The HKLM\Software\Classes\Intrface\IID\ProxyStubCLSID32 subkey, plus the value of the CLSID for the default name for each interface will be added during the registration of this DLL. The default registration code uses the GUID of the first interface encountered in the IDL file as the default CLSID.
Use of the default CLSID is not always convenient, especially when new interfaces are added during the development of the DLL and the DLL is registering in the end of each its build.
You can use the PROXY_CLSID_IS=<explicit value of GUID> compiler switch to specify your own CLSID. To obtain the GUID, run the GuidGen.exe utility and select Option3.