_variant_t(IDispatch* pSrc, bool fAddRef) 使用一个COM组件的指针构造一个_variant_t类型的对象...

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();

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值