Freigeben über


Textdienstregistrierung

Zusätzlich zu den standardmäßigen COM-In-Proc-Serverregistrierungseinträgen muss sich ein Textdienst beim Text Services Framework (TSF) registrieren, damit er für die Verwendung mit einer Anwendung verfügbar sein kann. TSF stellt die ITfInputProcessorProfiles und ITfCategoryMgr Schnittstelle bereit, um den Registrierungsprozess zu vereinfachen.

Textdienstanbieter sollten auch digitale Signaturen mit ihren binären ausführbaren Dateien bereitstellen. Siehe Einführung in die Codesignatur.

Registrieren des Textdiensts

Ein Textdienst registriert sich bei TSF, indem ITfInputProcessorProfiles::Register mit dem Klassenbezeichner des Textdiensts aufgerufen wird. Eine Instanz der ITfInputProcessorProfiles Schnittstelle wird durch Aufrufen CoCreateInstance- mit CLSID_TF_InputProcessorProfiles abgerufen.

Im folgenden Beispiel wird veranschaulicht, wie Ein ITfInputProcessorProfiles Objekt erstellt und der Textdienst registriert wird.

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

Registrieren von Sprachprofilen

Ein Textdienst ist nur verfügbar, wenn eine Anwendung den Fokus hat und die richtige Sprache in der Sprachenleiste ausgewählt wird. Um dies zu erleichtern, setzt TSF voraus, dass sich ein Textdienst für alle von ihr unterstützten Sprachen registriert. Der Textdienst registriert seine Sprachprofile, indem ITfInputProcessorProfiles::AddLanguageProfile mit dem Textdienstklassenbezeichner, dieser Sprachbezeichner des Profils und ein textdienst definierter GUID-, der das Sprachprofil identifiziert.

Ein Sprachprofil kann durch Aufrufen von ITfInputProcessorProfiles::RemoveLanguageProfileentfernt werden. ITfInputProcessorProfiles::Unregister entfernt alle Sprachprofile für den Textdienst; Wenn ein Textdienst deinstalliert wird, ist es erforderlich, die einzelnen Sprachprofile zu entfernen.

Registrieren von Kategorien

Ein Textdienst muss auch die Kategorie registrieren, für die der Textdienst gilt. Wenn der Textdienst beispielsweise Anzeigeattributinformationen bereitstellt, muss er sich selbst als Anzeigeattributanbieter registrieren, indem er ITfCategoryMgr::RegisterCategory mit dem Klassenbezeichner des Textdiensts für den ersten Parameter GUID_TFCAT_DISPLAYATTRIBUTEPROVIDER für den zweiten Parameter und den Klassenbezeichner des Textdiensts erneut für den dritten Parameter aufruft. Die möglichen Kategorien werden unter Vordefinierte Kategoriewerteaufgeführt.

Entfernen Sie zuvor registrierte Kategorien, indem Sie ITfCategoryMgr::UnregisterCategoryaufrufen. ITfInputProcessorProfiles::Unregister entfernt alle Kategorien für den Textdienst; wenn ein Textdienst deinstalliert wird, muss er die einzelnen Kategorien entfernen.