Dela via


Inbäddade objekt (Text Services Framework)

Text Services Framework gör det möjligt för en texttjänst att bädda in objekt i en programtextström. Inbäddade objekt infogas i textströmmen med hjälp av värdet TS_CHAR_EMBEDDED. Det här värdet matchar unicode-objektets ersättningstecken U+fffc med hexadecimal notation. Följande bild visar till exempel återgivningen av ett inbäddat objekt som representerar den japanska ideografin hej, i kombination med sekvensen med Unicode-tecken som representerar den engelska översättningen av "Sun".

teckenkodning av ett inbäddat objekt

Den översta raden i figuren innehåller den översatta texten, som består av ordet "Sun" följt av det japanska tecknet för sol, hej. Bildens mittrad visar Unicode-tecknet. När det gäller U+fffc är detta objektets ersättningstecken. Den nedre raden i figuren visar hexadecimalt värde för varje tecken.

Stöd för inbäddade objekt i ett program

TSF-hanteraren infogar ett inbäddat objekt i textströmmen genom att anropa ITextStoreACP::InsertEmbedded för ett AVS-baserat program eller ITextStoreAnchor::InsertEmbedded för ett ankarbaserat program. När ett inbäddat objekt infogas ska programmet placera värdet TS_CHAR_EMBEDDED på teckenpositionen (eller fästpunkten) där objektet är inbäddat och lagra den IDataObject som är associerad med det inbäddade objektet. När ITextStoreACP::GetText eller ITextStoreAnchor::GetText anropas och ett inbäddat objekt finns i texten som hämtas, anger värdet TS_CHAR_EMBEDDED närvaro och plats för det inbäddade objektet. Hämta det inbäddade objektet genom att anropa ITextStoreACP::GetEmbedded med det inbäddade objektets teckenposition eller ITextStoreAnchor::GetEmbedded med det inbäddade objektets fästpunkt.

Programmet känner normalt inte igen innehållet i det inbäddade objektet. Programmet kan försöka hämta visningsinformation från själva objektet. Om det inbäddade objektet kan ange data i ett format som programmet känner igen, till exempel CF_UNICODETEXT eller CF_BITMAP, kan programmet visa grafisk information som tillhandahålls av objektet.

Infoga inbäddade objekt

En texttjänst infogar ett inbäddat objekt i en kontext genom att anropa ITfRange::InsertEmbedded eller ITfInsertAtSelection::InsertEmbeddedAtSelection. Texttjänsten måste ange den inbäddade IDataObject.