Destroys a marshaled data packet.
| IStream * pStm
||//Stream used for unmarshaling
[in] Points to a stream that contains the data packet which is to be destroyed.
The data packet was released successfully.
Indicates an unspecified error.
Out of memory.
One or more arguments were invalid.
An unexpected error occured.
See the IStream
interface for information on possible stream access errors.
This method is typically called from the receiving side (that is, the side
doing the unmarshaling), sometimes via the CoReleaseMarshalData
API functions. However, if the data packet does not arrive on the receiving
side or if the appropriate proxy object cannot be successfully created there,
this method is called from the originating side (that is, the side doing the
As an analogy, the data packet can be thought of as a reference to the
original object, just as if it were another interface pointer being held on the
object. Like a real interface pointer, that data packet must be released at some
point. The use of IMarshal::ReleaseMarshalData
to release data packets is analogous to the use of IUnknown::Release
to release interface pointers.
Notes to Implementors
If your implementation stores state information about marshaled data packets,
use this method to release the state information associated with the data
packet found in pstm
. Your implementation should also position the seek pointer in the stream past
the last byte of data.
- Software for developers
Software for Android Developers
- More information resources
Unix Manual Pages