Skip to main content

2.4.  COM컴포넌트 생성/공개

2.4.  COM컴포넌트 생성/공개

일반적으로 COM 컴포넌트를 사용할 때, 사전에 해당 컴포넌트를 시스템에 등록해야 합니다. 명령어 창에서 아래 명령을 사용하여 이 작업을 수행할 수 있습니다.

 

registering

regsvr32 HRRpcProxy.dll

unregistering

regsvr32 u HRRpcProxy.dll

 

그러나, 샘플 프로그램은 CreateInstanceFromInst()이라는 이름의 함수를 제공합니다. 이 함수를 통해 등록되지 않은 COM 컴포넌트를 생성하고 원하는 인터페이스를 쿼리할 수 있습니다. 이러한 방식을 사용하려면  LoadLibrary(HRRpcProxy.dll)가 필요하며 여기에 연관된 함수 코드를 참조하십시오.

(아래 샘플은 등록되지 않은 COM 컴포넌트의 로딩을 보여줍니다. 물론, 컴포넌트를 등록할 수 있고 원하는 인터페이스를 획득하기 위하여 COM API function ::CoCreateInstance( )을 사용할 수 있습니다.)

 

// ------------------------------------------

// DLL dynamic linking

strPathFName = "HRRpcProxy.dll";

if(h_module_ = LoadLibrary(strPathFName) == NULL) {

             // error handling..

             return;

}

 

// ------------------------------------------

// create COM component instance & get interface

 

// IBase

HRESULT hr = CreateInstanceFromInst(h_module_, hr_rpc_proxy::CLSID_Base

                                        , hr_rpc_proxy::IID_IBase, (void*)&p_base_);

if(FAILED(hr) {

             // error handling..

             return;

}

 

p_base_->Release();

 

FreeLibrary(h_module_);