我的05年做流氓插件的时候,就注意到了这个问题,只要注册表加入 类似的就可以  HKEY_CLASSES_ROOT\Component    Categories\{7DD95801-9882-11CF-9FA9-00AA006C42C4}
   HKEY_CLASSES_ROOT\Component    Categories\{7DD95802-9882-11CF-9FA9-00AA006C42C4}
   HKEY_CLASSES_ROOT\CLSID\{"your controls GUID"}\Implemented    Categories\{7DD95801-9882-11CF-9FA9-00AA006C42C4}
   HKEY_CLASSES_ROOT\CLSID\{"your controls GUID"}\Implemented    Categories\{7DD95802-9882-11CF-9FA9-00AA006C42C4}   
7DD95801-9882-11CF-9FA9-00AA006C42C4为安全空间的ID。 如果是ATL的工程,很简单需要在控件中实现IObjectSafety接口, class CLoginCtl :     .... ,     public IObjectSafetyImpl<CLoginCtl, INTERFACESAFE_FOR_UNTRUSTED_CALLER | INTERFACESAFE_FOR_UNTRUSTED_DATA> { ... BEGIN_COM_MAP(CLoginCtl) COM_INTERFACE_ENTRY(IObjectSafety) END_COM_MAP() ... } 或者 BEGIN_CATEGORY_MAP(CLoginCtl) IMPLEMENTED_CATEGORY(CATID_SafeForInitializing) msdn http://support.microsoft.com/kb/168371/en-us
07年给启明星辰做天清汉马SSLVPN客户端的时候,当时老孟强烈建议使用mfc的ocx,所以就没做atl的,当时使用还是vc6,虽然已经有了vc8。 时隔5年之后,我又开始写SSLVPN客户端,发现vc6写的ocx在IE8上经常崩溃,而且还要处理DEP的问题,只能使用atl8之后的版本。 在初始化控件之前,IE会调用IObjectSafety::SetInterfaceSafetyOptions强制ocx处理不信任的数据初始化和调用。 public IObjectSafetyImpl<CXXXAgent, INTERFACESAFE_FOR_UNTRUSTED_CALLER | INTERFACESAFE_FOR_UNTRUSTED_DATA >, 诡异的是vc8,vc9可以执行public IObjectSafetyImpl<CXXXAgent, INTERFACESAFE_FOR_UNTRUSTED_CALLER | INTERFACESAFE_FOR_UNTRUSTED_DATA | INTERFACE_USES_DISPEX | INTERFACE_USES_SECURITY_MANAGER>, vc10只能执行public IObjectSafetyImpl<CXXXAgent, INTERFACESAFE_FOR_UNTRUSTED_CALLER | INTERFACESAFE_FOR_UNTRUSTED_DATA >。

Activex控件的IObjectSafety接口问题的更多相关文章

  1. c# ActiveX 控件的开发

    关于ActiveX控件的开发,网上很多例子,昨天也整整研究一天才捋顺了. 网上大部分例子都是js调用控件的方法,由于要实现在html页面"相应"控件的事件,整整折腾一天. 关键点在 ...

  2. 使用回调接口实现ActiveX控件和它的容器程序的通讯

    本文阅读基础:有一定的C++基础知识(了解继承.回调函数),对MFC的消息机制有一定了解,对COM的基础知识有一定了解,对ActiveX控件有一定了解. 一. 前言 ActiveX控件和它的容器程序如 ...

  3. ActiveX控件(MFC篇)

    目录 第1章 VC++6.0创建控件    1 1.1 目标    1 1.1.1 方法    1 1.1.2 属性    1 1.1.3 事件    1 1.2 创建项目    2 1.3 项目结构 ...

  4. 用ATL和MFC来创建ActiveX控件

    摘要:目前MFC和ATL代表了两种框架,分别面向不同类型的基于Windows的开发.MFC代表了创建独立的Windows应用的一种简单.一致的方法:ATL提供了一种框架来实现创建COM客户机和服务器所 ...

  5. ActiveX 控件漏洞挖掘之方法

    ActiveX是微软公司提出,并在1996年被正式命名的组件技术.该技术提供了一种通用的开放程序接口,使用这种技术开发的ActiveX控件可以直接集成到IE浏览器或第三方应用程序中,但由于第三方编程等 ...

  6. Qt开发Activex笔记(二):Qt调用Qt开发的Activex控件

    若该文为原创文章,转载请注明原文出处本文章博客地址:https://blog.csdn.net/qq21497936/article/details/113789693 长期持续带来更多项目与技术分享 ...

  7. 用C#开发ActiveX控件,并使用web调用

    入职差不多两个月了,由学生慢慢向职场人做转变,也慢慢的积累知识,不断的更新自己.最近的一个项目里边,涉及到的一些问题,因为SDK提供的只是winform才能使用了,但是有需求咱们必须得完成啊,所以涉及 ...

  8. .net下开发ActiveX控件

    `   ActiveX 是一个开放的集成平台,为开发人员. 用户和 Web生产商提供了一个快速而简便的在 Internet 和 Intranet 创建程序集成和内容的方法. 使用 ActiveX, 可 ...

  9. C#ActiveX控件开发学习

    一:C#ActiveX控件开发注意事项   1:C#开发的ActiveX控件只可在装有Framework的系统上才能用. 2:只有IE浏览器支持. 3:初次安装需要导入代码签名证书及其证书链的方式, ...

随机推荐

  1. 随机森林学习-sklearn

    随机森林的Python实现 (RandomForestClassifier) # -*- coding: utf- -*- """ RandomForestClassif ...

  2. webpack相关笔记

    文档地址:链接 文档:https://doc.webpack-china.org/configuration/ 慕课网地址:链接 参考地址:链接 1.webpack是一个前端打包工具,特点:代码分割( ...

  3. excel导出的时候从程序后台写到excel里的是文本,所以无法在excel中计算怎么办?

    文章引用自:http://www.cnblogs.com/rayray/p/3414452.html excel导出的时候从程序后台写到excel里的是文本,所以无法在excel中计算怎么办? 需要导 ...

  4. 有关cookie

    cookie     会话跟踪技术               <script>             /*                 cookie 全称  会话跟踪技术.     ...

  5. IO中File类基本使用

    package chapter10; import java.io.File; public class TestFile01 { public static void main(String[] a ...

  6. mybatis中的查询语句in用法的相关问题

    在开发的时候,mybatisl中使用in的时候会遇到一些问题,如果我们传的参数是String类型,以“,”来进行隔开的,例如:参数是0,1,2字符串,mybatis中的语句如下 <select ...

  7. [转] 深入理解React 组件状态(State)

    React 的核心思想是组件化的思想,应用由组件搭建而成,而组件中最重要的概念是State(状态),State是一个组件的UI数据模型,是组件渲染时的数据依据. 一. 如何定义State 定义一个合适 ...

  8. springmvc中登录过滤器使用

      前言 一般的javaWeb项目中我们肯定会使用过滤器来实现对一些请求的过滤,通过过滤来实现对一些请求参数的设置和校验,比如我们比较熟悉的CharacterEncodingFilter就是一个字符编 ...

  9. 用HTML+CSS画出一个同心圆

    参加web前端校招的同学们经常会遇到这样的面试题:用HTML+CSS画出一个同心圆. 例如: 这道题主要考验的是基础盒模型布局能力和倒圆角属性的巧用. 1.html代码 <body> &l ...

  10. 069 Hue协作框架

    一:介绍 1.官网 官网:http://gethue.com/ 下载:http://archive.cloudera.com/cdh5/cdh/5/,只能在这里下载,不是Apache的 手册:http ...