As I understand it, there are three ways to implement marshalling in COM:
- typelib marshalling
- proxy / stub marshalling
- IMarshal implementation using an object
Now, how does the user (user) of the component choose which one to use? Does it solve on its own and use the preferred method, or does it invoke some built-in function, and does this solve the problem for this?
I am currently experiencing the following: my component implements a custom ICustomInterface interface, which is also implemented by another company component. My component does not have typelib and does not implement IMarshal. The system registry contains the key HKCR \ Interface {uuidof (ICustomInterface)} \ ProxyStubClsid32 with the proxy / stub GUID, which can be tracked in the library provided by this other company.
Now, when my consumer component initializes my component, it calls QueryInterface (), which requests IMarshal from my component, and when E_NOINTERFACE returns, it just does nothing. Why is this - why does not a proxy / stub from another company start?
windows interop com com-interop
sharptooth
source share