ATL属性包(PropertyBag)
ATL下如何添加属性包
属性包: ActiveX增加对插件属性的支持后, 使其能在网页中通过OBJECT属性, 在控件初始化前将参数传入.
A. 在类中加入继承 public IPersistPropertyBagImpl<CXXX>, 并添加响应的接口映射, 如下;
BEGIN_COM_MAP(CXXX) ... COM_INTERFACE_ENTRY(IPersistPropertyBag) ... END_COM_MAP()
B. 为Composite控件接口添加属性. 在WorkSpace中, 右击接口名, 选择"Add property"后, 在property中分别添入参数类型(BSTR)和属性名(Name)即可.
BEGIN_PROP_MAP(CXXX) PROP_DATA_ENTRY("_cx", m_sizeExtent.cx, VT_UI4) PROP_DATA_ENTRY("_cy", m_sizeExtent.cy, VT_UI4) // Example entries // PROP_ENTRY("Property Description", dispid, clsid) // PROP_PAGE(CLSID_StockColorPage) // 6 -> dispid,dispid为接口属性的id PROP_ENTRY("Name", 6, CLSID_NULL) END_PROP_MAP()
*你可以通过双击接口,在接口定义中看到dispid.如下:id(6)
... [propget, id(6), helpstring("property Name")] HRESULT Name([out, retval] BSTR *pVal); [propput, id(6), helpstring("property Name")] HRESULT Name([in] BSTR newVal); ...
C. 定义一个成员变量,用来存放传入的参数.CComBSTR m_bstrValue;在你定义的属性中,(加入如下黑体的行)用以保存传进来的参数值.
STDMETHODIMP CVMShow::get_Name(BSTR *pVal) { *pVal = m_bstrValue.Copy(); return S_OK; } STDMETHODIMP CVMShow::put_Name(BSTR newVal) { m_bstrValue= newVal; return S_OK; }
D. 网页的交互为,如果控件有窗口的话.(这些交互在ActiveX对话框的初始化前就进行了)
<object id='AtlComId' classid='XXXXXX'> <param name='Name' value='hqulyc'> </object>
注: 对于Simple Object的ATL在加入属性包接口和接口映射后,需要定义一个共有的成员变量:bool m_bRequiresSave; m_bRequiresSave=false;
ATL属性包(PropertyBag)相关推荐
- .net core 微服务之模型表字段动态扩展二——EF core的属性包支持
今天学到了一个视角,叫做读者视角--从情商角度看就是换位思考.当我在写文章的时候,可能仅仅站在我的角度看待这个写的动作.那我就怎么写的爽怎么来,什么用词用字就按自己的习惯来书写,文章的深浅随心,反正我 ...
- DP/eDP协议学习--属性包(MSA)和SDP的插入
接上篇视频传输格式 划个水,这部分内容大多是这个截图比较多, 属性包和SDP的需要使用SS/SE进行封装. 属性数据(MSA)包 属性数据如下表所示,MSA只能在垂直消隐区发送,并且一帧只能发送一次. ...
- SharePoint 2013 CSOM 对象模型属性包
博客地址:http://blog.csdn.net/FoxDave 虽说是翻译,但是并没什么翻译的,主要内容就是说有一些能通过Server API配置的Site/Web属性在CSOM中找不到,其 ...
- python全栈工程师能接到私活么_Python全栈工程师(包、模块 的导入)
ParisGabriel 每天坚持手写 一天一篇 决定坚持几年 为了梦想 为了信仰 Python人工智能从入门到精通 $ pip3 install tensorflow : 第三方模块tensor ...
- python中模块文件的扩展名不一定是py_python模块和python包有什么区别?
python模块和python包有什么区别? 另请参见:"package"和"module"(其他语言)之间的区别是什么? 我可能错了,但对我来说:模块基本上是 ...
- less/sass中属性选择器使用方法
<div className={styles.box}><span index="2" mylabel="hello some">tes ...
- VS2008 不在支持 Attributed ATL
从VS2008的What' new 来看,VS2008已经不在支持ATL属性编程.相关描述见下: The ATL Project wizard no longer provides an option ...
- (翻译)Attacking Interoperability(攻击互操作性)in Black Hat 2009 研究报告
前言 攻击互操作性(Attacking Interoperability)是 Mark & Ryan & David 发表于 2009 年的美国黑帽大会(Black Hat)上的一份研 ...
- Visual Studio 2019 发行说明
原文:https://docs.microsoft.com/zh-cn/visualstudio/releases/2019/release-notes 单击按钮即可下载最新版 Visual Stud ...
最新文章
- flask_模拟请求post,get
- 201671010128 2017-11-12《Java程序设计》之图形程序设计
- ospf cost 引起路由可以ping通但应用无法连接_路由算法(通网五)
- iOS进阶之架构设计MVVM模式仿新闻项目(6)
- c语言 文件 long double 读取,读取*.wav音频文件
- Servlet+MySQL使用DBCP数据库连接池实现用户登录
- Tomcat配置解析
- struts2在lt;s:selectgt;用动态标签
- 如何写好工作周报?工作周报模板
- Keil5 显示汉字时字体不生效,设置国标时,字体设置无效。
- php paypal支付接口文档,php 实现PayPal支付
- PS和AE、PR的区别是什么?
- rtmp流放与flv格式视频问题解决
- 网页字体转换——实习僧
- python面试题整活:另类复制粘贴
- 【数据处理与分析】电商订单数据清洗
- 类型多样的鸡尾酒免抠摄影素材,速来收藏
- 高职计算机文化基础考试试题,计算机文化基础期末试题(高职)新.doc
- Stata:交乘项的对称效应与图示
- Ae入门系列之一:了解Ae及工作流程
热门文章
- 当前超级计算机的应用方兴未艾,(全国通用版)18版高考语文大一轮复习第2周基础组合练4...
- 5种实用方案——找回丢失的excel文件
- data:image/png;base64,iVBORw0KGg... 表示的是一张图片
- WPS压力传感器测高温部件的注意事项
- 人民币在岸 离岸 中间价的含义与关系
- 正三角形旋转一周得到的图形是_将图中的直角三角形绕最长的边旋转一周可以得到的一个几何体,从正面看这个几何体所得到的平面图形是()A.B...
- 关于ESP8266+OLED显示网络天气+天气图标,我掉进过的一些坑
- 模具设计干货,UG部件的自动取整
- 如何区别随身WiFi板子是什么芯片
- 服务器显示无internet,为何我可以上网,但却显示无internet访问