include: Make corecrt_wio.h compatible with ucrt.

Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
Jacek Caban 2020-02-26 15:16:41 +01:00 committed by Alexandre Julliard
parent 7b2517df2f
commit b4c82b263f
1 changed files with 74 additions and 18 deletions

View File

@ -12,24 +12,76 @@
typedef __msvcrt_ulong _fsize_t;
struct _wfinddata_t {
unsigned attrib;
time_t time_create;
time_t time_access;
time_t time_write;
_fsize_t size;
wchar_t name[260];
#if defined(_USE_32BIT_TIME_T)
# define _wfinddata_t _wfinddata32_t
# define _wfinddatai64_t _wfinddata32i64_t
#else
# define _wfinddata_t _wfinddata64i32_t
# define _wfinddatai64_t _wfinddata64_t
#endif
struct _wfinddata32_t {
unsigned attrib;
__time32_t time_create;
__time32_t time_access;
__time32_t time_write;
_fsize_t size;
wchar_t name[260];
};
struct _wfinddatai64_t {
unsigned attrib;
time_t time_create;
time_t time_access;
time_t time_write;
__int64 DECLSPEC_ALIGN(8) size;
wchar_t name[260];
struct _wfinddata32i64_t {
unsigned attrib;
__time32_t time_create;
__time32_t time_access;
__time32_t time_write;
__int64 DECLSPEC_ALIGN(8) size;
wchar_t name[260];
};
struct _wfinddata64i32_t {
unsigned attrib;
__time64_t time_create;
__time64_t time_access;
__time64_t time_write;
_fsize_t size;
wchar_t name[260];
};
struct _wfinddata64_t {
unsigned attrib;
__time64_t time_create;
__time64_t time_access;
__time64_t time_write;
__int64 DECLSPEC_ALIGN(8) size;
wchar_t name[260];
};
#ifdef _UCRT
# ifdef _USE_32BIT_TIME_T
# define _wfindfirst _wfindfirst32
# define _wfindfirsti64 _wfindfirst32i64
# define _wfindnext _wfindnext32
# define _wfindnexti64 _wfindnext32i64
# else
# define _wfindfirst _wfindfirst64i32
# define _wfindfirsti64 _wfindfirst64
# define _wfindnext _wfindnext64i32
# define _wfindnexti64 _wfindnext64
# endif
#else /* _UCRT */
# ifdef _USE_32BIT_TIME_T
# define _wfindfirst32 _wfindfirst
# define _wfindfirst32i64 _wfindfirsti64
# define _wfindnext32 _wfindnext
# define _wfindnext32i64 _wfindnexti64
# else
# define _wfindfirst64i32 _wfindfirst
# define _wfindfirst64 _wfindfirsti64
# define _wfindnext64i32 _wfindnext
# define _wfindnext64 _wfindnexti64
# endif
#endif
#ifdef __cplusplus
extern "C" {
#endif
@ -37,10 +89,14 @@ extern "C" {
int __cdecl _waccess(const wchar_t*,int);
int __cdecl _wchmod(const wchar_t*,int);
int __cdecl _wcreat(const wchar_t*,int);
intptr_t __cdecl _wfindfirst(const wchar_t*,struct _wfinddata_t*);
intptr_t __cdecl _wfindfirsti64(const wchar_t*, struct _wfinddatai64_t*);
int __cdecl _wfindnext(intptr_t,struct _wfinddata_t*);
int __cdecl _wfindnexti64(intptr_t, struct _wfinddatai64_t*);
intptr_t __cdecl _wfindfirst32(const wchar_t*,struct _wfinddata32_t*);
intptr_t __cdecl _wfindfirst32i64(const wchar_t*, struct _wfinddata32i64_t*);
intptr_t __cdecl _wfindfirst64(const wchar_t*,struct _wfinddata64_t*);
intptr_t __cdecl _wfindfirst64i32(const wchar_t*, struct _wfinddata64i32_t*);
int __cdecl _wfindnext32(intptr_t,struct _wfinddata32_t*);
int __cdecl _wfindnext32i64(intptr_t,struct _wfinddata32i64_t*);
int __cdecl _wfindnext64(intptr_t,struct _wfinddata64_t*);
int __cdecl _wfindnext64i32(intptr_t,struct _wfinddata64i32_t*);
wchar_t* __cdecl _wmktemp(wchar_t*);
int WINAPIV _wopen(const wchar_t*,int,...);
int __cdecl _wrename(const wchar_t*,const wchar_t*);