모듈 2. Windows 기반 프로그램에서 COM 사용
이 시리즈의 모듈 1에서는 창을 만들고 WM_PAINT 및 WM_CLOSE 같은 창 메시지에 응답하는 방법을 보여 주었습니다. 모듈 2에는 COM(구성 요소 개체 모델)을 소개합니다.
COM은 재사용 가능한 소프트웨어 구성 요소를 만들기 위한 사양입니다. 최신 Windows 기반 프로그램에서 사용하게 될 다음과 같은 많은 기능에서 이 COM을 사용합니다.
- 그래픽(Direct2D)
- 텍스트(DirectWrite)
- Windows 셸
- 리본 컨트롤
- UI 애니메이션
(이 목록의 일부 기술은 COM의 일부를 사용하므로 "순수" COM이 아닙니다.)
COM은 학습하기 어렵다는 인식이 많습니다. 또한 COM을 지원하는 새 소프트웨어 모듈을 작성하는 것은 까다로울 수 있습니다. 그러나 프로그램이 COM의 ‘소비자’인 경우 COM을 이해하는 것이 예상보다 더 쉽습니다.
이 모듈에서는 프로그램에서 COM 기반 API를 호출하는 방법을 보여 줍니다. 또한 COM 디자인의 배경이 되는 몇 가지 추론에 대해서도 설명합니다. COM이 설계된 이유를 있는 그대로 이해하면 COM을 보다 효과적으로 프로그래밍할 수 있습니다. 모듈의 두 번째 부분에서는 COM에 권장되는 몇 가지 프로그래밍 방법을 설명합니다.
COM은 OLE(개체 연결 및 포함) 2.0을 지원하기 위해 1993년에 도입되었습니다. 사용자들은 때때로 COM과 OLE를 같은 것이라고 생각합니다. 이것이 COM을 배우기 어렵다고 인식하게 되는 또 다른 이유일 수 있습니다. OLE 2.0은 COM을 기반으로 하지만 COM을 이해하기 위해 OLE를 알 필요는 없습니다.
COM은 언어 표준이 아닌 ‘이진 표준’입니다. 따라서 애플리케이션과 소프트웨어 구성 요소 간의 이진 인터페이스를 정의합니다. COM은 이진 표준으로 언어 중립적이지만 특정 C++ 구문에 자연스럽게 매핑됩니다. 이 모듈에서는 다음과 같은 COM의 세 가지 주요 목표에 중점을 둡니다.
- 인터페이스에서 개체 구현 분리
- 개체의 수명 관리
- 런타임에 개체의 기능 검색
섹션 내용
- COM 인터페이스란?
- COM 라이브러리 초기화
- COM의 오류 코드
- COM에서 개체 만들기
- 예: 열기 대화 상자
- 개체의 수명 관리
- 인터페이스에 대한 개체 요청
- COM의 메모리 할당
- COM 코딩 사례
- COM에서 오류 처리
관련 항목