Proxy/Stub issue
 
Hello everyone,
I am learning how to write a local out-of-process server and made a runnable 
program (including client, proxy DLL and server EXE). It works fine and I am 
inerested to learn how they are binded together internally. I have posted the 
registration items for EXE server, proxy DLL and interface as below. Here is 
my understanding of how a client will find the EXE server from component ID 
and interface. Please review and correct me if I am wrong.
1. Client issue request through CoCreateInstance with interface ID IX and 
component ID Component1;
2. IX maps to interface registration item and then find the related 
proxy/stub item in registry,
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Interface\{32BB8323-B41B-11CF-A6BB-0080C7B2D682}\ProxyStubClsid32]
@="{32BB8323-B41B-11CF-A6BB-0080C7B2D682}"
3. In the proxy/stub item  in registry, related physical DLL file will be 
found and loaded into client's process, here is the related item,
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{32BB8323-B41B-11CF-A6BB-0080C7B2D682}\InProcServer32]
@="D:\\Visual Studio 2008\\Projects\\test_exeserver1\\Debug\\test_proxy.dll"
"ThreadingModel"="Both"
4. For the requested component name, all the registry will be searched to 
find "Component1", until the following posted EXE Server item is found and 
then located (started) by its physical location
[HKEY_CLASSES_ROOT\CLSID\{0C092C29-882C-11CF-A6BB-0080C7B2D682}\LocalServer32]
@="D:\\Visual Studio 
2008\\Projects\\test_exeserver1\\Debug\\test_exeserver1.exe"
My understanding correct? Do I miss any information?
--------------------
EXE Server
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\CLSID\{0C092C29-882C-11CF-A6BB-0080C7B2D682}]
@="Inside COM, Chapter 10 Example, Component 1"
[HKEY_CLASSES_ROOT\CLSID\{0C092C29-882C-11CF-A6BB-0080C7B2D682}\LocalServer32]
@="D:\\Visual Studio 
2008\\Projects\\test_exeserver1\\Debug\\test_exeserver1.exe"
[HKEY_CLASSES_ROOT\CLSID\{0C092C29-882C-11CF-A6BB-0080C7B2D682}\ProgID]
@="InsideCOM.Chap10.Cmpnt1.1"
[HKEY_CLASSES_ROOT\CLSID\{0C092C29-882C-11CF-A6BB-0080C7B2D682}\VersionIndependentProgID]
@="InsideCOM.Chap10.Cmpnt1"
Proxy/Stub DLL
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{32BB8323-B41B-11CF-A6BB-0080C7B2D682}]
@="PSFactoryBuffer"
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{32BB8323-B41B-11CF-A6BB-0080C7B2D682}\InProcServer32]
@="D:\\Visual Studio 2008\\Projects\\test_exeserver1\\Debug\\test_proxy.dll"
"ThreadingModel"="Both"
Interface
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Interface\{32BB8323-B41B-11CF-A6BB-0080C7B2D682}]
@="IX"
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Interface\{32BB8323-B41B-11CF-A6BB-0080C7B2D682}\NumMethods]
@="5"
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Interface\{32BB8323-B41B-11CF-A6BB-0080C7B2D682}\ProxyStubClsid32]
@="{32BB8323-B41B-11CF-A6BB-0080C7B2D682}"
--------------------
thanks in advance,
George