Registro del servicio de texto
Además de las entradas estándar del registro del servidor en proceso COM, un servicio de texto debe registrarse con Text Services Framework (TSF) para que pueda estar disponible para su uso con una aplicación. TSF proporciona la interfaz ITfInputProcessorProfiles e 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 de texto
Un servicio de texto se registra con TSF llamando a ITfInputProcessorProfiles::Register con el identificador de clase del servicio de texto. Una instancia de la interfaz ITfInputProcessorProfiles se obtiene mediante una llamada 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
Registrar 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 sí mismo para 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 GUID definido por el servicio de texto 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 aparecen en Valores de categoría predefinidos.
Quite las categorías registradas anteriormente mediante una llamada 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.