获取COM对象的版本

时间:2008-11-13 19:56:33

标签: com

我正在从C ++访问.NET COM对象。我想知道有关此COM对象的版本信息。当我在OLEVIEW.exe中打开TLB时,我可以看到与coclass相关的版本信息。如何从C ++访问此信息?这是我得到的信息:

[
  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;
};

2 个答案:

答案 0 :(得分:1)

code project有一个类在运行时执行此操作。

答案 1 :(得分: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();
      }
    }
  }