⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 property.h

📁 介绍属性包 IPersistPropertyBag 接口的实现方法和调用方式。属性包
💻 H
字号:
// Property.h : Declaration of the CProperty

#ifndef __PROPERTY_H_
#define __PROPERTY_H_

#include "resource.h"       // main symbols

/////////////////////////////////////////////////////////////////////////////
// CProperty
class ATL_NO_VTABLE CProperty : 
	public CComObjectRootEx<CComSingleThreadModel>,
	public CComCoClass<CProperty, &CLSID_Property>,
	public IDispatchImpl<IProperty, &IID_IProperty, &LIBID_SIMPLE18Lib>,
	public IPersistPropertyBagImpl<CProperty>
{
public:
	CProperty()
	{
		m_bRequiresSave = false;
		m_integer = 0;
	}

DECLARE_REGISTRY_RESOURCEID(IDR_PROPERTY)

DECLARE_PROTECT_FINAL_CONSTRUCT()

BEGIN_COM_MAP(CProperty)
	COM_INTERFACE_ENTRY(IProperty)
	COM_INTERFACE_ENTRY(IDispatch)
	COM_INTERFACE_ENTRY(IPersistPropertyBag)
END_COM_MAP()

BEGIN_PROP_MAP(CProperty)
	// 参数:"属性名称", 接口属性序号(见IDL文件), 属性页对话窗
	PROP_ENTRY("str", 1, CLSID_NULL)
	PROP_ENTRY("integer", 2, CLSID_NULL)
END_PROP_MAP()
// IProperty
public:
	STDMETHOD(get_str)(/*[out, retval]*/ BSTR *pVal);
	STDMETHOD(put_str)(/*[in]*/ BSTR newVal);
	STDMETHOD(get_integer)(/*[out, retval]*/ long *pVal);
	STDMETHOD(put_integer)(/*[in]*/ long newVal);

	bool m_bRequiresSave;
	CComBSTR m_str;
	long m_integer;
};

#endif //__PROPERTY_H_

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -