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


Функция MergeFontPackage (fontsub.h)

Функция MergeFontPackage управляет шрифтами, созданными с помощью CreateFontPackage. Он немного более гибок, чем можно предположить в названии: он может соответствующим образом обрабатывать все подмножества шрифтов и пакеты шрифтов, созданные CreateFontPackage. Он может превратить пакет шрифта в рабочий шрифт и объединить пакет разностных шрифтов с соответствующим образом подготовленным рабочим шрифтом.

Как правило, CreateFontPackage создает подмножество шрифтов и пакетов шрифтов для передачи на принтер или сервер печати. MergeFontPackage выполняется на этом принтере или сервере печати.

Синтаксис

unsigned long MergeFontPackage(
  [in]  const unsigned char  *puchMergeFontBuffer,
  [in]  const unsigned long  ulMergeFontBufferSize,
  [in]  const unsigned char  *puchFontPackageBuffer,
  [in]  const unsigned long  ulFontPackageBufferSize,
  [out] unsigned char        **ppuchDestBuffer,
  [out] unsigned long        *pulDestBufferSize,
  [out] unsigned long        *pulBytesWritten,
  [in]  const unsigned short usMode,
  [in]  CFP_ALLOCPROC        lpfnAllocate,
  [in]  CFP_REALLOCPROC      lpfnReAllocate,
  [in]  CFP_FREEPROC         lpfnFree,
  [in]  void                 *lpvReserved
);

Параметры

[in] puchMergeFontBuffer

Указатель на буфер, содержащий шрифт для слияния. Используется только в том случае , если TTFMFP_DELTA usMode .

[in] ulMergeFontBufferSize

Задает размер *puchMergeFontBuffer в байтах.

[in] puchFontPackageBuffer

Указатель на буфер, содержащий пакет шрифта.

[in] ulFontPackageBufferSize

Задает размер *puchMergeFontBuffer в байтах.

[out] ppuchDestBuffer

Указатель на переменную типа unsigned char*. Функция MergeFontPackage выделяет буфер **ppuchDestBuffer с помощью lpfnAllocate и lpfnReAllocate. При успешном возвращении этот буфер будет содержать полученный объединенный или развернутый шрифт. Приложение отвечает за окончательное освобождение этого буфера.

[out] pulDestBufferSize

Указывает на неподписанный объект long, который при успешном возвращении будет указывать выделенный размер буфера **ppuchDestBuffer.

[out] pulBytesWritten

Указывает на неподписанный объект long, который при успешном возвращении будет указывать количество байтов, фактически используемых в буфере **ppuchDestBuffer.

[in] usMode

Указывает тип выполняемого процесса. Выберите одно из этих значений. их нельзя объединить.

Значение Значение
TTFMFP_SUBSET
Копирует простой рабочий шрифт; см. примечания ниже.

puchMergeFontBuffer будет игнорироваться; puchFontPackageBuffer должен содержать рабочий шрифт, созданный с помощью CreateFontPackage с параметром usSubsetFormat , равным TTFCFP_SUBSET; этот рабочий шрифт будет просто скопирован в ppuchDestBuffer.

TTFMFP_SUBSET1
Преобразует пакет шрифтов в рабочий шрифт, доступный для объединения; см. примечания ниже.

puchMergeFontBuffer будет игнорироваться; puchFontPackageBuffer должен содержать объединяемый рабочий шрифт , созданный createFontPackage с параметром usSubsetFormat , для TTFCFP_SUBSET1. Результатом в **ppuchDestBuffer будет рабочий шрифт, который может быть объединен с позже.

TTFMFP_DELTA
Объединяет пакет разностных шрифтов в рабочий шрифт, доступный для объединения; см. примечания ниже.

*puchFontPackageBuffer должен содержать пакет шрифтов, созданный с помощью CreateFontPackage с параметром usSubsetFormat , равным TTFCFP_DELTA а puchMergeFontBuffer должен содержать пакет шрифтов, созданный при предварительном вызове MergeFontPackage с параметром usMode , для TTFMFP_SUBSET1 или TTFMFP_DELTA. Полученный объединенный шрифт в **ppuchDestBuffer будет рабочим шрифтом, который может быть объединен позже.

[in] lpfnAllocate

Функция обратного вызова для выделения начальной памяти для ppuchDestBuffer и для временных буферов.

[in] lpfnReAllocate

Функция обратного вызова для перераспределения памяти для ppuchDestBuffer и временных буферов.

[in] lpfnFree

Функция обратного вызова для освобождения памяти, выделенной lpfnAllocate и lpfnReAllocate.

[in] lpvReserved

Для параметра должно быть задано значение NULL.

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

Если функция выполнена успешно, возвращает ноль.

В противном случае возвращается ненулевое значение. Сведения о возможных ошибках см. в статье Font-Package Function Messages (Сообщения об ошибках функции Font-Package ).

Комментарии

Эта функция обрабатывает четыре отдельные связанные сущности, каждая из которых представляет шрифт подмножества:

Сущность Производится Возможность непосредственного использования в качестве шрифта
Простой рабочий шрифт CreateFontPackage с параметром usSubsetFormat , для TFCFP_SUBSET. Да
Пакет шрифтов CreateFontPackage с параметром usSubsetFormat , для TTFCFP_SUBSET1. Нет
Пакет разностных шрифтов CreateFontPackage с параметром usSubsetFormat , для TTFCFP_DELTA. Нет
Объединяемый рабочий шрифт MergeFontPackage с usMode , для TTFMFP_SUBSET1 или TTFMFP_DELTA. Да

Требования

   
Минимальная версия клиента Windows XP [только классические приложения]
Минимальная версия сервера Windows Server 2003 [только классические приложения]
Целевая платформа Windows
Header fontsub.h
Библиотека FontSub.lib
DLL FontSub.dll

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

CFP_ALLOCPROC

CFP_FREEPROC

CFP_REALLOCPROC

CreateFontPackage