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 Professional [仅限桌面应用]
最低受支持的服务器 Windows 2000 Server [仅限桌面应用]
目标平台 Windows
标头 ole2.h
Library Ole32.lib
DLL Ole32.dll
API 集 Windows 10版本 10.0.10240 中引入的 ext-ms-win-com-ole32-l1-1-3 ()

另请参阅

STGMEDIUM