2012-08-03 2 views
1

예제 here을 따라 C# 독립 프로세스 COM 서버를 만들었습니다.관리되는 COM 서버의 QueryInterface에 대한 호출을 기록합니다.

제 서버는 제 3 자 응용 프로그램에서 사용됩니다. 제어 권한이 없습니다. 내 구성 요소를로드 할 때 요청하는 인터페이스를 찾으려면 모든 호출을 QueryInterface 메서드에 기록하고 싶습니다. 그러나 .NET을 사용하기 때문에 IUnknown :: QueryInterface를 직접 구현할 수 없습니다. 대신 자동으로 CCW (COM 호출 가능 래퍼)에 의해 제공됩니다.

내 C# COM 서버의 QueryInterface에 대한 모든 호출을 기록하는 방법이 있습니까?

+0

제공 한 링크를 기반으로 일부 로깅을 배치 할 수 없습니까? 그리고 자신의 로그 파일에 쓰기 ..? – MethodMan

+0

아니요. QueryInterface 메서드가 .NET 래퍼 (CCW)에 의해 자동으로 제공되고 C#에서 해당 IUnknown 인터페이스 자체를 구현할 수 없기 때문에 (허용되지 않음). –

+0

이 링크 체크 아웃 QueryInterface 할 수있는 두 번째 응답을보십시오 http://stackoverflow.com/questions/5077172/how-do-i-use-marshal-queryinterface – MethodMan

답변

1

내 자신의 질문에 답변 해 드려 죄송합니다.하지만 매우 집중적으로 연구 한 결과, .NET 4 이후에 ICustomQueryInterface을 구현하고 QueryInterface의 자체 관리 구현을 제공 할 수 있다는 것을 알았습니다. 로깅을 추가하는 것은 매우 쉽습니다.

관련 문제