チェックボックスができました。
仮想リストビューと相性が悪いので今まで実装できていなかったチェックボックスを実装しました。
とりえあず、隙間はできたのでそこに自前でチェックボックスを描画。しかし、チェックボックスのチェックが変えられないので選択と連動するようにしました。
そのままだとチェックボックス以外をクリックするとチェックボックスが解除されてしまうのでチェックモードになるようにしました。
これで、最初だけチェックボックスを狙えば後は適当にファイルをクリックすればOKです。
チェックモードからの簡単な抜け出し方は項目の無い部分で右クリックすればできます。
エクスプローラ互換の方もチェックボックス一覧を IShellView.GetItemObject(SVGIO_CHECKED,... で取得できないので標準と同じように処理する事にしました。
SVGIO_CHECKED はVista以降なのかも。
それに選択じゃないとエクスプローラ互換のドラッグ&ドロップ等も処理できなさそうな感じだったので丁度良かったと思います。
エクスプローラ互換の方はXP以降です。FWF_CHECKSELECT がXP以降っぽいです。リストビューに直接 LVS_EX_CHECKBOXES を指定してもダメでした。
苦肉の策でしたが、チェックボックスと選択が連動するので対象の項目が分かり易くて良いかなと思っております。