1

Windows エクスプローラーがローカル ディスクを参照しているときに、DISPID_BEFORENAVIGATE2 イベントをインターセプトすることになっている BHO があります。XP と Vista では問題なく動作しますが、Windows 7 RC では動作しなくなりました。

Windows 7 RC は、ローカル フォルダーが参照されたときに DISPID_BEFORENAVIGATE2 イベントの送信を停止しました。他のイベント (DISPID_DOWNLOADBEGIN など) は BHO に送信されますが、DISPID_BEFORENAVIGATE2 が必要です。

誰でもこれを確認したり、可能な回避策を提供したりできますか?

ありがとう!

4

1 に答える 1

0

1年以上遅れていますが、回避策は次のとおりです。MinHookIShellBrowser::BrowseObjectなどのAPIフックライブラリを使用してAPIフックを設定するだけです。これを行うサンプルコードについては、こちらを参照してください:COMオブジェクト関数のAPIフック?

IShellBrowserこれにより、すべてのインスタンスでナビゲーションが迂回してルーティングされます。ただし、IShellBrowserextendsを使用すると、ウィンドウをサブクラス化した個々のインスタンスを使用して操作IOleWindowできます。IOleWindow::GetWindowSendMessageIShellBrowser

于 2010-09-12T20:24:38.443 に答える