diff --git a/mingw-w64-headers/include/dwrite.h b/mingw-w64-headers/include/dwrite.h
index df35bbd..3267977 100644
--- a/mingw-w64-headers/include/dwrite.h
+++ b/mingw-w64-headers/include/dwrite.h
@@ -614,10 +614,12 @@
 {
     BEGIN_INTERFACE
 
+#ifndef __cplusplus
     /* IUnknown methods */
     STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
     STDMETHOD_(ULONG, AddRef)(THIS) PURE;
     STDMETHOD_(ULONG, Release)(THIS) PURE;
+#endif
 
     /* IDWriteBitmapRenderTarget methods */
     STDMETHOD(DrawGlyphRun)(THIS_
@@ -670,10 +672,12 @@
 {
     BEGIN_INTERFACE
 
+#ifndef __cplusplus
     /* IUnknown methods */
     STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
     STDMETHOD_(ULONG, AddRef)(THIS) PURE;
     STDMETHOD_(ULONG, Release)(THIS) PURE;
+#endif
 
     /* IDWriteFactory methods */
     STDMETHOD(GetSystemFontCollection)(THIS_
@@ -825,10 +829,12 @@
 {
     BEGIN_INTERFACE
 
+#ifndef __cplusplus
     /* IUnknown methods */
     STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
     STDMETHOD_(ULONG, AddRef)(THIS) PURE;
     STDMETHOD_(ULONG, Release)(THIS) PURE;
+#endif
 
     /* IDWriteFont methods */
     STDMETHOD(GetFontFamily)(THIS_
@@ -884,10 +890,12 @@
 {
     BEGIN_INTERFACE
 
+#ifndef __cplusplus
     /* IUnknown methods */
     STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
     STDMETHOD_(ULONG, AddRef)(THIS) PURE;
     STDMETHOD_(ULONG, Release)(THIS) PURE;
+#endif
 
     /* IDWriteFontCollection methods */
     STDMETHOD_(UINT32, GetFontFamilyCount)(THIS) PURE;
@@ -923,10 +931,12 @@
 {
     BEGIN_INTERFACE
 
+#ifndef __cplusplus
     /* IUnknown methods */
     STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
     STDMETHOD_(ULONG, AddRef)(THIS) PURE;
     STDMETHOD_(ULONG, Release)(THIS) PURE;
+#endif
 
     /* IDWriteFontFace methods */
     STDMETHOD_(DWRITE_FONT_FACE_TYPE, GetType)(THIS) PURE;
@@ -1028,10 +1038,12 @@
 {
     BEGIN_INTERFACE
 
+#ifndef __cplusplus
     /* IUnknown methods */
     STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
     STDMETHOD_(ULONG, AddRef)(THIS) PURE;
     STDMETHOD_(ULONG, Release)(THIS) PURE;
+#endif
 
     /* IDWriteFontList methods */
     STDMETHOD(GetFontCollection)(THIS_
@@ -1060,6 +1072,7 @@
 {
     BEGIN_INTERFACE
 
+#ifndef __cplusplus
     /* IUnknown methods */
     STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
     STDMETHOD_(ULONG, AddRef)(THIS) PURE;
@@ -1074,6 +1087,7 @@
     STDMETHOD(GetFont)(THIS_
         UINT32 index,
         IDWriteFont **font) PURE;
+#endif
 
     /* IDWriteFontFamily methods */
     STDMETHOD(GetFamilyNames)(THIS_
@@ -1111,10 +1125,12 @@
 {
     BEGIN_INTERFACE
 
+#ifndef __cplusplus
     /* IUnknown methods */
     STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
     STDMETHOD_(ULONG, AddRef)(THIS) PURE;
     STDMETHOD_(ULONG, Release)(THIS) PURE;
+#endif
 
     /* IDWriteFontFile methods */
     STDMETHOD(GetReferenceKey)(THIS_
@@ -1147,10 +1163,12 @@
 {
     BEGIN_INTERFACE
 
+#ifndef __cplusplus
     /* IUnknown methods */
     STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
     STDMETHOD_(ULONG, AddRef)(THIS) PURE;
     STDMETHOD_(ULONG, Release)(THIS) PURE;
+#endif
 
     /* IDWriteFontFileLoader methods */
     STDMETHOD(CreateStreamFromKey)(
@@ -1173,10 +1191,12 @@
 {
     BEGIN_INTERFACE
 
+#ifndef __cplusplus
     /* IUnknown methods */
     STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
     STDMETHOD_(ULONG, AddRef)(THIS) PURE;
     STDMETHOD_(ULONG, Release)(THIS) PURE;
+#endif
 
     /* IDWriteFontFileStream methods */
     STDMETHOD(ReadFileFragment)(THIS_
@@ -1212,10 +1232,12 @@
 {
     BEGIN_INTERFACE
 
+#ifndef __cplusplus
     /* IUnknown methods */
     STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
     STDMETHOD_(ULONG, AddRef)(THIS) PURE;
     STDMETHOD_(ULONG, Release)(THIS) PURE;
+#endif
 
     /* IDWriteFontCollectionLoader methods */
     STDMETHOD_(HRESULT,CreateEnumeratorFromKey)(THIS_ IDWriteFactory * factory,const void * collectionKey,UINT32  collectionKeySize,IDWriteFontFileEnumerator ** fontFileEnumerator) PURE;
@@ -1235,14 +1257,16 @@
 {
     BEGIN_INTERFACE
 
+#ifndef __cplusplus
     /* IUnknown methods */
     STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
     STDMETHOD_(ULONG, AddRef)(THIS) PURE;
     STDMETHOD_(ULONG, Release)(THIS) PURE;
+#endif
 
     /* IDWriteFontFileEnumerator methods */
-    STDMETHOD_(HRESULT,GetCurrentFontFile)(THIS_ IDWriteFontFile ** fontFile) PURE;
     STDMETHOD_(HRESULT,MoveNext)(THIS_ WINBOOL * hasCurrentFile) PURE;
+    STDMETHOD_(HRESULT,GetCurrentFontFile)(THIS_ IDWriteFontFile ** fontFile) PURE;
 
     END_INTERFACE
 };
@@ -1260,10 +1284,12 @@
 {
     BEGIN_INTERFACE
 
+#ifndef __cplusplus
     /* IUnknown methods */
     STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
     STDMETHOD_(ULONG, AddRef)(THIS) PURE;
     STDMETHOD_(ULONG, Release)(THIS) PURE;
+#endif
 
     /* IDWriteGdiInterop methods */
     STDMETHOD(CreateFontFromLOGFONT)(THIS_
@@ -1308,10 +1334,12 @@
 {
     BEGIN_INTERFACE
 
+#ifndef __cplusplus
     /* IUnknown methods */
     STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
     STDMETHOD_(ULONG, AddRef)(THIS) PURE;
     STDMETHOD_(ULONG, Release)(THIS) PURE;
+#endif
 
     /* IDWriteGlyphRunAnalysis methods */
     STDMETHOD(GetAlphaTextureBounds)(THIS_
@@ -1347,10 +1375,12 @@
 {
     BEGIN_INTERFACE
 
+#ifndef __cplusplus
     /* IUnknown methods */
     STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
     STDMETHOD_(ULONG, AddRef)(THIS) PURE;
     STDMETHOD_(ULONG, Release)(THIS) PURE;
+#endif
 
     /* IDWriteInlineObject methods */
     STDMETHOD(Draw)(THIS_
@@ -1387,10 +1417,12 @@
 {
     BEGIN_INTERFACE
 
+#ifndef __cplusplus
     /* IUnknown methods */
     STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
     STDMETHOD_(ULONG, AddRef)(THIS) PURE;
     STDMETHOD_(ULONG, Release)(THIS) PURE;
+#endif
 
     /* IDWriteLocalFontFileLoader methods */
     STDMETHOD_(HRESULT,GetFilePathLengthFromKey)(THIS_ const void *fontFileReferenceKey,UINT32 fontFileReferenceKeySize,UINT32 *filePathLength) PURE;
@@ -1414,10 +1446,12 @@
 {
     BEGIN_INTERFACE
 
+#ifndef __cplusplus
     /* IUnknown methods */
     STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
     STDMETHOD_(ULONG, AddRef)(THIS) PURE;
     STDMETHOD_(ULONG, Release)(THIS) PURE;
+#endif
 
     /* IDWriteLocalizedStrings methods */
     STDMETHOD_(UINT32, GetCount)(THIS) PURE;
@@ -1465,10 +1499,12 @@
 {
     BEGIN_INTERFACE
 
+#ifndef __cplusplus
     /* IUnknown methods */
     STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
     STDMETHOD_(ULONG, AddRef)(THIS) PURE;
     STDMETHOD_(ULONG, Release)(THIS) PURE;
+#endif
 
     /* IDWriteNumberSubstitution methods */
 
@@ -1486,10 +1522,12 @@
 {
     BEGIN_INTERFACE
 
+#ifndef __cplusplus
     /* IUnknown methods */
     STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
     STDMETHOD_(ULONG, AddRef)(THIS) PURE;
     STDMETHOD_(ULONG, Release)(THIS) PURE;
+#endif
 
     /* IDWritePixelSnapping methods */
     STDMETHOD(IsPixelSnappingDisabled)(THIS_
@@ -1519,10 +1557,12 @@
 {
     BEGIN_INTERFACE
 
+#ifndef __cplusplus
     /* IUnknown methods */
     STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
     STDMETHOD_(ULONG, AddRef)(THIS) PURE;
     STDMETHOD_(ULONG, Release)(THIS) PURE;
+#endif
 
     /* IDWriteRenderingParams methods */
     STDMETHOD_(FLOAT, GetGamma)(THIS) PURE;
@@ -1550,10 +1590,12 @@
 {
     BEGIN_INTERFACE
 
+#ifndef __cplusplus
     /* IUnknown methods */
     STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
     STDMETHOD_(ULONG, AddRef)(THIS) PURE;
     STDMETHOD_(ULONG, Release)(THIS) PURE;
+#endif
 
     /* IDWriteTextAnalysisSink methods */
     STDMETHOD(SetScriptAnalysis)(
@@ -1595,10 +1637,12 @@
 {
     BEGIN_INTERFACE
 
+#ifndef __cplusplus
     /* IUnknown methods */
     STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
     STDMETHOD_(ULONG, AddRef)(THIS) PURE;
     STDMETHOD_(ULONG, Release)(THIS) PURE;
+#endif
 
     /* IDWriteTextAnalysisSource methods */
     STDMETHOD(GetTextAtPosition)(THIS_
@@ -1642,10 +1686,12 @@
 {
     BEGIN_INTERFACE
 
+#ifndef __cplusplus
     /* IUnknown methods */
     STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
     STDMETHOD_(ULONG, AddRef)(THIS) PURE;
     STDMETHOD_(ULONG, Release)(THIS) PURE;
+#endif
 
     /* IDWriteTextAnalyzer methods */
     STDMETHOD(AnalyzeScript)(THIS_
@@ -1755,10 +1801,12 @@
 {
     BEGIN_INTERFACE
 
+#ifndef __cplusplus
     /* IUnknown methods */
     STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
     STDMETHOD_(ULONG, AddRef)(THIS) PURE;
     STDMETHOD_(ULONG, Release)(THIS) PURE;
+#endif
 
     /* IDWriteTextFormat methods */
     STDMETHOD(SetTextAlignment)(THIS_
@@ -1847,6 +1895,7 @@
 {
     BEGIN_INTERFACE
 
+#ifndef __cplusplus
     /* IUnknown methods */
     STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
     STDMETHOD_(ULONG, AddRef)(THIS) PURE;
@@ -1899,6 +1948,7 @@
     STDMETHOD(GetLocaleName)(THIS_
             WCHAR *localeName,
             UINT32 nameSize) PURE;
+#endif
 
     /* IDWriteTextLayout methods */
     STDMETHOD(SetMaxWidth)(THIS_
@@ -2119,6 +2169,7 @@
 {
     BEGIN_INTERFACE
 
+#ifndef __cplusplus
     /* IUnknown methods */
     STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
     STDMETHOD_(ULONG, AddRef)(THIS) PURE;
@@ -2134,6 +2185,7 @@
     STDMETHOD(GetPixelsPerDip)(THIS_
             void *clientDrawingContext,
             FLOAT *pixelsPerDip) PURE;
+#endif
 
     /* IDWriteTextRenderer methods */
     STDMETHOD(DrawGlyphRun)(THIS_
@@ -2186,10 +2238,12 @@
 {
     BEGIN_INTERFACE
 
+#ifndef __cplusplus
     /* IUnknown methods */
     STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
     STDMETHOD_(ULONG, AddRef)(THIS) PURE;
     STDMETHOD_(ULONG, Release)(THIS) PURE;
+#endif
 
     /* IDWriteTypography methods */
     STDMETHOD_(HRESULT,AddFontFeature)(THIS_ DWRITE_FONT_FEATURE  fontFeature) PURE;
@@ -2243,8 +2297,9 @@
 __CRT_UUID_DECL(IDWriteInlineObject, 0x8339fde3,0x106f,0x47ab,0x83,0x73,0x1c,0x62,0x95,0xeb,0x10,0xb3);
 __CRT_UUID_DECL(IDWriteTextFormat, 0x9c906818,0x31d7,0x4fd3,0xa1,0x51,0x7c,0x5e,0x22,0x5d,0xb5,0x5a);
 __CRT_UUID_DECL(IDWriteTextLayout, 0x53737037,0x6d14,0x410b,0x9b,0xfe,0x0b,0x18,0x2b,0xb7,0x09,0x61);
+__CRT_UUID_DECL(IDWriteFontFileEnumerator, 0x72755049,0x5ff7,0x435d,0x83,0x48,0x4b,0xe9,0x7c,0xfa,0x6c,0x7c);
+__CRT_UUID_DECL(IDWriteFontCollectionLoader, 0xcca920e4,0x52f0,0x492b,0xbf,0xa8,0x29,0xc7,0x2e,0xe0,0xa4,0x68);
 
-#define IDWriteFontFileEnumerator __MINGW_POISON_NAME(IDWriteFontFileEnumerator)
 #define IDWriteLocalFontFileLoader __MINGW_POISON_NAME(IDWriteLocalFontFileLoader)
 #define IDWriteTypography __MINGW_POISON_NAME(IDWriteTypography)
 
