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
最近下载
- 附件: 黑龙江省年“村村大学生计划(培养)” 招 生 简 章 “村村 .doc VIP
- 往年江苏省教师招聘考试教育学心理学真题及答案.docx VIP
- 国资集团考试试题及答案.docx VIP
- 部编版语文一年级下册阅读11《浪花》课件PPT.pptx VIP
- 2018海湾GST-QKP04、GST-QKP04 2气体灭火控制器说明书.docx
- 浙江省杭州市西湖区之江中学2024-2025学年高二上学期期末数学试题(解析版).docx VIP
- 人教版五年级上册数学期末测试卷及参考答案ab卷.docx VIP
- [中央]2025年中国建设银行建信养老金管理有限责任公司校园招聘20人笔试历年参考题库频考点试题附带答案详解.docx
- 海南省公务员考试模拟试题库《行测》部分及参考答案.docx VIP
- BS EN 14540-2014 国外国际规范.pdf VIP
原创力文档

文档评论(0)