LPARAM und WPARAM
-
Hallo,
Ich bin dabei, ein Programm zu coden, welches auf selbstdefinierte Messages was bestimmtes macht. Hab aber ein Problem : Ich will nicht für jeden Befehl ein andere Message hinschicken, sondern eine einzige Message, und dann sollen in wParam möglichst zwei weitere Parameter übergeben werden.
Jetzt meine Frage :
WPARAM ist ein unsigned int, einen Parameter kann ich auch mit MAKEWPARAM erstellen, aber wie teilt dieses Makro den High- und den Low-Bereich ein(50%, 50%, also 16 bit, 16 bit?)? Darf ich auch die Adresse eines char-Arrays übergeben? Oder gar die einer Struktur?
Die gleichen Frage auch natürlich für LPARAM, ist ja ein long (auch 32 Bit), und da kann man ja auch char* übergeben (LB_ADDSTRING z.b.).Und überhaupt, wozu die Einteilung in unsigned int und long?
Danke!!!
-
Ja, übergib einen Zeiger auf eine Struktur.
-
WPARAM ist ein unsigned int, einen Parameter kann ich auch mit MAKEWPARAM erstellen, aber wie teilt dieses Makro den High- und den Low-Bereich ein(50%, 50%, also 16 bit, 16 bit?)?
jo, siehe:
#define MAKELONG(a, b) ((LONG)(((WORD)((DWORD_PTR)(a) & 0xffff)) | ((DWORD)((WORD)((DWORD_PTR)(b) & 0xffff))) << 16))Darf ich auch die Adresse eines char-Arrays übergeben?
jo
Oder gar die einer Struktur?
jo
und da kann man ja auch char* übergeben (LB_ADDSTRING z.b.).
jo
ein Zeiger ist ein Zeiger egal ob auf ein char-array, ein struct oder ein object..
-
Dank euch!!!