'레지스트리'에 해당되는 글 1건

  1. 2010.03.15 Registry
2010. 3. 15. 10:49

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를 호출한다.

IUnknown* pIUnknown=NULL;
 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
Posted by 아몰라
이전버튼 1 이전버튼