블로그 이미지
Kanais
Researcher & Developer 퍼즐을 완성하려면 퍼즐 조각들을 하나 둘씩 맞춰나가야 한다. 인생의 퍼즐 조각들을 하나 둘씩 맞춰나가다 보면 인생이란 퍼즐도 완성되는 날이 오려나...?

calendar

1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31

Notice

05-04 11:59

Recent Post

Recent Comment

Recent Trackback

Archive

2015. 5. 11. 11:17 Programming/COM

작성날짜    : 2011-03-16



IUnknown

COM에서는 모든 인터페이스가 IUnknown을 base로 하여 구현하기를 권고하고 있다.

IUnknown 인터페이스는 정의된 인터페이스 이름 대신 인터페이스 ID를 통해 원하는 인터페이스 개체를 획득하여 사용하게 함으로써 이름 충돌에서 발생하는 문제들을 해결해 준다. 또한, 참조 카운터를 통해 개체를 사용하게 함으로써 신뢰성을 증가시켜 줄 수 있게 하고 있다.

이를 위해 IUnknown 인터페이스에는 다음과 같은 세 개의 멤버 함수를 구현 약속하였다.

interface IUnknown

{

    virtual HRESULT __stdcall QueryInterface(const IID&iid,void *ppv)=0;

    virtual ULOING __stdcall AddRef()=0;

    virtual ULONG __stdcall Release()=0;

};

 

 

다음과 같이 IStudy IUnknown을 기반으로 정의를 하면 IStudy를 구현 약속하는 클래스에서는 IUnknown에 구현 약속된 세 개의 멤버 함수를 추가로 구현하여야 구체화된 클래스가 되는 것은 당연할 것이다.

#include <objbase.h>

interface IStudy:IUnkown

{

    virtual void __stdcall Study()=0;

    virtual int __stdcall GetStuNum()=0;

virtual HRESULT __stdcall QueryInterface(const IID&iid,void *ppv)=0;

    virtual ULOING __stdcall AddRef()=0;

    virtual ULONG __stdcall Release()=0;

 

};

 

'Programming > COM' 카테고리의 다른 글

[COM] ATL / COM  (0) 2015.05.11
[COM] IDL  (0) 2015.05.11
[COM] COM 이란?  (0) 2015.05.11
[COM] Class Factory  (0) 2015.05.11
[COM] Registry  (0) 2015.05.11
posted by Kanais