自己编写的已经注册的Activex控件获取ProgID
第一步,
如果是自己编写的ProgID的控件的话,如果是MFC的ActiveX控件的话,那么在工程的idl文件中,在关键词 coclass的前一行的uuid里面的内容就为CLSID,比如:
//CPageSettingInfoCtrl 的类信息
[
uuid(3D030DC3-8E36-4349-A2F6-5DC55C2986B1) //CLSID就为3D030DC3-8E36-4349-A2F6-5DC55C2986B1
]
coclass PageSettingInfo //coclass 关键词
{ [default] dispinterface _DPageSettingInfo;
[default, source] dispinterface _DPageSettingInfoEvents;
};
更通俗点,假设你的工程名称为PageSettingInfo,那么在 idl文件 的 CPageSettingInfoCtrl的类信息 这个注释下面的UUID的值就是CLSID
第二步,
打开注册表编辑器,Ctrl+F搜索 上面得到的CLSID,一般在HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{上面得到的CLSID}\ProgID的值就为控件的ProgID:
通过函数转换
CLSID clsid;
HRESULT hResutl = CLSIDFromProgID(L"Word.Application",&clsid);
if(FAILED(hResutl)){
MessageBox(_T("CLSIDFromProgID错误"),_T("错误"),MB_ICONWARNING);
return 0;
}