In VB.6 you can use the generic copy memory routine such as Public Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" _ (ByRef Destination As Any, ByRef Source As Any, ByVal numbytes As Long) VB.Net rejects the Any and won't work. You have to get more specific, such as Public Declare Sub CM_Integer_Byte Lib "Kernel32" Alias "RtlMoveMemory" _ (ByRef Destination As Integer, ByRef Source As Byte, ByVal Length AsInteger) Public Declare Sub CM_Short_Byte Lib "Kernel32" Alias "RtlMoveMemory" _ (ByRef Destination As Short, ByRef Source As Byte, ByVal Length As Integer) I have a bunch of these in my applications and they work well. RCarey RCarey