作者:王卫星
csdnid:wangweixing2000
职能指针其实只是为了我们开发者方便使用的东东,但是大多数据开发者总是害怕会有泄漏,以前的字符串的泄漏问题大家都应该知道了。atl7的出现应该让我们放心使用了!职能指针只是对我们的一些类型或者接口的封装,使我不用每次考虑这引用技术的问题!
我们经常用到的职能指针CComPtr,IxxxxPtr,CComBSTR,CComVariant ,_bstr_t。
CComBSTR和_bstr_t的用法:我在csdn整理的帖子已经讲得很细了大家可以去看看:http://community.csdn.net/Expert/topic/3789/3789751.xml?temp=.8534662
这里应该注意的就是接口中返回字符串的处理:
HRESULT CFoo::get_Name(BSTR* name)
{
if
(name==NULL) return
E_POINTER;
CComBSTR bsName(L"FooBar"); //如果有成员变量如CComBSTR m_name,用m_name替换 L"FooBar"即可CComBSTR bsName(m_name);这里主要是为了引起引用计数+1
*name = bsName.Detach();
}
下来讲讲CComVariant 的用法