Assigns string names to a specified array of property IDs in the current property set.
HRESULT WritePropertyNames(
ULONG cpropid, //Size on input of the array rgpropid
PROPID const rgpropid[], //Property identifiers for which names
//are to be set
LPWSTR const rglpwstrName[] //New names of the corresponding
//property identifiers
);
This method supports the standard return value E_UNEXPECTED, as well as the following:
IPropertyStorage::WritePropertyNames assigns string names to property identifiers passed to the method in the rgpropid array. It associates each string name in the rglpwstrName array with the respective property identifier in rgpropid. It is explicitly valid to define a name for a property identifier that is not currently present in the property storage object.
It is also valid to change the mapping for an existing string name (determined by a case-insensitive match). That is, you can use the WritePropertyNames method to map an existing name to a new property identifier, or to map a new name to a property identifier that already has a name in the dictionary. In either case, the original mapping is deleted. Property names must be unique (as are property identifiers) within the property set.
The storage of string property names preserves the case. String property names are limited in length to 128 characters. Property names that begin with the binary Unicode characters 0x0001 through 0x001F are reserved for future use.
IPropertyStorage::ReadPropertyNames, IPropertyStorage::ReadMultiple, IPropertyStorage::WriteMultiple