2.2.13.2 IWbemContextProperty Marshaling Structure
The IWbemContextProperty data structure defines the wire format for property data that is used by this protocol. The property is a variable-length structure and has the following structure:
-
-
IWbemContextProperty = PropertyName PropertyFlags PropertyType PropertyValue
-
PropertyName MUST be the name of the property, marshaled as a string in the IWbemContextString format specified in 2.2.13.3.
PropertyName = IWbemContextString
PropertyFlags is a 32-bit integer. It MUST be set to 0 and ignored.
PropertyFlags = UINT32
PropertyType is a 16-bit unsigned integer that represents the type of the property.
PropertyType = UINT16
MUST have one of the following values as specified in [MS-OAUT] section 2.2.7:
VT_NULL
VT_I2
VT_I4
VT_R4
VT_R8
VT_BSTR
VT_BOOL
VT_UI1
VT_UI2
VT_UI4
VT_UNKNOWN
VT_I1
If the value is an array, the listed property types MUST be combined by using the bitwise OR operation with VT_ARRAY (also specified in [MS-OAUT] section 2.2.7).
PropertyValue is marshaled as shown in the following table.
Property types
Marshaling
VT_BSTR
MUST be marshaled as an IWbemContextString.
VT_IUNKNOWN
MUST be marshaled as a buffer for the IWbemClassObject interface.
VT_NULL
MUST be marshaled as an array of size 0.
VT_UI1, VT_I1
MUST be marshaled as an array of 8 bytes with the first byte containing the value of the property.
VT_I2, VT_UI2, VT_BOOL
MUST be marshaled as an array of 8 bytes with the first 2 bytes containing the value of the property.
VT_I4, VT_UI4
MUST be marshaled as an array of 8 bytes with the first 4 bytes containing the value of the property.
VT_R4
MUST be marshaled as an array of 8 bytes with the first 4 bytes containing the value of the property, as specified in [IEEE754], a 4-byte floating-point format.
VT_R8
MUST be marshaled in an 8-byte floating-point format as specified in [IEEE754].
VT_ARRAY | VT_*
MUST be marshaled as an IWbemContextArray structure, as specified in 2.2.13.4.