20 #ifndef INVALID_HANDLE_VALUE
21 #define INVALID_HANDLE_VALUE (0xFFFFFFFF)
24 #ifndef INVALID_SET_FILE_POINTER
25 #define INVALID_SET_FILE_POINTER ((DWORD)-1)
30 #if defined(WINAPI_FAMILY_PARTITION) && (!(defined(IOWIN32_USING_WINRT_API)))
31 #if WINAPI_FAMILY_ONE_PARTITION(WINAPI_FAMILY, WINAPI_PARTITION_APP)
32 #define IOWIN32_USING_WINRT_API 1
52 DWORD* lpdwDesiredAccess,
53 DWORD* lpdwCreationDisposition,
55 DWORD* lpdwFlagsAndAttributes)
57 *lpdwDesiredAccess = *lpdwShareMode = *lpdwFlagsAndAttributes = *lpdwCreationDisposition = 0;
61 *lpdwDesiredAccess = GENERIC_READ;
62 *lpdwCreationDisposition = OPEN_EXISTING;
63 *lpdwShareMode = FILE_SHARE_READ;
67 *lpdwDesiredAccess = GENERIC_WRITE | GENERIC_READ;
68 *lpdwCreationDisposition = OPEN_EXISTING;
72 *lpdwDesiredAccess = GENERIC_WRITE | GENERIC_READ;
73 *lpdwCreationDisposition = CREATE_ALWAYS;
98 const char* mode_fopen = NULL;
99 DWORD dwDesiredAccess,dwCreationDisposition,dwShareMode,dwFlagsAndAttributes ;
104 #ifdef IOWIN32_USING_WINRT_API
106 if ((
filename!=NULL) && (dwDesiredAccess != 0))
107 hFile = CreateFile2((LPCTSTR)
filename, dwDesiredAccess, dwShareMode, dwCreationDisposition, NULL);
109 if ((
filename!=NULL) && (dwDesiredAccess != 0))
111 WCHAR filenameW[FILENAME_MAX + 0x200 + 1];
112 MultiByteToWideChar(CP_ACP,0,(
const char*)
filename,-1,filenameW,FILENAME_MAX + 0x200);
113 hFile = CreateFile2(filenameW, dwDesiredAccess, dwShareMode, dwCreationDisposition, NULL);
117 if ((
filename!=NULL) && (dwDesiredAccess != 0))
118 hFile = CreateFile((LPCTSTR)
filename, dwDesiredAccess, dwShareMode, NULL, dwCreationDisposition, dwFlagsAndAttributes, NULL);
127 const char* mode_fopen = NULL;
128 DWORD dwDesiredAccess,dwCreationDisposition,dwShareMode,dwFlagsAndAttributes ;
133 #ifdef IOWIN32_USING_WINRT_API
134 if ((
filename!=NULL) && (dwDesiredAccess != 0))
136 WCHAR filenameW[FILENAME_MAX + 0x200 + 1];
137 MultiByteToWideChar(CP_ACP,0,(
const char*)
filename,-1,filenameW,FILENAME_MAX + 0x200);
138 hFile = CreateFile2(filenameW, dwDesiredAccess, dwShareMode, dwCreationDisposition, NULL);
141 if ((
filename!=NULL) && (dwDesiredAccess != 0))
142 hFile = CreateFileA((LPCSTR)
filename, dwDesiredAccess, dwShareMode, NULL, dwCreationDisposition, dwFlagsAndAttributes, NULL);
151 const char* mode_fopen = NULL;
152 DWORD dwDesiredAccess,dwCreationDisposition,dwShareMode,dwFlagsAndAttributes ;
157 #ifdef IOWIN32_USING_WINRT_API
158 if ((
filename!=NULL) && (dwDesiredAccess != 0))
159 hFile = CreateFile2((LPCWSTR)
filename, dwDesiredAccess, dwShareMode, dwCreationDisposition,NULL);
161 if ((
filename!=NULL) && (dwDesiredAccess != 0))
162 hFile = CreateFileW((LPCWSTR)
filename, dwDesiredAccess, dwShareMode, NULL, dwCreationDisposition, dwFlagsAndAttributes, NULL);
171 const char* mode_fopen = NULL;
172 DWORD dwDesiredAccess,dwCreationDisposition,dwShareMode,dwFlagsAndAttributes ;
177 #ifdef IOWIN32_USING_WINRT_API
179 if ((
filename!=NULL) && (dwDesiredAccess != 0))
180 hFile = CreateFile2((LPCTSTR)
filename, dwDesiredAccess, dwShareMode, dwCreationDisposition, NULL);
182 if ((
filename!=NULL) && (dwDesiredAccess != 0))
184 WCHAR filenameW[FILENAME_MAX + 0x200 + 1];
185 MultiByteToWideChar(CP_ACP,0,(
const char*)
filename,-1,filenameW,FILENAME_MAX + 0x200);
186 hFile = CreateFile2(filenameW, dwDesiredAccess, dwShareMode, dwCreationDisposition, NULL);
190 if ((
filename!=NULL) && (dwDesiredAccess != 0))
191 hFile = CreateFile((LPCTSTR)
filename, dwDesiredAccess, dwShareMode, NULL, dwCreationDisposition, dwFlagsAndAttributes, NULL);
209 DWORD dwErr = GetLastError();
210 if (dwErr == ERROR_HANDLE_EOF)
231 DWORD dwErr = GetLastError();
232 if (dwErr == ERROR_HANDLE_EOF)
243 #ifdef IOWIN32_USING_WINRT_API
244 return SetFilePointerEx(hFile,
pos, newPos, dwMoveMethod);
246 LONG lHigh =
pos.HighPart;
247 DWORD dwNewPos = SetFilePointer(hFile,
pos.LowPart, &lHigh, dwMoveMethod);
249 if (dwNewPos == 0xFFFFFFFF)
250 if (GetLastError() != NO_ERROR)
252 if ((newPos != NULL) && (fOk))
254 newPos->LowPart = dwNewPos;
255 newPos->HighPart = lHigh;
274 DWORD dwErr = GetLastError();
298 DWORD dwErr = GetLastError();
311 DWORD dwMoveMethod=0xFFFFFFFF;
320 dwMoveMethod = FILE_CURRENT;
323 dwMoveMethod = FILE_END;
326 dwMoveMethod = FILE_BEGIN;
337 DWORD dwErr = GetLastError();
349 DWORD dwMoveMethod=0xFFFFFFFF;
359 dwMoveMethod = FILE_CURRENT;
362 dwMoveMethod = FILE_END;
365 dwMoveMethod = FILE_BEGIN;
376 DWORD dwErr = GetLastError();
423 pzlib_filefunc_def->
opaque = NULL;
435 pzlib_filefunc_def->
opaque = NULL;
448 pzlib_filefunc_def->
opaque = NULL;
461 pzlib_filefunc_def->
opaque = NULL;