MergeFontPackage, fonction (fontsub.h)

La fonction MergeFontPackage manipule les polices créées par CreateFontPackage. Il est légèrement plus flexible que son nom peut suggérer : il peut gérer correctement toutes les polices et packages de polices de sous-ensemble créés par CreateFontPackage. Il peut transformer un package de polices en police de travail, et il peut fusionner un package de police 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 à passer à 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 à fusionner. Cela est utilisé 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 police.

[in] ulFontPackageBufferSize

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

[out] ppuchDestBuffer

Pointeur vers une variable de type non signé char*. La fonction MergeFontPackage alloue une mémoire tampon **ppuchDestBuffer, à l’aide de lpfnAllocate et lpfnReAllocate. Lors d’un 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 éventuellement cette mémoire tampon.

[out] pulDestBufferSize

Pointe vers une longueur non signée, qui, lors d’un retour réussi, spécifie la taille allouée de la mémoire tampon **ppuchDestBuffer.

[out] pulBytesWritten

Pointe vers une longueur non signée, qui, lors d’un 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 opérationnelle pouvant être fusionnée ; voir les remarques ci-dessous.

puchMergeFontBuffer sera ignoré ; puchFontPackageBuffer doit contenir une police opérationnelle pouvant être fusionnée créée par CreateFontPackage avec usSubsetFormat défini sur TTFCFP_SUBSET1. Le résultat dans **ppuchDestBuffer sera une police de travail qui peut être fusionnée avec des versions ultérieures.

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

*puchFontPackageBuffer doit contenir un package de police créé par CreateFontPackage avec usSubsetFormat défini sur TTFCFP_DELTA et puchMergeFontBuffer doit contenir un package de police 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 ultérieurement.

[in] lpfnAllocate

Fonction de rappel pour allouer 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 avoir la valeur NULL.

Valeur retournée

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

Sinon, retourne une valeur différente de zéro. Consultez les messages d’erreur de fonction de package de police pour obtenir des retours d’erreur possibles.

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 police delta CreateFontPackage avec usSubsetFormat défini sur TTFCFP_DELTA. Non
Police de travail pouvant être fusionnée 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