2

私はWindowsシェル拡張について話しています。

カスタマイズしたファイル タイプ (*.filetype など) の特定のプロパティを表示できるシェル拡張機能があります。そしてもちろん、シェル拡張 dll が explorer.exe プロセスに読み込まれます。しかし、今、任意のアプリケーションで FileOpen ダイアログを起動し、そのダイアログ (例としてメモ帳) 内のファイル プロパティをチェックすると、これらのシェル拡張 dll が notepad.exe プロセスに読み込まれます。これは避けたいケースです。

FileOpen ダイアログで特定のシェル拡張機能を無効にすることは可能ですか?

ありがとう。

4

1 に答える 1

2

実際の (大きな) シェル拡張 dll をロードするだけの shim dll を作成します。その shim dll の唯一の仕事は、現在のプロセスが "explorer.exe" であるかどうかを確認することです。存在する場合、shim は実際の dll をロードし、そこにすべての呼び出しを転送します。そうでない場合、shim は実際の dll をロードせず、E_NOTIMPL などをすべての要求に返すだけです。

于 2009-11-03T15:20:58.747 に答える