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_); |