MergeFontPackage, fonction (fontsub.h)

La fonction MergeFontPackage manipule les polices créées par CreateFontPackage. Il est légèrement plus flexible que son nom ne le suggère : il peut gérer de manière appropriée toutes les polices de sous-ensemble et les packages de polices créés par CreateFontPackage. Il peut transformer un package de polices en police de travail et fusionner un package de polices Delta en une police de travail préparée de manière appropriée.

En règle générale, CreateFontPackage crée des polices de sous-ensemble et des packages de polices à transmettre à une imprimante ou à un serveur d’impression ; MergeFontPackage s’exécute sur cette imprimante ou ce serveur d’impression.

Syntaxe

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
);

Paramètres

[in] puchMergeFontBuffer

Pointeur vers une mémoire tampon contenant une police avec lequel fusionner. Elle est utilisée uniquement lorsque usMode est TTFMFP_DELTA.

[in] ulMergeFontBufferSize

Spécifie la taille de *puchMergeFontBuffer, en octets.

[in] puchFontPackageBuffer

Pointeur vers une mémoire tampon contenant un package de polices.

[in] ulFontPackageBufferSize

Spécifie la taille de *puchMergeFontBuffer, en octets.

[out] ppuchDestBuffer

Pointeur vers une variable de type char non signé*. La fonction MergeFontPackage alloue une mémoire tampon **ppuchDestBuffer, à l’aide de lpfnAllocate et lpfnReAllocate. En cas de retour réussi, cette mémoire tampon contient la police fusionnée ou développée résultante. L’application est chargée de libérer à terme cette mémoire tampon.

[out] pulDestBufferSize

Pointe vers un long non signé, qui, en cas de retour réussi, spécifie la taille allouée de la mémoire tampon **ppuchDestBuffer.

[out] pulBytesWritten

Pointe vers un long non signé, qui, en cas de retour réussi, spécifie le nombre d’octets réellement utilisés dans la mémoire tampon **ppuchDestBuffer.

[in] usMode

Spécifie le type de processus à effectuer. Sélectionnez l’une de ces valeurs ; ils ne peuvent pas être combinés.

Valeur Signification
TTFMFP_SUBSET
Copie une police de travail simple; voir les remarques ci-dessous.

puchMergeFontBuffer sera ignoré ; puchFontPackageBuffer doit contenir une police de travail créée par CreateFontPackage avec usSubsetFormat défini sur TTFCFP_SUBSET ; cette police de travail sera simplement copiée dans ppuchDestBuffer.

TTFMFP_SUBSET1
Transforme un package de polices en police de travail pouvant être fusionnée ; voir les remarques ci-dessous.

puchMergeFontBuffer sera ignoré ; puchFontPackageBuffer doit contenir une police de travail fusionnable créée par CreateFontPackage avec usSubsetFormat défini sur TTFCFP_SUBSET1. Le résultat dans **ppuchDestBuffer sera une police fonctionnelle qui peut être fusionnée avec ultérieurement.

TTFMFP_DELTA
Fusionne un package de polices Delta en une police de travail pouvant être fusionnée ; voir les remarques ci-dessous.

*puchFontPackageBuffer doit contenir un package de polices créé par CreateFontPackage avec usSubsetFormat défini sur TTFCFP_DELTA et puchMergeFontBuffer doit contenir un package de polices créé par un appel antérieur à MergeFontPackage avec usMode défini sur TTFMFP_SUBSET1 ou TTFMFP_DELTA. La police fusionnée résultante dans **ppuchDestBuffer sera une police de travail qui peut être fusionnée avec ultérieurement.

[in] lpfnAllocate

Fonction de rappel permettant d’allouer de la mémoire initiale pour ppuchDestBuffer et pour les mémoires tampons temporaires.

[in] lpfnReAllocate

Fonction de rappel pour réallouer la mémoire pour ppuchDestBuffer et pour les mémoires tampons temporaires.

[in] lpfnFree

Fonction de rappel pour libérer de la mémoire allouée par lpfnAllocate et lpfnReAllocate.

[in] lpvReserved

Doit être défini sur NULL.

Valeur retournée

Si la fonction réussit, retourne zéro.

Sinon, retourne une valeur différente de zéro. Pour connaître les éventuels retours d’erreurs, consultez Messages d’erreur de la fonction Font-Package .

Notes

Cette fonction gère quatre entités distinctes associées, chacune représentant une police de sous-ensemble :

Entité Produit par Directement utilisable en tant que police
Police de travail simple CreateFontPackage avec usSubsetFormat défini sur TFCFP_SUBSET. Oui
Package de polices CreateFontPackage avec usSubsetFormat défini sur TTFCFP_SUBSET1. Non
Package de polices delta CreateFontPackage avec usSubsetFormat défini sur TTFCFP_DELTA. Non
Police de travail fusionnable MergeFontPackage avec usMode défini sur TTFMFP_SUBSET1 ou TTFMFP_DELTA. Oui

Configuration requise

   
Client minimal pris en charge Windows XP [applications de bureau uniquement]
Serveur minimal pris en charge Windows Server 2003 [applications de bureau uniquement]
Plateforme cible Windows
En-tête fontsub.h
Bibliothèque FontSub.lib
DLL FontSub.dll

Voir aussi

CFP_ALLOCPROC

CFP_FREEPROC

CFP_REALLOCPROC

CreateFontPackage