2008-11-13 5 views
1

C++에서 .NET COM 개체에 액세스 중입니다. 이 COM 개체에 대한 버전 정보를 알고 싶습니다. OLEVIEW.exe에서 TLB를 열면 coclass와 관련된 버전 정보를 볼 수 있습니다. 어떻게 C++에서이 정보에 액세스 할 수 있습니까?COM 개체 버전 얻기

code project
[ 
    uuid(XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX), 
    version(1.0), 
    custom(XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX, XXXX) 
] 
coclass XXXXXXXX{ 
    [default] interface XXXXXXXX; 
    interface _Object; 
    interface XXXXXXXX; 
}; 

답변

1

기본적으로 ITypeLib 인터페이스를 사용하여 정보를 가져와야한다는 것을 알게되었습니다. 해결책은 다음과 같습니다.

BSTR bstrTLBNameWithPath = ""; //set this to whatever you want 

    if(bstrTLBNameWithPath) 
    { 
    ITypeLib * pTlib = 0; 
    HRESULT hr = LoadTypeLib(bstrTLBNameWithPath,&pTlib); 
    if(SUCCEEDED(hr) && pTlib) 
    { 
     TLIBATTR * pTlibattr = 0; 
     hr = pTlib->GetLibAttr(&pTlibattr); 
     if(SUCCEEDED(hr) && pTlibattr) 
     { 
     //do something with the info 

     //release the information 
     pTlib->ReleaseTLibAttr(pTlibattr); 
     pTlib->Release(); 
     } 
    } 
    } 
1

런타임에이 작업을 수행하는 클래스가 : 이것은 내가 얻는 정보입니다.