variant 结构 (oaidl.h)
VARIANTARG 描述 DISPPARAMS 中传递的参数,以及用于指定不能通过引用传递的变体数据。
当变体使用 VT_VARIANT 引用另一个变体时 |VT_BYREF vartype,引用的变体不能也属于 VT_VARIANT 类型 |VT_BYREF。 VARIANT 可以按值传递,即使 VARIANTARG 不能传递。
语法
typedef struct tagVARIANT {
union {
struct {
VARTYPE vt;
WORD wReserved1;
WORD wReserved2;
WORD wReserved3;
union {
LONGLONG llVal;
LONG lVal;
BYTE bVal;
SHORT iVal;
FLOAT fltVal;
DOUBLE dblVal;
VARIANT_BOOL boolVal;
VARIANT_BOOL __OBSOLETE__VARIANT_BOOL;
SCODE scode;
CY cyVal;
DATE date;
BSTR bstrVal;
IUnknown *punkVal;
IDispatch *pdispVal;
SAFEARRAY *parray;
BYTE *pbVal;
SHORT *piVal;
LONG *plVal;
LONGLONG *pllVal;
FLOAT *pfltVal;
DOUBLE *pdblVal;
VARIANT_BOOL *pboolVal;
VARIANT_BOOL *__OBSOLETE__VARIANT_PBOOL;
SCODE *pscode;
CY *pcyVal;
DATE *pdate;
BSTR *pbstrVal;
IUnknown **ppunkVal;
IDispatch **ppdispVal;
SAFEARRAY **pparray;
VARIANT *pvarVal;
PVOID byref;
CHAR cVal;
USHORT uiVal;
ULONG ulVal;
ULONGLONG ullVal;
INT intVal;
UINT uintVal;
DECIMAL *pdecVal;
CHAR *pcVal;
USHORT *puiVal;
ULONG *pulVal;
ULONGLONG *pullVal;
INT *pintVal;
UINT *puintVal;
struct {
PVOID pvRecord;
IRecordInfo *pRecInfo;
} __VARIANT_NAME_4;
} __VARIANT_NAME_3;
} __VARIANT_NAME_2;
DECIMAL decVal;
} __VARIANT_NAME_1;
} VARIANT;
成员
__VARIANT_NAME_1
__VARIANT_NAME_1.__VARIANT_NAME_2
类型: 结构__tagVARIANT
__VARIANT_NAME_1.__VARIANT_NAME_2.vt
类型: VARTYPE 联合中的数据的类型。
__VARIANT_NAME_1.__VARIANT_NAME_2.wReserved1
类型: WORD 保留。
__VARIANT_NAME_1.__VARIANT_NAME_2.wReserved2
类型: WORD 保留。
__VARIANT_NAME_1.__VARIANT_NAME_2.wReserved3
类型: WORD 保留。
__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3
__VARIANT_NAME_2.__VARIANT_NAME_3.bool
类型: _VARIANT_BOOL 16 位布尔值。 值0xFFFF (所有位 1) 表示 true;值 0 (所有位 0) 指示 false。 其他任何值都无效。
__VARIANT_NAME_2.__VARIANT_NAME_3.pbool
类型: _VARIANT_BOOL* 对 16 位布尔值的引用。
__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.llVal
类型: LONGLONG 一个 8 字节整数值。
__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.lVal
类型: LONG 一个 4 字节整数值。
__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.bVal
类型: BYTE 无符号 1 字节字符。
__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.iVal
类型: SHORT 一个 2 字节整数值。
__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.fltVal
类型: FLOAT 4 字节实际值。
__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.dblVal
类型: DOUBLE 8 字节实值。
__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.boolVal
类型: VARIANT_BOOL 16 位布尔值。 值0xFFFF (所有位 1) 表示 true;值 0 (所有位 0) 指示 false。 其他任何值都无效。
__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.__OBSOLETE__VARIANT_BOOL
__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.scode
类型: SCODE SCODE 值。
__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.cyVal
类型: CY 货币值。
__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.date
类型: DATE 日期和时间值。 日期表示为双精度数字,其中 1900 年 1 月 1 日午夜为 2.0,1900 年 1 月 2 日为 3.0,依此依此。
日期可以使用 VariantTimeToDosDateTime 与 MS-DOS 表示形式进行转换和转换。
__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.bstrVal
类型: BSTR 字符串值。
__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.punkVal
类型: IUnknown* 指向实现 IUnknown 接口的 对象的指针。
__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.pdispVal
类型: IDispatch* 指定了指向 对象的指针。
__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.parray
类型: SAFEARRAY* 一个安全数组描述符,用于描述数组的尺寸、大小和内存中位置。
__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.pbVal
类型: BYTE* 对无符号 1 字节字符的引用。
__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.piVal
类型: SHORT* 对 2 字节整数值的引用。
__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.plVal
类型: LONG* 对 4 字节整数值的引用。
__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.pllVal
类型: LONGLONG* 对 8 字节整数值的引用。
__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.pfltVal
类型: FLOAT* 对 4 字节实值的引用。
__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.pdblVal
类型: DOUBLE* 对 8 字节实值的引用。
__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.pboolVal
类型: VARIANT_BOOL* 对 16 位布尔值的引用。
__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.__OBSOLETE__VARIANT_PBOOL
__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.pscode
类型: SCODE* 对 SCODE 值的引用。
__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.pcyVal
类型: CY* 对货币值的引用。
__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.pdate
类型: DATE* 对日期和时间值的引用。 日期表示为双精度数字,其中 1900 年 1 月 1 日午夜为 2.0,1900 年 1 月 2 日为 3.0,依此依此。
__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.pbstrVal
类型: BSTR* 对字符串值的引用。
__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.ppunkVal
类型: IUnknown** 对 IUnknown 接口指针的引用。
__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.ppdispVal
类型: IDispatch** 对对象指针的引用。
__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.pparray
__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.pvarVal
__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.byref
类型: PVOID 泛型值。
__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.cVal
类型: CHAR 1 字节字符值。
__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.uiVal
类型: USHORT 无符号 2 字节整数值。
__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.ulVal
类型: ULONG 无符号 4 字节整数值。
__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.ullVal
类型: ULONGLONG 无符号 8 字节整数值。
__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.intVal
类型: INT 整数值。
__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.uintVal
类型: UINT 无符号整数值。
__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.pdecVal
类型: DECIMAL* 十进制值,存储为 96 位 (12 字节) 按 10 的可变幂缩放的无符号整数。
__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.pcVal
类型: CHAR* 对 1 字节字符值的引用。
__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.puiVal
类型: USHORT* 对无符号 2 字节整数值的引用。
__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.pulVal
类型: ULONG* 对无符号 4 字节整数值的引用。
__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.pullVal
类型: ULONGLONG* 对无符号 8 字节整数值的引用。
__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.pintVal
类型: INT* 对整数值的引用。
__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.puintVal
类型: UINT* 对无符号整数值的引用。
__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.__VARIANT_NAME_4
类型: 结构__tagBRECORD
__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.__VARIANT_NAME_4.pvRecord
类型: PVOID 对数据库记录的引用。
__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.__VARIANT_NAME_4.pRecInfo
类型: IRecordInfo* 对 UDT 的引用。
__VARIANT_NAME_1.decVal
类型: DECIMAL 十进制值。
要求
标头 | oaidl.h |