Date: 6/17/2000
Versions: VB4/32 VB5 VB6 Level: Intermediate
Author: The VB2TheMax Team
Versions: VB4/32 VB5 VB6 Level: Intermediate
Author: The VB2TheMax Team
Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (dest As _ Any, source As Any, ByVal bytes As Long) Private Declare Function lstrlenA Lib "kernel32" (ByVal lpString As Long) As _ Long Private Declare Function lstrlenW Lib "kernel32" (ByVal lpString As Long) As _ Long ' retrieve a string at a given address ' if LENGTH < 0 the string is considered to be null-terminated ' and the function determines its length Function StringFromAddr(ByVal address As Long, ByVal length As Long, _ Optional ByVal isUnicode As Boolean) As String ' determine the length, if necessary If length < 0 Then If isUnicode Then length = lstrlenW(address) Else length = lstrlenA(address) End If End If ' copy the characters StringFromAddr = Space$(length) If isUnicode Then CopyMemory ByVal StrPtr(StringFromAddr), ByVal address, length * 2 Else CopyMemory ByVal StringFromAddr, ByVal address, length End If End Function