スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
 

イベント関連の調整(Tablacus Explorer)

今回のTablacus Explorerのイベント関連の調整では、イベントのDShellFolderViewEventsを処理するようにしました。

DShellFolderViewEventsのイベントを処理できるようにする為には

1.取得しているIShellViewからGetItemObject(SVGIO_BACKGROUND, ...)を使ってIDispatch(IShellFolderViewDual)を取得

2.取得したIDispatchからQueryInterfaceでIConnectionPointContainerを取得(これ以下の処理は自作のteAdvise関数を使用)

3.取得したIConnectionPointContainerからFindConnectionPoint(DIID_DShellFolderViewEvents, ...)を使ってIConnectionPointを取得

4.取得したIConnectionPointを使って自分のIDispatchを持ったコントロールをAdviseすればOK

これで、AdviseしたIDispatchのInvokeにイベントが飛んできます。

Tablacus Explorerで使っているイベントは

1.DISPID_SELECTIONCHANGED
シェルブラウザだけならIShellBrowser::OnStateChangeで選択が変わったイベントは取得できていたのですが、エクスプローラブラウザでは受け取れなかったので前のバージョンではListViewのメッセージを受信して処理していました。

2.DISPID_FILELISTENUMDONE
シェルブラウザでのナビゲート完了のタイミングを知るために使っています。エクスプローラブラウザではIExplorerBrowserEvents::OnNavigationCompleteを使っています。

3.DISPID_VIEWMODECHANGED
表示モードを切り替えると一行選択の解除がリセットされてしまうので、前は表示モードが変わりそうな場所に一行選択の解除を入れていました。マウスで使う場合は絶対に一行選択は使いにくいと思うんだけどなぁ……

詳しくはTablacus Explorerのソースコードを見て下さい。
 
スポンサーサイト

Tablacus Explorerのアドオンの解説(X-Finder)

新しいアドオン、X-Finderをインストールするとtablacus Explorerで、X-Finder互換のビルトインコマンドや環境変数が使えるようになります。
※「Split:」「Drop:」等、まだ使えないビルトインコマンドもあります。

X-Finderのビルトインコマンドを使う場合は、アドオンX-Finderをインストールした後、タイプで「X-Finder」を選んで下さい。
X-Finder互換の環境変数はタイプが「X-Finder」以外の時も使えます。
また、「%Selected%」や「%Current%」はアドオンをインストールしなくても使えます。

アドオンX-Finder
 
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。