diff --git a/_service b/_service
index 9159d91..d4eb261 100644
--- a/_service
+++ b/_service
@@ -3,7 +3,7 @@
@PARENT_TAG@
v(.*)
https://github.com/wine-staging/wine-staging.git
- refs/tags/v4.9
+ refs/tags/v4.10
v*.*
git
diff --git a/wine-4.10.tar.xz b/wine-4.10.tar.xz
new file mode 100644
index 0000000..4a48836
--- /dev/null
+++ b/wine-4.10.tar.xz
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:5add8161d8b73a413b011285951bed28602ebb0b5b257f35d40bc782ea1c2d10
+size 22109948
diff --git a/wine-4.10.tar.xz.sign b/wine-4.10.tar.xz.sign
new file mode 100644
index 0000000..86ab6bd
--- /dev/null
+++ b/wine-4.10.tar.xz.sign
@@ -0,0 +1,16 @@
+-----BEGIN PGP SIGNATURE-----
+
+iQIzBAABCgAdFiEE2iNXmnTUrZr50/lFzvrI6q8XUZ0FAlz+pMAACgkQzvrI6q8X
+UZ2Mng/+Jc1OOAFy1F5bx0jL7kTpLKk6N7ZNaMxiLRyAdQerWMb9SwBCChqCQSYJ
+TpS8qhbImsp45Rbs9n7DK+9Edwyp6/xzLLH/kZU3tXrM6zlw/CFeFrYd6ZMofutx
+v3alQFSb8lADc++leAE8YqxeFYNz7VDCjXKGSriyz8IyGEd2bh+egRJZWIecwRc0
+4EF2dqtQH2N/dqNYOqYgfBFmweyCBkSnwiueDuW5YTy8dph6pKYVt4tTOugzC8rI
+DYFLMCir+bGG9mCSZgUKsXAVzUzIPY14chwpCCzrwt+msF83SMQyRhJX/3Hff5VM
+UcR/LJBiR8KBtj0ilR3wkSwUqjfN7B/h4Wnn2/mTunFpFoOKFzzX3c+6PTEDN1Fq
+eKuLP+BFH5g4oWSRKpXHqCEovEq2Ez0gQHglRVv6peTBh3V5fRlVEfuQ8Tik1mmJ
+J0mR9v0e/kKX3BMpbHEEYBVv1ccfUEu6KiQmrW8OsKi46GXwIYT2VrHE0UkfheYs
+u19ixgLBPc3ZQDtQSA2f2s4NjGQ1oqYcAUZ37UId1iVQ+evmFZyYZPdP++Du9KOl
+hAiqcdddruARRYf/YVRPY6rX79Kgto1XQQcqRnv8xB0dB1+7qWcgrDuVPIxxKITD
+GyEMEsYtj/Xd3KqJJ6OedKAPkujAK/BuMfKofIcJYGj8A60a1gI=
+=Rrc4
+-----END PGP SIGNATURE-----
diff --git a/wine-4.9.tar.xz b/wine-4.9.tar.xz
deleted file mode 100644
index 870ecd6..0000000
--- a/wine-4.9.tar.xz
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:91848e22fff3cb17db7fe7d727d714d21c5d4229dd460b5d1506753021fc799b
-size 22077528
diff --git a/wine-4.9.tar.xz.sign b/wine-4.9.tar.xz.sign
deleted file mode 100644
index b755bdd..0000000
--- a/wine-4.9.tar.xz.sign
+++ /dev/null
@@ -1,16 +0,0 @@
------BEGIN PGP SIGNATURE-----
-
-iQIzBAABCgAdFiEE2iNXmnTUrZr50/lFzvrI6q8XUZ0FAlzoWA8ACgkQzvrI6q8X
-UZ0Ugg//a5cdjVltAPcGjCgDZKPdw2omh5SUGh9VDIckL3eTmfAcLH25VZVZDqsG
-NuZLJDUGE6nw+NxM19SsmpAHOXhmmDuMWBLm/3dSXtY843Xr90yFj0Wsew8AUp0W
-fbEL0EadMOnEJ6mFSHTu2Y8GnEFOcvlio+ti6DrIsmktHToJQLCktQ1fEoJTyZAJ
-HGTf82n/ArxN3MNZaK31UQa3cYiC7kudmauOGQONcsV6SqlB+wrqExtztf6Sebp1
-uKHixgVPbefvGEbYqB6HwMVZzIVKAWXzdAe9qLKyYJmn7aMyWXMl3+T9Jwy91Nqn
-wk5XFV2BmPDnfCU4FLTdSkDrZbo6pU3ceqOePzTixFv5ppI+JVwA2JW4CdDTTDCJ
-7aVVfeI1RjPqtMsShO/VC/nMganZDjrag8SOamd0ZrfsTIOUqP+GrJzNAEvbI8Xg
-CGWjzwjlZqkXHcYnoLplOlC0Hz+yLynRE8aYgQXkfwe4IVyZ0GnPDRsENXiKuWfR
-VK9spAR08GWGyUYr8djLykbZm9e5NqdKDoBLOwTT/5Up2ZZkfTjrq4hBZtWx1xdw
-LH1EuelN4opBQqJOi8jME/ofSQDWf+LDxe8b2tiAFT0IBFJzBhMcOKWd2JkFc5ot
-LQkXzt23BuRaqaFJsbfiwpWjWO/AnYwcyP6F/tBwXGv3STTT46s=
-=Cc2J
------END PGP SIGNATURE-----
diff --git a/wine-staging-4.10.tar.xz b/wine-staging-4.10.tar.xz
new file mode 100644
index 0000000..bc38c22
--- /dev/null
+++ b/wine-staging-4.10.tar.xz
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:0a12c0890e94703e5dbdd8eaef9e10988fc597edfb886605f492baf98fe18641
+size 7455840
diff --git a/wine-staging-4.9.tar.xz b/wine-staging-4.9.tar.xz
deleted file mode 100644
index 8dfd79e..0000000
--- a/wine-staging-4.9.tar.xz
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:f3cab2e1f288f9529994b812d22bf9670245576ff31d0b6d3918ed8caf23cba4
-size 7455500
diff --git a/wine.changes b/wine.changes
index dac7b44..b8d9a51 100644
--- a/wine.changes
+++ b/wine.changes
@@ -1,3 +1,21 @@
+-------------------------------------------------------------------
+Thu Jun 13 07:49:12 UTC 2019 - Martin Liška
+
+- Add wine49-include-Avoid-compound-literals-for-WCHAR-strings.patch
+ backport from mainline.
+- Use gcc9.
+
+-------------------------------------------------------------------
+Tue Jun 11 05:56:26 UTC 2019 - Marcus Meissner
+
+- updated to 4.10 development release
+ - Many DLLs are built as PE files by default.
+ - More support for installing Plug and Play drivers.
+ - Clock synchronization in Media Foundation.
+ - Volume adjustment in audio drivers.
+ - Various bug fixes.
+- updated staging to 4.10
+
-------------------------------------------------------------------
Mon Jun 3 10:44:25 UTC 2019 - Adrian Schröter
diff --git a/wine.spec b/wine.spec
index 13330c4..1bf1d15 100644
--- a/wine.spec
+++ b/wine.spec
@@ -12,7 +12,7 @@
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
-# Please submit bugfixes or comments via http://bugs.opensuse.org/
+# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
@@ -29,8 +29,8 @@
%endif
# needs to be on top due to usage of %version macro below
-%define realver 4.9
-Version: 4.9
+%define realver 4.10
+Version: 4.10
Release: 0
%if "%{flavor}" != ""
@@ -131,6 +131,7 @@ Source7: baselibs.conf
# SUSE specific patches
# - currently none, but add them here
#Patch0: susepatches.patch
+Patch0: wine49-include-Avoid-compound-literals-for-WCHAR-strings.patch
Recommends: wine-gecko >= 2.47
# not packaged in distro...
Recommends: wine-mono
@@ -147,7 +148,7 @@ BuildRoot: %{_tmppath}/%{name}-%{version}-build
ExclusiveArch: %{ix86} x86_64 ppc %arm aarch64
%if %{staging}
# upstream patch target version
-%define staging_version 4.9
+%define staging_version 4.10
Source100: wine-staging-%{staging_version}.tar.xz
BuildRequires: gtk3-devel
BuildRequires: libOSMesa-devel
@@ -205,7 +206,7 @@ libraries.
%prep
%setup -q -n wine-%{realver}
-#%%patch0 -p1
+%patch0 -p1
#
cp %{S:3} .
#
@@ -233,9 +234,6 @@ export WIDL_TIME_OVERRIDE="0" # for reproducible builds.
export RPM_OPT_FLAGS=`echo $RPM_OPT_FLAGS|sed -e 's/-fomit-frame-pointer//'`
%endif
-if rpm -q gcc|grep gcc-9 ; then
- export CC=gcc-8
-fi
%ifarch aarch64
# ARM64 now requires clang
# https://source.winehq.org/git/wine.git/commit/8fb8cc03c3edb599dd98f369e14a08f899cbff95
diff --git a/wine49-include-Avoid-compound-literals-for-WCHAR-strings.patch b/wine49-include-Avoid-compound-literals-for-WCHAR-strings.patch
new file mode 100644
index 0000000..a1a25c5
--- /dev/null
+++ b/wine49-include-Avoid-compound-literals-for-WCHAR-strings.patch
@@ -0,0 +1,2400 @@
+From 9afc341c4f043240f0dc3de6351550b03d24b131 Mon Sep 17 00:00:00 2001
+From: Martin Liska
+Date: Mon, 10 Jun 2019 10:57:32 +0200
+Subject: [PATCH] include: Avoid compound literals for WCHAR strings.
+
+Starting from GCC 9, compound liferal's scope has changed:
+https://www.gnu.org/software/gcc/gcc-9/porting_to.html#complit
+
+Signed-off-by: Martin Liska
+Signed-off-by: Marcus Meissner
+Signed-off-by: Alexandre Julliard
+---
+ dlls/wldap32/winldap_private.h | 18 ++--
+ include/bcrypt.h | 157 ++++++++++++++++++++----------
+ include/commctrl.h | 131 ++++++-------------------
+ include/commdlg.h | 35 ++-----
+ include/d3dcompiler.h | 4 +-
+ include/ddeml.h | 13 +--
+ include/ddk/mountmgr.h | 5 +-
+ include/dpaddr.h | 38 +-------
+ include/lmaccess.h | 16 +---
+ include/msacm.h | 15 +--
+ include/ntsecapi.h | 6 +-
+ include/oledlg.h | 12 +--
+ include/prsht.h | 5 +-
+ include/richedit.h | 8 +-
+ include/schannel.h | 30 ++----
+ include/sddl.h | 14 +--
+ include/softpub.h | 62 ++----------
+ include/uxtheme.h | 7 +-
+ include/vsstyle.h | 141 ++++++---------------------
+ include/vssym32.h | 44 +++------
+ include/wincrypt.h | 170 +++++++--------------------------
+ include/winnls.h | 8 +-
+ include/winnt.h | 34 +------
+ include/winspool.h | 116 ++++++----------------
+ include/winsvc.h | 5 +-
+ include/wintrust.h | 5 +-
+ 26 files changed, 296 insertions(+), 803 deletions(-)
+
+diff --git a/dlls/wldap32/winldap_private.h b/dlls/wldap32/winldap_private.h
+index a19ceb1b35..74223029b7 100644
+--- a/dlls/wldap32/winldap_private.h
++++ b/dlls/wldap32/winldap_private.h
+@@ -189,16 +189,18 @@ typedef struct WLDAP32_berval
+ } LDAP_BERVAL, *PLDAP_BERVAL, BERVAL, *PBERVAL, WLDAP32_BerValue;
+
+ #define LDAP_PAGED_RESULT_OID_STRING "1.2.840.113556.1.4.319"
+-#define LDAP_PAGED_RESULT_OID_STRING_W (const WCHAR []){'1','.','2','.', \
+- '8','4','0','.','1','1','3','5','5','6','.','1','.','4','.','3','1','9',0}
+-
+ #define LDAP_SERVER_RESP_SORT_OID "1.2.840.113556.1.4.474"
+-#define LDAP_SERVER_RESP_SORT_OID_W (const WCHAR []){'1','.','2','.', \
+- '8','4','0','.','1','1','3','5','5','6','.','1','.','4','.','4','7','4',0}
+-
+ #define LDAP_CONTROL_VLVRESPONSE "2.16.840.1.113730.3.4.10"
+-#define LDAP_CONTROL_VLVRESPONSE_W (const WCHAR []){'2','.','1','6','.', \
+- '8','4','0','.','1','.','1','1','3','7','3','0','.','3','.','4','.','1','0',0}
++
++#if defined(_MSC_VER) || defined(__MINGW32__)
++#define LDAP_PAGED_RESULT_OID_STRING_W L"1.2.840.113556.1.4.319"
++#define LDAP_SERVER_RESP_SORT_OID_W L"1.2.840.113556.1.4.474"
++#define LDAP_CONTROL_VLVRESPONSE_W L"2.16.840.1.113730.3.4.10"
++#else
++static const WCHAR LDAP_PAGED_RESULT_OID_STRING_W[] = {'1','.','2','.','8','4','0','.','1','1','3','5','5','6','.','1','.','4','.','3','1','9',0};
++static const WCHAR LDAP_SERVER_RESP_SORT_OID_W[] = {'1','.','2','.','8','4','0','.','1','1','3','5','5','6','.','1','.','4','.','4','7','4',0};
++static const WCHAR LDAP_CONTROL_VLVRESPONSE_W[] = {'2','.','1','6','.','8','4','0','.','1','.','1','1','3','7','3','0','.','3','.','4','.','1','0',0};
++#endif
+
+ typedef struct ldapcontrolA
+ {
+diff --git a/include/bcrypt.h b/include/bcrypt.h
+index b1799d0a84..0151afdc36 100644
+--- a/include/bcrypt.h
++++ b/include/bcrypt.h
+@@ -40,58 +40,111 @@
+ typedef LONG NTSTATUS;
+ #endif
+
+-#define BCRYPT_ALGORITHM_NAME (const WCHAR []){'A','l','g','o','r','i','t','h','m','N','a','m','e',0}
+-#define BCRYPT_AUTH_TAG_LENGTH (const WCHAR []){'A','u','t','h','T','a','g','L','e','n','g','t','h',0}
+-#define BCRYPT_BLOCK_LENGTH (const WCHAR []){'B','l','o','c','k','L','e','n','g','t','h',0}
+-#define BCRYPT_BLOCK_SIZE_LIST (const WCHAR []){'B','l','o','c','k','S','i','z','e','L','i','s','t',0}
+-#define BCRYPT_CHAINING_MODE (const WCHAR []){'C','h','a','i','n','i','n','g','M','o','d','e',0}
+-#define BCRYPT_EFFECTIVE_KEY_LENGTH (const WCHAR []){'E','f','f','e','c','t','i','v','e','K','e','y','L','e','n','g','t','h',0}
+-#define BCRYPT_HASH_BLOCK_LENGTH (const WCHAR []){'H','a','s','h','B','l','o','c','k','L','e','n','g','t','h',0}
+-#define BCRYPT_HASH_LENGTH (const WCHAR []){'H','a','s','h','D','i','g','e','s','t','L','e','n','g','t','h',0}
+-#define BCRYPT_HASH_OID_LIST (const WCHAR []){'H','a','s','h','O','I','D','L','i','s','t',0}
+-#define BCRYPT_KEY_LENGTH (const WCHAR []){'K','e','y','L','e','n','g','t','h',0}
+-#define BCRYPT_KEY_LENGTHS (const WCHAR []){'K','e','y','L','e','n','g','t','h','s',0}
+-#define BCRYPT_KEY_OBJECT_LENGTH (const WCHAR []){'K','e','y','O','b','j','e','c','t','L','e','n','g','t','h',0}
+-#define BCRYPT_KEY_STRENGTH (const WCHAR []){'K','e','y','S','t','r','e','n','g','t','h',0}
+-#define BCRYPT_OBJECT_LENGTH (const WCHAR []){'O','b','j','e','c','t','L','e','n','g','t','h',0}
+-#define BCRYPT_PADDING_SCHEMES (const WCHAR []){'P','a','d','d','i','n','g','S','c','h','e','m','e','s',0}
+-#define BCRYPT_PROVIDER_HANDLE (const WCHAR []){'P','r','o','v','i','d','e','r','H','a','n','d','l','e',0}
+-#define BCRYPT_SIGNATURE_LENGTH (const WCHAR []){'S','i','g','n','a','t','u','r','e','L','e','n','g','t','h',0}
+-
+-#define BCRYPT_OPAQUE_KEY_BLOB (const WCHAR []){'O','p','a','q','u','e','K','e','y','B','l','o','b',0}
+-#define BCRYPT_KEY_DATA_BLOB (const WCHAR []){'K','e','y','D','a','t','a','B','l','o','b',0}
+-#define BCRYPT_AES_WRAP_KEY_BLOB (const WCHAR []){'R','f','c','3','5','6','5','K','e','y','W','r','a','p','B','l','o','b',0}
+-#define BCRYPT_ECCPUBLIC_BLOB (const WCHAR []){'E','C','C','P','U','B','L','I','C','B','L','O','B',0}
+-#define BCRYPT_ECCPRIVATE_BLOB (const WCHAR []){'E','C','C','P','R','I','V','A','T','E','B','L','O','B',0}
+-#define BCRYPT_RSAPUBLIC_BLOB (const WCHAR []){'R','S','A','P','U','B','L','I','C','B','L','O','B',0}
+-#define BCRYPT_RSAPRIVATE_BLOB (const WCHAR []){'R','S','A','P','R','I','V','A','T','E','B','L','O','B',0}
+-
+-#define MS_PRIMITIVE_PROVIDER (const WCHAR [])\
+- {'M','i','c','r','o','s','o','f','t',' ','P','r','i','m','i','t','i','v','e',' ','P','r','o','v','i','d','e','r',0}
+-#define MS_PLATFORM_CRYPTO_PROVIDER (const WCHAR [])\
+- {'M','i','c','r','o','s','o','f','t',' ','P','l','a','t','f','o','r','m',' ','C','r','y','p','t','o',' ','P','r','o','v','i','d','e','r',0}
+-
+-#define BCRYPT_AES_ALGORITHM (const WCHAR []){'A','E','S',0}
+-#define BCRYPT_MD2_ALGORITHM (const WCHAR []){'M','D','2',0}
+-#define BCRYPT_MD4_ALGORITHM (const WCHAR []){'M','D','4',0}
+-#define BCRYPT_MD5_ALGORITHM (const WCHAR []){'M','D','5',0}
+-#define BCRYPT_RNG_ALGORITHM (const WCHAR []){'R','N','G',0}
+-#define BCRYPT_RSA_ALGORITHM (const WCHAR []){'R','S','A',0}
+-#define BCRYPT_SHA1_ALGORITHM (const WCHAR []){'S','H','A','1',0}
+-#define BCRYPT_SHA256_ALGORITHM (const WCHAR []){'S','H','A','2','5','6',0}
+-#define BCRYPT_SHA384_ALGORITHM (const WCHAR []){'S','H','A','3','8','4',0}
+-#define BCRYPT_SHA512_ALGORITHM (const WCHAR []){'S','H','A','5','1','2',0}
+-#define BCRYPT_ECDH_P256_ALGORITHM (const WCHAR []){'E','C','D','H','_','P','2','5','6',0}
+-#define BCRYPT_ECDSA_P256_ALGORITHM (const WCHAR []){'E','C','D','S','A','_','P','2','5','6',0}
+-#define BCRYPT_ECDSA_P384_ALGORITHM (const WCHAR []){'E','C','D','S','A','_','P','3','8','4',0}
+-#define BCRYPT_ECDSA_P521_ALGORITHM (const WCHAR []){'E','C','D','S','A','_','P','5','2','1',0}
+-
+-#define BCRYPT_CHAIN_MODE_NA (const WCHAR []){'C','h','a','i','n','i','n','g','M','o','d','e','N','/','A',0}
+-#define BCRYPT_CHAIN_MODE_CBC (const WCHAR []){'C','h','a','i','n','i','n','g','M','o','d','e','C','B','C',0}
+-#define BCRYPT_CHAIN_MODE_ECB (const WCHAR []){'C','h','a','i','n','i','n','g','M','o','d','e','E','C','B',0}
+-#define BCRYPT_CHAIN_MODE_CFB (const WCHAR []){'C','h','a','i','n','i','n','g','M','o','d','e','C','F','B',0}
+-#define BCRYPT_CHAIN_MODE_CCM (const WCHAR []){'C','h','a','i','n','i','n','g','M','o','d','e','C','C','M',0}
+-#define BCRYPT_CHAIN_MODE_GCM (const WCHAR []){'C','h','a','i','n','i','n','g','M','o','d','e','G','C','M',0}
++#if defined(_MSC_VER) || defined(__MINGW32__)
++#define BCRYPT_ALGORITHM_NAME L"AlgorithmName"
++#define BCRYPT_AUTH_TAG_LENGTH L"AuthTagLength"
++#define BCRYPT_BLOCK_LENGTH L"BlockLength"
++#define BCRYPT_BLOCK_SIZE_LIST L"BlockSizeList"
++#define BCRYPT_CHAINING_MODE L"ChainingMode"
++#define BCRYPT_EFFECTIVE_KEY_LENGTH L"EffectiveKeyLength"
++#define BCRYPT_HASH_BLOCK_LENGTH L"HashBlockLength"
++#define BCRYPT_HASH_LENGTH L"HashDigestLength"
++#define BCRYPT_HASH_OID_LIST L"HashOIDList"
++#define BCRYPT_KEY_LENGTH L"KeyLength"
++#define BCRYPT_KEY_LENGTHS L"KeyLengths"
++#define BCRYPT_KEY_OBJECT_LENGTH L"KeyObjectLength"
++#define BCRYPT_KEY_STRENGTH L"KeyStrength"
++#define BCRYPT_OBJECT_LENGTH L"ObjectLength"
++#define BCRYPT_PADDING_SCHEMES L"PaddingSchemes"
++#define BCRYPT_PROVIDER_HANDLE L"ProviderHandle"
++#define BCRYPT_SIGNATURE_LENGTH L"SignatureLength"
++
++#define BCRYPT_OPAQUE_KEY_BLOB L"OpaqueKeyBlob"
++#define BCRYPT_KEY_DATA_BLOB L"KeyDataBlob"
++#define BCRYPT_AES_WRAP_KEY_BLOB L"Rfc3565KeyWrapBlob"
++#define BCRYPT_ECCPUBLIC_BLOB L"ECCPUBLICBLOB"
++#define BCRYPT_ECCPRIVATE_BLOB L"ECCPRIVATEBLOB"
++#define BCRYPT_RSAPUBLIC_BLOB L"RSAPUBLICBLOB"
++#define BCRYPT_RSAPRIVATE_BLOB L"RSAPRIVATEBLOB"
++
++#define MS_PRIMITIVE_PROVIDER L"Microsoft Primitive Provider"
++#define MS_PLATFORM_CRYPTO_PROVIDER L"Microsoft Platform Crypto Provider"
++
++#define BCRYPT_AES_ALGORITHM L"AES"
++#define BCRYPT_MD2_ALGORITHM L"MD2"
++#define BCRYPT_MD4_ALGORITHM L"MD4"
++#define BCRYPT_MD5_ALGORITHM L"MD5"
++#define BCRYPT_RNG_ALGORITHM L"RNG"
++#define BCRYPT_RSA_ALGORITHM L"RSA"
++#define BCRYPT_SHA1_ALGORITHM L"SHA1"
++#define BCRYPT_SHA256_ALGORITHM L"SHA256"
++#define BCRYPT_SHA384_ALGORITHM L"SHA384"
++#define BCRYPT_SHA512_ALGORITHM L"SHA512"
++#define BCRYPT_ECDH_P256_ALGORITHM L"ECDH_P256"
++#define BCRYPT_ECDSA_P256_ALGORITHM L"ECDSA_P256"
++#define BCRYPT_ECDSA_P384_ALGORITHM L"ECDSA_P384"
++#define BCRYPT_ECDSA_P521_ALGORITHM L"ECDSA_P521"
++
++#define BCRYPT_CHAIN_MODE_NA L"ChainingModeN/A"
++#define BCRYPT_CHAIN_MODE_CBC L"ChainingModeCBC"
++#define BCRYPT_CHAIN_MODE_ECB L"ChainingModeECB"
++#define BCRYPT_CHAIN_MODE_CFB L"ChainingModeCFB"
++#define BCRYPT_CHAIN_MODE_CCM L"ChainingModeCCM"
++#define BCRYPT_CHAIN_MODE_GCM L"ChainingModeGCM"
++#else
++static const WCHAR BCRYPT_ALGORITHM_NAME[] = {'A','l','g','o','r','i','t','h','m','N','a','m','e',0};
++static const WCHAR BCRYPT_AUTH_TAG_LENGTH[] = {'A','u','t','h','T','a','g','L','e','n','g','t','h',0};
++static const WCHAR BCRYPT_BLOCK_LENGTH[] = {'B','l','o','c','k','L','e','n','g','t','h',0};
++static const WCHAR BCRYPT_BLOCK_SIZE_LIST[] = {'B','l','o','c','k','S','i','z','e','L','i','s','t',0};
++static const WCHAR BCRYPT_CHAINING_MODE[] = {'C','h','a','i','n','i','n','g','M','o','d','e',0};
++static const WCHAR BCRYPT_EFFECTIVE_KEY_LENGTH[] = {'E','f','f','e','c','t','i','v','e','K','e','y','L','e','n','g','t','h',0};
++static const WCHAR BCRYPT_HASH_BLOCK_LENGTH[] = {'H','a','s','h','B','l','o','c','k','L','e','n','g','t','h',0};
++static const WCHAR BCRYPT_HASH_LENGTH[] = {'H','a','s','h','D','i','g','e','s','t','L','e','n','g','t','h',0};
++static const WCHAR BCRYPT_HASH_OID_LIST[] = {'H','a','s','h','O','I','D','L','i','s','t',0};
++static const WCHAR BCRYPT_KEY_LENGTH[] = {'K','e','y','L','e','n','g','t','h',0};
++static const WCHAR BCRYPT_KEY_LENGTHS[] = {'K','e','y','L','e','n','g','t','h','s',0};
++static const WCHAR BCRYPT_KEY_OBJECT_LENGTH[] = {'K','e','y','O','b','j','e','c','t','L','e','n','g','t','h',0};
++static const WCHAR BCRYPT_KEY_STRENGTH[] = {'K','e','y','S','t','r','e','n','g','t','h',0};
++static const WCHAR BCRYPT_OBJECT_LENGTH[] = {'O','b','j','e','c','t','L','e','n','g','t','h',0};
++static const WCHAR BCRYPT_PADDING_SCHEMES[] = {'P','a','d','d','i','n','g','S','c','h','e','m','e','s',0};
++static const WCHAR BCRYPT_PROVIDER_HANDLE[] = {'P','r','o','v','i','d','e','r','H','a','n','d','l','e',0};
++static const WCHAR BCRYPT_SIGNATURE_LENGTH[] = {'S','i','g','n','a','t','u','r','e','L','e','n','g','t','h',0};
++
++static const WCHAR BCRYPT_OPAQUE_KEY_BLOB[] = {'O','p','a','q','u','e','K','e','y','B','l','o','b',0};
++static const WCHAR BCRYPT_KEY_DATA_BLOB[] = {'K','e','y','D','a','t','a','B','l','o','b',0};
++static const WCHAR BCRYPT_AES_WRAP_KEY_BLOB[] = {'R','f','c','3','5','6','5','K','e','y','W','r','a','p','B','l','o','b',0};
++static const WCHAR BCRYPT_ECCPUBLIC_BLOB[] = {'E','C','C','P','U','B','L','I','C','B','L','O','B',0};
++static const WCHAR BCRYPT_ECCPRIVATE_BLOB[] = {'E','C','C','P','R','I','V','A','T','E','B','L','O','B',0};
++static const WCHAR BCRYPT_RSAPUBLIC_BLOB[] = {'R','S','A','P','U','B','L','I','C','B','L','O','B',0};
++static const WCHAR BCRYPT_RSAPRIVATE_BLOB[] = {'R','S','A','P','R','I','V','A','T','E','B','L','O','B',0};
++
++static const WCHAR MS_PRIMITIVE_PROVIDER[] = \
++{'M','i','c','r','o','s','o','f','t',' ','P','r','i','m','i','t','i','v','e',' ','P','r','o','v','i','d','e','r',0};
++static const WCHAR MS_PLATFORM_CRYPTO_PROVIDER[] = \
++{'M','i','c','r','o','s','o','f','t',' ','P','l','a','t','f','o','r','m',' ','C','r','y','p','t','o',' ','P','r','o','v','i','d','e','r',0};
++
++static const WCHAR BCRYPT_AES_ALGORITHM[] = {'A','E','S',0};
++static const WCHAR BCRYPT_MD2_ALGORITHM[] = {'M','D','2',0};
++static const WCHAR BCRYPT_MD4_ALGORITHM[] = {'M','D','4',0};
++static const WCHAR BCRYPT_MD5_ALGORITHM[] = {'M','D','5',0};
++static const WCHAR BCRYPT_RNG_ALGORITHM[] = {'R','N','G',0};
++static const WCHAR BCRYPT_RSA_ALGORITHM[] = {'R','S','A',0};
++static const WCHAR BCRYPT_SHA1_ALGORITHM[] = {'S','H','A','1',0};
++static const WCHAR BCRYPT_SHA256_ALGORITHM[] = {'S','H','A','2','5','6',0};
++static const WCHAR BCRYPT_SHA384_ALGORITHM[] = {'S','H','A','3','8','4',0};
++static const WCHAR BCRYPT_SHA512_ALGORITHM[] = {'S','H','A','5','1','2',0};
++static const WCHAR BCRYPT_ECDH_P256_ALGORITHM[] = {'E','C','D','H','_','P','2','5','6',0};
++static const WCHAR BCRYPT_ECDSA_P256_ALGORITHM[] = {'E','C','D','S','A','_','P','2','5','6',0};
++static const WCHAR BCRYPT_ECDSA_P384_ALGORITHM[] = {'E','C','D','S','A','_','P','3','8','4',0};
++static const WCHAR BCRYPT_ECDSA_P521_ALGORITHM[] = {'E','C','D','S','A','_','P','5','2','1',0};
++
++static const WCHAR BCRYPT_CHAIN_MODE_NA[] = {'C','h','a','i','n','i','n','g','M','o','d','e','N','/','A',0};
++static const WCHAR BCRYPT_CHAIN_MODE_CBC[] = {'C','h','a','i','n','i','n','g','M','o','d','e','C','B','C',0};
++static const WCHAR BCRYPT_CHAIN_MODE_ECB[] = {'C','h','a','i','n','i','n','g','M','o','d','e','E','C','B',0};
++static const WCHAR BCRYPT_CHAIN_MODE_CFB[] = {'C','h','a','i','n','i','n','g','M','o','d','e','C','F','B',0};
++static const WCHAR BCRYPT_CHAIN_MODE_CCM[] = {'C','h','a','i','n','i','n','g','M','o','d','e','C','C','M',0};
++static const WCHAR BCRYPT_CHAIN_MODE_GCM[] = {'C','h','a','i','n','i','n','g','M','o','d','e','G','C','M',0};
++#endif
+
+ #define BCRYPT_ECDSA_PUBLIC_P256_MAGIC 0x31534345
+ #define BCRYPT_ECDSA_PRIVATE_P256_MAGIC 0x32534345
+diff --git a/include/commctrl.h b/include/commctrl.h
+index 4706946a04..14d40a254d 100644
+--- a/include/commctrl.h
++++ b/include/commctrl.h
+@@ -279,10 +279,7 @@ typedef struct tagNMTTCUSTOMDRAW
+ /* StatusWindow */
+
+ #define STATUSCLASSNAMEA "msctls_statusbar32"
+-#if defined(__GNUC__)
+-# define STATUSCLASSNAMEW (const WCHAR []){ 'm','s','c','t','l','s','_', \
+- 's','t','a','t','u','s','b','a','r','3','2',0 }
+-#elif defined(_MSC_VER)
++#if defined(_MSC_VER) || defined(__MINGW32__)
+ # define STATUSCLASSNAMEW L"msctls_statusbar32"
+ #else
+ static const WCHAR STATUSCLASSNAMEW[] = { 'm','s','c','t','l','s','_',
+@@ -368,10 +365,7 @@ typedef struct tagDRAGLISTINFO
+ #define DL_MOVECURSOR 3
+
+ #define DRAGLISTMSGSTRINGA "commctrl_DragListMsg"
+-#if defined(__GNUC__)
+-# define DRAGLISTMSGSTRINGW (const WCHAR []){ 'c','o','m','m','c','t','r','l', \
+- '_','D','r','a','g','L','i','s','t','M','s','g',0 }
+-#elif defined(_MSC_VER)
++#if defined(_MSC_VER) || defined(__MINGW32__)
+ # define DRAGLISTMSGSTRINGW L"commctrl_DragListMsg"
+ #else
+ static const WCHAR DRAGLISTMSGSTRINGW[] = { 'c','o','m','m','c','t','r','l',
+@@ -387,10 +381,7 @@ INT WINAPI LBItemFromPt (HWND, POINT, BOOL);
+ /* UpDown */
+
+ #define UPDOWN_CLASSA "msctls_updown32"
+-#if defined(__GNUC__)
+-# define UPDOWN_CLASSW (const WCHAR []){ 'm','s','c','t','l','s','_', \
+- 'u','p','d','o','w','n','3','2',0 }
+-#elif defined(_MSC_VER)
++#if defined(_MSC_VER) || defined(__MINGW32__)
+ # define UPDOWN_CLASSW L"msctls_updown32"
+ #else
+ static const WCHAR UPDOWN_CLASSW[] = { 'm','s','c','t','l','s','_',
+@@ -447,10 +438,7 @@ HWND WINAPI CreateUpDownControl (DWORD, INT, INT, INT, INT,
+ /* Progress Bar */
+
+ #define PROGRESS_CLASSA "msctls_progress32"
+-#if defined(__GNUC__)
+-# define PROGRESS_CLASSW (const WCHAR []){ 'm','s','c','t','l','s','_', \
+- 'p','r','o','g','r','e','s','s','3','2',0 }
+-#elif defined(_MSC_VER)
++#if defined(_MSC_VER) || defined(__MINGW32__)
+ # define PROGRESS_CLASSW L"msctls_progress32"
+ #else
+ static const WCHAR PROGRESS_CLASSW[] = { 'm','s','c','t','l','s','_',
+@@ -657,10 +645,7 @@ BOOL WINAPI _TrackMouseEvent(LPTRACKMOUSEEVENT lpEventTrack);
+ /* Flat Scrollbar control */
+
+ #define FLATSB_CLASSA "flatsb_class32"
+-#if defined(__GNUC__)
+-# define FLATSB_CLASSW (const WCHAR []){ 'f','l','a','t','s','b','_', \
+- 'c','l','a','s','s','3','2',0 }
+-#elif defined(_MSC_VER)
++#if defined(_MSC_VER) || defined(__MINGW32__)
+ # define FLATSB_CLASSW L"flatsb_class32"
+ #else
+ static const WCHAR FLATSB_CLASSW[] = { 'f','l','a','t','s','b','_',
+@@ -712,9 +697,7 @@ int WINAPI DrawShadowText(HDC, LPCWSTR, UINT, RECT*, DWORD, COLORREF, COLORREF,
+ /* Header control */
+
+ #define WC_HEADERA "SysHeader32"
+-#if defined(__GNUC__)
+-# define WC_HEADERW (const WCHAR []){ 'S','y','s','H','e','a','d','e','r','3','2',0 }
+-#elif defined(_MSC_VER)
++#if defined(_MSC_VER) || defined(__MINGW32__)
+ # define WC_HEADERW L"SysHeader32"
+ #else
+ static const WCHAR WC_HEADERW[] = { 'S','y','s','H','e','a','d','e','r','3','2',0 };
+@@ -1022,9 +1005,7 @@ typedef struct tagNMHDFILTERBTNCLICK
+
+ /* Win32 5.1 Button Theme */
+ #define WC_BUTTONA "Button"
+-#if defined(__GNUC__)
+-# define WC_BUTTONW (const WCHAR []){ 'B','u','t','t','o','n',0 }
+-#elif defined(_MSC_VER)
++#if defined(_MSC_VER) || defined(__MINGW32__)
+ # define WC_BUTTONW L"Button"
+ #else
+ static const WCHAR WC_BUTTONW[] = { 'B','u','t','t','o','n',0 };
+@@ -1127,10 +1108,7 @@ typedef struct tagNMBCHOTITEM
+ /* Toolbar */
+
+ #define TOOLBARCLASSNAMEA "ToolbarWindow32"
+-#if defined(__GNUC__)
+-# define TOOLBARCLASSNAMEW (const WCHAR []){ 'T','o','o','l','b','a','r', \
+- 'W','i','n','d','o','w','3','2',0 }
+-#elif defined(_MSC_VER)
++#if defined(_MSC_VER) || defined(__MINGW32__)
+ # define TOOLBARCLASSNAMEW L"ToolbarWindow32"
+ #else
+ static const WCHAR TOOLBARCLASSNAMEW[] = { 'T','o','o','l','b','a','r',
+@@ -1707,10 +1685,7 @@ CreateMappedBitmap (HINSTANCE, INT_PTR, UINT, LPCOLORMAP, INT);
+ /* Tool tips */
+
+ #define TOOLTIPS_CLASSA "tooltips_class32"
+-#if defined(__GNUC__)
+-# define TOOLTIPS_CLASSW (const WCHAR []){ 't','o','o','l','t','i','p','s','_', \
+- 'c','l','a','s','s','3','2',0 }
+-#elif defined(_MSC_VER)
++#if defined(_MSC_VER) || defined(__MINGW32__)
+ # define TOOLTIPS_CLASSW L"tooltips_class32"
+ #else
+ static const WCHAR TOOLTIPS_CLASSW[] = { 't','o','o','l','t','i','p','s','_',
+@@ -1921,10 +1896,7 @@ typedef struct _TTGETTITLE
+ /* Rebar control */
+
+ #define REBARCLASSNAMEA "ReBarWindow32"
+-#if defined(__GNUC__)
+-# define REBARCLASSNAMEW (const WCHAR []){ 'R','e','B','a','r', \
+- 'W','i','n','d','o','w','3','2',0 }
+-#elif defined(_MSC_VER)
++#if defined(_MSC_VER) || defined(__MINGW32__)
+ # define REBARCLASSNAMEW L"ReBarWindow32"
+ #else
+ static const WCHAR REBARCLASSNAMEW[] = { 'R','e','B','a','r',
+@@ -2178,10 +2150,7 @@ typedef struct tagNMREBARAUTOBREAK
+ /* Trackbar control */
+
+ #define TRACKBAR_CLASSA "msctls_trackbar32"
+-#if defined(__GNUC__)
+-# define TRACKBAR_CLASSW (const WCHAR []){ 'm','s','c','t','l','s','_', \
+- 't','r','a','c','k','b','a','r','3','2',0 }
+-#elif defined(_MSC_VER)
++#if defined(_MSC_VER) || defined(__MINGW32__)
+ # define TRACKBAR_CLASSW L"msctls_trackbar32"
+ #else
+ static const WCHAR TRACKBAR_CLASSW[] = { 'm','s','c','t','l','s','_',
+@@ -2253,9 +2222,7 @@ static const WCHAR TRACKBAR_CLASSW[] = { 'm','s','c','t','l','s','_',
+ /* Pager control */
+
+ #define WC_PAGESCROLLERA "SysPager"
+-#if defined(__GNUC__)
+-# define WC_PAGESCROLLERW (const WCHAR []){ 'S','y','s','P','a','g','e','r',0 }
+-#elif defined(_MSC_VER)
++#if defined(_MSC_VER) || defined(__MINGW32__)
+ # define WC_PAGESCROLLERW L"SysPager"
+ #else
+ static const WCHAR WC_PAGESCROLLERW[] = { 'S','y','s','P','a','g','e','r',0 };
+@@ -2334,10 +2301,7 @@ typedef struct
+ /* Treeview control */
+
+ #define WC_TREEVIEWA "SysTreeView32"
+-#if defined(__GNUC__)
+-# define WC_TREEVIEWW (const WCHAR []){ 'S','y','s', \
+- 'T','r','e','e','V','i','e','w','3','2',0 }
+-#elif defined(_MSC_VER)
++#if defined(_MSC_VER) || defined(__MINGW32__)
+ # define WC_TREEVIEWW L"SysTreeView32"
+ #else
+ static const WCHAR WC_TREEVIEWW[] = { 'S','y','s',
+@@ -3031,10 +2995,7 @@ typedef struct tagTVKEYDOWN
+ /* Listview control */
+
+ #define WC_LISTVIEWA "SysListView32"
+-#if defined(__GNUC__)
+-# define WC_LISTVIEWW (const WCHAR []){ 'S','y','s', \
+- 'L','i','s','t','V','i','e','w','3','2',0 }
+-#elif defined(_MSC_VER)
++#if defined(_MSC_VER) || defined(__MINGW32__)
+ # define WC_LISTVIEWW L"SysListView32"
+ #else
+ static const WCHAR WC_LISTVIEWW[] = { 'S','y','s',
+@@ -4156,10 +4117,7 @@ typedef struct NMLVSCROLL
+ /* Tab Control */
+
+ #define WC_TABCONTROLA "SysTabControl32"
+-#if defined(__GNUC__)
+-# define WC_TABCONTROLW (const WCHAR []){ 'S','y','s', \
+- 'T','a','b','C','o','n','t','r','o','l','3','2',0 }
+-#elif defined(_MSC_VER)
++#if defined(_MSC_VER) || defined(__MINGW32__)
+ # define WC_TABCONTROLW L"SysTabControl32"
+ #else
+ static const WCHAR WC_TABCONTROLW[] = { 'S','y','s',
+@@ -4370,10 +4328,7 @@ typedef struct tagTCKEYDOWN
+ /* ComboBoxEx control */
+
+ #define WC_COMBOBOXEXA "ComboBoxEx32"
+-#if defined(__GNUC__)
+-# define WC_COMBOBOXEXW (const WCHAR []){ 'C','o','m','b','o', \
+- 'B','o','x','E','x','3','2',0 }
+-#elif defined(_MSC_VER)
++#if defined(_MSC_VER) || defined(__MINGW32__)
+ # define WC_COMBOBOXEXW L"ComboBoxEx32"
+ #else
+ static const WCHAR WC_COMBOBOXEXW[] = { 'C','o','m','b','o',
+@@ -4541,10 +4496,7 @@ typedef struct
+ /* Hotkey control */
+
+ #define HOTKEY_CLASSA "msctls_hotkey32"
+-#if defined(__GNUC__)
+-# define HOTKEY_CLASSW (const WCHAR []){ 'm','s','c','t','l','s','_', \
+- 'h','o','t','k','e','y','3','2',0 }
+-#elif defined(_MSC_VER)
++#if defined(_MSC_VER) || defined(__MINGW32__)
+ # define HOTKEY_CLASSW L"msctls_hotkey32"
+ #else
+ static const WCHAR HOTKEY_CLASSW[] = { 'm','s','c','t','l','s','_',
+@@ -4574,10 +4526,7 @@ static const WCHAR HOTKEY_CLASSW[] = { 'm','s','c','t','l','s','_',
+ /* animate control */
+
+ #define ANIMATE_CLASSA "SysAnimate32"
+-#if defined(__GNUC__)
+-# define ANIMATE_CLASSW (const WCHAR []){ 'S','y','s', \
+- 'A','n','i','m','a','t','e','3','2',0 }
+-#elif defined(_MSC_VER)
++#if defined(_MSC_VER) || defined(__MINGW32__)
+ # define ANIMATE_CLASSW L"SysAnimate32"
+ #else
+ static const WCHAR ANIMATE_CLASSW[] = { 'S','y','s',
+@@ -4625,10 +4574,7 @@ static const WCHAR ANIMATE_CLASSW[] = { 'S','y','s',
+ */
+
+ #define WC_IPADDRESSA "SysIPAddress32"
+-#if defined(__GNUC__)
+-# define WC_IPADDRESSW (const WCHAR []){ 'S','y','s', \
+- 'I','P','A','d','d','r','e','s','s','3','2',0 }
+-#elif defined(_MSC_VER)
++#if defined(_MSC_VER) || defined(__MINGW32__)
+ # define WC_IPADDRESSW L"SysIPAddress32"
+ #else
+ static const WCHAR WC_IPADDRESSW[] = { 'S','y','s',
+@@ -4670,10 +4616,7 @@ typedef struct tagNMIPADDRESS
+ */
+
+ #define WC_NATIVEFONTCTLA "NativeFontCtl"
+-#if defined(__GNUC__)
+-# define WC_NATIVEFONTCTLW (const WCHAR []){ 'N','a','t','i','v','e', \
+- 'F','o','n','t','C','t','l',0 }
+-#elif defined(_MSC_VER)
++#if defined(_MSC_VER) || defined(__MINGW32__)
+ # define WC_NATIVEFONTCTLW L"NativeFontCtl"
+ #else
+ static const WCHAR WC_NATIVEFONTCTLW[] = { 'N','a','t','i','v','e',
+@@ -4688,10 +4631,7 @@ static const WCHAR WC_NATIVEFONTCTLW[] = { 'N','a','t','i','v','e',
+ */
+
+ #define MONTHCAL_CLASSA "SysMonthCal32"
+-#if defined(__GNUC__)
+-# define MONTHCAL_CLASSW (const WCHAR []){ 'S','y','s', \
+- 'M','o','n','t','h','C','a','l','3','2',0 }
+-#elif defined(_MSC_VER)
++#if defined(_MSC_VER) || defined(__MINGW32__)
+ # define MONTHCAL_CLASSW L"SysMonthCal32"
+ #else
+ static const WCHAR MONTHCAL_CLASSW[] = { 'S','y','s',
+@@ -4872,10 +4812,7 @@ typedef struct tagNMDAYSTATE
+ */
+
+ #define DATETIMEPICK_CLASSA "SysDateTimePick32"
+-#if defined(__GNUC__)
+-# define DATETIMEPICK_CLASSW (const WCHAR []){ 'S','y','s', \
+- 'D','a','t','e','T','i','m','e','P','i','c','k','3','2',0 }
+-#elif defined(_MSC_VER)
++#if defined(_MSC_VER) || defined(__MINGW32__)
+ # define DATETIMEPICK_CLASSW L"SysDateTimePick32"
+ #else
+ static const WCHAR DATETIMEPICK_CLASSW[] = { 'S','y','s',
+@@ -5124,9 +5061,7 @@ BOOL WINAPI Str_SetPtrW (LPWSTR *, LPCWSTR);
+ * SysLink control
+ */
+
+-#if defined(__GNUC__)
+-# define WC_LINK (const WCHAR []){ 'S','y','s','L','i','n','k',0 }
+-#elif defined(_MSC_VER)
++#if defined(_MSC_VER) || defined(__MINGW32__)
+ # define WC_LINK L"SysLink"
+ #else
+ static const WCHAR WC_LINK[] = { 'S','y','s','L','i','n','k',0 };
+@@ -5205,9 +5140,7 @@ typedef struct tagNMLVLINK
+ */
+
+ #define WC_STATICA "Static"
+-#if defined(__GNUC__)
+-# define WC_STATICW (const WCHAR []){ 'S','t','a','t','i','c',0 }
+-#elif defined(_MSC_VER)
++#if defined(_MSC_VER) || defined(__MINGW32__)
+ # define WC_STATICW L"Static"
+ #else
+ static const WCHAR WC_STATICW[] = { 'S','t','a','t','i','c',0 };
+@@ -5219,9 +5152,7 @@ static const WCHAR WC_STATICW[] = { 'S','t','a','t','i','c',0 };
+ */
+
+ #define WC_COMBOBOXA "ComboBox"
+-#if defined(__GNUC__)
+-# define WC_COMBOBOXW (const WCHAR []){ 'C','o','m','b','o','B','o','x',0 }
+-#elif defined(_MSC_VER)
++#if defined(_MSC_VER) || defined(__MINGW32__)
+ # define WC_COMBOBOXW L"ComboBox"
+ #else
+ static const WCHAR WC_COMBOBOXW[] = { 'C','o','m','b','o','B','o','x',0 };
+@@ -5244,9 +5175,7 @@ static const WCHAR WC_COMBOBOXW[] = { 'C','o','m','b','o','B','o','x',0 };
+ */
+
+ #define WC_EDITA "Edit"
+-#if defined(__GNUC__)
+-# define WC_EDITW (const WCHAR []){ 'E','d','i','t',0 }
+-#elif defined(_MSC_VER)
++#if defined(_MSC_VER) || defined(__MINGW32__)
+ # define WC_EDITW L"Edit"
+ #else
+ static const WCHAR WC_EDITW[] = { 'E','d','i','t',0 };
+@@ -5283,9 +5212,7 @@ typedef struct _tagEDITBALLOONTIP
+ */
+
+ #define WC_LISTBOXA "ListBox"
+-#if defined(__GNUC__)
+-# define WC_LISTBOXW (const WCHAR []){ 'L','i','s','t','B','o','x',0 }
+-#elif defined(_MSC_VER)
++#if defined(_MSC_VER) || defined(__MINGW32__)
+ # define WC_LISTBOXW L"ListBox"
+ #else
+ static const WCHAR WC_LISTBOXW[] = { 'L','i','s','t','B','o','x',0 };
+@@ -5297,9 +5224,7 @@ static const WCHAR WC_LISTBOXW[] = { 'L','i','s','t','B','o','x',0 };
+ */
+
+ #define WC_SCROLLBARA "ScrollBar"
+-#if defined(__GNUC__)
+-# define WC_SCROLLBARW (const WCHAR []){ 'S','c','r','o','l','l','B','a','r',0 }
+-#elif defined(_MSC_VER)
++#if defined(_MSC_VER) || defined(__MINGW32__)
+ # define WC_SCROLLBARW L"ScrollBar"
+ #else
+ static const WCHAR WC_SCROLLBARW[] = { 'S','c','r','o','l','l','B','a','r',0 };
+diff --git a/include/commdlg.h b/include/commdlg.h
+index 214badd085..9b67829651 100644
+--- a/include/commdlg.h
++++ b/include/commdlg.h
+@@ -358,10 +358,7 @@ DECL_WINELIB_TYPE_AW(LPCHOOSEFONT)
+ #define WM_CHOOSEFONT_SETFLAGS (WM_USER + 102)
+
+ #define LBSELCHSTRINGA "commdlg_LBSelChangedNotify"
+-#if defined(__GNUC__)
+-# define LBSELCHSTRINGW (const WCHAR []){ 'c','o','m','m','d','l','g','_', \
+- 'L','B','S','e','l','C','h','a','n','g','e','d','N','o','t','i','f','y',0 }
+-#elif defined(_MSC_VER)
++#if defined(_MSC_VER) || defined(__MINGW32__)
+ # define LBSELCHSTRINGW L"commdlg_LBSelChangedNotify"
+ #else
+ static const WCHAR LBSELCHSTRINGW[] = { 'c','o','m','m','d','l','g','_',
+@@ -370,10 +367,7 @@ static const WCHAR LBSELCHSTRINGW[] = { 'c','o','m','m','d','l','g','_',
+ #define LBSELCHSTRING WINELIB_NAME_AW(LBSELCHSTRING)
+
+ #define SHAREVISTRINGA "commdlg_ShareViolation"
+-#if defined(__GNUC__)
+-# define SHAREVISTRINGW (const WCHAR []){ 'c','o','m','m','d','l','g','_', \
+- 'S','h','a','r','e','V','i','o','l','a','t','i','o','n',0 }
+-#elif defined(_MSC_VER)
++#if defined(_MSC_VER) || defined(__MINGW32__)
+ # define SHAREVISTRINGW L"commdlg_ShareViolation"
+ #else
+ static const WCHAR SHAREVISTRINGW[] = { 'c','o','m','m','d','l','g','_',
+@@ -382,10 +376,7 @@ static const WCHAR SHAREVISTRINGW[] = { 'c','o','m','m','d','l','g','_',
+ #define SHAREVISTRING WINELIB_NAME_AW(SHAREVISTRING)
+
+ #define FILEOKSTRINGA "commdlg_FileNameOK"
+-#if defined(__GNUC__)
+-# define FILEOKSTRINGW (const WCHAR []){ 'c','o','m','m','d','l','g','_', \
+- 'F','i','l','e','N','a','m','e','O','K',0 }
+-#elif defined(_MSC_VER)
++#if defined(_MSC_VER) || defined(__MINGW32__)
+ # define FILEOKSTRINGW L"commdlg_FileNameOK"
+ #else
+ static const WCHAR FILEOKSTRINGW[] = { 'c','o','m','m','d','l','g','_',
+@@ -394,10 +385,7 @@ static const WCHAR FILEOKSTRINGW[] = { 'c','o','m','m','d','l','g','_',
+ #define FILEOKSTRING WINELIB_NAME_AW(FILEOKSTRING)
+
+ #define COLOROKSTRINGA "commdlg_ColorOK"
+-#if defined(__GNUC__)
+-# define COLOROKSTRINGW (const WCHAR []){ 'c','o','m','m','d','l','g','_', \
+- 'C','o','l','o','r','O','K',0 }
+-#elif defined(_MSC_VER)
++#if defined(_MSC_VER) || defined(__MINGW32__)
+ # define COLOROKSTRINGW L"commdlg_ColorOK"
+ #else
+ static const WCHAR COLOROKSTRINGW[] = { 'c','o','m','m','d','l','g','_',
+@@ -406,10 +394,7 @@ static const WCHAR COLOROKSTRINGW[] = { 'c','o','m','m','d','l','g','_',
+ #define COLOROKSTRING WINELIB_NAME_AW(COLOROKSTRING)
+
+ #define SETRGBSTRINGA "commdlg_SetRGBColor"
+-#if defined(__GNUC__)
+-# define SETRGBSTRINGW (const WCHAR []){ 'c','o','m','m','d','l','g','_', \
+- 'S','e','t','R','G','B','C','o','l','o','r',0 }
+-#elif defined(_MSC_VER)
++#if defined(_MSC_VER) || defined(__MINGW32__)
+ # define SETRGBSTRINGW L"commdlg_SetRGBColor"
+ #else
+ static const WCHAR SETRGBSTRINGW[] = { 'c','o','m','m','d','l','g','_',
+@@ -418,10 +403,7 @@ static const WCHAR SETRGBSTRINGW[] = { 'c','o','m','m','d','l','g','_',
+ #define SETRGBSTRING WINELIB_NAME_AW(SETRGBSTRING)
+
+ #define FINDMSGSTRINGA "commdlg_FindReplace"
+-#if defined(__GNUC__)
+-# define FINDMSGSTRINGW (const WCHAR []){ 'c','o','m','m','d','l','g','_', \
+- 'F','i','n','d','R','e','p','l','a','c','e',0 }
+-#elif defined(_MSC_VER)
++#if defined(_MSC_VER) || defined(__MINGW32__)
+ # define FINDMSGSTRINGW L"commdlg_FindReplace"
+ #else
+ static const WCHAR FINDMSGSTRINGW[] = { 'c','o','m','m','d','l','g','_',
+@@ -430,10 +412,7 @@ static const WCHAR FINDMSGSTRINGW[] = { 'c','o','m','m','d','l','g','_',
+ #define FINDMSGSTRING WINELIB_NAME_AW(FINDMSGSTRING)
+
+ #define HELPMSGSTRINGA "commdlg_help"
+-#if defined(__GNUC__)
+-# define HELPMSGSTRINGW (const WCHAR []){ 'c','o','m','m','d','l','g','_', \
+- 'H','e','l','p',0 }
+-#elif defined(_MSC_VER)
++#if defined(_MSC_VER) || defined(__MINGW32__)
+ # define HELPMSGSTRINGW L"commdlg_help"
+ #else
+ static const WCHAR HELPMSGSTRINGW[] = { 'c','o','m','m','d','l','g','_',
+diff --git a/include/d3dcompiler.h b/include/d3dcompiler.h
+index 148e958cfd..70bdfa273f 100644
+--- a/include/d3dcompiler.h
++++ b/include/d3dcompiler.h
+@@ -25,9 +25,7 @@
+ extern "C" {
+ #endif
+
+-#if defined(__GNUC__)
+-#define D3DCOMPILER_DLL_W (const WCHAR[]){'d','3','d','c','o','m','p','i','l','e','r','_','4','7','.','d','l','l',0}
+-#elif defined(_MSC_VER)
++#if defined(_MSC_VER) || defined(__MINGW32__)
+ #define D3DCOMPILER_DLL_W L"d3dcompiler_47.dll"
+ #else
+ static const WCHAR D3DCOMPILER_DLL_W[] = {'d','3','d','c','o','m','p','i','l','e','r','_','4','7','.','d','l','l',0};
+diff --git a/include/ddeml.h b/include/ddeml.h
+index 39c8c50b3c..b8d7f00631 100644
+--- a/include/ddeml.h
++++ b/include/ddeml.h
+@@ -51,7 +51,7 @@ extern "C" {
+ #define EXPENTRY CALLBACK
+
+ #ifdef UNICODE
+-#if defined(_MSC_VER)
++#if defined(_MSC_VER) || defined(__MINGW32__)
+ #define SZDDESYS_TOPIC L"System"
+ #define SZDDESYS_ITEM_TOPICS L"Topics"
+ #define SZDDESYS_ITEM_SYSITEMS L"SysItems"
+@@ -60,16 +60,7 @@ extern "C" {
+ #define SZDDESYS_ITEM_FORMATS L"Formats"
+ #define SZDDESYS_ITEM_HELP L"Help"
+ #define SZDDE_ITEM_ITEMLIST L"TopicItemList"
+-#elif defined(__GNUC__)
+-#define SZDDESYS_TOPIC (const WCHAR []){'S','y','s','t','e','m',0}
+-#define SZDDESYS_ITEM_TOPICS (const WCHAR []){'T','o','p','i','c','s',0}
+-#define SZDDESYS_ITEM_SYSITEMS (const WCHAR []){'S','y','s','I','t','e','m','s',0}
+-#define SZDDESYS_ITEM_RTNMSG (const WCHAR []){'R','e','t','u','r','n','M','e','s','s','a','g','e',0}
+-#define SZDDESYS_ITEM_STATUS (const WCHAR []){'S','t','a','t','u','s',0}
+-#define SZDDESYS_ITEM_FORMATS (const WCHAR []){'F','o','r','m','a','t','s',0}
+-#define SZDDESYS_ITEM_HELP (const WCHAR []){'H','e','l','p',0}
+-#define SZDDE_ITEM_ITEMLIST (const WCHAR []){'T','o','p','i','c','I','t','e','m','L','i','s','t',0}
+-#else /* _MSC_VER/__GNUC__ */
++#else /* _MSC_VER/__MINGW32__ */
+ static const WCHAR SZDDESYS_TOPIC[] = {'S','y','s','t','e','m',0};
+ static const WCHAR SZDDESYS_ITEM_TOPICS[] = {'T','o','p','i','c','s',0};
+ static const WCHAR SZDDESYS_ITEM_SYSITEMS[] = {'S','y','s','I','t','e','m','s',0};
+diff --git a/include/ddk/mountmgr.h b/include/ddk/mountmgr.h
+index f0e836f6e1..fc3199c5ca 100644
+--- a/include/ddk/mountmgr.h
++++ b/include/ddk/mountmgr.h
+@@ -24,10 +24,7 @@
+ #define MOUNTMGRCONTROLTYPE ((ULONG)'m')
+ #define MOUNTDEVCONTROLTYPE ((ULONG)'M')
+
+-#if defined(__GNUC__)
+-#define MOUNTMGR_DEVICE_NAME (const WCHAR []){'\\','D','e','v','i','c','e','\\','M','o','u','n','t','P','o','i','n','t','M','a','n','a','g','e','r',0}
+-#define MOUNTMGR_DOS_DEVICE_NAME (const WCHAR []){'\\','\\','.','\\','M','o','u','n','t','P','o','i','n','t','M','a','n','a','g','e','r',0}
+-#elif defined(_MSC_VER)
++#if defined(_MSC_VER) || defined(__MINGW32__)
+ #define MOUNTMGR_DEVICE_NAME L"\\Device\\MountPointManager"
+ #define MOUNTMGR_DOS_DEVICE_NAME L"\\\\.\\MountPointManager"
+ #else
+diff --git a/include/dpaddr.h b/include/dpaddr.h
+index d47dd26219..3182503a48 100644
+--- a/include/dpaddr.h
++++ b/include/dpaddr.h
+@@ -87,43 +87,7 @@ typedef struct sockaddr SOCKADDR;
+ #define DPNA_VALUE_SERIALPROVIDER_A "SERIAL"
+
+ /* And now the same thing but as Unicode strings */
+-#if defined(__GNUC__)
+-
+-# define DPNA_HEADER (const WCHAR []){ 'x','-','d','i','r','e','c','t','p','l','a','y',':','/',0 }
+-# define DPNA_KEY_APPLICATION_INSTANCE (const WCHAR []){ 'a','p','p','l','i','c','a','t','i','o','n','i','n','s','t','a','n','c','e',0 }
+-# define DPNA_KEY_BAUD (const WCHAR []){ 'b','a','u','d',0 }
+-# define DPNA_KEY_DEVICE (const WCHAR []){ 'd','e','v','i','c','e',0 }
+-# define DPNA_KEY_FLOWCONTROL (const WCHAR []){ 'f','l','o','w','c','o','n','t','r','o','l',0 }
+-# define DPNA_KEY_HOSTNAME (const WCHAR []){ 'h','o','s','t','n','a','m','e',0 }
+-# define DPNA_KEY_NAMEINFO (const WCHAR []){ 'n','a','m','e','i','n','f','o',0 }
+-# define DPNA_KEY_PARITY (const WCHAR []){ 'p','a','r','i','t','y',0 }
+-# define DPNA_KEY_PHONENUMBER (const WCHAR []){ 'p','h','o','n','e','n','u','m','b','e','r',0 }
+-# define DPNA_KEY_PORT (const WCHAR []){ 'p','o','r','t',0 }
+-# define DPNA_KEY_PROCESSOR (const WCHAR []){ 'p','r','o','c','e','s','s','o','r',0 }
+-# define DPNA_KEY_PROGRAM (const WCHAR []){ 'p','r','o','g','r','a','m',0 }
+-# define DPNA_KEY_PROVIDER (const WCHAR []){ 'p','r','o','v','i','d','e','r',0 }
+-# define DPNA_KEY_SCOPE (const WCHAR []){ 's','c','o','p','e',0 }
+-# define DPNA_KEY_STOPBITS (const WCHAR []){ 's','t','o','p','b','i','t','s',0 }
+-# define DPNA_KEY_TRAVERSALMODE (const WCHAR []){ 't','r','a','v','e','r','s','a','l','m','o','d','e',0 }
+-# define DPNA_STOP_BITS_ONE (const WCHAR []){ '1',0 }
+-# define DPNA_STOP_BITS_ONE_FIVE (const WCHAR []){ '1','.','5',0 }
+-# define DPNA_STOP_BITS_TWO (const WCHAR []){ '2',0 }
+-# define DPNA_PARITY_NONE (const WCHAR []){ 'N','O','N','E',0 }
+-# define DPNA_PARITY_EVEN (const WCHAR []){ 'E','V','E','N',0 }
+-# define DPNA_PARITY_ODD (const WCHAR []){ 'O','D','D',0 }
+-# define DPNA_PARITY_MARK (const WCHAR []){ 'M','A','R','K',0 }
+-# define DPNA_PARITY_SPACE (const WCHAR []){ 'S','P','A','C','E',0 }
+-# define DPNA_FLOW_CONTROL_NONE (const WCHAR []){ 'N','O','N','E',0 }
+-# define DPNA_FLOW_CONTROL_XONXOFF (const WCHAR []){ 'X','O','N','X','O','F','F',0 }
+-# define DPNA_FLOW_CONTROL_RTS (const WCHAR []){ 'R','T','S',0 }
+-# define DPNA_FLOW_CONTROL_DTR (const WCHAR []){ 'D','T','R',0 }
+-# define DPNA_FLOW_CONTROL_RTSDTR (const WCHAR []){ 'R','T','S','D','T','R',0 }
+-# define DPNA_VALUE_TCPIPPROVIDER (const WCHAR []){ 'I','P',0 }
+-# define DPNA_VALUE_IPXPROVIDER (const WCHAR []){ 'I','P','X',0 }
+-# define DPNA_VALUE_MODEMPROVIDER (const WCHAR []){ 'M','O','D','E','M',0 }
+-# define DPNA_VALUE_SERIALPROVIDER (const WCHAR []){ 'S','E','R','I','A','L',0 }
+-
+-#elif defined(_MSC_VER)
++#if defined(_MSC_VER) || defined(__MINGW32__)
+
+ # define DPNA_HEADER L"x-directplay:/"
+ # define DPNA_KEY_APPLICATION_INSTANCE L"applicationinstance"
+diff --git a/include/lmaccess.h b/include/lmaccess.h
+index 5042f04cc4..796eacc2eb 100644
+--- a/include/lmaccess.h
++++ b/include/lmaccess.h
+@@ -90,33 +90,25 @@ extern "C" {
+ UF_DONT_REQUIRE_PREAUTH |\
+ UF_PASSWORD_EXPIRED)
+
+-#if defined(__GNUC__)
+-# define GROUP_SPECIALGRP_USERS (const WCHAR []){ 'U','S','E','R','S',0 }
+-#elif defined(_MSC_VER)
++#if defined(_MSC_VER) || defined(__MINGW32__)
+ # define GROUP_SPECIALGRP_USERS L"USERS"
+ #else
+ static const WCHAR GROUP_SPECIALGRP_USERS[] = { 'U','S','E','R','S',0 };
+ #endif
+
+-#if defined(__GNUC__)
+-# define GROUP_SPECIALGRP_ADMINS (const WCHAR []){ 'A','D','M','I','N','S',0 }
+-#elif defined(_MSC_VER)
++#if defined(_MSC_VER) || defined(__MINGW32__)
+ # define GROUP_SPECIALGRP_ADMINS L"ADMINS"
+ #else
+ static const WCHAR GROUP_SPECIALGRP_ADMINS[] = { 'A','D','M','I','N','S',0 };
+ #endif
+
+-#if defined(__GNUC__)
+-# define GROUP_SPECIALGRP_GUESTS (const WCHAR []){ 'G','U','E','S','T','S',0 }
+-#elif defined(_MSC_VER)
++#if defined(_MSC_VER) || defined(__MINGW32__)
+ # define GROUP_SPECIALGRP_GUESTS L"GUESTS"
+ #else
+ static const WCHAR GROUP_SPECIALGRP_GUESTS[] = { 'G','U','E','S','T','S',0 };
+ #endif
+
+-#if defined(__GNUC__)
+-# define GROUP_SPECIALGRP_LOCAL (const WCHAR []){ 'L','O','C','A','L',0 }
+-#elif defined(_MSC_VER)
++#if defined(_MSC_VER) || defined(__MINGW32__)
+ # define GROUP_SPECIALGRP_LOCAL L"LOCAL"
+ #else
+ static const WCHAR GROUP_SPECIALGRP_LOCAL[] = { 'L','O','C','A','L',0 };
+diff --git a/include/msacm.h b/include/msacm.h
+index eaa39d2c01..8d459cb247 100644
+--- a/include/msacm.h
++++ b/include/msacm.h
+@@ -106,10 +106,7 @@ extern "C" {
+ #define ACM_FILTERENUMF_DWFILTERTAG __MSABI_LONG(0x00010000)
+
+ #define ACMHELPMSGSTRINGA "acmchoose_help"
+-#if defined(__GNUC__)
+-# define ACMHELPMSGSTRINGW (const WCHAR []){ 'a','c','m', \
+- 'c','h','o','o','s','e','_','h','e','l','p',0 }
+-#elif defined(_MSC_VER)
++#if defined(_MSC_VER) || defined(__MINGW32__)
+ # define ACMHELPMSGSTRINGW L"acmchoose_help"
+ #else
+ static const WCHAR ACMHELPMSGSTRINGW[] = { 'a','c','m',
+@@ -118,10 +115,7 @@ static const WCHAR ACMHELPMSGSTRINGW[] = { 'a','c','m',
+ #define ACMHELPMSGSTRING WINELIB_NAME_AW(ACMHELPMSGSTRING)
+
+ #define ACMHELPMSGCONTEXTMENUA "acmchoose_contextmenu"
+-#if defined(__GNUC__)
+-# define ACMHELPMSGCONTEXTMENUW (const WCHAR []){ 'a','c','m', \
+- 'c','h','o','o','s','e','_','c','o','n','t','e','x','t','m','e','n','u',0 }
+-#elif defined(_MSC_VER)
++#if defined(_MSC_VER) || defined(__MINGW32__)
+ # define ACMHELPMSGCONTEXTMENUW L"acmchoose_contextmenu"
+ #else
+ static const WCHAR ACMHELPMSGCONTEXTMENUW[] = { 'a','c','m',
+@@ -130,10 +124,7 @@ static const WCHAR ACMHELPMSGCONTEXTMENUW[] = { 'a','c','m',
+ #define ACMHELPMSGCONTEXTMENU WINELIB_NAME_AW(ACMHELPMSGCONTEXTMENU)
+
+ #define ACMHELPMSGCONTEXTHELPA "acmchoose_contexthelp"
+-#if defined(__GNUC__)
+-# define ACMHELPMSGCONTEXTHELPW (const WCHAR []){ 'a','c','m', \
+- 'c','h','o','o','s','e','_','c','o','n','t','e','x','t','h','e','l','p',0 }
+-#elif defined(_MSC_VER)
++#if defined(_MSC_VER) || defined(__MINGW32__)
+ # define ACMHELPMSGCONTEXTHELPW L"acmchoose_contexthelp"
+ #else
+ static const WCHAR ACMHELPMSGCONTEXTHELPW[] = { 'a','c','m',
+diff --git a/include/ntsecapi.h b/include/ntsecapi.h
+index 729a89c86b..c59f1c9ea1 100644
+--- a/include/ntsecapi.h
++++ b/include/ntsecapi.h
+@@ -357,11 +357,9 @@ typedef struct _AUDIT_POLICY_INFORMATION
+ } AUDIT_POLICY_INFORMATION, *PAUDIT_POLICY_INFORMATION;
+
+ #define MICROSOFT_KERBEROS_NAME_A "Kerberos"
+-#if defined(_MSC_VER)
++#if defined(_MSC_VER) || defined(__MINGW32__)
+ #define MICROSOFT_KERBEROS_NAME_W L"Kerberos"
+-#elif defined(__GNUC__)
+-#define MICROSOFT_KERBEROS_NAME_W (const WCHAR []){ 'K','e','r','b','e','r','o','s',0 }
+-#else /* _MSC_VER/__GNUC__ */
++#else /* _MSC_VER/__MINGW32__ */
+ static const WCHAR MICROSOFT_KERBEROS_NAME_W[] = { 'K','e','r','b','e','r','o','s',0 };
+ #endif
+
+diff --git a/include/oledlg.h b/include/oledlg.h
+index 80829ec1b6..a39a28f9aa 100644
+--- a/include/oledlg.h
++++ b/include/oledlg.h
+@@ -94,17 +94,7 @@ typedef UINT (CALLBACK *LPFNOLEUIHOOK)(HWND, UINT, WPARAM, LPARAM);
+ #define SZOLEUI_MSG_CHANGESOURCEA "OLEUI_MSG_CHANGESOURCE"
+ #define SZOLEUI_MSG_ADDCONTROLA "OLEUI_MSG_ADDCONTROL"
+ #define SZOLEUI_MSG_BROWSE_OFNA "OLEUI_MSG_BROWSE_OFN"
+-#if defined(__GNUC__)
+-# define SZOLEUI_MSG_HELPW (const WCHAR []){ 'O','L','E','U','I','_','M','S','G','_','H','E','L','P',0 }
+-# define SZOLEUI_MSG_ENDDIALOGW (const WCHAR []){ 'O','L','E','U','I','_','M','S','G','_','E','N','D','D','I','A','L','O','G',0 }
+-# define SZOLEUI_MSG_BROWSEW (const WCHAR []){ 'O','L','E','U','I','_','M','S','G','_','B','R','O','W','S','E',0 }
+-# define SZOLEUI_MSG_CHANGEICONW (const WCHAR []){ 'O','L','E','U','I','_','M','S','G','_','C','H','A','N','G','E','I','C','O','N',0 }
+-# define SZOLEUI_MSG_CLOSEBUSYDIALOGW (const WCHAR []){ 'O','L','E','U','I','_','M','S','G','_','C','L','O','S','E','B','U','S','Y','D','I','A','L','O','G',0 }
+-# define SZOLEUI_MSG_CONVERTW (const WCHAR []){ 'O','L','E','U','I','_','M','S','G','_','C','O','N','V','E','R','T',0 }
+-# define SZOLEUI_MSG_CHANGESOURCEW (const WCHAR []){ 'O','L','E','U','I','_','M','S','G','_','C','H','A','N','G','E','S','O','U','R','C','E',0 }
+-# define SZOLEUI_MSG_ADDCONTROLW (const WCHAR []){ 'O','L','E','U','I','_','M','S','G','_','A','D','D','C','O','N','T','R','O','L',0 }
+-# define SZOLEUI_MSG_BROWSE_OFNW (const WCHAR []){ 'O','L','E','U','I','_','M','S','G','_','B','R','O','W','S','E','_','O','F','N',0 }
+-#elif defined(_MSC_VER)
++#if defined(_MSC_VER) || defined(__MINGW32__)
+ # define SZOLEUI_MSG_HELPW L"OLEUI_MSG_HELP"
+ # define SZOLEUI_MSG_ENDDIALOGW L"OLEUI_MSG_ENDDIALOG"
+ # define SZOLEUI_MSG_BROWSEW L"OLEUI_MSG_BROWSE"
+diff --git a/include/prsht.h b/include/prsht.h
+index 2b2a3e18f3..a88351701e 100644
+--- a/include/prsht.h
++++ b/include/prsht.h
+@@ -30,10 +30,7 @@ extern "C" {
+
+
+ #define WC_PROPSHEETA "SysPropertySheet"
+-#if defined(__GNUC__)
+-# define WC_PROPSHEETW (const WCHAR []){ 'S','y','s', \
+- 'P','r','o','p','e','r','t','y','S','h','e','e','t',0 }
+-#elif defined(_MSC_VER)
++#if defined(_MSC_VER) || defined(__MINGW32__)
+ # define WC_PROPSHEETW L"SysPropertySheet"
+ #else
+ static const WCHAR WC_PROPSHEETW[] = { 'S','y','s',
+diff --git a/include/richedit.h b/include/richedit.h
+index c2248436ac..2709d78750 100644
+--- a/include/richedit.h
++++ b/include/richedit.h
+@@ -32,18 +32,14 @@ extern "C" {
+
+ #define cchTextLimitDefault 0x7fff
+
+-#if defined(__GNUC__)
+-# define MSFTEDIT_CLASS (const WCHAR []){ 'R','i','c','h','E','d','i','t','5','0','W',0 }
+-#elif defined(_MSC_VER)
++#if defined(_MSC_VER) || defined(__MINGW32__)
+ # define MSFTEDIT_CLASS L"RichEdit50W"
+ #else
+ static const WCHAR MSFTEDIT_CLASS[] = { 'R','i','c','h','E','d','i','t','5','0','W',0 };
+ #endif
+
+ #define RICHEDIT_CLASS20A "RichEdit20A"
+-#if defined(__GNUC__)
+-# define RICHEDIT_CLASS20W (const WCHAR []){ 'R','i','c','h','E','d','i','t','2','0','W',0 }
+-#elif defined(_MSC_VER)
++#if defined(_MSC_VER) || defined(__MINGW32__)
+ # define RICHEDIT_CLASS20W L"RichEdit20W"
+ #else
+ static const WCHAR RICHEDIT_CLASS20W[] = { 'R','i','c','h','E','d','i','t','2','0','W',0 };
+diff --git a/include/schannel.h b/include/schannel.h
+index b48a71947e..b60fdf7ad4 100644
+--- a/include/schannel.h
++++ b/include/schannel.h
+@@ -22,11 +22,7 @@
+
+ /* Package names */
+ #define UNISP_NAME_A "Microsoft Unified Security Protocol Provider"
+-#if defined(__GNUC__)
+-#define UNISP_NAME_W (const WCHAR []){ 'M','i','c','r','o','s','o','f','t',\
+- ' ','U','n','i','f','i','e','d',' ','S','e','c','u','r','i','t','y',' ',\
+- 'P','r','o','t','o','c','o','l',' ','P','r','o','v','i','d','e','r',0 }
+-#elif defined(_MSC_VER)
++#if defined(_MSC_VER) || defined(__MINGW32__)
+ #define UNISP_NAME_W L"Microsoft Unified Security Protocol Provider"
+ #else
+ static const WCHAR UNISP_NAME_W[] = { 'M','i','c','r','o','s','o','f','t',
+@@ -36,10 +32,7 @@ static const WCHAR UNISP_NAME_W[] = { 'M','i','c','r','o','s','o','f','t',
+ #define UNISP_NAME WINELIB_NAME_AW(UNISP_NAME_)
+
+ #define SSL2SP_NAME_A "Microsoft SSL 2.0"
+-#if defined(__GNUC__)
+-#define SSL2SP_NAME_W (const WCHAR []){ 'M','i','c','r','o','s','o','f','t',\
+- ' ','S','S','L',' ','2','.','0',0 }
+-#elif defined(_MSC_VER)
++#if defined(_MSC_VER) || defined(__MINGW32__)
+ #define SSL2SP_NAME_W L"Microsoft SSL 2.0"
+ #else
+ static const WCHAR SSL2SP_NAME_W[] = { 'M','i','c','r','o','s','o','f','t',
+@@ -48,10 +41,7 @@ static const WCHAR SSL2SP_NAME_W[] = { 'M','i','c','r','o','s','o','f','t',
+ #define SSL2SP_NAME WINELIB_NAME_AW(SSL2SP_NAME_)
+
+ #define SSL3SP_NAME_A "Microsoft SSL 3.0"
+-#if defined(__GNUC__)
+-#define SSL3SP_NAME_W (const WCHAR []){ 'M','i','c','r','o','s','o','f','t',\
+- ' ','S','S','L',' ','3','.','0',0 }
+-#elif defined(_MSC_VER)
++#if defined(_MSC_VER) || defined(__MINGW32__)
+ #define SSL3SP_NAME_W L"Microsoft SSL 3.0"
+ #else
+ static const WCHAR SSL3SP_NAME_W[] = { 'M','i','c','r','o','s','o','f','t',
+@@ -60,10 +50,7 @@ static const WCHAR SSL3SP_NAME_W[] = { 'M','i','c','r','o','s','o','f','t',
+ #define SSL3SP_NAME WINELIB_NAME_AW(SSL3SP_NAME_)
+
+ #define TLS1SP_NAME_A "Microsoft TLS 1.0"
+-#if defined(__GNUC__)
+-#define TLS1SP_NAME_W (const WCHAR []){ 'M','i','c','r','o','s','o','f','t',\
+- ' ','T','L','S',' ','1','.','0',0 }
+-#elif defined(_MSC_VER)
++#if defined(_MSC_VER) || defined(__MINGW32__)
+ #define TLS1SP_NAME_W L"Microsoft TLS 1.0"
+ #else
+ static const WCHAR TLS1SP_NAME_W[] = { 'M','i','c','r','o','s','o','f','t',
+@@ -72,10 +59,7 @@ static const WCHAR TLS1SP_NAME_W[] = { 'M','i','c','r','o','s','o','f','t',
+ #define TLS1SP_NAME WINELIB_NAME_AW(TLS1SP_NAME_)
+
+ #define PCT1SP_NAME_A "Microsoft PCT 1.0"
+-#if defined(__GNUC__)
+-#define PCT1SP_NAME_W (const WCHAR []){ 'M','i','c','r','o','s','o','f','t',\
+- ' ','P','C','T',' ','1','.','0',0 }
+-#elif defined(_MSC_VER)
++#if defined(_MSC_VER) || defined(__MINGW32__)
+ #define PCT1SP_NAME_W L"Microsoft PCT 1.0"
+ #else
+ static const WCHAR PCT1SP_NAME_W[] = { 'M','i','c','r','o','s','o','f','t',
+@@ -84,9 +68,7 @@ static const WCHAR PCT1SP_NAME_W[] = { 'M','i','c','r','o','s','o','f','t',
+ #define PCT1SP_NAME WINELIB_NAME_AW(PCT1SP_NAME_)
+
+ #define SCHANNEL_NAME_A "Schannel"
+-#if defined(__GNUC__)
+-#define SCHANNEL_NAME_W (const WCHAR []){ 'S','c','h','a','n','n','e','l',0 }
+-#elif defined(_MSC_VER)
++#if defined(_MSC_VER) || defined(__MINGW32__)
+ #define SCHANNEL_NAME_W L"Schannel"
+ #else
+ static const WCHAR SCHANNEL_NAME_W[] = { 'S','c','h','a','n','n','e','l',0 };
+diff --git a/include/sddl.h b/include/sddl.h
+index badd6fa8cb..e8dcfdfb49 100644
+--- a/include/sddl.h
++++ b/include/sddl.h
+@@ -34,12 +34,7 @@ extern "C" {
+ # define SDDL_DACL "D"
+ # define SDDL_SACL "S"
+ #else
+-# if defined(__GNUC__)
+-# define SDDL_OWNER (const WCHAR[]){ 'O',0 }
+-# define SDDL_GROUP (const WCHAR[]){ 'G',0 }
+-# define SDDL_DACL (const WCHAR[]){ 'D',0 }
+-# define SDDL_SACL (const WCHAR[]){ 'S',0 }
+-# elif defined(_MSC_VER)
++# if defined(_MSC_VER) || defined(__MINGW32__)
+ # define SDDL_OWNER L"O"
+ # define SDDL_GROUP L"G"
+ # define SDDL_DACL L"D"
+@@ -74,12 +69,7 @@ extern "C" {
+ # define SDDL_ACE_BEGIN "("
+ # define SDDL_ACE_END ")"
+ #else
+-# if defined(__GNUC__)
+-# define SDDL_SEPERATOR (const WCHAR[]){ ';',0 }
+-# define SDDL_DELIMINATOR (const WCHAR[]){ ':',0 }
+-# define SDDL_ACE_BEGIN (const WCHAR[]){ '(',0 }
+-# define SDDL_ACE_END (const WCHAR[]){ ')',0 }
+-# elif defined(_MSC_VER)
++# if defined(_MSC_VER) || defined(__MINGW32__)
+ # define SDDL_SEPERATOR L";"
+ # define SDDL_DELIMINATOR L":"
+ # define SDDL_ACE_BEGIN L"("
+diff --git a/include/softpub.h b/include/softpub.h
+index 46403992d7..ed10d8fd91 100644
+--- a/include/softpub.h
++++ b/include/softpub.h
+@@ -24,10 +24,7 @@
+ #define WINTRUST_ACTION_GENERIC_CERT_VERIFY \
+ { 0x189a3842, 0x3041, 0x11d1, { 0x85,0xe1,0x00,0xc0,0x4f,0xc2,0x95,0xee }}
+
+-#if defined(__GNUC__)
+-#define SP_GENERIC_CERT_INIT_FUNCTION (const WCHAR []) \
+- {'S','o','f','t','p','u','b','D','e','f','C','e','r','t','I','n','i','t', 0}
+-#elif defined(_MSC_VER)
++#if defined(_MSC_VER) || defined(__MINGW32__)
+ #define SP_GENERIC_CERT_INIT_FUNCTION L"SoftpubDefCertInit"
+ #else
+ static const WCHAR SP_GENERIC_CERT_INIT_FUNCTION[] =
+@@ -37,12 +34,7 @@ static const WCHAR SP_GENERIC_CERT_INIT_FUNCTION[] =
+ #define WINTRUST_ACTION_GENERIC_CHAIN_VERIFY \
+ { 0xfc451c16, 0xac75, 0x11d1, { 0xb4,0xb8,0x00,0xc0,0x4f,0xb6,0x6e,0xa0 }}
+
+-#if defined(__GNUC__)
+-#define GENERIC_CHAIN_FINALPOLICY_FUNCTION (const WCHAR []) \
+- {'G','e','n','e','r','i','c','C','h','a','i','n','F','i','n','a','l','P','r','o','v', 0}
+-#define GENERIC_CHAIN_CERTTRUST_FUNCTION (const WCHAR []) \
+- {'G','e','n','e','r','i','c','C','h','a','i','n','C','e','r','t','i','f','i','c','a','t','e','T','r','u','s','t', 0}
+-#elif defined(_MSC_VER)
++#if defined(_MSC_VER) || defined(__MINGW32__)
+ #define GENERIC_CHAIN_FINALPOLICY_FUNCTION L"GenericChainFinalProv"
+ #define GENERIC_CHAIN_CERTTRUST_FUNCTION L"GenericChainCertificateTrust"
+ #else
+@@ -95,10 +87,7 @@ typedef struct _WTD_GENERIC_CHAIN_POLICY_DATA
+ void *pvPolicyArg;
+ } WTD_GENERIC_CHAIN_POLICY_DATA, *PWTD_GENERIC_CHAIN_POLICY_DATA;
+
+-#if defined(__GNUC__)
+-#define SP_POLICY_PROVIDER_DLL_NAME (const WCHAR []) \
+- {'W','I','N','T','R','U','S','T','.','D','L','L' ,0}
+-#elif defined(_MSC_VER)
++#if defined(_MSC_VER) || defined(__MINGW32__)
+ #define SP_POLICY_PROVIDER_DLL_NAME L"WINTRUST.DLL"
+ #else
+ static const WCHAR SP_POLICY_PROVIDER_DLL_NAME[] =
+@@ -108,20 +97,7 @@ static const WCHAR SP_POLICY_PROVIDER_DLL_NAME[] =
+ #define WINTRUST_ACTION_GENERIC_VERIFY_V2 \
+ { 0xaac56b, 0xcd44, 0x11d0, { 0x8c,0xc2,0x00,0xc0,0x4f,0xc2,0x95,0xee }}
+
+-#if defined(__GNUC__)
+-#define SP_INIT_FUNCTION (const WCHAR []) \
+- {'S','o','f','t','p','u','b','I','n','i','t','i','a','l','i','z','e', 0}
+-#define SP_OBJTRUST_FUNCTION (const WCHAR []) \
+- {'S','o','f','t','p','u','b','L','o','a','d','M','e','s','s','a','g','e', 0}
+-#define SP_SIGTRUST_FUNCTION (const WCHAR []) \
+- {'S','o','f','t','p','u','b','L','o','a','d','S','i','g','n','a','t','u','r','e', 0}
+-#define SP_CHKCERT_FUNCTION (const WCHAR []) \
+- {'S','o','f','t','p','u','b','C','h','e','c','k','C','e','r','t', 0}
+-#define SP_FINALPOLICY_FUNCTION (const WCHAR []) \
+- {'S','o','f','t','p','u','b','A','u','t','h','e','n','t','i','c','o','d','e', 0}
+-#define SP_CLEANUPPOLICY_FUNCTION (const WCHAR []) \
+- {'S','o','f','t','p','u','b','C','l','e','a','n','u','p', 0}
+-#elif defined(_MSC_VER)
++#if defined(_MSC_VER) || defined(__MINGW32__)
+ #define SP_INIT_FUNCTION L"SoftpubInitialize"
+ #define SP_OBJTRUST_FUNCTION L"SoftpubLoadMessage"
+ #define SP_SIGTRUST_FUNCTION L"SoftpubLoadSignature"
+@@ -146,10 +122,7 @@ static const WCHAR SP_CLEANUPPOLICY_FUNCTION[] =
+ #define WINTRUST_ACTION_TRUSTPROVIDER_TEST \
+ { 0x573e31f8, 0xddba, 0x11d0, { 0x8c,0xcb,0x00,0xc0,0x4f,0xc2,0x95,0xee }}
+
+-#if defined(__GNUC__)
+-#define SP_TESTDUMPPOLICY_FUNCTION_TEST (const WCHAR []) \
+- {'S','o','f','t','p','u','b','D','u','m','p','S','t','r','u','c','t','u','r','e', 0}
+-#elif defined(_MSC_VER)
++#if defined(_MSC_VER) || defined(__MINGW32__)
+ #define SP_TESTDUMPPOLICY_FUNCTION_TEST L"SoftpubDumpStructure"
+ #else
+ static const WCHAR SP_TESTDUMPPOLICY_FUNCTION_TEST[] =
+@@ -159,12 +132,7 @@ static const WCHAR SP_TESTDUMPPOLICY_FUNCTION_TEST[] =
+ #define HTTPSPROV_ACTION \
+ { 0x573e31f8, 0xaaba, 0x11d0, { 0x8c,0xcb,0x00,0xc0,0x4f,0xc2,0x95,0xee }}
+
+-#if defined(__GNUC__)
+-#define HTTPS_CERTTRUST_FUNCTION (const WCHAR []) \
+- {'H','T','T','P','S','C','e','r','t','i','f','i','c','a','t','e','T','r','u','s','t', 0}
+-#define HTTPS_FINALPOLICY_FUNCTION (const WCHAR []) \
+- {'H','T','T','P','S','F','i','n','a','l','P','r','o','v', 0}
+-#elif defined(_MSC_VER)
++#if defined(_MSC_VER) || defined(__MINGW32__)
+ #define HTTPS_FINALPOLICY_FUNCTION L"HTTPSFinalProv"
+ #define HTTPS_CERTTRUST_FUNCTION L"HTTPSCertificateTrust"
+ #else
+@@ -177,14 +145,7 @@ static const WCHAR HTTPS_FINALPOLICY_FUNCTION[] =
+ #define OFFICESIGN_ACTION_VERIFY \
+ { 0x5555c2cd, 0x17fb, 0x11d1, { 0x85,0xc4,0x00,0xc0,0x4f,0xc2,0x95,0xee }}
+
+-#if defined(__GNUC__)
+-#define OFFICE_POLICY_PROVIDER_DLL_NAME (const WCHAR []) \
+- {'W','I','N','T','R','U','S','T','.','D','L','L' ,0}
+-#define OFFICE_INITPROV_FUNCTION (const WCHAR []) \
+- {'O','f','f','i','c','e','I','n','i','t','i','a','l','i','z','e','P','o','l','i','c','y', 0}
+-#define OFFICE_CLEANUPPOLICY_FUNCTION (const WCHAR []) \
+- {'O','f','f','i','c','e','C','l','e','a','n','u','p','P','o','l','i','c','y', 0}
+-#elif defined(_MSC_VER)
++#if defined(_MSC_VER) || defined(__MINGW32__)
+ #define OFFICE_POLICY_PROVIDER_DLL_NAME SP_POLICY_PROVIDER_DLL_NAME
+ #define OFFICE_INITPROV_FUNCTION L"OfficeInitializePolicy"
+ #define OFFICE_CLEANUPPOLICY_FUNCTION L"OfficeCleanupPolicy"
+@@ -200,14 +161,7 @@ static const WCHAR OFFICE_CLEANUPPOLICY_FUNCTION[] =
+ #define DRIVER_ACTION_VERIFY \
+ { 0xf750e6c3, 0x38ee, 0x11d1, { 0x85,0xe5,0x00,0xc0,0x4f,0xc2,0x95,0xee }}
+
+-#if defined(__GNUC__)
+-#define DRIVER_INITPROV_FUNCTION (const WCHAR []) \
+- {'D','r','i','v','e','r','I','n','i','t','i','a','l','i','z','e','P','o','l','i','c','y', 0}
+-#define DRIVER_FINALPOLPROV_FUNCTION (const WCHAR []) \
+- {'D','r','i','v','e','r','F','i','n','a','l','P','o','l','i','c','y', 0}
+-#define DRIVER_CLEANUPPOLICY_FUNCTION (const WCHAR []) \
+- {'D','r','i','v','e','r','C','l','e','a','n','u','p','P','o','l','i','c','y', 0}
+-#elif defined(_MSC_VER)
++#if defined(_MSC_VER) || defined(__MINGW32__)
+ #define DRIVER_INITPROV_FUNCTION L"DriverInitializePolicy"
+ #define DRIVER_FINALPOLPROV_FUNCTION L"DriverFinalPolicy"
+ #define DRIVER_CLEANUPPOLICY_FUNCTION L"DriverCleanupPolicy"
+diff --git a/include/uxtheme.h b/include/uxtheme.h
+index a35f4ae48a..449dc6f6d4 100644
+--- a/include/uxtheme.h
++++ b/include/uxtheme.h
+@@ -114,12 +114,7 @@ HRESULT WINAPI GetThemeBackgroundRegion(HTHEME,HDC,int,int,const RECT*,HRGN*);
+ HRESULT WINAPI GetThemeBool(HTHEME,int,int,int,BOOL*);
+ HRESULT WINAPI GetThemeColor(HTHEME,int,int,int,COLORREF*);
+
+-#if defined(__GNUC__)
+-# define SZ_THDOCPROP_DISPLAYNAME (const WCHAR []){ 'D','i','s','p','l','a','y','N','a','m','e',0 }
+-# define SZ_THDOCPROP_CANONICALNAME (const WCHAR []){ 'T','h','e','m','e','N','a','m','e',0 }
+-# define SZ_THDOCPROP_TOOLTIP (const WCHAR []){ 'T','o','o','l','T','i','p',0 }
+-# define SZ_THDOCPROP_AUTHOR (const WCHAR []){ 'a','u','t','h','o','r',0 }
+-#elif defined(_MSC_VER)
++#if defined(_MSC_VER) || defined(__MINGW32__)
+ # define SZ_THDOCPROP_DISPLAYNAME L"DisplayName"
+ # define SZ_THDOCPROP_CANONICALNAME L"ThemeName"
+ # define SZ_THDOCPROP_TOOLTIP L"ToolTip"
+diff --git a/include/vsstyle.h b/include/vsstyle.h
+index e6fb1a373a..c5850111fb 100644
+--- a/include/vsstyle.h
++++ b/include/vsstyle.h
+@@ -24,10 +24,7 @@
+ #define TMTVS_RESERVEDHIGH 19999
+
+ /* AEROWIZARDSTYLE class */
+-#if defined(__GNUC__)
+-#define VSCLASS_AEROWIZARDSTYLE (const WCHAR []){'A','E','R','O','W','I','Z','A','R','D','S','T','Y','L','E',0}
+-#define VSCLASS_AEROWIZARD (const WCHAR []){'A','E','R','O','W','I','Z','A','R','D',0}
+-#elif defined(_MSC_VER)
++#if defined(_MSC_VER) || defined(__MINGW32__)
+ #define VSCLASS_AEROWIZARDSTYLE L"AEROWIZARDSTYLE"
+ #define VSCLASS_AEROWIZARD L"AEROWIZARD"
+ #else
+@@ -59,10 +56,7 @@ enum CONTENTAREASTATES {
+ };
+
+ /* BUTTONSTYLE class */
+-#if defined(__GNUC__)
+-#define VSCLASS_BUTTONSTYLE (const WCHAR []){'B','U','T','T','O','N','S','T','Y','L','E',0}
+-#define VSCLASS_BUTTON (const WCHAR []){'B','U','T','T','O','N',0}
+-#elif defined(_MSC_VER)
++#if defined(_MSC_VER) || defined(__MINGW32__)
+ #define VSCLASS_BUTTONSTYLE L"BUTTONSTYLE"
+ #define VSCLASS_BUTTON L"BUTTON"
+ #else
+@@ -148,10 +142,7 @@ enum COMMANDLINKGLYPHSTATES {
+ };
+
+ /* COMBOBOXSTYLE class */
+-#if defined(__GNUC__)
+-#define VSCLASS_COMBOBOXSTYLE (const WCHAR []){'C','O','M','B','O','B','O','X','S','T','Y','L','E',0}
+-#define VSCLASS_COMBOBOX (const WCHAR []){'C','O','M','B','O','B','O','X',0}
+-#elif defined(_MSC_VER)
++#if defined(_MSC_VER) || defined(__MINGW32__)
+ #define VSCLASS_COMBOBOXSTYLE L"COMBOBOXSTYLE"
+ #define VSCLASS_COMBOBOX L"COMBOBOX"
+ #else
+@@ -222,10 +213,7 @@ enum CUEBANNERSTATES {
+ };
+
+ /* COMMUNICATIONSSTYLE class */
+-#if defined(__GNUC__)
+-#define VSCLASS_COMMUNICATIONSSTYLE (const WCHAR []){'C','O','M','M','U','N','I','C','A','T','I','O','N','S','S','T','Y','L','E',0}
+-#define VSCLASS_COMMUNICATIONS (const WCHAR []){'C','O','M','M','U','N','I','C','A','T','I','O','N','S',0}
+-#elif defined(_MSC_VER)
++#if defined(_MSC_VER) || defined(__MINGW32__)
+ #define VSCLASS_COMMUNICATIONSSTYLE L"COMMUNICATIONSSTYLE"
+ #define VSCLASS_COMMUNICATIONS L"COMMUNICATIONS"
+ #else
+@@ -246,10 +234,7 @@ enum TABSTATES {
+ };
+
+ /* CONTROLPANELSTYLE class */
+-#if defined(__GNUC__)
+-#define VSCLASS_CONTROLPANELSTYLE (const WCHAR []){'C','O','N','T','R','O','L','P','A','N','E','L','S','T','Y','L','E',0}
+-#define VSCLASS_CONTROLPANEL (const WCHAR []){'C','O','N','T','R','O','L','P','A','N','E','L',0}
+-#elif defined(_MSC_VER)
++#if defined(_MSC_VER) || defined(__MINGW32__)
+ #define VSCLASS_CONTROLPANELSTYLE L"CONTROLPANELSTYLE"
+ #define VSCLASS_CONTROLPANEL L"CONTROLPANEL"
+ #else
+@@ -309,10 +294,7 @@ enum SECTIONTITLELINKSTATES {
+ };
+
+ /* DATEPICKERSTYLE class */
+-#if defined(__GNUC__)
+-#define VSCLASS_DATEPICKERSTYLE (const WCHAR []){'D','A','T','E','P','I','C','K','E','R','S','T','Y','L','E',0}
+-#define VSCLASS_DATEPICKER (const WCHAR []){'D','A','T','E','P','I','C','K','E','R',0}
+-#elif defined(_MSC_VER)
++#if defined(_MSC_VER) || defined(__MINGW32__)
+ #define VSCLASS_DATEPICKERSTYLE L"DATEPICKERSTYLE"
+ #define VSCLASS_DATEPICKER L"DATEPICKER"
+ #else
+@@ -349,10 +331,7 @@ enum SHOWCALENDARBUTTONRIGHTSTATES {
+ };
+
+ /* DRAGDROPSTYLE class */
+-#if defined(__GNUC__)
+-#define VSCLASS_DRAGDROPSTYLE (const WCHAR []){'D','R','A','G','D','R','O','P','S','T','Y','L','E',0}
+-#define VSCLASS_DRAGDROP (const WCHAR []){'D','R','A','G','D','R','O','P',0}
+-#elif defined(_MSC_VER)
++#if defined(_MSC_VER) || defined(__MINGW32__)
+ #define VSCLASS_DRAGDROPSTYLE L"DRAGDROPSTYLE"
+ #define VSCLASS_DRAGDROP L"DRAGDROP"
+ #else
+@@ -404,10 +383,7 @@ enum NONESTATES {
+ };
+
+ /* EDITSTYLE class */
+-#if defined(__GNUC__)
+-#define VSCLASS_EDITSTYLE (const WCHAR []){'E','D','I','T','S','T','Y','L','E',0}
+-#define VSCLASS_EDIT (const WCHAR []){'E','D','I','T',0}
+-#elif defined(_MSC_VER)
++#if defined(_MSC_VER) || defined(__MINGW32__)
+ #define VSCLASS_EDITSTYLE L"EDITSTYLE"
+ #define VSCLASS_EDIT L"EDIT"
+ #else
+@@ -485,10 +461,7 @@ enum EDITBORDER_HVSCROLLSTATES {
+ };
+
+ /* EXPLORERBARSTYLE class */
+-#if defined(__GNUC__)
+-#define VSCLASS_EXPLORERBARSTYLE (const WCHAR []){'E','X','P','L','O','R','E','R','B','A','R','S','T','Y','L','E',0}
+-#define VSCLASS_EXPLORERBAR (const WCHAR []){'E','X','P','L','O','R','E','R','B','A','R',0}
+-#elif defined(_MSC_VER)
++#if defined(_MSC_VER) || defined(__MINGW32__)
+ #define VSCLASS_EXPLORERBARSTYLE L"EXPLORERBARSTYLE"
+ #define VSCLASS_EXPLORERBAR L"EXPLORERBAR"
+ #else
+@@ -559,10 +532,7 @@ enum SPECIALGROUPEXPANDSTATES {
+ };
+
+ /* FLYOUTSTYLE class */
+-#if defined(__GNUC__)
+-#define VSCLASS_FLYOUTSTYLE (const WCHAR []){'F','L','Y','O','U','T','S','T','Y','L','E',0}
+-#define VSCLASS_FLYOUT (const WCHAR []){'F','L','Y','O','U','T',0}
+-#elif defined(_MSC_VER)
++#if defined(_MSC_VER) || defined(__MINGW32__)
+ #define VSCLASS_FLYOUTSTYLE L"FLYOUTSTYLE"
+ #define VSCLASS_FLYOUT L"FLYOUT"
+ #else
+@@ -606,10 +576,7 @@ enum LINKHEADERSTATES {
+ };
+
+ /* HEADERSTYLE class */
+-#if defined(__GNUC__)
+-#define VSCLASS_HEADERSTYLE (const WCHAR []){'H','E','A','D','E','R','S','T','Y','L','E',0}
+-#define VSCLASS_HEADER (const WCHAR []){'H','E','A','D','E','R',0}
+-#elif defined(_MSC_VER)
++#if defined(_MSC_VER) || defined(__MINGW32__)
+ #define VSCLASS_HEADERSTYLE L"HEADERSTYLE"
+ #define VSCLASS_HEADER L"HEADER"
+ #else
+@@ -684,10 +651,7 @@ enum HEADEROVERFLOWSTATES {
+ };
+
+ /* LISTBOXSTYLE class */
+-#if defined(__GNUC__)
+-#define VSCLASS_LISTBOXSTYLE (const WCHAR []){'L','I','S','T','B','O','X','S','T','Y','L','E',0}
+-#define VSCLASS_LISTBOX (const WCHAR []){'L','I','S','T','B','O','X',0}
+-#elif defined(_MSC_VER)
++#if defined(_MSC_VER) || defined(__MINGW32__)
+ #define VSCLASS_LISTBOXSTYLE L"LISTBOXSTYLE"
+ #define VSCLASS_LISTBOX L"LISTBOX"
+ #else
+@@ -741,10 +705,7 @@ enum ITEMSTATES {
+ };
+
+ /* LISTVIEWSTYLE class */
+-#if defined(__GNUC__)
+-#define VSCLASS_LISTVIEWSTYLE (const WCHAR []){'L','I','S','T','V','I','E','W','S','T','Y','L','E',0}
+-#define VSCLASS_LISTVIEW (const WCHAR []){'L','I','S','T','V','I','E','W',0}
+-#elif defined(_MSC_VER)
++#if defined(_MSC_VER) || defined(__MINGW32__)
+ #define VSCLASS_LISTVIEWSTYLE L"LISTVIEWSTYLE"
+ #define VSCLASS_LISTVIEW L"LISTVIEW"
+ #else
+@@ -827,10 +788,7 @@ enum COLLAPSEBUTTONSTATES {
+ };
+
+ /* MENUSTYLE class */
+-#if defined(__GNUC__)
+-#define VSCLASS_MENUSTYLE (const WCHAR []){'M','E','N','U','S','T','Y','L','E',0}
+-#define VSCLASS_MENU (const WCHAR []){'M','E','N','U',0}
+-#elif defined(_MSC_VER)
++#if defined(_MSC_VER) || defined(__MINGW32__)
+ #define VSCLASS_MENUSTYLE L"MENUSTYLE"
+ #define VSCLASS_MENU L"MENU"
+ #else
+@@ -923,9 +881,7 @@ enum SYSTEMRESTORESTATES {
+ };
+
+ /* NAVIGATION class */
+-#if defined(__GNUC__)
+-#define VSCLASS_NAVIGATION (const WCHAR []){'N','A','V','I','G','A','T','I','O','N',0}
+-#elif defined(_MSC_VER)
++#if defined(_MSC_VER) || defined(__MINGW32__)
+ #define VSCLASS_NAVIGATION L"NAVIGATION"
+ #else
+ static const WCHAR VSCLASS_NAVIGATION [] = {'N','A','V','I','G','A','T','I','O','N',0};
+@@ -959,10 +915,7 @@ enum NAV_MENUBUTTONSTATES {
+ };
+
+ /* PROGRESSSTYLE class */
+-#if defined(__GNUC__)
+-#define VSCLASS_PROGRESSSTYLE (const WCHAR []){'P','R','O','G','R','E','S','S','S','T','Y','L','E',0}
+-#define VSCLASS_PROGRESS (const WCHAR []){'P','R','O','G','R','E','S','S',0}
+-#elif defined(_MSC_VER)
++#if defined(_MSC_VER) || defined(__MINGW32__)
+ #define VSCLASS_PROGRESSSTYLE L"PROGRESSSTYLE"
+ #define VSCLASS_PROGRESS L"PROGRESS"
+ #else
+@@ -1012,10 +965,7 @@ enum FILLVERTSTATES {
+ };
+
+ /* REBARSTYLE class */
+-#if defined(__GNUC__)
+-#define VSCLASS_REBARSTYLE (const WCHAR []){'R','E','B','A','R','S','T','Y','L','E',0}
+-#define VSCLASS_REBAR (const WCHAR []){'R','E','B','A','R',0}
+-#elif defined(_MSC_VER)
++#if defined(_MSC_VER) || defined(__MINGW32__)
+ #define VSCLASS_REBARSTYLE L"REBARSTYLE"
+ #define VSCLASS_REBAR L"REBAR"
+ #else
+@@ -1061,10 +1011,7 @@ enum SPLITTERVERTSTATES {
+ };
+
+ /* SCROLLBARSTYLE class */
+-#if defined(__GNUC__)
+-#define VSCLASS_SCROLLBARSTYLE (const WCHAR []){'S','C','R','O','L','L','B','A','R','S','T','Y','L','E',0}
+-#define VSCLASS_SCROLLBAR (const WCHAR []){'S','C','R','O','L','L','B','A','R',0}
+-#elif defined(_MSC_VER)
++#if defined(_MSC_VER) || defined(__MINGW32__)
+ #define VSCLASS_SCROLLBARSTYLE L"SCROLLBARSTYLE"
+ #define VSCLASS_SCROLLBAR L"SCROLLBAR"
+ #else
+@@ -1130,16 +1077,12 @@ enum SIZEBOXSTATES {
+ };
+
+ /* SPINSTYLE class */
+-#if defined(__GNUC__)
+-#define VSCLASS_SPINSTYLE (const WCHAR []){'S','P','I','N','S','T','Y','L','E',0}
+-#elif defined(_MSC_VER)
++#if defined(_MSC_VER) || defined(__MINGW32__)
+ #define VSCLASS_SPINSTYLE L"SPINSTYLE"
+ #else
+ static const WCHAR VSCLASS_SPINSTYLE [] = {'S','P','I','N','S','T','Y','L','E',0};
+ #endif
+-#if defined(__GNUC__)
+-#define VSCLASS_SPIN (const WCHAR []){'S','P','I','N',0}
+-#elif defined(_MSC_VER)
++#if defined(_MSC_VER) || defined(__MINGW32__)
+ #define VSCLASS_SPIN L"SPIN"
+ #else
+ static const WCHAR VSCLASS_SPIN [] = {'S','P','I','N',0};
+@@ -1183,10 +1126,7 @@ enum DOWNHORZSTATES {
+ };
+
+ /* STATUSSTYLE class */
+-#if defined(__GNUC__)
+-#define VSCLASS_STATUSSTYLE (const WCHAR []){'S','T','A','T','U','S','S','T','Y','L','E',0}
+-#define VSCLASS_STATUS (const WCHAR []){'S','T','A','T','U','S',0}
+-#elif defined(_MSC_VER)
++#if defined(_MSC_VER) || defined(__MINGW32__)
+ #define VSCLASS_STATUSSTYLE L"STATUSSTYLE"
+ #define VSCLASS_STATUS L"STATUS"
+ #else
+@@ -1203,10 +1143,7 @@ enum STATUSPARTS {
+ #define STATUSSTYLEPARTS STATUSPARTS;
+
+ /* TABSTYLE class */
+-#if defined(__GNUC__)
+-#define VSCLASS_TABSTYLE (const WCHAR []){'T','A','B','S','T','Y','L','E',0}
+-#define VSCLASS_TAB (const WCHAR []){'T','A','B',0}
+-#elif defined(_MSC_VER)
++#if defined(_MSC_VER) || defined(__MINGW32__)
+ #define VSCLASS_TABSTYLE L"TABSTYLE"
+ #define VSCLASS_TAB L"TAB"
+ #else
+@@ -1295,10 +1232,7 @@ enum TOPTABITEMBOTHEDGESTATES {
+ };
+
+ /* TASKDIALOGSTYLE class */
+-#if defined(__GNUC__)
+-#define VSCLASS_TASKDIALOGSTYLE (const WCHAR []){'T','A','S','K','D','I','A','L','O','G','S','T','Y','L','E',0}
+-#define VSCLASS_TASKDIALOG (const WCHAR []){'T','A','S','K','D','I','A','L','O','G',0}
+-#elif defined(_MSC_VER)
++#if defined(_MSC_VER) || defined(__MINGW32__)
+ #define VSCLASS_TASKDIALOGSTYLE L"TASKDIALOGSTYLE"
+ #define VSCLASS_TASKDIALOG L"TASKDIALOG"
+ #else
+@@ -1346,9 +1280,7 @@ enum EXPANDOBUTTONSTATES {
+ };
+
+ /* TEXTSTYLE class */
+-#if defined(__GNUC__)
+-#define VSCLASS_TEXTSTYLE (const WCHAR []){'T','E','X','T','S','T','Y','L','E',0}
+-#elif defined(_MSC_VER)
++#if defined(_MSC_VER) || defined(__MINGW32__)
+ #define VSCLASS_TEXTSTYLE L"TEXTSTYLE"
+ #else
+ static const WCHAR VSCLASS_TEXTSTYLE [] = {'T','E','X','T','S','T','Y','L','E',0};
+@@ -1379,10 +1311,7 @@ enum CONTROLLABELSTATES {
+ };
+
+ /* TOOLBARSTYLE class */
+-#if defined(__GNUC__)
+-#define VSCLASS_TOOLBARSTYLE (const WCHAR []){'T','O','O','L','B','A','R','S','T','Y','L','E',0}
+-#define VSCLASS_TOOLBAR (const WCHAR []){'T','O','O','L','B','A','R',0}
+-#elif defined(_MSC_VER)
++#if defined(_MSC_VER) || defined(__MINGW32__)
+ #define VSCLASS_TOOLBARSTYLE L"TOOLBARSTYLE"
+ #define VSCLASS_TOOLBAR L"TOOLBAR"
+ #else
+@@ -1413,10 +1342,7 @@ enum TOOLBARSTYLESTATES {
+ };
+
+ /* TOOLTIPSTYLE class */
+-#if defined(__GNUC__)
+-#define VSCLASS_TOOLTIPSTYLE (const WCHAR []){'T','O','O','L','T','I','P','S','T','Y','L','E',0}
+-#define VSCLASS_TOOLTIP (const WCHAR []){'T','O','O','L','T','I','P',0}
+-#elif defined(_MSC_VER)
++#if defined(_MSC_VER) || defined(__MINGW32__)
+ #define VSCLASS_TOOLTIPSTYLE L"TOOLTIPSTYLE"
+ #define VSCLASS_TOOLTIP L"TOOLTIP"
+ #else
+@@ -1461,10 +1387,7 @@ enum BALLOONSTEMSTATES {
+ };
+
+ /* TRACKBARSTYLE class */
+-#if defined(__GNUC__)
+-#define VSCLASS_TRACKBARSTYLE (const WCHAR []){'T','R','A','C','K','B','A','R','S','T','Y','L','E',0}
+-#define VSCLASS_TRACKBAR (const WCHAR []){'T','R','A','C','K','B','A','R',0}
+-#elif defined(_MSC_VER)
++#if defined(_MSC_VER) || defined(__MINGW32__)
+ #define VSCLASS_TRACKBARSTYLE L"TRACKBARSTYLE"
+ #define VSCLASS_TRACKBAR L"TRACKBAR"
+ #else
+@@ -1556,10 +1479,7 @@ enum TICSVERTSTATES {
+ };
+
+ /* TREEVIEWSTYLE class */
+-#if defined(__GNUC__)
+-#define VSCLASS_TREEVIEWSTYLE (const WCHAR []){'T','R','E','E','V','I','E','W','S','T','Y','L','E',0}
+-#define VSCLASS_TREEVIEW (const WCHAR []){'T','R','E','E','V','I','E','W',0}
+-#elif defined(_MSC_VER)
++#if defined(_MSC_VER) || defined(__MINGW32__)
+ #define VSCLASS_TREEVIEWSTYLE L"TREEVIEWSTYLE"
+ #define VSCLASS_TREEVIEW L"TREEVIEW"
+ #else
+@@ -1596,10 +1516,7 @@ enum HOTGLYPHSTATES {
+ };
+
+ /* WINDOWSTYLE class */
+-#if defined(__GNUC__)
+-#define VSCLASS_WINDOWSTYLE (const WCHAR []){'W','I','N','D','O','W','S','T','Y','L','E',0}
+-#define VSCLASS_WINDOW (const WCHAR []){'W','I','N','D','O','W',0}
+-#elif defined(_MSC_VER)
++#if defined(_MSC_VER) || defined(__MINGW32__)
+ #define VSCLASS_WINDOWSTYLE L"WINDOWSTYLE"
+ #define VSCLASS_WINDOW L"WINDOW"
+ #else
+diff --git a/include/vssym32.h b/include/vssym32.h
+index 3536462c1a..4e7c2f791d 100644
+--- a/include/vssym32.h
++++ b/include/vssym32.h
+@@ -378,9 +378,7 @@ enum GLYPHFONTSIZINGTYPE {
+ #define TMT_ATLASRECT 8002
+
+ /* LINK class */
+-#if defined(__GNUC__)
+-#define VSCLASS_LINK (const WCHAR []){'L','I','N','K',0}
+-#elif defined(_MSC_VER)
++#if defined(_MSC_VER) || defined(__MINGW32__)
+ #define VSCLASS_LINK L"LINK"
+ #else
+ static const WCHAR VSCLASS_LINK[] = {'L','I','N','K',0};
+@@ -396,9 +394,7 @@ enum HYPERLINKSTATES {
+ };
+
+ /* EMPTYMARKUP class */
+-#if defined(__GNUC__)
+-#define VSCLASS_EMPTYMARKUP (const WCHAR []){'E','M','P','T','Y','M','A','R','K','U','P',0}
+-#elif defined(_MSC_VER)
++#if defined(_MSC_VER) || defined(__MINGW32__)
+ #define VSCLASS_EMPTYMARKUP L"EMPTYMARKUP"
+ #else
+ static const WCHAR VSCLASS_EMPTYMARKUP[] = {'E','M','P','T','Y','M','A','R','K','U','P',0};
+@@ -414,9 +410,7 @@ enum MARKUPTEXTSTATES {
+ };
+
+ /* STATIC class */
+-#if defined(__GNUC__)
+-#define VSCLASS_STATIC (const WCHAR []){'S','T','A','T','I','C',0}
+-#elif defined(_MSC_VER)
++#if defined(_MSC_VER) || defined(__MINGW32__)
+ #define VSCLASS_STATIC L"STATIC"
+ #else
+ static const WCHAR VSCLASS_STATIC[] = {'S','T','A','T','I','C',0};
+@@ -427,9 +421,7 @@ enum STATICPARTS {
+ };
+
+ /* PAGE class */
+-#if defined(__GNUC__)
+-#define VSCLASS_PAGE (const WCHAR []){'P','A','G','E',0}
+-#elif defined(_MSC_VER)
++#if defined(_MSC_VER) || defined(__MINGW32__)
+ #define VSCLASS_PAGE L"PAGE"
+ #else
+ static const WCHAR VSCLASS_PAGE[] = {'P','A','G','E',0};
+@@ -443,9 +435,7 @@ enum PAGEPARTS {
+ };
+
+ /* MONTHCAL class */
+-#if defined(__GNUC__)
+-#define VSCLASS_MONTHCAL (const WCHAR []){'M','O','N','T','H','C','A','L',0}
+-#elif defined(_MSC_VER)
++#if defined(_MSC_VER) || defined(__MINGW32__)
+ #define VSCLASS_MONTHCAL L"MONTHCAL"
+ #else
+ static const WCHAR VSCLASS_MONTHCAL[] = {'M','O','N','T','H','C','A','L',0};
+@@ -514,9 +504,7 @@ enum NAVPREVSTATES {
+ };
+
+ /* CLOCK class */
+-#if defined(__GNUC__)
+-#define VSCLASS_CLOCK (const WCHAR []){'C','L','O','C','K',0}
+-#elif defined(_MSC_VER)
++#if defined(_MSC_VER) || defined(__MINGW32__)
+ #define VSCLASS_CLOCK L"CLOCK"
+ #else
+ static const WCHAR VSCLASS_CLOCK[] = {'C','L','O','C','K',0};
+@@ -531,9 +519,7 @@ enum CLOCKSTATES {
+ };
+
+ /* TRAYNOTIFY class */
+-#if defined(__GNUC__)
+-#define VSCLASS_TRAYNOTIFY (const WCHAR []){'T','R','A','Y','N','O','T','I','F','Y',0}
+-#elif defined(_MSC_VER)
++#if defined(_MSC_VER) || defined(__MINGW32__)
+ #define VSCLASS_TRAYNOTIFY L"TRAYNOTIFY"
+ #else
+ static const WCHAR VSCLASS_TRAYNOTIFY[] = {'T','R','A','Y','N','O','T','I','F','Y',0};
+@@ -545,9 +531,7 @@ enum TRAYNOTIFYPARTS {
+ };
+
+ /* TASKBAR class */
+-#if defined(__GNUC__)
+-#define VSCLASS_TASKBAR (const WCHAR []){'T','A','S','K','B','A','R',0}
+-#elif defined(_MSC_VER)
++#if defined(_MSC_VER) || defined(__MINGW32__)
+ #define VSCLASS_TASKBAR L"TASKBAR"
+ #else
+ static const WCHAR VSCLASS_TASKBAR[] = {'T','A','S','K','B','A','R',0};
+@@ -565,9 +549,7 @@ enum TASKBARPARTS {
+ };
+
+ /* TASKBAND class */
+-#if defined(__GNUC__)
+-#define VSCLASS_TASKBAND (const WCHAR []){'T','A','S','K','B','A','N','D',0}
+-#elif defined(_MSC_VER)
++#if defined(_MSC_VER) || defined(__MINGW32__)
+ #define VSCLASS_TASKBAND L"TASKBAND"
+ #else
+ static const WCHAR VSCLASS_TASKBAND[] = {'T','A','S','K','B','A','N','D',0};
+@@ -580,9 +562,7 @@ enum TASKBANDPARTS {
+ };
+
+ /* STARTPANEL class */
+-#if defined(__GNUC__)
+-#define VSCLASS_STARTPANEL (const WCHAR []){'S','T','A','R','T','P','A','N','E','L',0}
+-#elif defined(_MSC_VER)
++#if defined(_MSC_VER) || defined(__MINGW32__)
+ #define VSCLASS_STARTPANEL L"STARTPANEL"
+ #else
+ static const WCHAR VSCLASS_STARTPANEL[] = {'S','T','A','R','T','P','A','N','E','L',0};
+@@ -653,9 +633,7 @@ enum LOGOFFBUTTONSSTATES {
+ };
+
+ /* MENUBAND class */
+-#if defined(__GNUC__)
+-#define VSCLASS_MENUBAND (const WCHAR []){'M','E','N','U','B','A','N','D',0}
+-#elif defined(_MSC_VER)
++#if defined(_MSC_VER) || defined(__MINGW32__)
+ #define VSCLASS_MENUBAND L"MENUBAND"
+ #else
+ static const WCHAR VSCLASS_MENUBAND[] = {'M','E','N','U','B','A','N','D',0};
+diff --git a/include/wincrypt.h b/include/wincrypt.h
+index 8ab503c503..f8e985da1b 100644
+--- a/include/wincrypt.h
++++ b/include/wincrypt.h
+@@ -1247,13 +1247,23 @@ typedef BOOL (WINAPI *PFN_CRYPT_ENUM_OID_FUNC)(DWORD dwEncodingType,
+ #define CALG_OID_INFO_CNG_ONLY 0xffffffff
+ #define CALG_OID_INFO_PARAMETERS 0xfffffffe
+
+-#define CRYPT_OID_INFO_HASH_PARAMETERS_ALGORITHM (const WCHAR []){'C','r','y','p','t','O','I','D','I','n','f','o','H','a','s','h','P','a','r','a','m','e','t','e','r','s',0}
+-#define CRYPT_OID_INFO_ECC_PARAMETERS_ALGORITHM (const WCHAR []){'C','r','y','p','t','O','I','D','I','n','f','o','E','C','C','P','a','r','a','m','e','t','e','r','s',0}
+-#define CRYPT_OID_INFO_MGF1_PARAMETERS_ALGORITHM (const WCHAR []){'C','r','y','p','t','O','I','D','I','n','f','o','M','g','f','1','P','a','r','a','m','e','t','e','r','s',0}
+-#define CRYPT_OID_INFO_NO_SIGN_ALGORITHM (const WCHAR []){'C','r','y','p','t','O','I','D','I','n','f','o','N','o','S','i','g','n',0}
+-#define CRYPT_OID_INFO_OAEP_PARAMETERS_ALGORITHM (const WCHAR []){'C','r','y','p','t','O','I','D','I','n','f','o','O','A','E','P','P','a','r','a','m','e','t','e','r','s',0}
+-#define CRYPT_OID_INFO_ECC_WRAP_PARAMETERS_ALGORITHM (const WCHAR []){'C','r','y','p','t','O','I','D','I','n','f','o','E','C','C','W','r','a','p','P','a','r','a','m','e','t','e','r','s',0}
+-#define CRYPT_OID_INFO_NO_PARAMETERS_ALGORITHM (const WCHAR []){'C','r','y','p','t','O','I','D','I','n','f','o','N','o','P','a','r','a','m','e','t','e','r','s',0}
++#if defined(_MSC_VER) || defined(__MINGW32__)
++#define CRYPT_OID_INFO_HASH_PARAMETERS_ALGORITHM L"CryptOIDInfoHashParameters"
++#define CRYPT_OID_INFO_ECC_PARAMETERS_ALGORITHM L"CryptOIDInfoECCParameters"
++#define CRYPT_OID_INFO_MGF1_PARAMETERS_ALGORITHM L"CryptOIDInfoMgf1Parameters"
++#define CRYPT_OID_INFO_NO_SIGN_ALGORITHM L"CryptOIDInfoNoSign"
++#define CRYPT_OID_INFO_OAEP_PARAMETERS_ALGORITHM L"CryptOIDInfoOAEPParameters"
++#define CRYPT_OID_INFO_ECC_WRAP_PARAMETERS_ALGORITHM L"CryptOIDInfoECCWrapParameters"
++#define CRYPT_OID_INFO_NO_PARAMETERS_ALGORITHM L"CryptOIDInfoNoParameters"
++#else
++static const WCHAR CRYPT_OID_INFO_HASH_PARAMETERS_ALGORITHM[] = {'C','r','y','p','t','O','I','D','I','n','f','o','H','a','s','h','P','a','r','a','m','e','t','e','r','s',0};
++static const WCHAR CRYPT_OID_INFO_ECC_PARAMETERS_ALGORITHM[] = {'C','r','y','p','t','O','I','D','I','n','f','o','E','C','C','P','a','r','a','m','e','t','e','r','s',0};
++static const WCHAR CRYPT_OID_INFO_MGF1_PARAMETERS_ALGORITHM[] = {'C','r','y','p','t','O','I','D','I','n','f','o','M','g','f','1','P','a','r','a','m','e','t','e','r','s',0};
++static const WCHAR CRYPT_OID_INFO_NO_SIGN_ALGORITHM[] = {'C','r','y','p','t','O','I','D','I','n','f','o','N','o','S','i','g','n',0};
++static const WCHAR CRYPT_OID_INFO_OAEP_PARAMETERS_ALGORITHM[] = {'C','r','y','p','t','O','I','D','I','n','f','o','O','A','E','P','P','a','r','a','m','e','t','e','r','s',0};
++static const WCHAR CRYPT_OID_INFO_ECC_WRAP_PARAMETERS_ALGORITHM[] = {'C','r','y','p','t','O','I','D','I','n','f','o','E','C','C','W','r','a','p','P','a','r','a','m','e','t','e','r','s',0};
++static const WCHAR CRYPT_OID_INFO_NO_PARAMETERS_ALGORITHM[] = {'C','r','y','p','t','O','I','D','I','n','f','o','N','o','P','a','r','a','m','e','t','e','r','s',0};
++#endif
+
+ typedef struct _CRYPT_OID_INFO {
+ DWORD cbSize;
+@@ -1698,11 +1708,7 @@ typedef const CERT_CRL_CONTEXT_PAIR *PCCERT_CRL_CONTEXT_PAIR;
+
+ /* Provider names */
+ #define MS_DEF_PROV_A "Microsoft Base Cryptographic Provider v1.0"
+-#if defined(__GNUC__)
+-# define MS_DEF_PROV_W (const WCHAR []){ 'M','i','c','r','o','s','o','f','t',' ', \
+- 'B','a','s','e',' ','C','r','y','p','t','o','g','r','a','p','h','i','c',' ', \
+- 'P','r','o','v','i','d','e','r',' ','v','1','.','0',0 }
+-#elif defined(_MSC_VER)
++#if defined(_MSC_VER) || defined(__MINGW32__)
+ # define MS_DEF_PROV_W L"Microsoft Base Cryptographic Provider v1.0"
+ #else
+ static const WCHAR MS_DEF_PROV_W[] = { 'M','i','c','r','o','s','o','f','t',' ',
+@@ -1712,11 +1718,7 @@ static const WCHAR MS_DEF_PROV_W[] = { 'M','i','c','r','o','s','o','
+ #define MS_DEF_PROV WINELIB_NAME_AW(MS_DEF_PROV_)
+
+ #define MS_ENHANCED_PROV_A "Microsoft Enhanced Cryptographic Provider v1.0"
+-#if defined(__GNUC__)
+-# define MS_ENHANCED_PROV_W (const WCHAR []){ 'M','i','c','r','o','s','o','f','t',' ', \
+- 'E','n','h','a','n','c','e','d',' ','C','r','y','p','t','o','g','r','a','p','h','i','c',' ', \
+- 'P','r','o','v','i','d','e','r',' ','v','1','.','0',0 }
+-#elif defined(_MSC_VER)
++#if defined(_MSC_VER) || defined(__MINGW32__)
+ # define MS_ENHANCED_PROV_W L"Microsoft Enhanced Cryptographic Provider v1.0"
+ #else
+ static const WCHAR MS_ENHANCED_PROV_W[] = { 'M','i','c','r','o','s','o','f','t',' ',
+@@ -1726,11 +1728,7 @@ static const WCHAR MS_ENHANCED_PROV_W[] = { 'M','i','c','r','o','s','o','
+ #define MS_ENHANCED_PROV WINELIB_NAME_AW(MS_ENHANCED_PROV_)
+
+ #define MS_STRONG_PROV_A "Microsoft Strong Cryptographic Provider"
+-#if defined(__GNUC__)
+-# define MS_STRONG_PROV_W (const WCHAR []){ 'M','i','c','r','o','s','o','f','t',' ', \
+- 'S','t','r','o','n','g',' ','C','r','y','p','t','o','g','r','a','p','h','i','c',' ', \
+- 'P','r','o','v','i','d','e','r',0 }
+-#elif defined(_MSC_VER)
++#if defined(_MSC_VER) || defined(__MINGW32__)
+ # define MS_STRONG_PROV_W L"Microsoft Strong Cryptographic Provider"
+ #else
+ static const WCHAR MS_STRONG_PROV_W[] = { 'M','i','c','r','o','s','o','f','t',' ',
+@@ -1740,11 +1738,7 @@ static const WCHAR MS_STRONG_PROV_W[] = { 'M','i','c','r','o','s','o','
+ #define MS_STRONG_PROV WINELIB_NAME_AW(MS_STRONG_PROV_)
+
+ #define MS_DEF_RSA_SIG_PROV_A "Microsoft RSA Signature Cryptographic Provider"
+-#if defined(__GNUC__)
+-# define MS_DEF_RSA_SIG_PROV_W (const WCHAR []){ 'M','i','c','r','o','s','o','f','t',' ', \
+- 'R','S','A',' ','S','i','g','n','a','t','u','r','e',' ', \
+- 'C','r','y','p','t','o','g','r','a','p','h','i','c',' ','P','r','o','v','i','d','e','r',0 }
+-#elif defined(_MSC_VER)
++#if defined(_MSC_VER) || defined(__MINGW32__)
+ # define MS_DEF_RSA_SIG_PROV_W L"Microsoft RSA Signature Cryptographic Provider"
+ #else
+ static const WCHAR MS_DEF_RSA_SIG_PROV_W[] = { 'M','i','c','r','o','s','o','f','t',' ',
+@@ -1754,11 +1748,7 @@ static const WCHAR MS_DEF_RSA_SIG_PROV_W[] = { 'M','i','c','r','o','s','o','
+ #define MS_DEF_RSA_SIG_PROV WINELIB_NAME_AW(MS_DEF_RSA_SIG_PROV_)
+
+ #define MS_DEF_RSA_SCHANNEL_PROV_A "Microsoft RSA SChannel Cryptographic Provider"
+-#if defined(__GNUC__)
+-# define MS_DEF_RSA_SCHANNEL_PROV_W (const WCHAR []){ 'M','i','c','r','o','s','o','f','t',' ', \
+- 'R','S','A',' ','S','C','h','a','n','n','e','l',' ', \
+- 'C','r','y','p','t','o','g','r','a','p','h','i','c',' ','P','r','o','v','i','d','e','r',0 }
+-#elif defined(_MSC_VER)
++#if defined(_MSC_VER) || defined(__MINGW32__)
+ # define MS_DEF_RSA_SCHANNEL_PROV_W L"Microsoft RSA SChannel Cryptographic Provider"
+ #else
+ static const WCHAR MS_DEF_RSA_SCHANNEL_PROV_W[] = { 'M','i','c','r','o','s','o','f','t',' ',
+@@ -1768,11 +1758,7 @@ static const WCHAR MS_DEF_RSA_SCHANNEL_PROV_W[] = { 'M','i','c','r','o','s','o',
+ #define MS_DEF_RSA_SCHANNEL_PROV WINELIB_NAME_AW(MS_DEF_RSA_SCHANNEL_PROV_)
+
+ #define MS_DEF_DSS_PROV_A "Microsoft Base DSS Cryptographic Provider"
+-#if defined(__GNUC__)
+-# define MS_DEF_DSS_PROV_W (const WCHAR []){ 'M','i','c','r','o','s','o','f','t',' ', \
+- 'B','a','s','e',' ','D','S','S',' ', \
+- 'C','r','y','p','t','o','g','r','a','p','h','i','c',' ','P','r','o','v','i','d','e','r',0 }
+-#elif defined(_MSC_VER)
++#if defined(_MSC_VER) || defined(__MINGW32__)
+ # define MS_DEF_DSS_PROV_W L"Microsoft Base DSS Cryptographic Provider"
+ #else
+ static const WCHAR MS_DEF_DSS_PROV_W[] = { 'M','i','c','r','o','s','o','f','t',' ',
+@@ -1782,12 +1768,7 @@ static const WCHAR MS_DEF_DSS_PROV_W[] = { 'M','i','c','r','o','s','o','
+ #define MS_DEF_DSS_PROV WINELIB_NAME_AW(MS_DEF_DSS_PROV_)
+
+ #define MS_DEF_DSS_DH_PROV_A "Microsoft Base DSS and Diffie-Hellman Cryptographic Provider"
+-#if defined(__GNUC__)
+-# define MS_DEF_DSS_DH_PROV_W (const WCHAR []){ 'M','i','c','r','o','s','o','f','t',' ', \
+- 'B','a','s','e',' ','D','S','S',' ','a','n','d',' ', \
+- 'D','i','f','f','i','e','-','H','e','l','l','m','a','n',' ', \
+- 'C','r','y','p','t','o','g','r','a','p','h','i','c',' ','P','r','o','v','i','d','e','r',0 }
+-#elif defined(_MSC_VER)
++#if defined(_MSC_VER) || defined(__MINGW32__)
+ # define MS_DEF_DSS_DH_PROV_W L"Microsoft Base DSS and Diffie-Hellman Cryptographic Provider"
+ #else
+ static const WCHAR MS_DEF_DSS_DH_PROV_W[] = { 'M','i','c','r','o','s','o','f','t',' ',
+@@ -1798,12 +1779,7 @@ static const WCHAR MS_DEF_DSS_DH_PROV_W[] = { 'M','i','c','r','o','s','o','
+ #define MS_DEF_DSS_DH_PROV WINELIB_NAME_AW(MS_DEF_DSS_DH_PROV_)
+
+ #define MS_ENH_DSS_DH_PROV_A "Microsoft Enhanced DSS and Diffie-Hellman Cryptographic Provider"
+-#if defined(__GNUC__)
+-# define MS_ENH_DSS_DH_PROV_W (const WCHAR []){ 'M','i','c','r','o','s','o','f','t',' ', \
+- 'E','n','h','a','n','c','e','d',' ','D','S','S',' ','a','n','d',' ', \
+- 'D','i','f','f','i','e','-','H','e','l','l','m','a','n',' ', \
+- 'C','r','y','p','t','o','g','r','a','p','h','i','c',' ','P','r','o','v','i','d','e','r',0 }
+-#elif defined(_MSC_VER)
++#if defined(_MSC_VER) || defined(__MINGW32__)
+ # define MS_ENH_DSS_DH_PROV_W L"Microsoft Enhanced DSS and Diffie-Hellman Cryptographic Provider"
+ #else
+ static const WCHAR MS_ENH_DSS_DH_PROV_W[] = { 'M','i','c','r','o','s','o','f','t',' ',
+@@ -1814,11 +1790,7 @@ static const WCHAR MS_ENH_DSS_DH_PROV_W[] = { 'M','i','c','r','o','s','o','
+ #define MS_ENH_DSS_DH_PROV WINELIB_NAME_AW(MS_ENH_DSS_DH_PROV_)
+
+ #define MS_DEF_DH_SCHANNEL_PROV_A "Microsoft DH SChannel Cryptographic Provider"
+-#if defined(__GNUC__)
+-# define MS_DEF_DH_SCHANNEL_PROV_W (const WCHAR []){ 'M','i','c','r','o','s','o','f','t',' ', \
+- 'D','H',' ','S','C','h','a','n','n','e','l',' ', \
+- 'C','r','y','p','t','o','g','r','a','p','h','i','c',' ','P','r','o','v','i','d','e','r',0 }
+-#elif defined(_MSC_VER)
++#if defined(_MSC_VER) || defined(__MINGW32__)
+ # define MS_DEF_DH_SCHANNEL_PROV_W L"Microsoft DH SChannel Cryptographic Provider"
+ #else
+ static const WCHAR MS_DEF_DH_SCHANNEL_PROV_W[] = { 'M','i','c','r','o','s','o','f','t',' ',
+@@ -1828,11 +1800,7 @@ static const WCHAR MS_DEF_DH_SCHANNEL_PROV_W[] = { 'M','i','c','r','o','s','o','
+ #define MS_DEF_DH_SCHANNEL_PROV WINELIB_NAME_AW(MS_DEF_DH_SCHANNEL_PROV_)
+
+ #define MS_SCARD_PROV_A "Microsoft Base Smart Card Cryptographic Provider"
+-#if defined(__GNUC__)
+-# define MS_SCARD_PROV_W (const WCHAR []){ 'M','i','c','r','o','s','o','f','t',' ', \
+- 'B','a','s','e',' ','S','m','a','r','t',' ','C','a','r','d',' ', \
+- 'C','r','y','p','t','o','g','r','a','p','h','i','c',' ','P','r','o','v','i','d','e','r',0 }
+-#elif defined(_MSC_VER)
++#if defined(_MSC_VER) || defined(__MINGW32__)
+ # define MS_SCARD_PROV_W L"Microsoft Base Smart Card Cryptographic Provider"
+ #else
+ static const WCHAR MS_SCARD_PROV_W[] = { 'M','i','c','r','o','s','o','f','t',' ',
+@@ -1842,11 +1810,7 @@ static const WCHAR MS_SCARD_PROV_W[] = { 'M','i','c','r','o','s','o','
+ #define MS_SCARD_PROV WINELIB_NAME_AW(MS_SCARD_PROV_)
+
+ #define MS_ENH_RSA_AES_PROV_A "Microsoft Enhanced RSA and AES Cryptographic Provider"
+-#if defined(__GNUC__)
+-# define MS_ENH_RSA_AES_PROV_W (const WCHAR []){ 'M','i','c','r','o','s','o','f','t',' ', \
+- 'E','n','h','a','n','c','e','d',' ','R','S','A',' ','a','n','d',' ','A','E','S',' ',\
+- 'C','r','y','p','t','o','g','r','a','p','h','i','c',' ','P','r','o','v','i','d','e','r',0 }
+-#elif defined(_MSC_VER)
++#if defined(_MSC_VER) || defined(__MINGW32__)
+ # define MS_ENH_RSA_AES_PROV_W L"Microsoft Enhanced RSA and AES Cryptographic Provider"
+ #else
+ static const WCHAR MS_ENH_RSA_AES_PROV_W[] = { 'M','i','c','r','o','s','o','f','t',' ',
+@@ -1856,12 +1820,7 @@ static const WCHAR MS_ENH_RSA_AES_PROV_W[] = { 'M','i','c','r','o','s'
+ #define MS_ENH_RSA_AES_PROV WINELIB_NAME_AW(MS_ENH_RSA_AES_PROV_)
+
+ #define MS_ENH_RSA_AES_PROV_XP_A "Microsoft Enhanced RSA and AES Cryptographic Provider (Prototype)"
+-#if defined(__GNUC__)
+-# define MS_ENH_RSA_AES_PROV_XP_W (const WCHAR []){ 'M','i','c','r','o','s','o','f','t',' ', \
+- 'E','n','h','a','n','c','e','d',' ','R','S','A',' ','a','n','d',' ','A','E','S',' ',\
+- 'C','r','y','p','t','o','g','r','a','p','h','i','c',' ','P','r','o','v','i','d','e','r',' ',\
+- '(','P','r','o','t','o','t','y','p','e',')',0 }
+-#elif defined(_MSC_VER)
++#if defined(_MSC_VER) || defined(__MINGW32__)
+ # define MS_ENH_RSA_AES_PROV_XP_W L"Microsoft Enhanced RSA and AES Cryptographic Provider (Prototype)"
+ #else
+ static const WCHAR MS_ENH_RSA_AES_PROV_XP_W[] = { 'M','i','c','r','o','s','o','f','t',' ',
+@@ -2178,16 +2137,7 @@ static const WCHAR MS_ENH_RSA_AES_PROV_XP_W[] = { 'M','i','c','r','o','s','o','f
+ #define CERT_SYSTEM_STORE_LOCAL_MACHINE_ENTERPRISE \
+ (CERT_SYSTEM_STORE_LOCAL_MACHINE_ENTERPRISE_ID << CERT_SYSTEM_STORE_LOCATION_SHIFT)
+
+-#if defined(__GNUC__)
+-#define CERT_LOCAL_MACHINE_SYSTEM_STORE_REGPATH (const WCHAR[])\
+- {'S','o','f','t','w','a','r','e','\\','M','i','c','r','o','s','o','f','t',\
+- '\\','S','y','s','t','e','m','C','e','r','t','i','f','i','c','a','t','e','s',\
+- 0 }
+-#define CERT_GROUP_POLICY_SYSTEM_STORE_REGPATH (const WCHAR[])\
+- {'S','o','f','t','w','a','r','e','\\','P','o','l','i','c','i','e','s','\\',\
+- 'M','i','c','r','o','s','o','f','t','\\','S','y','s','t','e','m','C','e','r',\
+- 't','i','f','i','c','a','t','e','s',0 }
+-#elif defined(_MSC_VER)
++#if defined(_MSC_VER) || defined(__MINGW32__)
+ #define CERT_LOCAL_MACHINE_SYSTEM_STORE_REGPATH \
+ L"Software\\Microsoft\\SystemCertificates"
+ #define CERT_GROUP_POLICY_SYSTEM_STORE_REGPATH \
+@@ -2202,13 +2152,7 @@ static const WCHAR CERT_GROUP_POLICY_SYSTEM_STORE_REGPATH[] =
+ 't','i','f','i','c','a','t','e','s',0 };
+ #endif
+
+-#if defined(__GNUC__)
+-#define CERT_EFSBLOB_REGPATH (const WCHAR[])\
+-{'S','o','f','t','w','a','r','e','\\','P','o','l','i','c','i','e','s','\\',\
+- 'M','i','c','r','o','s','o','f','t','\\','S','y','s','t','e','m','C','e','r',\
+- 't','i','f','i','c','a','t','e','s','\\','E','F','S',0 }
+-#define CERT_EFSBLOB_VALUE_NAME (const WCHAR[]) {'E','F','S','B','l','o','b',0 }
+-#elif defined(_MSC_VER)
++#if defined(_MSC_VER) || defined(__MINGW32__)
+ #define CERT_EFSBLOB_REGPATH CERT_GROUP_POLICY_SYSTEM_STORE_REGPATH L"\\EFS"
+ #define CERT_EFSBLOB_VALUE_NAME L"EFSBlob"
+ #else
+@@ -2219,13 +2163,7 @@ static const WCHAR CERT_EFSBLOB_REGPATH[] =
+ static const WCHAR CERT_EFSBLOB_VALUE_NAME[] = { 'E','F','S','B','l','o','b',0 };
+ #endif
+
+-#if defined(__GNUC__)
+-#define CERT_PROT_ROOT_FLAGS_REGPATH (const WCHAR[])\
+-{'\\','R','o','o','t','\\','P','r','o','t','e','c','t','e','d','R','o','o','t',\
+- 's',0 }
+-#define CERT_PROT_ROOT_FLAGS_VALUE_NAME (const WCHAR[])\
+-{'F','l','a','g','s',0 }
+-#elif defined(_MSC_VER)
++#if defined(_MSC_VER) || defined(__MINGW32__)
+ #define CERT_PROT_ROOT_FLAGS_REGPATH L"\\Root\\ProtectedRoots"
+ #define CERT_PROT_ROOT_FLAGS_VALUE_NAME L"Flags"
+ #else
+@@ -2242,13 +2180,7 @@ static const WCHAR CERT_PROT_ROOT_FLAGS_VALUE_NAME[] = {'F','l','a','g','s',0 };
+ #define CERT_PROT_ROOT_DISABLE_NT_AUTH_REQUIRED_FLAG 0x10
+ #define CERT_PROT_ROOT_DISABLE_NOT_DEFINED_NAME_CONSTRAINT_FLAG 0x20
+
+-#if defined(__GNUC__)
+-#define CERT_TRUST_PUB_SAFER_GROUP_POLICY_REGPATH (const WCHAR[])\
+-{'S','o','f','t','w','a','r','e','\\','P','o','l','i','c','i','e','s','\\',\
+- 'M','i','c','r','o','s','o','f','t','\\','S','y','s','t','e','m','C','e','r',\
+- 't','i','f','i','c','a','t','e','s','\\','T','r','u','s','t','e','d',\
+- 'P','u','b','l','i','s','h','e','r','\\','S','a','f','e','r',0 }
+-#elif defined(_MSC_VER)
++#if defined(_MSC_VER) || defined(__MINGW32__)
+ #define CERT_TRUST_PUB_SAFER_GROUP_POLICY_REGPATH \
+ CERT_GROUP_POLICY_SYSTEM_STORE_REGPATH L"\\TrustedPublisher\\Safer"
+ #else
+@@ -2259,15 +2191,7 @@ static const WCHAR CERT_TRUST_PUB_SAFER_GROUP_POLICY_REGPATH[] =
+ 'P','u','b','l','i','s','h','e','r','\\','S','a','f','e','r',0 };
+ #endif
+
+-#if defined(__GNUC__)
+-#define CERT_TRUST_PUB_SAFER_LOCAL_MACHINE_REGPATH (const WCHAR[])\
+-{'S','o','f','t','w','a','r','e','\\','M','i','c','r','o','s','o','f','t','\\',\
+- 'S','y','s','t','e','m','C','e','r','t','i','f','i','c','a','t','e','s','\\',\
+- 'T','r','u','s','t','e','d','P','u','b','l','i','s','h','e','r','\\',\
+- 'S','a','f','e','r',0 }
+-#define CERT_TRUST_PUB_AUTHENTICODE_FLAGS_VALUE_NAME (const WCHAR[])\
+-{'A','u','t','h','e','n','t','i','c','o','d','e','F','l','a','g','s',0 };
+-#elif defined(_MSC_VER)
++#if defined(_MSC_VER) || defined(__MINGW32__)
+ #define CERT_TRUST_PUB_SAFER_LOCAL_MACHINE_REGPATH \
+ CERT_LOCAL_MACHINE_SYSTEM_STORE_REGPATH L"\\TrustedPublisher\\Safer"
+ #define CERT_TRUST_PUB_AUTHENTICODE_FLAGS_VALUE_NAME L"AuthenticodeFlags"
+@@ -2354,13 +2278,7 @@ static const WCHAR CERT_TRUST_PUB_AUTHENTICODE_FLAGS_VALUE_NAME[] =
+
+ #define CRYPT_OID_REGPATH "Software\\Microsoft\\Cryptography\\OID"
+ #define CRYPT_OID_REG_ENCODING_TYPE_PREFIX "EncodingType "
+-#if defined(__GNUC__)
+-# define CRYPT_OID_REG_DLL_VALUE_NAME (const WCHAR []){ 'D','l','l',0 }
+-# define CRYPT_OID_REG_FUNC_NAME_VALUE_NAME \
+- (const WCHAR []){ 'F','u','n','c','N','a','m','e',0 }
+-# define CRYPT_OID_REG_FLAGS_VALUE_NAME \
+- (const WCHAR []){ 'C','r','y','p','t','F','l','a','g','s',0 }
+-#elif defined(_MSC_VER)
++#if defined(_MSC_VER) || defined(__MINGW32__)
+ # define CRYPT_OID_REG_DLL_VALUE_NAME L"Dll"
+ # define CRYPT_OID_REG_FUNC_NAME_VALUE_NAME L"FuncName"
+ # define CRYPT_OID_REG_FLAGS_VALUE_NAME L"CryptFlags"
+@@ -2426,23 +2344,7 @@ static const WCHAR CRYPT_OID_REG_FLAGS_VALUE_NAME[] =
+ #define CERT_PHYSICAL_STORE_PREDEFINED_ENUM_FLAG 0x1
+
+ /* predefined store names */
+-#if defined(__GNUC__)
+-# define CERT_PHYSICAL_STORE_DEFAULT_NAME (const WCHAR[])\
+- {'.','D','e','f','a','u','l','t','0'}
+-# define CERT_PHYSICAL_STORE_GROUP_POLICY_NAME (const WCHAR[])\
+- {'.','G','r','o','u','p','P','o','l','i','c','y',0}
+-# define CERT_PHYSICAL_STORE_LOCAL_MACHINE_NAME (const WCHAR[])\
+- {'.','L','o','c','a','l','M','a','c','h','i','n','e',0}
+-# define CERT_PHYSICAL_STORE_DS_USER_CERTIFICATE_NAME (const WCHAR[])\
+- {'.','U','s','e','r','C','e','r','t','i','f','i','c','a','t','e',0}
+-# define CERT_PHYSICAL_STORE_LOCAL_MACHINE_GROUP_POLICY_NAME (const WCHAR[])\
+- {'.','L','o','c','a','l','M','a','c','h','i','n','e','G','r','o','u','p',\
+- 'P','o','l','i','c','y',0}
+-# define CERT_PHYSICAL_STORE_ENTERPRISE_NAME (const WCHAR[])\
+- {'.','E','n','t','e','r','p','r','i','s','e',0}
+-# define CERT_PHYSICAL_STORE_AUTH_ROOT_NAME (const WCHAR[])\
+- {'.','A','u','t','h','R','o','o','t',0}
+-#elif defined(_MSC_VER)
++#if defined(_MSC_VER) || defined(__MINGW32__)
+ # define CERT_PHYSICAL_STORE_DEFAULT_NAME \
+ L".Default"
+ # define CERT_PHYSICAL_STORE_GROUP_POLICY_NAME \
+diff --git a/include/winnls.h b/include/winnls.h
+index 3be5077ad3..e790da4832 100644
+--- a/include/winnls.h
++++ b/include/winnls.h
+@@ -324,17 +324,13 @@ extern "C" {
+ #define LOCALE_IDIGITSUBSTITUTION 0x1014
+
+ /* Locale name special values */
+-#if defined(__GNUC__)
+-# define LOCALE_NAME_INVARIANT (const WCHAR []){ 0 }
+-#elif defined(_MSC_VER)
++#if defined(_MSC_VER) || defined(__MINGW32__)
+ # define LOCALE_NAME_INVARIANT L""
+ #else
+ static const WCHAR LOCALE_NAME_INVARIANT[] = { 0 };
+ #endif
+
+-#if defined(__GNUC__)
+-# define LOCALE_NAME_SYSTEM_DEFAULT (const WCHAR []){'!','s','y','s','-','d','e','f','a','u','l','t','-','l','o','c','a','l','e',0}
+-#elif defined(_MSC_VER)
++#if defined(_MSC_VER) || defined(__MINGW32__)
+ # define LOCALE_NAME_SYSTEM_DEFAULT L"!sys-default-locale"
+ #else
+ static const WCHAR LOCALE_NAME_SYSTEM_DEFAULT[] = {'!','s','y','s','-','d','e','f','a','u','l','t','-','l','o','c','a','l','e',0};
+diff --git a/include/winnt.h b/include/winnt.h
+index 310a6254cd..9eb61dbdaf 100644
+--- a/include/winnt.h
++++ b/include/winnt.h
+@@ -4158,7 +4158,7 @@ typedef struct _ACL_SIZE_INFORMATION
+ * Privilege Names
+ */
+ #ifdef UNICODE
+-#if defined(_MSC_VER)
++#if defined(_MSC_VER) || defined(__MINGW32__)
+ #define SE_CREATE_TOKEN_NAME L"SeCreateTokenPrivilege"
+ #define SE_ASSIGNPRIMARYTOKEN_NAME L"SeAssignPrimaryTokenPrivilege"
+ #define SE_LOCK_MEMORY_NAME L"SeLockMemoryPrivilege"
+@@ -4188,37 +4188,7 @@ typedef struct _ACL_SIZE_INFORMATION
+ #define SE_MANAGE_VOLUME_NAME L"SeManageVolumePrivilege"
+ #define SE_IMPERSONATE_NAME L"SeImpersonatePrivilege"
+ #define SE_CREATE_GLOBAL_NAME L"SeCreateGlobalPrivilege"
+-#elif defined(__GNUC__)
+-#define SE_CREATE_TOKEN_NAME (const WCHAR []){ 'S','e','C','r','e','a','t','e','T','o','k','e','n','P','r','i','v','i','l','e','g','e',0 }
+-#define SE_ASSIGNPRIMARYTOKEN_NAME (const WCHAR []){ 'S','e','A','s','s','i','g','n','P','r','i','m','a','r','y','T','o','k','e','n','P','r','i','v','i','l','e','g','e',0 }
+-#define SE_LOCK_MEMORY_NAME (const WCHAR []){ 'S','e','L','o','c','k','M','e','m','o','r','y','P','r','i','v','i','l','e','g','e',0 }
+-#define SE_INCREASE_QUOTA_NAME (const WCHAR []){ 'S','e','I','n','c','r','e','a','s','e','Q','u','o','t','a','P','r','i','v','i','l','e','g','e',0 }
+-#define SE_UNSOLICITED_INPUT_NAME (const WCHAR []){ 'S','e','U','n','s','o','l','i','c','i','t','e','d','I','n','p','u','t','P','r','i','v','i','l','e','g','e',0 }
+-#define SE_MACHINE_ACCOUNT_NAME (const WCHAR []){ 'S','e','M','a','c','h','i','n','e','A','c','c','o','u','n','t','P','r','i','v','i','l','e','g','e',0 }
+-#define SE_TCB_NAME (const WCHAR []){ 'S','e','T','c','b','P','r','i','v','i','l','e','g','e',0 }
+-#define SE_SECURITY_NAME (const WCHAR []){ 'S','e','S','e','c','u','r','i','t','y','P','r','i','v','i','l','e','g','e',0 }
+-#define SE_TAKE_OWNERSHIP_NAME (const WCHAR []){ 'S','e','T','a','k','e','O','w','n','e','r','s','h','i','p','P','r','i','v','i','l','e','g','e',0 }
+-#define SE_LOAD_DRIVER_NAME (const WCHAR []){ 'S','e','L','o','a','d','D','r','i','v','e','r','P','r','i','v','i','l','e','g','e',0 }
+-#define SE_SYSTEM_PROFILE_NAME (const WCHAR []){ 'S','e','S','y','s','t','e','m','P','r','o','f','i','l','e','P','r','i','v','i','l','e','g','e',0 }
+-#define SE_SYSTEMTIME_NAME (const WCHAR []){ 'S','e','S','y','s','t','e','m','t','i','m','e','P','r','i','v','i','l','e','g','e',0 }
+-#define SE_PROF_SINGLE_PROCESS_NAME (const WCHAR []){ 'S','e','P','r','o','f','i','l','e','S','i','n','g','l','e','P','r','o','c','e','s','s','P','r','i','v','i','l','e','g','e',0 }
+-#define SE_INC_BASE_PRIORITY_NAME (const WCHAR []){ 'S','e','I','n','c','r','e','a','s','e','B','a','s','e','P','r','i','o','r','i','t','y','P','r','i','v','i','l','e','g','e',0 }
+-#define SE_CREATE_PAGEFILE_NAME (const WCHAR []){ 'S','e','C','r','e','a','t','e','P','a','g','e','f','i','l','e','P','r','i','v','i','l','e','g','e',0 }
+-#define SE_CREATE_PERMANENT_NAME (const WCHAR []){ 'S','e','C','r','e','a','t','e','P','e','r','m','a','n','e','n','t','P','r','i','v','i','l','e','g','e',0 }
+-#define SE_BACKUP_NAME (const WCHAR []){ 'S','e','B','a','c','k','u','p','P','r','i','v','i','l','e','g','e',0 }
+-#define SE_RESTORE_NAME (const WCHAR []){ 'S','e','R','e','s','t','o','r','e','P','r','i','v','i','l','e','g','e',0 }
+-#define SE_SHUTDOWN_NAME (const WCHAR []){ 'S','e','S','h','u','t','d','o','w','n','P','r','i','v','i','l','e','g','e',0 }
+-#define SE_DEBUG_NAME (const WCHAR []){ 'S','e','D','e','b','u','g','P','r','i','v','i','l','e','g','e',0 }
+-#define SE_AUDIT_NAME (const WCHAR []){ 'S','e','A','u','d','i','t','P','r','i','v','i','l','e','g','e',0 }
+-#define SE_SYSTEM_ENVIRONMENT_NAME (const WCHAR []){ 'S','e','S','y','s','t','e','m','E','n','v','i','r','o','n','m','e','n','t','P','r','i','v','i','l','e','g','e',0 }
+-#define SE_CHANGE_NOTIFY_NAME (const WCHAR []){ 'S','e','C','h','a','n','g','e','N','o','t','i','f','y','P','r','i','v','i','l','e','g','e',0 }
+-#define SE_REMOTE_SHUTDOWN_NAME (const WCHAR []){ 'S','e','R','e','m','o','t','e','S','h','u','t','d','o','w','n','P','r','i','v','i','l','e','g','e',0 }
+-#define SE_UNDOCK_NAME (const WCHAR []){ 'S','e','U','n','d','o','c','k','P','r','i','v','i','l','e','g','e',0 }
+-#define SE_ENABLE_DELEGATION_NAME (const WCHAR []){ 'S','e','E','n','a','b','l','e','D','e','l','e','g','a','t','i','o','n','P','r','i','v','i','l','e','g','e',0 }
+-#define SE_MANAGE_VOLUME_NAME (const WCHAR []){ 'S','e','M','a','n','a','g','e','V','o','l','u','m','e','P','r','i','v','i','l','e','g','e',0 }
+-#define SE_IMPERSONATE_NAME (const WCHAR []){ 'S','e','I','m','p','e','r','s','o','n','a','t','e','P','r','i','v','i','l','e','g','e',0 }
+-#define SE_CREATE_GLOBAL_NAME (const WCHAR []){ 'S','e','C','r','e','a','t','e','G','l','o','b','a','l','P','r','i','v','i','l','e','g','e',0 }
+-#else /* _MSC_VER/__GNUC__ */
++#else /* _MSC_VER/__MINGW32__ */
+ static const WCHAR SE_CREATE_TOKEN_NAME[] = { 'S','e','C','r','e','a','t','e','T','o','k','e','n','P','r','i','v','i','l','e','g','e',0 };
+ static const WCHAR SE_ASSIGNPRIMARYTOKEN_NAME[] = { 'S','e','A','s','s','i','g','n','P','r','i','m','a','r','y','T','o','k','e','n','P','r','i','v','i','l','e','g','e',0 };
+ static const WCHAR SE_LOCK_MEMORY_NAME[] = { 'S','e','L','o','c','k','M','e','m','o','r','y','P','r','i','v','i','l','e','g','e',0 };
+diff --git a/include/winspool.h b/include/winspool.h
+index b11438f0a3..d9e8f404cd 100644
+--- a/include/winspool.h
++++ b/include/winspool.h
+@@ -1142,290 +1142,232 @@ typedef struct _BIDI_RESPONSE_CONTAINER {
+ /* string constants */
+
+ #define SPLREG_DEFAULT_SPOOL_DIRECTORYA "DefaultSpoolDirectory"
+-#ifdef _MSC_VER
++#if defined(_MSC_VER) || defined(__MINGW32__)
+ #define SPLREG_DEFAULT_SPOOL_DIRECTORYW L"DefaultSpoolDirectory"
+-#elif defined(__GNUC__)
+-#define SPLREG_DEFAULT_SPOOL_DIRECTORYW (const WCHAR[]){'D','e','f','a','u','l','t','S','p','o','o','l','D','i','r','e','c','t','o','r','y',0}
+ #else
+ static const WCHAR SPLREG_DEFAULT_SPOOL_DIRECTORYW[] = {'D','e','f','a','u','l','t','S','p','o','o','l','D','i','r','e','c','t','o','r','y',0};
+ #endif
+ #define SPLREG_DEFAULT_SPOOL_DIRECTORY WINELIB_NAME_AW(SPLREG_DEFAULT_SPOOL_DIRECTORY)
+
+ #define SPLREG_PORT_THREAD_PRIORITY_DEFAULTA "PortThreadPriorityDefault"
+-#ifdef _MSC_VER
++#if defined(_MSC_VER) || defined(__MINGW32__)
+ #define SPLREG_PORT_THREAD_PRIORITY_DEFAULTW L"PortThreadPriorityDefault"
+-#elif defined(__GNUC__)
+-#define SPLREG_PORT_THREAD_PRIORITY_DEFAULTW (const WCHAR[]){'P','o','r','t','T','h','r','e','a','d','P','r','i','o','r','i','t','y','D','e','f','a','u','l','t',0}
+ #else
+ static const WCHAR SPLREG_PORT_THREAD_PRIORITY_DEFAULTW[] = {'P','o','r','t','T','h','r','e','a','d','P','r','i','o','r','i','t','y','D','e','f','a','u','l','t',0};
+ #endif
+ #define SPLREG_PORT_THREAD_PRIORITY_DEFAULT WINELIB_NAME_AW(SPLREG_PORT_THREAD_PRIORITY_DEFAULT)
+
+ #define SPLREG_PORT_THREAD_PRIORITYA "PortThreadPriority"
+-#ifdef _MSC_VER
++#if defined(_MSC_VER) || defined(__MINGW32__)
+ #define SPLREG_PORT_THREAD_PRIORITYW L"PortThreadPriority"
+-#elif defined(__GNUC__)
+-#define SPLREG_PORT_THREAD_PRIORITYW (const WCHAR[]){'P','o','r','t','T','h','r','e','a','d','P','r','i','o','r','i','t','y',0}
+ #else
+ static const WCHAR SPLREG_PORT_THREAD_PRIORITYW[] = {'P','o','r','t','T','h','r','e','a','d','P','r','i','o','r','i','t','y',0};
+ #endif
+ #define SPLREG_PORT_THREAD_PRIORITY WINELIB_NAME_AW(SPLREG_PORT_THREAD_PRIORITY)
+
+ #define SPLREG_SCHEDULER_THREAD_PRIORITY_DEFAULTA "SchedulerThreadPriorityDefault"
+-#ifdef _MSC_VER
++#if defined(_MSC_VER) || defined(__MINGW32__)
+ #define SPLREG_SCHEDULER_THREAD_PRIORITY_DEFAULTW L"SchedulerThreadPriorityDefault"
+-#elif defined(__GNUC__)
+-#define SPLREG_SCHEDULER_THREAD_PRIORITY_DEFAULTW (const WCHAR[]){'S','c','h','e','d','u','l','e','r','T','h','r','e','a','d','P','r','i','o','r','i','t','y','D','e','f','a','u','l','t',0}
+ #else
+ static const WCHAR SPLREG_SCHEDULER_THREAD_PRIORITY_DEFAULTW[] = {'S','c','h','e','d','u','l','e','r','T','h','r','e','a','d','P','r','i','o','r','i','t','y','D','e','f','a','u','l','t',0};
+ #endif
+ #define SPLREG_SCHEDULER_THREAD_PRIORITY_DEFAULT WINELIB_NAME_AW(SPLREG_SCHEDULER_THREAD_PRIORITY_DEFAULT)
+
+ #define SPLREG_SCHEDULER_THREAD_PRIORITYA "SchedulerThreadPriority"
+-#ifdef _MSC_VER
++#if defined(_MSC_VER) || defined(__MINGW32__)
+ #define SPLREG_SCHEDULER_THREAD_PRIORITYW L"SchedulerThreadPriority"
+-#elif defined(__GNUC__)
+-#define SPLREG_SCHEDULER_THREAD_PRIORITYW (const WCHAR[]){'S','c','h','e','d','u','l','e','r','T','h','r','e','a','d','P','r','i','o','r','i','t','y',0}
+ #else
+ static const WCHAR SPLREG_SCHEDULER_THREAD_PRIORITYW[] = {'S','c','h','e','d','u','l','e','r','T','h','r','e','a','d','P','r','i','o','r','i','t','y',0};
+ #endif
+ #define SPLREG_SCHEDULER_THREAD_PRIORITY WINELIB_NAME_AW(SPLREG_SCHEDULER_THREAD_PRIORITY)
+
+ #define SPLREG_BEEP_ENABLEDA "BeepEnabled"
+-#ifdef _MSC_VER
++#if defined(_MSC_VER) || defined(__MINGW32__)
+ #define SPLREG_BEEP_ENABLEDW L"BeepEnabled"
+-#elif defined(__GNUC__)
+-#define SPLREG_BEEP_ENABLEDW (const WCHAR[]){'B','e','e','p','E','n','a','b','l','e','d',0}
+ #else
+ static const WCHAR SPLREG_BEEP_ENABLEDW[] = {'B','e','e','p','E','n','a','b','l','e','d',0};
+ #endif
+ #define SPLREG_BEEP_ENABLED WINELIB_NAME_AW(SPLREG_BEEP_ENABLED)
+
+ #define SPLREG_NET_POPUPA "NetPopup"
+-#ifdef _MSC_VER
++#if defined(_MSC_VER) || defined(__MINGW32__)
+ #define SPLREG_NET_POPUPW L"NetPopup"
+-#elif defined(__GNUC__)
+-#define SPLREG_NET_POPUPW (const WCHAR[]){'N','e','t','P','o','p','u','p',0}
+ #else
+ static const WCHAR SPLREG_NET_POPUPW[] = {'N','e','t','P','o','p','u','p',0};
+ #endif
+ #define SPLREG_NET_POPUP WINELIB_NAME_AW(SPLREG_NET_POPUP)
+
+ #define SPLREG_RETRY_POPUPA "RetryPopup"
+-#ifdef _MSC_VER
++#if defined(_MSC_VER) || defined(__MINGW32__)
+ #define SPLREG_RETRY_POPUPW L"RetryPopup"
+-#elif defined(__GNUC__)
+-#define SPLREG_RETRY_POPUPW (const WCHAR[]){'R','e','t','r','y','P','o','p','u','p',0}
+ #else
+ static const WCHAR SPLREG_RETRY_POPUPW[] = {'R','e','t','r','y','P','o','p','u','p',0};
+ #endif
+ #define SPLREG_RETRY_POPUP WINELIB_NAME_AW(SPLREG_RETRY_POPUP)
+
+ #define SPLREG_NET_POPUP_TO_COMPUTERA "NetPopupToComputer"
+-#ifdef _MSC_VER
++#if defined(_MSC_VER) || defined(__MINGW32__)
+ #define SPLREG_NET_POPUP_TO_COMPUTERW L"NetPopupToComputer"
+-#elif defined(__GNUC__)
+-#define SPLREG_NET_POPUP_TO_COMPUTERW (const WCHAR[]){'N','e','t','P','o','p','u','p','T','o','C','o','m','p','u','t','e','r',0}
+ #else
+ static const WCHAR SPLREG_NET_POPUP_TO_COMPUTERW[] = {'N','e','t','P','o','p','u','p','T','o','C','o','m','p','u','t','e','r',0};
+ #endif
+ #define SPLREG_NET_POPUP_TO_COMPUTER WINELIB_NAME_AW(SPLREG_NET_POPUP_TO_COMPUTER)
+
+ #define SPLREG_EVENT_LOGA "EventLog"
+-#ifdef _MSC_VER
++#if defined(_MSC_VER) || defined(__MINGW32__)
+ #define SPLREG_EVENT_LOGW L"EventLog"
+-#elif defined(__GNUC__)
+-#define SPLREG_EVENT_LOGW (const WCHAR[]){'E','v','e','n','t','L','o','g',0}
+ #else
+ static const WCHAR SPLREG_EVENT_LOGW[] = {'E','v','e','n','t','L','o','g',0};
+ #endif
+ #define SPLREG_EVENT_LOG WINELIB_NAME_AW(SPLREG_EVENT_LOG)
+
+ #define SPLREG_MAJOR_VERSIONA "MajorVersion"
+-#ifdef _MSC_VER
++#if defined(_MSC_VER) || defined(__MINGW32__)
+ #define SPLREG_MAJOR_VERSIONW L"MajorVersion"
+-#elif defined(__GNUC__)
+-#define SPLREG_MAJOR_VERSIONW (const WCHAR[]){'M','a','j','o','r','V','e','r','s','i','o','n',0}
+ #else
+ static const WCHAR SPLREG_MAJOR_VERSIONW[] = {'M','a','j','o','r','V','e','r','s','i','o','n',0};
+ #endif
+ #define SPLREG_MAJOR_VERSION WINELIB_NAME_AW(SPLREG_MAJOR_VERSION)
+
+ #define SPLREG_MINOR_VERSIONA "MinorVersion"
+-#ifdef _MSC_VER
++#if defined(_MSC_VER) || defined(__MINGW32__)
+ #define SPLREG_MINOR_VERSIONW L"MinorVersion"
+-#elif defined(__GNUC__)
+-#define SPLREG_MINOR_VERSIONW (const WCHAR[]){'M','i','n','o','r','V','e','r','s','i','o','n',0}
+ #else
+ static const WCHAR SPLREG_MINOR_VERSIONW[] = {'M','i','n','o','r','V','e','r','s','i','o','n',0};
+ #endif
+ #define SPLREG_MINOR_VERSION WINELIB_NAME_AW(SPLREG_MINOR_VERSION)
+
+ #define SPLREG_ARCHITECTUREA "Architecture"
+-#ifdef _MSC_VER
++#if defined(_MSC_VER) || defined(__MINGW32__)
+ #define SPLREG_ARCHITECTUREW L"Architecture"
+-#elif defined(__GNUC__)
+-#define SPLREG_ARCHITECTUREW (const WCHAR[]){'A','r','c','h','i','t','e','c','t','u','r','e',0}
+ #else
+ static const WCHAR SPLREG_ARCHITECTUREW[] = {'A','r','c','h','i','t','e','c','t','u','r','e',0};
+ #endif
+ #define SPLREG_ARCHITECTURE WINELIB_NAME_AW(SPLREG_ARCHITECTURE)
+
+ #define SPLREG_OS_VERSIONA "OSVersion"
+-#ifdef _MSC_VER
++#if defined(_MSC_VER) || defined(__MINGW32__)
+ #define SPLREG_OS_VERSIONW L"OSVersion"
+-#elif defined(__GNUC__)
+-#define SPLREG_OS_VERSIONW (const WCHAR[]){'O','S','V','e','r','s','i','o','n',0}
+ #else
+ static const WCHAR SPLREG_OS_VERSIONW[] = {'O','S','V','e','r','s','i','o','n',0};
+ #endif
+ #define SPLREG_OS_VERSION WINELIB_NAME_AW(SPLREG_OS_VERSION)
+
+ #define SPLREG_OS_VERSIONEXA "OSVersionEx"
+-#ifdef _MSC_VER
++#if defined(_MSC_VER) || defined(__MINGW32__)
+ #define SPLREG_OS_VERSIONEXW L"OSVersionEx"
+-#elif defined(__GNUC__)
+-#define SPLREG_OS_VERSIONEXW (const WCHAR[]){'O','S','V','e','r','s','i','o','n','E','x',0}
+ #else
+ static const WCHAR SPLREG_OS_VERSIONEXW[] = {'O','S','V','e','r','s','i','o','n','E','x',0};
+ #endif
+ #define SPLREG_OS_VERSIONEX WINELIB_NAME_AW(SPLREG_OS_VERSIONEX)
+
+ #define SPLREG_DS_PRESENTA "DsPresent"
+-#ifdef _MSC_VER
++#if defined(_MSC_VER) || defined(__MINGW32__)
+ #define SPLREG_DS_PRESENTW L"DsPresent"
+-#elif defined(__GNUC__)
+-#define SPLREG_DS_PRESENTW (const WCHAR[]){'D','s','P','r','e','s','e','n','t',0}
+ #else
+ static const WCHAR SPLREG_DS_PRESENTW[] = {'D','s','P','r','e','s','e','n','t',0};
+ #endif
+ #define SPLREG_DS_PRESENT WINELIB_NAME_AW(SPLREG_DS_PRESENT)
+
+ #define SPLREG_DS_PRESENT_FOR_USERA "DsPresentForUser"
+-#ifdef _MSC_VER
++#if defined(_MSC_VER) || defined(__MINGW32__)
+ #define SPLREG_DS_PRESENT_FOR_USERW L"DsPresentForUser"
+-#elif defined(__GNUC__)
+-#define SPLREG_DS_PRESENT_FOR_USERW (const WCHAR[]){'D','s','P','r','e','s','e','n','t','F','o','r','U','s','e','r',0}
+ #else
+ static const WCHAR SPLREG_DS_PRESENT_FOR_USERW[] = {'D','s','P','r','e','s','e','n','t','F','o','r','U','s','e','r',0};
+ #endif
+ #define SPLREG_DS_PRESENT_FOR_USER WINELIB_NAME_AW(SPLREG_DS_PRESENT_FOR_USER)
+
+ #define SPLREG_REMOTE_FAXA "RemoteFax"
+-#ifdef _MSC_VER
++#if defined(_MSC_VER) || defined(__MINGW32__)
+ #define SPLREG_REMOTE_FAXW L"RemoteFax"
+-#elif defined(__GNUC__)
+-#define SPLREG_REMOTE_FAXW (const WCHAR[]){'R','e','m','o','t','e','F','a','x',0}
+ #else
+ static const WCHAR SPLREG_REMOTE_FAXW[] = {'R','e','m','o','t','e','F','a','x',0};
+ #endif
+ #define SPLREG_REMOTE_FAX WINELIB_NAME_AW(SPLREG_REMOTE_FAX)
+
+ #define SPLREG_RESTART_JOB_ON_POOL_ERRORA "RestartJobOnPoolError"
+-#ifdef _MSC_VER
++#if defined(_MSC_VER) || defined(__MINGW32__)
+ #define SPLREG_RESTART_JOB_ON_POOL_ERRORW L"RestartJobOnPoolError"
+-#elif defined(__GNUC__)
+-#define SPLREG_RESTART_JOB_ON_POOL_ERRORW (const WCHAR[]){'R','e','s','t','a','r','t','J','o','b','O','n','P','o','o','l','E','r','r','o','r',0}
+ #else
+ static const WCHAR SPLREG_RESTART_JOB_ON_POOL_ERRORW[] = {'R','e','s','t','a','r','t','J','o','b','O','n','P','o','o','l','E','r','r','o','r',0};
+ #endif
+ #define SPLREG_RESTART_JOB_ON_POOL_ERROR WINELIB_NAME_AW(SPLREG_RESTART_JOB_ON_POOL_ERROR)
+
+ #define SPLREG_RESTART_JOB_ON_POOL_ENABLEDA "RestartJobOnPoolEnabled"
+-#ifdef _MSC_VER
++#if defined(_MSC_VER) || defined(__MINGW32__)
+ #define SPLREG_RESTART_JOB_ON_POOL_ENABLEDW L"RestartJobOnPoolEnabled"
+-#elif defined(__GNUC__)
+-#define SPLREG_RESTART_JOB_ON_POOL_ENABLEDW (const WCHAR[]){'R','e','s','t','a','r','t','J','o','b','O','n','P','o','o','l','E','n','a','b','l','e','d',0}
+ #else
+ static const WCHAR SPLREG_RESTART_JOB_ON_POOL_ENABLEDW[] = {'R','e','s','t','a','r','t','J','o','b','O','n','P','o','o','l','E','n','a','b','l','e','d',0};
+ #endif
+ #define SPLREG_RESTART_JOB_ON_POOL_ENABLED WINELIB_NAME_AW(SPLREG_RESTART_JOB_ON_POOL_ENABLED)
+
+ #define SPLREG_DNS_MACHINE_NAMEA "DNSMachineName"
+-#ifdef _MSC_VER
++#if defined(_MSC_VER) || defined(__MINGW32__)
+ #define SPLREG_DNS_MACHINE_NAMEW L"DNSMachineName"
+-#elif defined(__GNUC__)
+-#define SPLREG_DNS_MACHINE_NAMEW (const WCHAR[]){'D','N','S','M','a','c','h','i','n','e','N','a','m','e',0}
+ #else
+ static const WCHAR SPLREG_DNS_MACHINE_NAMEW[] = {'D','N','S','M','a','c','h','i','n','e','N','a','m','e',0};
+ #endif
+ #define SPLREG_DNS_MACHINE_NAME WINELIB_NAME_AW(SPLREG_DNS_MACHINE_NAME)
+
+ #define SPLREG_ALLOW_USER_MANAGEFORMSA "AllowUserManageForms"
+-#ifdef _MSC_VER
++#if defined(_MSC_VER) || defined(__MINGW32__)
+ #define SPLREG_ALLOW_USER_MANAGEFORMSW L"AllowUserManageForms"
+-#elif defined(__GNUC__)
+-#define SPLREG_ALLOW_USER_MANAGEFORMSW (const WCHAR[]){'A','l','l','o','w','U','s','e','r','M','a','n','a','g','e','F','o','r','m','s',0}
+ #else
+ static const WCHAR SPLREG_ALLOW_USER_MANAGEFORMSW[] = {'A','l','l','o','w','U','s','e','r','M','a','n','a','g','e','F','o','r','m','s',0};
+ #endif
+ #define SPLREG_ALLOW_USER_MANAGEFORMS WINELIB_NAME_AW(SPLREG_ALLOW_USER_MANAGEFORMS)
+
+ #define SPLREG_WEBSHAREMGMTA "WebShareMgmt"
+-#ifdef _MSC_VER
++#if defined(_MSC_VER) || defined(__MINGW32__)
+ #define SPLREG_WEBSHAREMGMTW L"WebShareMgmt"
+-#elif defined(__GNUC__)
+-#define SPLREG_WEBSHAREMGMTW (const WCHAR[]){'W','e','b','S','h','a','r','e','M','g','m','t',0}
+ #else
+ static const WCHAR SPLREG_WEBSHAREMGMTW[] = {'W','e','b','S','h','a','r','e','M','g','m','t',0};
+ #endif
+ #define SPLREG_WEBSHAREMGMT WINELIB_NAME_AW(SPLREG_WEBSHAREMGMT)
+
+ #define SPLREG_PRINT_DRIVER_ISOLATION_GROUPSA "PrintDriverIsolationGroups"
+-#ifdef _MSC_VER
++#if defined(_MSC_VER) || defined(__MINGW32__)
+ #define SPLREG_PRINT_DRIVER_ISOLATION_GROUPSW L"PrintDriverIsolationGroups"
+-#elif defined(__GNUC__)
+-#define SPLREG_PRINT_DRIVER_ISOLATION_GROUPSW (const WCHAR[]){'P','r','i','n','t','D','r','i','v','e','r','I','s','o','l','a','t','i','o','n','G','r','o','u','p','s',0}
+ #else
+ static const WCHAR SPLREG_PRINT_DRIVER_ISOLATION_GROUPSW[] = {'P','r','i','n','t','D','r','i','v','e','r','I','s','o','l','a','t','i','o','n','G','r','o','u','p','s',0};
+ #endif
+ #define SPLREG_PRINT_DRIVER_ISOLATION_GROUPS WINELIB_NAME_AW(SPLREG_PRINT_DRIVER_ISOLATION_GROUPS)
+
+ #define SPLREG_PRINT_DRIVER_ISOLATION_TIME_BEFORE_RECYCLEA "PrintDriverIsolationTimeBeforeRecycle"
+-#ifdef _MSC_VER
++#if defined(_MSC_VER) || defined(__MINGW32__)
+ #define SPLREG_PRINT_DRIVER_ISOLATION_TIME_BEFORE_RECYCLEW L"PrintDriverIsolationTimeBeforeRecycle"
+-#elif defined(__GNUC__)
+-#define SPLREG_PRINT_DRIVER_ISOLATION_TIME_BEFORE_RECYCLEW (const WCHAR[]){'P','r','i','n','t','D','r','i','v','e','r','I','s','o','l','a','t','i','o','n','T','i','m','e','B','e','f','o','r','e','R','e','c','y','c','l','e',0}
+ #else
+ static const WCHAR SPLREG_PRINT_DRIVER_ISOLATION_TIME_BEFORE_RECYCLEW[] = {'P','r','i','n','t','D','r','i','v','e','r','I','s','o','l','a','t','i','o','n','T','i','m','e','B','e','f','o','r','e','R','e','c','y','c','l','e',0};
+ #endif
+ #define SPLREG_PRINT_DRIVER_ISOLATION_TIME_BEFORE_RECYCLE WINELIB_NAME_AW(SPLREG_PRINT_DRIVER_ISOLATION_TIME_BEFORE_RECYCLE)
+
+ #define SPLREG_PRINT_DRIVER_ISOLATION_MAX_OBJECTS_BEFORE_RECYCLEA "PrintDriverIsolationMaxobjsBeforeRecycle"
+-#ifdef _MSC_VER
++#if defined(_MSC_VER) || defined(__MINGW32__)
+ #define SPLREG_PRINT_DRIVER_ISOLATION_MAX_OBJECTS_BEFORE_RECYCLEW L"PrintDriverIsolationMaxobjsBeforeRecycle"
+-#elif defined(__GNUC__)
+-#define SPLREG_PRINT_DRIVER_ISOLATION_MAX_OBJECTS_BEFORE_RECYCLEW (const WCHAR[]){'P','r','i','n','t','D','r','i','v','e','r','I','s','o','l','a','t','i','o','n','M','a','x','o','b','j','s','B','e','f','o','r','e','R','e','c','y','c','l','e',0}
+ #else
+ static const WCHAR SPLREG_PRINT_DRIVER_ISOLATION_MAX_OBJECTS_BEFORE_RECYCLEW[] = {'P','r','i','n','t','D','r','i','v','e','r','I','s','o','l','a','t','i','o','n','M','a','x','o','b','j','s','B','e','f','o','r','e','R','e','c','y','c','l','e',0};
+ #endif
+ #define SPLREG_PRINT_DRIVER_ISOLATION_MAX_OBJECTS_BEFORE_RECYCLE WINELIB_NAME_AW(SPLREG_PRINT_DRIVER_ISOLATION_MAX_OBJECTS_BEFORE_RECYCLE)
+
+ #define SPLREG_PRINT_DRIVER_ISOLATION_IDLE_TIMEOUTA "PrintDriverIsolationIdleTimeout"
+-#ifdef _MSC_VER
++#if defined(_MSC_VER) || defined(__MINGW32__)
+ #define SPLREG_PRINT_DRIVER_ISOLATION_IDLE_TIMEOUTW L"PrintDriverIsolationIdleTimeout"
+-#elif defined(__GNUC__)
+-#define SPLREG_PRINT_DRIVER_ISOLATION_IDLE_TIMEOUTW (const WCHAR[]){'P','r','i','n','t','D','r','i','v','e','r','I','s','o','l','a','t','i','o','n','I','d','l','e','T','i','m','e','o','u','t',0}
+ #else
+ static const WCHAR SPLREG_PRINT_DRIVER_ISOLATION_IDLE_TIMEOUTW[] = {'P','r','i','n','t','D','r','i','v','e','r','I','s','o','l','a','t','i','o','n','I','d','l','e','T','i','m','e','o','u','t',0};
+ #endif
+ #define SPLREG_PRINT_DRIVER_ISOLATION_IDLE_TIMEOUT WINELIB_NAME_AW(SPLREG_PRINT_DRIVER_ISOLATION_IDLE_TIMEOUT)
+
+ #define SPLREG_PRINT_DRIVER_ISOLATION_EXECUTION_POLICYA "PrintDriverIsolationExecutionPolicy"
+-#ifdef _MSC_VER
++#if defined(_MSC_VER) || defined(__MINGW32__)
+ #define SPLREG_PRINT_DRIVER_ISOLATION_EXECUTION_POLICYW L"PrintDriverIsolationExecutionPolicy"
+-#elif defined(__GNUC__)
+-#define SPLREG_PRINT_DRIVER_ISOLATION_EXECUTION_POLICYW (const WCHAR[]){'P','r','i','n','t','D','r','i','v','e','r','I','s','o','l','a','t','i','o','n','E','x','e','c','u','t','i','o','n','P','o','l','i','c','y',0}
+ #else
+ static const WCHAR SPLREG_PRINT_DRIVER_ISOLATION_EXECUTION_POLICYW[] = {'P','r','i','n','t','D','r','i','v','e','r','I','s','o','l','a','t','i','o','n','E','x','e','c','u','t','i','o','n','P','o','l','i','c','y',0};
+ #endif
+ #define SPLREG_PRINT_DRIVER_ISOLATION_EXECUTION_POLICY WINELIB_NAME_AW(SPLREG_PRINT_DRIVER_ISOLATION_EXECUTION_POLICY)
+
+ #define SPLREG_PRINT_DRIVER_ISOLATION_OVERRIDE_POLICYA "PrintDriverIsolationOverrideCompat"
+-#ifdef _MSC_VER
++#if defined(_MSC_VER) || defined(__MINGW32__)
+ #define SPLREG_PRINT_DRIVER_ISOLATION_OVERRIDE_POLICYW L"PrintDriverIsolationOverrideCompat"
+-#elif defined(__GNUC__)
+-#define SPLREG_PRINT_DRIVER_ISOLATION_OVERRIDE_POLICYW (const WCHAR[]){'P','r','i','n','t','D','r','i','v','e','r','I','s','o','l','a','t','i','o','n','O','v','e','r','r','i','d','e','C','o','m','p','a','t',0}
+ #else
+ static const WCHAR SPLREG_PRINT_DRIVER_ISOLATION_OVERRIDE_POLICYW[] = {'P','r','i','n','t','D','r','i','v','e','r','I','s','o','l','a','t','i','o','n','O','v','e','r','r','i','d','e','C','o','m','p','a','t',0};
+ #endif
+diff --git a/include/winsvc.h b/include/winsvc.h
+index 8509d1738c..aa5e9f1ae8 100644
+--- a/include/winsvc.h
++++ b/include/winsvc.h
+@@ -33,10 +33,7 @@ extern "C" {
+ #define SERVICES_ACTIVE_DATABASEA "ServicesActive"
+ #define SERVICES_FAILED_DATABASEA "ServicesFailed"
+
+-#if defined(__GNUC__)
+-# define SERVICES_ACTIVE_DATABASEW (const WCHAR []){ 'S','e','r','v','i','c','e','s','A','c','t','i','v','e',0 }
+-# define SERVICES_FAILED_DATABASEW (const WCHAR []){ 'S','e','r','v','i','c','e','s','F','a','i','l','e','d',0 }
+-#elif defined(_MSC_VER)
++#if defined(_MSC_VER) || defined(__MINGW32__)
+ # define SERVICES_ACTIVE_DATABASEW L"ServicesActive"
+ # define SERVICES_FAILED_DATABASEW L"ServicesFailed"
+ #else
+diff --git a/include/wintrust.h b/include/wintrust.h
+index dcb432a6dc..dd85369e32 100644
+--- a/include/wintrust.h
++++ b/include/wintrust.h
+@@ -451,10 +451,7 @@ typedef struct _CRYPT_PROVUI_FUNCS {
+ extern "C" {
+ #endif
+
+-#if defined(__GNUC__)
+-#define WT_PROVIDER_CERTTRUST_FUNCTION (const WCHAR []) \
+- {'W','i','n','t','r','u','s','t','C','e','r','t','i','f','i','c','a','t','e','T','r','u','s','t', 0}
+-#elif defined(_MSC_VER)
++#if defined(_MSC_VER) || defined(__MINGW32__)
+ #define WT_PROVIDER_CERTTRUST_FUNCTION L"WintrustCertificateTrust"
+ #else
+ static const WCHAR WT_PROVIDER_CERTTRUST_FUNCTION[] =
+--
+2.21.0
+