GdipCreateMetafileFromStream()



Syntaxe
Resultat.i = GdipCreateMetafileFromStream(*stream, @*metafile)
Paramètres
*stream

[in] Pointeur sur une instance de l'interface COM IStream qui pointe un stream (flux de données).

*metafile

[out] *metafile recevra un pointeur sur l'objet metafile créé.

Description

Cette fonction est classé par Micosoft dans les fonctions Graphics mais je l'ai classée dans les métafiles.

Cette fonction permet de créer un métafichier en mémoire à partir d'un stream. Si le stream est vide, la fonction échoue.

A chaque création d'un objet metafile doit correspondre un appel de la fonction GdipDisposeImage() qui permet de libérer les ressources associées à l'objet.

Le premier exemple va créer un stream avec l'API CreateStreamOnHGlobal() en chargeant le fichier format emf à partir d'une zone mémoire. Le métafichier est créé à partir du stream. Ensuite le stream est supprimé et la callback dessinera le métafichier sur un graphique.

Le second exemple va créer un stream depuis le fichier sur disque avec la fonction GDI+ GdipCreateStreamOnFile(). Le métafichier est créé à partir du stream. Ensuite le stream est supprimé et la callback dessinera le métafichier sur un graphique.

L'utilisation de la fonction AllocateMemory() de PB avec l'API GlobalLock_() entraîne des erreurs sous Vista de même que les fonctions d'allocation mémoire du Heap.

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