ReleaseStgMedium
Frees the
specified storage medium.
void ReleaseStgMedium(
STGMEDIUM
* pmedium |
//Pointer to storage medium to be freed |
); |
|
Parameter
pmedium
[in] Pointer
to the storage medium that is to be freed.
Return Value
None.
Remarks
The
ReleaseStgMedium function calls the appropriate method or function to
release the specified storage medium. Use this function during data transfer
operations where storage medium structures are parameters, such as IDataObject::GetData
It is common
to pass a STGMEDIUM from one body of code to another, such as in IDataObject::GetData
When the
original provider of the medium is responsible for freeing the medium, the
provider calls ReleaseStgMedium, specifying the medium and the appropriate
IUnknown pointer as the punkForRelease structure member.
Depending on the type of storage medium being freed, one of the following
actions is taken, followed by a call to the Release method on the
specified IUnknown pointer:
Medium |
ReleaseStgMedium
Action |
TYMED_HGLOBAL |
None. |
TYMED_GDI |
None. |
TYMED_ENHMF |
None. |
TYMED_MFPICT |
None. |
TYMED_FILE |
Frees the
file name string using standard memory management mechanisms. |
TYMED_ISTREAM |
Calls IStream::Release. |
TYMED_ISTORAGE |
Calls IStorage::Release. |
The provider
indicates that the receiver of the medium is responsible for freeing the medium
by specifying NULL for the punkForRelease structure member. Then the
receiver calls ReleaseStgMedium, which makes a call as described in the
following table depending on the type of storage medium being freed:
Medium |
ReleaseStgMedium
Action |
TYMED_HGLOBAL |
Calls the
Win32 GlobalFree function on the handle. |
TYMED_GDI |
Calls the
Win32 DeleteObject function on the handle. |
TYMED_ENHMF |
Deletes the
enhanced metafile. |
TYMED_MFPICT |
The hMF
that it contains is deleted with the Win32 DeleteMetaFile function;
then the handle itself is passed to GlobalFree. |
TYMED_FILE |
Frees the
disk file by deleting it. Frees the file name string by using the standard
memory management paradigm. |
TYMED_ISTREAM |
Calls
IStream::Release. |
TYMED_ISTORAGE |
Calls
IStorage::Release. |
In either
case, after the call to ReleaseStgMedium, the specified storage medium
is invalid and can no longer be used.
See Also