Registrazione al servizio di testo
Oltre alle voci standard del Registro di sistema del server COM in-proc, un servizio di testo deve registrarsi con text Services Framework (TSF) in modo che possa essere disponibile per l'uso con un'applicazione. TSF fornisce l'interfaccia ITfInputProcessorProfiles e ITfCategoryMgr per semplificare il processo di registrazione.
I provider di servizi di testo devono anche fornire firme digitali con i file eseguibili binari. Vedere Introduzione alla firma del codice.
Registrazione del servizio di testo
Un servizio di testo si registra con TSF chiamando ITfInputProcessorProfiles::Register con l'identificatore di classe del servizio di testo. Un'istanza dell'interfaccia ITfInputProcessorProfiles viene ottenuta chiamando CoCreateInstance con CLSID_TF_InputProcessorProfiles.
Nell'esempio seguente viene illustrato come creare un oggetto ITfInputProcessorProfiles e registrare il servizio di testo.
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
Registrazione dei profili linguistici
Un servizio di testo è disponibile solo quando un'applicazione ha lo stato attivo e la lingua appropriata è selezionata nella barra della lingua. Per facilitare questa operazione, TSF richiede che un servizio di testo si registri per tutte le lingue supportate. Il servizio di testo registra i profili linguistici chiamando ITfInputProcessorProfiles::AddLanguageProfile con l'identificatore della classe del servizio di testo, l'identificatore della lingua del profilo e un GUID definito dal servizio di testo che identifica il profilo linguistico.
È possibile rimuovere un profilo di linguaggio chiamando ITfInputProcessorProfiles::RemoveLanguageProfile. ITfInputProcessorProfiles::Unregister rimuove tutti i profili linguistici per il servizio di testo; quando un servizio di testo viene disinstallato, richiede la rimozione dei singoli profili linguistici.
Registrazione delle categorie
Un servizio di testo deve inoltre registrare la categoria a cui si applica il servizio di testo. Ad esempio, se il servizio di testo fornisce informazioni sull'attributo di visualizzazione, deve registrarsi come provider di attributi visualizzati chiamando ITfCategoryMgr::RegisterCategory con l'identificatore di classe del servizio di testo per il primo parametro, GUID_TFCAT_DISPLAYATTRIBUTEPROVIDER per il secondo parametro e di nuovo l'identificatore di classe del servizio di testo per il terzo parametro. Le categorie possibili sono elencate in Valori di categoria predefiniti.
Rimuovere le categorie registrate in precedenza chiamando ITfCategoryMgr::UnregisterCategory. ITfInputProcessorProfiles::Unregister rimuove tutte le categorie per il servizio di testo; quando un servizio di testo viene disinstallato, deve rimuovere le singole categorie.