동일한 인스턴스에서 두 개의 COM 인터페이스 참조가 가리키는 지 알 수있는 방법이 있습니까?

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

  •  11-07-2019
  •  | 
  •  

문제

다른 소스에서 얻은 두 개의 인터페이스 참조가 주어졌습니다. 동일한 인스턴스에서 구현되었는지 여부를 알 수있는 프로그래밍 방식이 있습니까?

인터페이스 참조의 단순한 평등 점검은 항상 실패합니다.


편집하다: 독립적 인 문제로 판명 된 원래 질문의 많은 부분이 이제 새로운 질문.

도움이 되었습니까?

해결책

iunknown 인터페이스를 쿼리 하고이 포인터를 비교할 수 있습니다. 다른 모든 인터페이스 포인터는 매번 동일한 값을 반환하는 것을 보장하지 않습니다.

~에서 구성 요소 객체 모델의 규칙:

객체 아이덴티티. 특정 인터페이스에 대한 주어진 개체 인스턴스에 대한 인터페이스에서 QueryInterface 로의 호출은 항상 동일한 물리적 포인터 값을 반환해야합니다. 이를 통해 두 인터페이스에서 QueryInterface (IID_IUNKNOWN, ...)를 호출하고 결과를 비교하여 객체의 동일한 인스턴스 (동일한 COM 객체 아이덴티티)를 가리킬지 여부를 결정할 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top