2008-03-01 [長年日記]

[Q3] CF_HDROP

メッセージや添付ファイルをDnDした場合やクリップボードにコピーした場合には、CFSTR_FILEDESCRIPTORとCFSTR_FILECONTENTS(とプライベートフォーマット)だけをサポートしたIDataObjectを使っていたのですが、CF_HDROPもサポートしました。これにより、エクスプローラ以外のファイルのドロップを受け付けるアプリケーションにもドロップできるようになりました。

CF_HDROPを実装したら、エクスプローラにドロップした場合でもCF_HDROPが優先的に使われるようになってしまいました。IDataObject::EnumFormatEtcでCF_HDROPを最後に返すようにしてもやっぱりCF_HDROPが使われてしまいます。これでは、CFSTR_FILEDESCRIPTORとCFSTR_FILECONTENTSを実装した意味が無い…

さらに、CFSTR_FILEDESCRIPTORとCFSTR_FILECONTENTSの組み合わせだと同じ名前のファイルが含まれていた場合に自動でリネームしてくれたのに、それも効かなくなってしまいました。

[]