ATL (Visual Studio 2008) を使用して Windows シェル拡張機能を作成しました。次のモジュールがあり、各モジュールは、登録用の独自の .rgs ファイルを持つ個別の ATL シンプル オブジェクトです。
- IShellFolder/IShellView -> Windows エクスプローラーの仮想ドライブの場合
- IContextMenu/IShellExtInit -> ポップアップ メニューのファイルとフォルダの場合
- IShellIconOverlayIdentifier - ファイルとフォルダーにオーバーレイ アイコンを表示するには
- IShellPropSheetExt/IShellExtInit -> ファイルとフォルダーのプロパティのカスタム プロパティ ページの場合
上記は WinXP で正常に動作し、WinXP でこのシェル拡張をデバッグできます。しかし、Vista に切り替えるとすぐに、(2) と (4) のメソッド呼び出ししか取得しません。ドライブは Windows エクスプローラーで作成されますが、クリックしても基になるメソッドが呼び出されません。右クリックすると(2)が呼び出され、ファイルまたはフォルダーの「プロパティ」を選択すると(4)のコードに入ります。
Vista で (1) と (3) に欠けているインターフェイスはありますか。MSDN で、Vista 用のシェル拡張機能の作成に関する完全かつ詳細なドキュメントを見つけることができませんでした。シェル拡張に関する CodeProject の記事は既に読んでいました。