- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
COM实用入门教程第三讲
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
您可能关注的文档
- 2013-2014学年 高中数学 人教B版选修2-1【配套备课资源】第二章精要课件 《圆锥曲线与方程》章末复习课.ppt
- 2012洗衣机.ppt
- 2012染发专家二.ppt
- 2013届高三生物 实验专项突破13 杂交育种问题的分析课件 新人教版.ppt
- 2013届高三生物 实验专项突破12 遗传类实验题的答题技能课件 新人教版.ppt
- 2013届高三生物 实验专项突破17 DNA复制方式的探究课件 新人教版.ppt
- 2012高三物理实验复习4.ppt
- 2013届高三生物 实验专项突破30 调查当地环境污染课件 新人教版.ppt
- 2013届高三生物 实验专项突破31 DNA的粗提取与鉴定 新人教版 课件.ppt
- 2013届高三生物考前实验专项突破名师精品5--观察植物细胞的质壁分享及复原.ppt
最近下载
- 新版(高级)汽车驾驶员考试题库大全(含答案).docx
- 长沙会战幻灯片.ppt VIP
- 7.《短歌行》《归园田居(其一)》联读课件 统编版高中语文必修上册.pptx VIP
- TB 10753-2018 高速铁路隧道工程施工质量验收标准.pdf VIP
- 压型彩钢屋面板施工方案方案.pdf VIP
- 情境教学法在小学英语课堂教学中的运用.pptx VIP
- 全国生态状况调查评估技术规范——生态系统服务功能评估(HJ 1173—2021).pdf VIP
- 北师大版四年数学上册六除法《路程、时间与速度》课件.pptx VIP
- 2025年一季度专题党课讲稿讲稿:提升党性修养践行使命担当.pptx VIP
- 频率选择表面赋能多功能隐身雷达天线罩:理论、设计与应用探索.docx
文档评论(0)