Condividi tramite


Struttura VARIANT (oaidl.h)

VARIANTARG descrive gli argomenti passati all'interno di DISPPARAMS e VARIANT per specificare dati varianti che non possono essere passati per riferimento.

Quando una variante fa riferimento a un'altra variante utilizzando il VT_VARIANT | VT_BYREF tipo vartype, la variante a cui viene fatto riferimento non può essere di tipo VT_VARIANT | VT_BYREF. I VARIANT possono essere passati per valore, anche se VARIANTARG non possono essere passati.

Sintassi

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

Tipo: struct __tagVARIANT

__VARIANT_NAME_1.__VARIANT_NAME_2.vt

Tipo: VARTYPE Tipo di dati nell'unione.

__VARIANT_NAME_1.__VARIANT_NAME_2.wReserved1

Tipo: WORD Riservati.

__VARIANT_NAME_1.__VARIANT_NAME_2.wReserved2

Tipo: WORD Riservati.

__VARIANT_NAME_1.__VARIANT_NAME_2.wReserved3

Tipo: WORD Riservati.

__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3

__VARIANT_NAME_2.__VARIANT_NAME_3.bool

Tipo: _VARIANT_BOOL Valore booleano a 16 bit. Il valore 0xFFFF (tutti i bit 1) indica true; un valore pari a 0 (tutti i bit 0) indica false. Nessun altro valore è valido.

__VARIANT_NAME_2.__VARIANT_NAME_3.pbool

Tipo: _VARIANT_BOOL* Riferimento a un valore booleano a 16 bit.

__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.llVal

Tipo: LONGLONG Valore intero a 8 byte.

__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.lVal

Tipo: LONG Valore intero a 4 byte.

__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.bVal

Tipo: BYTE Carattere a 1 byte senza segno.

__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.iVal

Tipo: SHORT Valore intero a 2 byte.

__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.fltVal

Tipo: FLOAT Valore reale a 4 byte.

__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.dblVal

Tipo: DOUBLE Valore reale a 8 byte.

__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.boolVal

Tipo: VARIANT_BOOL Valore booleano a 16 bit. Il valore 0xFFFF (tutti i bit 1) indica true; un valore pari a 0 (tutti i bit 0) indica false. Nessun altro valore è valido.

__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.__OBSOLETE__VARIANT_BOOL

__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.scode

Tipo: SCODE Valore SCODE.

__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.cyVal

Tipo: CY Valore di valuta.

__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.date

Tipo: DATE Valore di data e ora. Le date sono rappresentate come numeri a precisione doppia, dove mezzanotte, 1 gennaio 1900 è 2,0, 2 gennaio 1900 è 3,0 e così via.

La data può essere convertita in e da una rappresentazione MS-DOS usando VariantTimeToDosDateTime.

__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.bstrVal

Tipo: BSTR Valore stringa.

__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.punkVal

Tipo: IUnknown* Puntatore a un oggetto che implementa l'interfaccia IUnknown .

__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.pdispVal

Tipo: IDispatch* È stato specificato un puntatore a un oggetto .

__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.parray

Tipo: SAFEARRAY* Descrittore di matrice sicuro, che descrive le dimensioni, le dimensioni e la posizione in memoria della matrice.

__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.pbVal

Tipo: BYTE* Riferimento a un carattere a 1 byte senza segno.

__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.piVal

Tipo: SHORT* Riferimento a un valore intero a 2 byte.

__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.plVal

Tipo: LONG* Riferimento a un valore intero a 4 byte.

__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.pllVal

Tipo: LONGLONG* Riferimento a un valore intero a 8 byte.

__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.pfltVal

Tipo: FLOAT* Riferimento a un valore reale a 4 byte.

__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.pdblVal

Tipo: DOUBLE* Riferimento a un valore reale a 8 byte.

__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.pboolVal

Tipo: VARIANT_BOOL* Riferimento a un valore booleano a 16 bit.

__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.__OBSOLETE__VARIANT_PBOOL

__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.pscode

Tipo: SCODE* Riferimento a un valore SCODE.

__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.pcyVal

Tipo: CY* Riferimento a un valore di valuta.

__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.pdate

Tipo: DATE* Riferimento a un valore di data e ora. Le date sono rappresentate come numeri a precisione doppia, dove mezzanotte, 1 gennaio 1900 è 2,0, 2 gennaio 1900 è 3,0 e così via.

__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.pbstrVal

Tipo: BSTR* Riferimento a un valore stringa.

__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.ppunkVal

Tipo: IUnknown** Riferimento a un puntatore all'interfaccia IUnknown .

__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.ppdispVal

Tipo: IDispatch** Riferimento a un puntatore a un oggetto.

__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

Tipo: PVOID Valore generico.

__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.cVal

Tipo: CHAR Valore carattere a 1 byte.

__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.uiVal

Tipo: USHORT Valore intero senza segno a 2 byte.

__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.ulVal

Tipo: ULONG Valore intero senza segno a 4 byte.

__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.ullVal

Tipo: ULONGLONG Valore intero senza segno a 8 byte.

__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.intVal

Tipo: INT Valore intero.

__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.uintVal

Tipo: UINT Valore intero senza segno.

__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.pdecVal

Tipo: DECIMAL* Valore decimale, archiviato come interi senza segno a 96 bit (12 byte) ridimensionati da una potenza variabile di 10.

__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.pcVal

Tipo: CHAR* Riferimento a un valore di carattere a 1 byte.

__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.puiVal

Tipo: USHORT* Riferimento a un valore intero senza segno a 2 byte.

__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.pulVal

Tipo: ULONG* Riferimento a un valore intero senza segno a 4 byte.

__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.pullVal

Tipo: ULONGLONG* Riferimento a un valore intero senza segno a 8 byte.

__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.pintVal

Tipo: INT* Riferimento a un valore intero.

__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.puintVal

Tipo: UINT* Riferimento a un valore intero senza segno.

__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.__VARIANT_NAME_4

Tipo: __tagBRECORD struct

__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.__VARIANT_NAME_4.pvRecord

Tipo: PVOID Riferimento a un record di database.

__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.__VARIANT_NAME_4.pRecInfo

Tipo: IRecordInfo* Riferimento a un tipo definito dall'utente.

__VARIANT_NAME_1.decVal

Tipo: DECIMAL Valore decimale.

Requisiti

   
Intestazione oaidl.h