Поделиться через


Функция ScriptGetCMap (usp10.h)

Извлекает индексы глифов символов Юникода в строке в соответствии с таблицей cmap TrueType или стандартной таблицей cmap, реализованной для шрифтов старого стиля.

Синтаксис

HRESULT ScriptGetCMap(
  [in]      HDC          hdc,
  [in, out] SCRIPT_CACHE *psc,
  [in]      const WCHAR  *pwcInChars,
  [in]      int          cChars,
  [in]      DWORD        dwFlags,
  [out]     WORD         *pwOutGlyphs
);

Параметры

[in] hdc

Необязательный параметр. Дескриптор контекста устройства. Дополнительные сведения см. в разделе Кэширование.

[in, out] psc

Указатель на структуру SCRIPT_CACHE , определяющую кэш скриптов.

[in] pwcInChars

Указатель на строку символов Юникода.

[in] cChars

Число символов Юникода в строке, указанной pwcInChars.

[in] dwFlags

Флаги, указывающие любую специальную обработку глифов. По умолчанию глифы предоставляются в логическом порядке без специальной обработки. Этот параметр может иметь следующее значение.

Значение Значение
SGCM_RTL
Массив глифов, указанный pwOutGlyphs , должен содержать зеркальные глифы для тех глифов, которые имеют зеркальный эквивалент.

[out] pwOutGlyphs

Указатель на буфер, в котором функция извлекает массив индексов глифов. Этот буфер должен иметь ту же длину, что и входной буфер, указанный pwcInChars. Каждая кодовая точка сопоставляется с одним глифом.

Возвращаемое значение

Возвращает S_OK, если в шрифте присутствуют все кодовые точки Юникода. Функция возвращает одно из ненулевых значений HRESULT, перечисленных ниже, если не удалось.

Возвращаемое значение Значение
E_HANDLE Шрифт или операционная система не поддерживают индексы глифов.
S_FALSE Некоторые кодовые точки Юникода были сопоставлены с глифом по умолчанию.

Комментарии

Описание контекста, в котором обычно вызывается эта функция, см. в разделе Отображение текста с помощью uniscribe .

Эта функция может использоваться для определения символов в выполнении, поддерживаемых выбранным шрифтом. Приложение может сканировать полученный буфер глифов, искать глиф по умолчанию, чтобы определить недоступные символы. Приложение должно определить индекс глифа по умолчанию для выбранного шрифта, вызвав ScriptGetFontProperties.

Возвращаемое значение для этой функции указывает на наличие отсутствующих глифов.

Примечание Функция предполагает связь 1:1 между элементами входных и выходных массивов. Однако функция не поддерживает эту связь для суррогатных пар UTF-16. Для суррогатной пары функция не получает индекс глифа для символа дополнительной плоскости. Аналогичным образом функция не поддерживает последовательности юникода Variation-Selector (VS), каждая из которых состоит из графического символа Юникода, за которым следует один из наборов символов VARIATION SELECTOR для выбора определенного представления глифа для этого графического символа. Для последовательности VS функция получает индекс глифа по умолчанию, сопоставленного cmap для двух символов, а не индекс глифа для конкретного глифа для последовательности VS.
 
Некоторые кодовые точки могут быть отрисованы сочетанием глифов, а также одним глифом, например 00C9; ЛАТИНСКАЯ ПРОПИСНАЯ БУКВА E С ОСТРЫМ. В этом случае, если шрифт поддерживает глиф заглавной буквы E и острый глиф, но не один глиф для 00C9, ScriptGetCMap показывает, что 00C9 не поддерживается. Чтобы определить поддержку шрифта для строки, содержащей такие кодовые точки, приложение может вызвать ScriptShape. Если функция возвращает S_OK, приложение должно проверка выходные данные отсутствующих глифов.
Важно Начиная с Windows 8. Чтобы поддерживать возможность запуска в Windows 7, модуль, использующий Uniscribe, должен указать Usp10.lib перед gdi32.lib в списке библиотек.
 

Требования

Требование Значение
Минимальная версия клиента Windows 2000 Professional [только классические приложения]
Минимальная версия сервера Windows 2000 Server [только классические приложения]
Целевая платформа Windows
Header usp10.h
Библиотека Usp10.lib
DLL Usp10.dll
Распространяемые компоненты Internet Обозреватель 5 или более поздней версии в Windows Me/98/95

См. также раздел

Отображение текста с использованием uniscribe

SCRIPT_CACHE

ScriptGetFontProperties

ScriptShape

Одноимесяца

Функции uniscribe