Search Tools Links Login

HiByte,HiWord,LoByte,LoWord, MakeInt and MakeLong

Often especially when dealing with the API, byte and integer data types will be packed into LONG INTEGER (32 bit) values.
Thes snippets allow you to decode/encode these 32 bit longs:

Original Author: Duncan Jones


Public Function hiByte(ByVal w As Integer) As Byte
  If w And &H8000 Then
   hiByte = &H80 Or ((w And &H7FFF) &HFF)
   hiByte = w 256
  End If
End Function
Public Function HiWord(dw As Long) As Integer
If dw And &H80000000 Then
   HiWord = (dw 65535) - 1
  HiWord = dw 65535
End If
End Function
Public Function LoByte(w As Integer) As Byte
LoByte = w And &HFF
End Function
Public Function LoWord(dw As Long) As Integer
If dw And &H8000& Then
   LoWord = &H8000 Or (dw And &H7FFF&)
   LoWord = dw And &HFFFF&
  End If
End Function
Public Function MakeInt(ByVal LoByte As Byte, ByVal hiByte As Byte) As Integer
MakeInt = ((hiByte * &H100) + LoByte)
End Function
Public Function MakeLong(ByVal LoWord As Integer, ByVal HiWord As Integer) As Long
MakeLong = ((HiWord * &H10000) + LoWord)
End Function

About this post

Posted: 2002-06-01
By: ArchiveBot
Viewed: 295 times


Visual Basic 6


No attachments for this post

Loading Comments ...


No comments have been added for this post.

You must be logged in to make a comment.