使用 CPLApplet
在 Windows Vista 之前,您已建立 控制台 專案,方法是建立.dll檔案,並以.cpl擴展名命名。 此檔案導出了 CPlApplet 函 式。 Windows Vista 和更新版本仍支援此配置,並在此主題中討論。 不過,新 控制台 項目的指導方針建議使用 控制台 專案建置為使用工作流程配置的.exe檔案,以更簡單的方法。
當 控制台 載入.dll(或.cpl)檔案時,它會呼叫 CPlApplet 函式來取得資訊,例如檔案主控 控制台 項目的數目,以及每個專案的相關信息。 當項目的視窗初始化、開啟或關閉時,控制台 也會呼叫 函式。
當 Windows 第一次載入 控制台 專案時,它會擷取 CPlApplet 函式的地址,然後使用該位址來呼叫函式並傳遞訊息。 它可能會傳送下列訊息。
訊息 | 描述 |
---|---|
CPL_DBLCLK | 傳送通知 CPlApplet,使用者已選擇與指定 控制台 項目相關聯的圖示。 CPlApplet 應該會顯示指定項目的對話框,並執行任何使用者指定的工作。 CPlApplet lParam1 參數是整數,表示 控制台 專案的以零起始的索引。 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。 您的應用程式應該只會在 Windows 95、Microsoft Windows NT 4.0 和更新版本系統上處理CPL_INQUIRE,因為使用CPL_NEWINQUIRE時 控制台 效能受到影響。 這是因為無法快取傳回的字串和圖示。 會忽略傳回值。 |
CPL_SELECT | 已過時。 目前的 Windows 版本不會傳送此訊息。 |
CPL_STARTWPARMS | 傳送來通知 CPlApplet 使用者已選擇與指定對話框相關聯的圖示。 CPlApplet 應該會顯示對應的對話框,並執行任何使用者指定的工作。 此訊息類似於CPL_DBLCLK,但可能會有一些額外的資訊。 lParam1 參數是 控制台 項目編號,而 lParam2 是任何可能需要的額外指示 LPCTSTR。 如果處理此訊息,則傳回 TRUE,否則傳回 FALSE。 此訊息適用於 5.00 版和更新版本的 Shell32.dll。 |
CPL_STOP | 在 Windows 卸除 控制台 擴展名之前,針對.cpl檔案中的每個 控制台 項目傳送一次。 CPlApplet 應該釋放與 lParam1 中提供之專案編號相關聯的任何記憶體。 lParam2 參數是在CPL_INQUIRE或CPL_NEWINQUIRE訊息的 CPLINFO 或 NEWCPLINFO 結構中傳回的 lpData 指標。 會忽略傳回值。 |
相關主題