본문 바로가기
Windows/개념 (IOCP, Dll, COM, Thread)

(1) Component Object Model 이란?

by 미티치 2018. 8. 15.

COM 이 무엇인지는 사실 아직도 명확하게 잘 모르겠다. 

처음에는 COM이 뭔지에 대해 감 조차도 오지 않아서, Windows Shell Extension 모듈을 만들어보고 이 dll이 COM인줄 알았다.

* 예를 들어 Internet Explorer 아이콘에 마우스를 올리고 우클릭하면 나오는 메뉴 목록에 메뉴를 추가할 수 있는 ContextMenu 라던가, Chrome 아이콘에 붙는 화살표 작은 아이콘(바로가기 표시) 를 그려주기 위한 IconOverlay 라던가 하는, 말 그대로의 Shell(탐색기) Extension(확장) 모듈


  


왜 이런COM 이라는 걸 알게 된 계기가 Shell Extension 모듈을 만들어보면서 처음 개념을 접했기 때문이다.  그냥 Code Project에 있는 소스 보면서 dll 을 만들어 보면서, 여러가지 궁금한 점들을 깊게 파볼 시간 없이 일단은 기능 구현에 급급했었다. 

왜 COM 모듈을 ATL 프로젝트로 생성하는지, 생성된 기본 프로젝트에 COM 클래스를 추가하면 기본적으로 생성되는 소스코드가 어떤 의미인지, IUnKnown 인터페이스가 뭔데 상속받는건지, COM_MAP 이라고 선언된 부분이 뭔지, 레지스트리에 모듈을 왜 등록하는건지, regsvr32.exe가 어떤 실행파일인지 뭐 하여튼 이런부분들은 아직도 명확하게 알지 못한다. 이전보다 조금 더 능숙하게 프로그램을 만들 뿐.



'Windows > 개념 (IOCP, Dll, COM, Thread)' 카테고리의 다른 글

COM  (0) 2018.10.03