Text Service-registratie
Naast de standaard COM in-proc serverregistervermeldingen moet een tekstservice zich registreren bij het Text Services Framework (TSF), zodat deze beschikbaar kan zijn voor gebruik met een toepassing. TSF levert de ITfInputProcessorProfiles en ITfCategoryMgr interface om het registratieproces te vereenvoudigen.
Tekstserviceproviders moeten ook digitale handtekeningen leveren met hun binaire uitvoerbare bestanden. Zie Inleiding tot ondertekening van programmacode.
De tekstservice registreren
Een tekstservice registreert zich bij TSF door ITfInputProcessorProfiles aan te roepen::Registreer met de klasse-id van de tekstservice. Een exemplaar van de ITfInputProcessorProfiles interface wordt verkregen door CoCreateInstance- aan te roepen met CLSID_TF_InputProcessorProfiles.
In het volgende voorbeeld ziet u hoe u een ITfInputProcessorProfiles object maakt en de tekstservice registreert.
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
Taalprofielen registreren
Een tekstservice is alleen beschikbaar wanneer een toepassing de focus heeft en de juiste taal is geselecteerd op de taalbalk. Om dit te vergemakkelijken, vereist TSF dat een tekstservice zich registreert voor alle talen die door TSF worden ondersteund. De tekstservice registreert de taalprofielen door ITfInputProcessorProfiles aan te roepen::AddLanguageProfile met de id van de tekstserviceklasse, die taal-id van het profiel en een tekstservice die is gedefinieerd GUID- waarmee het taalprofiel wordt geïdentificeerd.
Een taalprofiel kan worden verwijderd door ITfInputProcessorProfiles::RemoveLanguageProfileaan te roepen. ITfInputProcessorProfiles::Unregister verwijdert alle taalprofielen voor de tekstservice; wanneer een tekstservice wordt verwijderd, moet de afzonderlijke taalprofielen worden verwijderd.
Categorieën registreren
Een tekstservice moet ook de categorie registreren waarop de tekstservice van toepassing is. Als de tekstservice bijvoorbeeld kenmerkgegevens weergeeft, moet deze zich registreren als provider van het weergavekenmerk door ITfCategoryMgr::RegisterCategory- aan te roepen met de klasse-id van de tekstservice voor de eerste parameter, GUID_TFCAT_DISPLAYATTRIBUTEPROVIDER voor de tweede parameter en de klasse-id van de tekstservice opnieuw voor de derde parameter. De mogelijke categorieën worden vermeld onder vooraf gedefinieerde categoriewaarden.
Verwijder eerder geregistreerde categorieën door ITfCategoryMgr::UnregisterCategoryaan te roepen. ITfInputProcessorProfiles::Unregister verwijdert alle categorieën voor de tekstservice; wanneer een tekstservice wordt verwijderd, moet deze de afzonderlijke categorieën verwijderen.