我正在从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;
};
答案 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();
}
}
}