请问假如有一个DLL,他可能有多个对象,如何得到它里面包含的所有对象的ProgID,不是通过打开注册表来看,有什么方法?多谢帮忙。
ITypeLib* pTypeLib = NULL;
ITypeInfo* pTypeInfo = NULL;
HRESULT hr;
hr = CoInitialize( NULL );
if( SUCCEEDED(hr) )
{
hr = LoadTypeLib( L"XXX.dll", &pTypeLib );
if( SUCCEEDED(hr) )
{
TYPEATTR* ptypeaddr = NULL;
UINT uCount = pTypeLib->GetTypeInfoCount();
for(UINT i=0; i<uCount; i++)
{
pTypeLib->GetTypeInfo( i, &pTypeInfo );
pTypeInfo->GetTypeAttr( &ptypeaddr );
pTypeInfo->ReleaseTypeAttr( ptypeaddr );
}
}
CoUninitialize();
}