Freigeben über


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)

Weitere Informationen

STGMEDIUM