MergeFontPackage 函式 (fontsub.h)

MergeFontPackage函式會操作CreateFontPackage所建立的字型。 它比其名稱稍微更有彈性:它可以適當地處理 CreateFontPackage所建立的所有子集字型和字型套件。 它可以將字型套件轉換成有效的字型,而且可以將 Delta 字型套件合併到適當準備的工作字型。

一般而言, 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

緩衝區的指標,其中包含要合併的字型。 只有當 usMode TTFMFP_DELTA時,才會使用此專案。

[in] ulMergeFontBufferSize

指定 *puchMergeFontBuffer的大小,以位元組為單位。

[in] puchFontPackageBuffer

緩衝區的指標,其中包含字型套件。

[in] ulFontPackageBufferSize

指定 *puchMergeFontBuffer的大小,以位元組為單位。

[out] ppuchDestBuffer

不帶正負號 char* 類型的變數指標。 MergeFontPackage函式會使用lpfnAllocatelpfnReAllocate配置緩衝區 **ppuchDestBuffer。 成功傳回時,該緩衝區將包含產生的合併字型或展開字型。 應用程式負責最終釋放該緩衝區。

[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
將 Delta 字型套件合併成可合併的工作字型;請參閱下方的備註。

*puchFontPackageBuffer 應該包含 CreateFontPackage 所建立的字型套件 ,並將 usSubsetFormat 設定為 TTFCFP_DELTA, puchMergeFontBuffer 應該包含先前呼叫 MergeFontPackage 所建立的字型套件,並將 usMode 設定為 TTFMFP_SUBSET1 或 TTFMFP_DELTA。 **ppuchDestBuffer 中產生的合併字型將會是一種工作字型,稍後可能會合並。

[in] lpfnAllocate

要為 ppuchDestBuffer 和暫存緩衝區配置初始記憶體的回呼函式。

[in] lpfnReAllocate

用於重新配置 ppuchDestBuffer 和暫存緩衝區記憶體的回呼函式。

[in] lpfnFree

回呼函式可釋出 lpfnAllocatelpfnReAllocate所配置的記憶體。

[in] lpvReserved

必須設定為 Null

傳回值

如果函式成功,則傳回零。

否則,傳回非零值。 如需可能的錯誤傳回,請參閱 字型套件函式錯誤訊息

備註

此函式會處理四個不同的相關實體,每個實體都代表子集字型:

實體 產生者 直接當做字型使用
簡單工作字型 usSubsetFormat設定為 TFCFP_SUBSET 的CreateFontPackage
字型套件 usSubsetFormat設定為 TTFCFP_SUBSET1 的CreateFontPackage
差異字型套件 usSubsetFormat設定為 TTFCFP_DELTA 的CreateFontPackage
可合併的工作字型 MergeFontPackageusMode 設定為 TTFMFP_SUBSET1 或 TTFMFP_DELTA。

需求

   
最低支援的用戶端 Windows XP [僅限傳統型應用程式]
最低支援的伺服器 Windows Server 2003 [僅限傳統型應用程式]
目標平台 Windows
標頭 fontsub.h
程式庫 FontSub.lib
Dll FontSub.dll

另請參閱

CFP_ALLOCPROC

CFP_FREEPROC

CFP_REALLOCPROC

CreateFontPackage