Condividi tramite


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.