Partager via


Objets incorporés (Text Services Framework)

Text Services Framework permet à un service de texte d’incorporer des objets dans un flux de texte d’application. Les objets incorporés sont insérés dans le flux de texte à l’aide de la valeur TS_CHAR_EMBEDDED. Cette valeur est résolue en caractère de remplacement d’objet Unicode U+fffc, à l’aide de la notation hexadécimale. Par exemple, l’illustration suivante montre le rendu d’un objet incorporé qui représente l’idéogramme japonais hi, en combinaison avec la séquence de caractères Unicode qui représentent la traduction anglaise de « Sun ».

encodage de caractères d’un objet incorporé

La ligne supérieure de la figure contient le texte traduit, composé du mot « Soleil » suivi du caractère japonais pour le soleil, hi. La ligne centrale de la figure montre le caractère Unicode. Dans le cas de U+fffc, il s’agit du caractère de remplacement d’objet. La ligne inférieure de la figure affiche la valeur hexadécimale de chaque caractère.

Prise en charge des objets incorporés dans une application

Le gestionnaire TSF insère un objet incorporé dans le flux de texte en appelant ITextStoreACP ::InsertEmbedded pour une application ACP, ou ITextStoreAnchor ::InsertEmbedded pour une application basée sur l’ancrage. Lorsqu’un objet incorporé est inséré, l’application doit placer la valeur TS_CHAR_EMBEDDED à la position de caractère (ou emplacement d’ancrage) où l’objet est incorporé et stocker l’objet IDataObject associé à l’objet incorporé. Lorsque ITextStoreACP ::GetText ou ITextStoreAnchor ::GetText est appelé et qu’un objet incorporé est contenu dans le texte obtenu, la valeur TS_CHAR_EMBEDDED indique la présence et l’emplacement de l’objet incorporé. Pour obtenir l’objet incorporé, appelez ITextStoreACP ::GetEmbedded avec la position de caractère de l’objet incorporé, ou ITextStoreAnchor ::GetEmbedded avec l’emplacement d’ancrage de l’objet incorporé.

L’application ne reconnaît pas normalement le contenu de l’objet incorporé. L’application peut tenter d’obtenir des informations d’affichage de l’objet lui-même. Si l’objet incorporé peut fournir des données dans un format que l’application reconnaît, par exemple CF_UNICODETEXT ou CF_BITMAP, l’application peut afficher des informations graphiques fournies par l’objet.

Insertion d’objets incorporés

Un service de texte insère un objet incorporé dans un contexte en appelant ITfRange ::InsertEmbedded ou ITfInsertAtSelection ::InsertEmbeddedAtSelection. Le service de texte doit fournir l’IDataObject incorporé.