It came out that we need to not duplicate QueryInterface in child
interface declarations, because they shadow its templated inline variant.

---
 mingw-w64-headers/include/dwrite.h | 59
++++++++++++++++++++++++++++++++++++--
 1 file changed, 57 insertions(+), 2 deletions(-)


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 @@ DECLARE_INTERFACE_(IDWriteBitmapRenderTarget,IUnknown)
 {
     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 @@ DECLARE_INTERFACE_(IDWriteFactory,IUnknown)
 {
     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 @@ DECLARE_INTERFACE_(IDWriteFont,IUnknown)
 {
     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 @@ DECLARE_INTERFACE_(IDWriteFontCollection,IUnknown)
 {
     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 @@ DECLARE_INTERFACE_(IDWriteFontFace,IUnknown)
 {
     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 @@ DECLARE_INTERFACE_(IDWriteFontList,IUnknown)
 {
     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 @@ DECLARE_INTERFACE_(IDWriteFontFamily,IDWriteFontList)
 {
     BEGIN_INTERFACE
 
+#ifndef __cplusplus
     /* IUnknown methods */
     STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
     STDMETHOD_(ULONG, AddRef)(THIS) PURE;
@@ -1074,6 +1087,7 @@ DECLARE_INTERFACE_(IDWriteFontFamily,IDWriteFontList)
     STDMETHOD(GetFont)(THIS_
         UINT32 index,
         IDWriteFont **font) PURE;
+#endif
 
     /* IDWriteFontFamily methods */
     STDMETHOD(GetFamilyNames)(THIS_
@@ -1111,10 +1125,12 @@ DECLARE_INTERFACE_(IDWriteFontFile,IUnknown)
 {
     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 @@ DECLARE_INTERFACE_(IDWriteFontFileLoader,IUnknown)
 {
     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 @@ DECLARE_INTERFACE_(IDWriteFontFileStream,IUnknown)
 {
     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 @@ DECLARE_INTERFACE_(IDWriteFontCollectionLoader,IUnknown)
 {
     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 @@ DECLARE_INTERFACE_(IDWriteFontFileEnumerator,IUnknown)
 {
     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 @@ DECLARE_INTERFACE_(IDWriteGdiInterop,IUnknown)
 {
     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 @@ DECLARE_INTERFACE_(IDWriteGlyphRunAnalysis,IUnknown)
 {
     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 @@ DECLARE_INTERFACE_(IDWriteInlineObject,IUnknown)
 {
     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 @@ DECLARE_INTERFACE_(IDWriteLocalFontFileLoader,IUnknown)
 {
     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 @@ DECLARE_INTERFACE_(IDWriteLocalizedStrings,IUnknown)
 {
     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 @@ DECLARE_INTERFACE_(IDWriteNumberSubstitution,IUnknown)
 {
     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 @@ DECLARE_INTERFACE_(IDWritePixelSnapping,IUnknown)
 {
     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 @@ DECLARE_INTERFACE_(IDWriteRenderingParams,IUnknown)
 {
     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 @@ DECLARE_INTERFACE_(IDWriteTextAnalysisSink,IUnknown)
 {
     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 @@ DECLARE_INTERFACE_(IDWriteTextAnalysisSource,IUnknown)
 {
     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 @@ DECLARE_INTERFACE_(IDWriteTextAnalyzer,IUnknown)
 {
     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 @@ DECLARE_INTERFACE_(IDWriteTextFormat,IUnknown)
 {
     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 @@ DECLARE_INTERFACE_(IDWriteTextLayout,IDWriteTextFormat)
 {
     BEGIN_INTERFACE
 
+#ifndef __cplusplus
     /* IUnknown methods */
     STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
     STDMETHOD_(ULONG, AddRef)(THIS) PURE;
@@ -1899,6 +1948,7 @@ DECLARE_INTERFACE_(IDWriteTextLayout,IDWriteTextFormat)
     STDMETHOD(GetLocaleName)(THIS_
             WCHAR *localeName,
             UINT32 nameSize) PURE;
+#endif
 
     /* IDWriteTextLayout methods */
     STDMETHOD(SetMaxWidth)(THIS_
@@ -2119,6 +2169,7 @@ DECLARE_INTERFACE_(IDWriteTextRenderer,IDWritePixelSnapping)
 {
     BEGIN_INTERFACE
 
+#ifndef __cplusplus
     /* IUnknown methods */
     STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
     STDMETHOD_(ULONG, AddRef)(THIS) PURE;
@@ -2134,6 +2185,7 @@ DECLARE_INTERFACE_(IDWriteTextRenderer,IDWritePixelSnapping)
     STDMETHOD(GetPixelsPerDip)(THIS_
             void *clientDrawingContext,
             FLOAT *pixelsPerDip) PURE;
+#endif
 
     /* IDWriteTextRenderer methods */
     STDMETHOD(DrawGlyphRun)(THIS_
@@ -2186,10 +2238,12 @@ DECLARE_INTERFACE_(IDWriteTypography,IUnknown)
 {
     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(IDWriteTextRenderer, 0xef8a8135,0x5cc6,0x45fe,0x88,0x25,0xc5,0xa
 __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)
 

------------------------------------------------------------------------------
_______________________________________________
Mingw-w64-public mailing list
Mingw-w64-public@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public

Reply via email to