プロトコル ハンドラーの検索コネクタの作成

Windows エクスプローラーでは、レジストリ キー エントリを使用して、プロトコル ハンドラーの検索コネクタの作成を制御します。 レジストリを通じて、メーカーとサード パーティの両方が、新しいプロトコル ハンドラーとレガシ プロトコル ハンドラーを Windows 7 Search に参加させることができます。

このトピックは次のように構成されています。

Windows 7 のプロトコル ハンドラーの検索コネクタについて

Windows 7 では、[スタート] メニューまたは Windows エクスプローラーからの検索には、インデックス化された場所にあるファイルと、検索コネクタを持つリモート データ ストアまたはプロトコル ハンドラー項目などのファイル システム以外の項目のみが含まれます。 検索コネクタでは、[スタート] メニューとシェル検索のスコープにプロトコル ハンドラー項目を含めるだけでなく、[スタート] メニューでプロトコル ハンドラー項目を [スタート] メニューの検索結果の中でグループ化できます。その結果、ユーザーはグループ ヘッダーをクリックしてプロトコル ハンドラーからの結果のみを表示できるという利点があります。 または、Searches フォルダーに移動し、検索コネクタ ファイルを開き、その検索コネクタに関連付けられている特定のプロトコル ハンドラーからの項目のみを含む検索を実行することもできます。

ユーザーが最初にプロトコル ハンドラーを登録するアプリケーションを起動すると、Windows エクスプローラーは、ユーザーの Searches フォルダー内にプロトコル ハンドラーの検索コネクタ ファイル (.searchConnector-ms) を生成します。 プロトコル ハンドラーを使用するアプリケーションでは、この動作を無効にするか、プロトコル ハンドラーの検索コネクタの名前と説明をカスタマイズするかを選択できます。

Note

ユーザーの Searches フォルダーの場所は %userprofile%\Searches、またはFOLDERID_SavedSearches になります。 FOLDERID_SavedSearches の GUID は {7d1d3a04-debb-4115-95cf-2f29da2920da} です。

 

Windows エクスプローラーでは、次のセクションで説明するレジストリ キー エントリを使用して、プロトコル ハンドラーの検索コネクタの作成を制御します。

Note

プロトコル ハンドラーの検索コネクタを作成するプログラム的な手段はありません。 レジストリを使用して構成する必要があります。

 

レジストリ キーとその設定可能な値の概要を次の表に示します。 プロトコル ハンドラーは、MAPI、file、csc などのプロトコルの実際の名前に<プロトコル>が置き換えられるこれらのレジストリ キーの一部またはすべてに設定できます。

レジストリ キー 設定可能な値 Type 説明
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows Search\PHSearchConnectors\<protocol>\Version 存在しません (既定値)。 それ以外の場合は 1 以上です。 REG_DWORD この値は、既に処理されている検索ルートの場所テンプレート登録の変更を検出するために使用されます。 存在しない場合は、既定値として 0 を使用します。 または、バージョンを上げて、その新しいバージョンのプロトコル ハンドラーがインストールされたため、検索コネクタを再生成する必要があることを Windows Explorer に通知します。
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows Search\PHSearchConnectors\<protocol>\DoNotCreateSearchConnectors 存在しません (既定値)。 それ以外の場合は 1 に設定します。 REG_DWORD 存在しない場合は、Searches フォルダーに .searchconnector-ms ファイルを作成します。 1 の場合は、処理済みとしてマークし、何もしません。
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows Search\PHSearchConnectors\<protocol>\Default\Description 検索コネクタの説明を含むローカライズ可能な文字列。 REG_SZ 省略可能。 これは、.searchconnector-ms ファイルの Description 要素で使用されます。
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows Search\PHSearchConnectors\<protocol>\Default\Name 検索コネクタに名前を付けるローカライズされた文字列。 .searchconnector-ms ファイルの名前として使用されます。 REG_SZ 各場所には一意の名前が必要です。 この値がない場合は、プロトコル ハンドラーの IShellFolder インターフェイスによって提供される表示名が使用されます。
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows Search\PHSearchConnectors\<protocol>\Default\FolderType 検索コネクタに適用する FOLDERTYPEID を識別する GUID。 REG_SZ 省略可能。 .searchconnector-ms ファイルの folderType 要素で使用され、結果を表示するために使用するテンプレートを示します。 たとえば、FOLDERTYPEID_Documents の GUID 値です。

 

プロトコル ハンドラーの検索コネクタの作成を無効にする

アプリケーションがアプリケーション自体で使用するためにプロトコル ハンドラーを使用して項目を公開し、 シェルを使用して ([スタート] メニューと Windows エクスプローラーの検索で) その項目を公開したくない場合は、プロトコル ハンドラーの検索コネクタの作成を無効にする必要があります。

検索コネクタの作成を無効にするには、次のレジストリ キーの例に示すように、DoNotCreateSearchConnectors を 0x00000001(1) に設定します。

HKEY_LOCAL_MACHINE
   Software
      Microsoft
         Windows Search
            PHSearchConnectors
               <protocol>
                  DoNotCreateSearchConnectors

DoNotCreateSearchConnectors が 1 に設定されている場合は、プロトコル ハンドラーによって公開される各項目で System.Shell.OmitFromView プロパティを公開 し、このプロパティの値を TRUE に設定することを推奨します。 これにより、[スタート] メニューの [ファイル] グループにプロトコル ハンドラー項目が表示されなくなります。

DoNotCreateSearchConnectors が存在し、0 に設定されている場合、Windows エクスプローラーはプロトコル ハンドラーの検索コネクタを作成し、プロトコル ハンドラー項目が [スタート] メニューと Windows Explorer の検索で返されます。

プロトコル ハンドラーの検索コネクタの名前、説明、または FolderType のカスタマイズ

検索コネクタ名は、Searches フォルダー内の検索コネクタを識別するだけでなく、[スタート] メニュー検索の結果のグループ ヘッダーとしても使用されます。 そのため、検索コネクタにわかりやすい名前を付けることが重要です。 レジストリ キーに名前が付けられていない場合、Windows エクスプローラーの既定では、IShellFolder インターフェイスによって指定された名前がプロトコル ハンドラーの検索ルートと空白の説明に使用されます。 IShellFolder インターフェイスの名前を変更しなくても、レジストリ キー エントリを使用して既定の名前をオーバーライドできます。 検索コネクタ名ほど目に見えるモノではありませんが、独自の説明を記述して検索コネクタの説明をオーバーライドすることもできます。

既定の名前または説明をオーバーライドするには、次のレジストリ例に示すようにエントリを設定します。

HKEY_LOCAL_MACHINE
   Software
      Microsoft
         Windows Search
            PHSearchConnectors
               <protocol>
                  Default
                     Name
                     Description

さらに、FolderType エントリは、FOLDERTYPEID GUID のいずれかに設定できます。 値はその名前ではなく、実際の GUID である必要があります。 たとえば、FOLDERTYPEID_Music ではなく、{94d6ddcc-4a68-4175-a374-bd584a510b78} とする必要があります。 FOLDERTYPEID の GUID は、Windows SDK の Shlguid.h ヘッダー ファイルで取得できます。

HKEY_LOCAL_MACHINE
   Software
      Microsoft
         Windows Search
            PHSearchConnectors
               <protocol>
                  Default
                     FolderType = {94d6ddcc-4a68-4175-a374-bd584a510b78}

レジストリ文字列リダイレクトの使用

リダイレクトされた文字列を使用すると、検索コネクタに指定した名前をローカライズできます。 レジストリに実際の文字列を入力する代わりに、名前と説明のレジストリ キーにローカライズ可能な文字列を含めることができます。

名前または説明の値にローカライズ可能な文字列を含めるには、次のレジストリ キーの例に示されるような値を設定します。

HKEY_LOCAL_MACHINE
   Software
      Microsoft
         Windows Search
            PHSearchConnectors
               <protocol>
                  Name = @dllname.dll,-resourceID

ローカライズ可能な文字列の形式は次のとおりです。

  • @dllname.dll,-resourceID。それぞれ次の内容を表します。
    • @dllname.dll は、文字列リソースを含む DLL へのパスです
    • ResourceID は、文字列リソースの整数リソース ID です。

間接文字列と、バージョン修飾子が付加された間接文字列の形式については、SHLoadIndirectString 関数で説明します。

削除されたプロトコル ハンドラーの検索コネクタの復元

検索コネクタはユーザーのコンピューター上のファイルであるため、誤って削除される可能性があります。 削除されたすべてのプロトコル ハンドラーの検索コネクタを復元するには、既定のライブラリを復元します。 復元するには、Windows エクスプローラーを開き、Libraries フォルダーを右クリックし、[既定のライブラリの復元] を選択します。

screen shot showing the restore default libraries menu option

その他のリソース

Conceptual

プロトコル ハンドラーについて

プロトコル ハンドラーの開発

インデックスの変更通知

アイコンとコンテキスト メニューの追加

コード サンプル: プロトコル ハンドラーのシェル拡張機能

プロトコル ハンドラーのインストールと登録

プロトコル ハンドラーのデバッグ