Delphi to C#
sizeof(longint) и Int32.MaxValue? sizeof же в делфи возвращает размер используемой памяти под переменную? Просто Int32.MaxValue — это два миллиарда с копейками.
Попробуйте использовать стандартый класс System.IO.MemoryMappedFiles.MemoryMappedFile, и просто писать this.Handle в BinaryWriter из примера. 

Значение WM_COPYDATA в коде нигде не используется, кстати.