Estrutura VARIANT (oaidl.h)
VARIANTARG descreve os argumentos passados em DISPPARAMS e VARIANT para especificar dados variantes que não podem ser passados por referência.
Quando uma variante se refere a outra variante usando o VT_VARIANT | VT_BYREF vartype, a variante a ser referenciada também não pode ser do tipo VT_VARIANT | VT_BYREF. VariaNTs podem ser passadas por valor, mesmo que VARIANTARGs não possam.
Sintaxe
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;
Membros
__VARIANT_NAME_1
__VARIANT_NAME_1.__VARIANT_NAME_2
Tipo: struct __tagVARIANT
__VARIANT_NAME_1.__VARIANT_NAME_2.vt
Tipo: VARTYPE O tipo de dados na união.
__VARIANT_NAME_1.__VARIANT_NAME_2.wReserved1
Tipo: WORD Reservados.
__VARIANT_NAME_1.__VARIANT_NAME_2.wReserved2
Tipo: WORD Reservados.
__VARIANT_NAME_1.__VARIANT_NAME_2.wReserved3
Tipo: WORD Reservados.
__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3
__VARIANT_NAME_2.__VARIANT_NAME_3.bool
Tipo: _VARIANT_BOOL Um valor booliano de 16 bits. Um valor de 0xFFFF (todos os bits 1) indica true; um valor de 0 (todos os bits 0) indica false. Nenhum outro valor é válido.
__VARIANT_NAME_2.__VARIANT_NAME_3.pbool
Tipo: _VARIANT_BOOL* Uma referência a um valor booliano de 16 bits.
__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.llVal
Tipo: LONGLONG Um valor inteiro de 8 bytes.
__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.lVal
Tipo: LONG Um valor inteiro de 4 bytes.
__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.bVal
Tipo: BYTE Um caractere de 1 byte sem sinal.
__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.iVal
Tipo: SHORT Um valor inteiro de 2 bytes.
__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.fltVal
Tipo: FLOAT Um valor real de 4 bytes.
__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.dblVal
Tipo: DOUBLE Um valor real de 8 bytes.
__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.boolVal
Tipo: VARIANT_BOOL Um valor booliano de 16 bits. Um valor de 0xFFFF (todos os bits 1) indica true; um valor de 0 (todos os bits 0) indica false. Nenhum outro valor é válido.
__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.__OBSOLETE__VARIANT_BOOL
__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.scode
Tipo: SCODE Um valor SCODE.
__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.cyVal
Tipo: CY Um valor de moeda.
__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.date
Tipo: DATE Um valor de data e hora. As datas são representadas como números de precisão dupla, em que meia-noite, 1º de janeiro de 1900 é 2,0, 2 de janeiro de 1900 é 3,0 e assim por diante.
A data pode ser convertida de e para uma representação MS-DOS usando VariantTimeToDosDateTime.
__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.bstrVal
Tipo: BSTR Um valor de cadeia de caracteres.
__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.punkVal
Tipo: IUnknown* Um ponteiro para um objeto que implementa a interface IUnknown .
__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.pdispVal
Tipo: IDispatch* Um ponteiro para um objeto foi especificado.
__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.parray
Tipo: SAFEARRAY* Um descritor de matriz segura, que descreve as dimensões, o tamanho e o local na memória da matriz.
__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.pbVal
Tipo: BYTE* Uma referência a um caractere de 1 byte sem sinal.
__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.piVal
Tipo: SHORT* Uma referência a um valor inteiro de 2 bytes.
__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.plVal
Tipo: LONG* Uma referência a um valor inteiro de 4 bytes.
__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.pllVal
Tipo: LONGLONG* Uma referência a um valor inteiro de 8 bytes.
__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.pfltVal
Tipo: FLOAT* Uma referência a um valor real de 4 bytes.
__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.pdblVal
Tipo: DOUBLE* Uma referência a um valor real de 8 bytes.
__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.pboolVal
Tipo: VARIANT_BOOL* Uma referência a um valor booliano de 16 bits.
__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.__OBSOLETE__VARIANT_PBOOL
__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.pscode
Tipo: SCODE* Uma referência a um valor SCODE.
__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.pcyVal
Tipo: CY* Uma referência a um valor de moeda.
__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.pdate
Tipo: DATE* Uma referência a um valor de data e hora. As datas são representadas como números de precisão dupla, em que meia-noite, 1º de janeiro de 1900 é 2,0, 2 de janeiro de 1900 é 3,0 e assim por diante.
__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.pbstrVal
Tipo: BSTR* Uma referência a um valor de cadeia de caracteres.
__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.ppunkVal
Tipo: IUnknown** Uma referência a um ponteiro de interface IUnknown .
__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.ppdispVal
Tipo: IDispatch** Uma referência a um ponteiro de objeto.
__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 Um valor genérico.
__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.cVal
Tipo: CHAR Um valor de caractere de 1 byte.
__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.uiVal
Tipo: USHORT Um valor inteiro de 2 bytes sem sinal.
__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.ulVal
Tipo: ULONG Um valor inteiro de 4 bytes sem sinal.
__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.ullVal
Tipo: ULONGLONG Um valor inteiro de 8 bytes sem sinal.
__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.intVal
Tipo: INT Um valor inteiro.
__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.uintVal
Tipo: UINT Um valor inteiro sem sinal.
__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.pdecVal
Tipo: DECIMAL* Um valor decimal, que é armazenado como inteiros sem sinal de 96 bits (12 bytes) dimensionados por uma potência variável de 10.
__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.pcVal
Tipo: CHAR* Uma referência a um valor de caractere de 1 byte.
__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.puiVal
Tipo: USHORT* Uma referência a um valor inteiro de 2 bytes sem sinal.
__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.pulVal
Tipo: ULONG* Uma referência a um valor inteiro de 4 bytes sem sinal.
__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.pullVal
Tipo: ULONGLONG* Uma referência a um valor inteiro de 8 bytes sem sinal.
__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.pintVal
Tipo: INT* Uma referência a um valor inteiro.
__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.puintVal
Tipo: UINT* Uma referência a um valor inteiro sem sinal.
__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.__VARIANT_NAME_4
Tipo: struct __tagBRECORD
__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.__VARIANT_NAME_4.pvRecord
Tipo: PVOID Uma referência a um registro de banco de dados.
__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.__VARIANT_NAME_4.pRecInfo
Tipo: IRecordInfo* Uma referência a um UDT.
__VARIANT_NAME_1.decVal
Tipo: DECIMAL Um valor decimal.
Requisitos
Cabeçalho | oaidl.h |