我做的ActiveX做了数字签名,但不降低安全设置,还是不能运行!! 我降低安全设置,ActiveX运行正常,恢复到默认安全设置后。做好了数字签名,数字签名弹出框也正常弹出,也安装了ActiveX控件,但就是不运行ActiveX。说当前页有ActiveX...不能正常显示页面。我的数字签名是自己做的。是不是一定要出钱买的正规数字签名才能在不低安全设置的情况下运行我做的ActiveX啊? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 HRESULT UnRegisterCLSIDInCategory(REFCLSID clsid, CATID catid){ ICatRegister *pcr = NULL; HRESULT hr = S_OK; hr = CoCreateInstance(CLSID_StdComponentCategoriesMgr,NULL,CLSCTX_INPROC_SERVER,IID_ICatRegister,(void**)&pcr); if(SUCCEEDED(hr)) { CATID rgcatid[1]; rgcatid[0] = catid; hr = pcr->UnRegisterClassImplCategories(clsid,1,rgcatid); } if(pcr != NULL) pcr->Release(); return hr;}HRESULT RegisterCLSIDInCategory(REFCLSID clsid, CATID catid){ ICatRegister *pcr = NULL; HRESULT hr = S_OK; hr = CoCreateInstance(CLSID_StdComponentCategoriesMgr,NULL,CLSCTX_INPROC_SERVER,IID_ICatRegister,(void**)&pcr); if(SUCCEEDED(hr)) { CATID rgcatid[1]; rgcatid[0] = catid; hr = pcr->RegisterClassImplCategories(clsid,1,rgcatid); } if(pcr != NULL) pcr->Release(); return hr;}HRESULT CreateComponentCategory(CATID catid, WCHAR *catDescription){ ICatRegister *pcr = NULL; HRESULT hr = S_OK; hr = CoCreateInstance(CLSID_StdComponentCategoriesMgr,NULL,CLSCTX_INPROC_SERVER,IID_ICatRegister,(void**)&pcr); if(FAILED(hr)) return hr; // make key CATEGORYINFO catinfo; catinfo.catid = catid; catinfo.lcid = 0x0409; int len = wcslen(catDescription); if(len >27) len = 27; wcsncpy(catinfo.szDescription,catDescription,len); catinfo.szDescription[len] = '\0'; hr = pcr->RegisterCategories(1,&catinfo); pcr->Release(); return hr;} 加上以上的函数,声明ActiveX控件是代码安全的。这样才能与INF中的:HKLM,"SOFTWARE\Classes\CLSID\{F385820B-6F9A-4769-9007-ECBB3F6AD43A}\Implemented Categories\{7DD95802-9882-11CF-9FA9-00AA006C42C4}"HKLM,"SOFTWARE\Classes\CLSID\{F385820B-6F9A-4769-9007-ECBB3F6AD43A}\Implemented Categories\{7DD95801-9882-11CF-9FA9-00AA006C42C4}"一起起作用。 在IE6中必须实现IOleSafeControl 改注册表的方式不行 VC 操作 Excel listcontrol 数据量大 没分了~~ 50分!简单的终止工作线程问题! 急求!cooledit波形显示区域的界面设计和代码实现的相关资料! 请问大家一个在指定窗口绘画的问题 有字符串CString str="2.32*10^8" 谁帮我转换成Double类型的? 我想给导航做个语音提示 怎么样才能把CString 的对象专变成字符数组! 这是什么编码 谁知道 如何解出来? 请问如何在程序当中产生GUID号,谢谢 函数指针传递的问题
{
ICatRegister *pcr = NULL;
HRESULT hr = S_OK; hr = CoCreateInstance(CLSID_StdComponentCategoriesMgr,NULL,CLSCTX_INPROC_SERVER,IID_ICatRegister,(void**)&pcr);
if(SUCCEEDED(hr))
{
CATID rgcatid[1];
rgcatid[0] = catid;
hr = pcr->UnRegisterClassImplCategories(clsid,1,rgcatid);
}
if(pcr != NULL)
pcr->Release(); return hr;
}HRESULT RegisterCLSIDInCategory(REFCLSID clsid, CATID catid)
{
ICatRegister *pcr = NULL;
HRESULT hr = S_OK; hr = CoCreateInstance(CLSID_StdComponentCategoriesMgr,NULL,CLSCTX_INPROC_SERVER,IID_ICatRegister,(void**)&pcr);
if(SUCCEEDED(hr))
{
CATID rgcatid[1];
rgcatid[0] = catid;
hr = pcr->RegisterClassImplCategories(clsid,1,rgcatid);
}
if(pcr != NULL)
pcr->Release(); return hr;
}HRESULT CreateComponentCategory(CATID catid, WCHAR *catDescription)
{
ICatRegister *pcr = NULL;
HRESULT hr = S_OK; hr = CoCreateInstance(CLSID_StdComponentCategoriesMgr,NULL,CLSCTX_INPROC_SERVER,IID_ICatRegister,(void**)&pcr);
if(FAILED(hr))
return hr;
// make key
CATEGORYINFO catinfo;
catinfo.catid = catid;
catinfo.lcid = 0x0409; int len = wcslen(catDescription);
if(len >27)
len = 27;
wcsncpy(catinfo.szDescription,catDescription,len); catinfo.szDescription[len] = '\0'; hr = pcr->RegisterCategories(1,&catinfo);
pcr->Release();
return hr;
}
这样才能与INF中的:
HKLM,"SOFTWARE\Classes\CLSID\{F385820B-6F9A-4769-9007-ECBB3F6AD43A}\Implemented Categories\{7DD95802-9882-11CF-9FA9-00AA006C42C4}"
HKLM,"SOFTWARE\Classes\CLSID\{F385820B-6F9A-4769-9007-ECBB3F6AD43A}\Implemented Categories\{7DD95801-9882-11CF-9FA9-00AA006C42C4}"
一起起作用。