Share via


ReleaseStgMedium 函式 (ole2.h)

釋放指定的儲存媒體。

語法

void ReleaseStgMedium(
       LPSTGMEDIUM unnamedParam1
);

參數

unnamedParam1

傳回值

備註

ReleaseStgMedium 函式會呼叫適當的方法或函式,以釋放指定的儲存媒體。 在數據傳輸作業期間使用此函式,其中儲存媒體結構是參數,例如 IDataObject::GetDataIDataObject::SetData。 除了識別儲存媒體的類型之外,此結構還會指定在不再需要儲存媒體時釋放儲存媒體的適當 Release 方法。

通常會將 STGMEDIUM 從一個程式代碼主體傳遞至另一個主體,例如 在 IDataObject::GetData 中,呼叫者可以配置媒體並將它傳回給呼叫端。 ReleaseStgMedium 允許接收程式代碼主體是否擁有媒體,或媒體的原始提供者是否仍擁有媒體,在此情況下,接收程式代碼需要通知提供者可以釋放媒體。

當媒體的原始提供者負責釋放媒體時,提供者會呼叫 ReleaseStgMedium,並將媒體和適當的 IUnknown 指標指定為 punkForRelease 結構成員。 根據釋放的儲存媒體類型,會採取下列其中一個動作,然後呼叫指定的IUnknown 指標上的IUnknown::Release 方法。

ReleaseStgMedium 動作
TYMED_HGLOBAL 無。
TYMED_GDI 無。
TYMED_ENHMF 無。
TYMED_MFPICT 無。
TYMED_FILE 使用標準記憶體管理機制釋放檔名字符串。
TYMED_ISTREAM 呼叫 IStream::Release
TYMED_ISTORAGE 呼叫 IStorage::Release
 

提供者指出媒體的接收者負責指定 punkForRelease 結構成員的 NULL 來釋放媒體。 然後,接收者會呼叫 ReleaseStgMedium,這會根據釋放的儲存媒體類型,進行如下表所述呼叫。

ReleaseStgMedium 動作
TYMED_HGLOBAL 在句柄上呼叫 GlobalFree 函式。
TYMED_GDI 在句柄上呼叫 DeleteObject 函式。
TYMED_ENHMF 刪除增強型元檔。
TYMED_MFPICT 包含的 hMF 會使用 DeleteMetaFile 函式刪除;然後句柄本身會傳遞至 GlobalFree
TYMED_FILE 藉由刪除磁碟檔案來釋放磁碟檔案。 使用標準記憶體管理機制釋放檔名字符串。
TYMED_ISTREAM 呼叫 IStream::Release
TYMED_ISTORAGE 呼叫 IStorage::Release
 

在任一情況下,在呼叫 ReleaseStgMedium 之後,指定的儲存媒體無效且無法再使用。

規格需求

需求
最低支援的用戶端 Windows 2000 專業版 [僅限傳統型應用程式]
最低支援的伺服器 Windows 2000 Server [僅限傳統型應用程式]
目標平台 Windows
標頭 ole2.h
程式庫 Ole32.lib
Dll Ole32.dll
API 集合 ext-ms-win-com-ole32-l1-1-3 (於 Windows 10 10.0.10240 版)

另請參閱

STGMEDIUM