IPropertyStorage::DeleteMultiple
Deletes as many of the indicated properties as exist in this property set.
HRESULT DeleteMultiple(
ULONG cpspec,
|
//Count of properties to be deleted
|
PROPSPEC const rgpspec[]
|
//Array of properties to be deleted
|
);
|
|
Parameters
-
cpspec
-
[in] Count of properties being deleted. May legally be zero, though this is a
no-op, deleting no properties.
-
rgpspec[]
-
[in] Properties to be deleted. A mixture of property identifiers and
string-named properties is permitted. There may be duplicates, and there is no
requirement that properties be specified in any order.
Return Values
This method supports the standard return value E_UNEXPECTED, as well as the
following:
-
S_OK
-
All of the specified properties that exist in the property set have been
deleted.
-
STG_E_ACCESSDENIED
-
The requested access to the property storage object has been denied. No
properties were deleted.
-
STG_E_INSUFFICIENTMEMORY
-
There is not sufficient memory to perform this operation. Some properties may
not have been deleted.
-
STG_E_INVALIDPARAMETER
-
At least one of the parameters is invalid, as when one of the PROPSPECs
contains an illegal ulKind value. Some properties may not have been
deleted.
-
STG_E_INVALIDPOINTER
-
May be returned when at least one of the pointers passed in is invalid. Some
properties may not have been written. More frequently, an invalid pointer will
instead result in an access violation.
Remarks
IPropertyStorage::DeleteMultiple must delete as many of the indicated
properties as are in the current property set. If a deletion of a stream- or
storage-valued property occurs while that property is open, the deletion will
succeed and place the previously returned
IStream or IStorage pointer in the
reverted state.