Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Платформа text Services Framework позволяет текстовой службе внедрять объекты в текстовый поток приложения. Внедренные объекты вставляются в текстовый поток с помощью значения TS_CHAR_EMBEDDED. Это значение разрешается в символ замены объекта Юникода U+fffc с помощью шестнадцатеричной нотации. Например, на следующем рисунке показана отрисовка внедренного объекта, представляющего японский иеограф hi, в сочетании с последовательностью символов Юникода, представляющих английский перевод "Sun".
Верхняя строка рисунка содержит переведенный текст, состоящий из слова "Sun", за которым следует японский символ для солнца, привет. В центральной строке рисунка показан символ Юникода. В случае U+fffc это символ замены объекта. В нижней строке рисунка отображается шестнадцатеричное значение каждого символа.
Поддержка внедренных объектов в приложении
Диспетчер TSF вставляет внедренный объект в текстовый поток путем вызова ITextStoreACP::InsertEmbeddededed для приложения на основе ACP или ITextStoreAnchor::InsertEmbedded для приложения на основе привязки. При вставке внедренного объекта приложение должно поместить значение TS_CHAR_EMBEDDED в положение символа (или расположение привязки), где объект внедрен и хранит IDataObject, связанный с внедренным объектом. Если вызывается ITextStoreACP::GetText или ITextStoreAnchor::GetText, а внедренный объект содержится в полученном тексте, TS_CHAR_EMBEDDED значение указывает на наличие и расположение внедренного объекта. Чтобы получить внедренный объект, вызовите ITextStoreACP::GetEmbedded с положением символа внедренного объекта или ITextStoreAnchor::GetEmbeddededed с расположением привязки внедренного объекта.
Приложение обычно не распознает внедренное содержимое объекта. Приложение может попытаться получить сведения о отображении от самого объекта. Если внедренный объект может предоставлять данные в формате, распознаваемом приложением, например CF_UNICODETEXT или CF_BITMAP, приложение может отображать графические сведения, предоставленные объектом.
Вставка внедренных объектов
Текстовая служба вставляет внедренный объект в контекст путем вызова ITfRange::InsertEmbedded или ITfInsertAtSelection::InsertEmbeddedAtSelection. Текстовая служба должна предоставить внедренный IDataObject.