반응형

COM의 주요 Macro들.....(함수에 관하여)

 

 언젠가부터 존대말루 바뀌었군요. 그것두 나쁘지 않아 보입니다. 하여간에..... 오늘 할거는 COM에서 사용하는 주요 매크로입니다. Visual Studio같은 개발툴에서 코딩할때 당신은 다음과 같은 것들을 자주 볼 수 있습니다.

 

STDMETHOD(method)

STDMETHOD_(type,method)

STDMETHODIMP      

STDMETHODIMP_(type)  

함수를 나타내는 매크로로써 자세한 내용은 ObjBase.h에서 찾아볼수 있습니다.

 

정의된 내용은 다음과 같습니다.

 

#define STDMETHOD(method)       virtual HRESULT STDMETHODCALLTYPE method
#define STDMETHOD_(type,method) virtual type STDMETHODCALLTYPE method

#define STDMETHODIMP            HRESULT STDMETHODCALLTYPE
#define STDMETHODIMP_(type)     type STDMETHODCALLTYPE


여기서 STDMETHODCALLTYPE 은 __stdcall와 같은 함수의 Call type을 말하는 건데요. 이부분은 다른 책에서 찾아보세요. 사실 몰라두 코딩에 큰 어려움은 없습니다.


매크로는 무수히 많지만, 위의 것이 가장 많이 쓰이는 COM의 주요 매크로입니다. 직접작성하는 경우도 있고, ATL에서 함수 만들기에 의해 생성되기도 하지요... 내용은 결국 함수라는 겁니다.


이 부분을 설명하는 이유는 처음 COM 을 접하시는 분들은 저런 아주 쉬운 매크로에서두, 이게 뭐야, 이해가 안가 하시는 분이 많기 때문입니다. 가상함수를 정의하는 매크로정도라구 생각하시면 됍니다.


ATL이나 COM내에서 다음과 같이 사용되곤 합니다.

STDMETHOD(MenuTextProperty)()


함수이름이 MenuTextProperty 이고 리턴타입이 HRESULT인 함수의 정의입니다.

당근 헤더에 있겠지요.


그리고 구현부에서는

STDMETHODIMP 클래스 이름::MenuTextProperty()

과 같이 쓰이겠지요.

반응형

+ Recent posts