VBA/VB6 でWindows 関数ReadProcessMemorylpBuffer
を使用していますが、渡すメカニズムをByValに変更しても、関数がこの引数を介して渡された元のオブジェクトの値を変更する理由がわかりません。ドキュメントでは、この引数は参照によって渡される出力として指定されています。引き渡しメカニズムを値渡しに変更することで、元のインスタンスが変更されないようにするべきではありませんか? なぜそうしないのですか?
Declare Function ReadProcessMemory Lib "kernel32" (ByVal hProcess As Long, ByVal lpBaseAddress As Any _
,byVal lpBuffer As Any, ByVal nSize As Long, lpNumberOfBytesWritten As Long) As Long