閱讀英文

共用方式為


輸入內容

「輸入內容」是由 IMM 維護的內部結構。 它包含 IME 狀態的相關資訊,並由 IME 視窗使用。 根據預設,作業系統會建立並指派輸入內容給每個執行緒。 線上程中,此預設輸入內容是共用資源,並與每個新建立的視窗相關聯。

若要擷取或設定 IME 中的資訊,IME 感知應用程式必須先擷取與指定視窗相關聯的輸入內容控制碼。 應用程式會使用 ImmGetCoNtext 函式來擷取控制碼。 它可以在 IMM 函式的後續呼叫中使用擷取的控制碼來擷取和設定 IME 值,例如組合視窗樣式、組合樣式和狀態視窗位置。 應用程式使用內容完成後,它必須使用 ImmReleaseCoNtext 函式釋放內容。

因為預設輸入內容是共用資源,所以應用程式所做的任何變更都會套用至執行緒中的所有視窗。 不過,應用程式可以藉由建立自己的輸入內容,並將它與執行緒的一或多個視窗建立關聯,來覆寫此預設行為。 對應用程式特定輸入內容所做的變更僅適用于與內容相關聯的視窗。

您的應用程式可以使用 ImmCreateCoNtext 函式來建立輸入內容。 若要將內容指派給視窗,應用程式會呼叫 ImmAssociateCoNtext 函式。 此函式會傳回先前相關聯輸入內容的控制碼。 如果應用程式尚未與視窗建立輸入內容關聯,則傳回的控制碼適用于預設輸入內容。 一般而言,當不再需要自訂的輸入內容時,應用程式會儲存此控制碼,稍後再將其與視窗產生關聯。

一旦輸入內容與視窗相關聯,作業系統就會在啟用視窗並接收輸入焦點時自動選取該內容。 輸入內容中的樣式和其他資訊會影響該視窗的後續鍵盤輸入,以判斷 IME 的運作方式。

您的應用程式必須在終止之前終結任何自訂的輸入內容。 首先,應用程式會使用 ImmAssociateCoNtext 函式,從與執行緒中視窗建立的任何關聯中移除輸入內容。 然後,它會呼叫 ImmDestroyCoNtext 函式。

關於輸入法管理員