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


Функция TTLoadEmbeddedFont (t2embapi.h)

Считывает внедренный шрифт из потока документа и устанавливает его. Кроме того, позволяет клиенту дополнительно ограничить привилегии внедрения шрифта.

Синтаксис

LONG TTLoadEmbeddedFont(
  [out]          HANDLE        *phFontReference,
  [in]           ULONG         ulFlags,
  [out]          ULONG         *pulPrivStatus,
  [in]           ULONG         ulPrivs,
  [out]          ULONG         *pulStatus,
  [in]           READEMBEDPROC lpfnReadFromStream,
  [in]           LPVOID        lpvReadStream,
  [in, optional] LPWSTR        szWinFamilyName,
  [in, optional] LPSTR         szMacFamilyName,
  [in, optional] TTLOADINFO    *pTTLoadInfo
);

Параметры

[out] phFontReference

Указатель на дескриптор, который идентифицирует установленный внедренный шрифт. Этот дескриптор ссылается на внутреннюю структуру, а не на Hfont.

[in] ulFlags

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

Значение Значение
TTLOAD_PRIVATE
Загрузите шрифт, чтобы он не перечислялся пользователю. Если шрифт не устанавливается, он останется частным.

[out] pulPrivStatus

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

Значение Значение
EMBED_PREVIEWPRINT
Предварительный просмотр и внедрение на печать. Шрифт может быть внедрен в документы, но его необходимо установить только временно в удаленной системе. Документ, содержащий этот тип шрифта, можно открыть только как доступный только для чтения. Приложение не должно разрешать пользователю редактировать документ. Документ можно только просматривать и(или) печатать.
EMBED_EDITABLE
Редактируемое внедрение. Шрифт может быть внедрен в документы, но его необходимо установить только временно в удаленной системе. Документ, содержащий шрифт этого типа, может быть открыт для чтения и записи с разрешенным редактированием.
EMBED_INSTALLABLE
Устанавливаемое внедрение. Шрифт может быть внедрен и постоянно установлен в удаленной системе. Пользователь удаленной системы получает те же права, обязанности и лицензии на этот шрифт, что и исходный покупатель шрифта, и на нее распространяется то же лицензионное соглашение конечного пользователя, авторское право, патент на дизайн и (или) товарный знак, как и у первоначального покупателя.
EMBED_NOEMBEDDING
Внедрение ограниченной лицензии. Шрифт не должен изменяться, внедряться или обмениваться каким-либо образом без предварительного получения разрешения законного владельца.

[in] ulPrivs

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

Значение Значение
LICENSE_PREVIEWPRINT
Предварительный просмотр и внедрение на печать.
LICENSE_EDITABLE
Редактируемое внедрение.
LICENSE_INSTALLABLE
Устанавливаемое внедрение.
LICENSE_NOEMBEDDING
Внедрение ограниченной лицензии.
LICENSE_DEFAULT
Используйте уровень внедрения по умолчанию.

[out] pulStatus

Указатель на битовое поле, содержащее сведения о состоянии запроса TTLoadEmbeddedFont . Это поле заполняется после завершения этой функции и может иметь ноль или более следующих значений.

Значение Значение
TTLOAD_FONT_SUBSETTED
Загруженный шрифт является подмножеством исходного шрифта.
TTLOAD_FONT_IN_SYSSTARTUP
Загруженный шрифт помечен как устанавливаемый и добавлен в реестр, поэтому он будет доступен при запуске.

[in] lpfnReadFromStream

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

[in] lpvReadStream

Указатель на поток (структура шрифта).

[in, optional] szWinFamilyName

Указатель на новое 16-разрядное имя семейства Шрифта в Юникоде Microsoft Windows. Задайте значение NULL , чтобы использовать существующее имя. При изменении имени шрифта при загрузке необходимо указать как этот параметр, так и параметр szMacFamilyName .

[in, optional] szMacFamilyName

Указатель на новое 8-разрядное имя семейства Macintosh шрифта. Задайте значение NULL , чтобы использовать существующее имя. При изменении имени шрифта при загрузке необходимо указать как этот параметр, так и параметр szWinFamilyName .

[in, optional] pTTLoadInfo

Указатель на структуру TTLOADINFO , содержащую URL-адрес, по которому был получен внедренный объект шрифта. Если это значение не соответствует одному из значений, содержащихся в структуре TTEMBEDINFO , шрифт не будет успешно загружен.

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

В случае успешного выполнения возвращает E_NONE.

Если загрузка шрифта выполнена успешно, шрифт, указанный phFontReference , создается из структуры шрифта с именами, указанными в szWinFamilyName и szMacFamilyName. Задано значение pulPrivStatus , указывающее привилегии внедрения шрифта; и pulStatus можно задать, указывая сведения о состоянии операции загрузки шрифтов.

В противном случае возвращает код ошибки, описанный в разделе Внедрение сообщений об ошибках функции.

Комментарии

Чтобы помочь клиенту определить, установлен ли внедренный шрифт в системе, функция загрузки шрифтов вернет сообщение об ошибке, указывающее, что шрифт с тем же именем существует в системе (E_FONTNAMEALREADYEXISTS), и если этот шрифт имеет ту же контрольную сумму, что и внедренный шрифт (E_FONTALREADYEXISTS). Клиент имеет два варианта:

  1. Предположим, что установленный шрифт действительно совпадает с внедренным шрифтом и охватывает те же подмножества.
  2. Принудительная установка внедренного шрифта с другим именем, чтобы избежать несовместимости со шрифтом, уже имеющимся в системе.
Чтобы изменить имя внедренного шрифта перед установкой, клиент должен указать как 8-разрядные, так и 16-разрядные строки имени символов в качестве параметров. Имя шрифта будет изменено в таблице имен только что установленного шрифта. Новое имя доступно только клиенту и не будет перечислено пользователю.

Чтобы использовать существующее имя внедренного шрифта, для параметров строки имени необходимо задать значение NULL.

Требования

Требование Значение
Минимальная версия клиента Windows 2000 Professional [только классические приложения]
Минимальная версия сервера Windows 2000 Server [только классические приложения]
Целевая платформа Windows
Header t2embapi.h
Библиотека T2embed.lib
DLL T2embed.dll

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

TTDeleteEmbeddedFont

TTEMBEDINFO

TTGetEmbeddingType

TTGetNewFontName

TTLOADINFO