主控台訊息處理

CPlApplet回呼函式會處理 Windows 傳送至主控台專案的所有訊息。 傳送至函式的訊息會依特定順序排列。 透過相同的權杖,.cpl專案需要以特定方式處理訊息。

首先,當 Windows 第一次載入主控台專案時,CPlApplet函式會收到CPL_INIT訊息。 函式應該執行任何初始化,例如配置記憶體,並傳回非零。 如果 CPlApplet 無法完成初始化,它必須傳回零,指示 Windows 終止通訊並釋放 DLL。

接下來,如果CPL_INIT訊息成功,Windows 會傳送CPL_GETCOUNT訊息。 函式接著必須傳回.dll檔案所支援的主控台專案數目。

CPlApplet函式接著會針對.dll檔案所支援的每個主控台專案接收一個CPL_INQUIRE訊息和一則CPL_NEWINQUIRE訊息。 函式會填入 CPLINFONEWCPLINFO 結構,其中包含專案的相關資訊,例如其名稱、圖示和描述性字串。 大部分的應用程式都應該處理CPL_INQUIRE訊息,並忽略CPL_NEWINQUIRE訊息。 CPL_INQUIRE訊息會以 Windows 可快取的表單提供資訊,這會導致效能更好。 只有在您需要根據電腦的狀態變更專案的圖示或顯示字串時,才會使用CPL_NEWINQUIRE訊息。 主控台 Windows Vista 中的 [開始] 功能表搜尋找不到使用CPL_NEWINQUIRE的專案,因為它依賴快取。

CPlApplet函式接著會收到CPL_DBLCLK訊息,通知使用者已選擇代表主控台專案的圖示。 函式可能會收到此訊息任意次數。 訊息包含呼叫CPL_INQUIRECPL_NEWINQUIRE中 CPLINFONEWCPLINFO結構中所傳回的專案識別碼和lpData指標。 函式應該會顯示對應的對話方塊,並處理後續的使用者輸入。

除了CPL_DBLCLK之外,如果使用輸入參數叫用主控台專案,例如從命令提示字元或其他程式叫用CPL_STARTWPARMS訊息, 訊息包含專案識別碼以及其他參數字串。

控制應用程式終止之前,CPlApplet會針對.dll檔案所支援的每個主控台專案收到CPL_STOP訊息一次。 訊息包含主控台專案的識別碼,以及呼叫 CPL_INQUIRECPL_NEWINQUIRECPLINFONEWCPLINFO結構中所傳回的lpData指標。 函式應該釋放它為指定對話方塊配置的任何記憶體。

在最後一個CPL_STOP訊息之後, CPlApplet 會收到CPL_EXIT訊息。 函式應該釋放所有剩餘的已配置記憶體,並取消註冊可能已註冊的任何私用視窗類別。 在函式從這個訊息傳回之後,Windows 會呼叫FreeLibrary函式來釋放主控台專案。

主控台專案

使用者體驗指南

註冊主控台專案

使用 CPLApplet

執行主控台專案

擴充系統主控台專案

指派主控台類別

為主控台專案建立可搜尋的工作連結

在 Windows Vista 下以安全模式存取主控台