Inscription du service de texte

En plus des entrées de Registre du serveur in-proc COM standard, un service de texte doit s’inscrire auprès de Text Services Framework (TSF) pour pouvoir être utilisé avec une application. TSF fournit l’interface ITfInputProcessorProfiles et ITfCategoryMgr pour simplifier le processus d’inscription.

Les fournisseurs de services de texte doivent également fournir des signatures numériques avec leurs exécutables binaires. Consultez Présentation de la signature de code.

Inscription du service de texte

Un service de texte s’inscrit auprès de TSF en appelant ITfInputProcessorProfiles :: Register avec l’identificateur de classe du service de texte. Une instance de l’interface ITfInputProcessorProfiles est obtenue en appelant COCREATEINSTANCE avec le CLSID _ tf _ InputProcessorProfiles.

L’exemple suivant montre comment créer un objet ITfInputProcessorProfiles et inscrire le service de texte.

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

Inscription des profils de langue

Un service de texte est disponible uniquement lorsqu’une application a le focus et que la langue appropriée est sélectionnée dans la barre de langue. Pour faciliter cette opération, TSF requiert qu’un service de texte s’inscrit lui-même pour tous les langages qu’il prend en charge. Le service de texte inscrit ses profils de langage en appelant ITfInputProcessorProfiles :: AddLanguageProfile avec l’identificateur de classe de service de texte, cet identificateur de langue du profil et un GUID défini par le service de texte qui identifie le profil de langue.

Vous pouvez supprimer un profil de langue en appelant ITfInputProcessorProfiles :: RemoveLanguageProfile. ITfInputProcessorProfiles :: Unregister supprime tous les profils de langue pour le service de texte ; Lorsqu’un service de texte est désinstallé, il est nécessaire de supprimer les profils de langue individuels.

Inscription des catégories

Un service de texte doit également inscrire la catégorie à laquelle s’applique le service de texte. Par exemple, si le service de texte fournit des informations sur les attributs d’affichage, il doit s’inscrire en tant que fournisseur d’attributs d’affichage en appelant ITfCategoryMgr :: RegisterCategory avec l’identificateur de classe du service de texte pour le premier paramètre, Guid _ TFCAT _ DISPLAYATTRIBUTEPROVIDER pour le deuxième paramètre et l’identificateur de classe du service de texte pour le troisième paramètre. Les catégories possibles sont répertoriées sous valeurs des catégories prédéfinies.

Supprimez les catégories précédemment inscrites en appelant ITfCategoryMgr :: UnregisterCategory. ITfInputProcessorProfiles :: unregister Supprime toutes les catégories pour le service de texte ; Lorsqu’un service de texte est désinstallé, il doit supprimer les différentes catégories.