diff --git a/mingw-w64-headers/include/windows.applicationmodel.core.idl b/mingw-w64-headers/include/windows.applicationmodel.core.idl
index 4d3504e..fb3a14c 100644
--- a/mingw-w64-headers/include/windows.applicationmodel.core.idl
+++ b/mingw-w64-headers/include/windows.applicationmodel.core.idl
@@ -385,7 +385,6 @@
         [contract(Windows.Foundation.UniversalApiContract, 11.0)] interface Windows.ApplicationModel.Core.IAppListEntry4;
     }
 
-#ifndef _WINDOWS_APPLICATIONMODEL
     [
         contract(Windows.Foundation.UniversalApiContract, 1.0),
         marshaling_behavior(agile),
@@ -402,7 +401,6 @@
     runtimeclass CoreApplication
     {
     }
-#endif
 
     [
         contract(Windows.Foundation.UniversalApiContract, 1.0),
diff --git a/mingw-w64-headers/include/windows.foundation.idl b/mingw-w64-headers/include/windows.foundation.idl
index d6b9617..f4c1ea2 100644
--- a/mingw-w64-headers/include/windows.foundation.idl
+++ b/mingw-w64-headers/include/windows.foundation.idl
@@ -125,22 +125,16 @@
         interface Windows.Foundation.Collections.IIterable<HSTRING>;
         interface Windows.Foundation.Collections.IIterable<IInspectable *>;
         interface Windows.Foundation.Collections.IIterable<IWwwFormUrlDecoderEntry *>;
-#ifndef _WINTYPES
         interface Windows.Foundation.Collections.IIterable<Uri *>;
-#endif
         interface Windows.Foundation.Collections.IIterator<HSTRING>;
         interface Windows.Foundation.Collections.IIterator<IInspectable *>;
         interface Windows.Foundation.Collections.IIterator<IWwwFormUrlDecoderEntry *>;
-#ifndef _WINTYPES
         interface Windows.Foundation.Collections.IIterator<Uri *>;
-#endif
         interface Windows.Foundation.Collections.IVectorView<BYTE>;
         interface Windows.Foundation.Collections.IVectorView<HSTRING>;
         interface Windows.Foundation.Collections.IVectorView<IInspectable *>;
         interface Windows.Foundation.Collections.IVectorView<IWwwFormUrlDecoderEntry *>;
-#ifndef _WINTYPES
         interface Windows.Foundation.Collections.IVectorView<Windows.Foundation.Uri *>;
-#endif
         interface Windows.Foundation.Collections.IVector<HSTRING>;
         interface Windows.Foundation.Collections.IVector<IInspectable *>;
         interface Windows.Foundation.Collections.IMapView<HSTRING, Windows.Foundation.Collections.IVectorView<HSTRING> *>;
@@ -150,18 +144,14 @@
         interface Windows.Foundation.AsyncOperationCompletedHandler<boolean>;
         interface Windows.Foundation.AsyncOperationCompletedHandler<HSTRING>;
         interface Windows.Foundation.AsyncOperationCompletedHandler<UINT32>;
-#ifndef _WINTYPES
         interface Windows.Foundation.AsyncOperationCompletedHandler<Windows.Foundation.Uri *>;
-#endif
         interface Windows.Foundation.AsyncOperationProgressHandler<UINT32, UINT32>;
         interface Windows.Foundation.AsyncOperationWithProgressCompletedHandler<UINT32, UINT32>;
         interface Windows.Foundation.IAsyncOperation<HSTRING>;
         interface Windows.Foundation.IAsyncOperation<IInspectable *>;
         interface Windows.Foundation.IAsyncOperation<boolean>;
         interface Windows.Foundation.IAsyncOperation<UINT32>;
-#ifndef _WINTYPES
         interface Windows.Foundation.IAsyncOperation<Windows.Foundation.Uri *>;
-#endif
         interface Windows.Foundation.IAsyncOperationWithProgress<UINT32, UINT32>;
         interface Windows.Foundation.IReference<BYTE>;
         interface Windows.Foundation.IReference<DOUBLE>;
@@ -588,7 +578,6 @@
     {
     }
 
-#ifndef _WINTYPES
     [
         activatable(Windows.Foundation.IUriRuntimeClassFactory, Windows.Foundation.UniversalApiContract, 1.0),
         contract(Windows.Foundation.UniversalApiContract, 1.0),
@@ -615,7 +604,6 @@
         interface Windows.Foundation.Collections.IVectorView<Windows.Foundation.IWwwFormUrlDecoderEntry *>;
         interface Windows.Foundation.Collections.IIterable<Windows.Foundation.IWwwFormUrlDecoderEntry *>;
     }
-#endif
 
     [
         contract(Windows.Foundation.UniversalApiContract, 1.0),
diff --git a/mingw-w64-headers/include/windows.storage.streams.idl b/mingw-w64-headers/include/windows.storage.streams.idl
index 3534089..3ef6254 100644
--- a/mingw-w64-headers/include/windows.storage.streams.idl
+++ b/mingw-w64-headers/include/windows.storage.streams.idl
@@ -50,18 +50,15 @@
     runtimeclass Buffer;
     runtimeclass DataWriter;
     runtimeclass DataWriterStoreOperation;
-#ifndef _WINTYPES
     runtimeclass InMemoryRandomAccessStream;
     runtimeclass RandomAccessStream;
     runtimeclass RandomAccessStreamReference;
-#endif
 
     declare {
         interface Windows.Foundation.AsyncOperationCompletedHandler<Windows.Storage.Streams.IBuffer *>;
         interface Windows.Foundation.AsyncOperationCompletedHandler<Windows.Storage.Streams.IOutputStream *>;
         interface Windows.Foundation.IAsyncOperation<Windows.Storage.Streams.IBuffer *>;
         interface Windows.Foundation.IAsyncOperation<Windows.Storage.Streams.IOutputStream *>;
-#ifndef _WINTYPES
         interface Windows.Foundation.Collections.IIterable<Windows.Storage.Streams.IRandomAccessStream *>;
         interface Windows.Foundation.Collections.IIterator<Windows.Storage.Streams.IRandomAccessStream *>;
         interface Windows.Foundation.Collections.IMapView<HSTRING, Windows.Storage.Streams.RandomAccessStreamReference *>;
@@ -81,7 +78,6 @@
         interface Windows.Foundation.IAsyncOperation<Windows.Storage.Streams.IRandomAccessStreamWithContentType *>;
         interface Windows.Foundation.IAsyncOperation<Windows.Storage.Streams.RandomAccessStreamReference *>;
         interface Windows.Foundation.IAsyncOperationWithProgress<UINT64,UINT64>;
-#endif
     }
 
     [
@@ -198,7 +194,6 @@
         HRESULT FlushAsync([out, retval] Windows.Foundation.IAsyncOperation<boolean> **operation);
     }
 
-#ifndef _WINTYPES
     [
         contract(Windows.Foundation.UniversalApiContract, 1.0),
         exclusiveto(Windows.Storage.Streams.RandomAccessStream),
@@ -270,9 +265,7 @@
             Windows.Storage.Streams.IContentTypeProvider
     {
     }
-#endif
 
-#ifndef _WINDOWS_STORAGE
     [
         activatable(Windows.Storage.Streams.IBufferFactory, Windows.Foundation.UniversalApiContract, 1.0),
         contract(Windows.Foundation.UniversalApiContract, 1.0),
@@ -306,9 +299,7 @@
     {
         [default] interface Windows.Foundation.IAsyncOperation<UINT32>;
     }
-#endif
 
-#ifndef _WINTYPES
     [
         activatable(Windows.Foundation.UniversalApiContract, 1.0),
         contract(Windows.Foundation.UniversalApiContract, 1.0),
@@ -340,6 +331,5 @@
     {
         [default] interface Windows.Storage.Streams.IRandomAccessStreamReference;
     }
-#endif
 
 }
diff --git a/mingw-w64-headers/include/windows.system.idl b/mingw-w64-headers/include/windows.system.idl
index 954fe5f..8c58136 100644
--- a/mingw-w64-headers/include/windows.system.idl
+++ b/mingw-w64-headers/include/windows.system.idl
@@ -462,7 +462,6 @@
         [default] interface Windows.System.IDispatcherQueueTimer;
     }
 
-#ifndef _CORE_MESSAGING
     [
         contract(Windows.Foundation.UniversalApiContract, 1.0),
         marshaling_behavior(agile),
@@ -473,7 +472,6 @@
     {
         [default] interface Windows.System.IUser;
     }
-#endif
 
     [
         contract(Windows.Foundation.UniversalApiContract, 1.0),
diff --git a/mingw-w64-headers/include/windows.system.profile.idl b/mingw-w64-headers/include/windows.system.profile.idl
index 7032274..c6cfe9a 100644
--- a/mingw-w64-headers/include/windows.system.profile.idl
+++ b/mingw-w64-headers/include/windows.system.profile.idl
@@ -97,7 +97,6 @@
         HRESULT GetSystemIdForUser([in] Windows.System.User *user, [out, retval] Windows.System.Profile.SystemIdentificationInfo **result);
     }
 
-#ifndef _WINDOWS_SYSTEM_PROFILE_SYSTEM_ID
     [
         contract(Windows.Foundation.UniversalApiContract, 1.0),
         marshaling_behavior(agile),
@@ -119,9 +118,7 @@
     runtimeclass AnalyticsInfo
     {
     }
-#endif
 
-#ifndef _TWINAPI_APPCORE
     [
         contract(Windows.Foundation.UniversalApiContract, 3.0),
         marshaling_behavior(agile),
@@ -141,5 +138,4 @@
     {
         [default] interface Windows.System.Profile.ISystemIdentificationInfo;
     }
-#endif
 }
diff --git a/mingw-w64-headers/include/windows.system.userprofile.idl b/mingw-w64-headers/include/windows.system.userprofile.idl
index 41b3797..e0353b1 100644
--- a/mingw-w64-headers/include/windows.system.userprofile.idl
+++ b/mingw-w64-headers/include/windows.system.userprofile.idl
@@ -64,7 +64,6 @@
         [propget] HRESULT AdvertisingId([out, retval] HSTRING *value);
     }
 
-#ifndef _TWINAPI_APPCORE
     [
         contract(Windows.Foundation.UniversalApiContract, 1.0),
         marshaling_behavior(agile),
@@ -75,9 +74,7 @@
     runtimeclass GlobalizationPreferences
     {
     }
-#endif
 
-#ifndef _WINDOWS_GLOBALIZATION
     [
         contract(Windows.Foundation.UniversalApiContract, 1.0),
         marshaling_behavior(standard),
@@ -87,6 +84,5 @@
     runtimeclass AdvertisingManager
     {
     }
-#endif
 
 }
diff --git a/mingw-w64-headers/include/windows.ui.viewmanagement.idl b/mingw-w64-headers/include/windows.ui.viewmanagement.idl
index cfb63c5..784ea90 100644
--- a/mingw-w64-headers/include/windows.ui.viewmanagement.idl
+++ b/mingw-w64-headers/include/windows.ui.viewmanagement.idl
@@ -99,16 +99,12 @@
     interface IInputPaneStatics2;
 
     runtimeclass AccessibilitySettings;
-#ifndef _WINDOWS_UI
     runtimeclass ApplicationView;
-#endif
     runtimeclass ApplicationViewConsolidatedEventArgs;
     runtimeclass ApplicationViewScaling;
-#ifndef _WINDOWS_UI
     runtimeclass ApplicationViewSwitcher;
     runtimeclass ApplicationViewTitleBar;
     runtimeclass ApplicationViewTransferContext;
-#endif
     runtimeclass UISettings;
     runtimeclass UISettingsAnimationsEnabledChangedEventArgs;
     runtimeclass UISettingsAutoHideScrollBarsChangedEventArgs;
@@ -120,10 +116,8 @@
 
     declare {
         interface Windows.Foundation.TypedEventHandler<Windows.UI.ViewManagement.AccessibilitySettings *, IInspectable *>;
-#ifndef _WINDOWS_UI
         interface Windows.Foundation.TypedEventHandler<Windows.UI.ViewManagement.ApplicationView *, IInspectable *>;
         interface Windows.Foundation.TypedEventHandler<Windows.UI.ViewManagement.ApplicationView *, Windows.UI.ViewManagement.ApplicationViewConsolidatedEventArgs *>;
-#endif
         interface Windows.Foundation.TypedEventHandler<Windows.UI.ViewManagement.UISettings *, IInspectable *>;
         interface Windows.Foundation.TypedEventHandler<Windows.UI.ViewManagement.UISettings *, Windows.UI.ViewManagement.UISettingsAnimationsEnabledChangedEventArgs *>;
         interface Windows.Foundation.TypedEventHandler<Windows.UI.ViewManagement.UISettings *, Windows.UI.ViewManagement.UISettingsAutoHideScrollBarsChangedEventArgs *>;
@@ -325,7 +319,6 @@
         [eventremove] HRESULT HighContrastChanged([in] EventRegistrationToken cookie);
     }
 
-#ifndef _WINDOWS_UI
     [
         contract(Windows.Foundation.UniversalApiContract, 1.0),
         exclusiveto(Windows.UI.ViewManagement.ApplicationView),
@@ -416,7 +409,6 @@
         [propget] HRESULT WindowingEnvironment([out, retval] Windows.UI.WindowManagement.WindowingEnvironment **value);
         HRESULT GetDisplayRegions([out, retval] Windows.Foundation.Collections.IVectorView<Windows.UI.WindowManagement.DisplayRegion *> **result);
     }
-#endif
 
     [
         contract(Windows.Foundation.UniversalApiContract, 1.0),
@@ -438,7 +430,6 @@
         [propget] HRESULT IsAppInitiated([out, retval] boolean *value);
     }
 
-#ifndef _WINDOWS_UI
     [
         contract(Windows.Foundation.UniversalApiContract, 1.0),
         exclusiveto(Windows.UI.ViewManagement.ApplicationView),
@@ -458,7 +449,6 @@
     {
         HRESULT GetApplicationViewIdForWindow([in] Windows.UI.Core.ICoreWindow *window, [out, retval] INT32 *id);
     }
-#endif
 
     [
         contract(Windows.UI.ViewManagement.ViewManagementViewScalingContract, 1.0),
@@ -480,7 +470,6 @@
         HRESULT TrySetDisableLayoutScaling([in] boolean disabled, [out, retval] boolean *success);
     }
 
-#ifndef _WINDOWS_UI
     [
         contract(Windows.Foundation.UniversalApiContract, 1.0),
         exclusiveto(Windows.UI.ViewManagement.ApplicationView),
@@ -629,7 +618,6 @@
     {
         [propget] HRESULT UIContext([out, retval] Windows.UI.UIContext **value);
     }
-#endif
 
     [
         contract(Windows.Foundation.UniversalApiContract, 1.0),
@@ -872,7 +860,6 @@
         [default] interface Windows.UI.ViewManagement.IAccessibilitySettings;
     }
 
-#ifndef _WINDOWS_UI
     [
         contract(Windows.Foundation.UniversalApiContract, 1.0),
         marshaling_behavior(agile),
@@ -894,7 +881,6 @@
         [contract(Windows.Foundation.UniversalApiContract, 8.0)] interface Windows.UI.ViewManagement.IApplicationView9;
         [contract(Windows.Foundation.UniversalApiContract, 8.0)] interface Windows.UI.ViewManagement.IApplicationViewWithContext;
     }
-#endif
 
     [
         contract(Windows.Foundation.UniversalApiContract, 1.0),
@@ -915,7 +901,6 @@
         [default] interface Windows.UI.ViewManagement.IApplicationViewScaling;
     }
 
-#ifndef _WINDOWS_UI
     [
         contract(Windows.Foundation.UniversalApiContract, 1.0),
         marshaling_behavior(agile),
@@ -946,7 +931,6 @@
     {
         [contract(Windows.Foundation.UniversalApiContract, 2.0), default] interface Windows.UI.ViewManagement.IApplicationViewTransferContext;
     }
-#endif
 
     [
         activatable(Windows.Foundation.UniversalApiContract, 1.0),
@@ -990,7 +974,6 @@
         [default] interface Windows.UI.ViewManagement.IUISettingsMessageDurationChangedEventArgs;
     }
 
-#ifndef _WINDOWS_UI
     [
         static(Windows.UI.ViewManagement.IUIViewSettingsStatics, Windows.Foundation.UniversalApiContract, 1.0),
         contract(Windows.Foundation.UniversalApiContract, 1.0),
@@ -1000,7 +983,6 @@
     {
         [default] interface Windows.UI.ViewManagement.IUIViewSettings;
     }
-#endif
 
     [
         static(Windows.UI.ViewManagement.IInputPaneStatics, Windows.Foundation.UniversalApiContract, 1.0),
@@ -1024,7 +1006,6 @@
         [default] interface Windows.UI.ViewManagement.IInputPaneVisibilityEventArgs;
     }
 
-#ifndef _WINDOWS_UI
     [
         contract(Windows.Foundation.UniversalApiContract, 4.0),
         static(Windows.UI.ViewManagement.IViewModePreferencesStatics, Windows.Foundation.UniversalApiContract, 4.0)
@@ -1033,5 +1014,4 @@
     {
         [contract(Windows.Foundation.UniversalApiContract, 4.0), default] interface Windows.UI.ViewManagement.IViewModePreferences;
     }
-#endif
 }
