Delen via


Ingesloten objecten (Text Services Framework)

Met Text Services Framework kan een tekstservice objecten insluiten in een tekststroom van een toepassing. Ingesloten objecten worden in de tekststroom ingevoegd met behulp van de waarde TS_CHAR_EMBEDDED. Deze waarde wordt omgezet in het Unicode-objectvervangingsteken U+fffc, met behulp van hexadecimale notatie. In de volgende afbeelding ziet u bijvoorbeeld de weergave van een ingesloten object dat de Japanse ideograph hivertegenwoordigt, in combinatie met de reeks Unicode-tekens die de Engelse vertaling van 'Sun' vertegenwoordigen.

tekencodering van een ingesloten object

De bovenste rij van de afbeelding bevat de vertaalde tekst, bestaande uit het woord 'Zon' gevolgd door het Japanse teken voor zon, hi. In de middelste rij van de afbeelding wordt het Unicode-teken weergegeven. In het geval van U+fffc is dit het vervangingsteken van het object. In de onderste rij van de afbeelding wordt de hexadecimale waarde van elk teken weergegeven.

Ondersteunende ingesloten objecten in een toepassing

De TSF-manager voegt een ingesloten object in de tekststroom in door ITextStoreACP::InsertEmbedded in te voegen voor een ACP-toepassing of ITextStoreAnchor::InsertEmbedded voor een ankertoepassing. Wanneer een ingesloten object wordt ingevoegd, moet de toepassing de TS_CHAR_EMBEDDED waarde op de tekenpositie (of ankerlocatie) plaatsen waar het object is ingesloten en het IDataObject opslaan dat is gekoppeld aan het ingesloten object. Wanneer ITextStoreACP::GetText of ITextStoreAnchor::GetText wordt aangeroepen en een ingesloten object is opgenomen in de verkregen tekst, geeft de TS_CHAR_EMBEDDED waarde de aanwezigheid en locatie van het ingesloten object aan. Als u het ingesloten object wilt verkrijgen, roept u ITextStoreACP::GetEmbedded aan met de tekenpositie van het ingesloten object of ITextStoreAnchor::GetEmbedded met de ankerlocatie van het ingesloten object.

De toepassing herkent normaal gesproken de inhoud van het ingesloten object niet. De toepassing kan proberen weergavegegevens op te halen uit het object zelf. Als het ingesloten object gegevens kan leveren in een indeling die door de toepassing wordt herkend, zoals CF_UNICODETEXT of CF_BITMAP, kan de toepassing grafische informatie weergeven die door het object is opgegeven.

Ingesloten objecten invoegen

Een tekstservice voegt een ingesloten object in een context in door ITfRange::InsertEmbedded of ITfInsertAtSelection::InsertEmbeddedAtSelectionaan te roepen. De tekstservice moet het ingesloten IDataObject leveren.