public void SetLength(int newLength)
{
if (newLength < 0 || newLength > Data.Length)
throw new ArgumentOutOfRangeException("newLength");
if (newLength != length)
{
length = newLength;
Win32.MidiHeader header = (Win32.MidiHeader)Marshal.PtrToStructure(pHeader, typeof(Win32.MidiHeader));
header.dwBufferLength = (uint)length;
Marshal.StructureToPtr(header, pHeader, true);
}
}