Search Tools Links Login

HiByte,HiWord,LoByte,LoWord, MakeInt and MakeLong


Visual Basic 6, or VB Classic

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

Code

Public Function hiByte(ByVal w As Integer) As Byte
  If w And &H8000 Then
   hiByte = &H80 Or ((w And &H7FFF) &HFF)
  Else
   hiByte = w 256
  End If
End Function
Public Function HiWord(dw As Long) As Integer
If dw And &H80000000 Then
   HiWord = (dw 65535) - 1
Else
  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&)
  Else
   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: 305 times

Categories

Visual Basic 6

Attachments

No attachments for this post


Loading Comments ...

Comments

No comments have been added for this post.

You must be logged in to make a comment.