Win32 zip_source implementation using function pointers instead of #include to
abstract character types
diff --git a/lib/zip.h b/lib/zip.h
index 25afa98..b2743bb 100644
--- a/lib/zip.h
+++ b/lib/zip.h
@@ -398,6 +398,16 @@
 ZIP_EXTERN int zip_source_stat(zip_source_t *, zip_stat_t *);
 ZIP_EXTERN zip_int64_t zip_source_tell(zip_source_t *);
 ZIP_EXTERN zip_int64_t zip_source_tell_write(zip_source_t *);
+#ifdef _WIN32
+ZIP_EXTERN zip_source_t *zip_source_win32a(zip_t *, const char *, zip_uint64_t, zip_int64_t);
+ZIP_EXTERN zip_source_t *zip_source_win32a_create(const char *, zip_uint64_t, zip_int64_t, zip_error_t *);
+ZIP_EXTERN zip_source_t *zip_source_win32file(zip_t *, void *, zip_uint64_t, zip_int64_t);
+ZIP_EXTERN zip_source_t *zip_source_win32file_create(void *, zip_uint64_t, zip_int64_t, zip_error_t *);
+ZIP_EXTERN zip_source_t *zip_source_win32utf8(zip_t *, const char *, zip_uint64_t, zip_int64_t);
+ZIP_EXTERN zip_source_t *zip_source_win32utf8_create(const char *, zip_uint64_t, zip_int64_t, zip_error_t *);
+ZIP_EXTERN zip_source_t *zip_source_win32w(zip_t *, const wchar_t *, zip_uint64_t, zip_int64_t);
+ZIP_EXTERN zip_source_t *zip_source_win32w_create(const wchar_t *, zip_uint64_t, zip_int64_t, zip_error_t *);
+#endif
 ZIP_EXTERN zip_int64_t zip_source_write(zip_source_t *, const void *, zip_uint64_t);
 ZIP_EXTERN zip_source_t *zip_source_zip(zip_t *, zip_t *, zip_uint64_t, zip_flags_t, zip_uint64_t, zip_int64_t);
 ZIP_EXTERN int zip_stat(zip_t *, const char *, zip_flags_t, zip_stat_t *);