2.3.1.11 PROP_VAL_UNION

The PROP_VAL_UNION structure encodes a single instance of any type of property value. It is an aggregation data structure, allowing a single parameter to an NSPI method to contain any type of property value.

 typedef 
 [switch_type(long)] 
 union _PV_r {
   [case(0x00000002)] 
     short int i;
   [case(0x00000003)] 
     long l;
   [case(0x0000000B)] 
     unsigned short int b;
   [case(0x0000001E)] 
     [string] char* lpszA;
   [case(0x00000102)] 
     Binary_r bin;
   [case(0x0000001F)] 
     [string] wchar_t* lpszW;
   [case(0x00000048)] 
     FlatUID_r* lpguid;
   [case(0x00000040)] 
     FILETIME ft;
   [case(0x0000000A)] 
     long err;
   [case(0x00001002)] 
     ShortArray_r MVi;
   [case(0x00001003)] 
     LongArray_r MVl;
   [case(0x0000101E)] 
     StringArray_r MVszA;
   [case(0x00001102)] 
     BinaryArray_r MVbin;
   [case(0x00001048)] 
     FlatUIDArray_r MVguid;
   [case(0x0000101F)] 
     WStringArray_r MVszW;
   [case(0x00001040)] 
     DateTimeArray_r MVft;
   [case(0x00000001, 0x0000000D)] 
     long lReserved;
 } PROP_VAL_UNION;

i: PROP_VAL_UNION contains an encoding of the value of a property that can contain a single 16-bit integer value.

l: PROP_VAL_UNION contains an encoding of the value of a property that can contain a single 32-bit integer value.

b: PROP_VAL_UNION contains an encoding of the value of a property that can contain a single Boolean value. The client and server MUST NOT set this to values other than 1 or 0.

lpszA: PROP_VAL_UNION contains an encoding of the value of a property that can contain a single 8-bit character string value. This value is NULL-terminated.

bin: PROP_VAL_UNION contains an encoding of the value of a property that can contain a single binary data value. The number of bytes that can be encoded in this structure is 2,097,152.

lpszW: PROP_VAL_UNION contains an encoding of the value of a property that can contain a single Unicode string value. This value is NULL-terminated.

lpguid: PROP_VAL_UNION contains an encoding of the value of a property that can contain a single GUID value. The value is encoded as a FlatUID_r data structure.

ft: PROP_VAL_UNION contains an encoding of the value of a property that can contain a single 64-bit integer value. The value is encoded as a FILETIME structure.

err: PROP_VAL_UNION contains an encoding of the value of a property that can contain a single PtypErrorCode value.

MVi: PROP_VAL_UNION contains an encoding of the values of a property that can contain multiple 16-bit integer values. The number of values that can be encoded in this structure is 100,000.

MVl: PROP_VAL_UNION contains an encoding of the values of a property that can contain multiple 32-bit integer values. The number of values that can be encoded in this structure is 100,000.

MVszA: PROP_VAL_UNION contains an encoding of the values of a property that can contain multiple 8-bit character string values. These string values are NULL-terminated. The number of values that can be encoded in this structure is 100,000.

MVbin: PROP_VAL_UNION contains an encoding of the values of a property that can contain multiple binary data values. The number of bytes that can be encoded in each value of this structure is 2,097,152. The number of values that can be encoded in this structure is 100,000.

MVguid: PROP_VAL_UNION contains an encoding of the values of a property that can contain multiple GUID values. The values are encoded as FlatUID_r data structures. The number of values that can be encoded in this structure is 100,000.

MVszW: PROP_VAL_UNION contains an encoding of the values of a property that can contain multiple Unicode string values. These string values are NULL-terminated. The number of values that can be encoded in this structure is 100,000.

MVft: PROP_VAL_UNION contains an encoding of the value of a property that can contain multiple 64-bit integer values. The values are encoded as FILETIME structures. The number of values that can be encoded in this structure is 100,000.

lReserved: Reserved. All clients and servers MUST set this value to the constant 0x00000000.