第五章 COM实用入门教程第三讲.ppt

  1. 1、本文档共45页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
VARIANT的使用 用VARIANT保存LONG类型。 VARIANT var; VariantInit(var); var.vt = VT_I4; //为什么vt是VT_I4呢? var.lVal = 100; VariantClear(var); //查看VARIANT结构体定义之前的注释可以查看到VT_I4与数据类型的对应关系,同时也可以查看到VT_I2,VT_R4等与相应数据类型的对应关系。 VARIANT的使用 用VARIANT保存FLOAT类型。 VARIANT var; VariantInit(var); var.vt = VT_R4; var.fltVal = 1.23f; VariantClear(var); VARIANT的使用 用VARIANT保存BSTR类型。 VARIANT var; VariantInit(var); var.vt = VT_BSTR; var.bstrVal = SysAllocString(LHello UIPower); VariantClear(var); VARIANT的使用 用VARIANT保存类型。 VARIANT var; VariantInit(var); var.vt = VT_BOOL; var.boolVal = VARIANT_FALSE; VariantClear(var); 从VARIANT读取相应类型的值。 if (var.vt == VT_I4) { long lValue = var.lVal; } else if (var.vt == VT_R4) { float fValue = var.fltVal; } else if (var.vt == VT_BSTR) { BSTR bstrValue = var.bstrVal; } else if (var.vt == VT_BOOL) { VARIANT_BOOL varbValue = var.boolVal; } 这一讲,主要讲解如下要点: 一、IDispatch的简介与作用; 二、常用的COM数据类型; 三、COM数据类型的转换; 四、VARIANT类型的派生类。 COM数据类型的转换 //LONG转换成FLOAT VARIANT var; VariantInit(var); var.vt = VT_I4; var.lVal = 100; VariantChangeType(var,var,0, VT_R4); if (var.vt == VT_R4) { float fValue = var.fltVal; } VariantClear(var); COM数据类型的转换 //LONG转换成BSTR VARIANT var; VariantInit(var); var.vt = VT_I4; var.lVal = 100; VariantChangeType(var,var,0, VT_BSTR); if (var.vt == VT_BSTR) { BSTR fValue = var.bstrVal; } VariantClear(var); 这一讲,主要讲解如下要点: 一、IDispatch的简介与作用; 二、常用的COM数据类型; 三、COM数据类型的转换; 四、VARIANT类型的派生类。 VARIANT类型的派生类 直接通过VARIANT API,比如VariantInit, VariantClear等来操作VARIANT比较麻烦,不方便。 给VARIANT赋值也需要设置VARIANT.vt,再设置VARIANT.lVal或VARIANT.fltVal等,也比较麻烦,不方便。 于是有人编写了派生类(子类)来继承VARIANT,然后在派生类中拓展VARIANT的使用方法,使VARIANT的使用更方便,更直接。 VARIANT类型的派生类 目前VARIANT的派生类主要有_variant_t,CComVariant,COleVariant。 _variant_t是VC为支持COM类型而自带的VARIANT派生类,在Visual Studio安装目录\VC\include\comutil.h中定义。 CComVariant是ATL库为支持COM类型而自带的VARIANT派生类,在Visual Studio 安装目录\VC\atlmfc\include\atlcomcli.h中定义。 COleVar

您可能关注的文档

文档评论(0)

kehan123 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档