COM组件设计与应用(十八)——属性包
作者:杨老师

下载源代码
一、前言

  书接上回,本回着落在介绍属性包 IPersistPropertyBag 接口的实现方法和调用方式。属性包,是以“名称 - 值”的方式提供组件持续性的支持,而“名称 - 值”恰恰又适合于用文本方式来表现。下面的片段是在 HTML 中插入 Microsoft MonthView Control ActiveX 控件后的样式:


<object classid="clsid:232E456A-87C3-11D1-8BE3-0000F8754DA1" id="MonthView1">
	<param name="_ExtentX" value="9393">
	<param name="_ExtentY" value="4974">
	<param name="_Version" value="393216">
	<param name="ForeColor" value="0">
	<param name="MaxSelCount" value="7">
	<param name="MonthColumns" value="1">
	<param name="CurrentDate" value="38632">
	<param name="MaxDate" value="2958465">
	<param name="MinDate" value="-53688">
</object>


以文本方式保存组件属性,比较直观、容易修改,上面 HTML 示例中的 <param name="属性名" value="值"> 就很清晰。下面开始介绍如何在组件中实现 IPersistPropertyBag 接口。