可以采用如下方法判断某个组件是否注册:
通过组件的ProgID从注册表获取CLSID,如果CLSID为空,则表示该组件未注册。
一下为判断ESRI公司的MapObject地图组件是否注册。
wchar_t *p=L"MapObjects2.Map.1";
//ProgId是注册后的名字,注册表中存放,如果没有则表示没有注册。
GUID g=GUID_NULL;
try
{
CLSIDFromProgID(p,&g);
if(IsEqualGUID(g,GUID_NULL))
{
ShowMessage("请先注册地图组件!");
return 0;
}
else
{
//ShowMessage(Comobj::GUIDToString(g));
}
}
catch(Exception &e)
{
ShowMessage(e.Message);
ShowMessage("没注册地图组件!");
return 0;
}