COM 개체를 노출하는 ATL 프로젝트가 있습니다. 내 COM 객체가 소비자가 수시로 지정한 함수를 호출하거나 때때로 소비자에게 알리는 다른 수단을 통해 호출하려고합니다.COM 개체의 콜백
CerberusNative.idl
에 메서드를 추가하려했는데, 소비자가 COM 개체를 초기화 할 때 콜백이 무엇인지 알려주기 위해 COM 인스턴스 측에서 호출하고 싶은 void 포인터를 사용했습니다. : 다시해야한다 객체 인터페이스의
심각도 코드 설명 프로젝트 파일 라인 억제 상태 오류 MIDL2269 절차 :
interface ICerberusSession : IDispatch { [id(5)] HRESULT SetCallbacks([in] void(*userExit)(int, char *), [in] void(*userAttemptingReconnection)(), [in] void(*userReconnected)()); };
하지만, 내 무효 함수 포인터 몇 가지 문제가있다 HRESULT를 돌려 : [(매개 변수 'USEREXIT')] 오류 MIDL2131 매개 변수 하지 함수해야합니다 : [프로 시저 'SetCallbacks' 의 매개 변수 'USEREXIT'(인터페이스 'ICerberusSession')] 어떤 방법으로
을 내 COM 개체에서 콜백 함수를 구독 할 클라이언트 응용 프로그램을 가져올 수 있습니까?
후속 질문 사람이 돕거나 관심이 할 수있는 경우 : HTTP : //stackoverflow.com/questions/43006702/setting-up-my-atl-com-callback-functions – Alexandru