private static extern IntPtr ManagedOutputStream_Create(
     WriteDelegate write,
     TellDelegate tell,
     FlushDelegate flush,
     CloseDelegate close,
     ClosedDelegate closed,
     out IntPtr outputStream);
 public void Initialize(ClosedDelegate closedDelegate, MapDrawingOption ShowDMS)
 {
     this.closedDelegate   = closedDelegate;
     viewerControl.ShowDMS = ShowDMS;
     mapPos.setPosition(new ContinuousCoordinateSystem().GetDefaultView());
     Closed += SourceMapOverviewWindow_Closed;
 }
 private static extern IntPtr ManagedRandomAccessFile_Create(
     ReadDelegate read,
     CloseDelegate close,
     GetSizeDelegate getSize,
     TellDelegate tell,
     SeekDelegate seek,
     ClosedDelegate closed,
     out IntPtr randomAccessFile);
 private static ParquetHandle Create(
     WriteDelegate write,
     TellDelegate tell,
     FlushDelegate flush,
     CloseDelegate close,
     ClosedDelegate closed)
 {
     ExceptionInfo.Check(ManagedOutputStream_Create(write, tell, flush, close, closed, out var handle));
     return(new ParquetHandle(handle, OutputStream_Free));
 }
 private static ParquetHandle Create(
     ReadDelegate read,
     CloseDelegate close,
     GetSizeDelegate getSize,
     TellDelegate tell,
     SeekDelegate seek,
     ClosedDelegate closed)
 {
     ExceptionInfo.Check(ManagedRandomAccessFile_Create(read, close, getSize, tell, seek, closed, out var handle));
     return(new ParquetHandle(handle, RandomAccessFile_Free));
 }
 public void OnClosed(IDataContext context)
 {
     ClosedDelegate?.Invoke(context);
 }