タブファイラー開発ブログ

Tablacus ExplorerやX-Finderの作者のブログ

フォルダ ツリーの自動更新の強化2 - INameSpaceTreeControl

前回のふたつ目はAs/Rの作者さんにこちらでOS安定稼動を考えると良くないとアドバイスを頂いたので、Tablacus Explorer 15.10.5から別の方法で実装してみました。

今回の実装は

SHChangeNotifyDeregisterでInterruptレベルの通知をキャッチして………

ツリーに項目を追加する場合は INameSpaceTreeControl::SetItemState(IShellItem *, NSTCIS_EXPANDED, NSTCIS_EXPANDED) で追加する。

ツリーから項目を削除等する場合は NamespaceTreeControl のウインドウに WM_USER + 1 でメッセージを横流しする。

追加の方はまだ良いとして、削除などの方はOSのバージョンアップ等で仕様が変わったらアウトなんですが、SHChangeNotifyで投げるのに比べたら他のアプリに影響しないのでマシかなと。

 ついでに、みもふたもない言い方になりますが、そもそもDOSコマンドのmkdirとか「シェル通知を送らないことで高速化している」という側面もあるので、そっとしておいてあげた方が良いんじゃね?という考え方もあります。

エクスプローラーはmkdir等も対応してて自動的に追加されたりするので、「エクスプローラーはちゃんと動くんですが………」等と言われちゃいがちなのでなんとかしたいなと………

 

機会がありましたら、一緒にご飯したいですね。