Visual Studio .NET 2003
Reads specified properties from the current property set.
HRESULT ReadMultiple( ULONG cpspec, PROPSPEC const rgpspec, PROPVARIANT rgvar );
- [in] Count of properties specified in the rgpspec array. May legally be zero, although this has no effect on the outcome of the interface call because it reads no properties.
- [in] An array of properties to be read. Properties can be specified either by a property ID or by an optional string name. It is not necessary to specify properties in any particular order in the array. The array can contain duplicate properties, resulting in duplicate property values on return for simple properties. Non-simple properties should return access denied on an attempt to open them a second time. The array can contain a mixture of property IDs and string IDs.
- [in, out] Caller-allocated array of a PROPVARIANT structure that, on return, contains the values of the properties specified by the corresponding elements in the rgpspec array. The array must be at least large enough to hold values of the cpspec member of the PROPVARIANT structure. The cpspec member contains the number of properties being set in the array. The caller does not need to initialize these PROPVARIANT structure values in any particular way. However, the implementation must fill in all members correctly on return. If there is no other appropriate value, the implementation must set the vt member of each PROPVARIANT structure to VT_EMPTY.
This method supports the standard return value E_UNEXPECTED, as well as the following:
- Success. At least some of the requested properties were retrieved.
- All the property names or IDs had valid syntax, but none of them exist in this property set. Accordingly, no properties were retrieved, and each PROPVARIANT structure is set to VT_EMPTY.
- There is not enough memory to perform this operation. No properties were retrieved.
- At least one of the parameters is not valid; for example, when one of the PROPSPEC structures contains an illegal value of the ulKind member. If the ulKind member is set to a string name instead of a property set value, some properties may not be retrieved.