CPLApplet の使用

Windows Vista より前では、.dll ファイルを作成し、それに .cpl 拡張子を付けて、コントロール パネル項目を作成していました。 このファイルは CPlApplet 関数をエクスポートしました。 このスキームは Windows Vista 以降のバージョンでも引き続きサポートされており、このトピックで説明します。 ただし、新しいコントロール パネル項目のガイドラインでは、タスク フロー レイアウトを使用する .exe ファイルとしてコントロール パネル項目を構築する、よりシンプルなアプローチが推奨されています。

コントロール パネルは、.dll (または .cpl) ファイルを読み込むときに、 CPlApplet 関数を呼び出して、ファイルがホストするコントロール パネル項目の数や各項目に関する情報などの情報を取得します。 コントロール パネルは、項目のウィンドウが初期化されたとき、開かれたとき、または閉じられたときにもこの関数を呼び出します。

Windows は、最初にコントロール パネル項目を読み込むときに、 CPlApplet 関数のアドレスを取得し、その後そのアドレスを使用して関数を呼び出してメッセージを渡します。 次のようなメッセージが送信される可能性があります。

メッセージ 説明
CPL_DBLCLK ユーザーが特定のコントロール パネル項目に関連付けられたアイコンを選択したことを CPlApplet に通知するために送信されます。 CPlApplet は指定された項目のダイアログ ボックスを表示し、ユーザーが指定したタスクを実行します。 CPlApplet lParam1 パラメータは、コントロール パネル項目の 0 から始まるインデックスを表す整数です。 lParam2 パラメータは、 CPL_INQUIRE または CPL_NEWINQUIRE メッセージの CPLINFO または NEWCPLINFO 構造体で返される lpData ポインタです。 戻り値は無視されます。
CPL_EXIT 最後の CPL_STOP メッセージの後で、Windows が FreeLibrary 関数を使用してコントロール パネル項目を含む DLL を解放する直前に送信されます。 CPlApplet は残りのメモリを解放し、閉じる準備をする必要があります。 戻り値は無視されます。
CPL_GETCOUNT CPL_INIT メッセージの後に送信され、 CPlApplet に、サポートするサブプログラムの数を示す数値を返すように要求します。
CPL_INIT コントロール パネル項目を含む DLL が読み込まれた直後に送信されます。 メッセージは、 CPlApplet にメモリ割り当てを含む初期化手順を実行するように指示します。
CPL_INQUIRE CPL_GETCOUNT メッセージの後に送信され、 CPlApplet に指定されたサブプログラムに関する情報を提供するように促します。 lParam1 値は、情報が要求されているサブプログラムのゼロベースのインデックスを表す整数です。 CPlAppletlParam2 パラメータは、 CPLINFO 構造体を指します。 戻り値は無視されます。
CPL_NEWINQUIRE CPL_GETCOUNT メッセージの後に送信され、 CPlApplet に指定されたコントロール パネル項目に関する情報を提供するように要求します。 lParam1 値は、情報が要求されているサブプログラムのゼロベースのインデックスを表す整数です。 lParam2 パラメータは、 NEWCPLINFO 構造体へのポインタです。 CPL_NEWINQUIRE は通常、無視されます。 CPL_NEWINQUIRE を使用するとコントロール パネルのパフォーマンスが低下するため、Windows 95、Microsoft Windows NT 4.0、およびそれ以降のシステムでは、アプリケーションは CPL_INQUIRE のみを処理する必要があります。 これは、返された文字列とアイコンをキャッシュできないためです。 戻り値は無視されます。
CPL_SELECT 廃止。 現在のバージョンの Windows ではこのメッセージは送信されません。
CPL_STARTWPARMS ユーザーが特定のダイアログ ボックスに関連付けられたアイコンを選択したことを CPlApplet に通知するために送信されます。 CPlApplet は対応するダイアログ ボックスを表示し、ユーザーが指定したタスクを実行する必要があります。 このメッセージは CPL_DBLCLK に似ていますが、追加情報が含まれている可能性があります。 lParam1 パラメータはコントロール パネルの項目番号であり、 lParam2 は必要になる可能性のある追加の指示への LPCTSTR です。 このメッセージが処理された場合は TRUE を返し、それ以外の場合は FALSE を返します。 このメッセージは、Shell32.dll の バージョン 5.00 以降に有効です。
CPL_STOP Windows がコントロール パネル拡張機能をアンロードする前に、.cpl ファイル内のコントロール パネル項目ごとに 1 回送信されます。 CPlApplet は、 lParam1で指定された項目番号に関連付けられたメモリを解放する必要があります。 lParam2 パラメータは、 CPL_INQUIRE または CPL_NEWINQUIRE メッセージの CPLINFO または NEWCPLINFO 構造体で返される lpData ポインタです。 戻り値は無視されます。

 

コントロールパネル項目

ユーザー エクスペリエンス ガイドライン

コントロールパネル項目の登録

コントロールパネルのメッセージ処理

コントロールパネル項目の実行

システムコントロールパネル項目の拡張

コントロールパネルのカテゴリの割り当て

コントロール パネル項目の検索可能なタスク リンクを作成する

Windows Vista のセーフモードでコントロール パネルにアクセスする