Applies to: desktop apps | Metro style apps
VARIANTARG describes arguments passed within DISPPARAMS, and VARIANT to specify variant data that cannot be passed by reference.
When a variant refers to another variant by using the VT_VARIANT | VT_BYREF vartype, the variant being referred to cannot also be of type VT_VARIANT | VT_BYREF. VARIANTs can be passed by value, even if VARIANTARGs cannot.
Syntax
typedef struct tagVARIANT {
union {
struct __tagVARIANT {
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 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 *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 __tagBRECORD {
PVOID pvRecord;
IRecordInfo *pRecInfo;
} __VARIANT_NAME_4;
} __VARIANT_NAME_3;
} __VARIANT_NAME_2;
DECIMAL decVal;
} __VARIANT_NAME_1;
} VARIANT, *LPVARIANT, VARIANTARG, *LPVARIANTARG;
Members
- __VARIANT_NAME_1
-
- __VARIANT_NAME_2
Type: struct __tagVARIANT
-
- vt
Type: VARTYPE
-
The type of data in the union.
- wReserved1
Type: WORD
-
Reserved.
- wReserved2
Type: WORD
-
Reserved.
- wReserved3
Type: WORD
-
Reserved.
- __VARIANT_NAME_3
-
- llVal
Type: LONGLONG
-
An 8-byte integer value.
- lVal
Type: LONG
-
A 4-byte integer value.
- bVal
Type: BYTE
-
An unsigned 1-byte character.
- iVal
Type: SHORT
-
A 2-byte integer value.
- fltVal
Type: FLOAT
-
A 4-byte real value.
- dblVal
Type: DOUBLE
-
An 8-byte real value.
- boolVal
Type: VARIANT_BOOL
-
A 16-bit Boolean value. A value of 0xFFFF (all bits 1) indicates true; a value of 0 (all bits 0) indicates false. No other values are valid.
- bool
Type: _VARIANT_BOOL
-
A 16-bit Boolean value. A value of 0xFFFF (all bits 1) indicates true; a value of 0 (all bits 0) indicates false. No other values are valid.
- scode
Type: SCODE
-
An SCODE value.
- cyVal
Type: CY
-
A currency value.
- date
Type: DATE
-
A date and time value. Dates are represented as double-precision numbers, where midnight, January 1, 1900 is 2.0, January 2, 1900 is 3.0, and so on.
The date can be converted to and from an MS-DOS representation using VariantTimeToDosDateTime.
- bstrVal
Type: BSTR
-
A string value.
- punkVal
Type: IUnknown*
-
A pointer to an object that implements the IUnknown interface.
- pdispVal
Type: IDispatch*
-
A pointer to an object was specified.
- parray
Type: SAFEARRAY*
-
A safe array descriptor, which describes the dimensions, size, and in-memory location of the array.
- pbVal
Type: BYTE*
-
A reference to an unsigned 1-byte character.
- piVal
Type: SHORT*
-
A reference to a 2-byte integer value.
- plVal
Type: LONG*
-
A reference to a 4-byte integer value.
- pllVal
Type: LONGLONG*
-
A reference to an 8-byte integer value.
- pfltVal
Type: FLOAT*
-
A reference to a 4-byte real value.
- pdblVal
Type: DOUBLE*
-
A reference to an 8-byte real value.
- pboolVal
Type: VARIANT_BOOL*
-
A reference to a 16-bit Boolean value.
- pbool
Type: _VARIANT_BOOL*
-
A reference to a 16-bit Boolean value.
- pscode
Type: SCODE*
-
A reference to an SCODE value.
- pcyVal
Type: CY*
-
A reference to a currency value.
- pdate
Type: DATE*
-
A reference to a date and time value. Dates are represented as double-precision numbers, where midnight, January 1, 1900 is 2.0, January 2, 1900 is 3.0, and so on.
- pbstrVal
Type: BSTR*
-
A reference to a string value.
- ppunkVal
Type: IUnknown**
-
A reference to an IUnknown interface pointer.
- ppdispVal
Type: IDispatch**
-
A reference to an object pointer.
- byref
Type: PVOID
-
A generic value.
- cVal
Type: CHAR
-
A 1-byte character value.
- uiVal
Type: USHORT
-
An unsigned 2-byte integer value.
- ulVal
Type: ULONG
-
An unsigned 4-byte integer value.
- ullVal
Type: ULONGLONG
-
An unsigned 8-byte integer value.
- intVal
Type: INT
-
An integer value.
- uintVal
Type: UINT
-
An unsigned integer value.
- pdecVal
Type: DECIMAL*
-
A decimal value, which is stored as 96-bit (12-byte) unsigned integers scaled by a variable power of 10.
- pcVal
Type: CHAR*
-
A reference to a 1-byte character value.
- puiVal
Type: USHORT*
-
A reference to an unsigned 2-byte integer value.
- pulVal
Type: ULONG*
-
A reference to an unsigned 4-byte integer value.
- pullVal
Type: ULONGLONG*
-
A reference to an unsigned 8-byte integer value.
- pintVal
Type: INT*
-
A reference to an integer value.
- puintVal
Type: UINT*
-
A reference to an unsigned integer value.
- __VARIANT_NAME_4
Type: struct __tagBRECORD
-
- pvRecord
Type: PVOID
-
TBD
- pRecInfo
Type: IRecordInfo*
-
TBD
- decVal
Type: DECIMAL
-
A decimal value.
Requirements
|
Header |
|
|---|
Send comments about this topic to Microsoft
Build date: 5/5/2012
