首页编程colevariant(COleVariant 具体如何用,有什么功能)

colevariant(COleVariant 具体如何用,有什么功能)

编程之家2023-11-0288次浏览

大家好,今天小编来为大家解答以下的问题,关于colevariant,COleVariant 具体如何用,有什么功能这个很多人还不知道,现在让我们一起来看看吧!

colevariant(COleVariant 具体如何用,有什么功能)

COleVariant 具体如何用,有什么功能

COleVariant类是对VARIANT结构的封装。

VARIANT结构包含两部分。其一是 VARTYPE型的成员变量vt;其二是个联合类型,这个联合包含了VC常用的几乎所有类型。因为联合用的是相同的存储空间,因此对联合的内容的解释依赖于 vt。

例如,

若 vt的值是 VT_UI2,说明该联合被解释为short int.并使用成员变量名 iVal。

若 vt的的值是 VT_BSTR,说明该联合被解释为 BSTR类型。并使用成员变量名 bstrVal。

若 vt的的值是 VT_BSTR|VT_BYREF,说明该联合被解释为BSTR型指针。并使用成员变量名 pbstrVal。

colevariant(COleVariant 具体如何用,有什么功能)

它的构造函数具有极为强大的功能,当对象构造时首先调用VariantInit进行初始化,然后根据参数中的标准类型调用相应的构造函数,并使用VariantCopy进行转换赋值操作,当VARIANT对象不在有效范围时,它的析构函数就会被自动调用,由于析构函数调用了VariantClear,因而相应的内存就会被自动清除。除此之外,COleVariant的赋值操作符在与 VARIANT类型转换中为我们提供极大的方便。

COleVariant是什么数据类型

用于ole自动化的VARRANT类型,可以用于存储多种格式

COleVariant类通逢装了 VARIANT结构。实际的数据就在 VARIANT结构中。

VARIANT结构包含两部分。其一是 VARTYPE型的成员变量vt;其二是个联合类型,这个联合包含了VC常用的几乎所有类型。因为联合用的是相同的存储空间,因此对联合的内容的解释依赖于 vt。

例如,

若 vt的值是 VT_UI2,说明该联合被解释为short int.并使用成员变量名 iVal。

colevariant(COleVariant 具体如何用,有什么功能)

若 vt的的值是 VT_BSTR,说明该联合被解释为 BSTR类型。并使用成员变量名 bstrVal。

若 vt的的值是 VT_BSTR|VT_BYREF,说明该联合被解释为BSTR型指针。并使用成员变量名 pbstrVal

Example:

------------------

VARIANT va;

:: VariantInit(&va);//初始化

int a= 2002;

va.vt= VT_I4;//指明long数据类型

va.lVal= a;//赋值

--------------------------------

为了方便处理VARIANT类型的变量,Windows还提供了这样一些非常有用的函数:

VariantInit——将变量初始化为VT_EMPTY;

VariantClear——消除并初始化VARIANT;

VariantChangeType——改变VARIANT的类型;

VariantCopy——释放与目标VARIANT相连的内存并复制源VARIANT。

如何从ColeVariant中提取二进制数

ColeVariant只不过对 VARIANT又进行了一层封装。

COleVariant重载了LPVARIANT操作符,可以通过类型转换得到一个VARIANT类型的指针,然后在根据VARTYPE指定的类型在相应位置获得数据。在VARIANT中存放数据的类型时,也可以直接转化的。

要想正确地从ColeVariant中提取二进制数,首先对象中存储的应该是二进制数

ColeVariant需要引用那个头文件mfc问题

ColeVariant需要引用#include<afxdisp.h>

细节如下:

COleVariant类是对VARIANT结构的封装。

VARIANT结构包含两部分。其一是 VARTYPE型的成员变量vt;其二是个联合类型,这个联合包含了VC常用的几乎所有类型。因为联合用的是相同的存储空间,因此对联合的内容的解释依赖于 vt。

COleVariant本质上是一个枚举,用同一种类型来表达不同的子类型。如同boost中的variant。

好了,本文到此结束,如果可以帮助到大家,还望关注本站哦!

网站建设设计(网站建设的作用有哪些)urlencode(什么是urlencode编码)