2012-04-23 17 views
2

これらのクリップボード形式を使用して、データを直接アプリケーションからWindowsエクスプローラにファイルとして貼り付けることができました。アプリケーションが終了したときにクリップボードにCFSTR_FILECONTENTS/CFSTR_FILEDESCRIPTORの項目を残す

私の実装では、MFCクラスのCOleDataSourceが使用されていますが、これはIDataObjectの周りのラッパーとOleSetClipboardのようなAPIです。

IDataObjectのローカル実装(つまり、COleDataSourceから派生したクラス)が終了すると、COleDataSource :: FlushClipboardが呼び出されます。これにより、現在のすべてのデータのコピーをクリップボードに保存する必要があります(遅延レンダリングされたコンテンツであっても)。そのため、アプリが終了した後に利用できるようになります。

これはCF_TEXTなどの単純な形式でも機能しますが、CFSTR_FILECONTENTS形式は機能しなくなりました。 Windows Explorerには[貼り付け]メニュー項目がありますが、標準のMessageBeepサウンドが貼り付けられても何も起こりません。

これを動作させることは可能ですか、元のIDataObject実装がまだ有効であるかどうかに応じてCFSTR_FILECONTENTSですか?

+0

データオブジェクトの情報をどのように設定していますか。あなたはCFSTR_FILECONTENTSのレンダリングを遅らせますか? – snowdude

答えて

0

複雑なデータは、要求時にコピーされます。あなたのソースが死んでいる場合、あなたのデータはなくなります。

関連する問題