Dear list, Please find attached a patch which updates the dwrite_3 header. It's not the whole of it, just the necessary part which serves to compile font support of the vstgui software.
More precisely it's about this code here: https://github.com/steinbergmedia/vstgui/blob/develop/vstgui/lib/platform/win32/direct2d/d2dfont.cpp Please mind that, although I'm moderately confident in the changes, it is my first attempt at a contribution to the mingw-w64 project. :) Best. -JPC
>From f72ff5521fe1373730fddeabe7efc13d7bdcff06 Mon Sep 17 00:00:00 2001 From: Jean Pierre Cimalando <jp-...@inbox.ru> Date: Sat, 5 Sep 2020 13:09:56 +0200 Subject: [PATCH] dwrite_3: update with some new classes This adds the following interfaces. These are desired in order to be able to build font support in vstgui. - IDWriteRenderingParams3 - IDWriteFactory3 - IDWriteFontSet - IDWriteFontSetBuilder - IDWriteFontCollection1 - IDWriteStringList - IDWriteFontDownloadListener - IDWriteFontDownloadQueue - IDWriteColorGlyphRunEnumerator1 - IDWriteFactory4 - IDWriteFontSetBuilder1 - IDWriteAsyncResult - IDWriteRemoteFontFileStream - IDWriteRemoteFontFileLoader - IDWriteInMemoryFontFileLoader - IDWriteFactory5 Signed-off-by: Jean Pierre Cimalando <jp-...@inbox.ru> --- mingw-w64-headers/include/dwrite_3.h | 1328 ++++++++++++++++++++++++++ 1 file changed, 1328 insertions(+) diff --git a/mingw-w64-headers/include/dwrite_3.h b/mingw-w64-headers/include/dwrite_3.h index 9c171731..b993b1a9 100644 --- a/mingw-w64-headers/include/dwrite_3.h +++ b/mingw-w64-headers/include/dwrite_3.h @@ -60,10 +60,470 @@ struct DWRITE_FONT_AXIS_RANGE { FLOAT maxValue; }; +enum DWRITE_FONT_PROPERTY_ID { + DWRITE_FONT_PROPERTY_ID_NONE, + DWRITE_FONT_PROPERTY_ID_WEIGHT_STRETCH_STYLE_FAMILY_NAME, + DWRITE_FONT_PROPERTY_ID_TYPOGRAPHIC_FAMILY_NAME, + DWRITE_FONT_PROPERTY_ID_WEIGHT_STRETCH_STYLE_FACE_NAME, + DWRITE_FONT_PROPERTY_ID_FULL_NAME, + DWRITE_FONT_PROPERTY_ID_WIN32_FAMILY_NAME, + DWRITE_FONT_PROPERTY_ID_POSTSCRIPT_NAME, + DWRITE_FONT_PROPERTY_ID_DESIGN_SCRIPT_LANGUAGE_TAG, + DWRITE_FONT_PROPERTY_ID_SUPPORTED_SCRIPT_LANGUAGE_TAG, + DWRITE_FONT_PROPERTY_ID_SEMANTIC_TAG, + DWRITE_FONT_PROPERTY_ID_WEIGHT, + DWRITE_FONT_PROPERTY_ID_STRETCH, + DWRITE_FONT_PROPERTY_ID_STYLE, + DWRITE_FONT_PROPERTY_ID_TYPOGRAPHIC_FACE_NAME, + DWRITE_FONT_PROPERTY_ID_TOTAL, + DWRITE_FONT_PROPERTY_ID_TOTAL_RS3, + DWRITE_FONT_PROPERTY_ID_PREFERRED_FAMILY_NAME, + DWRITE_FONT_PROPERTY_ID_FAMILY_NAME, + DWRITE_FONT_PROPERTY_ID_FACE_NAME +}; + +struct DWRITE_FONT_PROPERTY { + DWRITE_FONT_PROPERTY_ID propertyId; + WCHAR const *propertyValue; + WCHAR const *localeName; +}; + +enum DWRITE_CONTAINER_TYPE +{ + DWRITE_CONTAINER_TYPE_UNKNOWN, + DWRITE_CONTAINER_TYPE_WOFF, + DWRITE_CONTAINER_TYPE_WOFF2 +}; + +enum DWRITE_LOCALITY { + DWRITE_LOCALITY_REMOTE, + DWRITE_LOCALITY_PARTIAL, + DWRITE_LOCALITY_LOCAL +}; + +interface IDWriteFontSet; +interface IDWriteFontSetBuilder; +interface IDWriteFontCollection1; +interface IDWriteStringList; +interface IDWriteFontDownloadQueue; interface IDWriteFontResource; interface IDWriteFontFaceReference1; interface IDWriteFontFaceReference; + +#undef INTERFACE +#define INTERFACE IDWriteRenderingParams3 +DECLARE_INTERFACE_(IDWriteRenderingParams3,IDWriteRenderingParams2) +{ + BEGIN_INTERFACE + +#ifndef __cplusplus + /* IUnknown methods */ + STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE; + STDMETHOD_(ULONG, AddRef)(THIS) PURE; + STDMETHOD_(ULONG, Release)(THIS) PURE; + + /* IDWriteRenderingParams methods */ + STDMETHOD_(FLOAT, GetGamma)(THIS) PURE; + STDMETHOD_(FLOAT, GetEnhancedContrast)(THIS) PURE; + STDMETHOD_(FLOAT, GetClearTypeLevel)(THIS) PURE; + STDMETHOD_(DWRITE_PIXEL_GEOMETRY, GetPixelGeometry)(THIS) PURE; + STDMETHOD_(DWRITE_RENDERING_MODE, GetRenderingMode)(THIS) PURE; + + /* IDWriteRenderingParams1 methods */ + STDMETHOD_(FLOAT, GetGrayscaleEnhancedContrast)(THIS) PURE; + + /* IDWriteRenderingParams2 methods */ + STDMETHOD_(DWRITE_GRID_FIT_MODE, GetGridFitMode)(THIS) PURE; +#endif + + /* IDWriteRenderingParams3 methods */ + STDMETHOD_(DWRITE_RENDERING_MODE1, GetRenderingMode1)(THIS) PURE; + + END_INTERFACE +}; + +__CRT_UUID_DECL(IDWriteRenderingParams3, 0xb7924baa,0x391b,0x412a,0x8c,0x5c,0xe4,0x4c,0xc2,0xd8,0x67,0xdc) + +#undef INTERFACE +#define INTERFACE IDWriteFactory3 +DECLARE_INTERFACE_(IDWriteFactory3,IDWriteFactory2) +{ + BEGIN_INTERFACE + +#ifndef __cplusplus + /* IUnknown methods */ + STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE; + STDMETHOD_(ULONG, AddRef)(THIS) PURE; + STDMETHOD_(ULONG, Release)(THIS) PURE; + + /* IDWriteFactory methods */ + STDMETHOD(GetSystemFontCollection)(THIS_ + IDWriteFontCollection **fontCollection, + WINBOOL checkForUpdates __MINGW_DEF_ARG_VAL(FALSE)) PURE; + + STDMETHOD(CreateCustomFontCollection)(THIS_ + IDWriteFontCollectionLoader *collectionLoader, + void const *collectionKey, + UINT32 collectionKeySize, + IDWriteFontCollection **fontCollection) PURE; + + STDMETHOD(RegisterFontCollectionLoader)(THIS_ + IDWriteFontCollectionLoader *fontCollectionLoader) PURE; + + STDMETHOD(UnregisterFontCollectionLoader)(THIS_ + IDWriteFontCollectionLoader *fontCollectionLoader) PURE; + + STDMETHOD(CreateFontFileReference)(THIS_ + WCHAR const *filePath, + FILETIME const *lastWriteTime, + IDWriteFontFile **fontFile) PURE; + + STDMETHOD(CreateCustomFontFileReference)(THIS_ + void const *fontFileReferenceKey, + UINT32 fontFileReferenceKeySize, + IDWriteFontFileLoader *fontFileLoader, + IDWriteFontFile **fontFile) PURE; + + STDMETHOD(CreateFontFace)(THIS_ + DWRITE_FONT_FACE_TYPE fontFaceType, + UINT32 numberOfFiles, + IDWriteFontFile *const *fontFiles, + UINT32 faceIndex, + DWRITE_FONT_SIMULATIONS fontFaceSimulationFlags, + IDWriteFontFace **fontFace) PURE; + + STDMETHOD(CreateRenderingParams)(THIS_ + IDWriteRenderingParams **renderingParams) PURE; + + STDMETHOD(CreateMonitorRenderingParams)(THIS_ + HMONITOR monitor, + IDWriteRenderingParams **renderingParams) PURE; + + STDMETHOD(CreateCustomRenderingParams)(THIS_ + FLOAT gamma, + FLOAT enhancedContrast, + FLOAT clearTypeLevel, + DWRITE_PIXEL_GEOMETRY pixelGeometry, + DWRITE_RENDERING_MODE renderingMode, + IDWriteRenderingParams **renderingParams) PURE; + + STDMETHOD(RegisterFontFileLoader)(THIS_ + IDWriteFontFileLoader *fontFileLoader) PURE; + + STDMETHOD(UnregisterFontFileLoader)(THIS_ + IDWriteFontFileLoader *fontFileLoader) PURE; + + STDMETHOD(CreateTextFormat)(THIS_ + WCHAR const *fontFamilyName, + IDWriteFontCollection *fontCollection, + DWRITE_FONT_WEIGHT fontWeight, + DWRITE_FONT_STYLE fontStyle, + DWRITE_FONT_STRETCH fontStretch, + FLOAT fontSize, + WCHAR const *localeName, + IDWriteTextFormat **textFormat) PURE; + + STDMETHOD(CreateTypography)(THIS_ + IDWriteTypography **typography) PURE; + + STDMETHOD(GetGdiInterop)(THIS_ + IDWriteGdiInterop **gdiInterop) PURE; + + STDMETHOD(CreateTextLayout)(THIS_ + WCHAR const *string, + UINT32 stringLength, + IDWriteTextFormat *textFormat, + FLOAT maxWidth, + FLOAT maxHeight, + IDWriteTextLayout **textLayout) PURE; + + STDMETHOD(CreateGdiCompatibleTextLayout)(THIS_ + WCHAR const *string, + UINT32 stringLength, + IDWriteTextFormat *textFormat, + FLOAT layoutWidth, + FLOAT layoutHeight, + FLOAT pixelsPerDip, + DWRITE_MATRIX const *transform, + WINBOOL useGdiNatural, + IDWriteTextLayout **textLayout) PURE; + + STDMETHOD(CreateEllipsisTrimmingSign)(THIS_ + IDWriteTextFormat *textFormat, + IDWriteInlineObject **trimmingSign) PURE; + + STDMETHOD(CreateTextAnalyzer)(THIS_ + IDWriteTextAnalyzer **textAnalyzer) PURE; + + STDMETHOD(CreateNumberSubstitution)(THIS_ + DWRITE_NUMBER_SUBSTITUTION_METHOD substitutionMethod, + WCHAR const *localeName, + WINBOOL ignoreUserOverride, + IDWriteNumberSubstitution **numberSubstitution) PURE; + + STDMETHOD(CreateGlyphRunAnalysis)(THIS_ + DWRITE_GLYPH_RUN const *glyphRun, + FLOAT pixelsPerDip, + DWRITE_MATRIX const *transform, + DWRITE_RENDERING_MODE renderingMode, + DWRITE_MEASURING_MODE measuringMode, + FLOAT baselineOriginX, + FLOAT baselineOriginY, + IDWriteGlyphRunAnalysis **glyphRunAnalysis) PURE; + + /* IDWriteFactory1 methods */ + STDMETHOD(GetEudcFontCollection)(THIS_ + IDWriteFontCollection **fontCollection, + BOOL checkForUpdates __MINGW_DEF_ARG_VAL(FALSE)) PURE; + + STDMETHOD(CreateCustomRenderingParams)(THIS_ + FLOAT gamma, + FLOAT enhancedContrast, + FLOAT enhancedContrastGrayscale, + FLOAT clearTypeLevel, + DWRITE_PIXEL_GEOMETRY pixelGeometry, + DWRITE_RENDERING_MODE renderingMode, + IDWriteRenderingParams1 **renderingParams) PURE; + + /* IDWriteFactory2 methods */ + STDMETHOD(GetSystemFontFallback)(THIS_ + IDWriteFontFallback **fontFallback) PURE; + + STDMETHOD(CreateFontFallbackBuilder)(THIS_ + IDWriteFontFallbackBuilder **fontFallbackBuilder) PURE; + + STDMETHOD(TranslateColorGlyphRun)(THIS_ + FLOAT baselineOriginX, + FLOAT baselineOriginY, + DWRITE_GLYPH_RUN const *glyphRun, + DWRITE_GLYPH_RUN_DESCRIPTION const *glyphRunDescription, + DWRITE_MEASURING_MODE measuringMode, + DWRITE_MATRIX const *worldToDeviceTransform, + UINT32 colorPaletteIndex, + IDWriteColorGlyphRunEnumerator **colorLayers) PURE; + + STDMETHOD(CreateCustomRenderingParams)(THIS_ + FLOAT gamma, + FLOAT enhancedContrast, + FLOAT grayscaleEnhancedContrast, + FLOAT clearTypeLevel, + DWRITE_PIXEL_GEOMETRY pixelGeometry, + DWRITE_RENDERING_MODE renderingMode, + DWRITE_GRID_FIT_MODE gridFitMode, + IDWriteRenderingParams2 **renderingParams) PURE; + + STDMETHOD(CreateGlyphRunAnalysis)(THIS_ + DWRITE_GLYPH_RUN const *glyphRun, + DWRITE_MATRIX const *transform, + DWRITE_RENDERING_MODE renderingMode, + DWRITE_MEASURING_MODE measuringMode, + DWRITE_GRID_FIT_MODE gridFitMode, + DWRITE_TEXT_ANTIALIAS_MODE antialiasMode, + FLOAT baselineOriginX, + FLOAT baselineOriginY, + IDWriteGlyphRunAnalysis **glyphRunAnalysis) PURE; +#endif + + /* IDWriteFactory3 methods */ + STDMETHOD(CreateGlyphRunAnalysis)(THIS_ + DWRITE_GLYPH_RUN const *glyphRun, + DWRITE_MATRIX const *transform, + DWRITE_RENDERING_MODE1 renderingMode, + DWRITE_MEASURING_MODE measuringMode, + DWRITE_GRID_FIT_MODE gridFitMode, + DWRITE_TEXT_ANTIALIAS_MODE antialiasMode, + FLOAT baselineOriginX, + FLOAT baselineOriginY, + IDWriteGlyphRunAnalysis **glyphRunAnalysis) PURE; + +#ifdef __cplusplus + using IDWriteFactory::CreateGlyphRunAnalysis; + using IDWriteFactory2::CreateGlyphRunAnalysis; +#endif + + STDMETHOD(CreateCustomRenderingParams)(THIS_ + FLOAT gamma, + FLOAT enhancedContrast, + FLOAT grayscaleEnhancedContrast, + FLOAT clearTypeLevel, + DWRITE_PIXEL_GEOMETRY pixelGeometry, + DWRITE_RENDERING_MODE1 renderingMode, + DWRITE_GRID_FIT_MODE gridFitMode, + IDWriteRenderingParams3 **renderingParams) PURE; + +#ifdef __cplusplus + using IDWriteFactory::CreateCustomRenderingParams; + using IDWriteFactory1::CreateCustomRenderingParams; + using IDWriteFactory2::CreateCustomRenderingParams; +#endif + + STDMETHOD(CreateFontFaceReference)(THIS_ + WCHAR const *filePath, + FILETIME const *lastWriteTime, + UINT32 faceIndex, + DWRITE_FONT_SIMULATIONS fontSimulations, + IDWriteFontFaceReference **fontFaceReference) PURE; + STDMETHOD(CreateFontFaceReference)(THIS_ + IDWriteFontFile *fontFile, + UINT32 faceIndex, + DWRITE_FONT_SIMULATIONS fontSimulations, + IDWriteFontFaceReference **fontFaceReference) PURE; + STDMETHOD(GetSystemFontSet)(THIS_ + IDWriteFontSet **fontSet) PURE; + STDMETHOD(CreateFontSetBuilder)(THIS_ + IDWriteFontSetBuilder **fontSetBuilder) PURE; + STDMETHOD(CreateFontCollectionFromFontSet)(THIS_ + IDWriteFontSet *fontSet, + IDWriteFontCollection1 **fontCollection) PURE; +#ifdef __cplusplus + STDMETHOD(GetSystemFontCollection)(THIS_ + BOOL includeDownloadableFonts, + IDWriteFontCollection1 **fontCollection, + BOOL checkForUpdates = FALSE) PURE; +#else + STDMETHOD(GetSystemFontCollection)(THIS_ + BOOL includeDownloadableFonts, + IDWriteFontCollection1 **fontCollection, + BOOL checkForUpdates) PURE; +#endif + +#ifdef __cplusplus + using IDWriteFactory::GetSystemFontCollection; +#endif + + STDMETHOD(GetFontDownloadQueue)(THIS_ IDWriteFontDownloadQueue **fontDownloadQueue) PURE; + + END_INTERFACE +}; + +__CRT_UUID_DECL(IDWriteFactory3, 0x9a1b41c3,0xd3bb,0x466a,0x87,0xfc,0xfe,0x67,0x55,0x6a,0x3b,0x65) + +#undef INTERFACE +#define INTERFACE IDWriteFontSet +DECLARE_INTERFACE_(IDWriteFontSet,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 + + /* IDWriteFontSet methods */ + STDMETHOD_(UINT32, GetFontCount)(THIS) PURE; + STDMETHOD(GetFontFaceReference)(THIS_ + UINT32 listIndex, + IDWriteFontFaceReference **fontFaceReference) PURE; + STDMETHOD(FindFontFaceReference)(THIS_ + IDWriteFontFaceReference *fontFaceReference, + UINT32 *listIndex, + BOOL *exists) PURE; + STDMETHOD(FindFontFace)(THIS_ + IDWriteFontFace *fontFace, + UINT32 *listIndex, + BOOL *exists) PURE; + STDMETHOD(GetPropertyValues)(THIS_ + UINT32 listIndex, + DWRITE_FONT_PROPERTY_ID propertyId, + BOOL *exists, + IDWriteLocalizedStrings **values) PURE; + STDMETHOD(GetPropertyValues)(THIS_ + DWRITE_FONT_PROPERTY_ID propertyID, + WCHAR const *preferredLocaleNames, + IDWriteStringList **values) PURE; + STDMETHOD(GetPropertyValues)(THIS_ + DWRITE_FONT_PROPERTY_ID propertyID, + IDWriteStringList **values) PURE; + STDMETHOD(GetPropertyOccurrenceCount)(THIS_ + DWRITE_FONT_PROPERTY const *property, + UINT32 *propertyOccurrenceCount) PURE; + STDMETHOD(GetMatchingFonts)(THIS_ + DWRITE_FONT_PROPERTY const *properties, + UINT32 propertyCount, + IDWriteFontSet **filteredSet) PURE; + STDMETHOD(GetMatchingFonts)(THIS_ + WCHAR const *familyName, + DWRITE_FONT_WEIGHT fontWeight, + DWRITE_FONT_STRETCH fontStretch, + DWRITE_FONT_STYLE fontStyle, + IDWriteFontSet **filteredSet) PURE; + + END_INTERFACE +}; + +__CRT_UUID_DECL(IDWriteFontSet, 0x53585141,0xd9f8,0x4095,0x83,0x21,0xd7,0x3c,0xf6,0xbd,0x11,0x6b) + +#undef INTERFACE +#define INTERFACE IDWriteFontSetBuilder +DECLARE_INTERFACE_(IDWriteFontSetBuilder,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 + + /* IDWriteFontSetBuilder methods */ + STDMETHOD(AddFontFaceReference)(THIS_ + IDWriteFontFaceReference *fontFaceReference) PURE; + STDMETHOD(AddFontFaceReference)(THIS_ + IDWriteFontFaceReference *fontFaceReference, + DWRITE_FONT_PROPERTY const *properties, + UINT32 propertyCount) PURE; + STDMETHOD(AddFontSet)(THIS_ + IDWriteFontSet *fontSet) PURE; + STDMETHOD(CreateFontSet)(THIS_ + IDWriteFontSet **fontSet) PURE; + + END_INTERFACE +}; + +__CRT_UUID_DECL(IDWriteFontSetBuilder, 0x2f642afe,0x9c68,0x4f40,0xb8,0xbe,0x45,0x74,0x01,0xaf,0xcb,0x3d) + +#undef INTERFACE +#define INTERFACE IDWriteFontCollection1 +DECLARE_INTERFACE_(IDWriteFontCollection1,IDWriteFontCollection) +{ + BEGIN_INTERFACE + +#ifndef __cplusplus + /* IUnknown methods */ + STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE; + STDMETHOD_(ULONG, AddRef)(THIS) PURE; + STDMETHOD_(ULONG, Release)(THIS) PURE; + + /* IDWriteFontCollection methods */ + STDMETHOD_(UINT32, GetFontFamilyCount)(THIS) PURE; + + STDMETHOD(GetFontFamily)(THIS_ + UINT32 index, + IDWriteFontFamily **fontFamily) PURE; + + STDMETHOD(FindFamilyName)(THIS_ + WCHAR const *familyName, + UINT32 *index, + WINBOOL *exists) PURE; + + STDMETHOD(GetFontFromFontFace)(THIS_ + IDWriteFontFace* fontFace, + IDWriteFont **font) PURE; +#endif + + /* IDWriteFontCollection1 methods */ + STDMETHOD(GetFontSet)(THIS_ + IDWriteFontSet **fontSet) PURE; + + END_INTERFACE +}; + +__CRT_UUID_DECL(IDWriteFontCollection1, 0x53585141,0xd9f8,0x4095,0x83,0x21,0xd7,0x3c,0xf6,0xbd,0x11,0x6c) + #undef INTERFACE #define INTERFACE IDWriteFontFace3 DECLARE_INTERFACE_(IDWriteFontFace3,IDWriteFontFace2) @@ -219,6 +679,154 @@ DECLARE_INTERFACE_(IDWriteFontFace3,IDWriteFontFace2) __CRT_UUID_DECL(IDWriteFontFace3, 0xd37d7598,0x09be,0x4222,0xa2,0x36,0x20,0x81,0x34,0x1c,0xc1,0xf2) +#undef INTERFACE +#define INTERFACE IDWriteStringList +DECLARE_INTERFACE_(IDWriteStringList,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 + + /* IDWriteStringList methods */ + STDMETHOD_(UINT32, GetCount)(THIS) PURE; + STDMETHOD(GetLocaleNameLength)(THIS_ + UINT32 listIndex, + UINT32 *length) PURE; + STDMETHOD(GetLocaleName)(THIS_ + UINT32 listIndex, + WCHAR *localeName, + UINT32 size) PURE; + STDMETHOD(GetStringLength)(THIS_ + UINT32 listIndex, + UINT32 *length) PURE; + STDMETHOD(GetString)(THIS_ + UINT32 listIndex, + WCHAR *stringBuffer, + UINT32 stringBufferSize) PURE; + + END_INTERFACE +}; + +__CRT_UUID_DECL(IDWriteStringList, 0xcfee3140,0x1157,0x47ca,0x8b,0x85,0x31,0xbf,0xcf,0x3f,0x2d,0x0e) + +#undef INTERFACE +#define INTERFACE IDWriteFontDownloadListener +DECLARE_INTERFACE_(IDWriteFontDownloadListener,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 + + /* IDWriteFontDownloadListener methods */ + STDMETHOD_(void, DownloadCompleted)(THIS_ + IDWriteFontDownloadQueue *downloadQueue, + IUnknown *context, + HRESULT downloadResult) PURE; + + END_INTERFACE +}; + +__CRT_UUID_DECL(IDWriteFontDownloadListener, 0xb06fe5b9,0x43ec,0x4393,0x88,0x1b,0xdb,0xe4,0xdc,0x72,0xfd,0xa7) + +#undef INTERFACE +#define INTERFACE IDWriteFontDownloadQueue +DECLARE_INTERFACE_(IDWriteFontDownloadQueue,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 + + /* IDWriteFontDownloadQueue methods */ + STDMETHOD(AddListener)(THIS_ + IDWriteFontDownloadListener *listener, + UINT32 *token) PURE; + STDMETHOD(RemoveListener)(THIS_ + UINT32 token) PURE; + STDMETHOD_(BOOL, IsEmpty)(THIS) PURE; +#ifdef __cplusplus + STDMETHOD(BeginDownload)(THIS_ + IUnknown *context = nullptr) PURE; +#else + STDMETHOD(BeginDownload)(THIS_ + IUnknown *context) PURE; +#endif + STDMETHOD(CancelDownload)(THIS) PURE; + STDMETHOD_(UINT64, GetGenerationCount)(THIS) PURE; + + END_INTERFACE +}; + +__CRT_UUID_DECL(IDWriteFontDownloadQueue, 0xb71e6052,0x5aea,0x4fa3,0x83,0x2e,0xf6,0x0d,0x43,0x1f,0x7e,0x91) + +#if NTDDI_VERSION >= NTDDI_WIN10_RS1 + +typedef struct DWRITE_COLOR_GLYPH_RUN1 +#ifdef __cplusplus + : DWRITE_COLOR_GLYPH_RUN +#endif +{ +#ifndef __cplusplus + DWRITE_GLYPH_RUN glyphRun; + DWRITE_GLYPH_RUN_DESCRIPTION *glyphRunDescription; + FLOAT baselineOriginX; + FLOAT baselineOriginY; + DWRITE_COLOR_F runColor; + UINT16 paletteIndex; +#endif + DWRITE_GLYPH_IMAGE_FORMATS glyphImageFormat; + DWRITE_MEASURING_MODE measuringMode; +} DWRITE_COLOR_GLYPH_RUN1; + +#undef INTERFACE +#define INTERFACE IDWriteColorGlyphRunEnumerator1 +DECLARE_INTERFACE_(IDWriteColorGlyphRunEnumerator1,IDWriteColorGlyphRunEnumerator) +{ + BEGIN_INTERFACE + +#ifndef __cplusplus + /* IUnknown methods */ + STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE; + STDMETHOD_(ULONG, AddRef)(THIS) PURE; + STDMETHOD_(ULONG, Release)(THIS) PURE; + + /* IDWriteColorGlyphRunEnumerator methods */ + STDMETHOD(MoveNext)(THIS_ + BOOL *hasRun) PURE; + + STDMETHOD(GetCurrentRun)(THIS_ + DWRITE_COLOR_GLYPH_RUN const **colorGlyphRun) PURE; +#endif + + /* IDWriteColorGlyphRunEnumerator1 methods */ + STDMETHOD(GetCurrentRun)(THIS_ + DWRITE_COLOR_GLYPH_RUN1 const **colorGlyphRun) PURE; + +#ifdef __cplusplus + using IDWriteColorGlyphRunEnumerator::GetCurrentRun; +#endif + + END_INTERFACE +}; + +__CRT_UUID_DECL(IDWriteColorGlyphRunEnumerator1, 0x7c5f86da,0xc7a1,0x4f05,0xb8,0xe1,0x55,0xa1,0x79,0xfe,0x5a,0x35) + +#endif + #undef INTERFACE #define INTERFACE IDWriteFontFace4 DECLARE_INTERFACE_(IDWriteFontFace4,IDWriteFontFace3) @@ -378,6 +986,266 @@ DECLARE_INTERFACE_(IDWriteFontFace4,IDWriteFontFace3) __CRT_UUID_DECL(IDWriteFontFace4, 0x27f2a904,0x4eb8,0x441d,0x96,0x78,0x05,0x63,0xf5,0x3e,0x3e,0x2f) +#if NTDDI_VERSION >= NTDDI_WIN10_RS1 + +#undef INTERFACE +#define INTERFACE IDWriteFactory4 +DECLARE_INTERFACE_(IDWriteFactory4,IDWriteFactory3) +{ + BEGIN_INTERFACE + +#ifndef __cplusplus + /* IUnknown methods */ + STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE; + STDMETHOD_(ULONG, AddRef)(THIS) PURE; + STDMETHOD_(ULONG, Release)(THIS) PURE; + + /* IDWriteFactory methods */ + STDMETHOD(GetSystemFontCollection)(THIS_ + IDWriteFontCollection **fontCollection, + WINBOOL checkForUpdates __MINGW_DEF_ARG_VAL(FALSE)) PURE; + + STDMETHOD(CreateCustomFontCollection)(THIS_ + IDWriteFontCollectionLoader *collectionLoader, + void const *collectionKey, + UINT32 collectionKeySize, + IDWriteFontCollection **fontCollection) PURE; + + STDMETHOD(RegisterFontCollectionLoader)(THIS_ + IDWriteFontCollectionLoader *fontCollectionLoader) PURE; + + STDMETHOD(UnregisterFontCollectionLoader)(THIS_ + IDWriteFontCollectionLoader *fontCollectionLoader) PURE; + + STDMETHOD(CreateFontFileReference)(THIS_ + WCHAR const *filePath, + FILETIME const *lastWriteTime, + IDWriteFontFile **fontFile) PURE; + + STDMETHOD(CreateCustomFontFileReference)(THIS_ + void const *fontFileReferenceKey, + UINT32 fontFileReferenceKeySize, + IDWriteFontFileLoader *fontFileLoader, + IDWriteFontFile **fontFile) PURE; + + STDMETHOD(CreateFontFace)(THIS_ + DWRITE_FONT_FACE_TYPE fontFaceType, + UINT32 numberOfFiles, + IDWriteFontFile *const *fontFiles, + UINT32 faceIndex, + DWRITE_FONT_SIMULATIONS fontFaceSimulationFlags, + IDWriteFontFace **fontFace) PURE; + + STDMETHOD(CreateRenderingParams)(THIS_ + IDWriteRenderingParams **renderingParams) PURE; + + STDMETHOD(CreateMonitorRenderingParams)(THIS_ + HMONITOR monitor, + IDWriteRenderingParams **renderingParams) PURE; + + STDMETHOD(CreateCustomRenderingParams)(THIS_ + FLOAT gamma, + FLOAT enhancedContrast, + FLOAT clearTypeLevel, + DWRITE_PIXEL_GEOMETRY pixelGeometry, + DWRITE_RENDERING_MODE renderingMode, + IDWriteRenderingParams **renderingParams) PURE; + + STDMETHOD(RegisterFontFileLoader)(THIS_ + IDWriteFontFileLoader *fontFileLoader) PURE; + + STDMETHOD(UnregisterFontFileLoader)(THIS_ + IDWriteFontFileLoader *fontFileLoader) PURE; + + STDMETHOD(CreateTextFormat)(THIS_ + WCHAR const *fontFamilyName, + IDWriteFontCollection *fontCollection, + DWRITE_FONT_WEIGHT fontWeight, + DWRITE_FONT_STYLE fontStyle, + DWRITE_FONT_STRETCH fontStretch, + FLOAT fontSize, + WCHAR const *localeName, + IDWriteTextFormat **textFormat) PURE; + + STDMETHOD(CreateTypography)(THIS_ + IDWriteTypography **typography) PURE; + + STDMETHOD(GetGdiInterop)(THIS_ + IDWriteGdiInterop **gdiInterop) PURE; + + STDMETHOD(CreateTextLayout)(THIS_ + WCHAR const *string, + UINT32 stringLength, + IDWriteTextFormat *textFormat, + FLOAT maxWidth, + FLOAT maxHeight, + IDWriteTextLayout **textLayout) PURE; + + STDMETHOD(CreateGdiCompatibleTextLayout)(THIS_ + WCHAR const *string, + UINT32 stringLength, + IDWriteTextFormat *textFormat, + FLOAT layoutWidth, + FLOAT layoutHeight, + FLOAT pixelsPerDip, + DWRITE_MATRIX const *transform, + WINBOOL useGdiNatural, + IDWriteTextLayout **textLayout) PURE; + + STDMETHOD(CreateEllipsisTrimmingSign)(THIS_ + IDWriteTextFormat *textFormat, + IDWriteInlineObject **trimmingSign) PURE; + + STDMETHOD(CreateTextAnalyzer)(THIS_ + IDWriteTextAnalyzer **textAnalyzer) PURE; + + STDMETHOD(CreateNumberSubstitution)(THIS_ + DWRITE_NUMBER_SUBSTITUTION_METHOD substitutionMethod, + WCHAR const *localeName, + WINBOOL ignoreUserOverride, + IDWriteNumberSubstitution **numberSubstitution) PURE; + + STDMETHOD(CreateGlyphRunAnalysis)(THIS_ + DWRITE_GLYPH_RUN const *glyphRun, + FLOAT pixelsPerDip, + DWRITE_MATRIX const *transform, + DWRITE_RENDERING_MODE renderingMode, + DWRITE_MEASURING_MODE measuringMode, + FLOAT baselineOriginX, + FLOAT baselineOriginY, + IDWriteGlyphRunAnalysis **glyphRunAnalysis) PURE; + + /* IDWriteFactory1 methods */ + STDMETHOD(GetEudcFontCollection)(THIS_ + IDWriteFontCollection **fontCollection, + BOOL checkForUpdates __MINGW_DEF_ARG_VAL(FALSE)) PURE; + + STDMETHOD(CreateCustomRenderingParams)(THIS_ + FLOAT gamma, + FLOAT enhancedContrast, + FLOAT enhancedContrastGrayscale, + FLOAT clearTypeLevel, + DWRITE_PIXEL_GEOMETRY pixelGeometry, + DWRITE_RENDERING_MODE renderingMode, + IDWriteRenderingParams1 **renderingParams) PURE; + + /* IDWriteFactory2 methods */ + STDMETHOD(GetSystemFontFallback)(THIS_ + IDWriteFontFallback **fontFallback) PURE; + + STDMETHOD(CreateFontFallbackBuilder)(THIS_ + IDWriteFontFallbackBuilder **fontFallbackBuilder) PURE; + + STDMETHOD(TranslateColorGlyphRun)(THIS_ + FLOAT baselineOriginX, + FLOAT baselineOriginY, + DWRITE_GLYPH_RUN const *glyphRun, + DWRITE_GLYPH_RUN_DESCRIPTION const *glyphRunDescription, + DWRITE_MEASURING_MODE measuringMode, + DWRITE_MATRIX const *worldToDeviceTransform, + UINT32 colorPaletteIndex, + IDWriteColorGlyphRunEnumerator **colorLayers) PURE; + + STDMETHOD(CreateCustomRenderingParams)(THIS_ + FLOAT gamma, + FLOAT enhancedContrast, + FLOAT grayscaleEnhancedContrast, + FLOAT clearTypeLevel, + DWRITE_PIXEL_GEOMETRY pixelGeometry, + DWRITE_RENDERING_MODE renderingMode, + DWRITE_GRID_FIT_MODE gridFitMode, + IDWriteRenderingParams2 **renderingParams) PURE; + + STDMETHOD(CreateGlyphRunAnalysis)(THIS_ + DWRITE_GLYPH_RUN const *glyphRun, + DWRITE_MATRIX const *transform, + DWRITE_RENDERING_MODE renderingMode, + DWRITE_MEASURING_MODE measuringMode, + DWRITE_GRID_FIT_MODE gridFitMode, + DWRITE_TEXT_ANTIALIAS_MODE antialiasMode, + FLOAT baselineOriginX, + FLOAT baselineOriginY, + IDWriteGlyphRunAnalysis **glyphRunAnalysis) PURE; + + /* IDWriteFactory3 methods */ + STDMETHOD(CreateGlyphRunAnalysis)(THIS_ + DWRITE_GLYPH_RUN const *glyphRun, + DWRITE_MATRIX const *transform, + DWRITE_RENDERING_MODE1 renderingMode, + DWRITE_MEASURING_MODE measuringMode, + DWRITE_GRID_FIT_MODE gridFitMode, + DWRITE_TEXT_ANTIALIAS_MODE antialiasMode, + FLOAT baselineOriginX, + FLOAT baselineOriginY, + IDWriteGlyphRunAnalysis **glyphRunAnalysis) PURE; + STDMETHOD(CreateCustomRenderingParams)(THIS_ + FLOAT gamma, + FLOAT enhancedContrast, + FLOAT grayscaleEnhancedContrast, + FLOAT clearTypeLevel, + DWRITE_PIXEL_GEOMETRY pixelGeometry, + DWRITE_RENDERING_MODE1 renderingMode, + DWRITE_GRID_FIT_MODE gridFitMode, + IDWriteRenderingParams3 **renderingParams) PURE; + STDMETHOD(CreateFontFaceReference)(THIS_ + WCHAR const *filePath, + FILETIME const *lastWriteTime, + UINT32 faceIndex, + DWRITE_FONT_SIMULATIONS fontSimulations, + IDWriteFontFaceReference **fontFaceReference) PURE; + STDMETHOD(CreateFontFaceReference)(THIS_ + IDWriteFontFile *fontFile, + UINT32 faceIndex, + DWRITE_FONT_SIMULATIONS fontSimulations, + IDWriteFontFaceReference **fontFaceReference) PURE; + STDMETHOD(GetSystemFontSet)(THIS_ + IDWriteFontSet **fontSet) PURE; + STDMETHOD(CreateFontSetBuilder)(THIS_ + IDWriteFontSetBuilder **fontSetBuilder) PURE; + STDMETHOD(CreateFontCollectionFromFontSet)(THIS_ + IDWriteFontSet *fontSet, + IDWriteFontCollection1 **fontCollection) PURE; + STDMETHOD(GetSystemFontCollection)(THIS_ + BOOL includeDownloadableFonts, + IDWriteFontCollection1 **fontCollection, + BOOL checkForUpdates) PURE; + STDMETHOD(GetFontDownloadQueue)(THIS_ + IDWriteFontDownloadQueue **fontDownloadQueue) PURE; +#endif + + /* IDWriteFactory4 methods */ + STDMETHOD(TranslateColorGlyphRun)(THIS_ + D2D1_POINT_2F baselineOrigin, + DWRITE_GLYPH_RUN const *glyphRun, + DWRITE_GLYPH_RUN_DESCRIPTION const *glyphRunDescription, + DWRITE_GLYPH_IMAGE_FORMATS desiredGlyphImageFormats, + DWRITE_MEASURING_MODE measuringMode, + DWRITE_MATRIX const *worldAndDpiTransform, + UINT32 colorPaletteIndex, + IDWriteColorGlyphRunEnumerator1 **colorLayers) PURE; + +#ifdef __cplusplus + using IDWriteFactory2::TranslateColorGlyphRun; +#endif + + STDMETHOD(ComputeGlyphOrigins)(THIS_ + DWRITE_GLYPH_RUN const *glyphRun, + DWRITE_MEASURING_MODE measuringMode, + D2D1_POINT_2F baselineOrigin, + DWRITE_MATRIX const *worldAndDpiTransform, + D2D1_POINT_2F *glyphOrigins) PURE; + STDMETHOD(ComputeGlyphOrigins)(THIS_ + DWRITE_GLYPH_RUN const *glyphRun, + D2D1_POINT_2F baselineOrigin, + D2D1_POINT_2F *glyphOrigins) PURE; + + END_INTERFACE +}; + +__CRT_UUID_DECL(IDWriteFactory4, 0x4b0b5bd3,0x0797,0x4549,0x8a,0xc5,0xfe,0x91,0x5c,0xc5,0x38,0x56) + +#endif + #undef INTERFACE #define INTERFACE IDWriteFontFace5 DECLARE_INTERFACE_(IDWriteFontFace5,IDWriteFontFace4) @@ -583,5 +1451,465 @@ DECLARE_INTERFACE_(IDWriteFontResource,IUnknown) __CRT_UUID_DECL(IDWriteFontResource, 0x1f803a76,0x6871,0x48e8,0x98,0x7f,0xb9,0x75,0x55,0x1c,0x50,0xf2) +#if NTDDI_VERSION >= NTDDI_WIN10_RS2 + +#undef INTERFACE +#define INTERFACE IDWriteFontSetBuilder1 +DECLARE_INTERFACE_(IDWriteFontSetBuilder1,IDWriteFontSetBuilder) +{ + BEGIN_INTERFACE + +#ifndef __cplusplus + /* IUnknown methods */ + STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE; + STDMETHOD_(ULONG, AddRef)(THIS) PURE; + STDMETHOD_(ULONG, Release)(THIS) PURE; + + /* IDWriteFontSetBuilder methods */ + STDMETHOD(AddFontFaceReference)(THIS_ + IDWriteFontFaceReference *fontFaceReference) PURE; + STDMETHOD(AddFontFaceReference)(THIS_ + IDWriteFontFaceReference *fontFaceReference, + DWRITE_FONT_PROPERTY const *properties, + UINT32 propertyCount) PURE; + STDMETHOD(AddFontSet)(THIS_ + IDWriteFontSet *fontSet) PURE; + STDMETHOD(CreateFontSet)(THIS_ + IDWriteFontSet **fontSet) PURE; +#endif + + /* IDWriteFontSetBuilder1 methods */ + STDMETHOD(AddFontFile)(IDWriteFontFile *fontFile) PURE; + + END_INTERFACE +}; + +__CRT_UUID_DECL(IDWriteFontSetBuilder1, 0x3ff7715f,0x3cdc,0x4dc6,0x9b,0x72,0xec,0x56,0x21,0xdc,0xca,0xfd) + +#undef INTERFACE +#define INTERFACE IDWriteAsyncResult +DECLARE_INTERFACE_(IDWriteAsyncResult,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 + + STDMETHOD_(HANDLE, GetWaitHandle)(THIS) PURE; + STDMETHOD(GetResult)(THIS) PURE; + + END_INTERFACE +}; + +__CRT_UUID_DECL(IDWriteAsyncResult, 0xce25f8fd,0x863b,0x4d13,0x96,0x51,0xc1,0xf8,0x8d,0xc7,0x3f,0xe2) + +struct DWRITE_FILE_FRAGMENT { + UINT64 fileOffset; + UINT64 fragmentSize; +}; + +#undef INTERFACE +#define INTERFACE IDWriteRemoteFontFileStream +DECLARE_INTERFACE_(IDWriteRemoteFontFileStream,IDWriteFontFileStream) +{ + BEGIN_INTERFACE + +#ifndef __cplusplus + /* IUnknown methods */ + STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE; + STDMETHOD_(ULONG, AddRef)(THIS) PURE; + STDMETHOD_(ULONG, Release)(THIS) PURE; + + /* IDWriteFontFileStream methods */ + STDMETHOD(ReadFileFragment)(THIS_ + void const **fragmentStart, + UINT64 fileOffset, + UINT64 fragmentSize, + void** fragmentContext) PURE; + + STDMETHOD_(void, ReleaseFileFragment)(THIS_ + void *fragmentContext) PURE; + + STDMETHOD(GetFileSize)(THIS_ + UINT64 *fileSize) PURE; + + STDMETHOD(GetLastWriteTime)(THIS_ + UINT64 *lastWriteTime) PURE; +#endif + + /* IDWriteRemoteFontFileStream methods */ + STDMETHOD(GetLocalFileSize)(THIS_ + UINT64 *localFileSize) PURE; + STDMETHOD(GetFileFragmentLocality)(THIS_ + UINT64 fileOffset, + UINT64 fragmentSize, + BOOL *isLocal, + UINT64 *partialSize) PURE; + STDMETHOD_(DWRITE_LOCALITY, + GetLocality)(THIS) PURE; + STDMETHOD(BeginDownload)(THIS_ + UUID const *downloadOperationID, + DWRITE_FILE_FRAGMENT const *fileFragments, + UINT32 fragmentCount, + IDWriteAsyncResult **asyncResult) PURE; + + END_INTERFACE +}; + +__CRT_UUID_DECL(IDWriteRemoteFontFileStream, 0x4db3757a,0x2c72,0x4ed9,0xb2,0xb6,0x1a,0xba,0xbe,0x1a,0xff,0x9c) + +#undef INTERFACE +#define INTERFACE IDWriteRemoteFontFileLoader +DECLARE_INTERFACE_(IDWriteRemoteFontFileLoader,IDWriteFontFileLoader) +{ + BEGIN_INTERFACE + +#ifndef __cplusplus + /* IUnknown methods */ + STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE; + STDMETHOD_(ULONG, AddRef)(THIS) PURE; + STDMETHOD_(ULONG, Release)(THIS) PURE; + + /* IDWriteFontFileLoader methods */ + STDMETHOD(CreateStreamFromKey)( + void const *fontFileReferenceKey, + UINT32 fontFileReferenceKeySize, + IDWriteFontFileStream **fontFileStream) PURE; +#endif + + /* IDWriteRemoteFontFileLoader methods */ + STDMETHOD(CreateRemoteStreamFromKey)(THIS_ + void const *fontFileReferenceKey, + UINT32 fontFileReferenceKeySize, + IDWriteRemoteFontFileStream **fontFileStream) PURE; + STDMETHOD(GetLocalityFromKey)(THIS_ + void const* fontFileReferenceKey, + UINT32 fontFileReferenceKeySize, + DWRITE_LOCALITY *locality) PURE; + STDMETHOD(CreateFontFileReferenceFromUrl)(THIS_ + IDWriteFactory *factory, + WCHAR const *baseUrl, + WCHAR const *fontFileUrl, + IDWriteFontFile **fontFile) PURE; + + END_INTERFACE +}; + +__CRT_UUID_DECL(IDWriteRemoteFontFileLoader, 0x68648c83,0x6ede,0x46c0,0xab,0x46,0x20,0x08,0x3a,0x88,0x7f,0xde) + +#undef INTERFACE +#define INTERFACE IDWriteInMemoryFontFileLoader +DECLARE_INTERFACE_(IDWriteInMemoryFontFileLoader,IDWriteFontFileLoader) +{ + BEGIN_INTERFACE + +#ifndef __cplusplus + /* IUnknown methods */ + STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE; + STDMETHOD_(ULONG, AddRef)(THIS) PURE; + STDMETHOD_(ULONG, Release)(THIS) PURE; + + /* IDWriteFontFileLoader methods */ + STDMETHOD(CreateStreamFromKey)( + void const *fontFileReferenceKey, + UINT32 fontFileReferenceKeySize, + IDWriteFontFileStream **fontFileStream) PURE; +#endif + + /* IDWriteInMemoryFontFileLoader methods */ + STDMETHOD(CreateInMemoryFontFileReference)(THIS_ + IDWriteFactory *factory, + void const *fontData, + UINT32 fontDataSize, + IUnknown *ownerObject, + IDWriteFontFile **fontFile) PURE; + STDMETHOD_(UINT32, GetFileCount)(THIS) PURE; + + END_INTERFACE +}; + +__CRT_UUID_DECL(IDWriteInMemoryFontFileLoader, 0xdc102f47,0xa12d,0x4b1c,0x82,0x2d,0x9e,0x11,0x7e,0x33,0x04,0x3f) + +#undef INTERFACE +#define INTERFACE IDWriteFactory5 +DECLARE_INTERFACE_(IDWriteFactory5,IDWriteFactory4) +{ + BEGIN_INTERFACE + +#ifndef __cplusplus + /* IUnknown methods */ + STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE; + STDMETHOD_(ULONG, AddRef)(THIS) PURE; + STDMETHOD_(ULONG, Release)(THIS) PURE; + + /* IDWriteFactory methods */ + STDMETHOD(GetSystemFontCollection)(THIS_ + IDWriteFontCollection **fontCollection, + WINBOOL checkForUpdates __MINGW_DEF_ARG_VAL(FALSE)) PURE; + + STDMETHOD(CreateCustomFontCollection)(THIS_ + IDWriteFontCollectionLoader *collectionLoader, + void const *collectionKey, + UINT32 collectionKeySize, + IDWriteFontCollection **fontCollection) PURE; + + STDMETHOD(RegisterFontCollectionLoader)(THIS_ + IDWriteFontCollectionLoader *fontCollectionLoader) PURE; + + STDMETHOD(UnregisterFontCollectionLoader)(THIS_ + IDWriteFontCollectionLoader *fontCollectionLoader) PURE; + + STDMETHOD(CreateFontFileReference)(THIS_ + WCHAR const *filePath, + FILETIME const *lastWriteTime, + IDWriteFontFile **fontFile) PURE; + + STDMETHOD(CreateCustomFontFileReference)(THIS_ + void const *fontFileReferenceKey, + UINT32 fontFileReferenceKeySize, + IDWriteFontFileLoader *fontFileLoader, + IDWriteFontFile **fontFile) PURE; + + STDMETHOD(CreateFontFace)(THIS_ + DWRITE_FONT_FACE_TYPE fontFaceType, + UINT32 numberOfFiles, + IDWriteFontFile *const *fontFiles, + UINT32 faceIndex, + DWRITE_FONT_SIMULATIONS fontFaceSimulationFlags, + IDWriteFontFace **fontFace) PURE; + + STDMETHOD(CreateRenderingParams)(THIS_ + IDWriteRenderingParams **renderingParams) PURE; + + STDMETHOD(CreateMonitorRenderingParams)(THIS_ + HMONITOR monitor, + IDWriteRenderingParams **renderingParams) PURE; + + STDMETHOD(CreateCustomRenderingParams)(THIS_ + FLOAT gamma, + FLOAT enhancedContrast, + FLOAT clearTypeLevel, + DWRITE_PIXEL_GEOMETRY pixelGeometry, + DWRITE_RENDERING_MODE renderingMode, + IDWriteRenderingParams **renderingParams) PURE; + + STDMETHOD(RegisterFontFileLoader)(THIS_ + IDWriteFontFileLoader *fontFileLoader) PURE; + + STDMETHOD(UnregisterFontFileLoader)(THIS_ + IDWriteFontFileLoader *fontFileLoader) PURE; + + STDMETHOD(CreateTextFormat)(THIS_ + WCHAR const *fontFamilyName, + IDWriteFontCollection *fontCollection, + DWRITE_FONT_WEIGHT fontWeight, + DWRITE_FONT_STYLE fontStyle, + DWRITE_FONT_STRETCH fontStretch, + FLOAT fontSize, + WCHAR const *localeName, + IDWriteTextFormat **textFormat) PURE; + + STDMETHOD(CreateTypography)(THIS_ + IDWriteTypography **typography) PURE; + + STDMETHOD(GetGdiInterop)(THIS_ + IDWriteGdiInterop **gdiInterop) PURE; + + STDMETHOD(CreateTextLayout)(THIS_ + WCHAR const *string, + UINT32 stringLength, + IDWriteTextFormat *textFormat, + FLOAT maxWidth, + FLOAT maxHeight, + IDWriteTextLayout **textLayout) PURE; + + STDMETHOD(CreateGdiCompatibleTextLayout)(THIS_ + WCHAR const *string, + UINT32 stringLength, + IDWriteTextFormat *textFormat, + FLOAT layoutWidth, + FLOAT layoutHeight, + FLOAT pixelsPerDip, + DWRITE_MATRIX const *transform, + WINBOOL useGdiNatural, + IDWriteTextLayout **textLayout) PURE; + + STDMETHOD(CreateEllipsisTrimmingSign)(THIS_ + IDWriteTextFormat *textFormat, + IDWriteInlineObject **trimmingSign) PURE; + + STDMETHOD(CreateTextAnalyzer)(THIS_ + IDWriteTextAnalyzer **textAnalyzer) PURE; + + STDMETHOD(CreateNumberSubstitution)(THIS_ + DWRITE_NUMBER_SUBSTITUTION_METHOD substitutionMethod, + WCHAR const *localeName, + WINBOOL ignoreUserOverride, + IDWriteNumberSubstitution **numberSubstitution) PURE; + + STDMETHOD(CreateGlyphRunAnalysis)(THIS_ + DWRITE_GLYPH_RUN const *glyphRun, + FLOAT pixelsPerDip, + DWRITE_MATRIX const *transform, + DWRITE_RENDERING_MODE renderingMode, + DWRITE_MEASURING_MODE measuringMode, + FLOAT baselineOriginX, + FLOAT baselineOriginY, + IDWriteGlyphRunAnalysis **glyphRunAnalysis) PURE; + + /* IDWriteFactory1 methods */ + STDMETHOD(GetEudcFontCollection)(THIS_ + IDWriteFontCollection **fontCollection, + BOOL checkForUpdates __MINGW_DEF_ARG_VAL(FALSE)) PURE; + + STDMETHOD(CreateCustomRenderingParams)(THIS_ + FLOAT gamma, + FLOAT enhancedContrast, + FLOAT enhancedContrastGrayscale, + FLOAT clearTypeLevel, + DWRITE_PIXEL_GEOMETRY pixelGeometry, + DWRITE_RENDERING_MODE renderingMode, + IDWriteRenderingParams1 **renderingParams) PURE; + + /* IDWriteFactory2 methods */ + STDMETHOD(GetSystemFontFallback)(THIS_ + IDWriteFontFallback **fontFallback) PURE; + + STDMETHOD(CreateFontFallbackBuilder)(THIS_ + IDWriteFontFallbackBuilder **fontFallbackBuilder) PURE; + + STDMETHOD(TranslateColorGlyphRun)(THIS_ + FLOAT baselineOriginX, + FLOAT baselineOriginY, + DWRITE_GLYPH_RUN const *glyphRun, + DWRITE_GLYPH_RUN_DESCRIPTION const *glyphRunDescription, + DWRITE_MEASURING_MODE measuringMode, + DWRITE_MATRIX const *worldToDeviceTransform, + UINT32 colorPaletteIndex, + IDWriteColorGlyphRunEnumerator **colorLayers) PURE; + + STDMETHOD(CreateCustomRenderingParams)(THIS_ + FLOAT gamma, + FLOAT enhancedContrast, + FLOAT grayscaleEnhancedContrast, + FLOAT clearTypeLevel, + DWRITE_PIXEL_GEOMETRY pixelGeometry, + DWRITE_RENDERING_MODE renderingMode, + DWRITE_GRID_FIT_MODE gridFitMode, + IDWriteRenderingParams2 **renderingParams) PURE; + + STDMETHOD(CreateGlyphRunAnalysis)(THIS_ + DWRITE_GLYPH_RUN const *glyphRun, + DWRITE_MATRIX const *transform, + DWRITE_RENDERING_MODE renderingMode, + DWRITE_MEASURING_MODE measuringMode, + DWRITE_GRID_FIT_MODE gridFitMode, + DWRITE_TEXT_ANTIALIAS_MODE antialiasMode, + FLOAT baselineOriginX, + FLOAT baselineOriginY, + IDWriteGlyphRunAnalysis **glyphRunAnalysis) PURE; + + /* IDWriteFactory3 methods */ + STDMETHOD(CreateGlyphRunAnalysis)(THIS_ + DWRITE_GLYPH_RUN const *glyphRun, + DWRITE_MATRIX const *transform, + DWRITE_RENDERING_MODE1 renderingMode, + DWRITE_MEASURING_MODE measuringMode, + DWRITE_GRID_FIT_MODE gridFitMode, + DWRITE_TEXT_ANTIALIAS_MODE antialiasMode, + FLOAT baselineOriginX, + FLOAT baselineOriginY, + IDWriteGlyphRunAnalysis **glyphRunAnalysis) PURE; + STDMETHOD(CreateCustomRenderingParams)(THIS_ + FLOAT gamma, + FLOAT enhancedContrast, + FLOAT grayscaleEnhancedContrast, + FLOAT clearTypeLevel, + DWRITE_PIXEL_GEOMETRY pixelGeometry, + DWRITE_RENDERING_MODE1 renderingMode, + DWRITE_GRID_FIT_MODE gridFitMode, + IDWriteRenderingParams3 **renderingParams) PURE; + STDMETHOD(CreateFontFaceReference)(THIS_ + WCHAR const *filePath, + FILETIME const *lastWriteTime, + UINT32 faceIndex, + DWRITE_FONT_SIMULATIONS fontSimulations, + IDWriteFontFaceReference **fontFaceReference) PURE; + STDMETHOD(CreateFontFaceReference)(THIS_ + IDWriteFontFile *fontFile, + UINT32 faceIndex, + DWRITE_FONT_SIMULATIONS fontSimulations, + IDWriteFontFaceReference **fontFaceReference) PURE; + STDMETHOD(GetSystemFontSet)(THIS_ + IDWriteFontSet **fontSet) PURE; + STDMETHOD(CreateFontSetBuilder)(THIS_ + IDWriteFontSetBuilder **fontSetBuilder) PURE; + STDMETHOD(CreateFontCollectionFromFontSet)(THIS_ + IDWriteFontSet *fontSet, + IDWriteFontCollection1 **fontCollection) PURE; + STDMETHOD(GetSystemFontCollection)(THIS_ + BOOL includeDownloadableFonts, + IDWriteFontCollection1 **fontCollection, + BOOL checkForUpdates) PURE; + STDMETHOD(GetFontDownloadQueue)(THIS_ + IDWriteFontDownloadQueue **fontDownloadQueue) PURE; + + /* IDWriteFactory4 methods */ + STDMETHOD(TranslateColorGlyphRun)(THIS_ + D2D1_POINT_2F baselineOrigin, + DWRITE_GLYPH_RUN const *glyphRun, + DWRITE_GLYPH_RUN_DESCRIPTION const *glyphRunDescription, + DWRITE_GLYPH_IMAGE_FORMATS desiredGlyphImageFormats, + DWRITE_MEASURING_MODE measuringMode, + DWRITE_MATRIX const *worldAndDpiTransform, + UINT32 colorPaletteIndex, + IDWriteColorGlyphRunEnumerator1 **colorLayers) PURE; + STDMETHOD(ComputeGlyphOrigins)(THIS_ + DWRITE_GLYPH_RUN const *glyphRun, + DWRITE_MEASURING_MODE measuringMode, + D2D1_POINT_2F baselineOrigin, + DWRITE_MATRIX const *worldAndDpiTransform, + D2D1_POINT_2F *glyphOrigins) PURE; + STDMETHOD(ComputeGlyphOrigins)(THIS_ + DWRITE_GLYPH_RUN const *glyphRun, + D2D1_POINT_2F baselineOrigin, + D2D1_POINT_2F *glyphOrigins) PURE; +#endif + + /* IDWriteFactory5 methods */ + STDMETHOD(CreateFontSetBuilder)(THIS_ + IDWriteFontSetBuilder1 **fontSetBuilder) PURE; + +#ifdef __cplusplus + using IDWriteFactory3::CreateFontSetBuilder; +#endif + + STDMETHOD(CreateInMemoryFontFileLoader)(THIS_ + IDWriteInMemoryFontFileLoader **newLoader) PURE; + STDMETHOD(CreateHttpFontFileLoader)(THIS_ + wchar_t const *referrerUrl, + wchar_t const *extraHeaders, + IDWriteRemoteFontFileLoader **newLoader) PURE; + STDMETHOD_(DWRITE_CONTAINER_TYPE, + AnalyzeContainerType)(THIS_ + void const *fileData, + UINT32 fileDataSize) PURE; + STDMETHOD(UnpackFontFile)(THIS_ + DWRITE_CONTAINER_TYPE containerType, + void const *fileData, + UINT32 fileDataSize, + IDWriteFontFileStream **unpackedFontStream) PURE; + + END_INTERFACE +}; + +__CRT_UUID_DECL(IDWriteFactory5, 0x958db99a,0xbe2a,0x4f09,0xaf,0x7d,0x65,0x18,0x98,0x03,0xd1,0xd3) + +#endif + #endif /* DWRITE_3_H_INCLUDED */ -- 2.28.0
_______________________________________________ Mingw-w64-public mailing list Mingw-w64-public@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/mingw-w64-public