Regsvr32 유틸리티 - 이 유틸리티를 이용하여 DLL을 레지스트리에 등록한다.
등록 : DLL의 export된 DllRegisterServer함수를 수행한다.
해제 : DLL의 export된 DllUnregisterServer함수를 수행한다.
실행 방법 - regsvr32 “DLL파일경로”
Option : DLL 해제 : /u
Com Library
COM Library를 사용하여 반복되는 일련의 과정을 편리하게 사용가능(등록,객체생성,interface 포인터획득)
함수 앞에 Co가 붙으면 Com Library이다.
COM Library의 초기화
HRESULT CoInitialize( LPVOID pvReserved //Reserved; must be NULL );
COM Library의 해제
void CoUninitialize( );
STDAPI DllGetClassObject( REFCLSID rclsid, REFIID riid, LPVOID * ppv);
CLSID를 넘겨주면 그 CLSID와 연결된 ClassFactory를 리턴한다
클라이언트에서 서버의 IClassFactory의 인터페이스의 포인터를 얻을 수 있다.
내부적으로 DllGetClassObject를 호출한다.
HRESULT hr = CoGetClassObject(
CLSID_COMPONENT, //clsid
CLSCTX_INPROC_SERVER, //context
NULL, //this machine
IID_IUnknown, //interface id
(LPVOID*) &pIUnknown); //interface pointer
첫번째 : 생성하고자 하는 CoClass의 CLSID
두번째 : COM 서버를 IN서버로 할것인지 OUT서버로 할 것인지
세번째 : NULL
네번째 : IID_IUnknown을 얻어오겠다.
마지막 : 매개변수로 넣어준 포인터에 이 CoClass를 생성하는데 사용되는 클래스 팩토리의 인터페이스 포인터를 넘겨 받는다.
'API & MFC > MFC & COM' 카테고리의 다른 글
COM시험 (컴포넌트 이용해서 채팅하기) (0) | 2010.03.24 |
---|---|
컴포넌트 생성및 접근 (0) | 2010.03.15 |
COM이론2장 (0) | 2010.03.13 |
COM이론(Component Object Model) (0) | 2010.03.12 |
메모리 비트맵 (0) | 2010.03.11 |