打开网页时报的错下载到C:\WINDOWS\Downloaded Program Files中的ActiveX控件我不知道是INF文件写的不对还是HTML文件有问题,还是别的?
HTML网页INF文件

解决方案 »

  1.   

    怎么做?
    是在写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;
    }
      

  2.   

    添加安全接口无非是调用的时候不会再弹个 非安全 提示而已,本地调用测试如果插件没问题的话,楼主既然能下载了不能运行,我想是IE安全没设置好,IE 的 internet选项安全的级别里对于 下载 和 运行 是分别有选项的,楼主全部选成启用,站点加入到受信站点