OleFlushClipboard 函数 (ole2.h)
执行剪贴板关闭序列。 它还释放由 OleSetClipboard 函数放置在剪贴板上的 IDataObject 指针。
语法
HRESULT OleFlushClipboard();
返回值
此函数在成功时返回S_OK。 其他可能的值包括以下内容。
返回代码 | 说明 |
---|---|
|
在 OleFlushClipboard 中使用的 Windows OpenClipboard 函数失败。 |
|
在 OleFlushClipboard 中使用的 Windows CloseClipboard 函数失败。 |
注解
OleFlushClipboard 将数据对象中的数据呈现到剪贴板上,并释放指向数据对象的 IDataObject 指针。 当将数据对象放入剪贴板的应用程序正在运行时,剪贴板仅保留指向数据对象的指针,从而节省内存。 如果要编写充当剪贴板操作源的应用程序,则可以在应用程序关闭时调用 OleFlushClipboard 函数,例如当用户退出应用程序时。 调用 OleFlushClipboard 可在应用程序关闭后粘贴和粘贴 OLE 对象。
在调用 OleFlushClipboard 之前,可以通过调用 OleIsCurrentClipboard 函数轻松确定数据是否仍在剪贴板上。
OleFlushClipboard 将数据传输对象提供的所有格式(包括 OLE 1 兼容性格式)保留在剪贴板上,以便在应用程序关闭后可用。 除了 OLE 1 兼容性格式外,这些格式还包括全局句柄媒体上提供的所有格式, (除TYMED_FILE) 和格式化为 NULL 目标设备之外的所有格式。 例如,如果数据源应用程序提供特定的剪贴板格式 (iStorage 对象上说 cfFOO) ,并调用 OleFlushClipboard 函数,则存储对象将复制到内存中,并将 hglobal 内存句柄放在剪贴板上。
若要检索剪贴板上的信息,可以从另一个应用程序调用 OleGetClipboard 函数,这将创建默认数据对象,剪贴板中的 hglobal 再次成为存储对象。 此外, FORMATETC 枚举器和 IDataObject::QueryGetData 方法将正确指示原始剪贴板格式 (cfFOO) 再次可用于TYMED_ISTORAGE。
若要清空剪贴板,请调用 OleSetClipboard 函数,为其参数指定 NULL 值。 如果关闭后无需将数据保留在剪贴板上,或者使用标准 Windows 剪贴板函数将数据放置在剪贴板上,应用程序在关闭时应调用它。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows 2000 Professional [仅限桌面应用] |
最低受支持的服务器 | Windows 2000 Server [仅限桌面应用] |
目标平台 | Windows |
标头 | ole2.h |
Library | Ole32.lib |
DLL | Ole32.dll |
API 集 | Windows 10版本 10.0.15063 中引入的 ext-ms-win-com-ole32-l1-1-5 () |