Condividi tramite


Oggetti incorporati (Framework servizi di testo)

Text Services Framework consente a un servizio di testo di incorporare oggetti in un flusso di testo dell'applicazione. Gli oggetti incorporati vengono inseriti nel flusso di testo usando il valore TS_CHAR_EMBEDDED. Questo valore viene risolto nel carattere di sostituzione dell'oggetto Unicode U+fffc usando la notazione esadecimale. Ad esempio, la figura seguente mostra il rendering di un oggetto incorporato che rappresenta l'ideografo giapponese hi, in combinazione con la sequenza di caratteri Unicode che rappresentano la traduzione inglese di "Sun".

codifica dei caratteri di un oggetto incorporato

La riga superiore della figura contiene il testo tradotto, costituito dalla parola "Sun" seguita dal carattere giapponese per sole, hi. La riga centrale della figura mostra il carattere Unicode. Nel caso di U+fffc, si tratta del carattere di sostituzione dell'oggetto. La riga inferiore della figura mostra il valore esadecimale di ogni carattere.

Supporto di oggetti incorporati in un'applicazione

Il gestore TSF inserisce un oggetto incorporato nel flusso di testo chiamando ITextStoreACP::InsertEmbeddeded per un'applicazione basata su ACP o ITextStoreAnchor::InsertEmbededed per un'applicazione basata su ancoraggio. Quando viene inserito un oggetto incorporato, l'applicazione deve inserire il valore TS_CHAR_EMBEDDED nella posizione del carattere (o nella posizione di ancoraggio) in cui l'oggetto è incorporato e archiviare IDataObject associato all'oggetto incorporato. Quando viene chiamato ITextStoreACP::GetText o ITextStoreAnchor::GetText e un oggetto incorporato è contenuto all'interno del testo ottenuto, il valore TS_CHAR_EMBEDDED indica la presenza e la posizione dell'oggetto incorporato. Per ottenere l'oggetto incorporato, chiamare ITextStoreACP::GetEmbedded con la posizione del carattere dell'oggetto incorporato o ITextStoreAnchor::GetEmbeddeded con la posizione di ancoraggio dell'oggetto incorporato.

L'applicazione non riconosce normalmente il contenuto dell'oggetto incorporato. L'applicazione può tentare di ottenere informazioni di visualizzazione dall'oggetto stesso. Se l'oggetto incorporato può fornire dati in un formato riconosciuto dall'applicazione, ad esempio CF_UNICODETEXT o CF_BITMAP, l'applicazione può visualizzare informazioni grafiche fornite dall'oggetto.

Inserimento di oggetti incorporati

Un servizio di testo inserisce un oggetto incorporato in un contesto chiamando ITfRange::InsertEmbedded o ITfInsertAtSelection::InsertEmbeddedAtSelection. Il servizio di testo deve fornire l'oggetto IDataObject incorporato.