Delen via


Composities

Een samenstelling is een tijdelijke invoerstatus waarmee een tekstservice zowel voor de toepassing als de gebruiker kan opgeven dat de invoertekst nog steeds de status van wijziging heeft. Een toepassing kan en moet informatie over het weergavekenmerk over de samenstelling verkrijgen en deze informatie gebruiken om de samenstellingsstatus aan de gebruiker weer te geven.

Een voorbeeld van het gebruik van een samenstelling is tijdens spraakinvoer. Terwijl de gebruiker spreekt, maakt de spraaktekstservice een samenstelling. Deze samenstelling blijft intact totdat de volledige spraakinvoer is voltooid. Wanneer de sessie afloopt, beëindigt de spraaktekstservice de samenstelling.

Een toepassing maakt gebruik van de aanwezigheid en afwezigheid van een samenstelling om te bepalen hoe tekst moet worden weergegeven en wat, indien aanwezig, de verwerking op de tekst moet worden uitgevoerd. Als de gebruiker bijvoorbeeld de spraakengine gebruikt om tekst in te voeren, mag de toepassing geen spelling- of grammaticacontrole uitvoeren op samenstellingsteksten. De tekst wordt als onvolledig beschouwd totdat de samenstelling wordt beëindigd.

Text Services

Een tekstservice maakt een samenstelling door ITfContextComposition::StartCompositionaan te roepen. De tekstservice kan eventueel een ITfCompositionSink implementeren object dat meldingen over samenstellingsevenementen ontvangt. StartComposition retourneert een ITfComposition-object waarnaar de tekstservice verwijst en gebruikt om de samenstelling te wijzigen en te beëindigen. De tekstservice beëindigt de samenstelling door ITfComposition::EndCompositionaan te roepen.

Als een tekstservice samenstellingen gaat maken, moet deze ook weergavekenmerken ondersteunen om een toepassing in staat te stellen tekst weer te geven die deel uitmaakt van een andere samenstelling dan standaardtekst. Zie Weergavekenmerken opgevenvoor meer informatie.

Toepassingen

Een toepassing kan het maken, wijzigen en beëindigen van composities bewaken door een ITfContextOwnerCompositionSink sink te installeren. Wanneer een compositie wordt gestart, wordt ITfContextOwnerCompositionSink::OnStartComposition aangeroepen. Wanneer een samenstelling wordt gewijzigd of beëindigd, wordt ITfContextOwnerCompositionSink::OnUpdateComposition en ITfContextOwnerCompositionSink::OnEndComposition respectievelijk aangeroepen.

Hier volgt een typische procedure voor het bijwerken van een document met behulp van een compositie.

  1. ITextStoreACP::InsertTextAtSelection of ITextStoreAnchor::InsertTextAtSelection worden doorgaans gebruikt om de eerste tekst in de samenstelling in te voegen.
  2. De samenstelling wordt gestart met een aanroep naar ITfContextComposition::StartComposition, met behulp van het tekstbereik dat wordt geretourneerd door InsertTextAtSelection.
  3. Wanneer de toepassing nieuwe invoer ontvangt, zoals spraak of toetsenbordinvoer, wordt de samenstelling bijgewerkt met ITextStoreACP::SetText of ITextStoreAnchor::SetText.
  4. Wanneer de toepassing bepaalt dat het tijd is om de samenstelling te beëindigen, wordt ITfComposition::EndCompositionaanroepen.

De toepassing moet de weergavekenmerken van de tekstservice gebruiken om de weergave van tekst te allen tijde te wijzigen en niet alleen wanneer een samenstelling actief is. Zie Weergavekenmerken gebruikenvoor meer informatie.

Indien nodig kan een toepassing een samenstelling beëindigen door ITfContextOwnerCompositionServices::TerminateCompositionaan te roepen.