Question:
How do you convert a long integer to two integer values (that is, get the low word and high word contained in a long integer)?Danial Appleman’s API Guide discusses a function to do this, but it requires distribution of another DLL. How can I retrieve these values without using Dan Appleman’s function/DLL?
Answer:
The following two functions seem to end up in nearly every app I write! Enjoy…
Public Function WordHi(LongIn As Long) As Integer ' ' Mask off low word then do integer divide to ' shift right by 16. ' WordHi = (LongIn And &HFFFF0000) &H10000End FunctionPublic Function WordLo(LongIn As Long) As Integer ' ' Low word retrieved by masking off high word. ' If low word is too large, twiddle sign bit. ' If (LongIn And &HFFFF&) > &H7FFF Then WordLo = (LongIn And &HFFFF&) - &H10000 Else WordLo = LongIn And &HFFFF& End IfEnd Function