ReleaseStgMedium-Funktion (ole2.h)
Gibt das angegebene Speichermedium frei.
Syntax
void ReleaseStgMedium(
LPSTGMEDIUM unnamedParam1
);
Parameter
unnamedParam1
Rückgabewert
Keine
Bemerkungen
Die ReleaseStgMedium-Funktion ruft die entsprechende Methode oder Funktion auf, um das angegebene Speichermedium freizugeben. Verwenden Sie diese Funktion bei Datenübertragungsvorgängen, bei denen Speichermediumstrukturen Parameter sind, z. B. IDataObject::GetData oder IDataObject::SetData. Zusätzlich zum Identifizieren des Typs des Speichermediums gibt diese Struktur die geeignete Release-Methode an, um das Speichermedium freizugeben, wenn es nicht mehr benötigt wird.
Es ist üblich, ein STGMEDIUM von einem Codetext an einen anderen zu übergeben, z. B. in IDataObject::GetData, in dem der aufgerufene ein Medium zuordnen und an den Aufrufer zurückgeben kann. ReleaseStgMedium ermöglicht Flexibilität, ob der empfangende Code das Medium besitzt oder ob der ursprüngliche Anbieter des Mediums noch besitzer ist. In diesem Fall muss der empfangende Code den Anbieter darüber informieren, dass er das Medium freigeben kann.
Wenn der ursprüngliche Anbieter des Mediums für die Freigabe des Mediums verantwortlich ist, ruft der Anbieter ReleaseStgMedium auf und gibt das Medium und den entsprechenden IUnknown-Zeiger als punkForRelease-Strukturmember an. Abhängig vom Typ des freigegebenen Speichermediums wird eine der folgenden Aktionen ausgeführt, gefolgt von einem Aufruf der IUnknown::Release-Methode für den angegebenen IUnknown-Zeiger .
Medium | ReleaseStgMedium-Aktion |
---|---|
TYMED_HGLOBAL | Keine. |
TYMED_GDI | Keine. |
TYMED_ENHMF | Keine. |
TYMED_MFPICT | Keine. |
TYMED_FILE | Gibt die Dateinamenzeichenfolge mithilfe von Standardmäßigen Speicherverwaltungsmechanismen frei. |
TYMED_ISTREAM | Ruft IStream::Release auf. |
TYMED_ISTORAGE | Ruft IStorage::Release auf. |
Der Anbieter gibt an, dass der Empfänger des Mediums für die Freigabe des Mediums verantwortlich ist, indem er NULL für den PunkForRelease-Strukturmember angibt. Anschließend ruft der Empfänger ReleaseStgMedium auf, das je nach Art des freigegebenen Speichermediums einen Aufruf durchführt, wie in der folgenden Tabelle beschrieben.
Medium | ReleaseStgMedium-Aktion |
---|---|
TYMED_HGLOBAL | Ruft die GlobalFree-Funktion für das Handle auf. |
TYMED_GDI | Ruft die DeleteObject-Funktion für das Handle auf. |
TYMED_ENHMF | Löscht die erweiterte Metadatei. |
TYMED_MFPICT | Die darin enthaltene hMF wird mit der DeleteMetaFile-Funktion gelöscht. dann wird das Handle selbst an GlobalFree übergeben. |
TYMED_FILE | Gibt die Datenträgerdatei durch Löschen frei. Gibt die Dateinamenzeichenfolge mithilfe der standardmäßigen Speicherverwaltungsmechanismen frei. |
TYMED_ISTREAM | Ruft IStream::Release auf. |
TYMED_ISTORAGE | Ruft IStorage::Release auf. |
In beiden Fällen ist das angegebene Speichermedium nach dem Aufruf von ReleaseStgMedium ungültig und kann nicht mehr verwendet werden.
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Windows 2000 Professional [nur Desktop-Apps] |
Unterstützte Mindestversion (Server) | Windows 2000 Server [nur Desktop-Apps] |
Zielplattform | Windows |
Kopfzeile | ole2.h |
Bibliothek | Ole32.lib |
DLL | Ole32.dll |
APIs | ext-ms-win-com-ole32-l1-1-3 (eingeführt in Windows 10, Version 10.0.10240) |