我正在尝试执行以下技巧:
- 我必须
IDataObject*
被设置到剪贴板,所以我用OleSetClipboard()
它来设置到剪贴板。 - 我有另一个
CLIPFORMAT
我想添加到剪贴板,但我不能这样做,OleSetClipboard()
因为IDataObject*
我收到的没有实现SetData()
方法。因此,为了克服这个限制,我可以OpenClipboard()
通过GetClipboardOwner()
这种方式,SetClipboardData()
无需EmptyClipboard()
先到剪贴板。
现在,一切正常,但发生的情况是它OleGetClipboard()
不会返回我使用 放在剪贴板中的数据SetClipboardData()
,但我可以使用GetClipboardData()
.
我可以想象为什么会发生这种情况(它只是返回IDataObject*
),所以我尝试OleFlushClipboard()
删除IDataObject*
, 并OleGetClipboard()
再次让操作系统重建一个新的IDataObject*
,它仍然不包含CLIPFORMAT
添加的by SetClipboardData()
。
有谁知道如何克服这个问题?还是不同的把戏?甚至解释为什么它会这样工作?谢谢