diff --git a/include/sqltypes.h b/include/sqltypes.h index 4f3f8fe9f1c..0923f6b3626 100644 --- a/include/sqltypes.h +++ b/include/sqltypes.h @@ -28,8 +28,10 @@ extern "C" { #endif typedef unsigned char SQLCHAR; -#ifdef WINE_UNICODE_NATIVE +#if defined(WINE_UNICODE_NATIVE) typedef wchar_t SQLWCHAR; +#elif defined(WINE_UNICODE_CHAR16) +typedef char16_t SQLWCHAR; #else typedef unsigned short SQLWCHAR; #endif diff --git a/include/tchar.h b/include/tchar.h index 5234a70bd9d..d5e4983756b 100644 --- a/include/tchar.h +++ b/include/tchar.h @@ -244,8 +244,10 @@ typedef unsigned short wctype_t; #endif #ifndef __TCHAR_DEFINED -#ifdef WINE_UNICODE_NATIVE +#if defined(WINE_UNICODE_NATIVE) typedef wchar_t _TCHAR; +#elif defined(WINE_UNICODE_CHAR16) +typedef char16_t _TCHAR; #else typedef unsigned short _TCHAR; #endif diff --git a/include/winnt.h b/include/winnt.h index adc5d3d686c..adb7ef56690 100644 --- a/include/winnt.h +++ b/include/winnt.h @@ -463,11 +463,14 @@ typedef int LONG, *PLONG; #endif /* Some systems might have wchar_t, but we really need 16 bit characters */ -#ifdef WINE_UNICODE_NATIVE -typedef wchar_t WCHAR, *PWCHAR; +#if defined(WINE_UNICODE_NATIVE) +typedef wchar_t WCHAR; +#elif defined(WINE_UNICODE_CHAR16) +typedef char16_t WCHAR; #else -typedef unsigned short WCHAR, *PWCHAR; +typedef unsigned short WCHAR; #endif +typedef WCHAR *PWCHAR; typedef ULONG UCSCHAR; #define MIN_UCSCHAR (0) diff --git a/include/winnt.rh b/include/winnt.rh index 59791bc996b..786a38f326f 100644 --- a/include/winnt.rh +++ b/include/winnt.rh @@ -24,10 +24,12 @@ * macro which only exists in the user's code. */ #ifndef WINE_NO_UNICODE_MACROS -# ifdef UNICODE +# ifndef UNICODE +# define __TEXT(string) string +# elif defined(WINE_UNICODE_NATIVE) # define __TEXT(string) L##string # else -# define __TEXT(string) string +# define __TEXT(string) u##string # endif # define TEXT(string) __TEXT(string) #endif