Dokumentation fr die Funktionen der DLL.
Autor und DLL-ersteller: TheShadowAE

Das RAW-Format ist ebenfalls von TheShadowAE erfunden. Ein Converter liegt vor (IMGconverter.exe).


void __cdecl GGinit()
Inititalisiert alles Ntige fr die GUI-Funktionen. Wird nicht fr IMG-Funktionen gebraucht.

void __cdecl GGfree()
Lscht alle GUIs und deinitialisiert (alles von GGinit) um fertig fr das Dll schlieen zu sein.

GUI* __cdecl GUIcreate(char *title,int w,int h)
Erstellt eine GUI und gibt ein Handle ("ptr") auf die GUI zurck. Die GUI ist direkt sichtbar.
Parameter:
char *title - ein String der zum Titel des Fensters wird ("str")
int w - Breite des Clientbereichs des Fensters
int h - Hhe des Clientbereichs des Fensters

void __cdecl GUIupdate(GUI *gui)
bertrgt den internen Buffer nach "auen". Erst heir nach ist das gezeichnete Bild auf dem Bildschirm/Fenster sichtbar. Wird manchmal automatisch aufgerufen (wenn Windows WM_PAINT sendet) z.B.  beim aktivieren des Fensters. Nicht ganz fr Doublebuffering geeignet.
Parameter:
GUI *gui - Handle auf eine von GUIcreate erstellte GUI ("ptr")

bool __cdecl GUIdraw(GUI *gui,IMG *img,int x,int y)
bertrgt das Bild eines IMG-Objekts in den internen GUI-Buffer. Gibt true bei Erfolg zurck. Sonst false. Der Alpha-Kanal aus dem Bild wird bercksichtigt.
Parameter:
GUI *gui - Handle auf eine von GUIcreate erstellte GUI ("ptr")
IMG *img - Handle auf ein erstelltes IMG-Objekt ("ptr")
int x - X-Koordinate im Clientbereich, an dem das Bild gezeichnet werden soll
int y - Y-Koordinate im Clientbereich, an dem das Bild gezeichnet werden soll

bool __cdecl GUIdrawDC(GUI *gui,HDC img,int x,int y,int w,int h)
bertrgt das Bild von einer DC in den internen GUI-Buffer. Gibt true bei Erfolg zurck. Sonst false.  Der Alpha-Kanal aus dem Bild wird nicht bercksichtigt.
Parameter:
GUI *gui - Handle auf eine von GUIcreate erstellte GUI ("ptr")
HDC img - eine DC
int x - X-Koordinate im Clientbereich, an dem das Bild gezeichnet werden soll
int y - Y-Koordinate im Clientbereich, an dem das Bild gezeichnet werden soll

bool __cdecl GUIclosed(GUI *gui)
Gibt wenn das Fenster geschlossen wurde true zurck, sonst false.
Parameter:
GUI *gui - Handle auf eine von GUIcreate erstellte GUI ("ptr")

HWND __cdecl GUIgetHWND(GUI *gui)
Gibt das Windows-Handle fr das Fenster zurck. Kann in Autoit fr WinGetTitle usw. verwendet werden.
Parameter:
GUI *gui - Handle auf eine von GUIcreate erstellte GUI ("ptr")

DWORD* __cdecl GUIgetIMGptr(GUI *gui)
Gibt den Pointer auf die Bitmapdaten des internen GUI-Buffers zurck. Diese knnen in Autoit direkt mit einer DllStruct und DllStructSetData SetPixel hnlich genutzt werden. In einer Assemblerfunktion kann der Pointer direkt verwendet werden.
Parameter:
GUI *gui - Handle auf eine von GUIcreate erstellte GUI ("ptr")

bool __cdecl GUIsavescreen(GUI *gui,char *file)
Speichert den internen Bildbuffer einer GUI im RAW-Format in der angegebenen Datei und gibt true bei Erfolg zurck.
Parameter:
GUI *gui - Handle auf eine von GUIcreate erstellte GUI ("ptr")
char *file - String, der Dateiname ("str")

void __cdecl GUIdelete(GUI *gui)
Schliet das angegebene Fenster, wenn es noch offen ist, und lscht das GUI-Objekt Ordungsgem.
Parameter:
GUI *gui - Handle auf eine von GUIcreate erstellte GUI ("ptr")

int __cdecl GUIgetMouseEvent(GUI *gui,int *x,int *y)
Gibt je nach dem ob das Fenster angeklickt wurde einen Wert zurck:
0 - Fenster wurde nicht angeklickt
1 - Linker Mausklick hat angefangen (mouse down)
2 - Linker Mausklick hat aufgehrt (mouse up)
Die Werte in *x und *y werden auf die Koordinaten des Klicks im Clientbereich gesetzt.
Parameter:
GUI *gui - Handle auf eine von GUIcreate erstellte GUI ("ptr")
int *x - ein Pointer auf einen int, in dem die X-Koordinate gespeichert wird
int *y - ein Pointer auf einen int, in dem die Y-Koordinate gespeichert wird


bool __cdecl IsPressed(short key)
Gibt true zurck wenn die Taste gedrckt wurde, sonst falsch. Das gleiche wie _IsPressed in Autoit.
Parameter:
short key - Keycode. See MSDN Virtual Key Codes: http://msdn.microsoft.com/en-us/library/windows/desktop/dd375731%28v=vs.85%29.aspx


IMG* __cdecl IMGcreate(int w,int h)
Erstellt ein IMG-Objekt, ein Bild, ein BMP32. Und gibt ein Handle auf das Objekt zurck ("ptr")
Parameter:
int w - Breite des Bildes
int h - Hhe des Bildes

IMG* __cdecl IMGcreatefromBMP(HBITMAP hbmp,int w,int h)
Erstellt ein IMG-Objekt, ein Bild, ein BMP32 mit dem Bitmapdaten/Farben aus einer HBITMAP und gibt ein Handle auf das IMG-Objekt zurck ("ptr")
Parameter:
HBITMAP hbmp - ein GDI HBITMAP Objekt. In Autoit z.B. von _ScreenCapture_Capture zurckgegeben.
int w - Breite des Bildes
int h - Hhe des Bildes

IMG* __cdecl IMGcreatefromRAW(char *file)
Erstellt ein neues IMG-Objekt aus den Daten geladen aus einem im RAW-Format gespeicherten Bild. Gibt ein Handle auf das neue IMG-Objekt zurck.
Parameter:
char *file - String, Dateiname der RAW-Datei/des RAW-Bildes

bool __cdecl IMGsave(IMG *img,char *file)
Speichert ein Bild aus einem IMG in der angegebenen Datei im RAW-Format und gibt bei Erfolg true zurck, sonst false. Das IMG bleibt bestehen.
Parameter:
IMG *img - Handle auf ein erstelltes IMG ("ptr")
char *file - String, Dateiname in dem das Bild gespeichert werden soll

bool __cdecl IMGdraw(IMG *dest,IMG *source,int x,int y)
Malt ein Bild mit bercksichtigtem Alpha-Kanal auf ein anderes. Gibt bei Erfolg true zurck, sonst false.
Parameter:
IMG *dest - Das Zielbild, Handle auf ein erstelltes IMG ("ptr")
IMG *source - Das Quellbild, Handle auf ein erstelltes IMG ("ptr")
int x - X-Koordinate im Clientbereich, an dem das Bild gezeichnet werden soll
int y - Y-Koordinate im Clientbereich, an dem das Bild gezeichnet werden soll

bool __cdecl IMGdrawDC(IMG *dest,HDC source,int x,int y,int w,int h)
bertrgt ein Bild aus einer DC auf das Bild eines IMG-Objekts. Der Alpha-Kanal wird nicht bercksichtigt. Gibt bei Erfolg true zurck, sonst false.
Parameter:
IMG *dest - Zielbild, Handle auf ein erstelltes IMG ("ptr")
HDC source - Quellbild, GDI DC Objekt
int x - X-Koordinate im Clientbereich, an dem das Bild gezeichnet werden soll
int y - Y-Koordinate im Clientbereich, an dem das Bild gezeichnet werden soll
int w - Breite des zu bertragenden Bildes
int h - Hhe des zu bertragenden Bildes

void __cdecl IMGdelete(IMG *img)
Lscht ein IMG-Objekt und gibt seinen Speicher ordungsgem frei.
Parameter:
IMG *img - Handle auf ein erstelltes IMG ("ptr")

HDC __cdecl IMGgetDC(IMG *img)
Gibt den DC zugehrig zu dem IMG zurck.
Parameter:
IMG *img - Handle auf ein erstelltes IMG ("ptr")

HBITMAP __cdecl IMGgetBMP(IMG *img)
Gibt die HBITMAP zugehrig zum IMG zurck.
Parameter:
IMG *img - Handle auf ein erstelltes IMG ("ptr")

DWORD* __cdecl IMGgetPTR(IMG *img)
Gibt den Pointer auf die Bitmapdaten des IMGs zurck. Diese knnen in Autoit direkt mit einer DllStruct und DllStructSetData SetPixel hnlich genutzt werden. In einer Assemblerfunktion kann der Pointer direkt verwendet werden.
Parameter:
IMG *img - Handle auf ein erstelltes IMG ("ptr")

int __cdecl IMGgetW(IMG *img)
Gibt den Pointer auf die Breite (Width) des IMGs zurck.
Parameter:
IMG *img - Handle auf ein erstelltes IMG ("ptr")

int __cdecl IMGgetH(IMG *img)
Gibt den Pointer auf die Hhe (Height) des IMGs zurck.
Parameter:
IMG *img - Handle auf ein erstelltes IMG ("ptr")
