I am going through a code that has a exe having a COM server(a COM class implemented in ATL). It has a .idl file having all interfaces defined. Now after registration of the COM server, i went through the registry entries and i could find the following. Each interface has a entry with its IID and having ProxyStubClsid32. There is one interface which is implemented by the COM server that i mentioned, which has IID in key field = the value of ProxyStubClsid32 and every other interface interface entry is having this same IID entry in its ProxyStubClsid32 field. Why this is so ??
Next when i try to add a new interface and new COM component implementing this interface to the exe, and do its registration what i could observe in registry was that now IID entry for this new interface and its ProxyStubClsid32 are same. And the newly added IID is present in ProxyStubClsid32 of all other interfaces now.
What gets into ProxyStubClsid32, how is this decided?
I want the previous IID to be present in ProxyStubClsid32 even after adding my new interface. How can i do this ??
Also does explorer.exe caches this registry entry as i am implementing a shell extension which loads the component, i think it is referring to old entries so querying the new interface on that exe doesnt work. Once i restart explorer.exe everything works fine.
Could anyone also comment on this.
Answer to this seems has some hints to my problem : Registry keys for out-of-process COM server
Thanks in advance.