ReleaseStgMedium 函式 (ole2.h)
釋放指定的儲存媒體。
語法
void ReleaseStgMedium(
LPSTGMEDIUM unnamedParam1
);
參數
unnamedParam1
傳回值
無
備註
ReleaseStgMedium 函式會呼叫適當的方法或函式,以釋放指定的儲存媒體。 在數據傳輸作業期間使用此函式,其中儲存媒體結構是參數,例如 IDataObject::GetData 或 IDataObject::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 版) |