Maffe811, Stand by for short course in Bit arithmetic. $wParam is 8 bytes wide - think "12345678", although each digit can actually be 0-F. Sometimes the value in $wParam is divided into 2 separate 4 byte values - the "High" and the "Low" words. In the example above, these are: High = "1234"; Low = "5678". It is a clever way of passing 2 values within a single parameter. So how to separate these values? We could use _WinAPI_HiWord and _WinAPI_LoWord, but that would mean including WinAPI.au3. So we manipulate the value ourselves. High word first: here we just shift the the whole parameter to the right: Local $iCode = BitShift($wParam, 16)Remember that each byte has 4 bits (Hex 0-F = Binary 0000 - 1111) - so if we shift the whole number 4x4 bits to the right, we get just "1234" - the "High" part. Now the Low word: here we use another of the Bit operators to blank out the "High" bytes: Local $iIDFrom = BitAND($wParam, 0xFFFF)BitAND says only keep bit where there is a value in both of the operators - in our case we get this: 12345678
0000FFFF - remember that F = 1111
=
00005678 - as only the final 4 bytes can possibly have 1's set in both valuesSo basically we keep all the Low bytes and set all the High bytes to zero - the result is the Low word. Still with me? I will come back with the second part after the Germany/Portugal match has finished. M23