欢迎来到天天文库
浏览记录
ID:40492363
大小:100.50 KB
页数:7页
时间:2019-08-03
《_variant_t与其他数据类型的转换》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、_variant_t与其他数据类型的转换 我们先看看COM所支持的一些类型的基本类:(微软提供,在comdef.h中定义)在COM中使用的标准类Class如下所示:_bstr_t:对BSTR类型进行打包,并提供有用的操作和方法;_com_error:定义抛出的error对象;_com_ptr_t:封装COM接口指针_variant_t:对VARIANT类型进行打包,并提供有用的操作和方法;一、_variant_t类的简单介绍:_variant_t对象封装了VARIANT数据类型。Theclassmanagesresourceallocationanddeallocationa
2、ndmakesfunctioncallstoVariantInitandVariantClearasappropriate.(1)_variant类提供的方法:1>构造函数_variant_t对_variant_t变量初始化调用的是_variant_t的构造函数。我们一般习惯于用一个int型的变量对数字类的变量进行初始化,这对_variant_t变量是不允许的。原因很简单,_variant_t的构造函数中没有用整型(Int)对其初始化的构造函数可先将整型转化成long,然后再对其进行初始化2>Attach()AttachesaVARIANTobjectintothe_vari
3、ant_tobject.3>Clear()ClearstheencapsulatedVARIANTobject.4>ChangeTypeChangesthetypeofthe_variant_tobjecttotheindicatedVARTYPE.5>DetachDetachestheencapsulatedVARIANTobjectfromthis_variant_tobject.6> SetString将一个string赋值给_variant_t对象;7>Operators赋值操作,给现有的_variant_t对象赋一个新值;8>operator==,!=对比两个_va
4、riant_t对象是否相等;9>ExtractorsExtractdatafromtheencapsulatedVARIANTobject.(2)_variant_t的定义:_variant_t类封闭了VARIANT数据类型,VARIANT是一个结构体类型,我们可以看一下它的定义[cpp]viewplaincopyprint?typedef struct tagVARIANT { VARTYPE vt; //存储数据类型 unsigned short wReserved1; unsign
5、ed short wReserved2; unsigned short wReserved3; union { Byte bVal; // VT_UI1. Short iVal; // VT_I2. long lVal; // VT_I4. float fltVal; // VT_R4
6、. double dblVal; // VT_R8. VARIANT_BOOL boolVal; // VT_BOOL. SCODE scode; // VT_ERROR. CY cyVal; // VT_CY. DATE date; // VT_DATE.
7、 BSTR bstrVal; // VT_BSTR. DECIMAL FAR* pdecVal // VT_BYREF
8、VT_DECIMAL. IUnknown FAR* punkVal; // VT_UNKNOWN. IDispatch FAR* pdispVal; // VT_DISPATCH. SAFEA
此文档下载收益归作者所有