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