Na ich glaube, ihm ging es mehr um das LoWord bzw. HiWord, welches aus
den beiden Longwerten LParam bzw. WParam aus diesen ausgelesen wird,
was man im ersten Blick daraus nicht verstehen kann.
[Edit] Soweit ich weis, wird nur in dem Longwert
wParam eine
Bitverschiebung gemacht und nichts wird im
lParam hinein
geschoben.
Quasi werden dabei die 16Bits, die hinten herausfallen gelöscht und am
Anfang wieder 16 Nullen aufgefüllt und durch die
AND-Verknüpfung (& $FFFF) filtere ich das LoWord.
Man möge mir verzeihen, wenn ich das jetzt nicht genau beschrieben habe

Sollte da noch was falsch sein bzw. fehlen, bitte ich um eure Korrektur.
[/Edit]
Darum die obige Schreibform.
0 & 1 = 0 , siehe in der Hilfe unter Variablen.
Verknüpfung binäre & (AND) aus der PB-Hilfe hat geschrieben:LS | RS | Ergebnis
---------------------
0 | 0 | 0
0 | 1 | 0
1 | 0 | 0
1 | 1 | 1
Beispiel:
Ich habe vorhin in einem VB-Beispiel gefunden, welches dieses anders
macht und vielleicht verständlicher aussieht.
Vielleicht kann man's gebrauchen.
Wegen der Geschwindigkeit ist das Obige vorzuziehen.
Code: Alles auswählen
Procedure.s LoWord(nDWORD.l)
Result.s=Left(Right("00000000" + Hex(nDWORD),8),4)
ProcedureReturn Result
EndProcedure
Procedure.s HiWord(nDWORD.l)
Result.s=Right(Right("00000000" + Hex(nDWORD),8),4)
ProcedureReturn Result
EndProcedure
Procedure.s LoByte(nDByte.w)
Result.s=Left(Right("0000000" + Hex(nDByte),4),2)
ProcedureReturn Result
EndProcedure
Procedure.s HiByte(nDByte.w)
Result.s=Right(Right("0000000" + Hex(nDByte),4),2)
ProcedureReturn Result
EndProcedure
Debug LoWord(%00000000000000001111111111111111)+" "+ HiWord (%00000000000000001111111111111111)
Debug LoWord(%11111111111111110000000000000000)+" "+ HIWord(%11111111111111110000000000000000)
Debug LoByte(%0000000011111111) +" "+ HiByte(%0000000011111111)
Debug LoByte(%1111111100000000) +" "+ HiByte(%1111111100000000)