COM interface pointer => _variant_t
Constructs a _variant_t object of type VT_DISPATCH from a COM interface pointer. IffAddRef istrue, thenAddRef is called on the supplied interface pointer to match the call toRelease that will occur when the_variant_t object is destroyed. It is up to you to callRelease on the supplied interface pointer. IffAddRef is false, this constructor takes ownership of the supplied interface pointer; do not callRelease on the supplied interface pointer.
使用一个COM组件的指针构造一个_variant_t类型的对象。
如果fAddRef为真时,会调用COM组件的AddRef函数为该组件添加一个引用。AddRef函数和Release函数相对应,当_variant_t销毁的时候调用会调用Release函数。至于原来的COM组件调用不掉用Release由你自己决定。如果fAddRef为假时,这个_variant_t对象就取得了这个COM组件的所有权,原来的COM组件就不能再调用Release了。
for example:
_ConnectionPtr m_pConnect;
m_pConnect.CreateInstance("ADODB.Connection");
// 以下几种情况一样:
1、_variant_t v1 = (_variant_t)(IDispatch*)m_pConnect;
2、_variant_t v2 = _variant_t((IDispatch*)m_pConnect, true);
3、_variant_t v3 = _variant_t((IDispatch*)m_pConnect, false);
m_pConnect->AddRef();
本文介绍如何使用COM组件的指针构造_variant_t类型的对象。详细解释了构造函数中fAddRef参数的作用,以及如何根据fAddRef的真假来决定是否调用AddRef和Release函数。
823

被折叠的 条评论
为什么被折叠?



