ATL属性化

从VS.Net开始,MS开始支持属性化选项(这个选项位于ATL工程向导中的复选框“Attributed”),属性化使得接口声明非常干净清爽。在大规模的COM工程,这点很重要,使得一看到声明就知道提供了哪些接口,而不是在一大堆乱糟糟的派生类和模版类里面找。但是本质上并没有差别,只不过VS把一些代码隐藏起来而已。以下可以看出两者接口声明之间的差异

参考网址:

http://libo.deng.blog.163.com/blog/static/40157422200893091523933/

时间: 2024-10-11 01:01:42

ATL属性化的相关文章

属性化字符串的使用

如果我们要在label或者textView上显示一段文字,比如:"y = ax2 + bx +c",我们预想的结果是这样的 即让一个label或者textView上显示的文本能展示多种颜色,这时候属性化字符串就显得非常有用了. -(NSAttributedString *)getFormulaAttributedTextWithStr:(NSString *)str //这个传入进来的str就是我们要展示多种颜色的文本"y = ax2 + bx +c" { NSMu

【转载】COM 组件设计与应用(六)——用 ATL 写第一个组件

原文:http://vckbase.com/index.php/wv/1216.html 一.前言 1.与 <COM 组件设计与应用(五)>的内容基本一致.但本回讲解的是在 vc.net 2003 下的使用方法,即使你不再使用vc6.0,也请和上一回的内容,参照比对. 2.这第一个组件,除了所有 COM 组件必须的 IUnknown 接口外,我们再实现一个自己定义的接口 IFun,它有两个函数: Add()完成两个数值的加法,Cat()完成两个字符串的连接. 3.下面......好好听讲! 开

【转载】COM 组件设计与应用(十八)——属性包

原文:http://vckbase.com/index.php/wv/1265.html 一.前言 书接上回,本回着落在介绍属性包 IPersistPropertyBag 接口的实现方法和调用方式.属性包,是以“名称 - 值”的方式提供组件持续性的支持,而“名称 - 值”恰恰又适合于用文本方式来表现.下面的片段是在 HTML 中插入 Microsoft MonthView Control ActiveX 控件后的样式: <object classid="clsid:232E456A-87C

ATL - JavaScript混合编程

JavaScript混合编程- ATL 最后更新日期:2014-5-10 环境:Windows8.1 64bit英文版,Visual Studio 2013 Professional Update1英文版 阅读前提:COM的基本概念 内容简介 ATL(ActiveTemplate Library)是微软为了简化COM编程提供的一套C++模板,这里介绍如何用ATL建立一个简单的轻量级COM服务供JavaScript脚本调用,使我们对ATL的使用有个概念. Hello,World 使用Adminis

Python class的属性访问控制和内建函数重写实现高级功能以及@property

一.类属性的访问控制 Python Class确实是博大精深,我们还是来温习一下属性的访问控制作为开(fu)场(xi). 首先_varname是可以访问的,__varname是不能直接访问(原理是__varname变成了_classname__varname) 1 >>> class A: 2 ... _aa = 1 3 ... __bb = 2 4 ... 5 >>> 6 >>> 7 >>> c = A() 8 >>&g

【转载】COM 组件设计与应用(十四)——事件和通知(vc.net)

原文:http://vckbase.com/index.php/wv/1244.html 一.前言 我的 COM 组件运行时产生一个窗口,当用户双击该窗口的时候,我需要通知调用者: 我的 COM 组件用线程方式下载网络上的一个文件,当我完成任务后,需要通知调用者: 我的 COM 组件完成一个钟表的功能,当预定时间到达的时候,我需要通知调用者: ... ... ... ... 本回书开始话说 COM 的事件.通知.连接点......这些内容比较多,我分两次(共四回)来介绍. 二.通知的方法 当程序

【转载】COM 组件设计与应用(十七)——持续性

原文:http://vckbase.com/index.php/wv/1264.html 一.前言 我们写程序,经常需要实现这样的需求: 例一.程序运行产生一个窗口,用户关闭的时候需要记录窗口的位置,以便下次运行时保持位置不变: 例二.由于程序运行时间很长,今天执行一部分,明天继续执行.那么在下次运行前要恢复前次的状态: ... ... ... ... 智慧的老师:以上这些需求,如何实现呢? 懵懂的学生:这个简单,只要在程序退出前提取必要的信息保存到文件中,下次运行时再从文件中读出来,设置一下就

【转载】COM 组件设计与应用(十六)——连接点(vc.net)

原文:http://vckbase.com/index.php/wv/1257.html 一.前言 上回书介绍了回调接口,在此基础上,我们理解连接点就容易多了. 二.原理 图一.连接点组件原理图.左侧为客户端,右侧为服务端(组件对象) 看着好复杂呀......呵呵,其实简单的紧:(注1) 1.一个 COM 组件,允许有多个连接点对象(IConnectionPoint). 也就是说可以有多个发生“事件”的源头.上图就有3个连接点: 2.管理这些连接点的接口叫“连接点容器”(IConnectionP

剖析ActiveX控件安全问题

Dissect ActiveX Control Safety 1.介绍 如果你曾经在网页或者ASP中使用过com对象,你可能会发现,有时候会出现这样讨厌的对话框     这是因为你的控件没有被标记为安全的,对于初始化不安全或者对于脚本不安全,甚至兼而有之.你每打开一次这样的网页,这种情况就会发生一次,你怎么办?当然,这可以通过设置IE本身的安全等级为low来解决这样的问题,但是如果你要制作一个可发布的控件,你能想象到每一位用户在使用你制作的控件时都要且列抱怨这种强制行为:或者如果你是其中一个使用