struct _GWin32InputStreamPrivate {
HANDLE handle;
gboolean close_handle;
- gint fd;
};
static void g_win32_input_stream_set_property (GObject *object,
win32_stream->priv->handle = NULL;
win32_stream->priv->close_handle = TRUE;
- win32_stream->priv->fd = -1;
}
/**
if (!win32_stream->priv->close_handle)
return TRUE;
- if (win32_stream->priv->fd != -1)
+ res = CloseHandle (win32_stream->priv->handle);
+ if (!res)
{
- int errsv = errno;
- if (close (win32_stream->priv->fd) < 0)
- {
- g_set_error_literal (error, G_IO_ERROR,
- g_io_error_from_errno (errsv),
- g_strerror (errsv));
- return FALSE;
- }
- }
- else
- {
- res = CloseHandle (win32_stream->priv->handle);
- if (!res)
- {
- int errsv = GetLastError ();
- gchar *emsg = g_win32_error_message (errsv);
-
- g_set_error (error, G_IO_ERROR,
- g_io_error_from_win32_error (errsv),
- _("Error closing handle: %s"),
- emsg);
- g_free (emsg);
- return FALSE;
- }
+ int errsv = GetLastError ();
+ gchar *emsg = g_win32_error_message (errsv);
+
+ g_set_error (error, G_IO_ERROR,
+ g_io_error_from_win32_error (errsv),
+ _("Error closing handle: %s"),
+ emsg);
+ g_free (emsg);
+ return FALSE;
}
return TRUE;
}
-
-GInputStream *
-g_win32_input_stream_new_from_fd (gint fd,
- gboolean close_fd)
-{
- GWin32InputStream *win32_stream;
-
- win32_stream = G_WIN32_INPUT_STREAM (g_win32_input_stream_new ((HANDLE) _get_osfhandle (fd), close_fd));
- win32_stream->priv->fd = fd;
-
- return (GInputStream*)win32_stream;
-}