Re: Api Windows

Posté par Anonyme le 16/12/2005 14:33:38
Merci !! j'ai corrigé mais ca fonctions toujours pas , c'est la première fois qu'une api me pose autant problème !

Le but est de recupérer les valeurs du champs "image1"
J'ai vérifié en VB ( la structure BITMAPINFOHEADER fait bien 40 octets )
As tu une idée ???

BITMAPINFOHEADER est une structure

biSize est un entier sur 4 octets sans signe //Type C : DWORD
biWidth est un entier //Type C : LONG
biHeight est un entier //Type C : LONG

biPlanes est un entier sur 2 octets sans signe //Type C : WORD
biBitCount est un entier sur 2 octets sans signe //Type C : WORD

biCompression est un entier //Type C : DWORD
biSizeImage est un entier sur 4 octets sans signe//Type C : DWORD
biXPelsPerMeter est un entier //Type C : LONG
biYPelsPerMeter est un entier //Type C : LONG
biClrUsed est un entier sur 4 octets sans signe //Type C : DWORD
biClrImportant est un entier sur 4 octets sans signe //Type C : DWORD

// Long data type = entier sur 4 octets avec signe
FIN

RGBQUAD est une structure
rgbBlue est un caractère //Type C : BYTE
rgbGreen est un caractère //Type C : BYTE
rgbRed est un caractère //Type C : BYTE
rgbReserved est un caractère //Type C : BYTE
FIN
BITMAPINF est une structure
bmiHeader est un BITMAPINFOHEADER //BITMAPINFOHEADER est une autre structure
bmiColors est un RGBQUAD //RGBQUAD est une autre structure
FIN

RGBQ1 est un tableau de 100*100 RGBQUAD
Trace(Dimension(RGBQ1))
BMPINFO est un BITMAPINF
BMPINFOH est un BITMAPINFOHEADER

BMPINFOH:biBitCount = 32 // ou 24 si on veut
BMPINFOH:biHeight = 100
BMPINFOH:biWidth = 100
BMPINFOH:biPlanes = 1
BMPINFOH:biCompression = 0
BMPINFOH:biSize = Dimension(BMPINFOH)

BMPINFO:bmiHeader = BMPINFOH

RetourFonction est un entier // Type C :INT

hImage1 est un entier = Handle("image1")
hdc est un entier = AppelDLL32("user32", "GetDC", hImage1)

RetourFonction=API("GDI32","GetDIBits",hdc,hImage1,10,100,&RGBQ1,&BMPINFO,0)

Trace(RetourFonction)
// RetourFonction renvoi le nombre de lignes copiées en mémoire sinon =0 en échec !!!!

Cette contribution était de : http://old.wdforge.org/newbb/viewtopic.php?forum=5&topic_id=330&post_id=13677