名前空間拡張機能の場所の指定

名前空間拡張機能のルートは、通常、Windows エクスプローラーによってツリー ビューとフォルダー ビューの両方のフォルダーとして表示されます。 Windows エクスプローラーで拡張機能のファイルとサブフォルダーを表示するには、ルート フォルダーがシェル名前空間階層のどこにあるかを指定する必要があります。 この位置は 、ジャンクション ポイントと呼ばれます。

仮想フォルダーをジャンクション ポイントとして使用する

拡張機能のジャンクション ポイントを定義する最も簡単な方法は、ルート フォルダーをシステム仮想フォルダーのサブフォルダーにすることです。 この種類のジャンクション ポイントは、 仮想ジャンクション ポイントと呼ばれます。 [デスクトップ] フォルダーと [マイ コンピューター] フォルダーは仮想ジャンクション ポイントの一般的な場所ですが、リモート コンピューターまたは [個人用ネットワークの場所]、[インターネット エクスプローラー]、[コントロール パネル] フォルダーの下に仮想ジャンクション ポイント定義することもできます。

仮想ジャンクション ポイントを定義するには、適切な仮想フォルダーを表すキーのサブキーを作成し、拡張機能のクラス識別子 (CLSID) の文字列形式で名前を付けます。 登録された CLSID は次のように表示されます。

HKEY_LOCAL_MACHINE or HKEY_CURRENT_USER
   Software
      Microsoft
         Windows
            CurrentVersion
               Explorer
                  Virtual Folder Name
                     NameSpace
                        {Extension CLSID}
                           (Default) = Junction Point Name

仮想フォルダー名 は、次の表のサブキーの 1 つです。

場所 仮想フォルダー名
コントロール パネル ControlPanel
デスクトップ デスクトップ
ネットワーク全体 NetworkNeighborhood\EntireNetwork
[マイ コンピューター] MyComputer
マイ ネットワーク NetworkNeighborhood
リモート コンピューター RemoteComputer
ユーザー ファイル UsersFiles

 

リモート拡張機能は 、IRemoteComputer で初期化する必要があります。

ファイル システム フォルダーをジャンクション ポイントとして使用する

ファイル システム フォルダーをジャンクション ポイントとして定義するには、2 つの方法があります。 最も簡単な方法は、適切な場所にフォルダーを作成し、フォルダーの名前にピリオドを追加し、その後に拡張機能の CLSID の文字列形式を追加することです。 フォルダー名のみが Windows エクスプローラーに表示されます。 次の例では、表示名が MyFolder のジャンクション ポイントを作成します。

MyFolder.{Extension CLSID}

または、次の方法で、従来の名前付きフォルダーをジャンクション ポイントとして定義することもできます。

  • フォルダーを読み取り専用にする。
  • PathMakeSystemFolder を呼び出して、フォルダーをシステム フォルダーにします。
  • 拡張子の CLSID を含むフォルダーに非表示のDesktop.ini ファイルを配置します。

Desktop.iniは、フォルダーの動作の特定の側面をカスタマイズするために任意のフォルダーに追加できる標準のテキスト ファイルです。 このファイルの使用方法の一般的な説明については、「 How to Customize Folders with Desktop.ini」を参照してください。 フォルダーをジャンクション ポイントとして定義するには、[Desktop.iniの ShellClassInfo] セクションには、次のように拡張機能の CLSID が含まれている必要があります。

[.ShellClassInfo]
CLSID={Extension CLSID}

名前空間拡張機能のビューを開く

ユーザーがジャンクション ポイントを参照すると、Windows エクスプローラーによってルート フォルダーのビューが自動的に作成されます。 拡張機能の CLSID を引数としてExplorer.exeを明示的に起動して、ビューを作成することもできます。 たとえば、この方法を使用して、ショートカット メニューまたはショートカットから拡張機能のビューを起動できます。 たとえば、ツリー ビューを含む MyExtension のビューを起動するには、次のコマンド文字列を使用できます。

%SystemRoot%\Explorer.exe /e,::{MyExtension CLSID}

別のコマンド文字列を使用して、拡張機能内のオブジェクトのビューを起動できます。 この機能は、たとえば、フォルダー ビューを使用して、ユーザーが複数の圧縮ファイルの 1 つの内容を表示できるようにする拡張機能の場合に便利です。

%SystemRoot%\Explorer.exe /e,::{MyExtension CLSID},objectname

objectname パラメーターは、表示するオブジェクトの名前です。 Windows エクスプローラーは、名前を対応する PIDL に変換し、PIDL を新しいフォルダー オブジェクトの IPersistFolder::Initialize メソッドに渡します。

注意

CLSID 文字列の前にコロンのペアを付ける必要があります (::)または、コマンドが失敗します。 前に示した 2 つのサンプル コマンド ラインで使用されるスラッシュ e (/e) フラグは、ツリー ビューを表示するように Windows エクスプローラーに指示します。 フラグは、2 つのコロンからコンマで区切る必要があります。 ツリー ビューが不要な場合は、/e フラグとコンマを省略します。