public static long GetPositionBytes(IntPtr hWaveOut, object lockObject) { lock (lockObject) { MmTime mmTime = new MmTime(); mmTime.wType = 4U; MmException.Try(MyInterop.waveOutGetPosition(hWaveOut, ref mmTime, Marshal.SizeOf((object)mmTime)), "waveOutGetPosition"); if (mmTime.wType != 4U) { throw new Exception(string.Format("waveOutGetPosition: wType -> Expected {0}, Received {1}", (object)4, (object)mmTime.wType)); } return((long)mmTime.cb); } }
public static extern MmResult waveOutGetPosition( IntPtr hWaveOut, ref MmTime mmTime, int uSize);
public static extern MmResult waveInGetPosition( IntPtr hWaveIn, out MmTime mmTime, int uSize);