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