gnetworking.h.in: move "#undef interface"
[platform/upstream/glib.git] / gio / win32 / gwinhttpvfs.h
index a7597a4..e04c735 100644 (file)
@@ -1,6 +1,6 @@
 /* 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
@@ -14,9 +14,7 @@
  * 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"
@@ -44,6 +40,7 @@ G_BEGIN_DECLS
 #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
@@ -54,14 +51,8 @@ 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);
@@ -76,6 +67,17 @@ struct _GWinHttpVfsClass
   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;
 
@@ -83,6 +85,22 @@ GVfs *_g_winhttp_vfs_new (void);
 
 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__ */