ATL在Web中的Param属性初始化问题
2014-07-31 23:12
375 查看
为了使页面加载COM组件时能够使用
<object id="aComInstCheck" classid="CLSID:A92203E3-1CBF-48F7-BCA3-C41352FAFFE3" >
<param name="longTest" value="4" />
</object>
给COM组件属性 longTest 赋值,需要给ATL控件添加一个固有属性:
(1) 为组件对象添加基类:public IPersistPropertyBagImpl<CXX>
(2) 添加对应的接口映射:COM_INTERFACE_ENTRY(IPersistPropertyBag)
(3) 属性映射表中添加你要的:
BEGIN_PROP_MAP(CXX)
PROP_ENTRY("longTest", 2, CLSID_XX)
END_PROP_MAP()
这里idl对应关于dispid = 2相关代码如下:
[propget, id(2)] HRESULT longTest([out, retval] LONG* pVal);
[propput, id(2)] HRESULT longTest([in] LONG newVal);
(4) 由于继承了 IPersistPropertyBagImpl 要为组件对象添加如下成员变量:
public:
BOOL m_bRequiresSave;
不添加,编译报如下错误:
error C2039: “m_bRequiresSave”: 不是“CXX”的成员
<object id="aComInstCheck" classid="CLSID:A92203E3-1CBF-48F7-BCA3-C41352FAFFE3" >
<param name="longTest" value="4" />
</object>
给COM组件属性 longTest 赋值,需要给ATL控件添加一个固有属性:
(1) 为组件对象添加基类:public IPersistPropertyBagImpl<CXX>
(2) 添加对应的接口映射:COM_INTERFACE_ENTRY(IPersistPropertyBag)
(3) 属性映射表中添加你要的:
BEGIN_PROP_MAP(CXX)
PROP_ENTRY("longTest", 2, CLSID_XX)
END_PROP_MAP()
这里idl对应关于dispid = 2相关代码如下:
[propget, id(2)] HRESULT longTest([out, retval] LONG* pVal);
[propput, id(2)] HRESULT longTest([in] LONG newVal);
(4) 由于继承了 IPersistPropertyBagImpl 要为组件对象添加如下成员变量:
public:
BOOL m_bRequiresSave;
不添加,编译报如下错误:
error C2039: “m_bRequiresSave”: 不是“CXX”的成员
相关文章推荐
- Logback初始化失败问题排查(Web.xml中context-param配置详解)
- web程序的初始化问题——ServletContextListener----调试成功
- 项目中使用Spring时配置web.xml的listener侦听接口不能初始化的问题
- web.xml中的初始化参数(init-param)与上下文参数(context-param)
- js-dom-动态创建html标签时,name属性的初始化问题
- VS2008中ATL项目“对象不支持此属性和方法”问题
- EJB模块和WEB模块的关系和配置参数初始化问题
- UserControl 中包含封装了集合对象的属性被设计器自动初始化所引起的错误!也有关于List的问题
- 关于JAVA中变量的初始化及类属性的默认值问题
- web程序的初始化问题——ServletContextListener
- 问题“ConnectionString属性尚未初始化”之解决办法
- web程序的初始化问题——ServletContextListener - []
- 这个问题不简单:非静态的字段、方法或属性“System.Web.UI.Page.Request.get”要求对象引用
- UserControl 中包含封装了集合对象的属性被设计器自动初始化所引起的错误!也有关于List的问题
- 只能从脚本中调用在类定义上有[ScriptService]属性的 Web 服务问题的解决方法
- 网页初始化ATL开发的activex控件属性
- UserControl 中包含封装了集合对象的属性被设计器自动初始化所引起的错误!也有关于List的问题
- ConnectionString 属性尚未初始化。问题的最直接解决方案!
- 问题“ConnectionString属性尚未初始化”之解决办法
- C#变量初始化问题:字段初始值无法引用非静态字段、方法或属性