私は次のトリックをしようとしています:
- クリップボードに
IDataObject*
セットする必要があるので、クリップボードにセットするために使用OleSetClipboard()
しています。 CLIPFORMAT
クリップボードに追加したいものがもう1つありますが、受け取ったメソッドが実装されていないOleSetClipboard()
ため、追加できません。したがって、この制限を克服するために、この方法で、最初にクリップボードに移動することはできません。IDataObject*
SetData()
OpenClipboard()
GetClipboardOwner()
SetClipboardData()
EmptyClipboard()
これですべて正常に機能しますが、OleGetClipboard()
を使用してクリップボードに配置したデータが返されない場合はSetClipboardData()
、を使用できGetClipboardData()
ます。
なぜこれが起こるのか想像できます(それは単にを返しますIDataObject*
)、それで私はOleFlushClipboard()
を削除しようとしましたIDataObject*
、そしてOleGetClipboard()
再びOSに新しいを再構築させようとしましたIDataObject*
、そしてそれはまだCLIPFORMAT
によって追加されたものを含んでいませんでしたSetClipboardData()
。
誰かがこの問題を克服する方法を知っていますか?または別のトリック?またはそれがこのように機能する理由を説明しますか?ありがとう