Browse DevX
Sign up for e-mail newsletters from DevX

Tip of the Day
Language: VB4/32,VB5,VB6
Expertise: Intermediate
Jun 17, 2000



Building the Right Environment to Support AI, Machine Learning and Deep Learning

Poke - Write a value of any type into memory

' write a value of any type in memory
' The value is written in the format of the value passed
' as the second argument, but you can overwrite it by passing
' an explicit data type in the third argument (this is the only
' way to store a value as a 16-byte Variant)
' This routine doesn't support strings and objects

Sub Poke(ByVal address As Long, value As Variant, Optional ByVal ValueType As _
    VbVarType = -1)
    ' if a data type wasn't provided, use VarType()
    If ValueType = -1 Then ValueType = VarType(value)
    Select Case ValueType
        Case vbByte
            CopyMemory ByVal address, CByte(value), 1
        Case vbInteger
            CopyMemory ByVal address, CInt(value), 2
        Case vbBoolean
            CopyMemory ByVal address, CBool(value), 2
        Case vbLong
            CopyMemory ByVal address, CLng(value), 4
        Case vbSingle
            CopyMemory ByVal address, CSng(value), 4
        Case vbDouble
            CopyMemory ByVal address, CDbl(value), 8
        Case vbCurrency
            CopyMemory ByVal address, CCur(value), 8
        Case vbDate
            CopyMemory ByVal address, CDate(value), 8
        Case vbVariant
            CopyMemory ByVal address, value, 16
        Case Else
            Err.Raise 1001, , "Unsupported data type"
    End Select

End Sub
Francesco Balena
Comment and Contribute






(Maximum characters: 1200). You have 1200 characters left.



Thanks for your registration, follow us on our social networks to keep up-to-date