`
jgsj
  • 浏览: 951645 次
文章分类
社区版块
存档分类
最新评论

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

分享到:
评论

相关推荐

    有个麻烦的事情就是_variant_t变量的使用

    有个麻烦的事情就是_variant_t变量的使用

    _bstr_t和_variant_t

    _bstr_t和_variant_t,主要介绍_bstr_t和_variant_t两种数据类型的简单作用。

    ADO中_variant_t变量的使用与转换

    用ADO做数据库,有个麻烦的事情就是_variant_t变量的使用,使用本例中封装的CConvert类转换就方便了。

    网页数据提取功能 C++类

    CDownloader处理IE事件的主要方法有两个:一个是OnBeforeNavigate2(VARIANT_BOOL *pCancel, VARIANT *pVarURL, IDispatch *pDispBrowser),用于处理DISPID_BEFORENAVIGATE2事件;另一个是OnDocumentComplete(VARIANT...

    _variant_t类型转换

    将 _variant_t 类型的变量,转换成任意类型

    博途利用MOVE-BLK-VARIANT实现混合数据类型的块移动

    MOVE_BLK_VARIANT范例

    variant_t的用法

    variant_t的详细用法解说 COleDateTime vartodate(const _variant_t& var) { COleDateTime value; switch (var.vt) { case VT_DATE: { value = var.date; } break; case VT_EMPTY:

    vc Variant类型转换成CString函数

    一个Variant类型转换成CString的函数,调试过,可以用。

    A_New_Variant_of_the_Matsumoto-Imai_Cryptosystem_t

    A_New_Variant_of_the_Matsumoto-Imai_Cryptosystem_t

    餐厅管理信息系统课程设计

    工程使用的是基于对话框的程序,每个对话框为一个类,父类为CDialog,实现的一些功能都封装在类的函数中,体现了面向对象编程语言C++的特性。 导入ADO接口:在工程的stdafx.h文件里直接引入符号#import引入ADO库文件...

    byte-VARIANT.rar_VARIANT byte_com variant BYT_variant_visual c_字

    这段程序可以把byte[](字节数组)转换为VARIANT类型。

    餐饮管理.dsw

    m_pRecordset->Open("SELECT * FROM 姓名",_variant_t((IDispatch*)m_pConnection,true),adOpenStatic,adLockOptimistic,adCmdText); } catch (_com_error e) { m_pConnection->Execute("CREATE ...

    标准MFC WinSock ActiveX控件开发实例

    后面看到各种变量类型包括在一个联合体当中,也就是说指明vt后,你只能使用对应的其中之一变量类型。看着这众多的各种不同 类型变量集中在一起,确实让人吓了一跳,但细细看来,大多数变量跟我们平时的用法相似。...

    comsupp.lib源码

    当用evc编写atl客户端程序时,会有 ...0_variant_t@@QAE@PBG@Z) 的提示,此时需要在project-setting-link中加入comsupp,lib,但evc中只有arm4平台的lib文件。利用本程序可以编译出各种cpu的lib,经本人测试可以正常使用

    信息安全_数据安全_Automatic_Search_for_A_Variant_of_Divi.pdf

    信息安全_数据安全_Automatic_Search_for_A_Variant_of_Divi 安全 数据分析 安全感知 自动化 隐私合规

    C语言头文件 VARIANT

    C语言头文件 VARIANTC语言头文件 VARIANTC语言头文件 VARIANTC语言头文件 VARIANTC语言头文件 VARIANTC语言头文件 VARIANTC语言头文件 VARIANTC语言头文件 VARIANTC语言头文件 VARIANTC语言头文件 VARIANTC语言...

    班级管理系统mfc月数据库的结合

    实现班级信息管理 if (FAILED(pRs->Open((_variant_t)strSQL,_variant_t((IDispatch*)theApp.m_pConnection,true),adOpenStatic,adLockOptimistic,adCmdText))) { AfxMessageBox("Can not open Database!"); ...

    Python库 | open_variant-0.4.7-py3-none-any.whl

    资源分类:Python库 所属语言:Python 使用前提:需要解压 资源全名:open_variant-0.4.7-py3-none-any.whl 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059

    调用excel数据库

    rgMyRge.SetItem(_variant_t((long)1),_variant_t((long)1),_variant_t("This is a Excel Test Program!")); //得到所有的列 rgMyRge.AttachDispatch(wsMysheet.GetColumns(),true); //设置第一列 rgMyRge....

    VBS.rar_variant vbscript

    VBScript 只有一种数据类型,称为 ...Variant 是一种特殊的数据类型,根据使用的方式,它可以包含不同类别的信息。因为 Variant 是 VBScript 中唯一的数据类型,所以它也是 VBScript 中所有函数的返回值的数据类型。

Global site tag (gtag.js) - Google Analytics