共用方式為


文字服務註冊

除了標準 COM 內部伺服器登錄專案之外,文字服務還必須向文字服務架構 (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 會移除文字服務的所有類別;卸載文字服務時,它必須移除個別類別。