要使常用工具具有专用性,请定义其值由工具选项板框架保留的特性。这些属性的值区分单个常用工具的各种实例。由于项目通过 COM 接口与框架通信,因此首先使用 ATL 定义自动化属性。若要在运行时处理属性,请在 coclass 中定义函数。getput
对于此示例项目,定义单个属性 ,,类型。CmdNameBSTR
添加属性支持
- 使用 Visual Studio 的 ATL 向导,添加一个名为 newproperty 的 newproperty,该属性支持两者和函数。BSTRCmdNamegetput
- 在SimpleTool.h 中,将公共数据成员添加到 thecoclass 以表示新属性:CSimpleTool
TCHAR m_tcCmdName[256];
- 如果 ATL 向导尚未这样做,请将公共方法声明添加到 coclass:getput
STDMETHOD(get_CmdName)(/*out, retval*/ BSTR* pVal);
STDMETHOD(put_CmdName)(/*in*/ BSTR newVal);
- 在SimpleTool.cpp 中,属性的实现和方法,如下所示:getput
STDMETHODIMP CSimpleTool:get_CmdName(BSTR* pVal)
{
CComBSTR bStr(m_tcCmdName);
bStr.CopyTo(pVal);
return S_OK;
}
STDMETHODIMP CSimpleTool:put_CmdName(BSTR newVal)
{
CComBSTR bStr(newVal);
COLE2T szName(bStr);
_tcscpy(m_tcCmdName, szName);
return S_OK;
}
此示例使用 ATL 7.0 提供的类对象和宏来处理字符串类型转换。请参阅 Microsoft 文档,了解注意事项和指南,以便在使用这些 ATL 功能时考虑。CComBSTRCOLE2T
|