Struktur VARIAN (oaidl.h)

VARIANTARG menjelaskan argumen yang diteruskan dalam DISPPARAMS, dan VARIAN untuk menentukan data varian yang tidak dapat diteruskan oleh referensi.

Saat varian mengacu pada varian lain dengan menggunakan VT_VARIANT | VT_BYREF vartype, varian yang dirujuk tidak boleh juga berjenis VT_VARIANT | VT_BYREF. VARIAN dapat diteruskan berdasarkan nilai, bahkan jika VARIANTARG tidak dapat.

Syntax

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;

Members

__VARIANT_NAME_1

__VARIANT_NAME_1.__VARIANT_NAME_2

Jenis: struct __tagVARIANT

__VARIANT_NAME_1.__VARIANT_NAME_2.vt

Jenis: VARTYPE

Jenis data dalam serikat.

__VARIANT_NAME_1.__VARIANT_NAME_2.wReserved1

Jenis: WORD

Direservasi.

__VARIANT_NAME_1.__VARIANT_NAME_2.wReserved2

Jenis: WORD

Direservasi.

__VARIANT_NAME_1.__VARIANT_NAME_2.wReserved3

Jenis: WORD

Direservasi.

__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3

__VARIANT_NAME_2.__VARIANT_NAME_3.bool

Jenis: _VARIANT_BOOL

Nilai Boolean 16-bit. Nilai 0xFFFF (semua bit 1) menunjukkan true; nilai 0 (semua bit 0) menunjukkan false. Tidak ada nilai lain yang valid.

__VARIANT_NAME_2.__VARIANT_NAME_3.pbool

Jenis: _VARIANT_BOOL*

Referensi ke nilai Boolean 16-bit.

__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.llVal

Jenis: LONGLONG

Nilai bilangan bulat 8-byte.

__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.lVal

Jenis: LONG

Nilai bilangan bulat 4-byte.

__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.bVal

Jenis: BYTE

Karakter 1-byte yang tidak ditandatangani.

__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.iVal

Jenis: PENDEK

Nilai bilangan bulat 2-byte.

__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.fltVal

Jenis: FLOAT

Nilai riil 4-byte.

__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.dblVal

Jenis: DOUBLE

Nilai riil 8-byte.

__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.boolVal

Jenis: VARIANT_BOOL

Nilai Boolean 16-bit. Nilai 0xFFFF (semua bit 1) menunjukkan true; nilai 0 (semua bit 0) menunjukkan false. Tidak ada nilai lain yang valid.

__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.__OBSOLETE__VARIANT_BOOL

__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.scode

Jenis: SCODE

Nilai SCODE.

__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.cyVal

Jenis: CY

Nilai mata uang.

__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.date

Jenis: TANGGAL

Nilai tanggal dan waktu. Tanggal dinyatakan sebagai angka presisi ganda, di mana tengah malam, 1 Januari 1900 adalah 2,0, 2 Januari 1900 adalah 3,0, dan seterusnya.

Tanggal dapat dikonversi ke dan dari representasi MS-DOS menggunakan VariantTimeToDosDateTime.

__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.bstrVal

Jenis: BSTR

Nilai string.

__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.punkVal

Jenis: IUnknown*

Penunjuk ke objek yang mengimplementasikan antarmuka IUnknown .

__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.pdispVal

Jenis: IDispatch*

Penunjuk ke objek ditentukan.

__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.parray

Jenis: SAFEARRAY*

Deskriptor array yang aman, yang menjelaskan dimensi, ukuran, dan lokasi dalam memori array.

__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.pbVal

Jenis: BYTE*

Referensi ke karakter 1-byte yang tidak ditandatangani.

__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.piVal

Jenis: SHORT*

Referensi ke nilai bilangan bulat 2-byte.

__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.plVal

Jenis: LONG*

Referensi ke nilai bilangan bulat 4-byte.

__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.pllVal

Jenis: LONGLONG*

Referensi ke nilai bilangan bulat 8-byte.

__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.pfltVal

Jenis: FLOAT*

Referensi ke nilai riil 4-byte.

__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.pdblVal

Jenis: DOUBLE*

Referensi ke nilai riil 8-byte.

__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.pboolVal

Jenis: VARIANT_BOOL*

Referensi ke nilai Boolean 16-bit.

__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.__OBSOLETE__VARIANT_PBOOL

__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.pscode

Jenis: SCODE*

Referensi ke nilai SCODE.

__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.pcyVal

Jenis: CY*

Referensi ke nilai mata uang.

__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.pdate

Jenis: DATE*

Referensi ke nilai tanggal dan waktu. Tanggal dinyatakan sebagai angka presisi ganda, di mana tengah malam, 1 Januari 1900 adalah 2,0, 2 Januari 1900 adalah 3,0, dan seterusnya.

__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.pbstrVal

Jenis: BSTR*

Referensi ke nilai string.

__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.ppunkVal

Jenis: IUnknown**

Referensi ke penunjuk antarmuka IUnknown .

__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.ppdispVal

Jenis: IDispatch**

Referensi ke penunjuk objek.

__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

Jenis: PVOID

Nilai generik.

__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.cVal

Jenis: CHAR

Nilai karakter 1-byte.

__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.uiVal

Jenis: USHORT

Nilai bilangan bulat 2 byte yang tidak ditandatangani.

__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.ulVal

Jenis: ULONG

Nilai bilangan bulat 4 byte yang tidak ditandatangani.

__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.ullVal

Jenis: ULONGLONG

Nilai bilangan bulat 8-byte yang tidak ditandatangani.

__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.intVal

Jenis: INT

Nilai bilangan bulat.

__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.uintVal

Jenis: UINT

Nilai bilangan bulat yang tidak ditandatangani.

__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.pdecVal

Jenis: DESIMAL*

Nilai desimal, yang disimpan sebagai bilangan bulat tidak bertanda 96-bit (12-byte) yang diskalakan dengan daya variabel 10.

__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.pcVal

Jenis: CHAR*

Referensi ke nilai karakter 1-byte.

__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.puiVal

Jenis: USHORT*

Referensi ke nilai bilangan bulat 2-byte yang tidak ditandatangani.

__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.pulVal

Jenis: ULONG*

Referensi ke nilai bilangan bulat 4-byte yang tidak ditandatangani.

__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.pullVal

Jenis: ULONGLONG*

Referensi ke nilai bilangan bulat 8-byte yang tidak ditandatangani.

__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.pintVal

Jenis: INT*

Referensi ke nilai bilangan bulat.

__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.puintVal

Jenis: UINT*

Referensi ke nilai bilangan bulat yang tidak ditandatangani.

__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.__VARIANT_NAME_4

Jenis: __tagBRECORD struktur

__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.__VARIANT_NAME_4.pvRecord

Jenis: PVOID

Referensi ke rekaman database.

__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.__VARIANT_NAME_4.pRecInfo

Jenis: IRecordInfo*

Referensi ke UDT.

__VARIANT_NAME_1.decVal

Jenis: DESIMAL

Nilai desimal.

Persyaratan

Persyaratan Nilai
Header oaidl.h