¿Cómo selecciona COM cómo calcular una interfaz?

A medida que lo consigo, hay tres formas de implementar el cálculo en COM:

typelib marshallingproxy / stub marshallingImplementando IMarshal por el objeto.

ahora como funciona el componenteconsumidor (usuario) elegir cuál será utilizado? ¿Decide por sí mismo y usa la forma preferida o llama a alguna función incorporada y le resuelve el problema?

Actualmente experimento lo siguiente: mi componente implementa una interfaz personalizadaICustomInterface que también es implementado por un componente de otra empresa. Mi componente no tiene una biblioteca de tipos y no implementa IMarshal. El registro del sistema contiene la clave HKCR \ Interface {uuidof (ICustomInterface)} \ ProxyStubClsid32 con un GUID del proxy / stub que se puede rastrear a una biblioteca proporcionada por esa otra compañía.

Ahora, cuando mi consumidor de componentes inicializa mi componente, llama a QueryInterface () solicitando IMarshal desde mi componente y cuando se devuelve E_NOINTERFACE simplemente no hace nada. ¿Por qué es esto? ¿Por qué no se activa la biblioteca proxy / stub de la otra empresa?

Respuestas a la pregunta(2)

Su respuesta a la pregunta