Структура VARIANT (oaidl.h)
VARIANTARG описывает аргументы, передаваемые в DISPPARAMS, и VARIANT , чтобы указать данные варианта, которые не могут быть переданы по ссылке.
Если один из вариантов ссылается на другой вариант с помощью VT_VARIANT | VT_BYREF vartype, вариант, на который ссылается, также не может быть типа VT_VARIANT | VT_BYREF. VARIANT можно передавать по значению, даже если variantARGs не может.
Синтаксис
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_BOOL 16-разрядное логическое значение. Значение 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
Тип: LONGLONG 8-байтовое целочисленное значение.
__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.lVal
Тип: LONG 4-байтовое целочисленное значение.
__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.bVal
Тип: BYTE 1-байтный символ без знака.
__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.iVal
Тип: SHORT 2-байтовое целочисленное значение.
__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.fltVal
Тип: FLOAT 4-байтовое реальное значение.
__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.dblVal
Тип: DOUBLE 8-байтовое реальное значение.
__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.boolVal
Тип: VARIANT_BOOL 16-разрядное логическое значение. Значение 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
Тип: SCODE Значение SCODE.
__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.cyVal
Тип: CY Значение валюты.
__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.date
Тип: DATE Значение даты и времени. Даты представляются числами двойной точности, где полночь 1 января 1900 года — 2,0, 2 января 1900 года — 3,0 и т. д.
Дату можно преобразовать в представление MS-DOS и из нее с помощью VariantTimeToDosDateTime.
__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* Ссылка на значение даты и времени. Даты представляются числами двойной точности, где полночь 1 января 1900 года — 2,0, 2 января 1900 года — 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
Тип: CHAR 1-байтовое символьное значение.
__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* — ссылка на определяемый пользователем тип.
__VARIANT_NAME_1.decVal
Тип: DECIMAL Десятичное значение.
Требования
Верхняя часть | oaidl.h |