GdipNewPrivateFontCollection()



Syntaxe
Resultat.i = GdipNewPrivateFontCollection(@*fontCollection)
Paramètre
*fontCollection

[out] *fontCollection recevra l'identifiant de l'objet *PrivateFontCollection vide.

Description

Cette fonction permet de créer un objet PrivateFontCollection vide qui peut ensuite être utilisé pour y ajouter des polices privées utilisable uniquement par l'application.

L'exemple énumère les FontFamily d'une collection privée.
voici les étapes de l'exemple :

- Créer un objet PrivateFontCollection vide.
- Ajout de 3 fichiers de font dans la collection privée.

- Retrouver le nombre d'objets FontFamily de la collection privée avec la fonction GdipGetFontCollectionFamilyCount() et l'objet InstalledFontCollection.

- Si le nombre d'objets FontFamily installés est supérieur à 0, faire les étapes suivantes :

- Créer un tableau en mémoire qui recevra les identifiant GDI+ de l'ensemble des FontFamily de la collection privée (la taille est le produit du nombre d'objets FontFamily par la taille d'un pointeur FontFamily (4 octets sur un système 32 bits).

- La fonction GdipGetFontCollectionFamilyList() est utilisée et permet de retrouver l'ensemble des identifiants des FontFamily de la collection privée pointée par *fontCollection, ces identifiants sont mis dans le tableau créé avant l'appel de cette fonction. La procédure doit retourner #Ok, dans le cas contraire, elle a échouée.

- Si la fonction GdipGetFontCollectionFamilyList() réussie, il faut scruter l'ensemble du tableau de FontFamily retourné et appeler pour chaque élément, la fonction GdipGetFamilyName() pour obtenir le nom de la FontFamily.

D'après mes essais, ces objets FontFamily appartiennent à la collection, ils ne doivent pas être détruits (erreur accès mémoire sous Vista mais pas sous XP (?)
- Ensuite supprimer le tableau de la mémoire et supprimer l'objet PrivateFontCollection avec la fonction GdipDeletePrivateFontCollection().

Résultat de la fonction
Si la fonction réussit, elle retourne #Ok qui est une constante de l'énumération status.
Si la fonction échoue, elle retourne une des autres valeurs de l'énumération status.
PB - OS
PureBasic v4.30 bêta 4 (Windows - x86)
Testé avec Windows Vista édition familiale Premium