GdipNewInstalledFontCollection()
Syntaxe
|
Resultat.i = GdipNewInstalledFontCollection(@*fontCollection)
Paramètre
|
*fontCollection[out] *fontCollection recevra l'identifiant GDI+ de l'objet FontCollection pour les FontFamily système installées (InstalledFontCollection).
Description
|
Cette fonction permet de créer un objet InstalledFontCollection qui peut ensuite être utilisé pour énumérer les FontFamily système installées.
L'exemple énumère l'ensemble des FontFamily système installées.
Pour énumérer les fontes systèmes, voici les étapes à suivre :
- Créer un objet InstalledFontCollection.
- Retrouver le nombre d'objets FontFamily de la collection 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 présentes sur le système (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