¿Hay alguna manera de saber si dos referencias de interfaz COM apuntan a la misma instancia?

StackOverflow https://stackoverflow.com/questions/323289

  •  11-07-2019
  •  | 
  •  

Pregunta

Dadas dos referencias de interfaz obtenidas de diferentes fuentes. ¿Hay alguna forma programática para saber si se implementan en la misma instancia?

Una simple comprobación de igualdad de las referencias de la interfaz siempre falla.


EDITAR: Gran parte de la pregunta original, que resultó ser un problema independiente, ahora se ha trasladado a una nueva pregunta .

¿Fue útil?

Solución

Puede consultar la interfaz IUnknown y comparar estos punteros. No se garantiza que todos los demás punteros de interfaz devuelvan el mismo valor cada vez.

de Las reglas del modelo de objetos componentes :

  

Identidad de objeto. Se requiere que cualquier llamada a QueryInterface en cualquier interfaz para una instancia de objeto dada para la interfaz específica IUnknown siempre debe devolver el mismo valor de puntero físico. Esto permite llamar a QueryInterface (IID_IUnknown, ...) en cualquiera de las dos interfaces y comparar los resultados para determinar si apuntan a la misma instancia de un objeto (la misma identidad de objeto COM).

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top