새 ATL 프로젝트를 만들고 Apartment 스레딩 모델을 사용하는 간단한 COM 개체 (참고 : 개체가 아니라 컨트롤)를 추가하면 메시지 펌프가 실행됩니까? 내 COM 개체 클래스의 멤버 인 숨겨진 창을 만들고 싶지만 실제로 메시지를 전달할 것인지 확실하지 않습니다. 이것은 뒤에서 다루어 지거나 COM 개체를 실제로 생성하는 응용 프로그램의 종류가 중요합니까?ATL COM 개체에 메시지 펌프가 있습니까?
3
A
답변
4
아니요, 아니요, ATL COM 개체는 기본적으로 메시지 펌프를 구현하지 않습니다. 귀하의 코드는 일반 Windowing 라이브러리 또는 명시 적 메시지 펌프 구현을 통해 on을 명시 적으로 사용해야합니다.
0
COM은 COM 개체가 appartment에있는 경우 필요에 따라 COM 개체와 통신하기 위해 메시지 펌프를 사용합니다. 메서드가 다른 appartment (STA 또는 MTA)의 객체에 의해 호출 될 때 객체에서 안전하게 호출되는 방법입니다 (메시지 대기열에 의해 직렬화 됨).
메시지 펌프를 사용할 수 없습니다. COM은 필요시에만 함께 표시합니다. 디버깅 할 때 객체의 메서드를 직접 호출한다는 것을 알 수 있습니다. 메시지 펌프를 통해 뛰어 넘지는 않습니다. 물론 당신이 다른 아파트에 살고있는 여러 물건을 모으고 있다면 당신은 될 것입니다.
창이 필요한 경우 표준 방법을 사용하여 창을 만들 수 있습니다. ATL은 CWindow 및 CWindowImpl과 같은 간단한 Windows 클래스를 제공하므로이를 쉽게 수행 할 수 있습니다.
관련 문제
- 1. COM ATL 스레딩 모델
- 2. MFC COM 또는 ATL COM (ActiveX)
- 3. ATL Exe COM 서버 디버깅
- 4. ATL COM 클래스의 단일 인스턴스
- 5. COM 개체에 대한 감시
- 6. 메시지 펌프가 필요한 API를 호출하는 WPF 응용 프로그램
- 7. VC++ ATL COM 서버에서 마샬링을 구현하려면 어떻게해야합니까?
- 8. COM/ATL 프로젝트에서 DATE 형식을 사용하는 방법
- 9. ATL COM 서버 -이 서버의 ATL 서버에 정의 된 COM 개체
- 10. ATL COM 클래스 등록 .rgs 파일 기본값
- 11. ATL COM 프로세스를 종료하십시오. SYSTEM 계정?
- 12. UINavigationController 개체에 메시지 보내기
- 13. ATL/COM : DLL 외부에서 사용할 수없는 COM 인터페이스 정의?
- 14. COM 개체에 대한 Python 인스턴스
- 15. 특정 인터페이스를 구현하는 ATL COM 개체 만들기
- 16. ATL 프로젝트에서 사용자 지정 COM 인터페이스 호출
- 17. 모질라에서 ATL COM DLL IE 플러그인을 어떻게 구할 수 있습니까?
- 18. .NET Framework를 사용하는 음성 인식에 메시지 펌프가 필요합니까?
- 19. 하나의 "메시지 펌프"가 있습니까?
- 20. COM 개체에 의해 노출 된 인터페이스를 덤프하십시오.
- 21. ATL
- 22. COM 개체에 대한 COM 개체의 dynamic_cast가 참조 횟수를 높이 지 않습니다. 그렇습니까?
- 23. IronPython을 사용하여 브라우저에서 COM 개체에 액세스 하시겠습니까?
- 24. 해제 된 COM 개체에 대한 호출 호출
- 25. COM/ATL (MFC 없음)을 사용하여 기존 파일을 여는 방법
- 26. 호출 (마샬링) ATL 샘플 작업자 스레드에서 아파트 스레드 COM 인터페이스
- 27. CoCreateInstance가 시작되지 않거나 ATL COM 서비스에 연결되지 않습니다.
- 28. ATL "구현 인터페이스 마법사"
- 29. IDL in ATL/COM : 복잡한 유형의 const를 게시 할 수 있습니까?
- 30. ATL/COM : 같은 개체의 두 인터페이스에서 동일한 기능을 사용할 수 있습니까?
단일 스레드 아파트는 어딘가에 (구현 세부 사항으로) 하나를 만들고, 다중 스레드 아파트는 동기화 작업을 귀하에게 맡깁니다. –