• 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 > 怎样使得嵌入WEB页面的OCX控件不被阻止

怎样使得嵌入WEB页面的OCX控件不被阻止

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

佚名通过本文主要向大家介绍了使得,使得的近义词,使得英文,使得意思,智深正使得活泛等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
问题: 怎样使得嵌入WEB页面的OCX控件不被阻止
描述:

各位高手:
    我写了一个OCX控件,把它装入网页中,并且我也通过如下代码进行了注册,但为什么还是被WEB页面阻止呢,依然弹出警告说不安全。
//////////////////////////////////////////////////////////////// 
    // Copied from the ActiveX SDK 
    // This code is used to register and unregister a 
    // control as safe for initialization and safe for scripting 
     
    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**)&pcr); 
    if (SUCCEEDED(hr)) 
    { 
    // Unregister this category as being "implemented" by 
    // the class. 
    CATID rgcatid[1] ; 
    rgcatid[0] = catid; 
    hr = pcr->UnRegisterClassImplCategories(clsid, 1, rgcatid); 
    } 
     
    if (pcr != NULL) 
    pcr->Release(); 
     
    return hr; 
    } 
     
     
    /***************************************** 
    在 xxxctl.cpp 文件中添加如下两个头文件 
    *****************************************/ 
    #include "comcat.h" 
    #include "objsafe.h" 
     
    /***************************************** 
    修改如下函数 
    *****************************************/ 
    BOOL CxxxCtrl::CxxxCtrlFactory::UpdateRegistry(BOOL bRegister) 
    { 
    // TODO: Verify that your control follows apartment-model threading rules. 
    // Refer to MFC TechNote 64 for more information. 
    // If your control does not conform to the apartment-model rules, then 
    // you must modify the code below, changing the 6th parameter from 
    // afxRegInsertable | afxRegApartmentThreading to afxRegInsertable. 
     
    if (bRegister) 
    { 
    HRESULT hr = S_OK ; 
     
    // register as safe for scripting 
    hr 

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

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

  • 怎样利用ActiveX来的使得服务器端获得客户端的地址,服务器端和客户端都是嵌在网页中的
  • 请问vs里怎么把智能设备ocx注册到vs里,使得在ActiveX选择框里能看到???
  • 怎样用VC做ACTIVEX可以使得一个控件能导出多个包装类?
  • 在双CPU的系统中,如何保证或者是如何使得某一个线程始终占有CPU的控制使用权呢???
  • 如何实现一个程序,使得该程序能自动在其他dialog中的CEdit对象填入数据以及点击按钮
  • 如何定义一个DLL的方法,使得这个方法
  • 如何用mfc制作一個靜態鏈接庫,使得我的應用程序只調用lib和h來使用其中的函數就可以?
  • 如何改变exe中的变量i,使得i在两个进程开始执行时的值不一样?
  • 如何使listctrl中出现的表一样格式的数据能平均分它的宽度,使得数据一开始出现像表一样的,而不是使很多列的数据看不到,在线等
  • 如何在通过dll打开一个对话框a,a又打开另一对话框b,b又打开一个c对话框,如何定义使得c中可以用a中定义的变量。

相关文章

  • 2017-06-04 写了个activex,放在网页上不能运行,不知道怎么回事
  • 2017-06-05 r请问一下什么叫”钩子函数“(因为我的可用分为0所以请大家原谅)
  • 2017-06-04 MSComm控件编写的程序接收手机发送过来的数据出问题VC!
  • 2017-06-04 打开Word时的问题?急
  • 2017-06-04 用vc写的程序,如何在vb中调用
  • 2017-06-05 ADO控件与DATAGRID控件绑定后不能执行有WHERE的查询语句,弹出不能初始化数据源
  • 2017-06-04 ActiveX控件子类话
  • 2017-06-04 MFC程序中是否可调用WTL的类?怎么调用?
  • 2017-06-05 ActiveX控件全屏显示问题
  • 2017-06-05 #import语句一般都是制定了一个绝对路径,这样编译的结果,有通用性么?

文章分类

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

最近更新的内容

    • 吐血,还是字符串传递,屡试不爽,极度郁闷中,谁能帮我
    • 大哥救命,紧急等待
    • help:怎么在ActiveX控件上添加菜单,工具条?
    • 什么样的窗口才叫OLEControl?
    • ocx中引用了另外一个ocx,如何打cab包,跪求
    • Web无法得到MFCActiveX插件的事件?急救???
    • BSTR类型的dll返回值在的Delphi中对应什么类型的变量?求教
    • Dll问题,函数导不出!
    • 关于SQL模糊查询语句,编译出错
    • 哪位达人给点拨一下:永久对象的作用!!谢谢

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

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