public GSMONO() { m_worker = null; gsInstance = IntPtr.Zero; dispInstance = IntPtr.Zero; /* Avoiding delegate GC during the life of this object */ raise_stdin = stdin_callback; raise_stdout = stdout_callback; raise_stderr = stderr_callback; m_display_callback.major_vers = 1; m_display_callback.minor_vers = 0; m_display_callback.display_open = display_open; m_display_callback.display_preclose = display_preclose; m_display_callback.display_close = display_close; m_display_callback.display_presize = display_presize; m_display_callback.display_size = display_size; m_display_callback.display_sync = display_sync; m_display_callback.display_page = display_page; m_display_callback.display_update = display_update; //m_display_callback.display_memalloc = display_memalloc; //m_display_callback.display_memfree = display_memfree; m_display_callback.display_memalloc = null; m_display_callback.display_memfree = null; /* The size the structure when marshalled to unmanaged code */ m_display_callback.sizeof_display_callback = Marshal.SizeOf(typeof(display_callback_t)); ptr_display_struct = Marshal.AllocHGlobal(m_display_callback.sizeof_display_callback); Marshal.StructureToPtr(m_display_callback, ptr_display_struct, false); m_worker_busy = false; }
public static extern int gsapi_set_stdio(IntPtr instance, gs_stdio_handler stdin, gs_stdio_handler stdout, gs_stdio_handler stderr);
public static extern int gsapi_set_stdio_with_handle(IntPtr instance, gs_stdio_handler stdin, gs_stdio_handler stdout, gs_stdio_handler stderr, IntPtr caller_handle);