2

これらのクリップボード形式を使用して、アプリから Windows エクスプローラーにデータをファイルとして直接貼り付けることができます。

私の実装では MFC クラス COleDataSource を使用していますが、これは IDataObject や OleSetClipboard などの API の単なるラッパーです。

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

これは CF_TEXT のような単純な形式で機能しますが、CFSTR_FILECONTENTS 形式は機能しなくなりました。Windows エクスプローラーには [貼り付け] メニュー項目がありますが、貼り付けようとすると、標準のメッセージ ビープ音が鳴り、何も起こりません。

これを機能させることは可能ですか、それとも CFSTR_FILECONTENTS は元の IDataObject 実装がまだアクティブであるかに依存していますか?

4

1 に答える 1

0

複合データは、要求時にコピーされます。ソースが死んでいる場合、データは失われています。

于 2012-06-29T14:27:35.393 に答える