Registrace textové služby
Kromě standardních položek registru serveru modelu COM v rámci proc se textová služba musí zaregistrovat v rozhraní TSF (Text Services Framework), aby ji bylo možné použít s aplikací. TSF poskytuje ITfInputProcessorProfiles a ITfCategoryMgr rozhraní pro zjednodušení procesu registrace.
Poskytovatelé textových služeb by také měli poskytovat digitální podpisy svým binárním spustitelným souborům. Viz Úvod do podepisování kódu.
Registrace textové služby
Textová služba se zaregistruje v TSF voláním ITfInputProcessorProfiles::Register s identifikátorem třídy textové služby. Instance rozhraní ITfInputProcessorProfiles je získána voláním CoCreateInstance s CLSID_TF_InputProcessorProfiles.
Následující příklad ukazuje, jak vytvořit ITfInputProcessorProfiles objektu a zaregistrovat textovou službu.
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
Registrace jazykových profilů
Textová služba je dostupná jenom v případech, kdy má aplikace fokus a na panelu jazyků je vybraný správný jazyk. Aby to bylo možné usnadnit, TSF vyžaduje, aby se textová služba zaregistrovala pro všechny jazyky, které podporuje. Textová služba zaregistruje své jazykové profily voláním ITfInputProcessorProfiles::AddLanguageProfile s identifikátorem třídy textové služby, identifikátorem daného jazyka profilu a textovou službou definovanou IDENTIFIKÁTOR GUID, která identifikuje profil jazyka.
Profil jazyka lze odebrat voláním ITfInputProcessorProfiles::RemoveLanguageProfile. ITfInputProcessorProfiles::Unregister odebere všechny jazykové profily pro textovou službu; pokud je odinstalovaná textová služba, vyžaduje odebrání jednotlivých profilů jazyka.
Registrace kategorií
Textová služba musí také zaregistrovat kategorii, na kterou se textová služba vztahuje. Pokud například textová služba poskytuje informace o atributech zobrazení, musí se zaregistrovat jako zprostředkovatel atributu zobrazení voláním ITfCategoryMgr::RegisterCategory s identifikátorem třídy textové služby pro první parametr, GUID_TFCAT_DISPLAYATTRIBUTEPROVIDER pro druhý parametr a identifikátor třídy textové služby znovu pro třetí parametr. Možné kategorie jsou uvedeny v části předdefinované hodnoty kategorií.
Odeberte dříve registrované kategorie voláním ITfCategoryMgr::UnregisterCategory. ITfInputProcessorProfiles::Unregister odebere všechny kategorie pro textovou službu; když je odinstalovaná textová služba, musí odebrat jednotlivé kategorie.