共用方式為


文字服務註冊

除了標準 COM 同進程伺服器登錄專案之外,文字服務也必須向 Text Services Framework (TSF) 註冊本身,以便可與應用程式搭配使用。 TSF 提供 ITfInputProcessorProfilesITfCategoryMgr 介面,以簡化註冊程式。

文字服務提供者也應該提供數位簽章及其二進位可執行檔。 請參閱 程式碼簽署簡介

註冊文字服務

文字服務會藉由呼叫 ITfInputProcessorProfiles::Register 與文字服務的類別識別碼,向 TSF 註冊本身。 使用 CLSID_TF_InputProcessorProfiles 呼叫CoCreateInstance來取得ITfInputProcessorProfiles介面的實例。

下列範例示範如何建立 ITfInputProcessorProfiles 物件並註冊文字服務。

BOOL RegisterTextService(CLSID clsidTextService)
{
    HRESULT hr;
    ITfInputProcessorProfiles *pInputProcessProfiles;

    hr = CoCreateInstance(  CLSID_TF_InputProcessorProfiles, 
                            NULL, 
                            CLSCTX_INPROC_SERVER,
                            IID_ITfInputProcessorProfiles, 
                            (LPVOID*)&pInputProcessProfiles);

    if (hr != S_OK)
    {
        return FALSE;
    }

    hr = pInputProcessProfiles->Register(clsidTextService);

    pInputProcessProfiles->Release();
    
    return (S_OK == hr);
}

ITfInputProcessorProfiles::Unregister

註冊語言設定檔

只有在應用程式具有焦點,並在語言列中選取適當的語言時,才能使用文字服務。 為了方便進行這項作業,TSF 會要求文字服務自行註冊它支援的所有語言。 文字服務會藉由呼叫 ITfInputProcessorProfiles::AddLanguageProfile 與文字服務類別識別碼、設定檔的語言識別項,以及識別語言設定檔的文字服務定義的 GUID 來註冊其語言設定檔。

呼叫 ITfInputProcessorProfiles::RemoveLanguageProfile即可移除語言設定檔。 ITfInputProcessorProfiles::Unregister 會移除文字服務的所有語言設定檔;卸載文字服務時,它確實需要移除個別的語言設定檔。

註冊類別

文字服務也必須註冊文字服務所套用的類別。 例如,如果文字服務提供顯示內容資訊,它必須呼叫 ITfCategoryMgr::RegisterCategory ,並將第一個參數的文字服務類別識別碼註冊為顯示內容提供者,第二個參數GUID_TFCAT_DISPLAYATTRIBUTEPROVIDER,第三個參數再次呼叫文字服務的類別識別碼。 可能的類別列在 [預先定義的 類別值] 底下。

呼叫 ITfCategoryMgr::UnregisterCategory 來移除先前註冊的類別。 ITfInputProcessorProfiles::Unregister 會移除文字服務的所有類別;卸載文字服務時,它必須移除個別類別。