Compartir a través de


Registro del servicio text

Además de las entradas estándar del registro del servidor en proceso COM, un servicio de texto debe registrarse en Text Services Framework (TSF) para que pueda estar disponible para su uso con una aplicación. TSF proporciona la interfaz ITfInputProcessorProfiles y ITfCategoryMgr para simplificar el proceso de registro.

Los proveedores de servicios de texto también deben proporcionar firmas digitales con sus archivos ejecutables binarios. Consulte Introducción a la firma de código.

Registro del servicio text

Un servicio de texto se registra con TSF llamando a ITfInputProcessorProfiles::Register con el identificador de clase del servicio de texto. Se obtiene una instancia de la interfaz ITfInputProcessorProfiles llamando a CoCreateInstance con CLSID_TF_InputProcessorProfiles.

En el ejemplo siguiente se muestra cómo crear un objeto ITfInputProcessorProfiles y registrar el servicio de texto.

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

Registro de perfiles de idioma

Un servicio de texto solo está disponible cuando una aplicación tiene el foco y se selecciona el idioma adecuado en la barra de idioma. Para facilitar esto, TSF requiere que un servicio de texto se registre en todos los idiomas que admite. El servicio de texto registra sus perfiles de idioma llamando a ITfInputProcessorProfiles::AddLanguageProfile con el identificador de clase de servicio de texto, ese identificador de idioma del perfil y un servicio de texto definido GUID que identifica el perfil de idioma.

Se puede quitar un perfil de idioma llamando a ITfInputProcessorProfiles::RemoveLanguageProfile. ITfInputProcessorProfiles::Unregister quita todos los perfiles de idioma del servicio de texto; cuando se desinstala un servicio de texto, requiere la eliminación de los perfiles de idioma individuales.

Registrar categorías

Un servicio de texto también debe registrar la categoría a la que se aplica el servicio de texto. Por ejemplo, si el servicio de texto proporciona información de atributo para mostrar, debe registrarse como proveedor de atributos para mostrar llamando a ITfCategoryMgr::RegisterCategory con el identificador de clase del servicio de texto para el primer parámetro, GUID_TFCAT_DISPLAYATTRIBUTEPROVIDER para el segundo parámetro y el identificador de clase del servicio de texto de nuevo para el tercer parámetro. Las categorías posibles se enumeran en Valores de categoría predefinidos.

Quite las categorías registradas anteriormente llamando a ITfCategoryMgr::UnregisterCategory. ITfInputProcessorProfiles::Unregister quita todas las categorías del servicio de texto; cuando se desinstala un servicio de texto, debe quitar las categorías individuales.