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 objectsSub 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 SelectEnd Sub

Share the Post:
Share on facebook
Share on twitter
Share on linkedin

Overview

Recent Articles: