Variant在哪个头文件

Variant在哪个头文件,第1张

windows下脊枯OAIDL.H

实际目录例如:C:\Program Files\Microsoft SDKs\Windows\v6.0A\Include\OAIDL.h

参粗野察考这岩茄篇:

http://www.dewen.io/q/8514

VARIANT 、_variant_t 与 COleVariant

VARIANT的结构可以参考头文件VC98\Include\OAIDL.H中关于结构体tagVARIANT的定义。

对于VARIANT变量的赋值:首先给vt成员赋值,指明数据类型,再对联合结构中相同数据类型的变量赋值,举个例子:

VARIANT va

int a=2001

va.vt=VT_I4///指明整型数据

va.lVal=a///赋值

对于不马上赋值的VARIANT,最好先用Void VariantInit(VARIANTARG FAR* pvarg)进行初始化,其本质是将vt设置为VT_EMPTY,下表我喊睁旦们列举vt与常用数据的对应关系:

Byte bVal// VT_UI1.

Short iVal// VT_I2.

long lVal// VT_I4.

float fltVal// VT_R4.

double dblVal// VT_R8.

VARIANT_BOOL boolVal// VT_BOOL.

SCODE scode// VT_ERROR.

CY cyVal// VT_CY.

DATE date// VT_DATE.

BSTR bstrVal// VT_BSTR.

DECIMAL FAR* pdecVal // VT_BYREF|VT_DECIMAL.

IUnknown FAR* punkVal// VT_UNKNOWN.

IDispatch FAR* pdispVal// VT_DISPATCH.

SAFEARRAY FAR* parray// VT_ARRAY|*.

Byte FAR* pbVal// VT_BYREF|VT_UI1.

short FAR* piVal// VT_BYREF|VT_I2.

long FAR* plVal// VT_BYREF|VT_I4.

float FAR* pfltVal// VT_BYREF|VT_R4.

double FAR* pdblVal// VT_BYREF|VT_R8.

VARIANT_BOOL FAR* pboolVal// VT_BYREF|VT_BOOL.

SCODE FAR* pscode// VT_BYREF|VT_ERROR.

CY FAR* pcyVal// VT_BYREF|VT_CY.

DATE FAR* pdate/郑扰/ VT_BYREF|VT_DATE.

BSTR FAR* pbstrVal// VT_BYREF|VT_BSTR.

IUnknown FAR* FAR* ppunkVal// VT_BYREF|VT_UNKNOWN.

IDispatch FAR* FAR* ppdispVal// VT_BYREF|VT_DISPATCH.

SAFEARRAY FAR* FAR* pparray// VT_ARRAY|*.

VARIANT FAR* pvarVal// VT_BYREF|VT_VARIANT.

void FAR* byref// Generic ByRef.

char cVal// VT_I1.

unsigned short uiVal// VT_UI2.

unsigned long ulVal// VT_UI4.

int intVal// VT_INT.

unsigned int uintVal//早竖 VT_UINT.

char FAR * pcVal// VT_BYREF|VT_I1.

unsigned short FAR * puiVal// VT_BYREF|VT_UI2.

unsigned long FAR * pulVal// VT_BYREF|VT_UI4.

int FAR * pintVal// VT_BYREF|VT_INT.

unsigned int FAR * puintVal//VT_BYREF|VT_UINT.

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

细节如下:

COleVariant类是对VARIANT结构的封装。

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

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

 


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/12262167.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-24
下一篇 2023-05-24

发表评论

登录后才能评论

评论列表(0条)

保存