public unsafe override void CopyPixels(Int32Rect?sourceRect, int stride, IntPtr buffer, int bufferLength) { Int32Rect rect; IntPtr rectPtr; if (sourceRect.HasValue) { rect = sourceRect.Value; rectPtr = new IntPtr(&rect); } else { rectPtr = IntPtr.Zero; } _frame.CopyPixels(rectPtr, (uint)stride, buffer, (uint)bufferLength); }