/* GIO - GLib Input, Output and Streaming Library
- *
- * Copyright (C) 2006-2007 Red Hat, Inc.
+ *
+ * Copyright (C) 2006-2007 Red Hat, Inc.
* Copyright (C) 2008 Novell, Inc.
*
* This library is free software; you can redistribute it and/or
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General
- * Public License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place, Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Public License along with this library; if not, see <http://www.gnu.org/licenses/>.
*
* Author: Alexander Larsson <alexl@redhat.com>
* Author: Tor Lillqvist <tml@novell.com>
#define __G_WINHTTP_VFS_H__
#include <gio/giotypes.h>
+#include <gio/gvfs.h>
-#include "gvfs.h"
-
-#define _WIN32_WINNT 0x0500
#include <windows.h>
#include "winhttp.h"
#define G_WINHTTP_VFS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), G_TYPE_WINHTTP_VFS, GWinHttpVfsClass))
typedef struct _GWinHttpVfs GWinHttpVfs;
+typedef struct _GWinHttpDllFuncs GWinHttpDllFuncs;
typedef struct _GWinHttpVfsClass GWinHttpVfsClass;
struct _GWinHttpVfs
HINTERNET session;
};
-struct _GWinHttpVfsClass
+struct _GWinHttpDllFuncs
{
- GVfsClass parent_class;
-
- /* As there is no import library for winhttp.dll in mingw, we must
- * look up the functions we need dynamically. Store the pointers
- * here.
- */
BOOL (WINAPI *pWinHttpCloseHandle) (HINTERNET);
BOOL (WINAPI *pWinHttpCrackUrl) (LPCWSTR,DWORD,DWORD,LPURL_COMPONENTS);
HINTERNET (WINAPI *pWinHttpConnect) (HINTERNET,LPCWSTR,INTERNET_PORT,DWORD);
BOOL (WINAPI *pWinHttpWriteData) (HINTERNET,LPCVOID,DWORD,LPDWORD);
};
+struct _GWinHttpVfsClass
+{
+ GVfsClass parent_class;
+
+ /* As there is no import library for winhttp.dll in mingw, and
+ * winhttp.dll isn't present on Windows 2000 anyway, we must look up
+ * the functions we need dynamically. Store the pointers here.
+ */
+ GWinHttpDllFuncs *funcs;
+};
+
GType _g_winhttp_vfs_get_type (void) G_GNUC_CONST;
char *_g_winhttp_error_message (DWORD error_code);
+void _g_winhttp_set_error (GError **error,
+ DWORD error_code,
+ const char *what);
+
+gboolean _g_winhttp_response (GWinHttpVfs *vfs,
+ HINTERNET request,
+ GError **error,
+ const char *what);
+
+gboolean _g_winhttp_query_header (GWinHttpVfs *vfs,
+ HINTERNET request,
+ const char *request_description,
+ DWORD which_header,
+ wchar_t **header,
+ GError **error);
+
G_END_DECLS
#endif /* __G_WINHTTP_VFS_H__ */