Udostępnij przez


Rejestracja usługi tekstowej

Oprócz standardowych wpisów rejestru serwera COM w proc, usługa tekstowa musi zarejestrować się w strukturze usług tekstowych (TSF), aby można było go używać z aplikacją. TSF dostarcza interfejs ITfInputProcessorProfiles i ITfCategoryMgr, aby uprościć proces rejestracji.

Dostawcy usług tekstowych powinni również udostępniać podpisy cyfrowe swoim binarnym plikom wykonywalnymi. Zobacz Wprowadzenie do podpisywania kodu.

Rejestrowanie usługi tekstowej

Usługa tekstowa rejestruje się w TSF, wywołując ITfInputProcessorProfiles::Register za pomocą identyfikatora klasy usługi tekstowej. Wystąpienie interfejsu ITfInputProcessorProfiles jest uzyskiwane przez wywołanie CoCreateInstance za pomocą CLSID_TF_InputProcessorProfiles.

W poniższym przykładzie pokazano, jak utworzyć obiekt ITfInputProcessorProfiles i zarejestrować usługę tekstową.

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::Wyrejestrowywanie

Rejestrowanie profilów językowych

Usługa tekstowa jest dostępna tylko wtedy, gdy aplikacja ma fokus, a odpowiedni język jest wybierany na pasku języka. Aby to ułatwić, TSF wymaga zarejestrowania się przez usługę tekstową dla wszystkich obsługiwanych języków. Usługa tekstowa rejestruje swoje profile językowe, wywołując ITfInputProcessorProfiles::AddLanguageProfile z identyfikatorem klasy usługi tekstowej, tym identyfikatorem języka profilu i usługą tekstową zdefiniowaną identyfikator GUID identyfikujący profil języka.

Profil języka można usunąć, wywołując ITfInputProcessorProfiles::RemoveLanguageProfile. ITfInputProcessorProfiles::Wyrejestrowywanie usuwa wszystkie profile językowe usługi tekstowej; gdy usługa tekstowa zostanie odinstalowana, wymaga usunięcia poszczególnych profilów językowych.

Rejestrowanie kategorii

Usługa tekstowa musi również zarejestrować kategorię, do których ma zastosowanie usługa tekstowa. Jeśli na przykład usługa tekstowa dostarcza informacje o atrybutach wyświetlania, musi zarejestrować się jako dostawca atrybutów wyświetlania, wywołując ITfCategoryMgr::RegisterCategory z identyfikatorem klasy usługi tekstowej dla pierwszego parametru, GUID_TFCAT_DISPLAYATTRIBUTEPROVIDER dla drugiego parametru i identyfikator klasy usługi tekstowej ponownie dla trzeciego parametru. Możliwe kategorie są wymienione w obszarze wstępnie zdefiniowane wartości kategorii.

Usuń wcześniej zarejestrowane kategorie, wywołując ITfCategoryMgr::UnregisterCategory. ITfInputProcessorProfiles::Unregister usuwa wszystkie kategorie dla usługi tekstowej; gdy usługa tekstowa zostanie odinstalowana, musi usunąć poszczególne kategorie.