コントロール パネル アプリケーションのプロパティ シート ハンドラーを登録して実装する方法

多くのコントロール パネル アプリケーションでは、[プロパティ] プロパティ シートが表示され、ユーザーはさまざまなデバイスとシステムの設定を表示および変更できます。 これらの 2 つのアプリケーション (マウスと表示) では、プロパティ シート ハンドラーが 1 つ以上のページをカスタム ページに置き換えることができます。 次のスクリーン ショットは、[ マウスのプロパティ] プロパティ シートを示しています。

mouse properties プロパティ シート

コントロール パネル アプリケーションのプロパティ シート ハンドラーは、ファイルの種類のハンドラーと似ていますが、主に次の 2 つの例外があります。

  • シェルではなく、コントロール パネル アプリケーションによって呼び出されます。
  • これらは異なる方法で登録されます。

知っておくべきこと

テクノロジ

  • Shell

前提条件

  • コントロール パネルの理解
  • ショートカット メニューの理解

Instructions

手順 1: コントロール パネル アプリケーションのプロパティ シート ハンドラーを登録する

コントロール パネル アプリケーション プロパティ シート ハンドラーは、コントロール パネル サブキーの下に登録する必要があります。 このキーは、ハンドラーがユーザーごとかコンピューターごとかに応じて、2 つの場所のいずれかに配置できます。 ユーザーごとの登録の場合、コントロール パネル サブキーはHKEY_CURRENT_USER\コントロール パネル。 Regstr.h で定義されているマクロ REGSTR_PATH_CONTROLPANELは、"コントロール パネル" の代わりにコードで使用できます。 コンピューターごとの登録の場所は次のとおりです。

HKEY_LOCAL_MACHINE
   Software
      Microsoft
         Windows
            Current Version
               Controls Folder

このパスは、Regstr.h で定義されているREGSTR_PATH_CONTROLSFOLDER マクロを使用して、コード内で HKEY_LOCAL_MACHINE\REGSTR_PATH_CONTROLSFOLDER と呼ばれます。

プロパティ シート ハンドラーがページを置き換えることを許可するコントロール パネルアプリケーションには、コントロール パネルのサブキーの下にサブキーがあり、アプリケーションの名前は Mouse や Display です。 アプリケーションのサブキーには、PropertySheetHandlers サブキーを持つ shellex サブキーが必要です。 プロパティ シート ハンドラーを登録するには、その GUID を、コントロール パネル アプリケーションに関連付けられている PropertySheetHandlers サブキーに追加します。 これを行うには、プロパティ シート ハンドラーの という名前の PropertySheetHandlers サブキーのサブキーを作成し、既定値をハンドラーの GUID の文字列形式に設定します。

次の例では、マウス コントロール パネル アプリケーションのプロパティ シート ハンドラーをコンピューターごとに登録します。 ユーザーごとに登録するには、HKEY_LOCAL_MACHINE REGSTR_PATH_CONTROLSFOLDER を HKEY_CURRENT_USER\REGSTR_PATH_CONTROLPANEL\に置き換えます。

HKEY_LOCAL_MACHINE
   REGSTR_PATH_CONTROLSFOLDER
      Mouse
         shellex
            PropertySheetHandlers
               MyPropHandler
                  (Default) = {MyPropHandler CLSID GUID}

手順 2: コントロール パネル アプリケーションのプロパティ シート ハンドラーの実装

コントロール パネル プロパティ シート ハンドラーを実装する手順は、「ファイルの種類のプロパティ シート ハンドラーを登録して実装する方法」で説明した手順とよく似ています。 主な違いは、IShellPropSheetExt::ReplacePage には IShellPropSheetExt::AddPages ではなく、トークン以外の実装が必要になるということです。

コントロール パネル アプリケーションは、プロパティ シートを表示しようとしているときに、置き換えることができるページごとにプロパティ シート ハンドラーの IShellPropSheetExt::ReplacePage メソッドを 1 回呼び出します。 uPageID パラメーターは、ページの ID に設定されます。 使用可能なページの ID は Cplext.h で定義されています。 現在使用可能な ID を次の表に示します。

ページ ID 説明 コントロール パネル アプリケーション
CPLPAGE_MOUSE_BUTTONS [ボタン] ページ マウス
CPLPAGE_MOUSE_PTRMOTION [モーション] ページ マウス
CPLPAGE_MOUSE_WHEEL [ホイール] ページ マウス
CPLPAGE_KEYBOARD_SPEED [速度] ページ キーボード
CPLPAGE_DISPLAY_BACKGROUND [背景] ページ 表示

 

解説

ページを作成および置換する手順は、ページを追加する手順と同じです。 詳細については、「 ファイルの種類のプロパティ シート ハンドラーを登録して実装する方法」を参照してください。