다음을 통해 공유


모듈 2. Windows 기반 프로그램에서 COM 사용

이 시리즈의 모듈 1에서는 창을 만들고 WM_PAINTWM_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의 세 가지 주요 목표에 중점을 둡니다.

  • 인터페이스에서 개체 구현 분리
  • 개체의 수명 관리
  • 런타임에 개체의 기능 검색

섹션 내용

C++로 Windows용 프로그래밍 배우기