打开网页时报的错下载到C:\WINDOWS\Downloaded Program Files中的ActiveX控件我不知道是INF文件写的不对还是HTML文件有问题,还是别的?
HTML网页INF文件
HTML网页INF文件
解决方案 »
- 求VC++朋友们出手相助
- 免费大型PDM源码提供,我以前公司开发的,由于我对VC不太熟。现请一高人帮忙排一下错。
- 关于类属性的问题!!
- 急---5000元人民币猜解49个字节的编码方式(已找出4字节)
- snmp agent的问题请教,求高手提示
- 已打开文件的复制问题。请教高手!急急,在线等!
- 按钮下有执行两个.exe文件的WinExec命令,怎么才能让第一个.exe完后在去执行第二个?
- MFC 已打开几个对话框,每个对话框标题不同,如何判断哪一个已经打开、哪一个未打开。
- 我编了一个“五子棋”的程序,可总有点问题,哪位可以帮帮我?
- 大家怎么用MSDN?
- 动态链接库的作用到底是什么???
- Requery()的问题
是在写ActiveX控件时做吗?我添加了如下代码:
#include "comcat.h"
#include "strsafe.h"
#include "objsafe.h"// CLSID_SafeItem – 安全的ActiveX控件所必须的内容
// ID的值跟xxxCtrl.cpp文件中的IMPLEMENT_OLECREATE_EX一致const CATID CLSID_SafeItem =
{ 0x36299202, 0x9ef, 0x4abf,{ 0xad, 0xb9, 0x47, 0xc5, 0x99, 0xdb, 0xe7, 0x78}};// HRESULT CreateComponentCategory – 用于注册安全的ActiveX控件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; // 确认HKCR\Component Categories\{..catid...}键值被注册 CATEGORYINFO catinfo;
catinfo.catid = catid;
catinfo.lcid = 0x0409 ; // english size_t len;
// 确认描述不是太长。
// 只复制开始的127个字符。
// StringCchLength的第二个参数表示被读入catDescription的最大字符数。
// 第三个参数表示字符串的长度 hr = StringCchLength(catDescription, STRSAFE_MAX_CCH, &len);
if (SUCCEEDED(hr))
{
if (len>127)
{
len = 127;
}
}
else
{
// TODO: Write an error handler; } hr = StringCchCopy(catinfo.szDescription, len + 1, catDescription);
// 添加字符串结束符.
catinfo.szDescription[len + 1] = '\0'; hr = pcr->RegisterCategories(1, &catinfo);
pcr->Release(); return hr;
}// HRESULT RegisterCLSIDInCategory -// 注册组件分类信息
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 UnRegisterCLSIDInCategoryHRESULT 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;
} 2.修改 DllRegisterServer函数: STDAPI DllRegisterServer(void)
{
HRESULT hr; // HResult used by Safety Functions
AFX_MANAGE_STATE(_afxModuleAddrThis);
if (!AfxOleRegisterTypeLib(AfxGetInstanceHandle(), _tlid))
return ResultFromScode(SELFREG_E_TYPELIB);
if (!COleObjectFactoryEx::UpdateRegistryAll(TRUE))
return ResultFromScode(SELFREG_E_CLASS);
// 为初始化标记控件为安全控件
hr = CreateComponentCategory(CATID_SafeForInitializing,
L"Controls safely initializable from persistent data!");
if (FAILED(hr))
return hr;
hr = RegisterCLSIDInCategory(CLSID_SafeItem,
CATID_SafeForInitializing);
if (FAILED(hr))
return hr;
// 为脚本标记控件为安全控件
hr = CreateComponentCategory(CATID_SafeForScripting, L"Controls safely scriptable!");
if (FAILED(hr))
return hr;
hr = RegisterCLSIDInCategory(CLSID_SafeItem, CATID_SafeForScripting);
if (FAILED(hr))
return hr;
return NOERROR;
} 3.修改 DllUnregisterServer函数: STDAPI DllUnregisterServer(void)
{
HRESULT hr; // HResult used by Safety Functions
AFX_MANAGE_STATE(_afxModuleAddrThis);
if (!AfxOleUnregisterTypeLib(_tlid, _wVerMajor, _wVerMinor))
return ResultFromScode(SELFREG_E_TYPELIB);
if (!COleObjectFactoryEx::UpdateRegistryAll(FALSE))
return ResultFromScode(SELFREG_E_CLASS);
hr=UnRegisterCLSIDInCategory(CLSID_SafeItem, CATID_SafeForInitializing);
if (FAILED(hr))
return hr;
hr=UnRegisterCLSIDInCategory(CLSID_SafeItem,
CATID_SafeForScripting);
if (FAILED(hr))
return hr;
return NOERROR;
}