我一直在使用这些剪贴板格式来允许将数据作为文件从我的应用程序直接粘贴到 Windows 资源管理器中。
我的实现使用了 MFC 类 COleDataSource ,但这只是 IDataObject 和像 OleSetClipboard 这样的 API 的包装。
当我的应用程序终止 IDataObject 的本地实现时(即从 COleDataSource 派生的类)将不得不消失,因此我调用 COleDataSource::FlushClipboard。这应该将所有当前数据的副本放入剪贴板(甚至延迟渲染的内容),以便在应用程序关闭后可用。
这适用于 CF_TEXT 等简单格式,但 CFSTR_FILECONTENTS 格式不再适用。Windows 资源管理器提供了一个粘贴菜单项,但是当我尝试粘贴时,会发出标准的 MessageBeep 声音并且没有任何反应。
是否有可能让它工作或者依赖于原始 IDataObject 实现的 CFSTR_FILECONTENTS 仍然处于活动状态?