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