• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >vc/mfc > IE不能显示ActiveX控件,WinXPSp2

IE不能显示ActiveX控件,WinXPSp2

作者:佚名 字体:[增加 减小] 来源:互联网 时间:2017-06-04

佚名通过本文主要向大家介绍了winxpsp2,winxpsp2升级sp3,winxpsp2纯净版下载,winxpsp2系统下载,winxpsp2序列号等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
问题: IE不能显示ActiveX控件, WinXPSp2
描述:

本人做一MFC控件, Win2000,WinXPSp1中, IE可以调用, WinXPSp2中显示红X, 控件注册已成功, IE中直接打开"C:\Inetpub\wwwroot\default.htm"可以, 重新启动IE, 输入"http://192.168.1.1/default.htm"显示红X, 等待...


解决方案1:

去申请一个代码证书 
然后实现安全接口
不过IE如果设置安全很高的话还是一样被屏蔽
//×××App.h
//----------------
#include "comcat.h"
#include "Objsafe.h"
HRESULT CreateComponentCategory(CATID catid, WCHAR* catDescription);
HRESULT RegisterCLSIDInCategory(REFCLSID clsid, CATID catid);
HRESULT UnRegisterCLSIDInCategory(REFCLSID clsid, CATID catid);
extern const GUID CDECL _tlid;
extern const GUID CDECL CLSID_SafeItem;
extern const WORD _wVerMajor;
extern const WORD _wVerMinor;
///in ×××app.cpp
//---------------------------------
const GUID CDECL BASED_CODE _tlid =
{ your guid };
const GUID CDECL CLSID_SafeItem =
{ 0xb9169482, 0xc0a2, 0x4e47, {0x85, 0xf7, 0x15, 0x59, 0xd4, 0x00, 0x98, 0x25}};
const WORD _wVerMajor = 1;
const WORD _wVerMinor = 0;
STDAPI DllRegisterServer(void)
{
HRESULT hr;
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;
}
/////////////////////////////////////////////////////////////////////////////
// DllUnregisterServer - Removes entries from the system registry
STDAPI DllUnregisterServer(void)
{
HRESULT hr;
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;
}
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 sure the HKCR\Component Categories\{..catid...}
    // key is registered.
    CATEGORYINFO catinfo;
    catinfo.catid = catid;
    catinfo.lcid = 0x0409 ; // english
    // Make sure the provided description is not too long.
    // Only copy the first 127 characters if it is.
    int len = wcslen(catDescription);
    if (len>127)
        len = 127;
    wcsncpy(catinfo.szDescription, catDescription, len);
    // Make sure the description is null terminated.
    catinfo.szDescription[len] = '\0';
    hr = pcr->RegisterCategories(1, &catinfo);
        pcr->Release();
    return hr;
}
HRESULT RegisterCLSIDInCategory(REFCLSID clsid, CATID catid)
{
    // Register your component categories information.
    ICatRegister* pcr = NULL ;
    HRESULT hr = S_OK ;
    hr = CoCreateInstance(CLSID_StdComponentCategoriesMgr, 
                NULL, CLSCTX_INPROC_SERVER, IID_ICatRegister, (void**)&pcr);
    if (SUCCEEDED(hr))
    {
       // Register this category as being "implemented" by the class.
       CATID rgcatid[1] ;
       rgcatid[0] = catid;
       hr = pcr->RegisterClassImplCategories(clsid, 1, rgcatid);
    }
    if (pcr != NULL)
        pcr->Release();
    return hr;
}
HRESULT UnRegisterCLSIDInCategory(REFCLSID clsid, CATID catid)
{
    ICatRegister* pcr = NULL ;
    HRESULT hr = S_OK ;
    hr = CoCreateInstance(CLSID_StdComponentCategoriesMgr, 
            NULL, CLSCTX_INPROC_SERVER, IID_ICatRegister, (void**

分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 以前在Windows2000上能用的扫描仪控件现在WinXPsp2上没有了,不知道是什么原因
  • 请问在WinXPSP2上如何配置DCom服务才能向多台计算机上的客户端提供分布式服务?
  • IE不能显示ActiveX控件,WinXPSp2

相关文章

  • 2017-06-04 请高手指点!
  • 2017-06-04 VC60写的ActiveX控件,但是不能在客户端下载运行,请求帮助
  • 2017-06-05 COM初学问题
  • 2017-06-05 DLL的全局变量怎么赋值后还是0呀
  • 2017-06-04 如何用com创建文件,并可以进行调用,最好有源码?
  • 2017-06-05 用AfxBeginThread好还是CreatThread好?
  • 2017-06-05 如何在开发可导出C++类动态链接库(不使用MFC)?
  • 2017-06-05 ocx打包成CAB包,依赖的DLL有多级目录,如何实现?
  • 2017-06-04 MFC中用ADO方法远程连接Oracle出现的问题,求大神解答
  • 2017-06-05 急求解答:关于sendmessage!为什么我向记事本发送了一个F5键却没反应??

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • 子控件收不到WM_PAINT了??
    • 关于串口控件通讯的问题
    • 改变Excle单元格的字体
    • 怎么使ActiveMovie控件只显示上面部分
    • 程序调试的问题
    • HOOK问题
    • 大家觉得是不是学COM挺痛苦?
    • 谁有实现des加密的c++源代码?
    • 使用CreateThread函数时编译报错,帮忙看一下。
    • mfc的dll里,如何使得dll初始化失败

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有