Sub Poke(ByVal address As Long, value As Variant, Optional ByVal ValueType As _ VbVarType = -1) 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 |