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 値は、情報が要求されているサブプログラムのゼロベースのインデックスを表す整数です。 CPlApplet の lParam2 パラメータは、 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 ポインタです。 戻り値は無視されます。 |
関連トピック