Destroys a previously marshaled data packet.
STDAPI CoReleaseMarshalData(
IStream * pStm //Pointer to stream containing data packet
);
E_OUTOFMEMORY, and E_UNEXPECTED, as well as the following:
The CoReleaseMarshalData function performs the following tasks:
You typically do not call this function. The only situation in which you might need to call this function is if you use custom marshaling (write and use your own implementation of IMarshal). Examples of when CoReleaseMarshalData should be called include the following situations:
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.
Note that you do not need to call CoReleaseMarshalData after a successful call of the CoUnmarshalInterface function; that function releases the marshal data as part of the processing that it does.
Windows NT: Use version 3.1 or later.
Windows: Use Windows 95 or later.
Windows CE: Unsupported.
Header: Declared in objbase.h.
Import Library: Included as a resource in ole32.dll.