VARIANT 結構 (oaidl.h)

VARIANTARG 描述在 DISPPARAMS 內傳遞的引數,以及 VARIANT 來指定無法以傳址方式傳遞的變體資料。

當變體使用 VT_VARIANT |參考另一個變體時VT_BYREF vartype,所參考的變體不能也是類型VT_VARIANT |VT_BYREF。 即使 VARIANTARG 無法傳遞,也可以以值傳遞 VANT。

語法

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_BOOL16 位布林值。 值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

類型:LONGLONG8 位元組整數值。

__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.lVal

類型:LONG4 位元組整數值。

__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.bVal

類型:BYTE不帶正負號的 1 位元組字元。

__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.iVal

類型:SHORT2 位元組整數值。

__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.fltVal

類型:FLOAT4 位元組實值。

__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.dblVal

類型:DOUBLE8 位元組實值。

__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.boolVal

類型:VARIANT_BOOL16 位布林值。 值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

類型:SCODESCODE 值。

__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

類型:CHAR1 位元組字元值。

__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