Gibt das niederwertige Wort eines Longword-Wertes zurück
#include <WinAPIConv.au3>
_WinAPI_LoWord ( $iLong )
$iLong | Longword Wert |
Ein Wort ist normalerweise die Verarbeitungsbreite des verwendeten Prozessors in Bit. In AutoIt ist ein Wort mit 16 Bit definiert. Damit können die Zahlen von 0 bis 65535 abgebildet werden. Ein Longword (oder auch Langwort oder Doppelwort) umfasste zwei Worte, also 32 Bits (0-4294967295), wobei hier in den niederwertigen Teil (LoWord: Bits 0-15) und den höherwertigen Teil (HiWord: Bits 16-31) unterschieden wird.
Das übergebene LongWord wird als "Unsigned Long" (ohne Vorzeichen) interpretiert.
Wird der Funktion ein LongWord mit negativen Werten übergeben (der Short-Wert kann sowohl positiv als auch negativ sein), so berücksichtigt diese Funktion das nicht.
Es wird nur der entsprechende "Unsigned"-Wert zurückgegeben.
Siehe Beispiel 2 für eine Signed-Variante.
_WinAPI_HiWord, _WinAPI_MakeLong
Local $iLongWord = 0xFFF8FFD6
Local $iX = _WinAPI_LoWordSigned($iLongWord)
Local $iY = _WinAPI_HiWordSigned($iLongWord)
ConsoleWrite(StringFormat('X = %i, Y = %i\r\n', $iX, $iY))
Func _WinAPI_LoWordSigned($iLong)
Local $tLong = DllStructCreate('long XY')
Local $tShort = DllStructCreate('short X;short Y', DllStructGetPtr($tLong))
$tLong.XY = $iLong
Return $tShort.X
EndFunc
Func _WinAPI_HiWordSigned($iLong)
Local $tLong = DllStructCreate('long XY')
Local $tShort = DllStructCreate('short X;short Y', DllStructGetPtr($tLong))
$tLong.XY = $iLong
Return $tShort.Y
EndFunc