Aracılığıyla paylaş


Katıştırılmış Nesneler (Metin Hizmetleri Çerçevesi)

Metin Hizmetleri Çerçevesi, metin hizmetinin uygulama metin akışına nesne eklemesini sağlar. Eklenmiş nesneler, TS_CHAR_EMBEDDEDdeğeri kullanılarak metin akışına eklenir. Bu değer, onaltılık gösterim kullanarak U+fffc Unicode nesne değiştirme karakterine çözümlenmiştir. Örneğin, aşağıdaki çizimde Japonca ideograf yüksektemsil eden ekli bir nesnenin, İngilizce "Sun" çevirisini temsil eden Unicode karakterleri dizisiyle birlikte işlenmesi gösterilmektedir.

Katıştırılmış nesnekarakter kodlaması

Şeklin üst satırı, "Güneş" sözcüğünden ve ardından Güneş için Japonca karakterden oluşan çevrilmiş metni içerir merhaba. Şeklin orta satırında Unicode karakteri gösterilir. U+fffc durumunda bu, nesne değiştirme karakteridir. Şekildeki alt satırda her karakterin onaltılık değeri gösterilir.

Uygulamada Katıştırılmış Nesneleri Destekleme

TSF yöneticisi, ACP tabanlı bir uygulama için ITextStoreACP::InsertEmbeddeded çağırarak veya tutturucu tabanlı bir uygulama için ITextStoreAnchor::InsertEmbedded ekli bir nesneyi metin akışına ekler. Eklenmiş bir nesne eklendiğinde, uygulama TS_CHAR_EMBEDDED değerini nesnenin eklendiği karakter konumuna (veya bağlantı konumuna) yerleştirmeli ve eklenmiş nesneyle ilişkili IDataObject'i depolamalıdır. ITextStoreACP::GetText veya ITextStoreAnchor::GetText çağrıldığında ve alınan metnin içinde eklenmiş bir nesne bulunduğunda, TS_CHAR_EMBEDDED değeri eklenmiş nesnenin varlığını ve konumunu gösterir. Katıştırılmış nesneyi almak için, eklenmiş nesnenin karakter konumuyla ITextStoreACP::GetEmbedded veya eklenmiş nesnenin sabit konumuyla ITextStoreAnchor::GetEmbedded çağırın.

Uygulama normalde katıştırılmış nesne içeriğini tanımaz. Uygulama, görüntüleme bilgilerini nesnenin kendisinden almayı dener. Katıştırılmış nesne CF_UNICODETEXT veya CF_BITMAP gibi uygulamanın tanıdığı bir biçimde veri sağlayabilirse, uygulama nesne tarafından sağlanan grafik bilgilerini görüntüleyebilir.

Katıştırılmış Nesneler Ekleme

Metin hizmeti, ITfRange::InsertEmbeddeded veya ITfInsertAtSelection::InsertEmbeddedAtSelectionçağırarak bir bağlama eklenmiş nesne ekler. Metin hizmetinin eklenmiş IDataObject'i sağlaması gerekir.