Share via


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

CPlApplet コールバック関数は、Windows によってコントロール パネルアイテムに送信されたすべてのメッセージを処理します。 関数に送信されるメッセージは、特定の順序で送信されます。 同じトークンによって、.cpl項目はメッセージを特定の方法で処理する必要があります。

まず、CPlApplet 関数は、Windows が最初にコントロール パネル項目を読み込むとき、CPL_INIT メッセージを受信します。 関数は、メモリの割り当てなどの初期化を実行し、0 以外の値を返す必要があります。 CPlApplet が初期化を完了できない場合は、0 を返し、Windows に通信を終了させ、DLL を解放するように指示する必要があります。

次に、CPL_INIT メッセージが成功した場合、Windows はCPL_GETCOUNT メッセージを送信します。 その後、関数は、.dll ファイルでサポートされているコントロール パネル項目の数を返す必要があります。

その後、CPlApplet 関数は、.dll ファイルでサポートされているコントロール パネル項目ごとに、1 つのCPL_INQUIRE メッセージと 1 つのCPL_NEWINQUIRE メッセージを受信します。 この関数は、 CPLINFO または NEWCPLINFO 構造体に、項目に関する情報 (名前、アイコン、説明的な文字列など) を入力します。 ほとんどのアプリケーションでは、CPL_INQUIRE メッセージを処理し、CPL_NEWINQUIRE メッセージを無視する必要があります。 CPL_INQUIRE メッセージは、Windows がキャッシュできるフォームの情報を提供するため、パフォーマンスが大幅に向上します。 CPL_NEWINQUIRE メッセージは、アイテムのアイコンを変更したり、コンピューターの状態に基づいて文字列を表示したりする必要がある場合にのみ使用されます。 CPL_NEWINQUIREを使用するコントロール パネル項目は、キャッシュに依存しているため、Windows Vista の [スタート] メニュー検索では見つかりません。

次に CPlApplet 関数は、ユーザーがコントロール パネル項目を表すアイコンを選択したことを示す通知として、CPL_DBLCLK メッセージを受け取ります。 この関数は、このメッセージを何度でも受け取る場合があります。 メッセージには、CPL_INQUIREまたはCPL_NEWINQUIREの呼び出しで CPLINFO または NEWCPLINFO 構造体で返される項目識別子と lpData ポインターが含まれます。 関数は、対応するダイアログ ボックスを表示し、後続のユーザー入力を処理する必要があります。

CPL_DBLCLKに加えて、コマンド プロンプトや別のプログラムからなどの入力パラメーターを使用してコントロール パネル項目が呼び出された場合は、CPL_STARTWPARMS メッセージを送信できます。 メッセージには、追加のパラメーター文字列と共に項目識別子が含まれます。

制御アプリケーションが終了する前に、CPlApplet は、.dll ファイルでサポートされているコントロール パネル項目ごとに、CPL_STOP メッセージを 1 回受信します。 メッセージには、コントロール パネル項目の識別子と、CPL_INQUIREまたはCPL_NEWINQUIREの呼び出しで CPLINFO または NEWCPLINFO 構造体で返される lpData ポインターが含まれます。 関数は、指定されたダイアログ ボックスに割り当てられたメモリを解放する必要があります。

最後のCPL_STOP メッセージの後に、 CPlApplet はCPL_EXITメッセージを受信します。 この関数は、割り当てられた残りのすべてのメモリを解放し、登録されている可能性があるプライベート ウィンドウ クラスの登録を解除する必要があります。 関数がこのメッセージから戻った直後に、Windows は FreeLibrary 関数を呼び出してコントロール パネル項目を解放します。

コントロール パネル 項目

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

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

CPLApplet の使用

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

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

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

コントロール パネルアイテムの検索可能なタスク リンクの作成

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