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 |