※ 새로운 기능이 추가되었다면 dll, tlb를 같이 제공한다.
BOOL AFXAPI AfxOleInit( );
참고주소 : http://msdn.microsoft.com/en-us/library/e91aseaz(VS.71).aspx
TLB 파일 사용시 COM 라이브러리를 초기화 하는 함수. (MFC)
응용프로그램에 대해 OLE 지원을 초기화한다.
리턴 : 성공시 TRUE, 실패시 FALSE 이유는 OLE 시스템 DLL의 잘못된 버젼이 설치되었기 때문.
TLB를 사용하기
#include <afxdisp.h>
#import "AddBack.tlb" no_namespace
tlb파일 import 속성
no_namespace : namespace는 컴파일러에 의해 생성되지 않는다.
named_guid : LIBID_MyLib, CLSID_MyCoClass, IID_MyInterface, and DIID_MyDispInterface 형태의 고전 스타일에서 GUID를 정의하고 초기화한다고 컴파일러에게 알린다.
※ 컴파일을 하면 실행파일이 생성된 폴더에 tlh, tli파일이 생성된다.
스마트 클래스 포인터를 선언
예시)
IAddPtr m_plAdd;
IAddEndPtr m_plAddEnd;
스마트 클래스 사용예시
m_plAddEnd = IAddEndPtr(__uuidof(AddBack));
// 스마트 포인터로 wrapping된 클래스를 생성한다.
m_nAddEnd = m_plAddEnd->AddEnd;
※ 스마트 포인터 객체에 대해 rvalue에 대해 실행하면 get함수가 호출된다.
m_plAddEnd->AddEnd = m_nAddEnd;
※ 스마트 포인터 객체에 대해 rvalue에 대해 실행하면 put함수가 호출된다.
'컴퓨터 공부 > COM&ActiveX' 카테고리의 다른 글
[6월 15일 3교시] ATL2 (0) | 2009.06.15 |
---|---|
[6월 15일 2교시] ATL 1 (0) | 2009.06.15 |
[6월 12일 3교시] Visual C++ and COM (0) | 2009.06.12 |
[6월 11일 3교시] Containment & Aggregation (0) | 2009.06.11 |
[6월 11일 2교시] Out-Of-Process Server에서 Marshalling 코드 생성 (0) | 2009.06.11 |