From 575b8eaee1e00e45b046289f383952b227ee5fb8 Mon Sep 17 00:00:00 2001 From: IoIxD Date: Sat, 18 Jul 2026 11:39:52 +0900 Subject: [PATCH] DirectWrite support (#28) Reviewed-on: https://forgejo.nishi.boats/pyrite-dev/milsko/pulls/28 --- CMakeLists.txt | 41 +- WatMakefile | 2 +- configure | 33 +- examples/vkdemos/CMakeLists.txt | 50 +- examples/vkdemos/vulkan.c | 11 +- include/Mw/LowLevel.h | 4 + pl/rules.pl | 4 + src/core.c | 15 +- src/text/directwrite.c | 588 ++ src/text/dwrite.h | 5517 +++++++++++ src/text/dwrite_2.h | 3297 +++++++ src/text/dwrite_3.h | 15191 ++++++++++++++++++++++++++++++ src/text/font/boldmonottf.c | 2 +- src/text/font/boldttf.c | 2 +- src/text/font/monottf.c | 2 +- src/text/font/ttf.c | 2 +- src/text/text.c | 8 +- 17 files changed, 24715 insertions(+), 54 deletions(-) create mode 100644 src/text/directwrite.c create mode 100644 src/text/dwrite.h create mode 100644 src/text/dwrite_2.h create mode 100644 src/text/dwrite_3.h diff --git a/CMakeLists.txt b/CMakeLists.txt index 0cb5e14..148c5f3 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -9,6 +9,7 @@ include(GNUInstallDirs) set(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_FULL_LIBDIR}") set(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE) +set(CMAKE_EXPORT_COMPILE_COMMANDS ON) option(MW_CLASSIC_THEME "Use classic theme" OFF) option(MW_BUILD_EXAMPLES "Build examples" OFF) @@ -29,12 +30,30 @@ endif() option(MW_INSTALL_HEADERS "Install headers" ON) -if(${CMAKE_SYSTEM_NAME} STREQUAL Darwin OR ${CMAKE_SYSTEM_NAME} MATCHES Retro) +if( ${CMAKE_SYSTEM_NAME} STREQUAL Darwin + OR ${CMAKE_SYSTEM_NAME} MATCHES Retro + OR ${CMAKE_SYSTEM_NAME} MATCHES Windows) option(MW_USE_FREETYPE2 "Use FreeType 2" OFF) else() option(MW_USE_FREETYPE2 "Use FreeType 2" ON) endif() +if(${CMAKE_SYSTEM_NAME} STREQUAL Windows) + if(${CMAKE_CROSSCOMPILING}) + message(STATUS "DirectWrite support has been enabled") + option(MW_USE_DIRECTWRITE "Use DirectWrite" ON) + else() + # DirectWrite stuff can only be used on Win10+ + if(${CMAKE_SYSTEM_VERSION} GREATER_EQUAL 10) + message(STATUS "DirectWrite support has been enabled") + option(MW_USE_DIRECTWRITE "Use DirectWrite" ON) + else() + message(WARNING "DirectWrite support has been disabled (must be compiling on Win10+)") + option(MW_USE_DIRECTWRITE "Use DirectWrite" OFF) + endif() + endif() +endif() + if(${CMAKE_SYSTEM_NAME} STREQUAL Linux OR ${CMAKE_SYSTEM_NAME} STREQUAL FreeBSD) option(MW_USE_WAYLAND "Enable Wayland backend" ON) endif() @@ -69,8 +88,8 @@ if(MW_TRY_OPENGL) endif() if(MW_TRY_VULKAN) - check_include_files(vulkan/vulkan.h HAVE_VULKAN_VULKAN_H) - if(HAVE_VULKAN_VULKAN_H) + find_package(Vulkan OPTIONAL VULKAN) + if(${Vulkan_FOUND}) set(MW_BUILD_VULKAN ON) message(STATUS "Vulkan widget has been enabled") else() @@ -132,10 +151,10 @@ if(MW_USE_FREETYPE2) if(Freetype_FOUND) message(STATUS "FreeType2 found") target_compile_definitions( - Mw - PRIVATE - USE_FREETYPE2 - ) + Mw + PRIVATE + USE_FREETYPE2 + ) list(APPEND INCLUDE_DIRS ${FREETYPE_INCLUDE_DIRS}) list(APPEND LIBRARY_DIRS ${FREETYPE_LIBRARY_DIRS}) @@ -144,6 +163,14 @@ if(MW_USE_FREETYPE2) endif() endif() +if(MW_USE_DIRECTWRITE) + target_compile_definitions( + Mw + PRIVATE + USE_DIRECTWRITE + ) +endif() + if(MW_USE_WAYLAND) function(scan_wayland_protocol_core) execute_process( diff --git a/WatMakefile b/WatMakefile index bd32d9b..7e32bba 100644 --- a/WatMakefile +++ b/WatMakefile @@ -319,7 +319,7 @@ examples/gldemos/tripaint.obj: examples/gldemos/tripaint.c src/Mw.dll: external/libz/src/adler32.obj external/libz/src/compress.obj external/libz/src/crc32.obj external/libz/src/deflate.obj external/libz/src/gzclose.obj external/libz/src/gzlib.obj external/libz/src/gzread.obj external/libz/src/gzwrite.obj external/libz/src/infback.obj external/libz/src/inffast.obj external/libz/src/inflate.obj external/libz/src/inftrees.obj external/libz/src/trees.obj external/libz/src/uncompr.obj external/libz/src/zutil.obj external/stb_ds.obj external/stb_image.obj external/stb_truetype.obj src/abstract/charset.obj src/abstract/directory.obj src/abstract/dynamic.obj src/abstract/time.obj src/backend/gdi.obj src/color.obj src/core.obj src/cursor/arrow.obj src/cursor/cross.obj src/cursor/default.obj src/cursor/hidden.obj src/cursor/text.obj src/default.obj src/dialog/colorpicker.obj src/dialog/directorychooser.obj src/dialog/filechooser.obj src/dialog/messagebox.obj src/draw.obj src/icon/back.obj src/icon/clock.obj src/icon/computer.obj src/icon/directory.obj src/icon/down.obj src/icon/error.obj src/icon/file.obj src/icon/forward.obj src/icon/info.obj src/icon/left.obj src/icon/news.obj src/icon/note.obj src/icon/right.obj src/icon/search.obj src/icon/up.obj src/icon/warning.obj src/lowlevel.obj src/string.obj src/text/font/boldfont.obj src/text/font/boldmonottf.obj src/text/font/boldttf.obj src/text/font/font.obj src/text/font/monottf.obj src/text/font/ttf.obj src/text/ft2.obj src/text/stbtt.obj src/text/text.obj src/unicode.obj src/widget/box.obj src/widget/button.obj src/widget/calendar.obj src/widget/checkbox.obj src/widget/combobox.obj src/widget/entry.obj src/widget/frame.obj src/widget/image.obj src/widget/label.obj src/widget/listbox.obj src/widget/menu.obj src/widget/numberentry.obj src/widget/opengl.obj src/widget/progressbar.obj src/widget/radiobox.obj src/widget/scrollbar.obj src/widget/separator.obj src/widget/submenu.obj src/widget/subwindow.obj src/widget/tab.obj src/widget/table.obj src/widget/treeview.obj src/widget/viewport.obj src/widget/window.obj $(LD) $(MW_LDFLAGS) option implib=src/Mw.lib name $@ file external/libz/src/adler32.obj file external/libz/src/compress.obj file external/libz/src/crc32.obj file external/libz/src/deflate.obj file external/libz/src/gzclose.obj file external/libz/src/gzlib.obj file external/libz/src/gzread.obj file external/libz/src/gzwrite.obj file external/libz/src/infback.obj file external/libz/src/inffast.obj file external/libz/src/inflate.obj file external/libz/src/inftrees.obj file external/libz/src/trees.obj file external/libz/src/uncompr.obj file external/libz/src/zutil.obj file external/stb_ds.obj file external/stb_image.obj file external/stb_truetype.obj file src/abstract/charset.obj file src/abstract/directory.obj file src/abstract/dynamic.obj file src/abstract/time.obj file src/backend/gdi.obj file src/color.obj file src/core.obj file src/cursor/arrow.obj file src/cursor/cross.obj file src/cursor/default.obj file src/cursor/hidden.obj file src/cursor/text.obj file src/default.obj file src/dialog/colorpicker.obj file src/dialog/directorychooser.obj file src/dialog/filechooser.obj file src/dialog/messagebox.obj file src/draw.obj file src/icon/back.obj file src/icon/clock.obj file src/icon/computer.obj file src/icon/directory.obj file src/icon/down.obj file src/icon/error.obj file src/icon/file.obj file src/icon/forward.obj file src/icon/info.obj file src/icon/left.obj file src/icon/news.obj file src/icon/note.obj file src/icon/right.obj file src/icon/search.obj file src/icon/up.obj file src/icon/warning.obj file src/lowlevel.obj file src/string.obj file src/text/font/boldfont.obj file src/text/font/boldmonottf.obj file src/text/font/boldttf.obj file src/text/font/font.obj file src/text/font/monottf.obj file src/text/font/ttf.obj file src/text/ft2.obj file src/text/stbtt.obj file src/text/text.obj file src/unicode.obj file src/widget/box.obj file src/widget/button.obj file src/widget/calendar.obj file src/widget/checkbox.obj file src/widget/combobox.obj file src/widget/entry.obj file src/widget/frame.obj file src/widget/image.obj file src/widget/label.obj file src/widget/listbox.obj file src/widget/menu.obj file src/widget/numberentry.obj file src/widget/opengl.obj file src/widget/progressbar.obj file src/widget/radiobox.obj file src/widget/scrollbar.obj file src/widget/separator.obj file src/widget/submenu.obj file src/widget/subwindow.obj file src/widget/tab.obj file src/widget/table.obj file src/widget/treeview.obj file src/widget/viewport.obj file src/widget/window.obj library clib3r.lib library opengl32.lib library gdi32.lib library user32.lib library advapi32.lib - + external/libz/src/adler32.obj: external/libz/src/adler32.c diff --git a/configure b/configure index 0192a22..f24e3ab 100755 --- a/configure +++ b/configure @@ -2,6 +2,11 @@ our $target = `uname -s`; $target =~ s/\r?\n$//; +# MSYS with MinGW gives us some other shit idk +if (index($target, "MINGW") != -1) { + $target = "Windows"; +} + foreach my $l (@ARGV) { if ($l =~ /^--.+$/) { } @@ -39,14 +44,12 @@ require("./pl/utils.pl"); param_set("classic-theme", 0); param_set("stb-image", 1); -param_set("xrender", 1); param_set("opengl", 0); param_set("vulkan", 0); param_set("vulkan-string-helper", 1); param_set("shared", 1); param_set("static", 1); param_set("examples", 1); -param_set("dbus", 1); # (option that only makes sense on x11) param_set("allow-sloppy-focus", 0); @@ -56,7 +59,8 @@ my %features = ( "stb-image" => "use stb_image, instead use libjpeg/libpng", "stb-truetype" => "use stb_truetype", "freetype2" => "use FreeType2", - "xrender" => "use XRender", + "directwrite" => "(Windows only) use DirectWrite", + "xrender" => "(X11 only) use XRender", "opengl" => "build OpenGL widget", "vulkan" => "build Vulkan widget", "vulkan-string-helper" => "use Vulkan string helper", @@ -69,7 +73,7 @@ my %features = ( ); my @features_keys = ( "1classic-theme", "1stb-image", - "1stb-truetype", "1freetype2", + "1stb-truetype", "1freetype2", "1directwrite", "1opengl", "2xrender", "1vulkan", "2vulkan-string-helper", "1shared", "1static", @@ -87,13 +91,34 @@ sub def_platform { } if($target eq "Linux" || $target eq "FreeBSD") { param_set("x11", 1); + param_set("xrender", 1); if(!param_get("tiny")){ param_set("wayland", 1); } + param_set("dbus", 1); } if($target eq "NetBSD" || $target eq "OpenBSD") { param_set("x11", 1); } + if($target eq "Windows") { + if ($^O eq "Win32") + { + require Win32; + Win32->import(); + my ( $osvername, $major, $minor, $id ) = Win32::GetOSVersion(); + + if($major >= 10) { + param_set("directwrite", 1); + } else { + param_set("directwrite", 0); + } + } else { + # assume cross compiling + param_set("directwrite", 1); + } + } else { + param_set("directwrite", 0); + } } foreach my $l (@ARGV) { diff --git a/examples/vkdemos/CMakeLists.txt b/examples/vkdemos/CMakeLists.txt index 41f832c..9f37e0f 100644 --- a/examples/vkdemos/CMakeLists.txt +++ b/examples/vkdemos/CMakeLists.txt @@ -1,28 +1,30 @@ file( - GLOB - EXAMPLES_VULKAN_SOURCES - *.c + GLOB + EXAMPLES_VULKAN_SOURCES + *.c ) find_package(Vulkan) -foreach(PATH IN LISTS EXAMPLES_VULKAN_SOURCES) - get_filename_component(TARGET ${PATH} NAME_WE) - add_executable(${TARGET} MACOSX_BUNDLE ${PATH}) - target_include_directories( - ${TARGET} - PRIVATE - ${Vulkan_INCLUDE_DIR} - ) - target_link_libraries( - ${TARGET} - PRIVATE - Mw - ) - if(NOT CMAKE_SYSTEM_NAME STREQUAL "Windows") - target_link_libraries( - ${TARGET} - PRIVATE - m - ) - endif() -endforeach() +if(${Vulkan_FOUND}) + foreach(PATH IN LISTS EXAMPLES_VULKAN_SOURCES) + get_filename_component(TARGET ${PATH} NAME_WE) + add_executable(${TARGET} MACOSX_BUNDLE ${PATH}) + target_include_directories( + ${TARGET} + PRIVATE + ${Vulkan_INCLUDE_DIR} + ) + target_link_libraries( + ${TARGET} + PRIVATE + Mw + ) + if(NOT CMAKE_SYSTEM_NAME STREQUAL "Windows") + target_link_libraries( + ${TARGET} + PRIVATE + m + ) + endif() + endforeach() +endif() diff --git a/examples/vkdemos/vulkan.c b/examples/vkdemos/vulkan.c index 2d03030..6015415 100644 --- a/examples/vkdemos/vulkan.c +++ b/examples/vkdemos/vulkan.c @@ -1,10 +1,3 @@ - -/** - * this example is quite minimal, you may need to modify it if your graphics card is more esoteric - * - * ioixd maintains this file. nishi doesn't know vulkan at all - */ - #include #include @@ -264,8 +257,8 @@ void vulkan_setup(MwWidget handle) { swapchainCreateInfo.imageExtent = (VkExtent2D){.width = ow, .height = oh}, swapchainCreateInfo.imageArrayLayers = 1, swapchainCreateInfo.imageUsage = VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT | - VK_IMAGE_USAGE_TRANSFER_DST_BIT | - VK_IMAGE_USAGE_SAMPLED_BIT; + VK_IMAGE_USAGE_TRANSFER_DST_BIT | + VK_IMAGE_USAGE_SAMPLED_BIT; // th is how we specify no transformation. swapchainCreateInfo.preTransform = VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR; swapchainCreateInfo.compositeAlpha = VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR; diff --git a/include/Mw/LowLevel.h b/include/Mw/LowLevel.h index 54f1b89..3ecd065 100644 --- a/include/Mw/LowLevel.h +++ b/include/Mw/LowLevel.h @@ -344,10 +344,14 @@ MWDECL int MWFL_FT2Setup(void); #ifdef USE_STB_TRUETYPE MWDECL int MwFL_STBTTSetup(void); #endif +#ifdef USE_DIRECTWRITE +MWDECL int MWFL_DWSetup(void); +#endif MWDECL int (*MwFLDrawText)(MwWidget handle, MwFLFont ttf, MwPoint* point, const char* text, MwLLColor color); MWDECL int (*MwFLTextWidth)(MwFLFont ttf, const char* text); MWDECL int (*MwFLTextHeight)(MwFLFont ttf, int count); +MWDECL int (*MwFLTextHeightWithText)(MwFLFont ttf, const char * text); MWDECL void* (*MwFLFontLoad)(unsigned char* data, unsigned int size, int px); MWDECL void (*MwFLFontFree)(void* handle); diff --git a/pl/rules.pl b/pl/rules.pl index bb6fa25..6f37482 100644 --- a/pl/rules.pl +++ b/pl/rules.pl @@ -134,6 +134,10 @@ if (param_get("freetype2")) { } } +if (param_get("directwrite")) { + add_cflags("-DUSE_DIRECTWRITE"); +} + if (param_get("vulkan") && param_get("vulkan-string-helper")) { add_cflags("-DHAS_VK_ENUM_STRING_HELPER"); } diff --git a/src/core.c b/src/core.c index 0366443..c77d450 100644 --- a/src/core.c +++ b/src/core.c @@ -310,12 +310,19 @@ static MwWidget MwCreateWidget_Internal(MwClass widget_class, const char* name, MwAddTickList(h); } -#if defined(USE_STB_TRUETYPE) || defined(USE_FREETYPE2) +#if defined(USE_STB_TRUETYPE) || defined(USE_FREETYPE2) || defined(USE_DIRECTWRITE) if(IsFirstVisible(h)) { + font_setup: h->root_font = MwFontLoad(MwTTFData, MwTTFDataSize); h->root_boldfont = MwFontLoad(MwBoldTTFData, MwBoldTTFDataSize); h->root_monofont = MwFontLoad(MwMonospaceTTFData, MwMonospaceTTFDataSize); h->root_boldmonofont = MwFontLoad(MwBoldMonospaceTTFData, MwBoldMonospaceTTFDataSize); + if(!h->root_font) { +#ifdef USE_STB_TRUETYPE + MwFL_STBTTSetup(); + goto font_setup; +#endif + } } else #endif { @@ -732,7 +739,7 @@ int MwGetInteger(MwWidget handle, const char* key) { return MwDEFAULT; } else { if(shgeti(handle->integer, key) == -1) { -#if defined(USE_STB_TRUETYPE) || defined(USE_FREETYPE2) +#if defined(USE_STB_TRUETYPE) || defined(USE_FREETYPE2) || defined(USE_DIRECTWRITE) if(strcmp(key, MwNbitmapFont) == 0) return inherit_integer(handle, key, 0); #else if(strcmp(key, MwNbitmapFont) == 0) return inherit_integer(handle, key, 1); @@ -783,7 +790,7 @@ const char* MwGetText(MwWidget handle, const char* key) { return shget(handle->text, key); } -#if defined(USE_STB_TRUETYPE) || defined(USE_FREETYPE2) +#if defined(USE_STB_TRUETYPE) || defined(USE_FREETYPE2) || defined(USE_DIRECTWRITE) static void* inherit_void(MwWidget handle, const char* key) { void* v; @@ -799,7 +806,7 @@ void* MwGetVoid(MwWidget handle, const char* key) { if(v != NULL) return v; -#if defined(USE_STB_TRUETYPE) || defined(USE_FREETYPE2) +#if defined(USE_STB_TRUETYPE) || defined(USE_FREETYPE2) || defined(USE_DIRECTWRITE) if(strcmp(key, MwNfont) == 0 || strcmp(key, MwNboldFont) == 0 || strcmp(key, MwNmonospaceFont) == 0 || strcmp(key, MwNboldMonospaceFont) == 0) { v = inherit_void(handle, key); diff --git a/src/text/directwrite.c b/src/text/directwrite.c new file mode 100644 index 0000000..df584ac --- /dev/null +++ b/src/text/directwrite.c @@ -0,0 +1,588 @@ +/* + * DirectWrite Font backend + * + * This should dynamically load everything necessary and then gracefully fallback if the user isn't on Windows 10. + */ +#ifdef USE_DIRECTWRITE +#define INITGUID +#include + +#include +#include + +#ifndef WINBOOL +#define WINBOOL int +#endif + +/* dwrite is vendored because it's only mingw that gives us COBJMACRO */ +#include "dwrite.h" +#include "dwrite_3.h" + +typedef struct CustomTextRenderer { + IDWriteTextRendererVtbl* lpVtbl; + LONG refCount; + IDWriteFactory6* write_factory; + IDWriteBitmapRenderTarget* target; + int red, blue, green; + +} CustomTextRenderer; +static CustomTextRenderer* CustomTextRenderer_Create(IDWriteFactory6* write_factory, IDWriteBitmapRenderTarget* target, MwLLColor color); + +static struct dw { + HMODULE d2d1_lib; + HMODULE dwrite_lib; + + HRESULT (*D2D1CreateFactory)(D2D1_FACTORY_TYPE factoryType, const IID* const riid, const D2D1_FACTORY_OPTIONS* pFactoryOptions, void** ppIFactory); + HRESULT (*DWriteCreateFactory)(int factoryType, const IID* const iid, IUnknown** factory); + + HMODULE kernel32_lib; +} dw_table; + +struct _MwFLFont { + int px; + void* data; + MwBool valid; + + IDWriteFactory6* write_factory; + ID2D1Factory* d2dFactory; + IDWriteGdiInterop* gdiInterop; + IDWriteFontFile* file; + IDWriteFontFace* font_face; + IDWriteFontSetBuilder2* font_builder; + IDWriteFontSet* font_set; + IDWriteFontCollection1* font_collection; + IDWriteTextFormat* text_format; + + LOGFONTW logfont; + HFONT font; +}; + +static int unpack_ttf_data(WCHAR* temp_path_name, unsigned char* data, unsigned int size) { + WCHAR temp_path_dir[MAX_PATH]; + HANDLE tempFile; + int hr; + + hr = GetTempPathW(MAX_PATH, temp_path_dir); + if(hr == 0) { + printf("GetTempPathW failed for TTF, cannot use DirectWrite\n"); + return 1; + } + hr = GetTempFileNameW(temp_path_dir, TEXT(L"MILSKO"), 0, temp_path_name); + if(hr == 0) { + printf("GetTempFileName failed for TTF, cannot use DirectWrite\n"); + return 1; + } + + tempFile = CreateFileW(temp_path_name, + GENERIC_WRITE, + 0, + NULL, + CREATE_NEW, + FILE_ATTRIBUTE_NORMAL, + NULL); + if(tempFile == INVALID_HANDLE_VALUE) { + DWORD err = GetLastError(); + if(err == ERROR_FILE_EXISTS) { + tempFile = CreateFileW(temp_path_name, + GENERIC_WRITE, + 0, + NULL, + OPEN_ALWAYS, + FILE_ATTRIBUTE_NORMAL, + NULL); + if(tempFile != INVALID_HANDLE_VALUE) { + goto success; + } else { + err = GetLastError(); + } + } + printf("CreateFile failed for TTF (%ld), cannot use DirectWrite\n", err); + return 1; + } +success: + + hr = WriteFile(tempFile, data, size, NULL, NULL); + if(!hr) { + printf("WriteFile failed for TTF (%ld), cannot use DirectWrite\n", GetLastError()); + return 1; + } + + CloseHandle(tempFile); + + return 0; +} + +static void* dw_MwFontLoad(unsigned char* data, unsigned int size, int px) { + MwFLFont ttf = malloc(sizeof(*ttf)); + HRESULT hr; + WCHAR font_name[MAX_PATH]; + D2D1_FACTORY_OPTIONS d2d1_options; + + d2d1_options.debugLevel = D2D1_DEBUG_LEVEL_ERROR; + +#define INTERFACE_CHECK(x, factory) \ + do { \ + x* rsrc = NULL; \ + if(!SUCCEEDED((hr = x##_QueryInterface(factory, &IID_##x, (void**)&rsrc)))) { \ + printf("Query for interface " #x " failed (%08lX). Cannot use DirectWrite.\n", hr); \ + return NULL; \ + }; \ + } while(0); + + memset(ttf, 0, sizeof(*ttf)); + ttf->data = malloc(size); + memcpy(ttf->data, data, size); + + ttf->px = px; + + hr = dw_table.D2D1CreateFactory(D2D1_FACTORY_TYPE_SINGLE_THREADED, &IID_ID2D1Factory, &d2d1_options, (void**)&ttf->d2dFactory); + if(!SUCCEEDED(hr)) { + printf("D2D1CreateFactory failed for TTF (%08lX), cannot use DirectWrite\n", hr); + goto fail; + } + + INTERFACE_CHECK(ID2D1Factory, ttf->d2dFactory); + + hr = dw_table.DWriteCreateFactory(DWRITE_FACTORY_TYPE_SHARED, &IID_IDWriteFactory, (struct IUnknown**)&ttf->write_factory); + if(!SUCCEEDED(hr)) { + printf("DWriteCreateFactory failed for TTF (%08lx), cannot use DirectWrite\n", hr); + goto fail; + } + INTERFACE_CHECK(IDWriteFactory6, ttf->write_factory); + + if(unpack_ttf_data(font_name, data, size) != 0) { + goto fail; + }; + + hr = IDWriteFactory6_CreateFontFileReference(ttf->write_factory, font_name, NULL, &ttf->file); + if(!SUCCEEDED(hr)) { + printf("CreateFontFileReference failed for TTF (%08lx), cannot use DirectWrite\n", hr); + goto fail; + } + INTERFACE_CHECK(IDWriteFontFile, ttf->file); + + hr = IDWriteFactory_CreateFontFace(ttf->write_factory, DWRITE_FONT_FACE_TYPE_TRUETYPE, 1, &ttf->file, 0, DWRITE_FONT_SIMULATIONS_NONE, &ttf->font_face); + if(!SUCCEEDED(hr)) { + printf("IDWriteFactory_CreateFontFace failed for TTF (%08lx), cannot use DirectWrite\n", hr); + goto fail; + } + INTERFACE_CHECK(IDWriteFontFace, ttf->font_face); + + hr = IDWriteFactory6_CreateFontSetBuilder(ttf->write_factory, &ttf->font_builder); + if(!SUCCEEDED(hr)) { + printf("IDWriteFactory6_CreateFontSetBuilder failed for TTF (%08lx), cannot use DirectWrite\n", hr); + goto fail; + } + INTERFACE_CHECK(IDWriteFontSetBuilder2, ttf->font_builder); + + hr = IDWriteFontSetBuilder2_AddFontFile(ttf->font_builder, font_name); + if(!SUCCEEDED(hr)) { + printf("IDWriteFontSetBuilder2_AddFontFile failed for TTF (%08lx), cannot use DirectWrite\n", hr); + goto fail; + } + + hr = IDWriteFontSetBuilder_CreateFontSet(ttf->font_builder, &ttf->font_set); + if(!SUCCEEDED(hr)) { + printf("IDWriteFontSetBuilder_CreateFontSet failed for TTF (%08lx), cannot use DirectWrite\n", hr); + goto fail; + } + INTERFACE_CHECK(IDWriteFontSet, ttf->font_set); + + hr = IDWriteFactory3_CreateFontCollectionFromFontSet(ttf->write_factory, ttf->font_set, &ttf->font_collection); + if(!SUCCEEDED(hr)) { + printf("IDWriteFactory3_CreateFontCollectionFromFontSet failed for TTF (%08lx), cannot use DirectWrite\n", hr); + goto fail; + } + INTERFACE_CHECK(IDWriteFontCollection1, ttf->font_collection); + + hr = IDWriteFactory6_GetGdiInterop(ttf->write_factory, &ttf->gdiInterop); + if(!SUCCEEDED(hr)) { + printf("GetGdiInterop failed for TTF (%08lx), cannot use DirectWrite\n", hr); + goto fail; + } + INTERFACE_CHECK(IDWriteGdiInterop, ttf->gdiInterop); + + hr = IDWriteFactory_CreateTextFormat(ttf->write_factory, L"milsko font", (IDWriteFontCollection*)ttf->font_collection, DWRITE_FONT_WEIGHT_NORMAL, DWRITE_FONT_STYLE_NORMAL, DWRITE_FONT_STRETCH_NORMAL, px, L"en-US", &ttf->text_format); + if(!SUCCEEDED(hr)) { + printf("IDWriteFactory_CreateTextFormat failed for TTF (%08lx), cannot use DirectWrite\n", hr); + goto fail; + } + + ttf->valid = MwTRUE; + return ttf; + +fail: + ttf->valid = MwFALSE; + return NULL; +} + +static int dw_MwTextOffset(MwFLFont ttf, const char* text); + +static int dw_MwDrawText(MwWidget handle, MwFLFont ttf, MwPoint* point, const char* text, MwLLColor color) { + IDWriteTextLayout* text_layout; + IDWriteBitmapRenderTarget* target = NULL; + HRESULT hr; + RECT rc = {0}; + HDC memoryHDC = NULL; + DWRITE_FONT_METRICS metrics = {0}; + LONG width = 0, height = 0, offset = 0; + WCHAR* wtext = NULL; + CustomTextRenderer* texRenderer; + size_t wtext_len = MultiByteToWideChar(CP_UTF8, 0, text, -1, NULL, 0); + + wtext = malloc(wtext_len * 2); /* we get a weird buffer overflow when we try to free this later? allocate well above wtext_len then to prevent that. */ + memset(wtext, 0, wtext_len * 2); + MultiByteToWideChar(CP_UTF8, 0, text, -1, wtext, wtext_len); + + IDWriteFontFace_GetMetrics(ttf->font_face, &metrics); + + GetClientRect(handle->lowlevel->gdi.hWnd, &rc); + MapWindowPoints(handle->lowlevel->gdi.hWnd, GetParent(handle->lowlevel->gdi.hWnd), (LPPOINT)&rc, 2); + + width = MwTextWidth(handle, ttf, text); + height = MwTextHeight(handle, ttf, text); + offset = dw_MwTextOffset(ttf, text); + + hr = IDWriteFactory_CreateTextLayout(ttf->write_factory, wtext, wtext_len, ttf->text_format, width, height, &text_layout); + + IDWriteGdiInterop_CreateBitmapRenderTarget(ttf->gdiInterop, handle->lowlevel->gdi.hDC, width, height, &target); + + texRenderer = CustomTextRenderer_Create(ttf->write_factory, target, color); + + memoryHDC = IDWriteBitmapRenderTarget_GetMemoryDC(target); + + SetBkMode(handle->lowlevel->gdi.hDC, TRANSPARENT); + BitBlt(memoryHDC, 0, 0, width, height, handle->lowlevel->gdi.hDC, point->x, point->y - (height / 2), SRCCOPY); + + if(SUCCEEDED(hr)) { + IDWriteTextLayout_Draw(text_layout, target, (IDWriteTextRenderer*)texRenderer, offset, 0); + } + + BitBlt(handle->lowlevel->gdi.hDC, point->x, point->y - (height / 2), width, height, memoryHDC, 0, 0, SRCCOPY | NOMIRRORBITMAP); + + IDWriteBitmapRenderTarget_Release(target); + + free(wtext); + + return 0; +} + +static int dw_MwTextOffset(MwFLFont ttf, const char* text) { + IDWriteTextLayout* text_layout; + DWRITE_FONT_METRICS metrics = {0}; + WCHAR* wtext = NULL; + size_t wtext_len = MultiByteToWideChar(CP_UTF8, 0, text, -1, NULL, 0); + UINT32* codepoints = malloc(wtext_len * sizeof(UINT32)); + UINT16* glyphIndices = malloc(wtext_len * sizeof(UINT16)); + int i; + DWRITE_GLYPH_METRICS* gmetrics; + int tw = 0; + + wtext = malloc(wtext_len * 2); /* we get a weird buffer overflow when we try to free this later? allocate well above wtext_len then to prevent that. */ + memset(wtext, 0, wtext_len * 2); + MultiByteToWideChar(CP_UTF8, 0, text, -1, wtext, wtext_len); + + for(i = 0; i < wtext_len; i++) codepoints[i] = wtext[i]; + + IDWriteFontFace_GetMetrics(ttf->font_face, &metrics); + + IDWriteFactory_CreateTextLayout(ttf->write_factory, wtext, wtext_len, ttf->text_format, 0, 0, &text_layout); + + IDWriteFontFace_GetGlyphIndices(ttf->font_face, codepoints, wtext_len, glyphIndices); + + gmetrics = malloc(wtext_len * sizeof(DWRITE_GLYPH_METRICS)); + + IDWriteFontFace_GetDesignGlyphMetrics(ttf->font_face, glyphIndices, wtext_len, gmetrics, FALSE); + + for(i = 0; i < strlen(text); i++) { + int add = (gmetrics[i].leftSideBearing) * ((float)ttf->px / (float)metrics.designUnitsPerEm); + tw += add; + } + + free(wtext); + + return tw; +} + +static int dw_MwTextWidth(MwFLFont ttf, const char* text) { + IDWriteTextLayout* text_layout; + DWRITE_FONT_METRICS metrics = {0}; + WCHAR* wtext = NULL; + size_t wtext_len = MultiByteToWideChar(CP_UTF8, 0, text, -1, NULL, 0); + UINT32* codepoints = malloc(wtext_len * sizeof(UINT32)); + UINT16* glyphIndices = malloc(wtext_len * sizeof(UINT16)); + int i; + DWRITE_GLYPH_METRICS* gmetrics; + int tw = 0; + + wtext = malloc(wtext_len * 2); /* we get a weird buffer overflow when we try to free this later? allocate well above wtext_len then to prevent that. */ + memset(wtext, 0, wtext_len * 2); + MultiByteToWideChar(CP_UTF8, 0, text, -1, wtext, wtext_len); + + for(i = 0; i < wtext_len; i++) codepoints[i] = wtext[i]; + + IDWriteFontFace_GetMetrics(ttf->font_face, &metrics); + + IDWriteFactory_CreateTextLayout(ttf->write_factory, wtext, wtext_len, ttf->text_format, 0, 0, &text_layout); + + IDWriteFontFace_GetGlyphIndices(ttf->font_face, codepoints, wtext_len, glyphIndices); + + gmetrics = malloc(wtext_len * sizeof(DWRITE_GLYPH_METRICS)); + + IDWriteFontFace_GetDesignGlyphMetrics(ttf->font_face, glyphIndices, wtext_len, gmetrics, FALSE); + + for(i = 0; i < strlen(text); i++) { + int add = (gmetrics[i].advanceWidth + gmetrics[i].leftSideBearing) * ((float)ttf->px / (float)metrics.designUnitsPerEm); + tw += add; + } + + free(wtext); + + return tw; +} + +static int dw_MwTextHeight(MwFLFont ttf, int count) { + (void)count; + return (IDWriteTextFormat2_GetFontSize(ttf->text_format) / 72.0f) * GetDeviceCaps(GetDC(NULL), LOGPIXELSY); +} + +static void dw_MwFontFree(void* handle) { + MwFLFont ttf = handle; + + free(ttf->data); + free(ttf); +} + +/* ---- IUnknown ---- */ + +static HRESULT STDMETHODCALLTYPE CTR_QueryInterface( + IDWriteTextRenderer* iface, REFIID riid, void** ppvObject) { + if(!ppvObject) + return E_POINTER; + + if(IsEqualGUID(riid, &IID_IUnknown) || + IsEqualGUID(riid, &IID_IDWritePixelSnapping) || + IsEqualGUID(riid, &IID_IDWriteTextRenderer)) { + *ppvObject = iface; + iface->lpVtbl->AddRef(iface); + return S_OK; + } + + *ppvObject = NULL; + return E_NOINTERFACE; +} + +static ULONG STDMETHODCALLTYPE CTR_AddRef(IDWriteTextRenderer* iface) { + CustomTextRenderer* This = (CustomTextRenderer*)iface; + return InterlockedIncrement(&This->refCount); +} + +static ULONG STDMETHODCALLTYPE CTR_Release(IDWriteTextRenderer* iface) { + CustomTextRenderer* This = (CustomTextRenderer*)iface; + LONG ref = InterlockedDecrement(&This->refCount); + if(ref == 0) + HeapFree(GetProcessHeap(), 0, This); + return (ULONG)ref; +} + +/* ---- IDWritePixelSnapping (base interface, treated as "core") ---- */ + +static HRESULT STDMETHODCALLTYPE CTR_IsPixelSnappingDisabled( + IDWriteTextRenderer* iface, void* clientDrawingContext, BOOL* isDisabled) { + (void)iface; + (void)clientDrawingContext; + if(!isDisabled) + return E_POINTER; + *isDisabled = FALSE; + return S_OK; +} + +static HRESULT STDMETHODCALLTYPE CTR_GetCurrentTransform( + IDWriteTextRenderer* iface, void* clientDrawingContext, DWRITE_MATRIX* transform) { + (void)iface; + (void)clientDrawingContext; + if(!transform) + return E_POINTER; + + transform->m11 = 1.0f; + transform->m12 = 0.0f; + transform->m21 = 0.0f; + transform->m22 = 1.0f; + transform->dx = 0.0f; + transform->dy = 0.0f; + return S_OK; +} + +static HRESULT STDMETHODCALLTYPE CTR_GetPixelsPerDip( + IDWriteTextRenderer* iface, void* clientDrawingContext, FLOAT* pixelsPerDip) { + (void)iface; + (void)clientDrawingContext; + if(!pixelsPerDip) + return E_POINTER; + *pixelsPerDip = 1.0f; + return S_OK; +} + +static HRESULT STDMETHODCALLTYPE CTR_DrawGlyphRun( + IDWriteTextRenderer* iface, + void* clientDrawingContext, + FLOAT baselineOriginX, + FLOAT baselineOriginY, + DWRITE_MEASURING_MODE measuringMode, + DWRITE_GLYPH_RUN const* glyphRun, + DWRITE_GLYPH_RUN_DESCRIPTION const* glyphRunDescription, + IUnknown* clientDrawingEffect) { + IDWriteRenderingParams* params; + CustomTextRenderer* This = (CustomTextRenderer*)iface; + + (void)clientDrawingContext; + (void)glyphRunDescription; + (void)clientDrawingEffect; + + IDWriteFactory6_CreateRenderingParams(This->write_factory, ¶ms); + + return IDWriteBitmapRenderTarget_DrawGlyphRun(This->target, baselineOriginX, baselineOriginY, measuringMode, glyphRun, params, RGB(This->red, This->green, This->blue), NULL); +} + +static HRESULT STDMETHODCALLTYPE CTR_DrawUnderline( + IDWriteTextRenderer* iface, + void* clientDrawingContext, + FLOAT baselineOriginX, + FLOAT baselineOriginY, + DWRITE_UNDERLINE const* underline, + IUnknown* clientDrawingEffect) { + (void)iface; + (void)clientDrawingContext; + (void)baselineOriginX; + (void)baselineOriginY; + (void)underline; + (void)clientDrawingEffect; + return E_NOTIMPL; +} + +static HRESULT STDMETHODCALLTYPE CTR_DrawStrikethrough( + IDWriteTextRenderer* iface, + void* clientDrawingContext, + FLOAT baselineOriginX, + FLOAT baselineOriginY, + DWRITE_STRIKETHROUGH const* strikethrough, + IUnknown* clientDrawingEffect) { + (void)iface; + (void)clientDrawingContext; + (void)baselineOriginX; + (void)baselineOriginY; + (void)strikethrough; + (void)clientDrawingEffect; + return E_NOTIMPL; +} + +static HRESULT STDMETHODCALLTYPE CTR_DrawInlineObject( + IDWriteTextRenderer* iface, + void* clientDrawingContext, + FLOAT originX, + FLOAT originY, + IDWriteInlineObject* inlineObject, + BOOL isSideways, + BOOL isRightToLeft, + IUnknown* clientDrawingEffect) { + (void)iface; + (void)clientDrawingContext; + (void)originX; + (void)originY; + (void)inlineObject; + (void)isSideways; + (void)isRightToLeft; + (void)clientDrawingEffect; + return E_NOTIMPL; +} + +/* ---- Vtable instance ---- */ + +static IDWriteTextRendererVtbl CTR_Vtbl = { + CTR_QueryInterface, + CTR_AddRef, + CTR_Release, + CTR_IsPixelSnappingDisabled, + CTR_GetCurrentTransform, + CTR_GetPixelsPerDip, + CTR_DrawGlyphRun, + CTR_DrawUnderline, + CTR_DrawStrikethrough, + CTR_DrawInlineObject}; + +/* ---- Constructor ---- */ + +static CustomTextRenderer* CustomTextRenderer_Create(IDWriteFactory6* write_factory, IDWriteBitmapRenderTarget* target, MwLLColor color) { + CustomTextRenderer* obj = + (CustomTextRenderer*)HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, + sizeof(CustomTextRenderer)); + if(!obj) + return NULL; + + obj->lpVtbl = &CTR_Vtbl; + obj->refCount = 1; + obj->write_factory = write_factory; + obj->target = target; + obj->red = color->common.red; + obj->green = color->common.green; + obj->blue = color->common.blue; + + return obj; +} + +int MWFL_DWSetup(void) { + HRESULT hr; + HANDLE ole32lib; + /* CoInitialize, to my knowledge, is avaliable on every Windows version we actually support. But as of writing, CI fails because a specific mingw won't link to it by default. I'm not gonna waste my time chancing that it will properly link to ole32 either. */ + HRESULT (*CoInitialize)(LPVOID pvReserved); + + ole32lib = LoadLibrary("Ole32.dll"); + if(!ole32lib) { + printf("ole32lib not found, cannot use DirectWrite\n"); + return 1; + } + CoInitialize = (HRESULT (*)(LPVOID pvReserved))GetProcAddress(ole32lib, "CoInitialize"); + if(!CoInitialize) { + printf("CoInitialize not found, cannot use DirectWrite\n"); + return 1; + } + + CoInitialize(NULL); + + /* Try and load DirectWrite. If it fails, return 1, signifying we default to bitmap drawing. */ + dw_table.d2d1_lib = LoadLibrary("D2d1.dll"); + if(!dw_table.d2d1_lib) { + printf("D2d1.dll not found, cannot use DirectWrite\n"); + return 1; + } + dw_table.dwrite_lib = LoadLibrary("dwrite.dll"); + if(!dw_table.dwrite_lib) { + printf("dwrite.dll not found, cannot use DirectWrite\n"); + return 1; + } + +#define D2D1_LOAD(x) \ + dw_table.x = (typeof(dw_table.x))GetProcAddress(dw_table.d2d1_lib, #x); \ + if(!dw_table.x) { \ + printf("Can't use DirectWrite, " #x " not found."); \ + return 1; \ + } + +#define DWRITE_LOAD(x) \ + dw_table.x = (typeof(dw_table.x))GetProcAddress(dw_table.dwrite_lib, #x); \ + if(!dw_table.x) { \ + printf("Can't use DirectWrite, " #x " not found."); \ + return 1; \ + } + + D2D1_LOAD(D2D1CreateFactory); + DWRITE_LOAD(DWriteCreateFactory); + + MwFLDrawText = dw_MwDrawText; + MwFLTextWidth = dw_MwTextWidth; + MwFLTextHeight = dw_MwTextHeight; + MwFLFontLoad = dw_MwFontLoad; + MwFLFontFree = dw_MwFontFree; + return 0; +} +#endif diff --git a/src/text/dwrite.h b/src/text/dwrite.h new file mode 100644 index 0000000..4872ded --- /dev/null +++ b/src/text/dwrite.h @@ -0,0 +1,5517 @@ +/*** Autogenerated by WIDL 11.0-rc1 from include/dwrite.idl - Do not edit ***/ + +#define COBJMACROS + +#ifdef _WIN32 +#ifndef __REQUIRED_RPCNDR_H_VERSION__ +#define __REQUIRED_RPCNDR_H_VERSION__ 475 +#endif +#include +#include +#endif + +#ifndef COM_NO_WINDOWS_H +#include +#include +#endif + + +#ifndef __dwrite_h__ +#define __dwrite_h__ + +/* Forward declarations */ + +#ifndef __IDWriteFontFileStream_FWD_DEFINED__ +#define __IDWriteFontFileStream_FWD_DEFINED__ +typedef interface IDWriteFontFileStream IDWriteFontFileStream; +#ifdef __cplusplus +interface IDWriteFontFileStream; +#endif /* __cplusplus */ +#endif + +#ifndef __IDWriteFontFileLoader_FWD_DEFINED__ +#define __IDWriteFontFileLoader_FWD_DEFINED__ +typedef interface IDWriteFontFileLoader IDWriteFontFileLoader; +#ifdef __cplusplus +interface IDWriteFontFileLoader; +#endif /* __cplusplus */ +#endif + +#ifndef __IDWriteLocalFontFileLoader_FWD_DEFINED__ +#define __IDWriteLocalFontFileLoader_FWD_DEFINED__ +typedef interface IDWriteLocalFontFileLoader IDWriteLocalFontFileLoader; +#ifdef __cplusplus +interface IDWriteLocalFontFileLoader; +#endif /* __cplusplus */ +#endif + +#ifndef __IDWriteFontFile_FWD_DEFINED__ +#define __IDWriteFontFile_FWD_DEFINED__ +typedef interface IDWriteFontFile IDWriteFontFile; +#ifdef __cplusplus +interface IDWriteFontFile; +#endif /* __cplusplus */ +#endif + +#ifndef __IDWriteFontFileEnumerator_FWD_DEFINED__ +#define __IDWriteFontFileEnumerator_FWD_DEFINED__ +typedef interface IDWriteFontFileEnumerator IDWriteFontFileEnumerator; +#ifdef __cplusplus +interface IDWriteFontFileEnumerator; +#endif /* __cplusplus */ +#endif + +#ifndef __IDWriteFontCollectionLoader_FWD_DEFINED__ +#define __IDWriteFontCollectionLoader_FWD_DEFINED__ +typedef interface IDWriteFontCollectionLoader IDWriteFontCollectionLoader; +#ifdef __cplusplus +interface IDWriteFontCollectionLoader; +#endif /* __cplusplus */ +#endif + +#ifndef __IDWriteLocalizedStrings_FWD_DEFINED__ +#define __IDWriteLocalizedStrings_FWD_DEFINED__ +typedef interface IDWriteLocalizedStrings IDWriteLocalizedStrings; +#ifdef __cplusplus +interface IDWriteLocalizedStrings; +#endif /* __cplusplus */ +#endif + +#ifndef __IDWriteRenderingParams_FWD_DEFINED__ +#define __IDWriteRenderingParams_FWD_DEFINED__ +typedef interface IDWriteRenderingParams IDWriteRenderingParams; +#ifdef __cplusplus +interface IDWriteRenderingParams; +#endif /* __cplusplus */ +#endif + +#ifndef __IDWriteFontFace_FWD_DEFINED__ +#define __IDWriteFontFace_FWD_DEFINED__ +typedef interface IDWriteFontFace IDWriteFontFace; +#ifdef __cplusplus +interface IDWriteFontFace; +#endif /* __cplusplus */ +#endif + +#ifndef __IDWriteFont_FWD_DEFINED__ +#define __IDWriteFont_FWD_DEFINED__ +typedef interface IDWriteFont IDWriteFont; +#ifdef __cplusplus +interface IDWriteFont; +#endif /* __cplusplus */ +#endif + +#ifndef __IDWriteFontList_FWD_DEFINED__ +#define __IDWriteFontList_FWD_DEFINED__ +typedef interface IDWriteFontList IDWriteFontList; +#ifdef __cplusplus +interface IDWriteFontList; +#endif /* __cplusplus */ +#endif + +#ifndef __IDWriteFontFamily_FWD_DEFINED__ +#define __IDWriteFontFamily_FWD_DEFINED__ +typedef interface IDWriteFontFamily IDWriteFontFamily; +#ifdef __cplusplus +interface IDWriteFontFamily; +#endif /* __cplusplus */ +#endif + +#ifndef __IDWriteFontCollection_FWD_DEFINED__ +#define __IDWriteFontCollection_FWD_DEFINED__ +typedef interface IDWriteFontCollection IDWriteFontCollection; +#ifdef __cplusplus +interface IDWriteFontCollection; +#endif /* __cplusplus */ +#endif + +#ifndef __IDWritePixelSnapping_FWD_DEFINED__ +#define __IDWritePixelSnapping_FWD_DEFINED__ +typedef interface IDWritePixelSnapping IDWritePixelSnapping; +#ifdef __cplusplus +interface IDWritePixelSnapping; +#endif /* __cplusplus */ +#endif + +#ifndef __IDWriteTextRenderer_FWD_DEFINED__ +#define __IDWriteTextRenderer_FWD_DEFINED__ +typedef interface IDWriteTextRenderer IDWriteTextRenderer; +#ifdef __cplusplus +interface IDWriteTextRenderer; +#endif /* __cplusplus */ +#endif + +#ifndef __IDWriteInlineObject_FWD_DEFINED__ +#define __IDWriteInlineObject_FWD_DEFINED__ +typedef interface IDWriteInlineObject IDWriteInlineObject; +#ifdef __cplusplus +interface IDWriteInlineObject; +#endif /* __cplusplus */ +#endif + +#ifndef __IDWriteTextFormat_FWD_DEFINED__ +#define __IDWriteTextFormat_FWD_DEFINED__ +typedef interface IDWriteTextFormat IDWriteTextFormat; +#ifdef __cplusplus +interface IDWriteTextFormat; +#endif /* __cplusplus */ +#endif + +#ifndef __IDWriteTypography_FWD_DEFINED__ +#define __IDWriteTypography_FWD_DEFINED__ +typedef interface IDWriteTypography IDWriteTypography; +#ifdef __cplusplus +interface IDWriteTypography; +#endif /* __cplusplus */ +#endif + +#ifndef __IDWriteBitmapRenderTarget_FWD_DEFINED__ +#define __IDWriteBitmapRenderTarget_FWD_DEFINED__ +typedef interface IDWriteBitmapRenderTarget IDWriteBitmapRenderTarget; +#ifdef __cplusplus +interface IDWriteBitmapRenderTarget; +#endif /* __cplusplus */ +#endif + +#ifndef __IDWriteGdiInterop_FWD_DEFINED__ +#define __IDWriteGdiInterop_FWD_DEFINED__ +typedef interface IDWriteGdiInterop IDWriteGdiInterop; +#ifdef __cplusplus +interface IDWriteGdiInterop; +#endif /* __cplusplus */ +#endif + +#ifndef __IDWriteTextLayout_FWD_DEFINED__ +#define __IDWriteTextLayout_FWD_DEFINED__ +typedef interface IDWriteTextLayout IDWriteTextLayout; +#ifdef __cplusplus +interface IDWriteTextLayout; +#endif /* __cplusplus */ +#endif + +#ifndef __IDWriteNumberSubstitution_FWD_DEFINED__ +#define __IDWriteNumberSubstitution_FWD_DEFINED__ +typedef interface IDWriteNumberSubstitution IDWriteNumberSubstitution; +#ifdef __cplusplus +interface IDWriteNumberSubstitution; +#endif /* __cplusplus */ +#endif + +#ifndef __IDWriteTextAnalysisSource_FWD_DEFINED__ +#define __IDWriteTextAnalysisSource_FWD_DEFINED__ +typedef interface IDWriteTextAnalysisSource IDWriteTextAnalysisSource; +#ifdef __cplusplus +interface IDWriteTextAnalysisSource; +#endif /* __cplusplus */ +#endif + +#ifndef __IDWriteTextAnalysisSink_FWD_DEFINED__ +#define __IDWriteTextAnalysisSink_FWD_DEFINED__ +typedef interface IDWriteTextAnalysisSink IDWriteTextAnalysisSink; +#ifdef __cplusplus +interface IDWriteTextAnalysisSink; +#endif /* __cplusplus */ +#endif + +#ifndef __IDWriteTextAnalyzer_FWD_DEFINED__ +#define __IDWriteTextAnalyzer_FWD_DEFINED__ +typedef interface IDWriteTextAnalyzer IDWriteTextAnalyzer; +#ifdef __cplusplus +interface IDWriteTextAnalyzer; +#endif /* __cplusplus */ +#endif + +#ifndef __IDWriteGlyphRunAnalysis_FWD_DEFINED__ +#define __IDWriteGlyphRunAnalysis_FWD_DEFINED__ +typedef interface IDWriteGlyphRunAnalysis IDWriteGlyphRunAnalysis; +#ifdef __cplusplus +interface IDWriteGlyphRunAnalysis; +#endif /* __cplusplus */ +#endif + +#ifndef __IDWriteFactory_FWD_DEFINED__ +#define __IDWriteFactory_FWD_DEFINED__ +typedef interface IDWriteFactory IDWriteFactory; +#ifdef __cplusplus +interface IDWriteFactory; +#endif /* __cplusplus */ +#endif + +/* Headers for imported files */ + +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef __IDWriteFactory_FWD_DEFINED__ +#define __IDWriteFactory_FWD_DEFINED__ +typedef interface IDWriteFactory IDWriteFactory; +#ifdef __cplusplus +interface IDWriteFactory; +#endif /* __cplusplus */ +#endif + +#ifndef __IDWriteFontCollection_FWD_DEFINED__ +#define __IDWriteFontCollection_FWD_DEFINED__ +typedef interface IDWriteFontCollection IDWriteFontCollection; +#ifdef __cplusplus +interface IDWriteFontCollection; +#endif /* __cplusplus */ +#endif + +#ifndef __IDWriteFontFamily_FWD_DEFINED__ +#define __IDWriteFontFamily_FWD_DEFINED__ +typedef interface IDWriteFontFamily IDWriteFontFamily; +#ifdef __cplusplus +interface IDWriteFontFamily; +#endif /* __cplusplus */ +#endif + +#ifndef __IDWriteFontFace_FWD_DEFINED__ +#define __IDWriteFontFace_FWD_DEFINED__ +typedef interface IDWriteFontFace IDWriteFontFace; +#ifdef __cplusplus +interface IDWriteFontFace; +#endif /* __cplusplus */ +#endif + +#ifndef __IDWriteInlineObject_FWD_DEFINED__ +#define __IDWriteInlineObject_FWD_DEFINED__ +typedef interface IDWriteInlineObject IDWriteInlineObject; +#ifdef __cplusplus +interface IDWriteInlineObject; +#endif /* __cplusplus */ +#endif + +#ifndef __ID2D1SimplifiedGeometrySink_FWD_DEFINED__ +#define __ID2D1SimplifiedGeometrySink_FWD_DEFINED__ +typedef interface ID2D1SimplifiedGeometrySink ID2D1SimplifiedGeometrySink; +#ifdef __cplusplus +interface ID2D1SimplifiedGeometrySink; +#endif /* __cplusplus */ +#endif + +typedef ID2D1SimplifiedGeometrySink IDWriteGeometrySink; +#ifndef _WINDEF_ +typedef void *HMONITOR; +#endif /* _WINDEF_ */ +#ifdef WINE_NO_UNICODE_MACROS +#undef GetGlyphIndices +#endif +typedef enum DWRITE_FACTORY_TYPE { + DWRITE_FACTORY_TYPE_SHARED = 0, + DWRITE_FACTORY_TYPE_ISOLATED = 1 +} DWRITE_FACTORY_TYPE; +typedef enum DWRITE_FONT_FILE_TYPE { + DWRITE_FONT_FILE_TYPE_UNKNOWN = 0, + DWRITE_FONT_FILE_TYPE_CFF = 1, + DWRITE_FONT_FILE_TYPE_TRUETYPE = 2, + DWRITE_FONT_FILE_TYPE_OPENTYPE_COLLECTION = 3, + DWRITE_FONT_FILE_TYPE_TYPE1_PFM = 4, + DWRITE_FONT_FILE_TYPE_TYPE1_PFB = 5, + DWRITE_FONT_FILE_TYPE_VECTOR = 6, + DWRITE_FONT_FILE_TYPE_BITMAP = 7, + DWRITE_FONT_FILE_TYPE_TRUETYPE_COLLECTION = DWRITE_FONT_FILE_TYPE_OPENTYPE_COLLECTION +} DWRITE_FONT_FILE_TYPE; +typedef enum DWRITE_FONT_FACE_TYPE { + DWRITE_FONT_FACE_TYPE_CFF = 0, + DWRITE_FONT_FACE_TYPE_TRUETYPE = 1, + DWRITE_FONT_FACE_TYPE_OPENTYPE_COLLECTION = 2, + DWRITE_FONT_FACE_TYPE_TYPE1 = 3, + DWRITE_FONT_FACE_TYPE_VECTOR = 4, + DWRITE_FONT_FACE_TYPE_BITMAP = 5, + DWRITE_FONT_FACE_TYPE_UNKNOWN = 6, + DWRITE_FONT_FACE_TYPE_RAW_CFF = 7, + DWRITE_FONT_FACE_TYPE_TRUETYPE_COLLECTION = DWRITE_FONT_FACE_TYPE_OPENTYPE_COLLECTION +} DWRITE_FONT_FACE_TYPE; +typedef enum DWRITE_FONT_WEIGHT { + DWRITE_FONT_WEIGHT_THIN = 100, + DWRITE_FONT_WEIGHT_EXTRA_LIGHT = 200, + DWRITE_FONT_WEIGHT_ULTRA_LIGHT = 200, + DWRITE_FONT_WEIGHT_LIGHT = 300, + DWRITE_FONT_WEIGHT_SEMI_LIGHT = 350, + DWRITE_FONT_WEIGHT_NORMAL = 400, + DWRITE_FONT_WEIGHT_REGULAR = 400, + DWRITE_FONT_WEIGHT_MEDIUM = 500, + DWRITE_FONT_WEIGHT_DEMI_BOLD = 600, + DWRITE_FONT_WEIGHT_SEMI_BOLD = 600, + DWRITE_FONT_WEIGHT_BOLD = 700, + DWRITE_FONT_WEIGHT_EXTRA_BOLD = 800, + DWRITE_FONT_WEIGHT_ULTRA_BOLD = 800, + DWRITE_FONT_WEIGHT_BLACK = 900, + DWRITE_FONT_WEIGHT_HEAVY = 900, + DWRITE_FONT_WEIGHT_EXTRA_BLACK = 950, + DWRITE_FONT_WEIGHT_ULTRA_BLACK = 950 +} DWRITE_FONT_WEIGHT; +typedef enum DWRITE_FONT_STRETCH { + DWRITE_FONT_STRETCH_UNDEFINED = 0, + DWRITE_FONT_STRETCH_ULTRA_CONDENSED = 1, + DWRITE_FONT_STRETCH_EXTRA_CONDENSED = 2, + DWRITE_FONT_STRETCH_CONDENSED = 3, + DWRITE_FONT_STRETCH_SEMI_CONDENSED = 4, + DWRITE_FONT_STRETCH_NORMAL = 5, + DWRITE_FONT_STRETCH_MEDIUM = 5, + DWRITE_FONT_STRETCH_SEMI_EXPANDED = 6, + DWRITE_FONT_STRETCH_EXPANDED = 7, + DWRITE_FONT_STRETCH_EXTRA_EXPANDED = 8, + DWRITE_FONT_STRETCH_ULTRA_EXPANDED = 9 +} DWRITE_FONT_STRETCH; +typedef enum DWRITE_FONT_STYLE { + DWRITE_FONT_STYLE_NORMAL = 0, + DWRITE_FONT_STYLE_OBLIQUE = 1, + DWRITE_FONT_STYLE_ITALIC = 2 +} DWRITE_FONT_STYLE; +typedef enum DWRITE_INFORMATIONAL_STRING_ID { + DWRITE_INFORMATIONAL_STRING_NONE = 0, + DWRITE_INFORMATIONAL_STRING_COPYRIGHT_NOTICE = 1, + DWRITE_INFORMATIONAL_STRING_VERSION_STRINGS = 2, + DWRITE_INFORMATIONAL_STRING_TRADEMARK = 3, + DWRITE_INFORMATIONAL_STRING_MANUFACTURER = 4, + DWRITE_INFORMATIONAL_STRING_DESIGNER = 5, + DWRITE_INFORMATIONAL_STRING_DESIGNER_URL = 6, + DWRITE_INFORMATIONAL_STRING_DESCRIPTION = 7, + DWRITE_INFORMATIONAL_STRING_FONT_VENDOR_URL = 8, + DWRITE_INFORMATIONAL_STRING_LICENSE_DESCRIPTION = 9, + DWRITE_INFORMATIONAL_STRING_LICENSE_INFO_URL = 10, + DWRITE_INFORMATIONAL_STRING_WIN32_FAMILY_NAMES = 11, + DWRITE_INFORMATIONAL_STRING_WIN32_SUBFAMILY_NAMES = 12, + DWRITE_INFORMATIONAL_STRING_TYPOGRAPHIC_FAMILY_NAMES = 13, + DWRITE_INFORMATIONAL_STRING_TYPOGRAPHIC_SUBFAMILY_NAMES = 14, + DWRITE_INFORMATIONAL_STRING_SAMPLE_TEXT = 15, + DWRITE_INFORMATIONAL_STRING_FULL_NAME = 16, + DWRITE_INFORMATIONAL_STRING_POSTSCRIPT_NAME = 17, + DWRITE_INFORMATIONAL_STRING_POSTSCRIPT_CID_NAME = 18, + DWRITE_INFORMATIONAL_STRING_WEIGHT_STRETCH_STYLE_FAMILY_NAME = 19, + DWRITE_INFORMATIONAL_STRING_DESIGN_SCRIPT_LANGUAGE_TAG = 20, + DWRITE_INFORMATIONAL_STRING_SUPPORTED_SCRIPT_LANGUAGE_TAG = 21, + DWRITE_INFORMATIONAL_STRING_PREFERRED_FAMILY_NAMES = DWRITE_INFORMATIONAL_STRING_TYPOGRAPHIC_FAMILY_NAMES, + DWRITE_INFORMATIONAL_STRING_PREFERRED_SUBFAMILY_NAMES = DWRITE_INFORMATIONAL_STRING_TYPOGRAPHIC_SUBFAMILY_NAMES, + DWRITE_INFORMATIONAL_STRING_WWS_FAMILY_NAME = DWRITE_INFORMATIONAL_STRING_WEIGHT_STRETCH_STYLE_FAMILY_NAME +} DWRITE_INFORMATIONAL_STRING_ID; +typedef enum DWRITE_FONT_SIMULATIONS { + DWRITE_FONT_SIMULATIONS_NONE = 0, + DWRITE_FONT_SIMULATIONS_BOLD = 1, + DWRITE_FONT_SIMULATIONS_OBLIQUE = 2 +} DWRITE_FONT_SIMULATIONS; +DEFINE_ENUM_FLAG_OPERATORS(DWRITE_FONT_SIMULATIONS); +typedef enum DWRITE_PIXEL_GEOMETRY { + DWRITE_PIXEL_GEOMETRY_FLAT = 0, + DWRITE_PIXEL_GEOMETRY_RGB = 1, + DWRITE_PIXEL_GEOMETRY_BGR = 2 +} DWRITE_PIXEL_GEOMETRY; +typedef enum DWRITE_RENDERING_MODE { + DWRITE_RENDERING_MODE_DEFAULT = 0, + DWRITE_RENDERING_MODE_ALIASED = 1, + DWRITE_RENDERING_MODE_GDI_CLASSIC = 2, + DWRITE_RENDERING_MODE_GDI_NATURAL = 3, + DWRITE_RENDERING_MODE_NATURAL = 4, + DWRITE_RENDERING_MODE_NATURAL_SYMMETRIC = 5, + DWRITE_RENDERING_MODE_OUTLINE = 6, + DWRITE_RENDERING_MODE_CLEARTYPE_GDI_CLASSIC = DWRITE_RENDERING_MODE_GDI_CLASSIC, + DWRITE_RENDERING_MODE_CLEARTYPE_GDI_NATURAL = DWRITE_RENDERING_MODE_GDI_NATURAL, + DWRITE_RENDERING_MODE_CLEARTYPE_NATURAL = DWRITE_RENDERING_MODE_NATURAL, + DWRITE_RENDERING_MODE_CLEARTYPE_NATURAL_SYMMETRIC = DWRITE_RENDERING_MODE_NATURAL_SYMMETRIC +} DWRITE_RENDERING_MODE; +typedef enum DWRITE_TEXT_ALIGNMENT { + DWRITE_TEXT_ALIGNMENT_LEADING = 0, + DWRITE_TEXT_ALIGNMENT_TRAILING = 1, + DWRITE_TEXT_ALIGNMENT_CENTER = 2, + DWRITE_TEXT_ALIGNMENT_JUSTIFIED = 3 +} DWRITE_TEXT_ALIGNMENT; +typedef enum DWRITE_PARAGRAPH_ALIGNMENT { + DWRITE_PARAGRAPH_ALIGNMENT_NEAR = 0, + DWRITE_PARAGRAPH_ALIGNMENT_FAR = 1, + DWRITE_PARAGRAPH_ALIGNMENT_CENTER = 2 +} DWRITE_PARAGRAPH_ALIGNMENT; +typedef enum DWRITE_WORD_WRAPPING { + DWRITE_WORD_WRAPPING_WRAP = 0, + DWRITE_WORD_WRAPPING_NO_WRAP = 1, + DWRITE_WORD_WRAPPING_EMERGENCY_BREAK = 2, + DWRITE_WORD_WRAPPING_WHOLE_WORD = 3, + DWRITE_WORD_WRAPPING_CHARACTER = 4 +} DWRITE_WORD_WRAPPING; +typedef enum DWRITE_READING_DIRECTION { + DWRITE_READING_DIRECTION_LEFT_TO_RIGHT = 0, + DWRITE_READING_DIRECTION_RIGHT_TO_LEFT = 1, + DWRITE_READING_DIRECTION_TOP_TO_BOTTOM = 2, + DWRITE_READING_DIRECTION_BOTTOM_TO_TOP = 3 +} DWRITE_READING_DIRECTION; +typedef enum DWRITE_FLOW_DIRECTION { + DWRITE_FLOW_DIRECTION_TOP_TO_BOTTOM = 0, + DWRITE_FLOW_DIRECTION_BOTTOM_TO_TOP = 1, + DWRITE_FLOW_DIRECTION_LEFT_TO_RIGHT = 2, + DWRITE_FLOW_DIRECTION_RIGHT_TO_LEFT = 3 +} DWRITE_FLOW_DIRECTION; +typedef enum DWRITE_TRIMMING_GRANULARITY { + DWRITE_TRIMMING_GRANULARITY_NONE = 0, + DWRITE_TRIMMING_GRANULARITY_CHARACTER = 1, + DWRITE_TRIMMING_GRANULARITY_WORD = 2 +} DWRITE_TRIMMING_GRANULARITY; +typedef enum DWRITE_BREAK_CONDITION { + DWRITE_BREAK_CONDITION_NEUTRAL = 0, + DWRITE_BREAK_CONDITION_CAN_BREAK = 1, + DWRITE_BREAK_CONDITION_MAY_NOT_BREAK = 2, + DWRITE_BREAK_CONDITION_MUST_BREAK = 3 +} DWRITE_BREAK_CONDITION; +typedef enum DWRITE_LINE_SPACING_METHOD { + DWRITE_LINE_SPACING_METHOD_DEFAULT = 0, + DWRITE_LINE_SPACING_METHOD_UNIFORM = 1, + DWRITE_LINE_SPACING_METHOD_PROPORTIONAL = 2 +} DWRITE_LINE_SPACING_METHOD; +#define DWRITE_MAKE_OPENTYPE_TAG(a,b,c,d) ( \ + ((UINT32)(UINT8)(d) << 24) | \ + ((UINT32)(UINT8)(c) << 16) | \ + ((UINT32)(UINT8)(b) << 8) | \ + (UINT32)(UINT8)(a)) +typedef enum DWRITE_FONT_FEATURE_TAG { + DWRITE_FONT_FEATURE_TAG_ALTERNATIVE_FRACTIONS = 0x63726661, + DWRITE_FONT_FEATURE_TAG_PETITE_CAPITALS_FROM_CAPITALS = 0x63703263, + DWRITE_FONT_FEATURE_TAG_SMALL_CAPITALS_FROM_CAPITALS = 0x63733263, + DWRITE_FONT_FEATURE_TAG_CONTEXTUAL_ALTERNATES = 0x746c6163, + DWRITE_FONT_FEATURE_TAG_CASE_SENSITIVE_FORMS = 0x65736163, + DWRITE_FONT_FEATURE_TAG_GLYPH_COMPOSITION_DECOMPOSITION = 0x706d6363, + DWRITE_FONT_FEATURE_TAG_CONTEXTUAL_LIGATURES = 0x67696c63, + DWRITE_FONT_FEATURE_TAG_CAPITAL_SPACING = 0x70737063, + DWRITE_FONT_FEATURE_TAG_CONTEXTUAL_SWASH = 0x68777363, + DWRITE_FONT_FEATURE_TAG_CURSIVE_POSITIONING = 0x73727563, + DWRITE_FONT_FEATURE_TAG_DEFAULT = 0x746c6664, + DWRITE_FONT_FEATURE_TAG_DISCRETIONARY_LIGATURES = 0x67696c64, + DWRITE_FONT_FEATURE_TAG_EXPERT_FORMS = 0x74707865, + DWRITE_FONT_FEATURE_TAG_FRACTIONS = 0x63617266, + DWRITE_FONT_FEATURE_TAG_FULL_WIDTH = 0x64697766, + DWRITE_FONT_FEATURE_TAG_HALF_FORMS = 0x666c6168, + DWRITE_FONT_FEATURE_TAG_HALANT_FORMS = 0x6e6c6168, + DWRITE_FONT_FEATURE_TAG_ALTERNATE_HALF_WIDTH = 0x746c6168, + DWRITE_FONT_FEATURE_TAG_HISTORICAL_FORMS = 0x74736968, + DWRITE_FONT_FEATURE_TAG_HORIZONTAL_KANA_ALTERNATES = 0x616e6b68, + DWRITE_FONT_FEATURE_TAG_HISTORICAL_LIGATURES = 0x67696c68, + DWRITE_FONT_FEATURE_TAG_HALF_WIDTH = 0x64697768, + DWRITE_FONT_FEATURE_TAG_HOJO_KANJI_FORMS = 0x6f6a6f68, + DWRITE_FONT_FEATURE_TAG_JIS04_FORMS = 0x3430706a, + DWRITE_FONT_FEATURE_TAG_JIS78_FORMS = 0x3837706a, + DWRITE_FONT_FEATURE_TAG_JIS83_FORMS = 0x3338706a, + DWRITE_FONT_FEATURE_TAG_JIS90_FORMS = 0x3039706a, + DWRITE_FONT_FEATURE_TAG_KERNING = 0x6e72656b, + DWRITE_FONT_FEATURE_TAG_STANDARD_LIGATURES = 0x6167696c, + DWRITE_FONT_FEATURE_TAG_LINING_FIGURES = 0x6d756e6c, + DWRITE_FONT_FEATURE_TAG_LOCALIZED_FORMS = 0x6c636f6c, + DWRITE_FONT_FEATURE_TAG_MARK_POSITIONING = 0x6b72616d, + DWRITE_FONT_FEATURE_TAG_MATHEMATICAL_GREEK = 0x6b72676d, + DWRITE_FONT_FEATURE_TAG_MARK_TO_MARK_POSITIONING = 0x6b6d6b6d, + DWRITE_FONT_FEATURE_TAG_ALTERNATE_ANNOTATION_FORMS = 0x746c616e, + DWRITE_FONT_FEATURE_TAG_NLC_KANJI_FORMS = 0x6b636c6e, + DWRITE_FONT_FEATURE_TAG_OLD_STYLE_FIGURES = 0x6d756e6f, + DWRITE_FONT_FEATURE_TAG_ORDINALS = 0x6e64726f, + DWRITE_FONT_FEATURE_TAG_PROPORTIONAL_ALTERNATE_WIDTH = 0x746c6170, + DWRITE_FONT_FEATURE_TAG_PETITE_CAPITALS = 0x70616370, + DWRITE_FONT_FEATURE_TAG_PROPORTIONAL_FIGURES = 0x6d756e70, + DWRITE_FONT_FEATURE_TAG_PROPORTIONAL_WIDTHS = 0x64697770, + DWRITE_FONT_FEATURE_TAG_QUARTER_WIDTHS = 0x64697771, + DWRITE_FONT_FEATURE_TAG_REQUIRED_LIGATURES = 0x67696c72, + DWRITE_FONT_FEATURE_TAG_RUBY_NOTATION_FORMS = 0x79627572, + DWRITE_FONT_FEATURE_TAG_STYLISTIC_ALTERNATES = 0x746c6173, + DWRITE_FONT_FEATURE_TAG_SCIENTIFIC_INFERIORS = 0x666e6973, + DWRITE_FONT_FEATURE_TAG_SMALL_CAPITALS = 0x70636d73, + DWRITE_FONT_FEATURE_TAG_SIMPLIFIED_FORMS = 0x6c706d73, + DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_1 = 0x31307373, + DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_2 = 0x32307373, + DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_3 = 0x33307373, + DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_4 = 0x34307373, + DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_5 = 0x35307373, + DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_6 = 0x36307373, + DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_7 = 0x37307373, + DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_8 = 0x38307373, + DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_9 = 0x39307373, + DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_10 = 0x30317373, + DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_11 = 0x31317373, + DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_12 = 0x32317373, + DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_13 = 0x33317373, + DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_14 = 0x34317373, + DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_15 = 0x35317373, + DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_16 = 0x36317373, + DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_17 = 0x37317373, + DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_18 = 0x38317373, + DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_19 = 0x39317373, + DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_20 = 0x30327373, + DWRITE_FONT_FEATURE_TAG_SUBSCRIPT = 0x73627573, + DWRITE_FONT_FEATURE_TAG_SUPERSCRIPT = 0x73707573, + DWRITE_FONT_FEATURE_TAG_SWASH = 0x68737773, + DWRITE_FONT_FEATURE_TAG_TITLING = 0x6c746974, + DWRITE_FONT_FEATURE_TAG_TRADITIONAL_NAME_FORMS = 0x6d616e74, + DWRITE_FONT_FEATURE_TAG_TABULAR_FIGURES = 0x6d756e74, + DWRITE_FONT_FEATURE_TAG_TRADITIONAL_FORMS = 0x64617274, + DWRITE_FONT_FEATURE_TAG_THIRD_WIDTHS = 0x64697774, + DWRITE_FONT_FEATURE_TAG_UNICASE = 0x63696e75, + DWRITE_FONT_FEATURE_TAG_VERTICAL_WRITING = 0x74726576, + DWRITE_FONT_FEATURE_TAG_VERTICAL_ALTERNATES_AND_ROTATION = 0x32747276, + DWRITE_FONT_FEATURE_TAG_SLASHED_ZERO = 0x6f72657a +} DWRITE_FONT_FEATURE_TAG; +typedef enum DWRITE_SCRIPT_SHAPES { + DWRITE_SCRIPT_SHAPES_DEFAULT = 0, + DWRITE_SCRIPT_SHAPES_NO_VISUAL = 1 +} DWRITE_SCRIPT_SHAPES; +DEFINE_ENUM_FLAG_OPERATORS(DWRITE_SCRIPT_SHAPES); +typedef enum DWRITE_NUMBER_SUBSTITUTION_METHOD { + DWRITE_NUMBER_SUBSTITUTION_METHOD_FROM_CULTURE = 0, + DWRITE_NUMBER_SUBSTITUTION_METHOD_CONTEXTUAL = 1, + DWRITE_NUMBER_SUBSTITUTION_METHOD_NONE = 2, + DWRITE_NUMBER_SUBSTITUTION_METHOD_NATIONAL = 3, + DWRITE_NUMBER_SUBSTITUTION_METHOD_TRADITIONAL = 4 +} DWRITE_NUMBER_SUBSTITUTION_METHOD; +#define DWRITE_ALPHA_MAX 255 +typedef enum DWRITE_TEXTURE_TYPE { + DWRITE_TEXTURE_ALIASED_1x1 = 0, + DWRITE_TEXTURE_CLEARTYPE_3x1 = 1 +} DWRITE_TEXTURE_TYPE; +typedef struct DWRITE_FONT_METRICS { + UINT16 designUnitsPerEm; + UINT16 ascent; + UINT16 descent; + INT16 lineGap; + UINT16 capHeight; + UINT16 xHeight; + INT16 underlinePosition; + UINT16 underlineThickness; + INT16 strikethroughPosition; + UINT16 strikethroughThickness; +} DWRITE_FONT_METRICS; +typedef struct DWRITE_GLYPH_METRICS { + INT32 leftSideBearing; + UINT32 advanceWidth; + INT32 rightSideBearing; + INT32 topSideBearing; + UINT32 advanceHeight; + INT32 bottomSideBearing; + INT32 verticalOriginY; +} DWRITE_GLYPH_METRICS; +typedef struct DWRITE_GLYPH_OFFSET { + FLOAT advanceOffset; + FLOAT ascenderOffset; +} DWRITE_GLYPH_OFFSET; +typedef struct DWRITE_MATRIX { + FLOAT m11; + FLOAT m12; + FLOAT m21; + FLOAT m22; + FLOAT dx; + FLOAT dy; +} DWRITE_MATRIX; +typedef struct DWRITE_TRIMMING { + DWRITE_TRIMMING_GRANULARITY granularity; + UINT32 delimiter; + UINT32 delimiterCount; +} DWRITE_TRIMMING; +#ifndef __d2d1_h__ +typedef struct DWRITE_GLYPH_RUN DWRITE_GLYPH_RUN; +#endif /* __d2d1_h__ */ +struct DWRITE_GLYPH_RUN { + IDWriteFontFace *fontFace; + FLOAT fontEmSize; + UINT32 glyphCount; + const UINT16 *glyphIndices; + const FLOAT *glyphAdvances; + const DWRITE_GLYPH_OFFSET *glyphOffsets; + WINBOOL isSideways; + UINT32 bidiLevel; +}; +#ifndef __d2d1_1_h__ +typedef struct DWRITE_GLYPH_RUN_DESCRIPTION DWRITE_GLYPH_RUN_DESCRIPTION; +#endif /* __d2d1_1_h__ */ +struct DWRITE_GLYPH_RUN_DESCRIPTION { + const WCHAR *localeName; + const WCHAR *string; + UINT32 stringLength; + const UINT16 *clusterMap; + UINT32 textPosition; +}; +typedef struct DWRITE_UNDERLINE { + FLOAT width; + FLOAT thickness; + FLOAT offset; + FLOAT runHeight; + DWRITE_READING_DIRECTION readingDirection; + DWRITE_FLOW_DIRECTION flowDirection; + const WCHAR *localeName; + DWRITE_MEASURING_MODE measuringMode; +} DWRITE_UNDERLINE; +typedef struct DWRITE_STRIKETHROUGH { + FLOAT width; + FLOAT thickness; + FLOAT offset; + DWRITE_READING_DIRECTION readingDirection; + DWRITE_FLOW_DIRECTION flowDirection; + const WCHAR *localeName; + DWRITE_MEASURING_MODE measuringMode; +} DWRITE_STRIKETHROUGH; +typedef struct DWRITE_INLINE_OBJECT_METRICS { + FLOAT width; + FLOAT height; + FLOAT baseline; + WINBOOL supportsSideways; +} DWRITE_INLINE_OBJECT_METRICS; +typedef struct DWRITE_OVERHANG_METRICS { + FLOAT left; + FLOAT top; + FLOAT right; + FLOAT bottom; +} DWRITE_OVERHANG_METRICS; +typedef struct DWRITE_FONT_FEATURE { + DWRITE_FONT_FEATURE_TAG nameTag; + UINT32 parameter; +} DWRITE_FONT_FEATURE; +typedef struct DWRITE_TEXT_RANGE { + UINT32 startPosition; + UINT32 length; +} DWRITE_TEXT_RANGE; +typedef struct DWRITE_LINE_METRICS { + UINT32 length; + UINT32 trailingWhitespaceLength; + UINT32 newlineLength; + FLOAT height; + FLOAT baseline; + WINBOOL isTrimmed; +} DWRITE_LINE_METRICS; +typedef struct DWRITE_TEXT_METRICS { + FLOAT left; + FLOAT top; + FLOAT width; + FLOAT widthIncludingTrailingWhitespace; + FLOAT height; + FLOAT layoutWidth; + FLOAT layoutHeight; + UINT32 maxBidiReorderingDepth; + UINT32 lineCount; +} DWRITE_TEXT_METRICS; +typedef struct DWRITE_CLUSTER_METRICS { + FLOAT width; + UINT16 length; + UINT16 canWrapLineAfter : 1; + UINT16 isWhitespace : 1; + UINT16 isNewline : 1; + UINT16 isSoftHyphen : 1; + UINT16 isRightToLeft : 1; + UINT16 padding : 11; +} DWRITE_CLUSTER_METRICS; +typedef struct DWRITE_HIT_TEST_METRICS { + UINT32 textPosition; + UINT32 length; + FLOAT left; + FLOAT top; + FLOAT width; + FLOAT height; + UINT32 bidiLevel; + WINBOOL isText; + WINBOOL isTrimmed; +} DWRITE_HIT_TEST_METRICS; +typedef struct DWRITE_SCRIPT_ANALYSIS { + UINT16 script; + DWRITE_SCRIPT_SHAPES shapes; +} DWRITE_SCRIPT_ANALYSIS; +typedef struct DWRITE_LINE_BREAKPOINT { + UINT8 breakConditionBefore : 2; + UINT8 breakConditionAfter : 2; + UINT8 isWhitespace : 1; + UINT8 isSoftHyphen : 1; + UINT8 padding : 2; +} DWRITE_LINE_BREAKPOINT; +typedef struct DWRITE_TYPOGRAPHIC_FEATURES { + DWRITE_FONT_FEATURE *features; + UINT32 featureCount; +} DWRITE_TYPOGRAPHIC_FEATURES; +typedef struct DWRITE_SHAPING_TEXT_PROPERTIES { + UINT16 isShapedAlone : 1; + UINT16 reserved1 : 1; + UINT16 canBreakShapingAfter : 1; + UINT16 reserved : 13; +} DWRITE_SHAPING_TEXT_PROPERTIES; +typedef struct DWRITE_SHAPING_GLYPH_PROPERTIES { + UINT16 justification : 4; + UINT16 isClusterStart : 1; + UINT16 isDiacritic : 1; + UINT16 isZeroWidthSpace : 1; + UINT16 reserved : 9; +} DWRITE_SHAPING_GLYPH_PROPERTIES; +/***************************************************************************** + * IDWriteFontFileStream interface + */ +#ifndef __IDWriteFontFileStream_INTERFACE_DEFINED__ +#define __IDWriteFontFileStream_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDWriteFontFileStream, 0x6d4865fe, 0x0ab8, 0x4d91, 0x8f,0x62, 0x5d,0xd6,0xbe,0x34,0xa3,0xe0); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("6d4865fe-0ab8-4d91-8f62-5dd6be34a3e0") +IDWriteFontFileStream : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE ReadFileFragment( + const void **fragment_start, + UINT64 offset, + UINT64 fragment_size, + void **fragment_context) = 0; + + virtual void STDMETHODCALLTYPE ReleaseFileFragment( + void *fragment_context) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetFileSize( + UINT64 *size) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetLastWriteTime( + UINT64 *last_writetime) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDWriteFontFileStream, 0x6d4865fe, 0x0ab8, 0x4d91, 0x8f,0x62, 0x5d,0xd6,0xbe,0x34,0xa3,0xe0) +#endif +#else +typedef struct IDWriteFontFileStreamVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDWriteFontFileStream *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDWriteFontFileStream *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDWriteFontFileStream *This); + + /*** IDWriteFontFileStream methods ***/ + HRESULT (STDMETHODCALLTYPE *ReadFileFragment)( + IDWriteFontFileStream *This, + const void **fragment_start, + UINT64 offset, + UINT64 fragment_size, + void **fragment_context); + + void (STDMETHODCALLTYPE *ReleaseFileFragment)( + IDWriteFontFileStream *This, + void *fragment_context); + + HRESULT (STDMETHODCALLTYPE *GetFileSize)( + IDWriteFontFileStream *This, + UINT64 *size); + + HRESULT (STDMETHODCALLTYPE *GetLastWriteTime)( + IDWriteFontFileStream *This, + UINT64 *last_writetime); + + END_INTERFACE +} IDWriteFontFileStreamVtbl; + +interface IDWriteFontFileStream { + CONST_VTBL IDWriteFontFileStreamVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDWriteFontFileStream_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteFontFileStream_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDWriteFontFileStream_Release(This) (This)->lpVtbl->Release(This) +/*** IDWriteFontFileStream methods ***/ +#define IDWriteFontFileStream_ReadFileFragment(This,fragment_start,offset,fragment_size,fragment_context) (This)->lpVtbl->ReadFileFragment(This,fragment_start,offset,fragment_size,fragment_context) +#define IDWriteFontFileStream_ReleaseFileFragment(This,fragment_context) (This)->lpVtbl->ReleaseFileFragment(This,fragment_context) +#define IDWriteFontFileStream_GetFileSize(This,size) (This)->lpVtbl->GetFileSize(This,size) +#define IDWriteFontFileStream_GetLastWriteTime(This,last_writetime) (This)->lpVtbl->GetLastWriteTime(This,last_writetime) +#else +/*** IUnknown methods ***/ +static inline HRESULT IDWriteFontFileStream_QueryInterface(IDWriteFontFileStream* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static inline ULONG IDWriteFontFileStream_AddRef(IDWriteFontFileStream* This) { + return This->lpVtbl->AddRef(This); +} +static inline ULONG IDWriteFontFileStream_Release(IDWriteFontFileStream* This) { + return This->lpVtbl->Release(This); +} +/*** IDWriteFontFileStream methods ***/ +static inline HRESULT IDWriteFontFileStream_ReadFileFragment(IDWriteFontFileStream* This,const void **fragment_start,UINT64 offset,UINT64 fragment_size,void **fragment_context) { + return This->lpVtbl->ReadFileFragment(This,fragment_start,offset,fragment_size,fragment_context); +} +static inline void IDWriteFontFileStream_ReleaseFileFragment(IDWriteFontFileStream* This,void *fragment_context) { + This->lpVtbl->ReleaseFileFragment(This,fragment_context); +} +static inline HRESULT IDWriteFontFileStream_GetFileSize(IDWriteFontFileStream* This,UINT64 *size) { + return This->lpVtbl->GetFileSize(This,size); +} +static inline HRESULT IDWriteFontFileStream_GetLastWriteTime(IDWriteFontFileStream* This,UINT64 *last_writetime) { + return This->lpVtbl->GetLastWriteTime(This,last_writetime); +} +#endif +#endif + +#endif + + +#endif /* __IDWriteFontFileStream_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IDWriteFontFileLoader interface + */ +#ifndef __IDWriteFontFileLoader_INTERFACE_DEFINED__ +#define __IDWriteFontFileLoader_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDWriteFontFileLoader, 0x727cad4e, 0xd6af, 0x4c9e, 0x8a,0x08, 0xd6,0x95,0xb1,0x1c,0xaa,0x49); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("727cad4e-d6af-4c9e-8a08-d695b11caa49") +IDWriteFontFileLoader : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE CreateStreamFromKey( + const void *key, + UINT32 key_size, + IDWriteFontFileStream **stream) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDWriteFontFileLoader, 0x727cad4e, 0xd6af, 0x4c9e, 0x8a,0x08, 0xd6,0x95,0xb1,0x1c,0xaa,0x49) +#endif +#else +typedef struct IDWriteFontFileLoaderVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDWriteFontFileLoader *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDWriteFontFileLoader *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDWriteFontFileLoader *This); + + /*** IDWriteFontFileLoader methods ***/ + HRESULT (STDMETHODCALLTYPE *CreateStreamFromKey)( + IDWriteFontFileLoader *This, + const void *key, + UINT32 key_size, + IDWriteFontFileStream **stream); + + END_INTERFACE +} IDWriteFontFileLoaderVtbl; + +interface IDWriteFontFileLoader { + CONST_VTBL IDWriteFontFileLoaderVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDWriteFontFileLoader_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteFontFileLoader_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDWriteFontFileLoader_Release(This) (This)->lpVtbl->Release(This) +/*** IDWriteFontFileLoader methods ***/ +#define IDWriteFontFileLoader_CreateStreamFromKey(This,key,key_size,stream) (This)->lpVtbl->CreateStreamFromKey(This,key,key_size,stream) +#else +/*** IUnknown methods ***/ +static inline HRESULT IDWriteFontFileLoader_QueryInterface(IDWriteFontFileLoader* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static inline ULONG IDWriteFontFileLoader_AddRef(IDWriteFontFileLoader* This) { + return This->lpVtbl->AddRef(This); +} +static inline ULONG IDWriteFontFileLoader_Release(IDWriteFontFileLoader* This) { + return This->lpVtbl->Release(This); +} +/*** IDWriteFontFileLoader methods ***/ +static inline HRESULT IDWriteFontFileLoader_CreateStreamFromKey(IDWriteFontFileLoader* This,const void *key,UINT32 key_size,IDWriteFontFileStream **stream) { + return This->lpVtbl->CreateStreamFromKey(This,key,key_size,stream); +} +#endif +#endif + +#endif + + +#endif /* __IDWriteFontFileLoader_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IDWriteLocalFontFileLoader interface + */ +#ifndef __IDWriteLocalFontFileLoader_INTERFACE_DEFINED__ +#define __IDWriteLocalFontFileLoader_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDWriteLocalFontFileLoader, 0xb2d9f3ec, 0xc9fe, 0x4a11, 0xa2,0xec, 0xd8,0x62,0x08,0xf7,0xc0,0xa2); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("b2d9f3ec-c9fe-4a11-a2ec-d86208f7c0a2") +IDWriteLocalFontFileLoader : public IDWriteFontFileLoader +{ + virtual HRESULT STDMETHODCALLTYPE GetFilePathLengthFromKey( + const void *key, + UINT32 key_size, + UINT32 *length) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetFilePathFromKey( + const void *key, + UINT32 key_size, + WCHAR *path, + UINT32 length) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetLastWriteTimeFromKey( + const void *key, + UINT32 key_size, + FILETIME *writetime) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDWriteLocalFontFileLoader, 0xb2d9f3ec, 0xc9fe, 0x4a11, 0xa2,0xec, 0xd8,0x62,0x08,0xf7,0xc0,0xa2) +#endif +#else +typedef struct IDWriteLocalFontFileLoaderVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDWriteLocalFontFileLoader *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDWriteLocalFontFileLoader *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDWriteLocalFontFileLoader *This); + + /*** IDWriteFontFileLoader methods ***/ + HRESULT (STDMETHODCALLTYPE *CreateStreamFromKey)( + IDWriteLocalFontFileLoader *This, + const void *key, + UINT32 key_size, + IDWriteFontFileStream **stream); + + /*** IDWriteLocalFontFileLoader methods ***/ + HRESULT (STDMETHODCALLTYPE *GetFilePathLengthFromKey)( + IDWriteLocalFontFileLoader *This, + const void *key, + UINT32 key_size, + UINT32 *length); + + HRESULT (STDMETHODCALLTYPE *GetFilePathFromKey)( + IDWriteLocalFontFileLoader *This, + const void *key, + UINT32 key_size, + WCHAR *path, + UINT32 length); + + HRESULT (STDMETHODCALLTYPE *GetLastWriteTimeFromKey)( + IDWriteLocalFontFileLoader *This, + const void *key, + UINT32 key_size, + FILETIME *writetime); + + END_INTERFACE +} IDWriteLocalFontFileLoaderVtbl; + +interface IDWriteLocalFontFileLoader { + CONST_VTBL IDWriteLocalFontFileLoaderVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDWriteLocalFontFileLoader_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteLocalFontFileLoader_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDWriteLocalFontFileLoader_Release(This) (This)->lpVtbl->Release(This) +/*** IDWriteFontFileLoader methods ***/ +#define IDWriteLocalFontFileLoader_CreateStreamFromKey(This,key,key_size,stream) (This)->lpVtbl->CreateStreamFromKey(This,key,key_size,stream) +/*** IDWriteLocalFontFileLoader methods ***/ +#define IDWriteLocalFontFileLoader_GetFilePathLengthFromKey(This,key,key_size,length) (This)->lpVtbl->GetFilePathLengthFromKey(This,key,key_size,length) +#define IDWriteLocalFontFileLoader_GetFilePathFromKey(This,key,key_size,path,length) (This)->lpVtbl->GetFilePathFromKey(This,key,key_size,path,length) +#define IDWriteLocalFontFileLoader_GetLastWriteTimeFromKey(This,key,key_size,writetime) (This)->lpVtbl->GetLastWriteTimeFromKey(This,key,key_size,writetime) +#else +/*** IUnknown methods ***/ +static inline HRESULT IDWriteLocalFontFileLoader_QueryInterface(IDWriteLocalFontFileLoader* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static inline ULONG IDWriteLocalFontFileLoader_AddRef(IDWriteLocalFontFileLoader* This) { + return This->lpVtbl->AddRef(This); +} +static inline ULONG IDWriteLocalFontFileLoader_Release(IDWriteLocalFontFileLoader* This) { + return This->lpVtbl->Release(This); +} +/*** IDWriteFontFileLoader methods ***/ +static inline HRESULT IDWriteLocalFontFileLoader_CreateStreamFromKey(IDWriteLocalFontFileLoader* This,const void *key,UINT32 key_size,IDWriteFontFileStream **stream) { + return This->lpVtbl->CreateStreamFromKey(This,key,key_size,stream); +} +/*** IDWriteLocalFontFileLoader methods ***/ +static inline HRESULT IDWriteLocalFontFileLoader_GetFilePathLengthFromKey(IDWriteLocalFontFileLoader* This,const void *key,UINT32 key_size,UINT32 *length) { + return This->lpVtbl->GetFilePathLengthFromKey(This,key,key_size,length); +} +static inline HRESULT IDWriteLocalFontFileLoader_GetFilePathFromKey(IDWriteLocalFontFileLoader* This,const void *key,UINT32 key_size,WCHAR *path,UINT32 length) { + return This->lpVtbl->GetFilePathFromKey(This,key,key_size,path,length); +} +static inline HRESULT IDWriteLocalFontFileLoader_GetLastWriteTimeFromKey(IDWriteLocalFontFileLoader* This,const void *key,UINT32 key_size,FILETIME *writetime) { + return This->lpVtbl->GetLastWriteTimeFromKey(This,key,key_size,writetime); +} +#endif +#endif + +#endif + + +#endif /* __IDWriteLocalFontFileLoader_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IDWriteFontFile interface + */ +#ifndef __IDWriteFontFile_INTERFACE_DEFINED__ +#define __IDWriteFontFile_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDWriteFontFile, 0x739d886a, 0xcef5, 0x47dc, 0x87,0x69, 0x1a,0x8b,0x41,0xbe,0xbb,0xb0); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("739d886a-cef5-47dc-8769-1a8b41bebbb0") +IDWriteFontFile : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE GetReferenceKey( + const void **key, + UINT32 *key_size) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetLoader( + IDWriteFontFileLoader **loader) = 0; + + virtual HRESULT STDMETHODCALLTYPE Analyze( + WINBOOL *is_supported_fonttype, + DWRITE_FONT_FILE_TYPE *file_type, + DWRITE_FONT_FACE_TYPE *face_type, + UINT32 *faces_num) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDWriteFontFile, 0x739d886a, 0xcef5, 0x47dc, 0x87,0x69, 0x1a,0x8b,0x41,0xbe,0xbb,0xb0) +#endif +#else +typedef struct IDWriteFontFileVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDWriteFontFile *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDWriteFontFile *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDWriteFontFile *This); + + /*** IDWriteFontFile methods ***/ + HRESULT (STDMETHODCALLTYPE *GetReferenceKey)( + IDWriteFontFile *This, + const void **key, + UINT32 *key_size); + + HRESULT (STDMETHODCALLTYPE *GetLoader)( + IDWriteFontFile *This, + IDWriteFontFileLoader **loader); + + HRESULT (STDMETHODCALLTYPE *Analyze)( + IDWriteFontFile *This, + WINBOOL *is_supported_fonttype, + DWRITE_FONT_FILE_TYPE *file_type, + DWRITE_FONT_FACE_TYPE *face_type, + UINT32 *faces_num); + + END_INTERFACE +} IDWriteFontFileVtbl; + +interface IDWriteFontFile { + CONST_VTBL IDWriteFontFileVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDWriteFontFile_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteFontFile_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDWriteFontFile_Release(This) (This)->lpVtbl->Release(This) +/*** IDWriteFontFile methods ***/ +#define IDWriteFontFile_GetReferenceKey(This,key,key_size) (This)->lpVtbl->GetReferenceKey(This,key,key_size) +#define IDWriteFontFile_GetLoader(This,loader) (This)->lpVtbl->GetLoader(This,loader) +#define IDWriteFontFile_Analyze(This,is_supported_fonttype,file_type,face_type,faces_num) (This)->lpVtbl->Analyze(This,is_supported_fonttype,file_type,face_type,faces_num) +#else +/*** IUnknown methods ***/ +static inline HRESULT IDWriteFontFile_QueryInterface(IDWriteFontFile* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static inline ULONG IDWriteFontFile_AddRef(IDWriteFontFile* This) { + return This->lpVtbl->AddRef(This); +} +static inline ULONG IDWriteFontFile_Release(IDWriteFontFile* This) { + return This->lpVtbl->Release(This); +} +/*** IDWriteFontFile methods ***/ +static inline HRESULT IDWriteFontFile_GetReferenceKey(IDWriteFontFile* This,const void **key,UINT32 *key_size) { + return This->lpVtbl->GetReferenceKey(This,key,key_size); +} +static inline HRESULT IDWriteFontFile_GetLoader(IDWriteFontFile* This,IDWriteFontFileLoader **loader) { + return This->lpVtbl->GetLoader(This,loader); +} +static inline HRESULT IDWriteFontFile_Analyze(IDWriteFontFile* This,WINBOOL *is_supported_fonttype,DWRITE_FONT_FILE_TYPE *file_type,DWRITE_FONT_FACE_TYPE *face_type,UINT32 *faces_num) { + return This->lpVtbl->Analyze(This,is_supported_fonttype,file_type,face_type,faces_num); +} +#endif +#endif + +#endif + + +#endif /* __IDWriteFontFile_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IDWriteFontFileEnumerator interface + */ +#ifndef __IDWriteFontFileEnumerator_INTERFACE_DEFINED__ +#define __IDWriteFontFileEnumerator_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDWriteFontFileEnumerator, 0x72755049, 0x5ff7, 0x435d, 0x83,0x48, 0x4b,0xe9,0x7c,0xfa,0x6c,0x7c); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("72755049-5ff7-435d-8348-4be97cfa6c7c") +IDWriteFontFileEnumerator : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE MoveNext( + WINBOOL *has_current_file) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetCurrentFontFile( + IDWriteFontFile **font_file) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDWriteFontFileEnumerator, 0x72755049, 0x5ff7, 0x435d, 0x83,0x48, 0x4b,0xe9,0x7c,0xfa,0x6c,0x7c) +#endif +#else +typedef struct IDWriteFontFileEnumeratorVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDWriteFontFileEnumerator *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDWriteFontFileEnumerator *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDWriteFontFileEnumerator *This); + + /*** IDWriteFontFileEnumerator methods ***/ + HRESULT (STDMETHODCALLTYPE *MoveNext)( + IDWriteFontFileEnumerator *This, + WINBOOL *has_current_file); + + HRESULT (STDMETHODCALLTYPE *GetCurrentFontFile)( + IDWriteFontFileEnumerator *This, + IDWriteFontFile **font_file); + + END_INTERFACE +} IDWriteFontFileEnumeratorVtbl; + +interface IDWriteFontFileEnumerator { + CONST_VTBL IDWriteFontFileEnumeratorVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDWriteFontFileEnumerator_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteFontFileEnumerator_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDWriteFontFileEnumerator_Release(This) (This)->lpVtbl->Release(This) +/*** IDWriteFontFileEnumerator methods ***/ +#define IDWriteFontFileEnumerator_MoveNext(This,has_current_file) (This)->lpVtbl->MoveNext(This,has_current_file) +#define IDWriteFontFileEnumerator_GetCurrentFontFile(This,font_file) (This)->lpVtbl->GetCurrentFontFile(This,font_file) +#else +/*** IUnknown methods ***/ +static inline HRESULT IDWriteFontFileEnumerator_QueryInterface(IDWriteFontFileEnumerator* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static inline ULONG IDWriteFontFileEnumerator_AddRef(IDWriteFontFileEnumerator* This) { + return This->lpVtbl->AddRef(This); +} +static inline ULONG IDWriteFontFileEnumerator_Release(IDWriteFontFileEnumerator* This) { + return This->lpVtbl->Release(This); +} +/*** IDWriteFontFileEnumerator methods ***/ +static inline HRESULT IDWriteFontFileEnumerator_MoveNext(IDWriteFontFileEnumerator* This,WINBOOL *has_current_file) { + return This->lpVtbl->MoveNext(This,has_current_file); +} +static inline HRESULT IDWriteFontFileEnumerator_GetCurrentFontFile(IDWriteFontFileEnumerator* This,IDWriteFontFile **font_file) { + return This->lpVtbl->GetCurrentFontFile(This,font_file); +} +#endif +#endif + +#endif + + +#endif /* __IDWriteFontFileEnumerator_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IDWriteFontCollectionLoader interface + */ +#ifndef __IDWriteFontCollectionLoader_INTERFACE_DEFINED__ +#define __IDWriteFontCollectionLoader_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDWriteFontCollectionLoader, 0xcca920e4, 0x52f0, 0x492b, 0xbf,0xa8, 0x29,0xc7,0x2e,0xe0,0xa4,0x68); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("cca920e4-52f0-492b-bfa8-29c72ee0a468") +IDWriteFontCollectionLoader : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE CreateEnumeratorFromKey( + IDWriteFactory *factory, + const void *key, + UINT32 key_size, + IDWriteFontFileEnumerator **enumerator) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDWriteFontCollectionLoader, 0xcca920e4, 0x52f0, 0x492b, 0xbf,0xa8, 0x29,0xc7,0x2e,0xe0,0xa4,0x68) +#endif +#else +typedef struct IDWriteFontCollectionLoaderVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDWriteFontCollectionLoader *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDWriteFontCollectionLoader *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDWriteFontCollectionLoader *This); + + /*** IDWriteFontCollectionLoader methods ***/ + HRESULT (STDMETHODCALLTYPE *CreateEnumeratorFromKey)( + IDWriteFontCollectionLoader *This, + IDWriteFactory *factory, + const void *key, + UINT32 key_size, + IDWriteFontFileEnumerator **enumerator); + + END_INTERFACE +} IDWriteFontCollectionLoaderVtbl; + +interface IDWriteFontCollectionLoader { + CONST_VTBL IDWriteFontCollectionLoaderVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDWriteFontCollectionLoader_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteFontCollectionLoader_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDWriteFontCollectionLoader_Release(This) (This)->lpVtbl->Release(This) +/*** IDWriteFontCollectionLoader methods ***/ +#define IDWriteFontCollectionLoader_CreateEnumeratorFromKey(This,factory,key,key_size,enumerator) (This)->lpVtbl->CreateEnumeratorFromKey(This,factory,key,key_size,enumerator) +#else +/*** IUnknown methods ***/ +static inline HRESULT IDWriteFontCollectionLoader_QueryInterface(IDWriteFontCollectionLoader* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static inline ULONG IDWriteFontCollectionLoader_AddRef(IDWriteFontCollectionLoader* This) { + return This->lpVtbl->AddRef(This); +} +static inline ULONG IDWriteFontCollectionLoader_Release(IDWriteFontCollectionLoader* This) { + return This->lpVtbl->Release(This); +} +/*** IDWriteFontCollectionLoader methods ***/ +static inline HRESULT IDWriteFontCollectionLoader_CreateEnumeratorFromKey(IDWriteFontCollectionLoader* This,IDWriteFactory *factory,const void *key,UINT32 key_size,IDWriteFontFileEnumerator **enumerator) { + return This->lpVtbl->CreateEnumeratorFromKey(This,factory,key,key_size,enumerator); +} +#endif +#endif + +#endif + + +#endif /* __IDWriteFontCollectionLoader_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IDWriteLocalizedStrings interface + */ +#ifndef __IDWriteLocalizedStrings_INTERFACE_DEFINED__ +#define __IDWriteLocalizedStrings_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDWriteLocalizedStrings, 0x08256209, 0x099a, 0x4b34, 0xb8,0x6d, 0xc2,0x2b,0x11,0x0e,0x77,0x71); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("08256209-099a-4b34-b86d-c22b110e7771") +IDWriteLocalizedStrings : public IUnknown +{ + virtual UINT32 STDMETHODCALLTYPE GetCount( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE FindLocaleName( + const WCHAR *locale_name, + UINT32 *index, + WINBOOL *exists) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetLocaleNameLength( + UINT32 index, + UINT32 *length) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetLocaleName( + UINT32 index, + WCHAR *locale_name, + UINT32 size) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetStringLength( + UINT32 index, + UINT32 *length) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetString( + UINT32 index, + WCHAR *buffer, + UINT32 size) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDWriteLocalizedStrings, 0x08256209, 0x099a, 0x4b34, 0xb8,0x6d, 0xc2,0x2b,0x11,0x0e,0x77,0x71) +#endif +#else +typedef struct IDWriteLocalizedStringsVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDWriteLocalizedStrings *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDWriteLocalizedStrings *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDWriteLocalizedStrings *This); + + /*** IDWriteLocalizedStrings methods ***/ + UINT32 (STDMETHODCALLTYPE *GetCount)( + IDWriteLocalizedStrings *This); + + HRESULT (STDMETHODCALLTYPE *FindLocaleName)( + IDWriteLocalizedStrings *This, + const WCHAR *locale_name, + UINT32 *index, + WINBOOL *exists); + + HRESULT (STDMETHODCALLTYPE *GetLocaleNameLength)( + IDWriteLocalizedStrings *This, + UINT32 index, + UINT32 *length); + + HRESULT (STDMETHODCALLTYPE *GetLocaleName)( + IDWriteLocalizedStrings *This, + UINT32 index, + WCHAR *locale_name, + UINT32 size); + + HRESULT (STDMETHODCALLTYPE *GetStringLength)( + IDWriteLocalizedStrings *This, + UINT32 index, + UINT32 *length); + + HRESULT (STDMETHODCALLTYPE *GetString)( + IDWriteLocalizedStrings *This, + UINT32 index, + WCHAR *buffer, + UINT32 size); + + END_INTERFACE +} IDWriteLocalizedStringsVtbl; + +interface IDWriteLocalizedStrings { + CONST_VTBL IDWriteLocalizedStringsVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDWriteLocalizedStrings_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteLocalizedStrings_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDWriteLocalizedStrings_Release(This) (This)->lpVtbl->Release(This) +/*** IDWriteLocalizedStrings methods ***/ +#define IDWriteLocalizedStrings_GetCount(This) (This)->lpVtbl->GetCount(This) +#define IDWriteLocalizedStrings_FindLocaleName(This,locale_name,index,exists) (This)->lpVtbl->FindLocaleName(This,locale_name,index,exists) +#define IDWriteLocalizedStrings_GetLocaleNameLength(This,index,length) (This)->lpVtbl->GetLocaleNameLength(This,index,length) +#define IDWriteLocalizedStrings_GetLocaleName(This,index,locale_name,size) (This)->lpVtbl->GetLocaleName(This,index,locale_name,size) +#define IDWriteLocalizedStrings_GetStringLength(This,index,length) (This)->lpVtbl->GetStringLength(This,index,length) +#define IDWriteLocalizedStrings_GetString(This,index,buffer,size) (This)->lpVtbl->GetString(This,index,buffer,size) +#else +/*** IUnknown methods ***/ +static inline HRESULT IDWriteLocalizedStrings_QueryInterface(IDWriteLocalizedStrings* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static inline ULONG IDWriteLocalizedStrings_AddRef(IDWriteLocalizedStrings* This) { + return This->lpVtbl->AddRef(This); +} +static inline ULONG IDWriteLocalizedStrings_Release(IDWriteLocalizedStrings* This) { + return This->lpVtbl->Release(This); +} +/*** IDWriteLocalizedStrings methods ***/ +static inline UINT32 IDWriteLocalizedStrings_GetCount(IDWriteLocalizedStrings* This) { + return This->lpVtbl->GetCount(This); +} +static inline HRESULT IDWriteLocalizedStrings_FindLocaleName(IDWriteLocalizedStrings* This,const WCHAR *locale_name,UINT32 *index,WINBOOL *exists) { + return This->lpVtbl->FindLocaleName(This,locale_name,index,exists); +} +static inline HRESULT IDWriteLocalizedStrings_GetLocaleNameLength(IDWriteLocalizedStrings* This,UINT32 index,UINT32 *length) { + return This->lpVtbl->GetLocaleNameLength(This,index,length); +} +static inline HRESULT IDWriteLocalizedStrings_GetLocaleName(IDWriteLocalizedStrings* This,UINT32 index,WCHAR *locale_name,UINT32 size) { + return This->lpVtbl->GetLocaleName(This,index,locale_name,size); +} +static inline HRESULT IDWriteLocalizedStrings_GetStringLength(IDWriteLocalizedStrings* This,UINT32 index,UINT32 *length) { + return This->lpVtbl->GetStringLength(This,index,length); +} +static inline HRESULT IDWriteLocalizedStrings_GetString(IDWriteLocalizedStrings* This,UINT32 index,WCHAR *buffer,UINT32 size) { + return This->lpVtbl->GetString(This,index,buffer,size); +} +#endif +#endif + +#endif + + +#endif /* __IDWriteLocalizedStrings_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IDWriteRenderingParams interface + */ +#ifndef __IDWriteRenderingParams_INTERFACE_DEFINED__ +#define __IDWriteRenderingParams_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDWriteRenderingParams, 0x2f0da53a, 0x2add, 0x47cd, 0x82,0xee, 0xd9,0xec,0x34,0x68,0x8e,0x75); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("2f0da53a-2add-47cd-82ee-d9ec34688e75") +IDWriteRenderingParams : public IUnknown +{ + virtual FLOAT STDMETHODCALLTYPE GetGamma( + ) = 0; + + virtual FLOAT STDMETHODCALLTYPE GetEnhancedContrast( + ) = 0; + + virtual FLOAT STDMETHODCALLTYPE GetClearTypeLevel( + ) = 0; + + virtual DWRITE_PIXEL_GEOMETRY STDMETHODCALLTYPE GetPixelGeometry( + ) = 0; + + virtual DWRITE_RENDERING_MODE STDMETHODCALLTYPE GetRenderingMode( + ) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDWriteRenderingParams, 0x2f0da53a, 0x2add, 0x47cd, 0x82,0xee, 0xd9,0xec,0x34,0x68,0x8e,0x75) +#endif +#else +typedef struct IDWriteRenderingParamsVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDWriteRenderingParams *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDWriteRenderingParams *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDWriteRenderingParams *This); + + /*** IDWriteRenderingParams methods ***/ + FLOAT (STDMETHODCALLTYPE *GetGamma)( + IDWriteRenderingParams *This); + + FLOAT (STDMETHODCALLTYPE *GetEnhancedContrast)( + IDWriteRenderingParams *This); + + FLOAT (STDMETHODCALLTYPE *GetClearTypeLevel)( + IDWriteRenderingParams *This); + + DWRITE_PIXEL_GEOMETRY (STDMETHODCALLTYPE *GetPixelGeometry)( + IDWriteRenderingParams *This); + + DWRITE_RENDERING_MODE (STDMETHODCALLTYPE *GetRenderingMode)( + IDWriteRenderingParams *This); + + END_INTERFACE +} IDWriteRenderingParamsVtbl; + +interface IDWriteRenderingParams { + CONST_VTBL IDWriteRenderingParamsVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDWriteRenderingParams_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteRenderingParams_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDWriteRenderingParams_Release(This) (This)->lpVtbl->Release(This) +/*** IDWriteRenderingParams methods ***/ +#define IDWriteRenderingParams_GetGamma(This) (This)->lpVtbl->GetGamma(This) +#define IDWriteRenderingParams_GetEnhancedContrast(This) (This)->lpVtbl->GetEnhancedContrast(This) +#define IDWriteRenderingParams_GetClearTypeLevel(This) (This)->lpVtbl->GetClearTypeLevel(This) +#define IDWriteRenderingParams_GetPixelGeometry(This) (This)->lpVtbl->GetPixelGeometry(This) +#define IDWriteRenderingParams_GetRenderingMode(This) (This)->lpVtbl->GetRenderingMode(This) +#else +/*** IUnknown methods ***/ +static inline HRESULT IDWriteRenderingParams_QueryInterface(IDWriteRenderingParams* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static inline ULONG IDWriteRenderingParams_AddRef(IDWriteRenderingParams* This) { + return This->lpVtbl->AddRef(This); +} +static inline ULONG IDWriteRenderingParams_Release(IDWriteRenderingParams* This) { + return This->lpVtbl->Release(This); +} +/*** IDWriteRenderingParams methods ***/ +static inline FLOAT IDWriteRenderingParams_GetGamma(IDWriteRenderingParams* This) { + return This->lpVtbl->GetGamma(This); +} +static inline FLOAT IDWriteRenderingParams_GetEnhancedContrast(IDWriteRenderingParams* This) { + return This->lpVtbl->GetEnhancedContrast(This); +} +static inline FLOAT IDWriteRenderingParams_GetClearTypeLevel(IDWriteRenderingParams* This) { + return This->lpVtbl->GetClearTypeLevel(This); +} +static inline DWRITE_PIXEL_GEOMETRY IDWriteRenderingParams_GetPixelGeometry(IDWriteRenderingParams* This) { + return This->lpVtbl->GetPixelGeometry(This); +} +static inline DWRITE_RENDERING_MODE IDWriteRenderingParams_GetRenderingMode(IDWriteRenderingParams* This) { + return This->lpVtbl->GetRenderingMode(This); +} +#endif +#endif + +#endif + + +#endif /* __IDWriteRenderingParams_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IDWriteFontFace interface + */ +#ifndef __IDWriteFontFace_INTERFACE_DEFINED__ +#define __IDWriteFontFace_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDWriteFontFace, 0x5f49804d, 0x7024, 0x4d43, 0xbf,0xa9, 0xd2,0x59,0x84,0xf5,0x38,0x49); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("5f49804d-7024-4d43-bfa9-d25984f53849") +IDWriteFontFace : public IUnknown +{ + virtual DWRITE_FONT_FACE_TYPE STDMETHODCALLTYPE GetType( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetFiles( + UINT32 *number_of_files, + IDWriteFontFile **fontfiles) = 0; + + virtual UINT32 STDMETHODCALLTYPE GetIndex( + ) = 0; + + virtual DWRITE_FONT_SIMULATIONS STDMETHODCALLTYPE GetSimulations( + ) = 0; + + virtual WINBOOL STDMETHODCALLTYPE IsSymbolFont( + ) = 0; + + virtual void STDMETHODCALLTYPE GetMetrics( + DWRITE_FONT_METRICS *metrics) = 0; + + virtual UINT16 STDMETHODCALLTYPE GetGlyphCount( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetDesignGlyphMetrics( + const UINT16 *glyph_indices, + UINT32 glyph_count, + DWRITE_GLYPH_METRICS *metrics, + WINBOOL is_sideways = FALSE) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetGlyphIndices( + const UINT32 *codepoints, + UINT32 count, + UINT16 *glyph_indices) = 0; + + virtual HRESULT STDMETHODCALLTYPE TryGetFontTable( + UINT32 table_tag, + const void **table_data, + UINT32 *table_size, + void **context, + WINBOOL *exists) = 0; + + virtual void STDMETHODCALLTYPE ReleaseFontTable( + void *table_context) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetGlyphRunOutline( + FLOAT emSize, + const UINT16 *glyph_indices, + const FLOAT *glyph_advances, + const DWRITE_GLYPH_OFFSET *glyph_offsets, + UINT32 glyph_count, + WINBOOL is_sideways, + WINBOOL is_rtl, + IDWriteGeometrySink *geometrysink) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetRecommendedRenderingMode( + FLOAT emSize, + FLOAT pixels_per_dip, + DWRITE_MEASURING_MODE mode, + IDWriteRenderingParams *params, + DWRITE_RENDERING_MODE *rendering_mode) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetGdiCompatibleMetrics( + FLOAT emSize, + FLOAT pixels_per_dip, + const DWRITE_MATRIX *transform, + DWRITE_FONT_METRICS *metrics) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetGdiCompatibleGlyphMetrics( + FLOAT emSize, + FLOAT pixels_per_dip, + const DWRITE_MATRIX *transform, + WINBOOL use_gdi_natural, + const UINT16 *glyph_indices, + UINT32 glyph_count, + DWRITE_GLYPH_METRICS *metrics, + WINBOOL is_sideways = FALSE) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDWriteFontFace, 0x5f49804d, 0x7024, 0x4d43, 0xbf,0xa9, 0xd2,0x59,0x84,0xf5,0x38,0x49) +#endif +#else +typedef struct IDWriteFontFaceVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDWriteFontFace *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDWriteFontFace *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDWriteFontFace *This); + + /*** IDWriteFontFace methods ***/ + DWRITE_FONT_FACE_TYPE (STDMETHODCALLTYPE *GetType)( + IDWriteFontFace *This); + + HRESULT (STDMETHODCALLTYPE *GetFiles)( + IDWriteFontFace *This, + UINT32 *number_of_files, + IDWriteFontFile **fontfiles); + + UINT32 (STDMETHODCALLTYPE *GetIndex)( + IDWriteFontFace *This); + + DWRITE_FONT_SIMULATIONS (STDMETHODCALLTYPE *GetSimulations)( + IDWriteFontFace *This); + + WINBOOL (STDMETHODCALLTYPE *IsSymbolFont)( + IDWriteFontFace *This); + + void (STDMETHODCALLTYPE *GetMetrics)( + IDWriteFontFace *This, + DWRITE_FONT_METRICS *metrics); + + UINT16 (STDMETHODCALLTYPE *GetGlyphCount)( + IDWriteFontFace *This); + + HRESULT (STDMETHODCALLTYPE *GetDesignGlyphMetrics)( + IDWriteFontFace *This, + const UINT16 *glyph_indices, + UINT32 glyph_count, + DWRITE_GLYPH_METRICS *metrics, + WINBOOL is_sideways); + + HRESULT (STDMETHODCALLTYPE *GetGlyphIndices)( + IDWriteFontFace *This, + const UINT32 *codepoints, + UINT32 count, + UINT16 *glyph_indices); + + HRESULT (STDMETHODCALLTYPE *TryGetFontTable)( + IDWriteFontFace *This, + UINT32 table_tag, + const void **table_data, + UINT32 *table_size, + void **context, + WINBOOL *exists); + + void (STDMETHODCALLTYPE *ReleaseFontTable)( + IDWriteFontFace *This, + void *table_context); + + HRESULT (STDMETHODCALLTYPE *GetGlyphRunOutline)( + IDWriteFontFace *This, + FLOAT emSize, + const UINT16 *glyph_indices, + const FLOAT *glyph_advances, + const DWRITE_GLYPH_OFFSET *glyph_offsets, + UINT32 glyph_count, + WINBOOL is_sideways, + WINBOOL is_rtl, + IDWriteGeometrySink *geometrysink); + + HRESULT (STDMETHODCALLTYPE *GetRecommendedRenderingMode)( + IDWriteFontFace *This, + FLOAT emSize, + FLOAT pixels_per_dip, + DWRITE_MEASURING_MODE mode, + IDWriteRenderingParams *params, + DWRITE_RENDERING_MODE *rendering_mode); + + HRESULT (STDMETHODCALLTYPE *GetGdiCompatibleMetrics)( + IDWriteFontFace *This, + FLOAT emSize, + FLOAT pixels_per_dip, + const DWRITE_MATRIX *transform, + DWRITE_FONT_METRICS *metrics); + + HRESULT (STDMETHODCALLTYPE *GetGdiCompatibleGlyphMetrics)( + IDWriteFontFace *This, + FLOAT emSize, + FLOAT pixels_per_dip, + const DWRITE_MATRIX *transform, + WINBOOL use_gdi_natural, + const UINT16 *glyph_indices, + UINT32 glyph_count, + DWRITE_GLYPH_METRICS *metrics, + WINBOOL is_sideways); + + END_INTERFACE +} IDWriteFontFaceVtbl; + +interface IDWriteFontFace { + CONST_VTBL IDWriteFontFaceVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDWriteFontFace_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteFontFace_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDWriteFontFace_Release(This) (This)->lpVtbl->Release(This) +/*** IDWriteFontFace methods ***/ +#define IDWriteFontFace_GetType(This) (This)->lpVtbl->GetType(This) +#define IDWriteFontFace_GetFiles(This,number_of_files,fontfiles) (This)->lpVtbl->GetFiles(This,number_of_files,fontfiles) +#define IDWriteFontFace_GetIndex(This) (This)->lpVtbl->GetIndex(This) +#define IDWriteFontFace_GetSimulations(This) (This)->lpVtbl->GetSimulations(This) +#define IDWriteFontFace_IsSymbolFont(This) (This)->lpVtbl->IsSymbolFont(This) +#define IDWriteFontFace_GetMetrics(This,metrics) (This)->lpVtbl->GetMetrics(This,metrics) +#define IDWriteFontFace_GetGlyphCount(This) (This)->lpVtbl->GetGlyphCount(This) +#define IDWriteFontFace_GetDesignGlyphMetrics(This,glyph_indices,glyph_count,metrics,is_sideways) (This)->lpVtbl->GetDesignGlyphMetrics(This,glyph_indices,glyph_count,metrics,is_sideways) +#define IDWriteFontFace_GetGlyphIndices(This,codepoints,count,glyph_indices) (This)->lpVtbl->GetGlyphIndices(This,codepoints,count,glyph_indices) +#define IDWriteFontFace_TryGetFontTable(This,table_tag,table_data,table_size,context,exists) (This)->lpVtbl->TryGetFontTable(This,table_tag,table_data,table_size,context,exists) +#define IDWriteFontFace_ReleaseFontTable(This,table_context) (This)->lpVtbl->ReleaseFontTable(This,table_context) +#define IDWriteFontFace_GetGlyphRunOutline(This,emSize,glyph_indices,glyph_advances,glyph_offsets,glyph_count,is_sideways,is_rtl,geometrysink) (This)->lpVtbl->GetGlyphRunOutline(This,emSize,glyph_indices,glyph_advances,glyph_offsets,glyph_count,is_sideways,is_rtl,geometrysink) +#define IDWriteFontFace_GetRecommendedRenderingMode(This,emSize,pixels_per_dip,mode,params,rendering_mode) (This)->lpVtbl->GetRecommendedRenderingMode(This,emSize,pixels_per_dip,mode,params,rendering_mode) +#define IDWriteFontFace_GetGdiCompatibleMetrics(This,emSize,pixels_per_dip,transform,metrics) (This)->lpVtbl->GetGdiCompatibleMetrics(This,emSize,pixels_per_dip,transform,metrics) +#define IDWriteFontFace_GetGdiCompatibleGlyphMetrics(This,emSize,pixels_per_dip,transform,use_gdi_natural,glyph_indices,glyph_count,metrics,is_sideways) (This)->lpVtbl->GetGdiCompatibleGlyphMetrics(This,emSize,pixels_per_dip,transform,use_gdi_natural,glyph_indices,glyph_count,metrics,is_sideways) +#else +/*** IUnknown methods ***/ +static inline HRESULT IDWriteFontFace_QueryInterface(IDWriteFontFace* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static inline ULONG IDWriteFontFace_AddRef(IDWriteFontFace* This) { + return This->lpVtbl->AddRef(This); +} +static inline ULONG IDWriteFontFace_Release(IDWriteFontFace* This) { + return This->lpVtbl->Release(This); +} +/*** IDWriteFontFace methods ***/ +static inline DWRITE_FONT_FACE_TYPE IDWriteFontFace_GetType(IDWriteFontFace* This) { + return This->lpVtbl->GetType(This); +} +static inline HRESULT IDWriteFontFace_GetFiles(IDWriteFontFace* This,UINT32 *number_of_files,IDWriteFontFile **fontfiles) { + return This->lpVtbl->GetFiles(This,number_of_files,fontfiles); +} +static inline UINT32 IDWriteFontFace_GetIndex(IDWriteFontFace* This) { + return This->lpVtbl->GetIndex(This); +} +static inline DWRITE_FONT_SIMULATIONS IDWriteFontFace_GetSimulations(IDWriteFontFace* This) { + return This->lpVtbl->GetSimulations(This); +} +static inline WINBOOL IDWriteFontFace_IsSymbolFont(IDWriteFontFace* This) { + return This->lpVtbl->IsSymbolFont(This); +} +static inline void IDWriteFontFace_GetMetrics(IDWriteFontFace* This,DWRITE_FONT_METRICS *metrics) { + This->lpVtbl->GetMetrics(This,metrics); +} +static inline UINT16 IDWriteFontFace_GetGlyphCount(IDWriteFontFace* This) { + return This->lpVtbl->GetGlyphCount(This); +} +static inline HRESULT IDWriteFontFace_GetDesignGlyphMetrics(IDWriteFontFace* This,const UINT16 *glyph_indices,UINT32 glyph_count,DWRITE_GLYPH_METRICS *metrics,WINBOOL is_sideways) { + return This->lpVtbl->GetDesignGlyphMetrics(This,glyph_indices,glyph_count,metrics,is_sideways); +} +static inline HRESULT IDWriteFontFace_GetGlyphIndices(IDWriteFontFace* This,const UINT32 *codepoints,UINT32 count,UINT16 *glyph_indices) { + return This->lpVtbl->GetGlyphIndices(This,codepoints,count,glyph_indices); +} +static inline HRESULT IDWriteFontFace_TryGetFontTable(IDWriteFontFace* This,UINT32 table_tag,const void **table_data,UINT32 *table_size,void **context,WINBOOL *exists) { + return This->lpVtbl->TryGetFontTable(This,table_tag,table_data,table_size,context,exists); +} +static inline void IDWriteFontFace_ReleaseFontTable(IDWriteFontFace* This,void *table_context) { + This->lpVtbl->ReleaseFontTable(This,table_context); +} +static inline HRESULT IDWriteFontFace_GetGlyphRunOutline(IDWriteFontFace* This,FLOAT emSize,const UINT16 *glyph_indices,const FLOAT *glyph_advances,const DWRITE_GLYPH_OFFSET *glyph_offsets,UINT32 glyph_count,WINBOOL is_sideways,WINBOOL is_rtl,IDWriteGeometrySink *geometrysink) { + return This->lpVtbl->GetGlyphRunOutline(This,emSize,glyph_indices,glyph_advances,glyph_offsets,glyph_count,is_sideways,is_rtl,geometrysink); +} +static inline HRESULT IDWriteFontFace_GetRecommendedRenderingMode(IDWriteFontFace* This,FLOAT emSize,FLOAT pixels_per_dip,DWRITE_MEASURING_MODE mode,IDWriteRenderingParams *params,DWRITE_RENDERING_MODE *rendering_mode) { + return This->lpVtbl->GetRecommendedRenderingMode(This,emSize,pixels_per_dip,mode,params,rendering_mode); +} +static inline HRESULT IDWriteFontFace_GetGdiCompatibleMetrics(IDWriteFontFace* This,FLOAT emSize,FLOAT pixels_per_dip,const DWRITE_MATRIX *transform,DWRITE_FONT_METRICS *metrics) { + return This->lpVtbl->GetGdiCompatibleMetrics(This,emSize,pixels_per_dip,transform,metrics); +} +static inline HRESULT IDWriteFontFace_GetGdiCompatibleGlyphMetrics(IDWriteFontFace* This,FLOAT emSize,FLOAT pixels_per_dip,const DWRITE_MATRIX *transform,WINBOOL use_gdi_natural,const UINT16 *glyph_indices,UINT32 glyph_count,DWRITE_GLYPH_METRICS *metrics,WINBOOL is_sideways) { + return This->lpVtbl->GetGdiCompatibleGlyphMetrics(This,emSize,pixels_per_dip,transform,use_gdi_natural,glyph_indices,glyph_count,metrics,is_sideways); +} +#endif +#endif + +#endif + + +#endif /* __IDWriteFontFace_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IDWriteFont interface + */ +#ifndef __IDWriteFont_INTERFACE_DEFINED__ +#define __IDWriteFont_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDWriteFont, 0xacd16696, 0x8c14, 0x4f5d, 0x87,0x7e, 0xfe,0x3f,0xc1,0xd3,0x27,0x37); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("acd16696-8c14-4f5d-877e-fe3fc1d32737") +IDWriteFont : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE GetFontFamily( + IDWriteFontFamily **family) = 0; + + virtual DWRITE_FONT_WEIGHT STDMETHODCALLTYPE GetWeight( + ) = 0; + + virtual DWRITE_FONT_STRETCH STDMETHODCALLTYPE GetStretch( + ) = 0; + + virtual DWRITE_FONT_STYLE STDMETHODCALLTYPE GetStyle( + ) = 0; + + virtual WINBOOL STDMETHODCALLTYPE IsSymbolFont( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetFaceNames( + IDWriteLocalizedStrings **names) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetInformationalStrings( + DWRITE_INFORMATIONAL_STRING_ID stringid, + IDWriteLocalizedStrings **strings, + WINBOOL *exists) = 0; + + virtual DWRITE_FONT_SIMULATIONS STDMETHODCALLTYPE GetSimulations( + ) = 0; + + virtual void STDMETHODCALLTYPE GetMetrics( + DWRITE_FONT_METRICS *metrics) = 0; + + virtual HRESULT STDMETHODCALLTYPE HasCharacter( + UINT32 value, + WINBOOL *exists) = 0; + + virtual HRESULT STDMETHODCALLTYPE CreateFontFace( + IDWriteFontFace **face) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDWriteFont, 0xacd16696, 0x8c14, 0x4f5d, 0x87,0x7e, 0xfe,0x3f,0xc1,0xd3,0x27,0x37) +#endif +#else +typedef struct IDWriteFontVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDWriteFont *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDWriteFont *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDWriteFont *This); + + /*** IDWriteFont methods ***/ + HRESULT (STDMETHODCALLTYPE *GetFontFamily)( + IDWriteFont *This, + IDWriteFontFamily **family); + + DWRITE_FONT_WEIGHT (STDMETHODCALLTYPE *GetWeight)( + IDWriteFont *This); + + DWRITE_FONT_STRETCH (STDMETHODCALLTYPE *GetStretch)( + IDWriteFont *This); + + DWRITE_FONT_STYLE (STDMETHODCALLTYPE *GetStyle)( + IDWriteFont *This); + + WINBOOL (STDMETHODCALLTYPE *IsSymbolFont)( + IDWriteFont *This); + + HRESULT (STDMETHODCALLTYPE *GetFaceNames)( + IDWriteFont *This, + IDWriteLocalizedStrings **names); + + HRESULT (STDMETHODCALLTYPE *GetInformationalStrings)( + IDWriteFont *This, + DWRITE_INFORMATIONAL_STRING_ID stringid, + IDWriteLocalizedStrings **strings, + WINBOOL *exists); + + DWRITE_FONT_SIMULATIONS (STDMETHODCALLTYPE *GetSimulations)( + IDWriteFont *This); + + void (STDMETHODCALLTYPE *GetMetrics)( + IDWriteFont *This, + DWRITE_FONT_METRICS *metrics); + + HRESULT (STDMETHODCALLTYPE *HasCharacter)( + IDWriteFont *This, + UINT32 value, + WINBOOL *exists); + + HRESULT (STDMETHODCALLTYPE *CreateFontFace)( + IDWriteFont *This, + IDWriteFontFace **face); + + END_INTERFACE +} IDWriteFontVtbl; + +interface IDWriteFont { + CONST_VTBL IDWriteFontVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDWriteFont_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteFont_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDWriteFont_Release(This) (This)->lpVtbl->Release(This) +/*** IDWriteFont methods ***/ +#define IDWriteFont_GetFontFamily(This,family) (This)->lpVtbl->GetFontFamily(This,family) +#define IDWriteFont_GetWeight(This) (This)->lpVtbl->GetWeight(This) +#define IDWriteFont_GetStretch(This) (This)->lpVtbl->GetStretch(This) +#define IDWriteFont_GetStyle(This) (This)->lpVtbl->GetStyle(This) +#define IDWriteFont_IsSymbolFont(This) (This)->lpVtbl->IsSymbolFont(This) +#define IDWriteFont_GetFaceNames(This,names) (This)->lpVtbl->GetFaceNames(This,names) +#define IDWriteFont_GetInformationalStrings(This,stringid,strings,exists) (This)->lpVtbl->GetInformationalStrings(This,stringid,strings,exists) +#define IDWriteFont_GetSimulations(This) (This)->lpVtbl->GetSimulations(This) +#define IDWriteFont_GetMetrics(This,metrics) (This)->lpVtbl->GetMetrics(This,metrics) +#define IDWriteFont_HasCharacter(This,value,exists) (This)->lpVtbl->HasCharacter(This,value,exists) +#define IDWriteFont_CreateFontFace(This,face) (This)->lpVtbl->CreateFontFace(This,face) +#else +/*** IUnknown methods ***/ +static inline HRESULT IDWriteFont_QueryInterface(IDWriteFont* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static inline ULONG IDWriteFont_AddRef(IDWriteFont* This) { + return This->lpVtbl->AddRef(This); +} +static inline ULONG IDWriteFont_Release(IDWriteFont* This) { + return This->lpVtbl->Release(This); +} +/*** IDWriteFont methods ***/ +static inline HRESULT IDWriteFont_GetFontFamily(IDWriteFont* This,IDWriteFontFamily **family) { + return This->lpVtbl->GetFontFamily(This,family); +} +static inline DWRITE_FONT_WEIGHT IDWriteFont_GetWeight(IDWriteFont* This) { + return This->lpVtbl->GetWeight(This); +} +static inline DWRITE_FONT_STRETCH IDWriteFont_GetStretch(IDWriteFont* This) { + return This->lpVtbl->GetStretch(This); +} +static inline DWRITE_FONT_STYLE IDWriteFont_GetStyle(IDWriteFont* This) { + return This->lpVtbl->GetStyle(This); +} +static inline WINBOOL IDWriteFont_IsSymbolFont(IDWriteFont* This) { + return This->lpVtbl->IsSymbolFont(This); +} +static inline HRESULT IDWriteFont_GetFaceNames(IDWriteFont* This,IDWriteLocalizedStrings **names) { + return This->lpVtbl->GetFaceNames(This,names); +} +static inline HRESULT IDWriteFont_GetInformationalStrings(IDWriteFont* This,DWRITE_INFORMATIONAL_STRING_ID stringid,IDWriteLocalizedStrings **strings,WINBOOL *exists) { + return This->lpVtbl->GetInformationalStrings(This,stringid,strings,exists); +} +static inline DWRITE_FONT_SIMULATIONS IDWriteFont_GetSimulations(IDWriteFont* This) { + return This->lpVtbl->GetSimulations(This); +} +static inline void IDWriteFont_GetMetrics(IDWriteFont* This,DWRITE_FONT_METRICS *metrics) { + This->lpVtbl->GetMetrics(This,metrics); +} +static inline HRESULT IDWriteFont_HasCharacter(IDWriteFont* This,UINT32 value,WINBOOL *exists) { + return This->lpVtbl->HasCharacter(This,value,exists); +} +static inline HRESULT IDWriteFont_CreateFontFace(IDWriteFont* This,IDWriteFontFace **face) { + return This->lpVtbl->CreateFontFace(This,face); +} +#endif +#endif + +#endif + + +#endif /* __IDWriteFont_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IDWriteFontList interface + */ +#ifndef __IDWriteFontList_INTERFACE_DEFINED__ +#define __IDWriteFontList_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDWriteFontList, 0x1a0d8438, 0x1d97, 0x4ec1, 0xae,0xf9, 0xa2,0xfb,0x86,0xed,0x6a,0xcb); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("1a0d8438-1d97-4ec1-aef9-a2fb86ed6acb") +IDWriteFontList : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE GetFontCollection( + IDWriteFontCollection **collection) = 0; + + virtual UINT32 STDMETHODCALLTYPE GetFontCount( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetFont( + UINT32 index, + IDWriteFont **font) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDWriteFontList, 0x1a0d8438, 0x1d97, 0x4ec1, 0xae,0xf9, 0xa2,0xfb,0x86,0xed,0x6a,0xcb) +#endif +#else +typedef struct IDWriteFontListVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDWriteFontList *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDWriteFontList *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDWriteFontList *This); + + /*** IDWriteFontList methods ***/ + HRESULT (STDMETHODCALLTYPE *GetFontCollection)( + IDWriteFontList *This, + IDWriteFontCollection **collection); + + UINT32 (STDMETHODCALLTYPE *GetFontCount)( + IDWriteFontList *This); + + HRESULT (STDMETHODCALLTYPE *GetFont)( + IDWriteFontList *This, + UINT32 index, + IDWriteFont **font); + + END_INTERFACE +} IDWriteFontListVtbl; + +interface IDWriteFontList { + CONST_VTBL IDWriteFontListVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDWriteFontList_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteFontList_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDWriteFontList_Release(This) (This)->lpVtbl->Release(This) +/*** IDWriteFontList methods ***/ +#define IDWriteFontList_GetFontCollection(This,collection) (This)->lpVtbl->GetFontCollection(This,collection) +#define IDWriteFontList_GetFontCount(This) (This)->lpVtbl->GetFontCount(This) +#define IDWriteFontList_GetFont(This,index,font) (This)->lpVtbl->GetFont(This,index,font) +#else +/*** IUnknown methods ***/ +static inline HRESULT IDWriteFontList_QueryInterface(IDWriteFontList* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static inline ULONG IDWriteFontList_AddRef(IDWriteFontList* This) { + return This->lpVtbl->AddRef(This); +} +static inline ULONG IDWriteFontList_Release(IDWriteFontList* This) { + return This->lpVtbl->Release(This); +} +/*** IDWriteFontList methods ***/ +static inline HRESULT IDWriteFontList_GetFontCollection(IDWriteFontList* This,IDWriteFontCollection **collection) { + return This->lpVtbl->GetFontCollection(This,collection); +} +static inline UINT32 IDWriteFontList_GetFontCount(IDWriteFontList* This) { + return This->lpVtbl->GetFontCount(This); +} +static inline HRESULT IDWriteFontList_GetFont(IDWriteFontList* This,UINT32 index,IDWriteFont **font) { + return This->lpVtbl->GetFont(This,index,font); +} +#endif +#endif + +#endif + + +#endif /* __IDWriteFontList_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IDWriteFontFamily interface + */ +#ifndef __IDWriteFontFamily_INTERFACE_DEFINED__ +#define __IDWriteFontFamily_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDWriteFontFamily, 0xda20d8ef, 0x812a, 0x4c43, 0x98,0x02, 0x62,0xec,0x4a,0xbd,0x7a,0xdd); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("da20d8ef-812a-4c43-9802-62ec4abd7add") +IDWriteFontFamily : public IDWriteFontList +{ + virtual HRESULT STDMETHODCALLTYPE GetFamilyNames( + IDWriteLocalizedStrings **names) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetFirstMatchingFont( + DWRITE_FONT_WEIGHT weight, + DWRITE_FONT_STRETCH stretch, + DWRITE_FONT_STYLE style, + IDWriteFont **font) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetMatchingFonts( + DWRITE_FONT_WEIGHT weight, + DWRITE_FONT_STRETCH stretch, + DWRITE_FONT_STYLE style, + IDWriteFontList **fonts) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDWriteFontFamily, 0xda20d8ef, 0x812a, 0x4c43, 0x98,0x02, 0x62,0xec,0x4a,0xbd,0x7a,0xdd) +#endif +#else +typedef struct IDWriteFontFamilyVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDWriteFontFamily *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDWriteFontFamily *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDWriteFontFamily *This); + + /*** IDWriteFontList methods ***/ + HRESULT (STDMETHODCALLTYPE *GetFontCollection)( + IDWriteFontFamily *This, + IDWriteFontCollection **collection); + + UINT32 (STDMETHODCALLTYPE *GetFontCount)( + IDWriteFontFamily *This); + + HRESULT (STDMETHODCALLTYPE *GetFont)( + IDWriteFontFamily *This, + UINT32 index, + IDWriteFont **font); + + /*** IDWriteFontFamily methods ***/ + HRESULT (STDMETHODCALLTYPE *GetFamilyNames)( + IDWriteFontFamily *This, + IDWriteLocalizedStrings **names); + + HRESULT (STDMETHODCALLTYPE *GetFirstMatchingFont)( + IDWriteFontFamily *This, + DWRITE_FONT_WEIGHT weight, + DWRITE_FONT_STRETCH stretch, + DWRITE_FONT_STYLE style, + IDWriteFont **font); + + HRESULT (STDMETHODCALLTYPE *GetMatchingFonts)( + IDWriteFontFamily *This, + DWRITE_FONT_WEIGHT weight, + DWRITE_FONT_STRETCH stretch, + DWRITE_FONT_STYLE style, + IDWriteFontList **fonts); + + END_INTERFACE +} IDWriteFontFamilyVtbl; + +interface IDWriteFontFamily { + CONST_VTBL IDWriteFontFamilyVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDWriteFontFamily_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteFontFamily_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDWriteFontFamily_Release(This) (This)->lpVtbl->Release(This) +/*** IDWriteFontList methods ***/ +#define IDWriteFontFamily_GetFontCollection(This,collection) (This)->lpVtbl->GetFontCollection(This,collection) +#define IDWriteFontFamily_GetFontCount(This) (This)->lpVtbl->GetFontCount(This) +#define IDWriteFontFamily_GetFont(This,index,font) (This)->lpVtbl->GetFont(This,index,font) +/*** IDWriteFontFamily methods ***/ +#define IDWriteFontFamily_GetFamilyNames(This,names) (This)->lpVtbl->GetFamilyNames(This,names) +#define IDWriteFontFamily_GetFirstMatchingFont(This,weight,stretch,style,font) (This)->lpVtbl->GetFirstMatchingFont(This,weight,stretch,style,font) +#define IDWriteFontFamily_GetMatchingFonts(This,weight,stretch,style,fonts) (This)->lpVtbl->GetMatchingFonts(This,weight,stretch,style,fonts) +#else +/*** IUnknown methods ***/ +static inline HRESULT IDWriteFontFamily_QueryInterface(IDWriteFontFamily* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static inline ULONG IDWriteFontFamily_AddRef(IDWriteFontFamily* This) { + return This->lpVtbl->AddRef(This); +} +static inline ULONG IDWriteFontFamily_Release(IDWriteFontFamily* This) { + return This->lpVtbl->Release(This); +} +/*** IDWriteFontList methods ***/ +static inline HRESULT IDWriteFontFamily_GetFontCollection(IDWriteFontFamily* This,IDWriteFontCollection **collection) { + return This->lpVtbl->GetFontCollection(This,collection); +} +static inline UINT32 IDWriteFontFamily_GetFontCount(IDWriteFontFamily* This) { + return This->lpVtbl->GetFontCount(This); +} +static inline HRESULT IDWriteFontFamily_GetFont(IDWriteFontFamily* This,UINT32 index,IDWriteFont **font) { + return This->lpVtbl->GetFont(This,index,font); +} +/*** IDWriteFontFamily methods ***/ +static inline HRESULT IDWriteFontFamily_GetFamilyNames(IDWriteFontFamily* This,IDWriteLocalizedStrings **names) { + return This->lpVtbl->GetFamilyNames(This,names); +} +static inline HRESULT IDWriteFontFamily_GetFirstMatchingFont(IDWriteFontFamily* This,DWRITE_FONT_WEIGHT weight,DWRITE_FONT_STRETCH stretch,DWRITE_FONT_STYLE style,IDWriteFont **font) { + return This->lpVtbl->GetFirstMatchingFont(This,weight,stretch,style,font); +} +static inline HRESULT IDWriteFontFamily_GetMatchingFonts(IDWriteFontFamily* This,DWRITE_FONT_WEIGHT weight,DWRITE_FONT_STRETCH stretch,DWRITE_FONT_STYLE style,IDWriteFontList **fonts) { + return This->lpVtbl->GetMatchingFonts(This,weight,stretch,style,fonts); +} +#endif +#endif + +#endif + + +#endif /* __IDWriteFontFamily_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IDWriteFontCollection interface + */ +#ifndef __IDWriteFontCollection_INTERFACE_DEFINED__ +#define __IDWriteFontCollection_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDWriteFontCollection, 0xa84cee02, 0x3eea, 0x4eee, 0xa8,0x27, 0x87,0xc1,0xa0,0x2a,0x0f,0xcc); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("a84cee02-3eea-4eee-a827-87c1a02a0fcc") +IDWriteFontCollection : public IUnknown +{ + virtual UINT32 STDMETHODCALLTYPE GetFontFamilyCount( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetFontFamily( + UINT32 index, + IDWriteFontFamily **family) = 0; + + virtual HRESULT STDMETHODCALLTYPE FindFamilyName( + const WCHAR *name, + UINT32 *index, + WINBOOL *exists) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetFontFromFontFace( + IDWriteFontFace *face, + IDWriteFont **font) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDWriteFontCollection, 0xa84cee02, 0x3eea, 0x4eee, 0xa8,0x27, 0x87,0xc1,0xa0,0x2a,0x0f,0xcc) +#endif +#else +typedef struct IDWriteFontCollectionVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDWriteFontCollection *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDWriteFontCollection *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDWriteFontCollection *This); + + /*** IDWriteFontCollection methods ***/ + UINT32 (STDMETHODCALLTYPE *GetFontFamilyCount)( + IDWriteFontCollection *This); + + HRESULT (STDMETHODCALLTYPE *GetFontFamily)( + IDWriteFontCollection *This, + UINT32 index, + IDWriteFontFamily **family); + + HRESULT (STDMETHODCALLTYPE *FindFamilyName)( + IDWriteFontCollection *This, + const WCHAR *name, + UINT32 *index, + WINBOOL *exists); + + HRESULT (STDMETHODCALLTYPE *GetFontFromFontFace)( + IDWriteFontCollection *This, + IDWriteFontFace *face, + IDWriteFont **font); + + END_INTERFACE +} IDWriteFontCollectionVtbl; + +interface IDWriteFontCollection { + CONST_VTBL IDWriteFontCollectionVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDWriteFontCollection_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteFontCollection_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDWriteFontCollection_Release(This) (This)->lpVtbl->Release(This) +/*** IDWriteFontCollection methods ***/ +#define IDWriteFontCollection_GetFontFamilyCount(This) (This)->lpVtbl->GetFontFamilyCount(This) +#define IDWriteFontCollection_GetFontFamily(This,index,family) (This)->lpVtbl->GetFontFamily(This,index,family) +#define IDWriteFontCollection_FindFamilyName(This,name,index,exists) (This)->lpVtbl->FindFamilyName(This,name,index,exists) +#define IDWriteFontCollection_GetFontFromFontFace(This,face,font) (This)->lpVtbl->GetFontFromFontFace(This,face,font) +#else +/*** IUnknown methods ***/ +static inline HRESULT IDWriteFontCollection_QueryInterface(IDWriteFontCollection* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static inline ULONG IDWriteFontCollection_AddRef(IDWriteFontCollection* This) { + return This->lpVtbl->AddRef(This); +} +static inline ULONG IDWriteFontCollection_Release(IDWriteFontCollection* This) { + return This->lpVtbl->Release(This); +} +/*** IDWriteFontCollection methods ***/ +static inline UINT32 IDWriteFontCollection_GetFontFamilyCount(IDWriteFontCollection* This) { + return This->lpVtbl->GetFontFamilyCount(This); +} +static inline HRESULT IDWriteFontCollection_GetFontFamily(IDWriteFontCollection* This,UINT32 index,IDWriteFontFamily **family) { + return This->lpVtbl->GetFontFamily(This,index,family); +} +static inline HRESULT IDWriteFontCollection_FindFamilyName(IDWriteFontCollection* This,const WCHAR *name,UINT32 *index,WINBOOL *exists) { + return This->lpVtbl->FindFamilyName(This,name,index,exists); +} +static inline HRESULT IDWriteFontCollection_GetFontFromFontFace(IDWriteFontCollection* This,IDWriteFontFace *face,IDWriteFont **font) { + return This->lpVtbl->GetFontFromFontFace(This,face,font); +} +#endif +#endif + +#endif + + +#endif /* __IDWriteFontCollection_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IDWritePixelSnapping interface + */ +#ifndef __IDWritePixelSnapping_INTERFACE_DEFINED__ +#define __IDWritePixelSnapping_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDWritePixelSnapping, 0xeaf3a2da, 0xecf4, 0x4d24, 0xb6,0x44, 0xb3,0x4f,0x68,0x42,0x02,0x4b); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("eaf3a2da-ecf4-4d24-b644-b34f6842024b") +IDWritePixelSnapping : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE IsPixelSnappingDisabled( + void *client_drawingcontext, + WINBOOL *disabled) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetCurrentTransform( + void *client_drawingcontext, + DWRITE_MATRIX *transform) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetPixelsPerDip( + void *client_drawingcontext, + FLOAT *pixels_per_dip) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDWritePixelSnapping, 0xeaf3a2da, 0xecf4, 0x4d24, 0xb6,0x44, 0xb3,0x4f,0x68,0x42,0x02,0x4b) +#endif +#else +typedef struct IDWritePixelSnappingVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDWritePixelSnapping *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDWritePixelSnapping *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDWritePixelSnapping *This); + + /*** IDWritePixelSnapping methods ***/ + HRESULT (STDMETHODCALLTYPE *IsPixelSnappingDisabled)( + IDWritePixelSnapping *This, + void *client_drawingcontext, + WINBOOL *disabled); + + HRESULT (STDMETHODCALLTYPE *GetCurrentTransform)( + IDWritePixelSnapping *This, + void *client_drawingcontext, + DWRITE_MATRIX *transform); + + HRESULT (STDMETHODCALLTYPE *GetPixelsPerDip)( + IDWritePixelSnapping *This, + void *client_drawingcontext, + FLOAT *pixels_per_dip); + + END_INTERFACE +} IDWritePixelSnappingVtbl; + +interface IDWritePixelSnapping { + CONST_VTBL IDWritePixelSnappingVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDWritePixelSnapping_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWritePixelSnapping_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDWritePixelSnapping_Release(This) (This)->lpVtbl->Release(This) +/*** IDWritePixelSnapping methods ***/ +#define IDWritePixelSnapping_IsPixelSnappingDisabled(This,client_drawingcontext,disabled) (This)->lpVtbl->IsPixelSnappingDisabled(This,client_drawingcontext,disabled) +#define IDWritePixelSnapping_GetCurrentTransform(This,client_drawingcontext,transform) (This)->lpVtbl->GetCurrentTransform(This,client_drawingcontext,transform) +#define IDWritePixelSnapping_GetPixelsPerDip(This,client_drawingcontext,pixels_per_dip) (This)->lpVtbl->GetPixelsPerDip(This,client_drawingcontext,pixels_per_dip) +#else +/*** IUnknown methods ***/ +static inline HRESULT IDWritePixelSnapping_QueryInterface(IDWritePixelSnapping* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static inline ULONG IDWritePixelSnapping_AddRef(IDWritePixelSnapping* This) { + return This->lpVtbl->AddRef(This); +} +static inline ULONG IDWritePixelSnapping_Release(IDWritePixelSnapping* This) { + return This->lpVtbl->Release(This); +} +/*** IDWritePixelSnapping methods ***/ +static inline HRESULT IDWritePixelSnapping_IsPixelSnappingDisabled(IDWritePixelSnapping* This,void *client_drawingcontext,WINBOOL *disabled) { + return This->lpVtbl->IsPixelSnappingDisabled(This,client_drawingcontext,disabled); +} +static inline HRESULT IDWritePixelSnapping_GetCurrentTransform(IDWritePixelSnapping* This,void *client_drawingcontext,DWRITE_MATRIX *transform) { + return This->lpVtbl->GetCurrentTransform(This,client_drawingcontext,transform); +} +static inline HRESULT IDWritePixelSnapping_GetPixelsPerDip(IDWritePixelSnapping* This,void *client_drawingcontext,FLOAT *pixels_per_dip) { + return This->lpVtbl->GetPixelsPerDip(This,client_drawingcontext,pixels_per_dip); +} +#endif +#endif + +#endif + + +#endif /* __IDWritePixelSnapping_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IDWriteTextRenderer interface + */ +#ifndef __IDWriteTextRenderer_INTERFACE_DEFINED__ +#define __IDWriteTextRenderer_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDWriteTextRenderer, 0xef8a8135, 0x5cc6, 0x45fe, 0x88,0x25, 0xc5,0xa0,0x72,0x4e,0xb8,0x19); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("ef8a8135-5cc6-45fe-8825-c5a0724eb819") +IDWriteTextRenderer : public IDWritePixelSnapping +{ + virtual HRESULT STDMETHODCALLTYPE DrawGlyphRun( + void *client_drawingcontext, + FLOAT baselineOriginX, + FLOAT baselineOriginY, + DWRITE_MEASURING_MODE mode, + const DWRITE_GLYPH_RUN *glyph_run, + const DWRITE_GLYPH_RUN_DESCRIPTION *run_descr, + IUnknown *drawing_effect) = 0; + + virtual HRESULT STDMETHODCALLTYPE DrawUnderline( + void *client_drawingcontext, + FLOAT baselineOriginX, + FLOAT baselineOriginY, + const DWRITE_UNDERLINE *underline, + IUnknown *drawing_effect) = 0; + + virtual HRESULT STDMETHODCALLTYPE DrawStrikethrough( + void *client_drawingcontext, + FLOAT baselineOriginX, + FLOAT baselineOriginY, + const DWRITE_STRIKETHROUGH *strikethrough, + IUnknown *drawing_effect) = 0; + + virtual HRESULT STDMETHODCALLTYPE DrawInlineObject( + void *client_drawingcontext, + FLOAT originX, + FLOAT originY, + IDWriteInlineObject *object, + WINBOOL is_sideways, + WINBOOL is_rtl, + IUnknown *drawing_effect) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDWriteTextRenderer, 0xef8a8135, 0x5cc6, 0x45fe, 0x88,0x25, 0xc5,0xa0,0x72,0x4e,0xb8,0x19) +#endif +#else +typedef struct IDWriteTextRendererVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDWriteTextRenderer *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDWriteTextRenderer *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDWriteTextRenderer *This); + + /*** IDWritePixelSnapping methods ***/ + HRESULT (STDMETHODCALLTYPE *IsPixelSnappingDisabled)( + IDWriteTextRenderer *This, + void *client_drawingcontext, + WINBOOL *disabled); + + HRESULT (STDMETHODCALLTYPE *GetCurrentTransform)( + IDWriteTextRenderer *This, + void *client_drawingcontext, + DWRITE_MATRIX *transform); + + HRESULT (STDMETHODCALLTYPE *GetPixelsPerDip)( + IDWriteTextRenderer *This, + void *client_drawingcontext, + FLOAT *pixels_per_dip); + + /*** IDWriteTextRenderer methods ***/ + HRESULT (STDMETHODCALLTYPE *DrawGlyphRun)( + IDWriteTextRenderer *This, + void *client_drawingcontext, + FLOAT baselineOriginX, + FLOAT baselineOriginY, + DWRITE_MEASURING_MODE mode, + const DWRITE_GLYPH_RUN *glyph_run, + const DWRITE_GLYPH_RUN_DESCRIPTION *run_descr, + IUnknown *drawing_effect); + + HRESULT (STDMETHODCALLTYPE *DrawUnderline)( + IDWriteTextRenderer *This, + void *client_drawingcontext, + FLOAT baselineOriginX, + FLOAT baselineOriginY, + const DWRITE_UNDERLINE *underline, + IUnknown *drawing_effect); + + HRESULT (STDMETHODCALLTYPE *DrawStrikethrough)( + IDWriteTextRenderer *This, + void *client_drawingcontext, + FLOAT baselineOriginX, + FLOAT baselineOriginY, + const DWRITE_STRIKETHROUGH *strikethrough, + IUnknown *drawing_effect); + + HRESULT (STDMETHODCALLTYPE *DrawInlineObject)( + IDWriteTextRenderer *This, + void *client_drawingcontext, + FLOAT originX, + FLOAT originY, + IDWriteInlineObject *object, + WINBOOL is_sideways, + WINBOOL is_rtl, + IUnknown *drawing_effect); + + END_INTERFACE +} IDWriteTextRendererVtbl; + +interface IDWriteTextRenderer { + CONST_VTBL IDWriteTextRendererVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDWriteTextRenderer_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteTextRenderer_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDWriteTextRenderer_Release(This) (This)->lpVtbl->Release(This) +/*** IDWritePixelSnapping methods ***/ +#define IDWriteTextRenderer_IsPixelSnappingDisabled(This,client_drawingcontext,disabled) (This)->lpVtbl->IsPixelSnappingDisabled(This,client_drawingcontext,disabled) +#define IDWriteTextRenderer_GetCurrentTransform(This,client_drawingcontext,transform) (This)->lpVtbl->GetCurrentTransform(This,client_drawingcontext,transform) +#define IDWriteTextRenderer_GetPixelsPerDip(This,client_drawingcontext,pixels_per_dip) (This)->lpVtbl->GetPixelsPerDip(This,client_drawingcontext,pixels_per_dip) +/*** IDWriteTextRenderer methods ***/ +#define IDWriteTextRenderer_DrawGlyphRun(This,client_drawingcontext,baselineOriginX,baselineOriginY,mode,glyph_run,run_descr,drawing_effect) (This)->lpVtbl->DrawGlyphRun(This,client_drawingcontext,baselineOriginX,baselineOriginY,mode,glyph_run,run_descr,drawing_effect) +#define IDWriteTextRenderer_DrawUnderline(This,client_drawingcontext,baselineOriginX,baselineOriginY,underline,drawing_effect) (This)->lpVtbl->DrawUnderline(This,client_drawingcontext,baselineOriginX,baselineOriginY,underline,drawing_effect) +#define IDWriteTextRenderer_DrawStrikethrough(This,client_drawingcontext,baselineOriginX,baselineOriginY,strikethrough,drawing_effect) (This)->lpVtbl->DrawStrikethrough(This,client_drawingcontext,baselineOriginX,baselineOriginY,strikethrough,drawing_effect) +#define IDWriteTextRenderer_DrawInlineObject(This,client_drawingcontext,originX,originY,object,is_sideways,is_rtl,drawing_effect) (This)->lpVtbl->DrawInlineObject(This,client_drawingcontext,originX,originY,object,is_sideways,is_rtl,drawing_effect) +#else +/*** IUnknown methods ***/ +static inline HRESULT IDWriteTextRenderer_QueryInterface(IDWriteTextRenderer* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static inline ULONG IDWriteTextRenderer_AddRef(IDWriteTextRenderer* This) { + return This->lpVtbl->AddRef(This); +} +static inline ULONG IDWriteTextRenderer_Release(IDWriteTextRenderer* This) { + return This->lpVtbl->Release(This); +} +/*** IDWritePixelSnapping methods ***/ +static inline HRESULT IDWriteTextRenderer_IsPixelSnappingDisabled(IDWriteTextRenderer* This,void *client_drawingcontext,WINBOOL *disabled) { + return This->lpVtbl->IsPixelSnappingDisabled(This,client_drawingcontext,disabled); +} +static inline HRESULT IDWriteTextRenderer_GetCurrentTransform(IDWriteTextRenderer* This,void *client_drawingcontext,DWRITE_MATRIX *transform) { + return This->lpVtbl->GetCurrentTransform(This,client_drawingcontext,transform); +} +static inline HRESULT IDWriteTextRenderer_GetPixelsPerDip(IDWriteTextRenderer* This,void *client_drawingcontext,FLOAT *pixels_per_dip) { + return This->lpVtbl->GetPixelsPerDip(This,client_drawingcontext,pixels_per_dip); +} +/*** IDWriteTextRenderer methods ***/ +static inline HRESULT IDWriteTextRenderer_DrawGlyphRun(IDWriteTextRenderer* This,void *client_drawingcontext,FLOAT baselineOriginX,FLOAT baselineOriginY,DWRITE_MEASURING_MODE mode,const DWRITE_GLYPH_RUN *glyph_run,const DWRITE_GLYPH_RUN_DESCRIPTION *run_descr,IUnknown *drawing_effect) { + return This->lpVtbl->DrawGlyphRun(This,client_drawingcontext,baselineOriginX,baselineOriginY,mode,glyph_run,run_descr,drawing_effect); +} +static inline HRESULT IDWriteTextRenderer_DrawUnderline(IDWriteTextRenderer* This,void *client_drawingcontext,FLOAT baselineOriginX,FLOAT baselineOriginY,const DWRITE_UNDERLINE *underline,IUnknown *drawing_effect) { + return This->lpVtbl->DrawUnderline(This,client_drawingcontext,baselineOriginX,baselineOriginY,underline,drawing_effect); +} +static inline HRESULT IDWriteTextRenderer_DrawStrikethrough(IDWriteTextRenderer* This,void *client_drawingcontext,FLOAT baselineOriginX,FLOAT baselineOriginY,const DWRITE_STRIKETHROUGH *strikethrough,IUnknown *drawing_effect) { + return This->lpVtbl->DrawStrikethrough(This,client_drawingcontext,baselineOriginX,baselineOriginY,strikethrough,drawing_effect); +} +static inline HRESULT IDWriteTextRenderer_DrawInlineObject(IDWriteTextRenderer* This,void *client_drawingcontext,FLOAT originX,FLOAT originY,IDWriteInlineObject *object,WINBOOL is_sideways,WINBOOL is_rtl,IUnknown *drawing_effect) { + return This->lpVtbl->DrawInlineObject(This,client_drawingcontext,originX,originY,object,is_sideways,is_rtl,drawing_effect); +} +#endif +#endif + +#endif + + +#endif /* __IDWriteTextRenderer_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IDWriteInlineObject interface + */ +#ifndef __IDWriteInlineObject_INTERFACE_DEFINED__ +#define __IDWriteInlineObject_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDWriteInlineObject, 0x8339fde3, 0x106f, 0x47ab, 0x83,0x73, 0x1c,0x62,0x95,0xeb,0x10,0xb3); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("8339fde3-106f-47ab-8373-1c6295eb10b3") +IDWriteInlineObject : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE Draw( + void *client_drawingontext, + IDWriteTextRenderer *renderer, + FLOAT originX, + FLOAT originY, + WINBOOL is_sideways, + WINBOOL is_rtl, + IUnknown *drawing_effect) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetMetrics( + DWRITE_INLINE_OBJECT_METRICS *metrics) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetOverhangMetrics( + DWRITE_OVERHANG_METRICS *overhangs) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetBreakConditions( + DWRITE_BREAK_CONDITION *condition_before, + DWRITE_BREAK_CONDITION *condition_after) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDWriteInlineObject, 0x8339fde3, 0x106f, 0x47ab, 0x83,0x73, 0x1c,0x62,0x95,0xeb,0x10,0xb3) +#endif +#else +typedef struct IDWriteInlineObjectVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDWriteInlineObject *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDWriteInlineObject *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDWriteInlineObject *This); + + /*** IDWriteInlineObject methods ***/ + HRESULT (STDMETHODCALLTYPE *Draw)( + IDWriteInlineObject *This, + void *client_drawingontext, + IDWriteTextRenderer *renderer, + FLOAT originX, + FLOAT originY, + WINBOOL is_sideways, + WINBOOL is_rtl, + IUnknown *drawing_effect); + + HRESULT (STDMETHODCALLTYPE *GetMetrics)( + IDWriteInlineObject *This, + DWRITE_INLINE_OBJECT_METRICS *metrics); + + HRESULT (STDMETHODCALLTYPE *GetOverhangMetrics)( + IDWriteInlineObject *This, + DWRITE_OVERHANG_METRICS *overhangs); + + HRESULT (STDMETHODCALLTYPE *GetBreakConditions)( + IDWriteInlineObject *This, + DWRITE_BREAK_CONDITION *condition_before, + DWRITE_BREAK_CONDITION *condition_after); + + END_INTERFACE +} IDWriteInlineObjectVtbl; + +interface IDWriteInlineObject { + CONST_VTBL IDWriteInlineObjectVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDWriteInlineObject_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteInlineObject_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDWriteInlineObject_Release(This) (This)->lpVtbl->Release(This) +/*** IDWriteInlineObject methods ***/ +#define IDWriteInlineObject_Draw(This,client_drawingontext,renderer,originX,originY,is_sideways,is_rtl,drawing_effect) (This)->lpVtbl->Draw(This,client_drawingontext,renderer,originX,originY,is_sideways,is_rtl,drawing_effect) +#define IDWriteInlineObject_GetMetrics(This,metrics) (This)->lpVtbl->GetMetrics(This,metrics) +#define IDWriteInlineObject_GetOverhangMetrics(This,overhangs) (This)->lpVtbl->GetOverhangMetrics(This,overhangs) +#define IDWriteInlineObject_GetBreakConditions(This,condition_before,condition_after) (This)->lpVtbl->GetBreakConditions(This,condition_before,condition_after) +#else +/*** IUnknown methods ***/ +static inline HRESULT IDWriteInlineObject_QueryInterface(IDWriteInlineObject* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static inline ULONG IDWriteInlineObject_AddRef(IDWriteInlineObject* This) { + return This->lpVtbl->AddRef(This); +} +static inline ULONG IDWriteInlineObject_Release(IDWriteInlineObject* This) { + return This->lpVtbl->Release(This); +} +/*** IDWriteInlineObject methods ***/ +static inline HRESULT IDWriteInlineObject_Draw(IDWriteInlineObject* This,void *client_drawingontext,IDWriteTextRenderer *renderer,FLOAT originX,FLOAT originY,WINBOOL is_sideways,WINBOOL is_rtl,IUnknown *drawing_effect) { + return This->lpVtbl->Draw(This,client_drawingontext,renderer,originX,originY,is_sideways,is_rtl,drawing_effect); +} +static inline HRESULT IDWriteInlineObject_GetMetrics(IDWriteInlineObject* This,DWRITE_INLINE_OBJECT_METRICS *metrics) { + return This->lpVtbl->GetMetrics(This,metrics); +} +static inline HRESULT IDWriteInlineObject_GetOverhangMetrics(IDWriteInlineObject* This,DWRITE_OVERHANG_METRICS *overhangs) { + return This->lpVtbl->GetOverhangMetrics(This,overhangs); +} +static inline HRESULT IDWriteInlineObject_GetBreakConditions(IDWriteInlineObject* This,DWRITE_BREAK_CONDITION *condition_before,DWRITE_BREAK_CONDITION *condition_after) { + return This->lpVtbl->GetBreakConditions(This,condition_before,condition_after); +} +#endif +#endif + +#endif + + +#endif /* __IDWriteInlineObject_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IDWriteTextFormat interface + */ +#ifndef __IDWriteTextFormat_INTERFACE_DEFINED__ +#define __IDWriteTextFormat_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDWriteTextFormat, 0x9c906818, 0x31d7, 0x4fd3, 0xa1,0x51, 0x7c,0x5e,0x22,0x5d,0xb5,0x5a); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("9c906818-31d7-4fd3-a151-7c5e225db55a") +IDWriteTextFormat : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE SetTextAlignment( + DWRITE_TEXT_ALIGNMENT alignment) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetParagraphAlignment( + DWRITE_PARAGRAPH_ALIGNMENT alignment) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetWordWrapping( + DWRITE_WORD_WRAPPING wrapping) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetReadingDirection( + DWRITE_READING_DIRECTION direction) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetFlowDirection( + DWRITE_FLOW_DIRECTION direction) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetIncrementalTabStop( + FLOAT tabstop) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetTrimming( + const DWRITE_TRIMMING *trimming, + IDWriteInlineObject *trimming_sign) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetLineSpacing( + DWRITE_LINE_SPACING_METHOD spacing, + FLOAT line_spacing, + FLOAT baseline) = 0; + + virtual DWRITE_TEXT_ALIGNMENT STDMETHODCALLTYPE GetTextAlignment( + ) = 0; + + virtual DWRITE_PARAGRAPH_ALIGNMENT STDMETHODCALLTYPE GetParagraphAlignment( + ) = 0; + + virtual DWRITE_WORD_WRAPPING STDMETHODCALLTYPE GetWordWrapping( + ) = 0; + + virtual DWRITE_READING_DIRECTION STDMETHODCALLTYPE GetReadingDirection( + ) = 0; + + virtual DWRITE_FLOW_DIRECTION STDMETHODCALLTYPE GetFlowDirection( + ) = 0; + + virtual FLOAT STDMETHODCALLTYPE GetIncrementalTabStop( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetTrimming( + DWRITE_TRIMMING *options, + IDWriteInlineObject **trimming_sign) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetLineSpacing( + DWRITE_LINE_SPACING_METHOD *method, + FLOAT *spacing, + FLOAT *baseline) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetFontCollection( + IDWriteFontCollection **collection) = 0; + + virtual UINT32 STDMETHODCALLTYPE GetFontFamilyNameLength( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetFontFamilyName( + WCHAR *name, + UINT32 size) = 0; + + virtual DWRITE_FONT_WEIGHT STDMETHODCALLTYPE GetFontWeight( + ) = 0; + + virtual DWRITE_FONT_STYLE STDMETHODCALLTYPE GetFontStyle( + ) = 0; + + virtual DWRITE_FONT_STRETCH STDMETHODCALLTYPE GetFontStretch( + ) = 0; + + virtual FLOAT STDMETHODCALLTYPE GetFontSize( + ) = 0; + + virtual UINT32 STDMETHODCALLTYPE GetLocaleNameLength( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetLocaleName( + WCHAR *name, + UINT32 size) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDWriteTextFormat, 0x9c906818, 0x31d7, 0x4fd3, 0xa1,0x51, 0x7c,0x5e,0x22,0x5d,0xb5,0x5a) +#endif +#else +typedef struct IDWriteTextFormatVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDWriteTextFormat *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDWriteTextFormat *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDWriteTextFormat *This); + + /*** IDWriteTextFormat methods ***/ + HRESULT (STDMETHODCALLTYPE *SetTextAlignment)( + IDWriteTextFormat *This, + DWRITE_TEXT_ALIGNMENT alignment); + + HRESULT (STDMETHODCALLTYPE *SetParagraphAlignment)( + IDWriteTextFormat *This, + DWRITE_PARAGRAPH_ALIGNMENT alignment); + + HRESULT (STDMETHODCALLTYPE *SetWordWrapping)( + IDWriteTextFormat *This, + DWRITE_WORD_WRAPPING wrapping); + + HRESULT (STDMETHODCALLTYPE *SetReadingDirection)( + IDWriteTextFormat *This, + DWRITE_READING_DIRECTION direction); + + HRESULT (STDMETHODCALLTYPE *SetFlowDirection)( + IDWriteTextFormat *This, + DWRITE_FLOW_DIRECTION direction); + + HRESULT (STDMETHODCALLTYPE *SetIncrementalTabStop)( + IDWriteTextFormat *This, + FLOAT tabstop); + + HRESULT (STDMETHODCALLTYPE *SetTrimming)( + IDWriteTextFormat *This, + const DWRITE_TRIMMING *trimming, + IDWriteInlineObject *trimming_sign); + + HRESULT (STDMETHODCALLTYPE *SetLineSpacing)( + IDWriteTextFormat *This, + DWRITE_LINE_SPACING_METHOD spacing, + FLOAT line_spacing, + FLOAT baseline); + + DWRITE_TEXT_ALIGNMENT (STDMETHODCALLTYPE *GetTextAlignment)( + IDWriteTextFormat *This); + + DWRITE_PARAGRAPH_ALIGNMENT (STDMETHODCALLTYPE *GetParagraphAlignment)( + IDWriteTextFormat *This); + + DWRITE_WORD_WRAPPING (STDMETHODCALLTYPE *GetWordWrapping)( + IDWriteTextFormat *This); + + DWRITE_READING_DIRECTION (STDMETHODCALLTYPE *GetReadingDirection)( + IDWriteTextFormat *This); + + DWRITE_FLOW_DIRECTION (STDMETHODCALLTYPE *GetFlowDirection)( + IDWriteTextFormat *This); + + FLOAT (STDMETHODCALLTYPE *GetIncrementalTabStop)( + IDWriteTextFormat *This); + + HRESULT (STDMETHODCALLTYPE *GetTrimming)( + IDWriteTextFormat *This, + DWRITE_TRIMMING *options, + IDWriteInlineObject **trimming_sign); + + HRESULT (STDMETHODCALLTYPE *GetLineSpacing)( + IDWriteTextFormat *This, + DWRITE_LINE_SPACING_METHOD *method, + FLOAT *spacing, + FLOAT *baseline); + + HRESULT (STDMETHODCALLTYPE *GetFontCollection)( + IDWriteTextFormat *This, + IDWriteFontCollection **collection); + + UINT32 (STDMETHODCALLTYPE *GetFontFamilyNameLength)( + IDWriteTextFormat *This); + + HRESULT (STDMETHODCALLTYPE *GetFontFamilyName)( + IDWriteTextFormat *This, + WCHAR *name, + UINT32 size); + + DWRITE_FONT_WEIGHT (STDMETHODCALLTYPE *GetFontWeight)( + IDWriteTextFormat *This); + + DWRITE_FONT_STYLE (STDMETHODCALLTYPE *GetFontStyle)( + IDWriteTextFormat *This); + + DWRITE_FONT_STRETCH (STDMETHODCALLTYPE *GetFontStretch)( + IDWriteTextFormat *This); + + FLOAT (STDMETHODCALLTYPE *GetFontSize)( + IDWriteTextFormat *This); + + UINT32 (STDMETHODCALLTYPE *GetLocaleNameLength)( + IDWriteTextFormat *This); + + HRESULT (STDMETHODCALLTYPE *GetLocaleName)( + IDWriteTextFormat *This, + WCHAR *name, + UINT32 size); + + END_INTERFACE +} IDWriteTextFormatVtbl; + +interface IDWriteTextFormat { + CONST_VTBL IDWriteTextFormatVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDWriteTextFormat_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteTextFormat_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDWriteTextFormat_Release(This) (This)->lpVtbl->Release(This) +/*** IDWriteTextFormat methods ***/ +#define IDWriteTextFormat_SetTextAlignment(This,alignment) (This)->lpVtbl->SetTextAlignment(This,alignment) +#define IDWriteTextFormat_SetParagraphAlignment(This,alignment) (This)->lpVtbl->SetParagraphAlignment(This,alignment) +#define IDWriteTextFormat_SetWordWrapping(This,wrapping) (This)->lpVtbl->SetWordWrapping(This,wrapping) +#define IDWriteTextFormat_SetReadingDirection(This,direction) (This)->lpVtbl->SetReadingDirection(This,direction) +#define IDWriteTextFormat_SetFlowDirection(This,direction) (This)->lpVtbl->SetFlowDirection(This,direction) +#define IDWriteTextFormat_SetIncrementalTabStop(This,tabstop) (This)->lpVtbl->SetIncrementalTabStop(This,tabstop) +#define IDWriteTextFormat_SetTrimming(This,trimming,trimming_sign) (This)->lpVtbl->SetTrimming(This,trimming,trimming_sign) +#define IDWriteTextFormat_SetLineSpacing(This,spacing,line_spacing,baseline) (This)->lpVtbl->SetLineSpacing(This,spacing,line_spacing,baseline) +#define IDWriteTextFormat_GetTextAlignment(This) (This)->lpVtbl->GetTextAlignment(This) +#define IDWriteTextFormat_GetParagraphAlignment(This) (This)->lpVtbl->GetParagraphAlignment(This) +#define IDWriteTextFormat_GetWordWrapping(This) (This)->lpVtbl->GetWordWrapping(This) +#define IDWriteTextFormat_GetReadingDirection(This) (This)->lpVtbl->GetReadingDirection(This) +#define IDWriteTextFormat_GetFlowDirection(This) (This)->lpVtbl->GetFlowDirection(This) +#define IDWriteTextFormat_GetIncrementalTabStop(This) (This)->lpVtbl->GetIncrementalTabStop(This) +#define IDWriteTextFormat_GetTrimming(This,options,trimming_sign) (This)->lpVtbl->GetTrimming(This,options,trimming_sign) +#define IDWriteTextFormat_GetLineSpacing(This,method,spacing,baseline) (This)->lpVtbl->GetLineSpacing(This,method,spacing,baseline) +#define IDWriteTextFormat_GetFontCollection(This,collection) (This)->lpVtbl->GetFontCollection(This,collection) +#define IDWriteTextFormat_GetFontFamilyNameLength(This) (This)->lpVtbl->GetFontFamilyNameLength(This) +#define IDWriteTextFormat_GetFontFamilyName(This,name,size) (This)->lpVtbl->GetFontFamilyName(This,name,size) +#define IDWriteTextFormat_GetFontWeight(This) (This)->lpVtbl->GetFontWeight(This) +#define IDWriteTextFormat_GetFontStyle(This) (This)->lpVtbl->GetFontStyle(This) +#define IDWriteTextFormat_GetFontStretch(This) (This)->lpVtbl->GetFontStretch(This) +#define IDWriteTextFormat_GetFontSize(This) (This)->lpVtbl->GetFontSize(This) +#define IDWriteTextFormat_GetLocaleNameLength(This) (This)->lpVtbl->GetLocaleNameLength(This) +#define IDWriteTextFormat_GetLocaleName(This,name,size) (This)->lpVtbl->GetLocaleName(This,name,size) +#else +/*** IUnknown methods ***/ +static inline HRESULT IDWriteTextFormat_QueryInterface(IDWriteTextFormat* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static inline ULONG IDWriteTextFormat_AddRef(IDWriteTextFormat* This) { + return This->lpVtbl->AddRef(This); +} +static inline ULONG IDWriteTextFormat_Release(IDWriteTextFormat* This) { + return This->lpVtbl->Release(This); +} +/*** IDWriteTextFormat methods ***/ +static inline HRESULT IDWriteTextFormat_SetTextAlignment(IDWriteTextFormat* This,DWRITE_TEXT_ALIGNMENT alignment) { + return This->lpVtbl->SetTextAlignment(This,alignment); +} +static inline HRESULT IDWriteTextFormat_SetParagraphAlignment(IDWriteTextFormat* This,DWRITE_PARAGRAPH_ALIGNMENT alignment) { + return This->lpVtbl->SetParagraphAlignment(This,alignment); +} +static inline HRESULT IDWriteTextFormat_SetWordWrapping(IDWriteTextFormat* This,DWRITE_WORD_WRAPPING wrapping) { + return This->lpVtbl->SetWordWrapping(This,wrapping); +} +static inline HRESULT IDWriteTextFormat_SetReadingDirection(IDWriteTextFormat* This,DWRITE_READING_DIRECTION direction) { + return This->lpVtbl->SetReadingDirection(This,direction); +} +static inline HRESULT IDWriteTextFormat_SetFlowDirection(IDWriteTextFormat* This,DWRITE_FLOW_DIRECTION direction) { + return This->lpVtbl->SetFlowDirection(This,direction); +} +static inline HRESULT IDWriteTextFormat_SetIncrementalTabStop(IDWriteTextFormat* This,FLOAT tabstop) { + return This->lpVtbl->SetIncrementalTabStop(This,tabstop); +} +static inline HRESULT IDWriteTextFormat_SetTrimming(IDWriteTextFormat* This,const DWRITE_TRIMMING *trimming,IDWriteInlineObject *trimming_sign) { + return This->lpVtbl->SetTrimming(This,trimming,trimming_sign); +} +static inline HRESULT IDWriteTextFormat_SetLineSpacing(IDWriteTextFormat* This,DWRITE_LINE_SPACING_METHOD spacing,FLOAT line_spacing,FLOAT baseline) { + return This->lpVtbl->SetLineSpacing(This,spacing,line_spacing,baseline); +} +static inline DWRITE_TEXT_ALIGNMENT IDWriteTextFormat_GetTextAlignment(IDWriteTextFormat* This) { + return This->lpVtbl->GetTextAlignment(This); +} +static inline DWRITE_PARAGRAPH_ALIGNMENT IDWriteTextFormat_GetParagraphAlignment(IDWriteTextFormat* This) { + return This->lpVtbl->GetParagraphAlignment(This); +} +static inline DWRITE_WORD_WRAPPING IDWriteTextFormat_GetWordWrapping(IDWriteTextFormat* This) { + return This->lpVtbl->GetWordWrapping(This); +} +static inline DWRITE_READING_DIRECTION IDWriteTextFormat_GetReadingDirection(IDWriteTextFormat* This) { + return This->lpVtbl->GetReadingDirection(This); +} +static inline DWRITE_FLOW_DIRECTION IDWriteTextFormat_GetFlowDirection(IDWriteTextFormat* This) { + return This->lpVtbl->GetFlowDirection(This); +} +static inline FLOAT IDWriteTextFormat_GetIncrementalTabStop(IDWriteTextFormat* This) { + return This->lpVtbl->GetIncrementalTabStop(This); +} +static inline HRESULT IDWriteTextFormat_GetTrimming(IDWriteTextFormat* This,DWRITE_TRIMMING *options,IDWriteInlineObject **trimming_sign) { + return This->lpVtbl->GetTrimming(This,options,trimming_sign); +} +static inline HRESULT IDWriteTextFormat_GetLineSpacing(IDWriteTextFormat* This,DWRITE_LINE_SPACING_METHOD *method,FLOAT *spacing,FLOAT *baseline) { + return This->lpVtbl->GetLineSpacing(This,method,spacing,baseline); +} +static inline HRESULT IDWriteTextFormat_GetFontCollection(IDWriteTextFormat* This,IDWriteFontCollection **collection) { + return This->lpVtbl->GetFontCollection(This,collection); +} +static inline UINT32 IDWriteTextFormat_GetFontFamilyNameLength(IDWriteTextFormat* This) { + return This->lpVtbl->GetFontFamilyNameLength(This); +} +static inline HRESULT IDWriteTextFormat_GetFontFamilyName(IDWriteTextFormat* This,WCHAR *name,UINT32 size) { + return This->lpVtbl->GetFontFamilyName(This,name,size); +} +static inline DWRITE_FONT_WEIGHT IDWriteTextFormat_GetFontWeight(IDWriteTextFormat* This) { + return This->lpVtbl->GetFontWeight(This); +} +static inline DWRITE_FONT_STYLE IDWriteTextFormat_GetFontStyle(IDWriteTextFormat* This) { + return This->lpVtbl->GetFontStyle(This); +} +static inline DWRITE_FONT_STRETCH IDWriteTextFormat_GetFontStretch(IDWriteTextFormat* This) { + return This->lpVtbl->GetFontStretch(This); +} +static inline FLOAT IDWriteTextFormat_GetFontSize(IDWriteTextFormat* This) { + return This->lpVtbl->GetFontSize(This); +} +static inline UINT32 IDWriteTextFormat_GetLocaleNameLength(IDWriteTextFormat* This) { + return This->lpVtbl->GetLocaleNameLength(This); +} +static inline HRESULT IDWriteTextFormat_GetLocaleName(IDWriteTextFormat* This,WCHAR *name,UINT32 size) { + return This->lpVtbl->GetLocaleName(This,name,size); +} +#endif +#endif + +#endif + + +#endif /* __IDWriteTextFormat_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IDWriteTypography interface + */ +#ifndef __IDWriteTypography_INTERFACE_DEFINED__ +#define __IDWriteTypography_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDWriteTypography, 0x55f1112b, 0x1dc2, 0x4b3c, 0x95,0x41, 0xf4,0x68,0x94,0xed,0x85,0xb6); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("55f1112b-1dc2-4b3c-9541-f46894ed85b6") +IDWriteTypography : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE AddFontFeature( + DWRITE_FONT_FEATURE feature) = 0; + + virtual UINT32 STDMETHODCALLTYPE GetFontFeatureCount( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetFontFeature( + UINT32 index, + DWRITE_FONT_FEATURE *feature) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDWriteTypography, 0x55f1112b, 0x1dc2, 0x4b3c, 0x95,0x41, 0xf4,0x68,0x94,0xed,0x85,0xb6) +#endif +#else +typedef struct IDWriteTypographyVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDWriteTypography *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDWriteTypography *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDWriteTypography *This); + + /*** IDWriteTypography methods ***/ + HRESULT (STDMETHODCALLTYPE *AddFontFeature)( + IDWriteTypography *This, + DWRITE_FONT_FEATURE feature); + + UINT32 (STDMETHODCALLTYPE *GetFontFeatureCount)( + IDWriteTypography *This); + + HRESULT (STDMETHODCALLTYPE *GetFontFeature)( + IDWriteTypography *This, + UINT32 index, + DWRITE_FONT_FEATURE *feature); + + END_INTERFACE +} IDWriteTypographyVtbl; + +interface IDWriteTypography { + CONST_VTBL IDWriteTypographyVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDWriteTypography_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteTypography_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDWriteTypography_Release(This) (This)->lpVtbl->Release(This) +/*** IDWriteTypography methods ***/ +#define IDWriteTypography_AddFontFeature(This,feature) (This)->lpVtbl->AddFontFeature(This,feature) +#define IDWriteTypography_GetFontFeatureCount(This) (This)->lpVtbl->GetFontFeatureCount(This) +#define IDWriteTypography_GetFontFeature(This,index,feature) (This)->lpVtbl->GetFontFeature(This,index,feature) +#else +/*** IUnknown methods ***/ +static inline HRESULT IDWriteTypography_QueryInterface(IDWriteTypography* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static inline ULONG IDWriteTypography_AddRef(IDWriteTypography* This) { + return This->lpVtbl->AddRef(This); +} +static inline ULONG IDWriteTypography_Release(IDWriteTypography* This) { + return This->lpVtbl->Release(This); +} +/*** IDWriteTypography methods ***/ +static inline HRESULT IDWriteTypography_AddFontFeature(IDWriteTypography* This,DWRITE_FONT_FEATURE feature) { + return This->lpVtbl->AddFontFeature(This,feature); +} +static inline UINT32 IDWriteTypography_GetFontFeatureCount(IDWriteTypography* This) { + return This->lpVtbl->GetFontFeatureCount(This); +} +static inline HRESULT IDWriteTypography_GetFontFeature(IDWriteTypography* This,UINT32 index,DWRITE_FONT_FEATURE *feature) { + return This->lpVtbl->GetFontFeature(This,index,feature); +} +#endif +#endif + +#endif + + +#endif /* __IDWriteTypography_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IDWriteBitmapRenderTarget interface + */ +#ifndef __IDWriteBitmapRenderTarget_INTERFACE_DEFINED__ +#define __IDWriteBitmapRenderTarget_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDWriteBitmapRenderTarget, 0x5e5a32a3, 0x8dff, 0x4773, 0x9f,0xf6, 0x06,0x96,0xea,0xb7,0x72,0x67); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("5e5a32a3-8dff-4773-9ff6-0696eab77267") +IDWriteBitmapRenderTarget : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE DrawGlyphRun( + FLOAT baselineOriginX, + FLOAT baselineOriginY, + DWRITE_MEASURING_MODE measuring_mode, + const DWRITE_GLYPH_RUN *glyph_run, + IDWriteRenderingParams *params, + COLORREF textColor, + RECT *blackbox_rect = 0) = 0; + + virtual HDC STDMETHODCALLTYPE GetMemoryDC( + ) = 0; + + virtual FLOAT STDMETHODCALLTYPE GetPixelsPerDip( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetPixelsPerDip( + FLOAT pixels_per_dip) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetCurrentTransform( + DWRITE_MATRIX *transform) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetCurrentTransform( + const DWRITE_MATRIX *transform) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetSize( + SIZE *size) = 0; + + virtual HRESULT STDMETHODCALLTYPE Resize( + UINT32 width, + UINT32 height) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDWriteBitmapRenderTarget, 0x5e5a32a3, 0x8dff, 0x4773, 0x9f,0xf6, 0x06,0x96,0xea,0xb7,0x72,0x67) +#endif +#else +typedef struct IDWriteBitmapRenderTargetVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDWriteBitmapRenderTarget *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDWriteBitmapRenderTarget *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDWriteBitmapRenderTarget *This); + + /*** IDWriteBitmapRenderTarget methods ***/ + HRESULT (STDMETHODCALLTYPE *DrawGlyphRun)( + IDWriteBitmapRenderTarget *This, + FLOAT baselineOriginX, + FLOAT baselineOriginY, + DWRITE_MEASURING_MODE measuring_mode, + const DWRITE_GLYPH_RUN *glyph_run, + IDWriteRenderingParams *params, + COLORREF textColor, + RECT *blackbox_rect); + + HDC (STDMETHODCALLTYPE *GetMemoryDC)( + IDWriteBitmapRenderTarget *This); + + FLOAT (STDMETHODCALLTYPE *GetPixelsPerDip)( + IDWriteBitmapRenderTarget *This); + + HRESULT (STDMETHODCALLTYPE *SetPixelsPerDip)( + IDWriteBitmapRenderTarget *This, + FLOAT pixels_per_dip); + + HRESULT (STDMETHODCALLTYPE *GetCurrentTransform)( + IDWriteBitmapRenderTarget *This, + DWRITE_MATRIX *transform); + + HRESULT (STDMETHODCALLTYPE *SetCurrentTransform)( + IDWriteBitmapRenderTarget *This, + const DWRITE_MATRIX *transform); + + HRESULT (STDMETHODCALLTYPE *GetSize)( + IDWriteBitmapRenderTarget *This, + SIZE *size); + + HRESULT (STDMETHODCALLTYPE *Resize)( + IDWriteBitmapRenderTarget *This, + UINT32 width, + UINT32 height); + + END_INTERFACE +} IDWriteBitmapRenderTargetVtbl; + +interface IDWriteBitmapRenderTarget { + CONST_VTBL IDWriteBitmapRenderTargetVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDWriteBitmapRenderTarget_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteBitmapRenderTarget_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDWriteBitmapRenderTarget_Release(This) (This)->lpVtbl->Release(This) +/*** IDWriteBitmapRenderTarget methods ***/ +#define IDWriteBitmapRenderTarget_DrawGlyphRun(This,baselineOriginX,baselineOriginY,measuring_mode,glyph_run,params,textColor,blackbox_rect) (This)->lpVtbl->DrawGlyphRun(This,baselineOriginX,baselineOriginY,measuring_mode,glyph_run,params,textColor,blackbox_rect) +#define IDWriteBitmapRenderTarget_GetMemoryDC(This) (This)->lpVtbl->GetMemoryDC(This) +#define IDWriteBitmapRenderTarget_GetPixelsPerDip(This) (This)->lpVtbl->GetPixelsPerDip(This) +#define IDWriteBitmapRenderTarget_SetPixelsPerDip(This,pixels_per_dip) (This)->lpVtbl->SetPixelsPerDip(This,pixels_per_dip) +#define IDWriteBitmapRenderTarget_GetCurrentTransform(This,transform) (This)->lpVtbl->GetCurrentTransform(This,transform) +#define IDWriteBitmapRenderTarget_SetCurrentTransform(This,transform) (This)->lpVtbl->SetCurrentTransform(This,transform) +#define IDWriteBitmapRenderTarget_GetSize(This,size) (This)->lpVtbl->GetSize(This,size) +#define IDWriteBitmapRenderTarget_Resize(This,width,height) (This)->lpVtbl->Resize(This,width,height) +#else +/*** IUnknown methods ***/ +static inline HRESULT IDWriteBitmapRenderTarget_QueryInterface(IDWriteBitmapRenderTarget* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static inline ULONG IDWriteBitmapRenderTarget_AddRef(IDWriteBitmapRenderTarget* This) { + return This->lpVtbl->AddRef(This); +} +static inline ULONG IDWriteBitmapRenderTarget_Release(IDWriteBitmapRenderTarget* This) { + return This->lpVtbl->Release(This); +} +/*** IDWriteBitmapRenderTarget methods ***/ +static inline HRESULT IDWriteBitmapRenderTarget_DrawGlyphRun(IDWriteBitmapRenderTarget* This,FLOAT baselineOriginX,FLOAT baselineOriginY,DWRITE_MEASURING_MODE measuring_mode,const DWRITE_GLYPH_RUN *glyph_run,IDWriteRenderingParams *params,COLORREF textColor,RECT *blackbox_rect) { + return This->lpVtbl->DrawGlyphRun(This,baselineOriginX,baselineOriginY,measuring_mode,glyph_run,params,textColor,blackbox_rect); +} +static inline HDC IDWriteBitmapRenderTarget_GetMemoryDC(IDWriteBitmapRenderTarget* This) { + return This->lpVtbl->GetMemoryDC(This); +} +static inline FLOAT IDWriteBitmapRenderTarget_GetPixelsPerDip(IDWriteBitmapRenderTarget* This) { + return This->lpVtbl->GetPixelsPerDip(This); +} +static inline HRESULT IDWriteBitmapRenderTarget_SetPixelsPerDip(IDWriteBitmapRenderTarget* This,FLOAT pixels_per_dip) { + return This->lpVtbl->SetPixelsPerDip(This,pixels_per_dip); +} +static inline HRESULT IDWriteBitmapRenderTarget_GetCurrentTransform(IDWriteBitmapRenderTarget* This,DWRITE_MATRIX *transform) { + return This->lpVtbl->GetCurrentTransform(This,transform); +} +static inline HRESULT IDWriteBitmapRenderTarget_SetCurrentTransform(IDWriteBitmapRenderTarget* This,const DWRITE_MATRIX *transform) { + return This->lpVtbl->SetCurrentTransform(This,transform); +} +static inline HRESULT IDWriteBitmapRenderTarget_GetSize(IDWriteBitmapRenderTarget* This,SIZE *size) { + return This->lpVtbl->GetSize(This,size); +} +static inline HRESULT IDWriteBitmapRenderTarget_Resize(IDWriteBitmapRenderTarget* This,UINT32 width,UINT32 height) { + return This->lpVtbl->Resize(This,width,height); +} +#endif +#endif + +#endif + + +#endif /* __IDWriteBitmapRenderTarget_INTERFACE_DEFINED__ */ + +#ifndef _WINGDI_ +typedef struct tagLOGFONTW { + LONG lfHeight; + LONG lfWidth; + LONG lfEscapement; + LONG lfOrientation; + LONG lfWeight; + BYTE lfItalic; + BYTE lfUnderline; + BYTE lfStrikeOut; + BYTE lfCharSet; + BYTE lfOutPrecision; + BYTE lfClipPrecision; + BYTE lfQuality; + BYTE lfPitchAndFamily; + WCHAR lfFaceName[32]; +} LOGFONTW; +typedef struct tagLOGFONTW *PLOGFONTW; +typedef struct tagLOGFONTW *LPLOGFONTW; +#endif /* _WINGDI_ */ +/***************************************************************************** + * IDWriteGdiInterop interface + */ +#ifndef __IDWriteGdiInterop_INTERFACE_DEFINED__ +#define __IDWriteGdiInterop_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDWriteGdiInterop, 0x1edd9491, 0x9853, 0x4299, 0x89,0x8f, 0x64,0x32,0x98,0x3b,0x6f,0x3a); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("1edd9491-9853-4299-898f-6432983b6f3a") +IDWriteGdiInterop : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE CreateFontFromLOGFONT( + const LOGFONTW *logfont, + IDWriteFont **font) = 0; + + virtual HRESULT STDMETHODCALLTYPE ConvertFontToLOGFONT( + IDWriteFont *font, + LOGFONTW *logfont, + WINBOOL *is_systemfont) = 0; + + virtual HRESULT STDMETHODCALLTYPE ConvertFontFaceToLOGFONT( + IDWriteFontFace *font, + LOGFONTW *logfont) = 0; + + virtual HRESULT STDMETHODCALLTYPE CreateFontFaceFromHdc( + HDC hdc, + IDWriteFontFace **fontface) = 0; + + virtual HRESULT STDMETHODCALLTYPE CreateBitmapRenderTarget( + HDC hdc, + UINT32 width, + UINT32 height, + IDWriteBitmapRenderTarget **target) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDWriteGdiInterop, 0x1edd9491, 0x9853, 0x4299, 0x89,0x8f, 0x64,0x32,0x98,0x3b,0x6f,0x3a) +#endif +#else +typedef struct IDWriteGdiInteropVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDWriteGdiInterop *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDWriteGdiInterop *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDWriteGdiInterop *This); + + /*** IDWriteGdiInterop methods ***/ + HRESULT (STDMETHODCALLTYPE *CreateFontFromLOGFONT)( + IDWriteGdiInterop *This, + const LOGFONTW *logfont, + IDWriteFont **font); + + HRESULT (STDMETHODCALLTYPE *ConvertFontToLOGFONT)( + IDWriteGdiInterop *This, + IDWriteFont *font, + LOGFONTW *logfont, + WINBOOL *is_systemfont); + + HRESULT (STDMETHODCALLTYPE *ConvertFontFaceToLOGFONT)( + IDWriteGdiInterop *This, + IDWriteFontFace *font, + LOGFONTW *logfont); + + HRESULT (STDMETHODCALLTYPE *CreateFontFaceFromHdc)( + IDWriteGdiInterop *This, + HDC hdc, + IDWriteFontFace **fontface); + + HRESULT (STDMETHODCALLTYPE *CreateBitmapRenderTarget)( + IDWriteGdiInterop *This, + HDC hdc, + UINT32 width, + UINT32 height, + IDWriteBitmapRenderTarget **target); + + END_INTERFACE +} IDWriteGdiInteropVtbl; + +interface IDWriteGdiInterop { + CONST_VTBL IDWriteGdiInteropVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDWriteGdiInterop_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteGdiInterop_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDWriteGdiInterop_Release(This) (This)->lpVtbl->Release(This) +/*** IDWriteGdiInterop methods ***/ +#define IDWriteGdiInterop_CreateFontFromLOGFONT(This,logfont,font) (This)->lpVtbl->CreateFontFromLOGFONT(This,logfont,font) +#define IDWriteGdiInterop_ConvertFontToLOGFONT(This,font,logfont,is_systemfont) (This)->lpVtbl->ConvertFontToLOGFONT(This,font,logfont,is_systemfont) +#define IDWriteGdiInterop_ConvertFontFaceToLOGFONT(This,font,logfont) (This)->lpVtbl->ConvertFontFaceToLOGFONT(This,font,logfont) +#define IDWriteGdiInterop_CreateFontFaceFromHdc(This,hdc,fontface) (This)->lpVtbl->CreateFontFaceFromHdc(This,hdc,fontface) +#define IDWriteGdiInterop_CreateBitmapRenderTarget(This,hdc,width,height,target) (This)->lpVtbl->CreateBitmapRenderTarget(This,hdc,width,height,target) +#else +/*** IUnknown methods ***/ +static inline HRESULT IDWriteGdiInterop_QueryInterface(IDWriteGdiInterop* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static inline ULONG IDWriteGdiInterop_AddRef(IDWriteGdiInterop* This) { + return This->lpVtbl->AddRef(This); +} +static inline ULONG IDWriteGdiInterop_Release(IDWriteGdiInterop* This) { + return This->lpVtbl->Release(This); +} +/*** IDWriteGdiInterop methods ***/ +static inline HRESULT IDWriteGdiInterop_CreateFontFromLOGFONT(IDWriteGdiInterop* This,const LOGFONTW *logfont,IDWriteFont **font) { + return This->lpVtbl->CreateFontFromLOGFONT(This,logfont,font); +} +static inline HRESULT IDWriteGdiInterop_ConvertFontToLOGFONT(IDWriteGdiInterop* This,IDWriteFont *font,LOGFONTW *logfont,WINBOOL *is_systemfont) { + return This->lpVtbl->ConvertFontToLOGFONT(This,font,logfont,is_systemfont); +} +static inline HRESULT IDWriteGdiInterop_ConvertFontFaceToLOGFONT(IDWriteGdiInterop* This,IDWriteFontFace *font,LOGFONTW *logfont) { + return This->lpVtbl->ConvertFontFaceToLOGFONT(This,font,logfont); +} +static inline HRESULT IDWriteGdiInterop_CreateFontFaceFromHdc(IDWriteGdiInterop* This,HDC hdc,IDWriteFontFace **fontface) { + return This->lpVtbl->CreateFontFaceFromHdc(This,hdc,fontface); +} +static inline HRESULT IDWriteGdiInterop_CreateBitmapRenderTarget(IDWriteGdiInterop* This,HDC hdc,UINT32 width,UINT32 height,IDWriteBitmapRenderTarget **target) { + return This->lpVtbl->CreateBitmapRenderTarget(This,hdc,width,height,target); +} +#endif +#endif + +#endif + + +#endif /* __IDWriteGdiInterop_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IDWriteTextLayout interface + */ +#ifndef __IDWriteTextLayout_INTERFACE_DEFINED__ +#define __IDWriteTextLayout_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDWriteTextLayout, 0x53737037, 0x6d14, 0x410b, 0x9b,0xfe, 0x0b,0x18,0x2b,0xb7,0x09,0x61); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("53737037-6d14-410b-9bfe-0b182bb70961") +IDWriteTextLayout : public IDWriteTextFormat +{ + virtual HRESULT STDMETHODCALLTYPE SetMaxWidth( + FLOAT maxWidth) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetMaxHeight( + FLOAT maxHeight) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetFontCollection( + IDWriteFontCollection *collection, + DWRITE_TEXT_RANGE range) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetFontFamilyName( + const WCHAR *name, + DWRITE_TEXT_RANGE range) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetFontWeight( + DWRITE_FONT_WEIGHT weight, + DWRITE_TEXT_RANGE range) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetFontStyle( + DWRITE_FONT_STYLE style, + DWRITE_TEXT_RANGE range) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetFontStretch( + DWRITE_FONT_STRETCH stretch, + DWRITE_TEXT_RANGE range) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetFontSize( + FLOAT size, + DWRITE_TEXT_RANGE range) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetUnderline( + WINBOOL underline, + DWRITE_TEXT_RANGE range) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetStrikethrough( + WINBOOL strikethrough, + DWRITE_TEXT_RANGE range) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetDrawingEffect( + IUnknown *effect, + DWRITE_TEXT_RANGE range) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetInlineObject( + IDWriteInlineObject *object, + DWRITE_TEXT_RANGE range) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetTypography( + IDWriteTypography *typography, + DWRITE_TEXT_RANGE range) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetLocaleName( + const WCHAR *locale, + DWRITE_TEXT_RANGE range) = 0; + + virtual FLOAT STDMETHODCALLTYPE GetMaxWidth( + ) = 0; + + virtual FLOAT STDMETHODCALLTYPE GetMaxHeight( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetFontCollection( + UINT32 pos, + IDWriteFontCollection **collection, + DWRITE_TEXT_RANGE *range = 0) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetFontFamilyNameLength( + UINT32 pos, + UINT32 *len, + DWRITE_TEXT_RANGE *range = 0) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetFontFamilyName( + UINT32 position, + WCHAR *name, + UINT32 name_size, + DWRITE_TEXT_RANGE *range = 0) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetFontWeight( + UINT32 position, + DWRITE_FONT_WEIGHT *weight, + DWRITE_TEXT_RANGE *range = 0) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetFontStyle( + UINT32 currentPosition, + DWRITE_FONT_STYLE *style, + DWRITE_TEXT_RANGE *range = 0) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetFontStretch( + UINT32 position, + DWRITE_FONT_STRETCH *stretch, + DWRITE_TEXT_RANGE *range = 0) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetFontSize( + UINT32 position, + FLOAT *size, + DWRITE_TEXT_RANGE *range = 0) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetUnderline( + UINT32 position, + WINBOOL *has_underline, + DWRITE_TEXT_RANGE *range = 0) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetStrikethrough( + UINT32 position, + WINBOOL *has_strikethrough, + DWRITE_TEXT_RANGE *range = 0) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetDrawingEffect( + UINT32 position, + IUnknown **effect, + DWRITE_TEXT_RANGE *range = 0) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetInlineObject( + UINT32 position, + IDWriteInlineObject **object, + DWRITE_TEXT_RANGE *range = 0) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetTypography( + UINT32 position, + IDWriteTypography **typography, + DWRITE_TEXT_RANGE *range = 0) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetLocaleNameLength( + UINT32 position, + UINT32 *length, + DWRITE_TEXT_RANGE *range = 0) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetLocaleName( + UINT32 position, + WCHAR *name, + UINT32 name_size, + DWRITE_TEXT_RANGE *range = 0) = 0; + + virtual HRESULT STDMETHODCALLTYPE Draw( + void *context, + IDWriteTextRenderer *renderer, + FLOAT originX, + FLOAT originY) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetLineMetrics( + DWRITE_LINE_METRICS *metrics, + UINT32 max_count, + UINT32 *actual_count) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetMetrics( + DWRITE_TEXT_METRICS *metrics) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetOverhangMetrics( + DWRITE_OVERHANG_METRICS *overhangs) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetClusterMetrics( + DWRITE_CLUSTER_METRICS *metrics, + UINT32 max_count, + UINT32 *act_count) = 0; + + virtual HRESULT STDMETHODCALLTYPE DetermineMinWidth( + FLOAT *min_width) = 0; + + virtual HRESULT STDMETHODCALLTYPE HitTestPoint( + FLOAT pointX, + FLOAT pointY, + WINBOOL *is_trailinghit, + WINBOOL *is_inside, + DWRITE_HIT_TEST_METRICS *metrics) = 0; + + virtual HRESULT STDMETHODCALLTYPE HitTestTextPosition( + UINT32 textPosition, + WINBOOL is_trailinghit, + FLOAT *pointX, + FLOAT *pointY, + DWRITE_HIT_TEST_METRICS *metrics) = 0; + + virtual HRESULT STDMETHODCALLTYPE HitTestTextRange( + UINT32 textPosition, + UINT32 textLength, + FLOAT originX, + FLOAT originY, + DWRITE_HIT_TEST_METRICS *metrics, + UINT32 max_metricscount, + UINT32 *actual_metricscount) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDWriteTextLayout, 0x53737037, 0x6d14, 0x410b, 0x9b,0xfe, 0x0b,0x18,0x2b,0xb7,0x09,0x61) +#endif +#else +typedef struct IDWriteTextLayoutVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDWriteTextLayout *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDWriteTextLayout *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDWriteTextLayout *This); + + /*** IDWriteTextFormat methods ***/ + HRESULT (STDMETHODCALLTYPE *SetTextAlignment)( + IDWriteTextLayout *This, + DWRITE_TEXT_ALIGNMENT alignment); + + HRESULT (STDMETHODCALLTYPE *SetParagraphAlignment)( + IDWriteTextLayout *This, + DWRITE_PARAGRAPH_ALIGNMENT alignment); + + HRESULT (STDMETHODCALLTYPE *SetWordWrapping)( + IDWriteTextLayout *This, + DWRITE_WORD_WRAPPING wrapping); + + HRESULT (STDMETHODCALLTYPE *SetReadingDirection)( + IDWriteTextLayout *This, + DWRITE_READING_DIRECTION direction); + + HRESULT (STDMETHODCALLTYPE *SetFlowDirection)( + IDWriteTextLayout *This, + DWRITE_FLOW_DIRECTION direction); + + HRESULT (STDMETHODCALLTYPE *SetIncrementalTabStop)( + IDWriteTextLayout *This, + FLOAT tabstop); + + HRESULT (STDMETHODCALLTYPE *SetTrimming)( + IDWriteTextLayout *This, + const DWRITE_TRIMMING *trimming, + IDWriteInlineObject *trimming_sign); + + HRESULT (STDMETHODCALLTYPE *SetLineSpacing)( + IDWriteTextLayout *This, + DWRITE_LINE_SPACING_METHOD spacing, + FLOAT line_spacing, + FLOAT baseline); + + DWRITE_TEXT_ALIGNMENT (STDMETHODCALLTYPE *GetTextAlignment)( + IDWriteTextLayout *This); + + DWRITE_PARAGRAPH_ALIGNMENT (STDMETHODCALLTYPE *GetParagraphAlignment)( + IDWriteTextLayout *This); + + DWRITE_WORD_WRAPPING (STDMETHODCALLTYPE *GetWordWrapping)( + IDWriteTextLayout *This); + + DWRITE_READING_DIRECTION (STDMETHODCALLTYPE *GetReadingDirection)( + IDWriteTextLayout *This); + + DWRITE_FLOW_DIRECTION (STDMETHODCALLTYPE *GetFlowDirection)( + IDWriteTextLayout *This); + + FLOAT (STDMETHODCALLTYPE *GetIncrementalTabStop)( + IDWriteTextLayout *This); + + HRESULT (STDMETHODCALLTYPE *GetTrimming)( + IDWriteTextLayout *This, + DWRITE_TRIMMING *options, + IDWriteInlineObject **trimming_sign); + + HRESULT (STDMETHODCALLTYPE *GetLineSpacing)( + IDWriteTextLayout *This, + DWRITE_LINE_SPACING_METHOD *method, + FLOAT *spacing, + FLOAT *baseline); + + HRESULT (STDMETHODCALLTYPE *GetFontCollection)( + IDWriteTextLayout *This, + IDWriteFontCollection **collection); + + UINT32 (STDMETHODCALLTYPE *GetFontFamilyNameLength)( + IDWriteTextLayout *This); + + HRESULT (STDMETHODCALLTYPE *GetFontFamilyName)( + IDWriteTextLayout *This, + WCHAR *name, + UINT32 size); + + DWRITE_FONT_WEIGHT (STDMETHODCALLTYPE *GetFontWeight)( + IDWriteTextLayout *This); + + DWRITE_FONT_STYLE (STDMETHODCALLTYPE *GetFontStyle)( + IDWriteTextLayout *This); + + DWRITE_FONT_STRETCH (STDMETHODCALLTYPE *GetFontStretch)( + IDWriteTextLayout *This); + + FLOAT (STDMETHODCALLTYPE *GetFontSize)( + IDWriteTextLayout *This); + + UINT32 (STDMETHODCALLTYPE *GetLocaleNameLength)( + IDWriteTextLayout *This); + + HRESULT (STDMETHODCALLTYPE *GetLocaleName)( + IDWriteTextLayout *This, + WCHAR *name, + UINT32 size); + + /*** IDWriteTextLayout methods ***/ + HRESULT (STDMETHODCALLTYPE *SetMaxWidth)( + IDWriteTextLayout *This, + FLOAT maxWidth); + + HRESULT (STDMETHODCALLTYPE *SetMaxHeight)( + IDWriteTextLayout *This, + FLOAT maxHeight); + + HRESULT (STDMETHODCALLTYPE *SetFontCollection)( + IDWriteTextLayout *This, + IDWriteFontCollection *collection, + DWRITE_TEXT_RANGE range); + + HRESULT (STDMETHODCALLTYPE *SetFontFamilyName)( + IDWriteTextLayout *This, + const WCHAR *name, + DWRITE_TEXT_RANGE range); + + HRESULT (STDMETHODCALLTYPE *SetFontWeight)( + IDWriteTextLayout *This, + DWRITE_FONT_WEIGHT weight, + DWRITE_TEXT_RANGE range); + + HRESULT (STDMETHODCALLTYPE *SetFontStyle)( + IDWriteTextLayout *This, + DWRITE_FONT_STYLE style, + DWRITE_TEXT_RANGE range); + + HRESULT (STDMETHODCALLTYPE *SetFontStretch)( + IDWriteTextLayout *This, + DWRITE_FONT_STRETCH stretch, + DWRITE_TEXT_RANGE range); + + HRESULT (STDMETHODCALLTYPE *SetFontSize)( + IDWriteTextLayout *This, + FLOAT size, + DWRITE_TEXT_RANGE range); + + HRESULT (STDMETHODCALLTYPE *SetUnderline)( + IDWriteTextLayout *This, + WINBOOL underline, + DWRITE_TEXT_RANGE range); + + HRESULT (STDMETHODCALLTYPE *SetStrikethrough)( + IDWriteTextLayout *This, + WINBOOL strikethrough, + DWRITE_TEXT_RANGE range); + + HRESULT (STDMETHODCALLTYPE *SetDrawingEffect)( + IDWriteTextLayout *This, + IUnknown *effect, + DWRITE_TEXT_RANGE range); + + HRESULT (STDMETHODCALLTYPE *SetInlineObject)( + IDWriteTextLayout *This, + IDWriteInlineObject *object, + DWRITE_TEXT_RANGE range); + + HRESULT (STDMETHODCALLTYPE *SetTypography)( + IDWriteTextLayout *This, + IDWriteTypography *typography, + DWRITE_TEXT_RANGE range); + + HRESULT (STDMETHODCALLTYPE *SetLocaleName)( + IDWriteTextLayout *This, + const WCHAR *locale, + DWRITE_TEXT_RANGE range); + + FLOAT (STDMETHODCALLTYPE *GetMaxWidth)( + IDWriteTextLayout *This); + + FLOAT (STDMETHODCALLTYPE *GetMaxHeight)( + IDWriteTextLayout *This); + + HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout_GetFontCollection)( + IDWriteTextLayout *This, + UINT32 pos, + IDWriteFontCollection **collection, + DWRITE_TEXT_RANGE *range); + + HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout_GetFontFamilyNameLength)( + IDWriteTextLayout *This, + UINT32 pos, + UINT32 *len, + DWRITE_TEXT_RANGE *range); + + HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout_GetFontFamilyName)( + IDWriteTextLayout *This, + UINT32 position, + WCHAR *name, + UINT32 name_size, + DWRITE_TEXT_RANGE *range); + + HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout_GetFontWeight)( + IDWriteTextLayout *This, + UINT32 position, + DWRITE_FONT_WEIGHT *weight, + DWRITE_TEXT_RANGE *range); + + HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout_GetFontStyle)( + IDWriteTextLayout *This, + UINT32 currentPosition, + DWRITE_FONT_STYLE *style, + DWRITE_TEXT_RANGE *range); + + HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout_GetFontStretch)( + IDWriteTextLayout *This, + UINT32 position, + DWRITE_FONT_STRETCH *stretch, + DWRITE_TEXT_RANGE *range); + + HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout_GetFontSize)( + IDWriteTextLayout *This, + UINT32 position, + FLOAT *size, + DWRITE_TEXT_RANGE *range); + + HRESULT (STDMETHODCALLTYPE *GetUnderline)( + IDWriteTextLayout *This, + UINT32 position, + WINBOOL *has_underline, + DWRITE_TEXT_RANGE *range); + + HRESULT (STDMETHODCALLTYPE *GetStrikethrough)( + IDWriteTextLayout *This, + UINT32 position, + WINBOOL *has_strikethrough, + DWRITE_TEXT_RANGE *range); + + HRESULT (STDMETHODCALLTYPE *GetDrawingEffect)( + IDWriteTextLayout *This, + UINT32 position, + IUnknown **effect, + DWRITE_TEXT_RANGE *range); + + HRESULT (STDMETHODCALLTYPE *GetInlineObject)( + IDWriteTextLayout *This, + UINT32 position, + IDWriteInlineObject **object, + DWRITE_TEXT_RANGE *range); + + HRESULT (STDMETHODCALLTYPE *GetTypography)( + IDWriteTextLayout *This, + UINT32 position, + IDWriteTypography **typography, + DWRITE_TEXT_RANGE *range); + + HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout_GetLocaleNameLength)( + IDWriteTextLayout *This, + UINT32 position, + UINT32 *length, + DWRITE_TEXT_RANGE *range); + + HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout_GetLocaleName)( + IDWriteTextLayout *This, + UINT32 position, + WCHAR *name, + UINT32 name_size, + DWRITE_TEXT_RANGE *range); + + HRESULT (STDMETHODCALLTYPE *Draw)( + IDWriteTextLayout *This, + void *context, + IDWriteTextRenderer *renderer, + FLOAT originX, + FLOAT originY); + + HRESULT (STDMETHODCALLTYPE *GetLineMetrics)( + IDWriteTextLayout *This, + DWRITE_LINE_METRICS *metrics, + UINT32 max_count, + UINT32 *actual_count); + + HRESULT (STDMETHODCALLTYPE *GetMetrics)( + IDWriteTextLayout *This, + DWRITE_TEXT_METRICS *metrics); + + HRESULT (STDMETHODCALLTYPE *GetOverhangMetrics)( + IDWriteTextLayout *This, + DWRITE_OVERHANG_METRICS *overhangs); + + HRESULT (STDMETHODCALLTYPE *GetClusterMetrics)( + IDWriteTextLayout *This, + DWRITE_CLUSTER_METRICS *metrics, + UINT32 max_count, + UINT32 *act_count); + + HRESULT (STDMETHODCALLTYPE *DetermineMinWidth)( + IDWriteTextLayout *This, + FLOAT *min_width); + + HRESULT (STDMETHODCALLTYPE *HitTestPoint)( + IDWriteTextLayout *This, + FLOAT pointX, + FLOAT pointY, + WINBOOL *is_trailinghit, + WINBOOL *is_inside, + DWRITE_HIT_TEST_METRICS *metrics); + + HRESULT (STDMETHODCALLTYPE *HitTestTextPosition)( + IDWriteTextLayout *This, + UINT32 textPosition, + WINBOOL is_trailinghit, + FLOAT *pointX, + FLOAT *pointY, + DWRITE_HIT_TEST_METRICS *metrics); + + HRESULT (STDMETHODCALLTYPE *HitTestTextRange)( + IDWriteTextLayout *This, + UINT32 textPosition, + UINT32 textLength, + FLOAT originX, + FLOAT originY, + DWRITE_HIT_TEST_METRICS *metrics, + UINT32 max_metricscount, + UINT32 *actual_metricscount); + + END_INTERFACE +} IDWriteTextLayoutVtbl; + +interface IDWriteTextLayout { + CONST_VTBL IDWriteTextLayoutVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDWriteTextLayout_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteTextLayout_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDWriteTextLayout_Release(This) (This)->lpVtbl->Release(This) +/*** IDWriteTextFormat methods ***/ +#define IDWriteTextLayout_SetTextAlignment(This,alignment) (This)->lpVtbl->SetTextAlignment(This,alignment) +#define IDWriteTextLayout_SetParagraphAlignment(This,alignment) (This)->lpVtbl->SetParagraphAlignment(This,alignment) +#define IDWriteTextLayout_SetWordWrapping(This,wrapping) (This)->lpVtbl->SetWordWrapping(This,wrapping) +#define IDWriteTextLayout_SetReadingDirection(This,direction) (This)->lpVtbl->SetReadingDirection(This,direction) +#define IDWriteTextLayout_SetFlowDirection(This,direction) (This)->lpVtbl->SetFlowDirection(This,direction) +#define IDWriteTextLayout_SetIncrementalTabStop(This,tabstop) (This)->lpVtbl->SetIncrementalTabStop(This,tabstop) +#define IDWriteTextLayout_SetTrimming(This,trimming,trimming_sign) (This)->lpVtbl->SetTrimming(This,trimming,trimming_sign) +#define IDWriteTextLayout_SetLineSpacing(This,spacing,line_spacing,baseline) (This)->lpVtbl->SetLineSpacing(This,spacing,line_spacing,baseline) +#define IDWriteTextLayout_GetTextAlignment(This) (This)->lpVtbl->GetTextAlignment(This) +#define IDWriteTextLayout_GetParagraphAlignment(This) (This)->lpVtbl->GetParagraphAlignment(This) +#define IDWriteTextLayout_GetWordWrapping(This) (This)->lpVtbl->GetWordWrapping(This) +#define IDWriteTextLayout_GetReadingDirection(This) (This)->lpVtbl->GetReadingDirection(This) +#define IDWriteTextLayout_GetFlowDirection(This) (This)->lpVtbl->GetFlowDirection(This) +#define IDWriteTextLayout_GetIncrementalTabStop(This) (This)->lpVtbl->GetIncrementalTabStop(This) +#define IDWriteTextLayout_GetTrimming(This,options,trimming_sign) (This)->lpVtbl->GetTrimming(This,options,trimming_sign) +#define IDWriteTextLayout_GetLineSpacing(This,method,spacing,baseline) (This)->lpVtbl->GetLineSpacing(This,method,spacing,baseline) +/*** IDWriteTextLayout methods ***/ +#define IDWriteTextLayout_SetMaxWidth(This,maxWidth) (This)->lpVtbl->SetMaxWidth(This,maxWidth) +#define IDWriteTextLayout_SetMaxHeight(This,maxHeight) (This)->lpVtbl->SetMaxHeight(This,maxHeight) +#define IDWriteTextLayout_SetFontCollection(This,collection,range) (This)->lpVtbl->SetFontCollection(This,collection,range) +#define IDWriteTextLayout_SetFontFamilyName(This,name,range) (This)->lpVtbl->SetFontFamilyName(This,name,range) +#define IDWriteTextLayout_SetFontWeight(This,weight,range) (This)->lpVtbl->SetFontWeight(This,weight,range) +#define IDWriteTextLayout_SetFontStyle(This,style,range) (This)->lpVtbl->SetFontStyle(This,style,range) +#define IDWriteTextLayout_SetFontStretch(This,stretch,range) (This)->lpVtbl->SetFontStretch(This,stretch,range) +#define IDWriteTextLayout_SetFontSize(This,size,range) (This)->lpVtbl->SetFontSize(This,size,range) +#define IDWriteTextLayout_SetUnderline(This,underline,range) (This)->lpVtbl->SetUnderline(This,underline,range) +#define IDWriteTextLayout_SetStrikethrough(This,strikethrough,range) (This)->lpVtbl->SetStrikethrough(This,strikethrough,range) +#define IDWriteTextLayout_SetDrawingEffect(This,effect,range) (This)->lpVtbl->SetDrawingEffect(This,effect,range) +#define IDWriteTextLayout_SetInlineObject(This,object,range) (This)->lpVtbl->SetInlineObject(This,object,range) +#define IDWriteTextLayout_SetTypography(This,typography,range) (This)->lpVtbl->SetTypography(This,typography,range) +#define IDWriteTextLayout_SetLocaleName(This,locale,range) (This)->lpVtbl->SetLocaleName(This,locale,range) +#define IDWriteTextLayout_GetMaxWidth(This) (This)->lpVtbl->GetMaxWidth(This) +#define IDWriteTextLayout_GetMaxHeight(This) (This)->lpVtbl->GetMaxHeight(This) +#define IDWriteTextLayout_GetFontCollection(This,pos,collection,range) (This)->lpVtbl->IDWriteTextLayout_GetFontCollection(This,pos,collection,range) +#define IDWriteTextLayout_GetFontFamilyNameLength(This,pos,len,range) (This)->lpVtbl->IDWriteTextLayout_GetFontFamilyNameLength(This,pos,len,range) +#define IDWriteTextLayout_GetFontFamilyName(This,position,name,name_size,range) (This)->lpVtbl->IDWriteTextLayout_GetFontFamilyName(This,position,name,name_size,range) +#define IDWriteTextLayout_GetFontWeight(This,position,weight,range) (This)->lpVtbl->IDWriteTextLayout_GetFontWeight(This,position,weight,range) +#define IDWriteTextLayout_GetFontStyle(This,currentPosition,style,range) (This)->lpVtbl->IDWriteTextLayout_GetFontStyle(This,currentPosition,style,range) +#define IDWriteTextLayout_GetFontStretch(This,position,stretch,range) (This)->lpVtbl->IDWriteTextLayout_GetFontStretch(This,position,stretch,range) +#define IDWriteTextLayout_GetFontSize(This,position,size,range) (This)->lpVtbl->IDWriteTextLayout_GetFontSize(This,position,size,range) +#define IDWriteTextLayout_GetUnderline(This,position,has_underline,range) (This)->lpVtbl->GetUnderline(This,position,has_underline,range) +#define IDWriteTextLayout_GetStrikethrough(This,position,has_strikethrough,range) (This)->lpVtbl->GetStrikethrough(This,position,has_strikethrough,range) +#define IDWriteTextLayout_GetDrawingEffect(This,position,effect,range) (This)->lpVtbl->GetDrawingEffect(This,position,effect,range) +#define IDWriteTextLayout_GetInlineObject(This,position,object,range) (This)->lpVtbl->GetInlineObject(This,position,object,range) +#define IDWriteTextLayout_GetTypography(This,position,typography,range) (This)->lpVtbl->GetTypography(This,position,typography,range) +#define IDWriteTextLayout_GetLocaleNameLength(This,position,length,range) (This)->lpVtbl->IDWriteTextLayout_GetLocaleNameLength(This,position,length,range) +#define IDWriteTextLayout_GetLocaleName(This,position,name,name_size,range) (This)->lpVtbl->IDWriteTextLayout_GetLocaleName(This,position,name,name_size,range) +#define IDWriteTextLayout_Draw(This,context,renderer,originX,originY) (This)->lpVtbl->Draw(This,context,renderer,originX,originY) +#define IDWriteTextLayout_GetLineMetrics(This,metrics,max_count,actual_count) (This)->lpVtbl->GetLineMetrics(This,metrics,max_count,actual_count) +#define IDWriteTextLayout_GetMetrics(This,metrics) (This)->lpVtbl->GetMetrics(This,metrics) +#define IDWriteTextLayout_GetOverhangMetrics(This,overhangs) (This)->lpVtbl->GetOverhangMetrics(This,overhangs) +#define IDWriteTextLayout_GetClusterMetrics(This,metrics,max_count,act_count) (This)->lpVtbl->GetClusterMetrics(This,metrics,max_count,act_count) +#define IDWriteTextLayout_DetermineMinWidth(This,min_width) (This)->lpVtbl->DetermineMinWidth(This,min_width) +#define IDWriteTextLayout_HitTestPoint(This,pointX,pointY,is_trailinghit,is_inside,metrics) (This)->lpVtbl->HitTestPoint(This,pointX,pointY,is_trailinghit,is_inside,metrics) +#define IDWriteTextLayout_HitTestTextPosition(This,textPosition,is_trailinghit,pointX,pointY,metrics) (This)->lpVtbl->HitTestTextPosition(This,textPosition,is_trailinghit,pointX,pointY,metrics) +#define IDWriteTextLayout_HitTestTextRange(This,textPosition,textLength,originX,originY,metrics,max_metricscount,actual_metricscount) (This)->lpVtbl->HitTestTextRange(This,textPosition,textLength,originX,originY,metrics,max_metricscount,actual_metricscount) +#else +/*** IUnknown methods ***/ +static inline HRESULT IDWriteTextLayout_QueryInterface(IDWriteTextLayout* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static inline ULONG IDWriteTextLayout_AddRef(IDWriteTextLayout* This) { + return This->lpVtbl->AddRef(This); +} +static inline ULONG IDWriteTextLayout_Release(IDWriteTextLayout* This) { + return This->lpVtbl->Release(This); +} +/*** IDWriteTextFormat methods ***/ +static inline HRESULT IDWriteTextLayout_SetTextAlignment(IDWriteTextLayout* This,DWRITE_TEXT_ALIGNMENT alignment) { + return This->lpVtbl->SetTextAlignment(This,alignment); +} +static inline HRESULT IDWriteTextLayout_SetParagraphAlignment(IDWriteTextLayout* This,DWRITE_PARAGRAPH_ALIGNMENT alignment) { + return This->lpVtbl->SetParagraphAlignment(This,alignment); +} +static inline HRESULT IDWriteTextLayout_SetWordWrapping(IDWriteTextLayout* This,DWRITE_WORD_WRAPPING wrapping) { + return This->lpVtbl->SetWordWrapping(This,wrapping); +} +static inline HRESULT IDWriteTextLayout_SetReadingDirection(IDWriteTextLayout* This,DWRITE_READING_DIRECTION direction) { + return This->lpVtbl->SetReadingDirection(This,direction); +} +static inline HRESULT IDWriteTextLayout_SetFlowDirection(IDWriteTextLayout* This,DWRITE_FLOW_DIRECTION direction) { + return This->lpVtbl->SetFlowDirection(This,direction); +} +static inline HRESULT IDWriteTextLayout_SetIncrementalTabStop(IDWriteTextLayout* This,FLOAT tabstop) { + return This->lpVtbl->SetIncrementalTabStop(This,tabstop); +} +static inline HRESULT IDWriteTextLayout_SetTrimming(IDWriteTextLayout* This,const DWRITE_TRIMMING *trimming,IDWriteInlineObject *trimming_sign) { + return This->lpVtbl->SetTrimming(This,trimming,trimming_sign); +} +static inline HRESULT IDWriteTextLayout_SetLineSpacing(IDWriteTextLayout* This,DWRITE_LINE_SPACING_METHOD spacing,FLOAT line_spacing,FLOAT baseline) { + return This->lpVtbl->SetLineSpacing(This,spacing,line_spacing,baseline); +} +static inline DWRITE_TEXT_ALIGNMENT IDWriteTextLayout_GetTextAlignment(IDWriteTextLayout* This) { + return This->lpVtbl->GetTextAlignment(This); +} +static inline DWRITE_PARAGRAPH_ALIGNMENT IDWriteTextLayout_GetParagraphAlignment(IDWriteTextLayout* This) { + return This->lpVtbl->GetParagraphAlignment(This); +} +static inline DWRITE_WORD_WRAPPING IDWriteTextLayout_GetWordWrapping(IDWriteTextLayout* This) { + return This->lpVtbl->GetWordWrapping(This); +} +static inline DWRITE_READING_DIRECTION IDWriteTextLayout_GetReadingDirection(IDWriteTextLayout* This) { + return This->lpVtbl->GetReadingDirection(This); +} +static inline DWRITE_FLOW_DIRECTION IDWriteTextLayout_GetFlowDirection(IDWriteTextLayout* This) { + return This->lpVtbl->GetFlowDirection(This); +} +static inline FLOAT IDWriteTextLayout_GetIncrementalTabStop(IDWriteTextLayout* This) { + return This->lpVtbl->GetIncrementalTabStop(This); +} +static inline HRESULT IDWriteTextLayout_GetTrimming(IDWriteTextLayout* This,DWRITE_TRIMMING *options,IDWriteInlineObject **trimming_sign) { + return This->lpVtbl->GetTrimming(This,options,trimming_sign); +} +static inline HRESULT IDWriteTextLayout_GetLineSpacing(IDWriteTextLayout* This,DWRITE_LINE_SPACING_METHOD *method,FLOAT *spacing,FLOAT *baseline) { + return This->lpVtbl->GetLineSpacing(This,method,spacing,baseline); +} +/*** IDWriteTextLayout methods ***/ +static inline HRESULT IDWriteTextLayout_SetMaxWidth(IDWriteTextLayout* This,FLOAT maxWidth) { + return This->lpVtbl->SetMaxWidth(This,maxWidth); +} +static inline HRESULT IDWriteTextLayout_SetMaxHeight(IDWriteTextLayout* This,FLOAT maxHeight) { + return This->lpVtbl->SetMaxHeight(This,maxHeight); +} +static inline HRESULT IDWriteTextLayout_SetFontCollection(IDWriteTextLayout* This,IDWriteFontCollection *collection,DWRITE_TEXT_RANGE range) { + return This->lpVtbl->SetFontCollection(This,collection,range); +} +static inline HRESULT IDWriteTextLayout_SetFontFamilyName(IDWriteTextLayout* This,const WCHAR *name,DWRITE_TEXT_RANGE range) { + return This->lpVtbl->SetFontFamilyName(This,name,range); +} +static inline HRESULT IDWriteTextLayout_SetFontWeight(IDWriteTextLayout* This,DWRITE_FONT_WEIGHT weight,DWRITE_TEXT_RANGE range) { + return This->lpVtbl->SetFontWeight(This,weight,range); +} +static inline HRESULT IDWriteTextLayout_SetFontStyle(IDWriteTextLayout* This,DWRITE_FONT_STYLE style,DWRITE_TEXT_RANGE range) { + return This->lpVtbl->SetFontStyle(This,style,range); +} +static inline HRESULT IDWriteTextLayout_SetFontStretch(IDWriteTextLayout* This,DWRITE_FONT_STRETCH stretch,DWRITE_TEXT_RANGE range) { + return This->lpVtbl->SetFontStretch(This,stretch,range); +} +static inline HRESULT IDWriteTextLayout_SetFontSize(IDWriteTextLayout* This,FLOAT size,DWRITE_TEXT_RANGE range) { + return This->lpVtbl->SetFontSize(This,size,range); +} +static inline HRESULT IDWriteTextLayout_SetUnderline(IDWriteTextLayout* This,WINBOOL underline,DWRITE_TEXT_RANGE range) { + return This->lpVtbl->SetUnderline(This,underline,range); +} +static inline HRESULT IDWriteTextLayout_SetStrikethrough(IDWriteTextLayout* This,WINBOOL strikethrough,DWRITE_TEXT_RANGE range) { + return This->lpVtbl->SetStrikethrough(This,strikethrough,range); +} +static inline HRESULT IDWriteTextLayout_SetDrawingEffect(IDWriteTextLayout* This,IUnknown *effect,DWRITE_TEXT_RANGE range) { + return This->lpVtbl->SetDrawingEffect(This,effect,range); +} +static inline HRESULT IDWriteTextLayout_SetInlineObject(IDWriteTextLayout* This,IDWriteInlineObject *object,DWRITE_TEXT_RANGE range) { + return This->lpVtbl->SetInlineObject(This,object,range); +} +static inline HRESULT IDWriteTextLayout_SetTypography(IDWriteTextLayout* This,IDWriteTypography *typography,DWRITE_TEXT_RANGE range) { + return This->lpVtbl->SetTypography(This,typography,range); +} +static inline HRESULT IDWriteTextLayout_SetLocaleName(IDWriteTextLayout* This,const WCHAR *locale,DWRITE_TEXT_RANGE range) { + return This->lpVtbl->SetLocaleName(This,locale,range); +} +static inline FLOAT IDWriteTextLayout_GetMaxWidth(IDWriteTextLayout* This) { + return This->lpVtbl->GetMaxWidth(This); +} +static inline FLOAT IDWriteTextLayout_GetMaxHeight(IDWriteTextLayout* This) { + return This->lpVtbl->GetMaxHeight(This); +} +static inline HRESULT IDWriteTextLayout_GetFontCollection(IDWriteTextLayout* This,UINT32 pos,IDWriteFontCollection **collection,DWRITE_TEXT_RANGE *range) { + return This->lpVtbl->IDWriteTextLayout_GetFontCollection(This,pos,collection,range); +} +static inline HRESULT IDWriteTextLayout_GetFontFamilyNameLength(IDWriteTextLayout* This,UINT32 pos,UINT32 *len,DWRITE_TEXT_RANGE *range) { + return This->lpVtbl->IDWriteTextLayout_GetFontFamilyNameLength(This,pos,len,range); +} +static inline HRESULT IDWriteTextLayout_GetFontFamilyName(IDWriteTextLayout* This,UINT32 position,WCHAR *name,UINT32 name_size,DWRITE_TEXT_RANGE *range) { + return This->lpVtbl->IDWriteTextLayout_GetFontFamilyName(This,position,name,name_size,range); +} +static inline HRESULT IDWriteTextLayout_GetFontWeight(IDWriteTextLayout* This,UINT32 position,DWRITE_FONT_WEIGHT *weight,DWRITE_TEXT_RANGE *range) { + return This->lpVtbl->IDWriteTextLayout_GetFontWeight(This,position,weight,range); +} +static inline HRESULT IDWriteTextLayout_GetFontStyle(IDWriteTextLayout* This,UINT32 currentPosition,DWRITE_FONT_STYLE *style,DWRITE_TEXT_RANGE *range) { + return This->lpVtbl->IDWriteTextLayout_GetFontStyle(This,currentPosition,style,range); +} +static inline HRESULT IDWriteTextLayout_GetFontStretch(IDWriteTextLayout* This,UINT32 position,DWRITE_FONT_STRETCH *stretch,DWRITE_TEXT_RANGE *range) { + return This->lpVtbl->IDWriteTextLayout_GetFontStretch(This,position,stretch,range); +} +static inline HRESULT IDWriteTextLayout_GetFontSize(IDWriteTextLayout* This,UINT32 position,FLOAT *size,DWRITE_TEXT_RANGE *range) { + return This->lpVtbl->IDWriteTextLayout_GetFontSize(This,position,size,range); +} +static inline HRESULT IDWriteTextLayout_GetUnderline(IDWriteTextLayout* This,UINT32 position,WINBOOL *has_underline,DWRITE_TEXT_RANGE *range) { + return This->lpVtbl->GetUnderline(This,position,has_underline,range); +} +static inline HRESULT IDWriteTextLayout_GetStrikethrough(IDWriteTextLayout* This,UINT32 position,WINBOOL *has_strikethrough,DWRITE_TEXT_RANGE *range) { + return This->lpVtbl->GetStrikethrough(This,position,has_strikethrough,range); +} +static inline HRESULT IDWriteTextLayout_GetDrawingEffect(IDWriteTextLayout* This,UINT32 position,IUnknown **effect,DWRITE_TEXT_RANGE *range) { + return This->lpVtbl->GetDrawingEffect(This,position,effect,range); +} +static inline HRESULT IDWriteTextLayout_GetInlineObject(IDWriteTextLayout* This,UINT32 position,IDWriteInlineObject **object,DWRITE_TEXT_RANGE *range) { + return This->lpVtbl->GetInlineObject(This,position,object,range); +} +static inline HRESULT IDWriteTextLayout_GetTypography(IDWriteTextLayout* This,UINT32 position,IDWriteTypography **typography,DWRITE_TEXT_RANGE *range) { + return This->lpVtbl->GetTypography(This,position,typography,range); +} +static inline HRESULT IDWriteTextLayout_GetLocaleNameLength(IDWriteTextLayout* This,UINT32 position,UINT32 *length,DWRITE_TEXT_RANGE *range) { + return This->lpVtbl->IDWriteTextLayout_GetLocaleNameLength(This,position,length,range); +} +static inline HRESULT IDWriteTextLayout_GetLocaleName(IDWriteTextLayout* This,UINT32 position,WCHAR *name,UINT32 name_size,DWRITE_TEXT_RANGE *range) { + return This->lpVtbl->IDWriteTextLayout_GetLocaleName(This,position,name,name_size,range); +} +static inline HRESULT IDWriteTextLayout_Draw(IDWriteTextLayout* This,void *context,IDWriteTextRenderer *renderer,FLOAT originX,FLOAT originY) { + return This->lpVtbl->Draw(This,context,renderer,originX,originY); +} +static inline HRESULT IDWriteTextLayout_GetLineMetrics(IDWriteTextLayout* This,DWRITE_LINE_METRICS *metrics,UINT32 max_count,UINT32 *actual_count) { + return This->lpVtbl->GetLineMetrics(This,metrics,max_count,actual_count); +} +static inline HRESULT IDWriteTextLayout_GetMetrics(IDWriteTextLayout* This,DWRITE_TEXT_METRICS *metrics) { + return This->lpVtbl->GetMetrics(This,metrics); +} +static inline HRESULT IDWriteTextLayout_GetOverhangMetrics(IDWriteTextLayout* This,DWRITE_OVERHANG_METRICS *overhangs) { + return This->lpVtbl->GetOverhangMetrics(This,overhangs); +} +static inline HRESULT IDWriteTextLayout_GetClusterMetrics(IDWriteTextLayout* This,DWRITE_CLUSTER_METRICS *metrics,UINT32 max_count,UINT32 *act_count) { + return This->lpVtbl->GetClusterMetrics(This,metrics,max_count,act_count); +} +static inline HRESULT IDWriteTextLayout_DetermineMinWidth(IDWriteTextLayout* This,FLOAT *min_width) { + return This->lpVtbl->DetermineMinWidth(This,min_width); +} +static inline HRESULT IDWriteTextLayout_HitTestPoint(IDWriteTextLayout* This,FLOAT pointX,FLOAT pointY,WINBOOL *is_trailinghit,WINBOOL *is_inside,DWRITE_HIT_TEST_METRICS *metrics) { + return This->lpVtbl->HitTestPoint(This,pointX,pointY,is_trailinghit,is_inside,metrics); +} +static inline HRESULT IDWriteTextLayout_HitTestTextPosition(IDWriteTextLayout* This,UINT32 textPosition,WINBOOL is_trailinghit,FLOAT *pointX,FLOAT *pointY,DWRITE_HIT_TEST_METRICS *metrics) { + return This->lpVtbl->HitTestTextPosition(This,textPosition,is_trailinghit,pointX,pointY,metrics); +} +static inline HRESULT IDWriteTextLayout_HitTestTextRange(IDWriteTextLayout* This,UINT32 textPosition,UINT32 textLength,FLOAT originX,FLOAT originY,DWRITE_HIT_TEST_METRICS *metrics,UINT32 max_metricscount,UINT32 *actual_metricscount) { + return This->lpVtbl->HitTestTextRange(This,textPosition,textLength,originX,originY,metrics,max_metricscount,actual_metricscount); +} +#endif +#endif + +#endif + + +#endif /* __IDWriteTextLayout_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IDWriteNumberSubstitution interface + */ +#ifndef __IDWriteNumberSubstitution_INTERFACE_DEFINED__ +#define __IDWriteNumberSubstitution_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDWriteNumberSubstitution, 0x14885cc9, 0xbab0, 0x4f90, 0xb6,0xed, 0x5c,0x36,0x6a,0x2c,0xd0,0x3d); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("14885cc9-bab0-4f90-b6ed-5c366a2cd03d") +IDWriteNumberSubstitution : public IUnknown +{ +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDWriteNumberSubstitution, 0x14885cc9, 0xbab0, 0x4f90, 0xb6,0xed, 0x5c,0x36,0x6a,0x2c,0xd0,0x3d) +#endif +#else +typedef struct IDWriteNumberSubstitutionVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDWriteNumberSubstitution *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDWriteNumberSubstitution *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDWriteNumberSubstitution *This); + + END_INTERFACE +} IDWriteNumberSubstitutionVtbl; + +interface IDWriteNumberSubstitution { + CONST_VTBL IDWriteNumberSubstitutionVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDWriteNumberSubstitution_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteNumberSubstitution_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDWriteNumberSubstitution_Release(This) (This)->lpVtbl->Release(This) +#else +/*** IUnknown methods ***/ +static inline HRESULT IDWriteNumberSubstitution_QueryInterface(IDWriteNumberSubstitution* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static inline ULONG IDWriteNumberSubstitution_AddRef(IDWriteNumberSubstitution* This) { + return This->lpVtbl->AddRef(This); +} +static inline ULONG IDWriteNumberSubstitution_Release(IDWriteNumberSubstitution* This) { + return This->lpVtbl->Release(This); +} +#endif +#endif + +#endif + + +#endif /* __IDWriteNumberSubstitution_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IDWriteTextAnalysisSource interface + */ +#ifndef __IDWriteTextAnalysisSource_INTERFACE_DEFINED__ +#define __IDWriteTextAnalysisSource_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDWriteTextAnalysisSource, 0x688e1a58, 0x5094, 0x47c8, 0xad,0xc8, 0xfb,0xce,0xa6,0x0a,0xe9,0x2b); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("688e1a58-5094-47c8-adc8-fbcea60ae92b") +IDWriteTextAnalysisSource : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE GetTextAtPosition( + UINT32 position, + const WCHAR **text, + UINT32 *text_len) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetTextBeforePosition( + UINT32 position, + const WCHAR **text, + UINT32 *text_len) = 0; + + virtual DWRITE_READING_DIRECTION STDMETHODCALLTYPE GetParagraphReadingDirection( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetLocaleName( + UINT32 position, + UINT32 *text_len, + const WCHAR **locale) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetNumberSubstitution( + UINT32 position, + UINT32 *text_len, + IDWriteNumberSubstitution **substitution) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDWriteTextAnalysisSource, 0x688e1a58, 0x5094, 0x47c8, 0xad,0xc8, 0xfb,0xce,0xa6,0x0a,0xe9,0x2b) +#endif +#else +typedef struct IDWriteTextAnalysisSourceVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDWriteTextAnalysisSource *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDWriteTextAnalysisSource *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDWriteTextAnalysisSource *This); + + /*** IDWriteTextAnalysisSource methods ***/ + HRESULT (STDMETHODCALLTYPE *GetTextAtPosition)( + IDWriteTextAnalysisSource *This, + UINT32 position, + const WCHAR **text, + UINT32 *text_len); + + HRESULT (STDMETHODCALLTYPE *GetTextBeforePosition)( + IDWriteTextAnalysisSource *This, + UINT32 position, + const WCHAR **text, + UINT32 *text_len); + + DWRITE_READING_DIRECTION (STDMETHODCALLTYPE *GetParagraphReadingDirection)( + IDWriteTextAnalysisSource *This); + + HRESULT (STDMETHODCALLTYPE *GetLocaleName)( + IDWriteTextAnalysisSource *This, + UINT32 position, + UINT32 *text_len, + const WCHAR **locale); + + HRESULT (STDMETHODCALLTYPE *GetNumberSubstitution)( + IDWriteTextAnalysisSource *This, + UINT32 position, + UINT32 *text_len, + IDWriteNumberSubstitution **substitution); + + END_INTERFACE +} IDWriteTextAnalysisSourceVtbl; + +interface IDWriteTextAnalysisSource { + CONST_VTBL IDWriteTextAnalysisSourceVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDWriteTextAnalysisSource_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteTextAnalysisSource_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDWriteTextAnalysisSource_Release(This) (This)->lpVtbl->Release(This) +/*** IDWriteTextAnalysisSource methods ***/ +#define IDWriteTextAnalysisSource_GetTextAtPosition(This,position,text,text_len) (This)->lpVtbl->GetTextAtPosition(This,position,text,text_len) +#define IDWriteTextAnalysisSource_GetTextBeforePosition(This,position,text,text_len) (This)->lpVtbl->GetTextBeforePosition(This,position,text,text_len) +#define IDWriteTextAnalysisSource_GetParagraphReadingDirection(This) (This)->lpVtbl->GetParagraphReadingDirection(This) +#define IDWriteTextAnalysisSource_GetLocaleName(This,position,text_len,locale) (This)->lpVtbl->GetLocaleName(This,position,text_len,locale) +#define IDWriteTextAnalysisSource_GetNumberSubstitution(This,position,text_len,substitution) (This)->lpVtbl->GetNumberSubstitution(This,position,text_len,substitution) +#else +/*** IUnknown methods ***/ +static inline HRESULT IDWriteTextAnalysisSource_QueryInterface(IDWriteTextAnalysisSource* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static inline ULONG IDWriteTextAnalysisSource_AddRef(IDWriteTextAnalysisSource* This) { + return This->lpVtbl->AddRef(This); +} +static inline ULONG IDWriteTextAnalysisSource_Release(IDWriteTextAnalysisSource* This) { + return This->lpVtbl->Release(This); +} +/*** IDWriteTextAnalysisSource methods ***/ +static inline HRESULT IDWriteTextAnalysisSource_GetTextAtPosition(IDWriteTextAnalysisSource* This,UINT32 position,const WCHAR **text,UINT32 *text_len) { + return This->lpVtbl->GetTextAtPosition(This,position,text,text_len); +} +static inline HRESULT IDWriteTextAnalysisSource_GetTextBeforePosition(IDWriteTextAnalysisSource* This,UINT32 position,const WCHAR **text,UINT32 *text_len) { + return This->lpVtbl->GetTextBeforePosition(This,position,text,text_len); +} +static inline DWRITE_READING_DIRECTION IDWriteTextAnalysisSource_GetParagraphReadingDirection(IDWriteTextAnalysisSource* This) { + return This->lpVtbl->GetParagraphReadingDirection(This); +} +static inline HRESULT IDWriteTextAnalysisSource_GetLocaleName(IDWriteTextAnalysisSource* This,UINT32 position,UINT32 *text_len,const WCHAR **locale) { + return This->lpVtbl->GetLocaleName(This,position,text_len,locale); +} +static inline HRESULT IDWriteTextAnalysisSource_GetNumberSubstitution(IDWriteTextAnalysisSource* This,UINT32 position,UINT32 *text_len,IDWriteNumberSubstitution **substitution) { + return This->lpVtbl->GetNumberSubstitution(This,position,text_len,substitution); +} +#endif +#endif + +#endif + + +#endif /* __IDWriteTextAnalysisSource_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IDWriteTextAnalysisSink interface + */ +#ifndef __IDWriteTextAnalysisSink_INTERFACE_DEFINED__ +#define __IDWriteTextAnalysisSink_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDWriteTextAnalysisSink, 0x5810cd44, 0x0ca0, 0x4701, 0xb3,0xfa, 0xbe,0xc5,0x18,0x2a,0xe4,0xf6); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("5810cd44-0ca0-4701-b3fa-bec5182ae4f6") +IDWriteTextAnalysisSink : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE SetScriptAnalysis( + UINT32 position, + UINT32 length, + const DWRITE_SCRIPT_ANALYSIS *scriptanalysis) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetLineBreakpoints( + UINT32 position, + UINT32 length, + const DWRITE_LINE_BREAKPOINT *breakpoints) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetBidiLevel( + UINT32 position, + UINT32 length, + UINT8 explicitLevel, + UINT8 resolvedLevel) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetNumberSubstitution( + UINT32 position, + UINT32 length, + IDWriteNumberSubstitution *substitution) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDWriteTextAnalysisSink, 0x5810cd44, 0x0ca0, 0x4701, 0xb3,0xfa, 0xbe,0xc5,0x18,0x2a,0xe4,0xf6) +#endif +#else +typedef struct IDWriteTextAnalysisSinkVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDWriteTextAnalysisSink *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDWriteTextAnalysisSink *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDWriteTextAnalysisSink *This); + + /*** IDWriteTextAnalysisSink methods ***/ + HRESULT (STDMETHODCALLTYPE *SetScriptAnalysis)( + IDWriteTextAnalysisSink *This, + UINT32 position, + UINT32 length, + const DWRITE_SCRIPT_ANALYSIS *scriptanalysis); + + HRESULT (STDMETHODCALLTYPE *SetLineBreakpoints)( + IDWriteTextAnalysisSink *This, + UINT32 position, + UINT32 length, + const DWRITE_LINE_BREAKPOINT *breakpoints); + + HRESULT (STDMETHODCALLTYPE *SetBidiLevel)( + IDWriteTextAnalysisSink *This, + UINT32 position, + UINT32 length, + UINT8 explicitLevel, + UINT8 resolvedLevel); + + HRESULT (STDMETHODCALLTYPE *SetNumberSubstitution)( + IDWriteTextAnalysisSink *This, + UINT32 position, + UINT32 length, + IDWriteNumberSubstitution *substitution); + + END_INTERFACE +} IDWriteTextAnalysisSinkVtbl; + +interface IDWriteTextAnalysisSink { + CONST_VTBL IDWriteTextAnalysisSinkVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDWriteTextAnalysisSink_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteTextAnalysisSink_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDWriteTextAnalysisSink_Release(This) (This)->lpVtbl->Release(This) +/*** IDWriteTextAnalysisSink methods ***/ +#define IDWriteTextAnalysisSink_SetScriptAnalysis(This,position,length,scriptanalysis) (This)->lpVtbl->SetScriptAnalysis(This,position,length,scriptanalysis) +#define IDWriteTextAnalysisSink_SetLineBreakpoints(This,position,length,breakpoints) (This)->lpVtbl->SetLineBreakpoints(This,position,length,breakpoints) +#define IDWriteTextAnalysisSink_SetBidiLevel(This,position,length,explicitLevel,resolvedLevel) (This)->lpVtbl->SetBidiLevel(This,position,length,explicitLevel,resolvedLevel) +#define IDWriteTextAnalysisSink_SetNumberSubstitution(This,position,length,substitution) (This)->lpVtbl->SetNumberSubstitution(This,position,length,substitution) +#else +/*** IUnknown methods ***/ +static inline HRESULT IDWriteTextAnalysisSink_QueryInterface(IDWriteTextAnalysisSink* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static inline ULONG IDWriteTextAnalysisSink_AddRef(IDWriteTextAnalysisSink* This) { + return This->lpVtbl->AddRef(This); +} +static inline ULONG IDWriteTextAnalysisSink_Release(IDWriteTextAnalysisSink* This) { + return This->lpVtbl->Release(This); +} +/*** IDWriteTextAnalysisSink methods ***/ +static inline HRESULT IDWriteTextAnalysisSink_SetScriptAnalysis(IDWriteTextAnalysisSink* This,UINT32 position,UINT32 length,const DWRITE_SCRIPT_ANALYSIS *scriptanalysis) { + return This->lpVtbl->SetScriptAnalysis(This,position,length,scriptanalysis); +} +static inline HRESULT IDWriteTextAnalysisSink_SetLineBreakpoints(IDWriteTextAnalysisSink* This,UINT32 position,UINT32 length,const DWRITE_LINE_BREAKPOINT *breakpoints) { + return This->lpVtbl->SetLineBreakpoints(This,position,length,breakpoints); +} +static inline HRESULT IDWriteTextAnalysisSink_SetBidiLevel(IDWriteTextAnalysisSink* This,UINT32 position,UINT32 length,UINT8 explicitLevel,UINT8 resolvedLevel) { + return This->lpVtbl->SetBidiLevel(This,position,length,explicitLevel,resolvedLevel); +} +static inline HRESULT IDWriteTextAnalysisSink_SetNumberSubstitution(IDWriteTextAnalysisSink* This,UINT32 position,UINT32 length,IDWriteNumberSubstitution *substitution) { + return This->lpVtbl->SetNumberSubstitution(This,position,length,substitution); +} +#endif +#endif + +#endif + + +#endif /* __IDWriteTextAnalysisSink_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IDWriteTextAnalyzer interface + */ +#ifndef __IDWriteTextAnalyzer_INTERFACE_DEFINED__ +#define __IDWriteTextAnalyzer_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDWriteTextAnalyzer, 0xb7e6163e, 0x7f46, 0x43b4, 0x84,0xb3, 0xe4,0xe6,0x24,0x9c,0x36,0x5d); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("b7e6163e-7f46-43b4-84b3-e4e6249c365d") +IDWriteTextAnalyzer : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE AnalyzeScript( + IDWriteTextAnalysisSource *source, + UINT32 position, + UINT32 length, + IDWriteTextAnalysisSink *sink) = 0; + + virtual HRESULT STDMETHODCALLTYPE AnalyzeBidi( + IDWriteTextAnalysisSource *source, + UINT32 position, + UINT32 length, + IDWriteTextAnalysisSink *sink) = 0; + + virtual HRESULT STDMETHODCALLTYPE AnalyzeNumberSubstitution( + IDWriteTextAnalysisSource *source, + UINT32 position, + UINT32 length, + IDWriteTextAnalysisSink *sink) = 0; + + virtual HRESULT STDMETHODCALLTYPE AnalyzeLineBreakpoints( + IDWriteTextAnalysisSource *source, + UINT32 position, + UINT32 length, + IDWriteTextAnalysisSink *sink) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetGlyphs( + const WCHAR *text, + UINT32 length, + IDWriteFontFace *font_face, + WINBOOL is_sideways, + WINBOOL is_rtl, + const DWRITE_SCRIPT_ANALYSIS *analysis, + const WCHAR *locale, + IDWriteNumberSubstitution *substitution, + const DWRITE_TYPOGRAPHIC_FEATURES **features, + const UINT32 *feature_range_len, + UINT32 feature_ranges, + UINT32 max_glyph_count, + UINT16 *clustermap, + DWRITE_SHAPING_TEXT_PROPERTIES *text_props, + UINT16 *glyph_indices, + DWRITE_SHAPING_GLYPH_PROPERTIES *glyph_props, + UINT32 *actual_glyph_count) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetGlyphPlacements( + const WCHAR *text, + const UINT16 *clustermap, + DWRITE_SHAPING_TEXT_PROPERTIES *props, + UINT32 text_len, + const UINT16 *glyph_indices, + const DWRITE_SHAPING_GLYPH_PROPERTIES *glyph_props, + UINT32 glyph_count, + IDWriteFontFace *font_face, + FLOAT fontEmSize, + WINBOOL is_sideways, + WINBOOL is_rtl, + const DWRITE_SCRIPT_ANALYSIS *analysis, + const WCHAR *locale, + const DWRITE_TYPOGRAPHIC_FEATURES **features, + const UINT32 *feature_range_len, + UINT32 feature_ranges, + FLOAT *glyph_advances, + DWRITE_GLYPH_OFFSET *glyph_offsets) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetGdiCompatibleGlyphPlacements( + const WCHAR *text, + const UINT16 *clustermap, + DWRITE_SHAPING_TEXT_PROPERTIES *props, + UINT32 text_len, + const UINT16 *glyph_indices, + const DWRITE_SHAPING_GLYPH_PROPERTIES *glyph_props, + UINT32 glyph_count, + IDWriteFontFace *font_face, + FLOAT fontEmSize, + FLOAT pixels_per_dip, + const DWRITE_MATRIX *transform, + WINBOOL use_gdi_natural, + WINBOOL is_sideways, + WINBOOL is_rtl, + const DWRITE_SCRIPT_ANALYSIS *analysis, + const WCHAR *locale, + const DWRITE_TYPOGRAPHIC_FEATURES **features, + const UINT32 *feature_range_lengths, + UINT32 feature_ranges, + FLOAT *glyph_advances, + DWRITE_GLYPH_OFFSET *glyph_offsets) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDWriteTextAnalyzer, 0xb7e6163e, 0x7f46, 0x43b4, 0x84,0xb3, 0xe4,0xe6,0x24,0x9c,0x36,0x5d) +#endif +#else +typedef struct IDWriteTextAnalyzerVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDWriteTextAnalyzer *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDWriteTextAnalyzer *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDWriteTextAnalyzer *This); + + /*** IDWriteTextAnalyzer methods ***/ + HRESULT (STDMETHODCALLTYPE *AnalyzeScript)( + IDWriteTextAnalyzer *This, + IDWriteTextAnalysisSource *source, + UINT32 position, + UINT32 length, + IDWriteTextAnalysisSink *sink); + + HRESULT (STDMETHODCALLTYPE *AnalyzeBidi)( + IDWriteTextAnalyzer *This, + IDWriteTextAnalysisSource *source, + UINT32 position, + UINT32 length, + IDWriteTextAnalysisSink *sink); + + HRESULT (STDMETHODCALLTYPE *AnalyzeNumberSubstitution)( + IDWriteTextAnalyzer *This, + IDWriteTextAnalysisSource *source, + UINT32 position, + UINT32 length, + IDWriteTextAnalysisSink *sink); + + HRESULT (STDMETHODCALLTYPE *AnalyzeLineBreakpoints)( + IDWriteTextAnalyzer *This, + IDWriteTextAnalysisSource *source, + UINT32 position, + UINT32 length, + IDWriteTextAnalysisSink *sink); + + HRESULT (STDMETHODCALLTYPE *GetGlyphs)( + IDWriteTextAnalyzer *This, + const WCHAR *text, + UINT32 length, + IDWriteFontFace *font_face, + WINBOOL is_sideways, + WINBOOL is_rtl, + const DWRITE_SCRIPT_ANALYSIS *analysis, + const WCHAR *locale, + IDWriteNumberSubstitution *substitution, + const DWRITE_TYPOGRAPHIC_FEATURES **features, + const UINT32 *feature_range_len, + UINT32 feature_ranges, + UINT32 max_glyph_count, + UINT16 *clustermap, + DWRITE_SHAPING_TEXT_PROPERTIES *text_props, + UINT16 *glyph_indices, + DWRITE_SHAPING_GLYPH_PROPERTIES *glyph_props, + UINT32 *actual_glyph_count); + + HRESULT (STDMETHODCALLTYPE *GetGlyphPlacements)( + IDWriteTextAnalyzer *This, + const WCHAR *text, + const UINT16 *clustermap, + DWRITE_SHAPING_TEXT_PROPERTIES *props, + UINT32 text_len, + const UINT16 *glyph_indices, + const DWRITE_SHAPING_GLYPH_PROPERTIES *glyph_props, + UINT32 glyph_count, + IDWriteFontFace *font_face, + FLOAT fontEmSize, + WINBOOL is_sideways, + WINBOOL is_rtl, + const DWRITE_SCRIPT_ANALYSIS *analysis, + const WCHAR *locale, + const DWRITE_TYPOGRAPHIC_FEATURES **features, + const UINT32 *feature_range_len, + UINT32 feature_ranges, + FLOAT *glyph_advances, + DWRITE_GLYPH_OFFSET *glyph_offsets); + + HRESULT (STDMETHODCALLTYPE *GetGdiCompatibleGlyphPlacements)( + IDWriteTextAnalyzer *This, + const WCHAR *text, + const UINT16 *clustermap, + DWRITE_SHAPING_TEXT_PROPERTIES *props, + UINT32 text_len, + const UINT16 *glyph_indices, + const DWRITE_SHAPING_GLYPH_PROPERTIES *glyph_props, + UINT32 glyph_count, + IDWriteFontFace *font_face, + FLOAT fontEmSize, + FLOAT pixels_per_dip, + const DWRITE_MATRIX *transform, + WINBOOL use_gdi_natural, + WINBOOL is_sideways, + WINBOOL is_rtl, + const DWRITE_SCRIPT_ANALYSIS *analysis, + const WCHAR *locale, + const DWRITE_TYPOGRAPHIC_FEATURES **features, + const UINT32 *feature_range_lengths, + UINT32 feature_ranges, + FLOAT *glyph_advances, + DWRITE_GLYPH_OFFSET *glyph_offsets); + + END_INTERFACE +} IDWriteTextAnalyzerVtbl; + +interface IDWriteTextAnalyzer { + CONST_VTBL IDWriteTextAnalyzerVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDWriteTextAnalyzer_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteTextAnalyzer_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDWriteTextAnalyzer_Release(This) (This)->lpVtbl->Release(This) +/*** IDWriteTextAnalyzer methods ***/ +#define IDWriteTextAnalyzer_AnalyzeScript(This,source,position,length,sink) (This)->lpVtbl->AnalyzeScript(This,source,position,length,sink) +#define IDWriteTextAnalyzer_AnalyzeBidi(This,source,position,length,sink) (This)->lpVtbl->AnalyzeBidi(This,source,position,length,sink) +#define IDWriteTextAnalyzer_AnalyzeNumberSubstitution(This,source,position,length,sink) (This)->lpVtbl->AnalyzeNumberSubstitution(This,source,position,length,sink) +#define IDWriteTextAnalyzer_AnalyzeLineBreakpoints(This,source,position,length,sink) (This)->lpVtbl->AnalyzeLineBreakpoints(This,source,position,length,sink) +#define IDWriteTextAnalyzer_GetGlyphs(This,text,length,font_face,is_sideways,is_rtl,analysis,locale,substitution,features,feature_range_len,feature_ranges,max_glyph_count,clustermap,text_props,glyph_indices,glyph_props,actual_glyph_count) (This)->lpVtbl->GetGlyphs(This,text,length,font_face,is_sideways,is_rtl,analysis,locale,substitution,features,feature_range_len,feature_ranges,max_glyph_count,clustermap,text_props,glyph_indices,glyph_props,actual_glyph_count) +#define IDWriteTextAnalyzer_GetGlyphPlacements(This,text,clustermap,props,text_len,glyph_indices,glyph_props,glyph_count,font_face,fontEmSize,is_sideways,is_rtl,analysis,locale,features,feature_range_len,feature_ranges,glyph_advances,glyph_offsets) (This)->lpVtbl->GetGlyphPlacements(This,text,clustermap,props,text_len,glyph_indices,glyph_props,glyph_count,font_face,fontEmSize,is_sideways,is_rtl,analysis,locale,features,feature_range_len,feature_ranges,glyph_advances,glyph_offsets) +#define IDWriteTextAnalyzer_GetGdiCompatibleGlyphPlacements(This,text,clustermap,props,text_len,glyph_indices,glyph_props,glyph_count,font_face,fontEmSize,pixels_per_dip,transform,use_gdi_natural,is_sideways,is_rtl,analysis,locale,features,feature_range_lengths,feature_ranges,glyph_advances,glyph_offsets) (This)->lpVtbl->GetGdiCompatibleGlyphPlacements(This,text,clustermap,props,text_len,glyph_indices,glyph_props,glyph_count,font_face,fontEmSize,pixels_per_dip,transform,use_gdi_natural,is_sideways,is_rtl,analysis,locale,features,feature_range_lengths,feature_ranges,glyph_advances,glyph_offsets) +#else +/*** IUnknown methods ***/ +static inline HRESULT IDWriteTextAnalyzer_QueryInterface(IDWriteTextAnalyzer* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static inline ULONG IDWriteTextAnalyzer_AddRef(IDWriteTextAnalyzer* This) { + return This->lpVtbl->AddRef(This); +} +static inline ULONG IDWriteTextAnalyzer_Release(IDWriteTextAnalyzer* This) { + return This->lpVtbl->Release(This); +} +/*** IDWriteTextAnalyzer methods ***/ +static inline HRESULT IDWriteTextAnalyzer_AnalyzeScript(IDWriteTextAnalyzer* This,IDWriteTextAnalysisSource *source,UINT32 position,UINT32 length,IDWriteTextAnalysisSink *sink) { + return This->lpVtbl->AnalyzeScript(This,source,position,length,sink); +} +static inline HRESULT IDWriteTextAnalyzer_AnalyzeBidi(IDWriteTextAnalyzer* This,IDWriteTextAnalysisSource *source,UINT32 position,UINT32 length,IDWriteTextAnalysisSink *sink) { + return This->lpVtbl->AnalyzeBidi(This,source,position,length,sink); +} +static inline HRESULT IDWriteTextAnalyzer_AnalyzeNumberSubstitution(IDWriteTextAnalyzer* This,IDWriteTextAnalysisSource *source,UINT32 position,UINT32 length,IDWriteTextAnalysisSink *sink) { + return This->lpVtbl->AnalyzeNumberSubstitution(This,source,position,length,sink); +} +static inline HRESULT IDWriteTextAnalyzer_AnalyzeLineBreakpoints(IDWriteTextAnalyzer* This,IDWriteTextAnalysisSource *source,UINT32 position,UINT32 length,IDWriteTextAnalysisSink *sink) { + return This->lpVtbl->AnalyzeLineBreakpoints(This,source,position,length,sink); +} +static inline HRESULT IDWriteTextAnalyzer_GetGlyphs(IDWriteTextAnalyzer* This,const WCHAR *text,UINT32 length,IDWriteFontFace *font_face,WINBOOL is_sideways,WINBOOL is_rtl,const DWRITE_SCRIPT_ANALYSIS *analysis,const WCHAR *locale,IDWriteNumberSubstitution *substitution,const DWRITE_TYPOGRAPHIC_FEATURES **features,const UINT32 *feature_range_len,UINT32 feature_ranges,UINT32 max_glyph_count,UINT16 *clustermap,DWRITE_SHAPING_TEXT_PROPERTIES *text_props,UINT16 *glyph_indices,DWRITE_SHAPING_GLYPH_PROPERTIES *glyph_props,UINT32 *actual_glyph_count) { + return This->lpVtbl->GetGlyphs(This,text,length,font_face,is_sideways,is_rtl,analysis,locale,substitution,features,feature_range_len,feature_ranges,max_glyph_count,clustermap,text_props,glyph_indices,glyph_props,actual_glyph_count); +} +static inline HRESULT IDWriteTextAnalyzer_GetGlyphPlacements(IDWriteTextAnalyzer* This,const WCHAR *text,const UINT16 *clustermap,DWRITE_SHAPING_TEXT_PROPERTIES *props,UINT32 text_len,const UINT16 *glyph_indices,const DWRITE_SHAPING_GLYPH_PROPERTIES *glyph_props,UINT32 glyph_count,IDWriteFontFace *font_face,FLOAT fontEmSize,WINBOOL is_sideways,WINBOOL is_rtl,const DWRITE_SCRIPT_ANALYSIS *analysis,const WCHAR *locale,const DWRITE_TYPOGRAPHIC_FEATURES **features,const UINT32 *feature_range_len,UINT32 feature_ranges,FLOAT *glyph_advances,DWRITE_GLYPH_OFFSET *glyph_offsets) { + return This->lpVtbl->GetGlyphPlacements(This,text,clustermap,props,text_len,glyph_indices,glyph_props,glyph_count,font_face,fontEmSize,is_sideways,is_rtl,analysis,locale,features,feature_range_len,feature_ranges,glyph_advances,glyph_offsets); +} +static inline HRESULT IDWriteTextAnalyzer_GetGdiCompatibleGlyphPlacements(IDWriteTextAnalyzer* This,const WCHAR *text,const UINT16 *clustermap,DWRITE_SHAPING_TEXT_PROPERTIES *props,UINT32 text_len,const UINT16 *glyph_indices,const DWRITE_SHAPING_GLYPH_PROPERTIES *glyph_props,UINT32 glyph_count,IDWriteFontFace *font_face,FLOAT fontEmSize,FLOAT pixels_per_dip,const DWRITE_MATRIX *transform,WINBOOL use_gdi_natural,WINBOOL is_sideways,WINBOOL is_rtl,const DWRITE_SCRIPT_ANALYSIS *analysis,const WCHAR *locale,const DWRITE_TYPOGRAPHIC_FEATURES **features,const UINT32 *feature_range_lengths,UINT32 feature_ranges,FLOAT *glyph_advances,DWRITE_GLYPH_OFFSET *glyph_offsets) { + return This->lpVtbl->GetGdiCompatibleGlyphPlacements(This,text,clustermap,props,text_len,glyph_indices,glyph_props,glyph_count,font_face,fontEmSize,pixels_per_dip,transform,use_gdi_natural,is_sideways,is_rtl,analysis,locale,features,feature_range_lengths,feature_ranges,glyph_advances,glyph_offsets); +} +#endif +#endif + +#endif + + +#endif /* __IDWriteTextAnalyzer_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IDWriteGlyphRunAnalysis interface + */ +#ifndef __IDWriteGlyphRunAnalysis_INTERFACE_DEFINED__ +#define __IDWriteGlyphRunAnalysis_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDWriteGlyphRunAnalysis, 0x7d97dbf7, 0xe085, 0x42d4, 0x81,0xe3, 0x6a,0x88,0x3b,0xde,0xd1,0x18); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("7d97dbf7-e085-42d4-81e3-6a883bded118") +IDWriteGlyphRunAnalysis : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE GetAlphaTextureBounds( + DWRITE_TEXTURE_TYPE type, + RECT *bounds) = 0; + + virtual HRESULT STDMETHODCALLTYPE CreateAlphaTexture( + DWRITE_TEXTURE_TYPE type, + const RECT *bounds, + BYTE *alphaValues, + UINT32 bufferSize) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetAlphaBlendParams( + IDWriteRenderingParams *renderingParams, + FLOAT *blendGamma, + FLOAT *blendEnhancedContrast, + FLOAT *blendClearTypeLevel) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDWriteGlyphRunAnalysis, 0x7d97dbf7, 0xe085, 0x42d4, 0x81,0xe3, 0x6a,0x88,0x3b,0xde,0xd1,0x18) +#endif +#else +typedef struct IDWriteGlyphRunAnalysisVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDWriteGlyphRunAnalysis *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDWriteGlyphRunAnalysis *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDWriteGlyphRunAnalysis *This); + + /*** IDWriteGlyphRunAnalysis methods ***/ + HRESULT (STDMETHODCALLTYPE *GetAlphaTextureBounds)( + IDWriteGlyphRunAnalysis *This, + DWRITE_TEXTURE_TYPE type, + RECT *bounds); + + HRESULT (STDMETHODCALLTYPE *CreateAlphaTexture)( + IDWriteGlyphRunAnalysis *This, + DWRITE_TEXTURE_TYPE type, + const RECT *bounds, + BYTE *alphaValues, + UINT32 bufferSize); + + HRESULT (STDMETHODCALLTYPE *GetAlphaBlendParams)( + IDWriteGlyphRunAnalysis *This, + IDWriteRenderingParams *renderingParams, + FLOAT *blendGamma, + FLOAT *blendEnhancedContrast, + FLOAT *blendClearTypeLevel); + + END_INTERFACE +} IDWriteGlyphRunAnalysisVtbl; + +interface IDWriteGlyphRunAnalysis { + CONST_VTBL IDWriteGlyphRunAnalysisVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDWriteGlyphRunAnalysis_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteGlyphRunAnalysis_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDWriteGlyphRunAnalysis_Release(This) (This)->lpVtbl->Release(This) +/*** IDWriteGlyphRunAnalysis methods ***/ +#define IDWriteGlyphRunAnalysis_GetAlphaTextureBounds(This,type,bounds) (This)->lpVtbl->GetAlphaTextureBounds(This,type,bounds) +#define IDWriteGlyphRunAnalysis_CreateAlphaTexture(This,type,bounds,alphaValues,bufferSize) (This)->lpVtbl->CreateAlphaTexture(This,type,bounds,alphaValues,bufferSize) +#define IDWriteGlyphRunAnalysis_GetAlphaBlendParams(This,renderingParams,blendGamma,blendEnhancedContrast,blendClearTypeLevel) (This)->lpVtbl->GetAlphaBlendParams(This,renderingParams,blendGamma,blendEnhancedContrast,blendClearTypeLevel) +#else +/*** IUnknown methods ***/ +static inline HRESULT IDWriteGlyphRunAnalysis_QueryInterface(IDWriteGlyphRunAnalysis* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static inline ULONG IDWriteGlyphRunAnalysis_AddRef(IDWriteGlyphRunAnalysis* This) { + return This->lpVtbl->AddRef(This); +} +static inline ULONG IDWriteGlyphRunAnalysis_Release(IDWriteGlyphRunAnalysis* This) { + return This->lpVtbl->Release(This); +} +/*** IDWriteGlyphRunAnalysis methods ***/ +static inline HRESULT IDWriteGlyphRunAnalysis_GetAlphaTextureBounds(IDWriteGlyphRunAnalysis* This,DWRITE_TEXTURE_TYPE type,RECT *bounds) { + return This->lpVtbl->GetAlphaTextureBounds(This,type,bounds); +} +static inline HRESULT IDWriteGlyphRunAnalysis_CreateAlphaTexture(IDWriteGlyphRunAnalysis* This,DWRITE_TEXTURE_TYPE type,const RECT *bounds,BYTE *alphaValues,UINT32 bufferSize) { + return This->lpVtbl->CreateAlphaTexture(This,type,bounds,alphaValues,bufferSize); +} +static inline HRESULT IDWriteGlyphRunAnalysis_GetAlphaBlendParams(IDWriteGlyphRunAnalysis* This,IDWriteRenderingParams *renderingParams,FLOAT *blendGamma,FLOAT *blendEnhancedContrast,FLOAT *blendClearTypeLevel) { + return This->lpVtbl->GetAlphaBlendParams(This,renderingParams,blendGamma,blendEnhancedContrast,blendClearTypeLevel); +} +#endif +#endif + +#endif + + +#endif /* __IDWriteGlyphRunAnalysis_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IDWriteFactory interface + */ +#ifndef __IDWriteFactory_INTERFACE_DEFINED__ +#define __IDWriteFactory_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDWriteFactory, 0xb859ee5a, 0xd838, 0x4b5b, 0xa2,0xe8, 0x1a,0xdc,0x7d,0x93,0xdb,0x48); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("b859ee5a-d838-4b5b-a2e8-1adc7d93db48") +IDWriteFactory : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE GetSystemFontCollection( + IDWriteFontCollection **collection, + WINBOOL check_for_updates = FALSE) = 0; + + virtual HRESULT STDMETHODCALLTYPE CreateCustomFontCollection( + IDWriteFontCollectionLoader *loader, + const void *key, + UINT32 key_size, + IDWriteFontCollection **collection) = 0; + + virtual HRESULT STDMETHODCALLTYPE RegisterFontCollectionLoader( + IDWriteFontCollectionLoader *loader) = 0; + + virtual HRESULT STDMETHODCALLTYPE UnregisterFontCollectionLoader( + IDWriteFontCollectionLoader *loader) = 0; + + virtual HRESULT STDMETHODCALLTYPE CreateFontFileReference( + const WCHAR *path, + const FILETIME *writetime, + IDWriteFontFile **font_file) = 0; + + virtual HRESULT STDMETHODCALLTYPE CreateCustomFontFileReference( + const void *reference_key, + UINT32 key_size, + IDWriteFontFileLoader *loader, + IDWriteFontFile **font_file) = 0; + + virtual HRESULT STDMETHODCALLTYPE CreateFontFace( + DWRITE_FONT_FACE_TYPE facetype, + UINT32 files_number, + IDWriteFontFile *const *font_files, + UINT32 index, + DWRITE_FONT_SIMULATIONS sim_flags, + IDWriteFontFace **font_face) = 0; + + virtual HRESULT STDMETHODCALLTYPE CreateRenderingParams( + IDWriteRenderingParams **params) = 0; + + virtual HRESULT STDMETHODCALLTYPE CreateMonitorRenderingParams( + HMONITOR monitor, + IDWriteRenderingParams **params) = 0; + + virtual HRESULT STDMETHODCALLTYPE CreateCustomRenderingParams( + FLOAT gamma, + FLOAT enhancedContrast, + FLOAT cleartype_level, + DWRITE_PIXEL_GEOMETRY geometry, + DWRITE_RENDERING_MODE mode, + IDWriteRenderingParams **params) = 0; + + virtual HRESULT STDMETHODCALLTYPE RegisterFontFileLoader( + IDWriteFontFileLoader *loader) = 0; + + virtual HRESULT STDMETHODCALLTYPE UnregisterFontFileLoader( + IDWriteFontFileLoader *loader) = 0; + + virtual HRESULT STDMETHODCALLTYPE CreateTextFormat( + const WCHAR *family_name, + IDWriteFontCollection *collection, + DWRITE_FONT_WEIGHT weight, + DWRITE_FONT_STYLE style, + DWRITE_FONT_STRETCH stretch, + FLOAT size, + const WCHAR *locale, + IDWriteTextFormat **format) = 0; + + virtual HRESULT STDMETHODCALLTYPE CreateTypography( + IDWriteTypography **typography) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetGdiInterop( + IDWriteGdiInterop **gdi_interop) = 0; + + virtual HRESULT STDMETHODCALLTYPE CreateTextLayout( + const WCHAR *string, + UINT32 len, + IDWriteTextFormat *format, + FLOAT max_width, + FLOAT max_height, + IDWriteTextLayout **layout) = 0; + + virtual HRESULT STDMETHODCALLTYPE CreateGdiCompatibleTextLayout( + const WCHAR *string, + UINT32 len, + IDWriteTextFormat *format, + FLOAT layout_width, + FLOAT layout_height, + FLOAT pixels_per_dip, + const DWRITE_MATRIX *transform, + WINBOOL use_gdi_natural, + IDWriteTextLayout **layout) = 0; + + virtual HRESULT STDMETHODCALLTYPE CreateEllipsisTrimmingSign( + IDWriteTextFormat *format, + IDWriteInlineObject **trimming_sign) = 0; + + virtual HRESULT STDMETHODCALLTYPE CreateTextAnalyzer( + IDWriteTextAnalyzer **analyzer) = 0; + + virtual HRESULT STDMETHODCALLTYPE CreateNumberSubstitution( + DWRITE_NUMBER_SUBSTITUTION_METHOD method, + const WCHAR *locale, + WINBOOL ignore_user_override, + IDWriteNumberSubstitution **substitution) = 0; + + virtual HRESULT STDMETHODCALLTYPE CreateGlyphRunAnalysis( + const DWRITE_GLYPH_RUN *glyph_run, + FLOAT pixels_per_dip, + const DWRITE_MATRIX *transform, + DWRITE_RENDERING_MODE rendering_mode, + DWRITE_MEASURING_MODE measuring_mode, + FLOAT baseline_x, + FLOAT baseline_y, + IDWriteGlyphRunAnalysis **analysis) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDWriteFactory, 0xb859ee5a, 0xd838, 0x4b5b, 0xa2,0xe8, 0x1a,0xdc,0x7d,0x93,0xdb,0x48) +#endif +#else +typedef struct IDWriteFactoryVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDWriteFactory *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDWriteFactory *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDWriteFactory *This); + + /*** IDWriteFactory methods ***/ + HRESULT (STDMETHODCALLTYPE *GetSystemFontCollection)( + IDWriteFactory *This, + IDWriteFontCollection **collection, + WINBOOL check_for_updates); + + HRESULT (STDMETHODCALLTYPE *CreateCustomFontCollection)( + IDWriteFactory *This, + IDWriteFontCollectionLoader *loader, + const void *key, + UINT32 key_size, + IDWriteFontCollection **collection); + + HRESULT (STDMETHODCALLTYPE *RegisterFontCollectionLoader)( + IDWriteFactory *This, + IDWriteFontCollectionLoader *loader); + + HRESULT (STDMETHODCALLTYPE *UnregisterFontCollectionLoader)( + IDWriteFactory *This, + IDWriteFontCollectionLoader *loader); + + HRESULT (STDMETHODCALLTYPE *CreateFontFileReference)( + IDWriteFactory *This, + const WCHAR *path, + const FILETIME *writetime, + IDWriteFontFile **font_file); + + HRESULT (STDMETHODCALLTYPE *CreateCustomFontFileReference)( + IDWriteFactory *This, + const void *reference_key, + UINT32 key_size, + IDWriteFontFileLoader *loader, + IDWriteFontFile **font_file); + + HRESULT (STDMETHODCALLTYPE *CreateFontFace)( + IDWriteFactory *This, + DWRITE_FONT_FACE_TYPE facetype, + UINT32 files_number, + IDWriteFontFile *const *font_files, + UINT32 index, + DWRITE_FONT_SIMULATIONS sim_flags, + IDWriteFontFace **font_face); + + HRESULT (STDMETHODCALLTYPE *CreateRenderingParams)( + IDWriteFactory *This, + IDWriteRenderingParams **params); + + HRESULT (STDMETHODCALLTYPE *CreateMonitorRenderingParams)( + IDWriteFactory *This, + HMONITOR monitor, + IDWriteRenderingParams **params); + + HRESULT (STDMETHODCALLTYPE *CreateCustomRenderingParams)( + IDWriteFactory *This, + FLOAT gamma, + FLOAT enhancedContrast, + FLOAT cleartype_level, + DWRITE_PIXEL_GEOMETRY geometry, + DWRITE_RENDERING_MODE mode, + IDWriteRenderingParams **params); + + HRESULT (STDMETHODCALLTYPE *RegisterFontFileLoader)( + IDWriteFactory *This, + IDWriteFontFileLoader *loader); + + HRESULT (STDMETHODCALLTYPE *UnregisterFontFileLoader)( + IDWriteFactory *This, + IDWriteFontFileLoader *loader); + + HRESULT (STDMETHODCALLTYPE *CreateTextFormat)( + IDWriteFactory *This, + const WCHAR *family_name, + IDWriteFontCollection *collection, + DWRITE_FONT_WEIGHT weight, + DWRITE_FONT_STYLE style, + DWRITE_FONT_STRETCH stretch, + FLOAT size, + const WCHAR *locale, + IDWriteTextFormat **format); + + HRESULT (STDMETHODCALLTYPE *CreateTypography)( + IDWriteFactory *This, + IDWriteTypography **typography); + + HRESULT (STDMETHODCALLTYPE *GetGdiInterop)( + IDWriteFactory *This, + IDWriteGdiInterop **gdi_interop); + + HRESULT (STDMETHODCALLTYPE *CreateTextLayout)( + IDWriteFactory *This, + const WCHAR *string, + UINT32 len, + IDWriteTextFormat *format, + FLOAT max_width, + FLOAT max_height, + IDWriteTextLayout **layout); + + HRESULT (STDMETHODCALLTYPE *CreateGdiCompatibleTextLayout)( + IDWriteFactory *This, + const WCHAR *string, + UINT32 len, + IDWriteTextFormat *format, + FLOAT layout_width, + FLOAT layout_height, + FLOAT pixels_per_dip, + const DWRITE_MATRIX *transform, + WINBOOL use_gdi_natural, + IDWriteTextLayout **layout); + + HRESULT (STDMETHODCALLTYPE *CreateEllipsisTrimmingSign)( + IDWriteFactory *This, + IDWriteTextFormat *format, + IDWriteInlineObject **trimming_sign); + + HRESULT (STDMETHODCALLTYPE *CreateTextAnalyzer)( + IDWriteFactory *This, + IDWriteTextAnalyzer **analyzer); + + HRESULT (STDMETHODCALLTYPE *CreateNumberSubstitution)( + IDWriteFactory *This, + DWRITE_NUMBER_SUBSTITUTION_METHOD method, + const WCHAR *locale, + WINBOOL ignore_user_override, + IDWriteNumberSubstitution **substitution); + + HRESULT (STDMETHODCALLTYPE *CreateGlyphRunAnalysis)( + IDWriteFactory *This, + const DWRITE_GLYPH_RUN *glyph_run, + FLOAT pixels_per_dip, + const DWRITE_MATRIX *transform, + DWRITE_RENDERING_MODE rendering_mode, + DWRITE_MEASURING_MODE measuring_mode, + FLOAT baseline_x, + FLOAT baseline_y, + IDWriteGlyphRunAnalysis **analysis); + + END_INTERFACE +} IDWriteFactoryVtbl; + +interface IDWriteFactory { + CONST_VTBL IDWriteFactoryVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDWriteFactory_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteFactory_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDWriteFactory_Release(This) (This)->lpVtbl->Release(This) +/*** IDWriteFactory methods ***/ +#define IDWriteFactory_GetSystemFontCollection(This,collection,check_for_updates) (This)->lpVtbl->GetSystemFontCollection(This,collection,check_for_updates) +#define IDWriteFactory_CreateCustomFontCollection(This,loader,key,key_size,collection) (This)->lpVtbl->CreateCustomFontCollection(This,loader,key,key_size,collection) +#define IDWriteFactory_RegisterFontCollectionLoader(This,loader) (This)->lpVtbl->RegisterFontCollectionLoader(This,loader) +#define IDWriteFactory_UnregisterFontCollectionLoader(This,loader) (This)->lpVtbl->UnregisterFontCollectionLoader(This,loader) +#define IDWriteFactory_CreateFontFileReference(This,path,writetime,font_file) (This)->lpVtbl->CreateFontFileReference(This,path,writetime,font_file) +#define IDWriteFactory_CreateCustomFontFileReference(This,reference_key,key_size,loader,font_file) (This)->lpVtbl->CreateCustomFontFileReference(This,reference_key,key_size,loader,font_file) +#define IDWriteFactory_CreateFontFace(This,facetype,files_number,font_files,index,sim_flags,font_face) (This)->lpVtbl->CreateFontFace(This,facetype,files_number,font_files,index,sim_flags,font_face) +#define IDWriteFactory_CreateRenderingParams(This,params) (This)->lpVtbl->CreateRenderingParams(This,params) +#define IDWriteFactory_CreateMonitorRenderingParams(This,monitor,params) (This)->lpVtbl->CreateMonitorRenderingParams(This,monitor,params) +#define IDWriteFactory_CreateCustomRenderingParams(This,gamma,enhancedContrast,cleartype_level,geometry,mode,params) (This)->lpVtbl->CreateCustomRenderingParams(This,gamma,enhancedContrast,cleartype_level,geometry,mode,params) +#define IDWriteFactory_RegisterFontFileLoader(This,loader) (This)->lpVtbl->RegisterFontFileLoader(This,loader) +#define IDWriteFactory_UnregisterFontFileLoader(This,loader) (This)->lpVtbl->UnregisterFontFileLoader(This,loader) +#define IDWriteFactory_CreateTextFormat(This,family_name,collection,weight,style,stretch,size,locale,format) (This)->lpVtbl->CreateTextFormat(This,family_name,collection,weight,style,stretch,size,locale,format) +#define IDWriteFactory_CreateTypography(This,typography) (This)->lpVtbl->CreateTypography(This,typography) +#define IDWriteFactory_GetGdiInterop(This,gdi_interop) (This)->lpVtbl->GetGdiInterop(This,gdi_interop) +#define IDWriteFactory_CreateTextLayout(This,string,len,format,max_width,max_height,layout) (This)->lpVtbl->CreateTextLayout(This,string,len,format,max_width,max_height,layout) +#define IDWriteFactory_CreateGdiCompatibleTextLayout(This,string,len,format,layout_width,layout_height,pixels_per_dip,transform,use_gdi_natural,layout) (This)->lpVtbl->CreateGdiCompatibleTextLayout(This,string,len,format,layout_width,layout_height,pixels_per_dip,transform,use_gdi_natural,layout) +#define IDWriteFactory_CreateEllipsisTrimmingSign(This,format,trimming_sign) (This)->lpVtbl->CreateEllipsisTrimmingSign(This,format,trimming_sign) +#define IDWriteFactory_CreateTextAnalyzer(This,analyzer) (This)->lpVtbl->CreateTextAnalyzer(This,analyzer) +#define IDWriteFactory_CreateNumberSubstitution(This,method,locale,ignore_user_override,substitution) (This)->lpVtbl->CreateNumberSubstitution(This,method,locale,ignore_user_override,substitution) +#define IDWriteFactory_CreateGlyphRunAnalysis(This,glyph_run,pixels_per_dip,transform,rendering_mode,measuring_mode,baseline_x,baseline_y,analysis) (This)->lpVtbl->CreateGlyphRunAnalysis(This,glyph_run,pixels_per_dip,transform,rendering_mode,measuring_mode,baseline_x,baseline_y,analysis) +#else +/*** IUnknown methods ***/ +static inline HRESULT IDWriteFactory_QueryInterface(IDWriteFactory* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static inline ULONG IDWriteFactory_AddRef(IDWriteFactory* This) { + return This->lpVtbl->AddRef(This); +} +static inline ULONG IDWriteFactory_Release(IDWriteFactory* This) { + return This->lpVtbl->Release(This); +} +/*** IDWriteFactory methods ***/ +static inline HRESULT IDWriteFactory_GetSystemFontCollection(IDWriteFactory* This,IDWriteFontCollection **collection,WINBOOL check_for_updates) { + return This->lpVtbl->GetSystemFontCollection(This,collection,check_for_updates); +} +static inline HRESULT IDWriteFactory_CreateCustomFontCollection(IDWriteFactory* This,IDWriteFontCollectionLoader *loader,const void *key,UINT32 key_size,IDWriteFontCollection **collection) { + return This->lpVtbl->CreateCustomFontCollection(This,loader,key,key_size,collection); +} +static inline HRESULT IDWriteFactory_RegisterFontCollectionLoader(IDWriteFactory* This,IDWriteFontCollectionLoader *loader) { + return This->lpVtbl->RegisterFontCollectionLoader(This,loader); +} +static inline HRESULT IDWriteFactory_UnregisterFontCollectionLoader(IDWriteFactory* This,IDWriteFontCollectionLoader *loader) { + return This->lpVtbl->UnregisterFontCollectionLoader(This,loader); +} +static inline HRESULT IDWriteFactory_CreateFontFileReference(IDWriteFactory* This,const WCHAR *path,const FILETIME *writetime,IDWriteFontFile **font_file) { + return This->lpVtbl->CreateFontFileReference(This,path,writetime,font_file); +} +static inline HRESULT IDWriteFactory_CreateCustomFontFileReference(IDWriteFactory* This,const void *reference_key,UINT32 key_size,IDWriteFontFileLoader *loader,IDWriteFontFile **font_file) { + return This->lpVtbl->CreateCustomFontFileReference(This,reference_key,key_size,loader,font_file); +} +static inline HRESULT IDWriteFactory_CreateFontFace(IDWriteFactory* This,DWRITE_FONT_FACE_TYPE facetype,UINT32 files_number,IDWriteFontFile *const *font_files,UINT32 index,DWRITE_FONT_SIMULATIONS sim_flags,IDWriteFontFace **font_face) { + return This->lpVtbl->CreateFontFace(This,facetype,files_number,font_files,index,sim_flags,font_face); +} +static inline HRESULT IDWriteFactory_CreateRenderingParams(IDWriteFactory* This,IDWriteRenderingParams **params) { + return This->lpVtbl->CreateRenderingParams(This,params); +} +static inline HRESULT IDWriteFactory_CreateMonitorRenderingParams(IDWriteFactory* This,HMONITOR monitor,IDWriteRenderingParams **params) { + return This->lpVtbl->CreateMonitorRenderingParams(This,monitor,params); +} +static inline HRESULT IDWriteFactory_CreateCustomRenderingParams(IDWriteFactory* This,FLOAT gamma,FLOAT enhancedContrast,FLOAT cleartype_level,DWRITE_PIXEL_GEOMETRY geometry,DWRITE_RENDERING_MODE mode,IDWriteRenderingParams **params) { + return This->lpVtbl->CreateCustomRenderingParams(This,gamma,enhancedContrast,cleartype_level,geometry,mode,params); +} +static inline HRESULT IDWriteFactory_RegisterFontFileLoader(IDWriteFactory* This,IDWriteFontFileLoader *loader) { + return This->lpVtbl->RegisterFontFileLoader(This,loader); +} +static inline HRESULT IDWriteFactory_UnregisterFontFileLoader(IDWriteFactory* This,IDWriteFontFileLoader *loader) { + return This->lpVtbl->UnregisterFontFileLoader(This,loader); +} +static inline HRESULT IDWriteFactory_CreateTextFormat(IDWriteFactory* This,const WCHAR *family_name,IDWriteFontCollection *collection,DWRITE_FONT_WEIGHT weight,DWRITE_FONT_STYLE style,DWRITE_FONT_STRETCH stretch,FLOAT size,const WCHAR *locale,IDWriteTextFormat **format) { + return This->lpVtbl->CreateTextFormat(This,family_name,collection,weight,style,stretch,size,locale,format); +} +static inline HRESULT IDWriteFactory_CreateTypography(IDWriteFactory* This,IDWriteTypography **typography) { + return This->lpVtbl->CreateTypography(This,typography); +} +static inline HRESULT IDWriteFactory_GetGdiInterop(IDWriteFactory* This,IDWriteGdiInterop **gdi_interop) { + return This->lpVtbl->GetGdiInterop(This,gdi_interop); +} +static inline HRESULT IDWriteFactory_CreateTextLayout(IDWriteFactory* This,const WCHAR *string,UINT32 len,IDWriteTextFormat *format,FLOAT max_width,FLOAT max_height,IDWriteTextLayout **layout) { + return This->lpVtbl->CreateTextLayout(This,string,len,format,max_width,max_height,layout); +} +static inline HRESULT IDWriteFactory_CreateGdiCompatibleTextLayout(IDWriteFactory* This,const WCHAR *string,UINT32 len,IDWriteTextFormat *format,FLOAT layout_width,FLOAT layout_height,FLOAT pixels_per_dip,const DWRITE_MATRIX *transform,WINBOOL use_gdi_natural,IDWriteTextLayout **layout) { + return This->lpVtbl->CreateGdiCompatibleTextLayout(This,string,len,format,layout_width,layout_height,pixels_per_dip,transform,use_gdi_natural,layout); +} +static inline HRESULT IDWriteFactory_CreateEllipsisTrimmingSign(IDWriteFactory* This,IDWriteTextFormat *format,IDWriteInlineObject **trimming_sign) { + return This->lpVtbl->CreateEllipsisTrimmingSign(This,format,trimming_sign); +} +static inline HRESULT IDWriteFactory_CreateTextAnalyzer(IDWriteFactory* This,IDWriteTextAnalyzer **analyzer) { + return This->lpVtbl->CreateTextAnalyzer(This,analyzer); +} +static inline HRESULT IDWriteFactory_CreateNumberSubstitution(IDWriteFactory* This,DWRITE_NUMBER_SUBSTITUTION_METHOD method,const WCHAR *locale,WINBOOL ignore_user_override,IDWriteNumberSubstitution **substitution) { + return This->lpVtbl->CreateNumberSubstitution(This,method,locale,ignore_user_override,substitution); +} +static inline HRESULT IDWriteFactory_CreateGlyphRunAnalysis(IDWriteFactory* This,const DWRITE_GLYPH_RUN *glyph_run,FLOAT pixels_per_dip,const DWRITE_MATRIX *transform,DWRITE_RENDERING_MODE rendering_mode,DWRITE_MEASURING_MODE measuring_mode,FLOAT baseline_x,FLOAT baseline_y,IDWriteGlyphRunAnalysis **analysis) { + return This->lpVtbl->CreateGlyphRunAnalysis(This,glyph_run,pixels_per_dip,transform,rendering_mode,measuring_mode,baseline_x,baseline_y,analysis); +} +#endif +#endif + +#endif + + +#endif /* __IDWriteFactory_INTERFACE_DEFINED__ */ + +HRESULT WINAPI DWriteCreateFactory(DWRITE_FACTORY_TYPE,REFIID,IUnknown**); +#define FACILITY_DWRITE 0x898 +#define DWRITE_ERR_BASE 0x5000 +#define MAKE_DWRITE_HR(severity, code) MAKE_HRESULT(severity, FACILITY_DWRITE, (DWRITE_ERR_BASE + code)) +#define MAKE_DWRITE_HR_ERR(code) MAKE_DWRITE_HR(SEVERITY_ERROR, code) +/* Begin additional prototypes for all interfaces */ + + +/* End additional prototypes */ + +#ifdef __cplusplus +} +#endif + +#endif /* __dwrite_h__ */ diff --git a/src/text/dwrite_2.h b/src/text/dwrite_2.h new file mode 100644 index 0000000..75cbd7e --- /dev/null +++ b/src/text/dwrite_2.h @@ -0,0 +1,3297 @@ +/*** Autogenerated by WIDL 11.0-rc1 from include/dwrite_2.idl - Do not edit ***/ + +#define COBJMACROS + +#ifdef _WIN32 +#ifndef __REQUIRED_RPCNDR_H_VERSION__ +#define __REQUIRED_RPCNDR_H_VERSION__ 475 +#endif +#include +#include +#endif + +#ifndef COM_NO_WINDOWS_H +#include +#include +#endif + +#ifndef __dwrite_2_h__ +#define __dwrite_2_h__ + +/* Forward declarations */ + +#ifndef __IDWriteTextRenderer1_FWD_DEFINED__ +#define __IDWriteTextRenderer1_FWD_DEFINED__ +typedef interface IDWriteTextRenderer1 IDWriteTextRenderer1; +#ifdef __cplusplus +interface IDWriteTextRenderer1; +#endif /* __cplusplus */ +#endif + +#ifndef __IDWriteFontFallback_FWD_DEFINED__ +#define __IDWriteFontFallback_FWD_DEFINED__ +typedef interface IDWriteFontFallback IDWriteFontFallback; +#ifdef __cplusplus +interface IDWriteFontFallback; +#endif /* __cplusplus */ +#endif + +#ifndef __IDWriteTextFormat1_FWD_DEFINED__ +#define __IDWriteTextFormat1_FWD_DEFINED__ +typedef interface IDWriteTextFormat1 IDWriteTextFormat1; +#ifdef __cplusplus +interface IDWriteTextFormat1; +#endif /* __cplusplus */ +#endif + +#ifndef __IDWriteTextLayout2_FWD_DEFINED__ +#define __IDWriteTextLayout2_FWD_DEFINED__ +typedef interface IDWriteTextLayout2 IDWriteTextLayout2; +#ifdef __cplusplus +interface IDWriteTextLayout2; +#endif /* __cplusplus */ +#endif + +#ifndef __IDWriteTextAnalyzer2_FWD_DEFINED__ +#define __IDWriteTextAnalyzer2_FWD_DEFINED__ +typedef interface IDWriteTextAnalyzer2 IDWriteTextAnalyzer2; +#ifdef __cplusplus +interface IDWriteTextAnalyzer2; +#endif /* __cplusplus */ +#endif + +#ifndef __IDWriteFontFallbackBuilder_FWD_DEFINED__ +#define __IDWriteFontFallbackBuilder_FWD_DEFINED__ +typedef interface IDWriteFontFallbackBuilder IDWriteFontFallbackBuilder; +#ifdef __cplusplus +interface IDWriteFontFallbackBuilder; +#endif /* __cplusplus */ +#endif + +#ifndef __IDWriteFont2_FWD_DEFINED__ +#define __IDWriteFont2_FWD_DEFINED__ +typedef interface IDWriteFont2 IDWriteFont2; +#ifdef __cplusplus +interface IDWriteFont2; +#endif /* __cplusplus */ +#endif + +#ifndef __IDWriteFontFace2_FWD_DEFINED__ +#define __IDWriteFontFace2_FWD_DEFINED__ +typedef interface IDWriteFontFace2 IDWriteFontFace2; +#ifdef __cplusplus +interface IDWriteFontFace2; +#endif /* __cplusplus */ +#endif + +#ifndef __IDWriteColorGlyphRunEnumerator_FWD_DEFINED__ +#define __IDWriteColorGlyphRunEnumerator_FWD_DEFINED__ +typedef interface IDWriteColorGlyphRunEnumerator IDWriteColorGlyphRunEnumerator; +#ifdef __cplusplus +interface IDWriteColorGlyphRunEnumerator; +#endif /* __cplusplus */ +#endif + +#ifndef __IDWriteRenderingParams2_FWD_DEFINED__ +#define __IDWriteRenderingParams2_FWD_DEFINED__ +typedef interface IDWriteRenderingParams2 IDWriteRenderingParams2; +#ifdef __cplusplus +interface IDWriteRenderingParams2; +#endif /* __cplusplus */ +#endif + +#ifndef __IDWriteFactory2_FWD_DEFINED__ +#define __IDWriteFactory2_FWD_DEFINED__ +typedef interface IDWriteFactory2 IDWriteFactory2; +#ifdef __cplusplus +interface IDWriteFactory2; +#endif /* __cplusplus */ +#endif + +/* Headers for imported files */ + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +typedef enum DWRITE_OPTICAL_ALIGNMENT { + DWRITE_OPTICAL_ALIGNMENT_NONE = 0, + DWRITE_OPTICAL_ALIGNMENT_NO_SIDE_BEARINGS = 1 +} DWRITE_OPTICAL_ALIGNMENT; +typedef enum DWRITE_GRID_FIT_MODE { + DWRITE_GRID_FIT_MODE_DEFAULT = 0, + DWRITE_GRID_FIT_MODE_DISABLED = 1, + DWRITE_GRID_FIT_MODE_ENABLED = 2 +} DWRITE_GRID_FIT_MODE; +typedef struct DWRITE_TEXT_METRICS1 { + FLOAT left; + FLOAT top; + FLOAT width; + FLOAT widthIncludingTrailingWhitespace; + FLOAT height; + FLOAT layoutWidth; + FLOAT layoutHeight; + UINT32 maxBidiReorderingDepth; + UINT32 lineCount; + FLOAT heightIncludingTrailingWhitespace; +} DWRITE_TEXT_METRICS1; +#ifndef D3DCOLORVALUE_DEFINED +typedef struct _D3DCOLORVALUE { + __C89_NAMELESS union { + FLOAT r; + FLOAT dvR; + } __C89_NAMELESSUNIONNAME1; + __C89_NAMELESS union { + FLOAT g; + FLOAT dvG; + } __C89_NAMELESSUNIONNAME2; + __C89_NAMELESS union { + FLOAT b; + FLOAT dvB; + } __C89_NAMELESSUNIONNAME3; + __C89_NAMELESS union { + FLOAT a; + FLOAT dvA; + } __C89_NAMELESSUNIONNAME4; +} D3DCOLORVALUE; +#define D3DCOLORVALUE_DEFINED +#endif +typedef D3DCOLORVALUE DWRITE_COLOR_F; +typedef struct DWRITE_COLOR_GLYPH_RUN { + DWRITE_GLYPH_RUN glyphRun; + DWRITE_GLYPH_RUN_DESCRIPTION *glyphRunDescription; + FLOAT baselineOriginX; + FLOAT baselineOriginY; + DWRITE_COLOR_F runColor; + UINT16 paletteIndex; +} DWRITE_COLOR_GLYPH_RUN; +/***************************************************************************** + * IDWriteTextRenderer1 interface + */ +#ifndef __IDWriteTextRenderer1_INTERFACE_DEFINED__ +#define __IDWriteTextRenderer1_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDWriteTextRenderer1, 0xd3e0e934, 0x22a0, 0x427e, 0xaa,0xe4, 0x7d,0x95,0x74,0xb5,0x9d,0xb1); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("d3e0e934-22a0-427e-aae4-7d9574b59db1") +IDWriteTextRenderer1 : public IDWriteTextRenderer +{ + virtual HRESULT STDMETHODCALLTYPE DrawGlyphRun( + void *context, + FLOAT originX, + FLOAT originY, + DWRITE_GLYPH_ORIENTATION_ANGLE angle, + DWRITE_MEASURING_MODE mode, + const DWRITE_GLYPH_RUN *run, + const DWRITE_GLYPH_RUN_DESCRIPTION *rundescr, + IUnknown *effect) = 0; + + virtual HRESULT STDMETHODCALLTYPE DrawUnderline( + void *context, + FLOAT originX, + FLOAT originY, + DWRITE_GLYPH_ORIENTATION_ANGLE angle, + const DWRITE_UNDERLINE *underline, + IUnknown *effect) = 0; + + virtual HRESULT STDMETHODCALLTYPE DrawStrikethrough( + void *context, + FLOAT originX, + FLOAT originY, + DWRITE_GLYPH_ORIENTATION_ANGLE angle, + const DWRITE_STRIKETHROUGH *strikethrough, + IUnknown *effect) = 0; + + virtual HRESULT STDMETHODCALLTYPE DrawInlineObject( + void *context, + FLOAT originX, + FLOAT originY, + DWRITE_GLYPH_ORIENTATION_ANGLE angle, + IDWriteInlineObject *inlineObject, + WINBOOL is_sideways, + WINBOOL is_rtl, + IUnknown *effect) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDWriteTextRenderer1, 0xd3e0e934, 0x22a0, 0x427e, 0xaa,0xe4, 0x7d,0x95,0x74,0xb5,0x9d,0xb1) +#endif +#else +typedef struct IDWriteTextRenderer1Vtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDWriteTextRenderer1 *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDWriteTextRenderer1 *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDWriteTextRenderer1 *This); + + /*** IDWritePixelSnapping methods ***/ + HRESULT (STDMETHODCALLTYPE *IsPixelSnappingDisabled)( + IDWriteTextRenderer1 *This, + void *client_drawingcontext, + WINBOOL *disabled); + + HRESULT (STDMETHODCALLTYPE *GetCurrentTransform)( + IDWriteTextRenderer1 *This, + void *client_drawingcontext, + DWRITE_MATRIX *transform); + + HRESULT (STDMETHODCALLTYPE *GetPixelsPerDip)( + IDWriteTextRenderer1 *This, + void *client_drawingcontext, + FLOAT *pixels_per_dip); + + /*** IDWriteTextRenderer methods ***/ + HRESULT (STDMETHODCALLTYPE *DrawGlyphRun)( + IDWriteTextRenderer1 *This, + void *client_drawingcontext, + FLOAT baselineOriginX, + FLOAT baselineOriginY, + DWRITE_MEASURING_MODE mode, + const DWRITE_GLYPH_RUN *glyph_run, + const DWRITE_GLYPH_RUN_DESCRIPTION *run_descr, + IUnknown *drawing_effect); + + HRESULT (STDMETHODCALLTYPE *DrawUnderline)( + IDWriteTextRenderer1 *This, + void *client_drawingcontext, + FLOAT baselineOriginX, + FLOAT baselineOriginY, + const DWRITE_UNDERLINE *underline, + IUnknown *drawing_effect); + + HRESULT (STDMETHODCALLTYPE *DrawStrikethrough)( + IDWriteTextRenderer1 *This, + void *client_drawingcontext, + FLOAT baselineOriginX, + FLOAT baselineOriginY, + const DWRITE_STRIKETHROUGH *strikethrough, + IUnknown *drawing_effect); + + HRESULT (STDMETHODCALLTYPE *DrawInlineObject)( + IDWriteTextRenderer1 *This, + void *client_drawingcontext, + FLOAT originX, + FLOAT originY, + IDWriteInlineObject *object, + WINBOOL is_sideways, + WINBOOL is_rtl, + IUnknown *drawing_effect); + + /*** IDWriteTextRenderer1 methods ***/ + HRESULT (STDMETHODCALLTYPE *IDWriteTextRenderer1_DrawGlyphRun)( + IDWriteTextRenderer1 *This, + void *context, + FLOAT originX, + FLOAT originY, + DWRITE_GLYPH_ORIENTATION_ANGLE angle, + DWRITE_MEASURING_MODE mode, + const DWRITE_GLYPH_RUN *run, + const DWRITE_GLYPH_RUN_DESCRIPTION *rundescr, + IUnknown *effect); + + HRESULT (STDMETHODCALLTYPE *IDWriteTextRenderer1_DrawUnderline)( + IDWriteTextRenderer1 *This, + void *context, + FLOAT originX, + FLOAT originY, + DWRITE_GLYPH_ORIENTATION_ANGLE angle, + const DWRITE_UNDERLINE *underline, + IUnknown *effect); + + HRESULT (STDMETHODCALLTYPE *IDWriteTextRenderer1_DrawStrikethrough)( + IDWriteTextRenderer1 *This, + void *context, + FLOAT originX, + FLOAT originY, + DWRITE_GLYPH_ORIENTATION_ANGLE angle, + const DWRITE_STRIKETHROUGH *strikethrough, + IUnknown *effect); + + HRESULT (STDMETHODCALLTYPE *IDWriteTextRenderer1_DrawInlineObject)( + IDWriteTextRenderer1 *This, + void *context, + FLOAT originX, + FLOAT originY, + DWRITE_GLYPH_ORIENTATION_ANGLE angle, + IDWriteInlineObject *inlineObject, + WINBOOL is_sideways, + WINBOOL is_rtl, + IUnknown *effect); + + END_INTERFACE +} IDWriteTextRenderer1Vtbl; + +interface IDWriteTextRenderer1 { + CONST_VTBL IDWriteTextRenderer1Vtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDWriteTextRenderer1_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteTextRenderer1_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDWriteTextRenderer1_Release(This) (This)->lpVtbl->Release(This) +/*** IDWritePixelSnapping methods ***/ +#define IDWriteTextRenderer1_IsPixelSnappingDisabled(This,client_drawingcontext,disabled) (This)->lpVtbl->IsPixelSnappingDisabled(This,client_drawingcontext,disabled) +#define IDWriteTextRenderer1_GetCurrentTransform(This,client_drawingcontext,transform) (This)->lpVtbl->GetCurrentTransform(This,client_drawingcontext,transform) +#define IDWriteTextRenderer1_GetPixelsPerDip(This,client_drawingcontext,pixels_per_dip) (This)->lpVtbl->GetPixelsPerDip(This,client_drawingcontext,pixels_per_dip) +/*** IDWriteTextRenderer methods ***/ +/*** IDWriteTextRenderer1 methods ***/ +#define IDWriteTextRenderer1_DrawGlyphRun(This,context,originX,originY,angle,mode,run,rundescr,effect) (This)->lpVtbl->IDWriteTextRenderer1_DrawGlyphRun(This,context,originX,originY,angle,mode,run,rundescr,effect) +#define IDWriteTextRenderer1_DrawUnderline(This,context,originX,originY,angle,underline,effect) (This)->lpVtbl->IDWriteTextRenderer1_DrawUnderline(This,context,originX,originY,angle,underline,effect) +#define IDWriteTextRenderer1_DrawStrikethrough(This,context,originX,originY,angle,strikethrough,effect) (This)->lpVtbl->IDWriteTextRenderer1_DrawStrikethrough(This,context,originX,originY,angle,strikethrough,effect) +#define IDWriteTextRenderer1_DrawInlineObject(This,context,originX,originY,angle,inlineObject,is_sideways,is_rtl,effect) (This)->lpVtbl->IDWriteTextRenderer1_DrawInlineObject(This,context,originX,originY,angle,inlineObject,is_sideways,is_rtl,effect) +#else +/*** IUnknown methods ***/ +static inline HRESULT IDWriteTextRenderer1_QueryInterface(IDWriteTextRenderer1* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static inline ULONG IDWriteTextRenderer1_AddRef(IDWriteTextRenderer1* This) { + return This->lpVtbl->AddRef(This); +} +static inline ULONG IDWriteTextRenderer1_Release(IDWriteTextRenderer1* This) { + return This->lpVtbl->Release(This); +} +/*** IDWritePixelSnapping methods ***/ +static inline HRESULT IDWriteTextRenderer1_IsPixelSnappingDisabled(IDWriteTextRenderer1* This,void *client_drawingcontext,WINBOOL *disabled) { + return This->lpVtbl->IsPixelSnappingDisabled(This,client_drawingcontext,disabled); +} +static inline HRESULT IDWriteTextRenderer1_GetCurrentTransform(IDWriteTextRenderer1* This,void *client_drawingcontext,DWRITE_MATRIX *transform) { + return This->lpVtbl->GetCurrentTransform(This,client_drawingcontext,transform); +} +static inline HRESULT IDWriteTextRenderer1_GetPixelsPerDip(IDWriteTextRenderer1* This,void *client_drawingcontext,FLOAT *pixels_per_dip) { + return This->lpVtbl->GetPixelsPerDip(This,client_drawingcontext,pixels_per_dip); +} +/*** IDWriteTextRenderer methods ***/ +/*** IDWriteTextRenderer1 methods ***/ +static inline HRESULT IDWriteTextRenderer1_DrawGlyphRun(IDWriteTextRenderer1* This,void *context,FLOAT originX,FLOAT originY,DWRITE_GLYPH_ORIENTATION_ANGLE angle,DWRITE_MEASURING_MODE mode,const DWRITE_GLYPH_RUN *run,const DWRITE_GLYPH_RUN_DESCRIPTION *rundescr,IUnknown *effect) { + return This->lpVtbl->IDWriteTextRenderer1_DrawGlyphRun(This,context,originX,originY,angle,mode,run,rundescr,effect); +} +static inline HRESULT IDWriteTextRenderer1_DrawUnderline(IDWriteTextRenderer1* This,void *context,FLOAT originX,FLOAT originY,DWRITE_GLYPH_ORIENTATION_ANGLE angle,const DWRITE_UNDERLINE *underline,IUnknown *effect) { + return This->lpVtbl->IDWriteTextRenderer1_DrawUnderline(This,context,originX,originY,angle,underline,effect); +} +static inline HRESULT IDWriteTextRenderer1_DrawStrikethrough(IDWriteTextRenderer1* This,void *context,FLOAT originX,FLOAT originY,DWRITE_GLYPH_ORIENTATION_ANGLE angle,const DWRITE_STRIKETHROUGH *strikethrough,IUnknown *effect) { + return This->lpVtbl->IDWriteTextRenderer1_DrawStrikethrough(This,context,originX,originY,angle,strikethrough,effect); +} +static inline HRESULT IDWriteTextRenderer1_DrawInlineObject(IDWriteTextRenderer1* This,void *context,FLOAT originX,FLOAT originY,DWRITE_GLYPH_ORIENTATION_ANGLE angle,IDWriteInlineObject *inlineObject,WINBOOL is_sideways,WINBOOL is_rtl,IUnknown *effect) { + return This->lpVtbl->IDWriteTextRenderer1_DrawInlineObject(This,context,originX,originY,angle,inlineObject,is_sideways,is_rtl,effect); +} +#endif +#endif + +#endif + + +#endif /* __IDWriteTextRenderer1_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IDWriteFontFallback interface + */ +#ifndef __IDWriteFontFallback_INTERFACE_DEFINED__ +#define __IDWriteFontFallback_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDWriteFontFallback, 0xefa008f9, 0xf7a1, 0x48bf, 0xb0,0x5c, 0xf2,0x24,0x71,0x3c,0xc0,0xff); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("efa008f9-f7a1-48bf-b05c-f224713cc0ff") +IDWriteFontFallback : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE MapCharacters( + IDWriteTextAnalysisSource *source, + UINT32 position, + UINT32 length, + IDWriteFontCollection *basecollection, + const WCHAR *baseFamilyName, + DWRITE_FONT_WEIGHT baseWeight, + DWRITE_FONT_STYLE baseStyle, + DWRITE_FONT_STRETCH baseStretch, + UINT32 *mappedLength, + IDWriteFont **mappedFont, + FLOAT *scale) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDWriteFontFallback, 0xefa008f9, 0xf7a1, 0x48bf, 0xb0,0x5c, 0xf2,0x24,0x71,0x3c,0xc0,0xff) +#endif +#else +typedef struct IDWriteFontFallbackVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDWriteFontFallback *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDWriteFontFallback *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDWriteFontFallback *This); + + /*** IDWriteFontFallback methods ***/ + HRESULT (STDMETHODCALLTYPE *MapCharacters)( + IDWriteFontFallback *This, + IDWriteTextAnalysisSource *source, + UINT32 position, + UINT32 length, + IDWriteFontCollection *basecollection, + const WCHAR *baseFamilyName, + DWRITE_FONT_WEIGHT baseWeight, + DWRITE_FONT_STYLE baseStyle, + DWRITE_FONT_STRETCH baseStretch, + UINT32 *mappedLength, + IDWriteFont **mappedFont, + FLOAT *scale); + + END_INTERFACE +} IDWriteFontFallbackVtbl; + +interface IDWriteFontFallback { + CONST_VTBL IDWriteFontFallbackVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDWriteFontFallback_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteFontFallback_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDWriteFontFallback_Release(This) (This)->lpVtbl->Release(This) +/*** IDWriteFontFallback methods ***/ +#define IDWriteFontFallback_MapCharacters(This,source,position,length,basecollection,baseFamilyName,baseWeight,baseStyle,baseStretch,mappedLength,mappedFont,scale) (This)->lpVtbl->MapCharacters(This,source,position,length,basecollection,baseFamilyName,baseWeight,baseStyle,baseStretch,mappedLength,mappedFont,scale) +#else +/*** IUnknown methods ***/ +static inline HRESULT IDWriteFontFallback_QueryInterface(IDWriteFontFallback* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static inline ULONG IDWriteFontFallback_AddRef(IDWriteFontFallback* This) { + return This->lpVtbl->AddRef(This); +} +static inline ULONG IDWriteFontFallback_Release(IDWriteFontFallback* This) { + return This->lpVtbl->Release(This); +} +/*** IDWriteFontFallback methods ***/ +static inline HRESULT IDWriteFontFallback_MapCharacters(IDWriteFontFallback* This,IDWriteTextAnalysisSource *source,UINT32 position,UINT32 length,IDWriteFontCollection *basecollection,const WCHAR *baseFamilyName,DWRITE_FONT_WEIGHT baseWeight,DWRITE_FONT_STYLE baseStyle,DWRITE_FONT_STRETCH baseStretch,UINT32 *mappedLength,IDWriteFont **mappedFont,FLOAT *scale) { + return This->lpVtbl->MapCharacters(This,source,position,length,basecollection,baseFamilyName,baseWeight,baseStyle,baseStretch,mappedLength,mappedFont,scale); +} +#endif +#endif + +#endif + + +#endif /* __IDWriteFontFallback_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IDWriteTextFormat1 interface + */ +#ifndef __IDWriteTextFormat1_INTERFACE_DEFINED__ +#define __IDWriteTextFormat1_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDWriteTextFormat1, 0x5f174b49, 0x0d8b, 0x4cfb, 0x8b,0xca, 0xf1,0xcc,0xe9,0xd0,0x6c,0x67); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("5f174b49-0d8b-4cfb-8bca-f1cce9d06c67") +IDWriteTextFormat1 : public IDWriteTextFormat +{ + virtual HRESULT STDMETHODCALLTYPE SetVerticalGlyphOrientation( + DWRITE_VERTICAL_GLYPH_ORIENTATION orientation) = 0; + + virtual DWRITE_VERTICAL_GLYPH_ORIENTATION STDMETHODCALLTYPE GetVerticalGlyphOrientation( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetLastLineWrapping( + WINBOOL lastline_wrapping_enabled) = 0; + + virtual WINBOOL STDMETHODCALLTYPE GetLastLineWrapping( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetOpticalAlignment( + DWRITE_OPTICAL_ALIGNMENT alignment) = 0; + + virtual DWRITE_OPTICAL_ALIGNMENT STDMETHODCALLTYPE GetOpticalAlignment( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetFontFallback( + IDWriteFontFallback *fallback) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetFontFallback( + IDWriteFontFallback **fallback) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDWriteTextFormat1, 0x5f174b49, 0x0d8b, 0x4cfb, 0x8b,0xca, 0xf1,0xcc,0xe9,0xd0,0x6c,0x67) +#endif +#else +typedef struct IDWriteTextFormat1Vtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDWriteTextFormat1 *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDWriteTextFormat1 *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDWriteTextFormat1 *This); + + /*** IDWriteTextFormat methods ***/ + HRESULT (STDMETHODCALLTYPE *SetTextAlignment)( + IDWriteTextFormat1 *This, + DWRITE_TEXT_ALIGNMENT alignment); + + HRESULT (STDMETHODCALLTYPE *SetParagraphAlignment)( + IDWriteTextFormat1 *This, + DWRITE_PARAGRAPH_ALIGNMENT alignment); + + HRESULT (STDMETHODCALLTYPE *SetWordWrapping)( + IDWriteTextFormat1 *This, + DWRITE_WORD_WRAPPING wrapping); + + HRESULT (STDMETHODCALLTYPE *SetReadingDirection)( + IDWriteTextFormat1 *This, + DWRITE_READING_DIRECTION direction); + + HRESULT (STDMETHODCALLTYPE *SetFlowDirection)( + IDWriteTextFormat1 *This, + DWRITE_FLOW_DIRECTION direction); + + HRESULT (STDMETHODCALLTYPE *SetIncrementalTabStop)( + IDWriteTextFormat1 *This, + FLOAT tabstop); + + HRESULT (STDMETHODCALLTYPE *SetTrimming)( + IDWriteTextFormat1 *This, + const DWRITE_TRIMMING *trimming, + IDWriteInlineObject *trimming_sign); + + HRESULT (STDMETHODCALLTYPE *SetLineSpacing)( + IDWriteTextFormat1 *This, + DWRITE_LINE_SPACING_METHOD spacing, + FLOAT line_spacing, + FLOAT baseline); + + DWRITE_TEXT_ALIGNMENT (STDMETHODCALLTYPE *GetTextAlignment)( + IDWriteTextFormat1 *This); + + DWRITE_PARAGRAPH_ALIGNMENT (STDMETHODCALLTYPE *GetParagraphAlignment)( + IDWriteTextFormat1 *This); + + DWRITE_WORD_WRAPPING (STDMETHODCALLTYPE *GetWordWrapping)( + IDWriteTextFormat1 *This); + + DWRITE_READING_DIRECTION (STDMETHODCALLTYPE *GetReadingDirection)( + IDWriteTextFormat1 *This); + + DWRITE_FLOW_DIRECTION (STDMETHODCALLTYPE *GetFlowDirection)( + IDWriteTextFormat1 *This); + + FLOAT (STDMETHODCALLTYPE *GetIncrementalTabStop)( + IDWriteTextFormat1 *This); + + HRESULT (STDMETHODCALLTYPE *GetTrimming)( + IDWriteTextFormat1 *This, + DWRITE_TRIMMING *options, + IDWriteInlineObject **trimming_sign); + + HRESULT (STDMETHODCALLTYPE *GetLineSpacing)( + IDWriteTextFormat1 *This, + DWRITE_LINE_SPACING_METHOD *method, + FLOAT *spacing, + FLOAT *baseline); + + HRESULT (STDMETHODCALLTYPE *GetFontCollection)( + IDWriteTextFormat1 *This, + IDWriteFontCollection **collection); + + UINT32 (STDMETHODCALLTYPE *GetFontFamilyNameLength)( + IDWriteTextFormat1 *This); + + HRESULT (STDMETHODCALLTYPE *GetFontFamilyName)( + IDWriteTextFormat1 *This, + WCHAR *name, + UINT32 size); + + DWRITE_FONT_WEIGHT (STDMETHODCALLTYPE *GetFontWeight)( + IDWriteTextFormat1 *This); + + DWRITE_FONT_STYLE (STDMETHODCALLTYPE *GetFontStyle)( + IDWriteTextFormat1 *This); + + DWRITE_FONT_STRETCH (STDMETHODCALLTYPE *GetFontStretch)( + IDWriteTextFormat1 *This); + + FLOAT (STDMETHODCALLTYPE *GetFontSize)( + IDWriteTextFormat1 *This); + + UINT32 (STDMETHODCALLTYPE *GetLocaleNameLength)( + IDWriteTextFormat1 *This); + + HRESULT (STDMETHODCALLTYPE *GetLocaleName)( + IDWriteTextFormat1 *This, + WCHAR *name, + UINT32 size); + + /*** IDWriteTextFormat1 methods ***/ + HRESULT (STDMETHODCALLTYPE *SetVerticalGlyphOrientation)( + IDWriteTextFormat1 *This, + DWRITE_VERTICAL_GLYPH_ORIENTATION orientation); + + DWRITE_VERTICAL_GLYPH_ORIENTATION (STDMETHODCALLTYPE *GetVerticalGlyphOrientation)( + IDWriteTextFormat1 *This); + + HRESULT (STDMETHODCALLTYPE *SetLastLineWrapping)( + IDWriteTextFormat1 *This, + WINBOOL lastline_wrapping_enabled); + + WINBOOL (STDMETHODCALLTYPE *GetLastLineWrapping)( + IDWriteTextFormat1 *This); + + HRESULT (STDMETHODCALLTYPE *SetOpticalAlignment)( + IDWriteTextFormat1 *This, + DWRITE_OPTICAL_ALIGNMENT alignment); + + DWRITE_OPTICAL_ALIGNMENT (STDMETHODCALLTYPE *GetOpticalAlignment)( + IDWriteTextFormat1 *This); + + HRESULT (STDMETHODCALLTYPE *SetFontFallback)( + IDWriteTextFormat1 *This, + IDWriteFontFallback *fallback); + + HRESULT (STDMETHODCALLTYPE *GetFontFallback)( + IDWriteTextFormat1 *This, + IDWriteFontFallback **fallback); + + END_INTERFACE +} IDWriteTextFormat1Vtbl; + +interface IDWriteTextFormat1 { + CONST_VTBL IDWriteTextFormat1Vtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDWriteTextFormat1_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteTextFormat1_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDWriteTextFormat1_Release(This) (This)->lpVtbl->Release(This) +/*** IDWriteTextFormat methods ***/ +#define IDWriteTextFormat1_SetTextAlignment(This,alignment) (This)->lpVtbl->SetTextAlignment(This,alignment) +#define IDWriteTextFormat1_SetParagraphAlignment(This,alignment) (This)->lpVtbl->SetParagraphAlignment(This,alignment) +#define IDWriteTextFormat1_SetWordWrapping(This,wrapping) (This)->lpVtbl->SetWordWrapping(This,wrapping) +#define IDWriteTextFormat1_SetReadingDirection(This,direction) (This)->lpVtbl->SetReadingDirection(This,direction) +#define IDWriteTextFormat1_SetFlowDirection(This,direction) (This)->lpVtbl->SetFlowDirection(This,direction) +#define IDWriteTextFormat1_SetIncrementalTabStop(This,tabstop) (This)->lpVtbl->SetIncrementalTabStop(This,tabstop) +#define IDWriteTextFormat1_SetTrimming(This,trimming,trimming_sign) (This)->lpVtbl->SetTrimming(This,trimming,trimming_sign) +#define IDWriteTextFormat1_SetLineSpacing(This,spacing,line_spacing,baseline) (This)->lpVtbl->SetLineSpacing(This,spacing,line_spacing,baseline) +#define IDWriteTextFormat1_GetTextAlignment(This) (This)->lpVtbl->GetTextAlignment(This) +#define IDWriteTextFormat1_GetParagraphAlignment(This) (This)->lpVtbl->GetParagraphAlignment(This) +#define IDWriteTextFormat1_GetWordWrapping(This) (This)->lpVtbl->GetWordWrapping(This) +#define IDWriteTextFormat1_GetReadingDirection(This) (This)->lpVtbl->GetReadingDirection(This) +#define IDWriteTextFormat1_GetFlowDirection(This) (This)->lpVtbl->GetFlowDirection(This) +#define IDWriteTextFormat1_GetIncrementalTabStop(This) (This)->lpVtbl->GetIncrementalTabStop(This) +#define IDWriteTextFormat1_GetTrimming(This,options,trimming_sign) (This)->lpVtbl->GetTrimming(This,options,trimming_sign) +#define IDWriteTextFormat1_GetLineSpacing(This,method,spacing,baseline) (This)->lpVtbl->GetLineSpacing(This,method,spacing,baseline) +#define IDWriteTextFormat1_GetFontCollection(This,collection) (This)->lpVtbl->GetFontCollection(This,collection) +#define IDWriteTextFormat1_GetFontFamilyNameLength(This) (This)->lpVtbl->GetFontFamilyNameLength(This) +#define IDWriteTextFormat1_GetFontFamilyName(This,name,size) (This)->lpVtbl->GetFontFamilyName(This,name,size) +#define IDWriteTextFormat1_GetFontWeight(This) (This)->lpVtbl->GetFontWeight(This) +#define IDWriteTextFormat1_GetFontStyle(This) (This)->lpVtbl->GetFontStyle(This) +#define IDWriteTextFormat1_GetFontStretch(This) (This)->lpVtbl->GetFontStretch(This) +#define IDWriteTextFormat1_GetFontSize(This) (This)->lpVtbl->GetFontSize(This) +#define IDWriteTextFormat1_GetLocaleNameLength(This) (This)->lpVtbl->GetLocaleNameLength(This) +#define IDWriteTextFormat1_GetLocaleName(This,name,size) (This)->lpVtbl->GetLocaleName(This,name,size) +/*** IDWriteTextFormat1 methods ***/ +#define IDWriteTextFormat1_SetVerticalGlyphOrientation(This,orientation) (This)->lpVtbl->SetVerticalGlyphOrientation(This,orientation) +#define IDWriteTextFormat1_GetVerticalGlyphOrientation(This) (This)->lpVtbl->GetVerticalGlyphOrientation(This) +#define IDWriteTextFormat1_SetLastLineWrapping(This,lastline_wrapping_enabled) (This)->lpVtbl->SetLastLineWrapping(This,lastline_wrapping_enabled) +#define IDWriteTextFormat1_GetLastLineWrapping(This) (This)->lpVtbl->GetLastLineWrapping(This) +#define IDWriteTextFormat1_SetOpticalAlignment(This,alignment) (This)->lpVtbl->SetOpticalAlignment(This,alignment) +#define IDWriteTextFormat1_GetOpticalAlignment(This) (This)->lpVtbl->GetOpticalAlignment(This) +#define IDWriteTextFormat1_SetFontFallback(This,fallback) (This)->lpVtbl->SetFontFallback(This,fallback) +#define IDWriteTextFormat1_GetFontFallback(This,fallback) (This)->lpVtbl->GetFontFallback(This,fallback) +#else +/*** IUnknown methods ***/ +static inline HRESULT IDWriteTextFormat1_QueryInterface(IDWriteTextFormat1* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static inline ULONG IDWriteTextFormat1_AddRef(IDWriteTextFormat1* This) { + return This->lpVtbl->AddRef(This); +} +static inline ULONG IDWriteTextFormat1_Release(IDWriteTextFormat1* This) { + return This->lpVtbl->Release(This); +} +/*** IDWriteTextFormat methods ***/ +static inline HRESULT IDWriteTextFormat1_SetTextAlignment(IDWriteTextFormat1* This,DWRITE_TEXT_ALIGNMENT alignment) { + return This->lpVtbl->SetTextAlignment(This,alignment); +} +static inline HRESULT IDWriteTextFormat1_SetParagraphAlignment(IDWriteTextFormat1* This,DWRITE_PARAGRAPH_ALIGNMENT alignment) { + return This->lpVtbl->SetParagraphAlignment(This,alignment); +} +static inline HRESULT IDWriteTextFormat1_SetWordWrapping(IDWriteTextFormat1* This,DWRITE_WORD_WRAPPING wrapping) { + return This->lpVtbl->SetWordWrapping(This,wrapping); +} +static inline HRESULT IDWriteTextFormat1_SetReadingDirection(IDWriteTextFormat1* This,DWRITE_READING_DIRECTION direction) { + return This->lpVtbl->SetReadingDirection(This,direction); +} +static inline HRESULT IDWriteTextFormat1_SetFlowDirection(IDWriteTextFormat1* This,DWRITE_FLOW_DIRECTION direction) { + return This->lpVtbl->SetFlowDirection(This,direction); +} +static inline HRESULT IDWriteTextFormat1_SetIncrementalTabStop(IDWriteTextFormat1* This,FLOAT tabstop) { + return This->lpVtbl->SetIncrementalTabStop(This,tabstop); +} +static inline HRESULT IDWriteTextFormat1_SetTrimming(IDWriteTextFormat1* This,const DWRITE_TRIMMING *trimming,IDWriteInlineObject *trimming_sign) { + return This->lpVtbl->SetTrimming(This,trimming,trimming_sign); +} +static inline HRESULT IDWriteTextFormat1_SetLineSpacing(IDWriteTextFormat1* This,DWRITE_LINE_SPACING_METHOD spacing,FLOAT line_spacing,FLOAT baseline) { + return This->lpVtbl->SetLineSpacing(This,spacing,line_spacing,baseline); +} +static inline DWRITE_TEXT_ALIGNMENT IDWriteTextFormat1_GetTextAlignment(IDWriteTextFormat1* This) { + return This->lpVtbl->GetTextAlignment(This); +} +static inline DWRITE_PARAGRAPH_ALIGNMENT IDWriteTextFormat1_GetParagraphAlignment(IDWriteTextFormat1* This) { + return This->lpVtbl->GetParagraphAlignment(This); +} +static inline DWRITE_WORD_WRAPPING IDWriteTextFormat1_GetWordWrapping(IDWriteTextFormat1* This) { + return This->lpVtbl->GetWordWrapping(This); +} +static inline DWRITE_READING_DIRECTION IDWriteTextFormat1_GetReadingDirection(IDWriteTextFormat1* This) { + return This->lpVtbl->GetReadingDirection(This); +} +static inline DWRITE_FLOW_DIRECTION IDWriteTextFormat1_GetFlowDirection(IDWriteTextFormat1* This) { + return This->lpVtbl->GetFlowDirection(This); +} +static inline FLOAT IDWriteTextFormat1_GetIncrementalTabStop(IDWriteTextFormat1* This) { + return This->lpVtbl->GetIncrementalTabStop(This); +} +static inline HRESULT IDWriteTextFormat1_GetTrimming(IDWriteTextFormat1* This,DWRITE_TRIMMING *options,IDWriteInlineObject **trimming_sign) { + return This->lpVtbl->GetTrimming(This,options,trimming_sign); +} +static inline HRESULT IDWriteTextFormat1_GetLineSpacing(IDWriteTextFormat1* This,DWRITE_LINE_SPACING_METHOD *method,FLOAT *spacing,FLOAT *baseline) { + return This->lpVtbl->GetLineSpacing(This,method,spacing,baseline); +} +static inline HRESULT IDWriteTextFormat1_GetFontCollection(IDWriteTextFormat1* This,IDWriteFontCollection **collection) { + return This->lpVtbl->GetFontCollection(This,collection); +} +static inline UINT32 IDWriteTextFormat1_GetFontFamilyNameLength(IDWriteTextFormat1* This) { + return This->lpVtbl->GetFontFamilyNameLength(This); +} +static inline HRESULT IDWriteTextFormat1_GetFontFamilyName(IDWriteTextFormat1* This,WCHAR *name,UINT32 size) { + return This->lpVtbl->GetFontFamilyName(This,name,size); +} +static inline DWRITE_FONT_WEIGHT IDWriteTextFormat1_GetFontWeight(IDWriteTextFormat1* This) { + return This->lpVtbl->GetFontWeight(This); +} +static inline DWRITE_FONT_STYLE IDWriteTextFormat1_GetFontStyle(IDWriteTextFormat1* This) { + return This->lpVtbl->GetFontStyle(This); +} +static inline DWRITE_FONT_STRETCH IDWriteTextFormat1_GetFontStretch(IDWriteTextFormat1* This) { + return This->lpVtbl->GetFontStretch(This); +} +static inline FLOAT IDWriteTextFormat1_GetFontSize(IDWriteTextFormat1* This) { + return This->lpVtbl->GetFontSize(This); +} +static inline UINT32 IDWriteTextFormat1_GetLocaleNameLength(IDWriteTextFormat1* This) { + return This->lpVtbl->GetLocaleNameLength(This); +} +static inline HRESULT IDWriteTextFormat1_GetLocaleName(IDWriteTextFormat1* This,WCHAR *name,UINT32 size) { + return This->lpVtbl->GetLocaleName(This,name,size); +} +/*** IDWriteTextFormat1 methods ***/ +static inline HRESULT IDWriteTextFormat1_SetVerticalGlyphOrientation(IDWriteTextFormat1* This,DWRITE_VERTICAL_GLYPH_ORIENTATION orientation) { + return This->lpVtbl->SetVerticalGlyphOrientation(This,orientation); +} +static inline DWRITE_VERTICAL_GLYPH_ORIENTATION IDWriteTextFormat1_GetVerticalGlyphOrientation(IDWriteTextFormat1* This) { + return This->lpVtbl->GetVerticalGlyphOrientation(This); +} +static inline HRESULT IDWriteTextFormat1_SetLastLineWrapping(IDWriteTextFormat1* This,WINBOOL lastline_wrapping_enabled) { + return This->lpVtbl->SetLastLineWrapping(This,lastline_wrapping_enabled); +} +static inline WINBOOL IDWriteTextFormat1_GetLastLineWrapping(IDWriteTextFormat1* This) { + return This->lpVtbl->GetLastLineWrapping(This); +} +static inline HRESULT IDWriteTextFormat1_SetOpticalAlignment(IDWriteTextFormat1* This,DWRITE_OPTICAL_ALIGNMENT alignment) { + return This->lpVtbl->SetOpticalAlignment(This,alignment); +} +static inline DWRITE_OPTICAL_ALIGNMENT IDWriteTextFormat1_GetOpticalAlignment(IDWriteTextFormat1* This) { + return This->lpVtbl->GetOpticalAlignment(This); +} +static inline HRESULT IDWriteTextFormat1_SetFontFallback(IDWriteTextFormat1* This,IDWriteFontFallback *fallback) { + return This->lpVtbl->SetFontFallback(This,fallback); +} +static inline HRESULT IDWriteTextFormat1_GetFontFallback(IDWriteTextFormat1* This,IDWriteFontFallback **fallback) { + return This->lpVtbl->GetFontFallback(This,fallback); +} +#endif +#endif + +#endif + + +#endif /* __IDWriteTextFormat1_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IDWriteTextLayout2 interface + */ +#ifndef __IDWriteTextLayout2_INTERFACE_DEFINED__ +#define __IDWriteTextLayout2_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDWriteTextLayout2, 0x1093c18f, 0x8d5e, 0x43f0, 0xb0,0x64, 0x09,0x17,0x31,0x1b,0x52,0x5e); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("1093c18f-8d5e-43f0-b064-0917311b525e") +IDWriteTextLayout2 : public IDWriteTextLayout1 +{ + virtual HRESULT STDMETHODCALLTYPE GetMetrics( + DWRITE_TEXT_METRICS1 *metrics) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetVerticalGlyphOrientation( + DWRITE_VERTICAL_GLYPH_ORIENTATION orientation) = 0; + + virtual DWRITE_VERTICAL_GLYPH_ORIENTATION STDMETHODCALLTYPE GetVerticalGlyphOrientation( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetLastLineWrapping( + WINBOOL lastline_wrapping_enabled) = 0; + + virtual WINBOOL STDMETHODCALLTYPE GetLastLineWrapping( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetOpticalAlignment( + DWRITE_OPTICAL_ALIGNMENT alignment) = 0; + + virtual DWRITE_OPTICAL_ALIGNMENT STDMETHODCALLTYPE GetOpticalAlignment( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetFontFallback( + IDWriteFontFallback *fallback) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetFontFallback( + IDWriteFontFallback **fallback) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDWriteTextLayout2, 0x1093c18f, 0x8d5e, 0x43f0, 0xb0,0x64, 0x09,0x17,0x31,0x1b,0x52,0x5e) +#endif +#else +typedef struct IDWriteTextLayout2Vtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDWriteTextLayout2 *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDWriteTextLayout2 *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDWriteTextLayout2 *This); + + /*** IDWriteTextFormat methods ***/ + HRESULT (STDMETHODCALLTYPE *SetTextAlignment)( + IDWriteTextLayout2 *This, + DWRITE_TEXT_ALIGNMENT alignment); + + HRESULT (STDMETHODCALLTYPE *SetParagraphAlignment)( + IDWriteTextLayout2 *This, + DWRITE_PARAGRAPH_ALIGNMENT alignment); + + HRESULT (STDMETHODCALLTYPE *SetWordWrapping)( + IDWriteTextLayout2 *This, + DWRITE_WORD_WRAPPING wrapping); + + HRESULT (STDMETHODCALLTYPE *SetReadingDirection)( + IDWriteTextLayout2 *This, + DWRITE_READING_DIRECTION direction); + + HRESULT (STDMETHODCALLTYPE *SetFlowDirection)( + IDWriteTextLayout2 *This, + DWRITE_FLOW_DIRECTION direction); + + HRESULT (STDMETHODCALLTYPE *SetIncrementalTabStop)( + IDWriteTextLayout2 *This, + FLOAT tabstop); + + HRESULT (STDMETHODCALLTYPE *SetTrimming)( + IDWriteTextLayout2 *This, + const DWRITE_TRIMMING *trimming, + IDWriteInlineObject *trimming_sign); + + HRESULT (STDMETHODCALLTYPE *SetLineSpacing)( + IDWriteTextLayout2 *This, + DWRITE_LINE_SPACING_METHOD spacing, + FLOAT line_spacing, + FLOAT baseline); + + DWRITE_TEXT_ALIGNMENT (STDMETHODCALLTYPE *GetTextAlignment)( + IDWriteTextLayout2 *This); + + DWRITE_PARAGRAPH_ALIGNMENT (STDMETHODCALLTYPE *GetParagraphAlignment)( + IDWriteTextLayout2 *This); + + DWRITE_WORD_WRAPPING (STDMETHODCALLTYPE *GetWordWrapping)( + IDWriteTextLayout2 *This); + + DWRITE_READING_DIRECTION (STDMETHODCALLTYPE *GetReadingDirection)( + IDWriteTextLayout2 *This); + + DWRITE_FLOW_DIRECTION (STDMETHODCALLTYPE *GetFlowDirection)( + IDWriteTextLayout2 *This); + + FLOAT (STDMETHODCALLTYPE *GetIncrementalTabStop)( + IDWriteTextLayout2 *This); + + HRESULT (STDMETHODCALLTYPE *GetTrimming)( + IDWriteTextLayout2 *This, + DWRITE_TRIMMING *options, + IDWriteInlineObject **trimming_sign); + + HRESULT (STDMETHODCALLTYPE *GetLineSpacing)( + IDWriteTextLayout2 *This, + DWRITE_LINE_SPACING_METHOD *method, + FLOAT *spacing, + FLOAT *baseline); + + HRESULT (STDMETHODCALLTYPE *GetFontCollection)( + IDWriteTextLayout2 *This, + IDWriteFontCollection **collection); + + UINT32 (STDMETHODCALLTYPE *GetFontFamilyNameLength)( + IDWriteTextLayout2 *This); + + HRESULT (STDMETHODCALLTYPE *GetFontFamilyName)( + IDWriteTextLayout2 *This, + WCHAR *name, + UINT32 size); + + DWRITE_FONT_WEIGHT (STDMETHODCALLTYPE *GetFontWeight)( + IDWriteTextLayout2 *This); + + DWRITE_FONT_STYLE (STDMETHODCALLTYPE *GetFontStyle)( + IDWriteTextLayout2 *This); + + DWRITE_FONT_STRETCH (STDMETHODCALLTYPE *GetFontStretch)( + IDWriteTextLayout2 *This); + + FLOAT (STDMETHODCALLTYPE *GetFontSize)( + IDWriteTextLayout2 *This); + + UINT32 (STDMETHODCALLTYPE *GetLocaleNameLength)( + IDWriteTextLayout2 *This); + + HRESULT (STDMETHODCALLTYPE *GetLocaleName)( + IDWriteTextLayout2 *This, + WCHAR *name, + UINT32 size); + + /*** IDWriteTextLayout methods ***/ + HRESULT (STDMETHODCALLTYPE *SetMaxWidth)( + IDWriteTextLayout2 *This, + FLOAT maxWidth); + + HRESULT (STDMETHODCALLTYPE *SetMaxHeight)( + IDWriteTextLayout2 *This, + FLOAT maxHeight); + + HRESULT (STDMETHODCALLTYPE *SetFontCollection)( + IDWriteTextLayout2 *This, + IDWriteFontCollection *collection, + DWRITE_TEXT_RANGE range); + + HRESULT (STDMETHODCALLTYPE *SetFontFamilyName)( + IDWriteTextLayout2 *This, + const WCHAR *name, + DWRITE_TEXT_RANGE range); + + HRESULT (STDMETHODCALLTYPE *SetFontWeight)( + IDWriteTextLayout2 *This, + DWRITE_FONT_WEIGHT weight, + DWRITE_TEXT_RANGE range); + + HRESULT (STDMETHODCALLTYPE *SetFontStyle)( + IDWriteTextLayout2 *This, + DWRITE_FONT_STYLE style, + DWRITE_TEXT_RANGE range); + + HRESULT (STDMETHODCALLTYPE *SetFontStretch)( + IDWriteTextLayout2 *This, + DWRITE_FONT_STRETCH stretch, + DWRITE_TEXT_RANGE range); + + HRESULT (STDMETHODCALLTYPE *SetFontSize)( + IDWriteTextLayout2 *This, + FLOAT size, + DWRITE_TEXT_RANGE range); + + HRESULT (STDMETHODCALLTYPE *SetUnderline)( + IDWriteTextLayout2 *This, + WINBOOL underline, + DWRITE_TEXT_RANGE range); + + HRESULT (STDMETHODCALLTYPE *SetStrikethrough)( + IDWriteTextLayout2 *This, + WINBOOL strikethrough, + DWRITE_TEXT_RANGE range); + + HRESULT (STDMETHODCALLTYPE *SetDrawingEffect)( + IDWriteTextLayout2 *This, + IUnknown *effect, + DWRITE_TEXT_RANGE range); + + HRESULT (STDMETHODCALLTYPE *SetInlineObject)( + IDWriteTextLayout2 *This, + IDWriteInlineObject *object, + DWRITE_TEXT_RANGE range); + + HRESULT (STDMETHODCALLTYPE *SetTypography)( + IDWriteTextLayout2 *This, + IDWriteTypography *typography, + DWRITE_TEXT_RANGE range); + + HRESULT (STDMETHODCALLTYPE *SetLocaleName)( + IDWriteTextLayout2 *This, + const WCHAR *locale, + DWRITE_TEXT_RANGE range); + + FLOAT (STDMETHODCALLTYPE *GetMaxWidth)( + IDWriteTextLayout2 *This); + + FLOAT (STDMETHODCALLTYPE *GetMaxHeight)( + IDWriteTextLayout2 *This); + + HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout_GetFontCollection)( + IDWriteTextLayout2 *This, + UINT32 pos, + IDWriteFontCollection **collection, + DWRITE_TEXT_RANGE *range); + + HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout_GetFontFamilyNameLength)( + IDWriteTextLayout2 *This, + UINT32 pos, + UINT32 *len, + DWRITE_TEXT_RANGE *range); + + HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout_GetFontFamilyName)( + IDWriteTextLayout2 *This, + UINT32 position, + WCHAR *name, + UINT32 name_size, + DWRITE_TEXT_RANGE *range); + + HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout_GetFontWeight)( + IDWriteTextLayout2 *This, + UINT32 position, + DWRITE_FONT_WEIGHT *weight, + DWRITE_TEXT_RANGE *range); + + HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout_GetFontStyle)( + IDWriteTextLayout2 *This, + UINT32 currentPosition, + DWRITE_FONT_STYLE *style, + DWRITE_TEXT_RANGE *range); + + HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout_GetFontStretch)( + IDWriteTextLayout2 *This, + UINT32 position, + DWRITE_FONT_STRETCH *stretch, + DWRITE_TEXT_RANGE *range); + + HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout_GetFontSize)( + IDWriteTextLayout2 *This, + UINT32 position, + FLOAT *size, + DWRITE_TEXT_RANGE *range); + + HRESULT (STDMETHODCALLTYPE *GetUnderline)( + IDWriteTextLayout2 *This, + UINT32 position, + WINBOOL *has_underline, + DWRITE_TEXT_RANGE *range); + + HRESULT (STDMETHODCALLTYPE *GetStrikethrough)( + IDWriteTextLayout2 *This, + UINT32 position, + WINBOOL *has_strikethrough, + DWRITE_TEXT_RANGE *range); + + HRESULT (STDMETHODCALLTYPE *GetDrawingEffect)( + IDWriteTextLayout2 *This, + UINT32 position, + IUnknown **effect, + DWRITE_TEXT_RANGE *range); + + HRESULT (STDMETHODCALLTYPE *GetInlineObject)( + IDWriteTextLayout2 *This, + UINT32 position, + IDWriteInlineObject **object, + DWRITE_TEXT_RANGE *range); + + HRESULT (STDMETHODCALLTYPE *GetTypography)( + IDWriteTextLayout2 *This, + UINT32 position, + IDWriteTypography **typography, + DWRITE_TEXT_RANGE *range); + + HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout_GetLocaleNameLength)( + IDWriteTextLayout2 *This, + UINT32 position, + UINT32 *length, + DWRITE_TEXT_RANGE *range); + + HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout_GetLocaleName)( + IDWriteTextLayout2 *This, + UINT32 position, + WCHAR *name, + UINT32 name_size, + DWRITE_TEXT_RANGE *range); + + HRESULT (STDMETHODCALLTYPE *Draw)( + IDWriteTextLayout2 *This, + void *context, + IDWriteTextRenderer *renderer, + FLOAT originX, + FLOAT originY); + + HRESULT (STDMETHODCALLTYPE *GetLineMetrics)( + IDWriteTextLayout2 *This, + DWRITE_LINE_METRICS *metrics, + UINT32 max_count, + UINT32 *actual_count); + + HRESULT (STDMETHODCALLTYPE *GetMetrics)( + IDWriteTextLayout2 *This, + DWRITE_TEXT_METRICS *metrics); + + HRESULT (STDMETHODCALLTYPE *GetOverhangMetrics)( + IDWriteTextLayout2 *This, + DWRITE_OVERHANG_METRICS *overhangs); + + HRESULT (STDMETHODCALLTYPE *GetClusterMetrics)( + IDWriteTextLayout2 *This, + DWRITE_CLUSTER_METRICS *metrics, + UINT32 max_count, + UINT32 *act_count); + + HRESULT (STDMETHODCALLTYPE *DetermineMinWidth)( + IDWriteTextLayout2 *This, + FLOAT *min_width); + + HRESULT (STDMETHODCALLTYPE *HitTestPoint)( + IDWriteTextLayout2 *This, + FLOAT pointX, + FLOAT pointY, + WINBOOL *is_trailinghit, + WINBOOL *is_inside, + DWRITE_HIT_TEST_METRICS *metrics); + + HRESULT (STDMETHODCALLTYPE *HitTestTextPosition)( + IDWriteTextLayout2 *This, + UINT32 textPosition, + WINBOOL is_trailinghit, + FLOAT *pointX, + FLOAT *pointY, + DWRITE_HIT_TEST_METRICS *metrics); + + HRESULT (STDMETHODCALLTYPE *HitTestTextRange)( + IDWriteTextLayout2 *This, + UINT32 textPosition, + UINT32 textLength, + FLOAT originX, + FLOAT originY, + DWRITE_HIT_TEST_METRICS *metrics, + UINT32 max_metricscount, + UINT32 *actual_metricscount); + + /*** IDWriteTextLayout1 methods ***/ + HRESULT (STDMETHODCALLTYPE *SetPairKerning)( + IDWriteTextLayout2 *This, + WINBOOL is_pairkerning_enabled, + DWRITE_TEXT_RANGE range); + + HRESULT (STDMETHODCALLTYPE *GetPairKerning)( + IDWriteTextLayout2 *This, + UINT32 position, + WINBOOL *is_pairkerning_enabled, + DWRITE_TEXT_RANGE *range); + + HRESULT (STDMETHODCALLTYPE *SetCharacterSpacing)( + IDWriteTextLayout2 *This, + FLOAT leading_spacing, + FLOAT trailing_spacing, + FLOAT minimum_advance_width, + DWRITE_TEXT_RANGE range); + + HRESULT (STDMETHODCALLTYPE *GetCharacterSpacing)( + IDWriteTextLayout2 *This, + UINT32 position, + FLOAT *leading_spacing, + FLOAT *trailing_spacing, + FLOAT *minimum_advance_width, + DWRITE_TEXT_RANGE *range); + + /*** IDWriteTextLayout2 methods ***/ + HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout2_GetMetrics)( + IDWriteTextLayout2 *This, + DWRITE_TEXT_METRICS1 *metrics); + + HRESULT (STDMETHODCALLTYPE *SetVerticalGlyphOrientation)( + IDWriteTextLayout2 *This, + DWRITE_VERTICAL_GLYPH_ORIENTATION orientation); + + DWRITE_VERTICAL_GLYPH_ORIENTATION (STDMETHODCALLTYPE *GetVerticalGlyphOrientation)( + IDWriteTextLayout2 *This); + + HRESULT (STDMETHODCALLTYPE *SetLastLineWrapping)( + IDWriteTextLayout2 *This, + WINBOOL lastline_wrapping_enabled); + + WINBOOL (STDMETHODCALLTYPE *GetLastLineWrapping)( + IDWriteTextLayout2 *This); + + HRESULT (STDMETHODCALLTYPE *SetOpticalAlignment)( + IDWriteTextLayout2 *This, + DWRITE_OPTICAL_ALIGNMENT alignment); + + DWRITE_OPTICAL_ALIGNMENT (STDMETHODCALLTYPE *GetOpticalAlignment)( + IDWriteTextLayout2 *This); + + HRESULT (STDMETHODCALLTYPE *SetFontFallback)( + IDWriteTextLayout2 *This, + IDWriteFontFallback *fallback); + + HRESULT (STDMETHODCALLTYPE *GetFontFallback)( + IDWriteTextLayout2 *This, + IDWriteFontFallback **fallback); + + END_INTERFACE +} IDWriteTextLayout2Vtbl; + +interface IDWriteTextLayout2 { + CONST_VTBL IDWriteTextLayout2Vtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDWriteTextLayout2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteTextLayout2_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDWriteTextLayout2_Release(This) (This)->lpVtbl->Release(This) +/*** IDWriteTextFormat methods ***/ +#define IDWriteTextLayout2_SetTextAlignment(This,alignment) (This)->lpVtbl->SetTextAlignment(This,alignment) +#define IDWriteTextLayout2_SetParagraphAlignment(This,alignment) (This)->lpVtbl->SetParagraphAlignment(This,alignment) +#define IDWriteTextLayout2_SetWordWrapping(This,wrapping) (This)->lpVtbl->SetWordWrapping(This,wrapping) +#define IDWriteTextLayout2_SetReadingDirection(This,direction) (This)->lpVtbl->SetReadingDirection(This,direction) +#define IDWriteTextLayout2_SetFlowDirection(This,direction) (This)->lpVtbl->SetFlowDirection(This,direction) +#define IDWriteTextLayout2_SetIncrementalTabStop(This,tabstop) (This)->lpVtbl->SetIncrementalTabStop(This,tabstop) +#define IDWriteTextLayout2_SetTrimming(This,trimming,trimming_sign) (This)->lpVtbl->SetTrimming(This,trimming,trimming_sign) +#define IDWriteTextLayout2_SetLineSpacing(This,spacing,line_spacing,baseline) (This)->lpVtbl->SetLineSpacing(This,spacing,line_spacing,baseline) +#define IDWriteTextLayout2_GetTextAlignment(This) (This)->lpVtbl->GetTextAlignment(This) +#define IDWriteTextLayout2_GetParagraphAlignment(This) (This)->lpVtbl->GetParagraphAlignment(This) +#define IDWriteTextLayout2_GetWordWrapping(This) (This)->lpVtbl->GetWordWrapping(This) +#define IDWriteTextLayout2_GetReadingDirection(This) (This)->lpVtbl->GetReadingDirection(This) +#define IDWriteTextLayout2_GetFlowDirection(This) (This)->lpVtbl->GetFlowDirection(This) +#define IDWriteTextLayout2_GetIncrementalTabStop(This) (This)->lpVtbl->GetIncrementalTabStop(This) +#define IDWriteTextLayout2_GetTrimming(This,options,trimming_sign) (This)->lpVtbl->GetTrimming(This,options,trimming_sign) +#define IDWriteTextLayout2_GetLineSpacing(This,method,spacing,baseline) (This)->lpVtbl->GetLineSpacing(This,method,spacing,baseline) +/*** IDWriteTextLayout methods ***/ +#define IDWriteTextLayout2_SetMaxWidth(This,maxWidth) (This)->lpVtbl->SetMaxWidth(This,maxWidth) +#define IDWriteTextLayout2_SetMaxHeight(This,maxHeight) (This)->lpVtbl->SetMaxHeight(This,maxHeight) +#define IDWriteTextLayout2_SetFontCollection(This,collection,range) (This)->lpVtbl->SetFontCollection(This,collection,range) +#define IDWriteTextLayout2_SetFontFamilyName(This,name,range) (This)->lpVtbl->SetFontFamilyName(This,name,range) +#define IDWriteTextLayout2_SetFontWeight(This,weight,range) (This)->lpVtbl->SetFontWeight(This,weight,range) +#define IDWriteTextLayout2_SetFontStyle(This,style,range) (This)->lpVtbl->SetFontStyle(This,style,range) +#define IDWriteTextLayout2_SetFontStretch(This,stretch,range) (This)->lpVtbl->SetFontStretch(This,stretch,range) +#define IDWriteTextLayout2_SetFontSize(This,size,range) (This)->lpVtbl->SetFontSize(This,size,range) +#define IDWriteTextLayout2_SetUnderline(This,underline,range) (This)->lpVtbl->SetUnderline(This,underline,range) +#define IDWriteTextLayout2_SetStrikethrough(This,strikethrough,range) (This)->lpVtbl->SetStrikethrough(This,strikethrough,range) +#define IDWriteTextLayout2_SetDrawingEffect(This,effect,range) (This)->lpVtbl->SetDrawingEffect(This,effect,range) +#define IDWriteTextLayout2_SetInlineObject(This,object,range) (This)->lpVtbl->SetInlineObject(This,object,range) +#define IDWriteTextLayout2_SetTypography(This,typography,range) (This)->lpVtbl->SetTypography(This,typography,range) +#define IDWriteTextLayout2_SetLocaleName(This,locale,range) (This)->lpVtbl->SetLocaleName(This,locale,range) +#define IDWriteTextLayout2_GetMaxWidth(This) (This)->lpVtbl->GetMaxWidth(This) +#define IDWriteTextLayout2_GetMaxHeight(This) (This)->lpVtbl->GetMaxHeight(This) +#define IDWriteTextLayout2_GetFontCollection(This,pos,collection,range) (This)->lpVtbl->IDWriteTextLayout_GetFontCollection(This,pos,collection,range) +#define IDWriteTextLayout2_GetFontFamilyNameLength(This,pos,len,range) (This)->lpVtbl->IDWriteTextLayout_GetFontFamilyNameLength(This,pos,len,range) +#define IDWriteTextLayout2_GetFontFamilyName(This,position,name,name_size,range) (This)->lpVtbl->IDWriteTextLayout_GetFontFamilyName(This,position,name,name_size,range) +#define IDWriteTextLayout2_GetFontWeight(This,position,weight,range) (This)->lpVtbl->IDWriteTextLayout_GetFontWeight(This,position,weight,range) +#define IDWriteTextLayout2_GetFontStyle(This,currentPosition,style,range) (This)->lpVtbl->IDWriteTextLayout_GetFontStyle(This,currentPosition,style,range) +#define IDWriteTextLayout2_GetFontStretch(This,position,stretch,range) (This)->lpVtbl->IDWriteTextLayout_GetFontStretch(This,position,stretch,range) +#define IDWriteTextLayout2_GetFontSize(This,position,size,range) (This)->lpVtbl->IDWriteTextLayout_GetFontSize(This,position,size,range) +#define IDWriteTextLayout2_GetUnderline(This,position,has_underline,range) (This)->lpVtbl->GetUnderline(This,position,has_underline,range) +#define IDWriteTextLayout2_GetStrikethrough(This,position,has_strikethrough,range) (This)->lpVtbl->GetStrikethrough(This,position,has_strikethrough,range) +#define IDWriteTextLayout2_GetDrawingEffect(This,position,effect,range) (This)->lpVtbl->GetDrawingEffect(This,position,effect,range) +#define IDWriteTextLayout2_GetInlineObject(This,position,object,range) (This)->lpVtbl->GetInlineObject(This,position,object,range) +#define IDWriteTextLayout2_GetTypography(This,position,typography,range) (This)->lpVtbl->GetTypography(This,position,typography,range) +#define IDWriteTextLayout2_GetLocaleNameLength(This,position,length,range) (This)->lpVtbl->IDWriteTextLayout_GetLocaleNameLength(This,position,length,range) +#define IDWriteTextLayout2_GetLocaleName(This,position,name,name_size,range) (This)->lpVtbl->IDWriteTextLayout_GetLocaleName(This,position,name,name_size,range) +#define IDWriteTextLayout2_Draw(This,context,renderer,originX,originY) (This)->lpVtbl->Draw(This,context,renderer,originX,originY) +#define IDWriteTextLayout2_GetLineMetrics(This,metrics,max_count,actual_count) (This)->lpVtbl->GetLineMetrics(This,metrics,max_count,actual_count) +#define IDWriteTextLayout2_GetOverhangMetrics(This,overhangs) (This)->lpVtbl->GetOverhangMetrics(This,overhangs) +#define IDWriteTextLayout2_GetClusterMetrics(This,metrics,max_count,act_count) (This)->lpVtbl->GetClusterMetrics(This,metrics,max_count,act_count) +#define IDWriteTextLayout2_DetermineMinWidth(This,min_width) (This)->lpVtbl->DetermineMinWidth(This,min_width) +#define IDWriteTextLayout2_HitTestPoint(This,pointX,pointY,is_trailinghit,is_inside,metrics) (This)->lpVtbl->HitTestPoint(This,pointX,pointY,is_trailinghit,is_inside,metrics) +#define IDWriteTextLayout2_HitTestTextPosition(This,textPosition,is_trailinghit,pointX,pointY,metrics) (This)->lpVtbl->HitTestTextPosition(This,textPosition,is_trailinghit,pointX,pointY,metrics) +#define IDWriteTextLayout2_HitTestTextRange(This,textPosition,textLength,originX,originY,metrics,max_metricscount,actual_metricscount) (This)->lpVtbl->HitTestTextRange(This,textPosition,textLength,originX,originY,metrics,max_metricscount,actual_metricscount) +/*** IDWriteTextLayout1 methods ***/ +#define IDWriteTextLayout2_SetPairKerning(This,is_pairkerning_enabled,range) (This)->lpVtbl->SetPairKerning(This,is_pairkerning_enabled,range) +#define IDWriteTextLayout2_GetPairKerning(This,position,is_pairkerning_enabled,range) (This)->lpVtbl->GetPairKerning(This,position,is_pairkerning_enabled,range) +#define IDWriteTextLayout2_SetCharacterSpacing(This,leading_spacing,trailing_spacing,minimum_advance_width,range) (This)->lpVtbl->SetCharacterSpacing(This,leading_spacing,trailing_spacing,minimum_advance_width,range) +#define IDWriteTextLayout2_GetCharacterSpacing(This,position,leading_spacing,trailing_spacing,minimum_advance_width,range) (This)->lpVtbl->GetCharacterSpacing(This,position,leading_spacing,trailing_spacing,minimum_advance_width,range) +/*** IDWriteTextLayout2 methods ***/ +#define IDWriteTextLayout2_GetMetrics(This,metrics) (This)->lpVtbl->IDWriteTextLayout2_GetMetrics(This,metrics) +#define IDWriteTextLayout2_SetVerticalGlyphOrientation(This,orientation) (This)->lpVtbl->SetVerticalGlyphOrientation(This,orientation) +#define IDWriteTextLayout2_GetVerticalGlyphOrientation(This) (This)->lpVtbl->GetVerticalGlyphOrientation(This) +#define IDWriteTextLayout2_SetLastLineWrapping(This,lastline_wrapping_enabled) (This)->lpVtbl->SetLastLineWrapping(This,lastline_wrapping_enabled) +#define IDWriteTextLayout2_GetLastLineWrapping(This) (This)->lpVtbl->GetLastLineWrapping(This) +#define IDWriteTextLayout2_SetOpticalAlignment(This,alignment) (This)->lpVtbl->SetOpticalAlignment(This,alignment) +#define IDWriteTextLayout2_GetOpticalAlignment(This) (This)->lpVtbl->GetOpticalAlignment(This) +#define IDWriteTextLayout2_SetFontFallback(This,fallback) (This)->lpVtbl->SetFontFallback(This,fallback) +#define IDWriteTextLayout2_GetFontFallback(This,fallback) (This)->lpVtbl->GetFontFallback(This,fallback) +#else +/*** IUnknown methods ***/ +static inline HRESULT IDWriteTextLayout2_QueryInterface(IDWriteTextLayout2* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static inline ULONG IDWriteTextLayout2_AddRef(IDWriteTextLayout2* This) { + return This->lpVtbl->AddRef(This); +} +static inline ULONG IDWriteTextLayout2_Release(IDWriteTextLayout2* This) { + return This->lpVtbl->Release(This); +} +/*** IDWriteTextFormat methods ***/ +static inline HRESULT IDWriteTextLayout2_SetTextAlignment(IDWriteTextLayout2* This,DWRITE_TEXT_ALIGNMENT alignment) { + return This->lpVtbl->SetTextAlignment(This,alignment); +} +static inline HRESULT IDWriteTextLayout2_SetParagraphAlignment(IDWriteTextLayout2* This,DWRITE_PARAGRAPH_ALIGNMENT alignment) { + return This->lpVtbl->SetParagraphAlignment(This,alignment); +} +static inline HRESULT IDWriteTextLayout2_SetWordWrapping(IDWriteTextLayout2* This,DWRITE_WORD_WRAPPING wrapping) { + return This->lpVtbl->SetWordWrapping(This,wrapping); +} +static inline HRESULT IDWriteTextLayout2_SetReadingDirection(IDWriteTextLayout2* This,DWRITE_READING_DIRECTION direction) { + return This->lpVtbl->SetReadingDirection(This,direction); +} +static inline HRESULT IDWriteTextLayout2_SetFlowDirection(IDWriteTextLayout2* This,DWRITE_FLOW_DIRECTION direction) { + return This->lpVtbl->SetFlowDirection(This,direction); +} +static inline HRESULT IDWriteTextLayout2_SetIncrementalTabStop(IDWriteTextLayout2* This,FLOAT tabstop) { + return This->lpVtbl->SetIncrementalTabStop(This,tabstop); +} +static inline HRESULT IDWriteTextLayout2_SetTrimming(IDWriteTextLayout2* This,const DWRITE_TRIMMING *trimming,IDWriteInlineObject *trimming_sign) { + return This->lpVtbl->SetTrimming(This,trimming,trimming_sign); +} +static inline HRESULT IDWriteTextLayout2_SetLineSpacing(IDWriteTextLayout2* This,DWRITE_LINE_SPACING_METHOD spacing,FLOAT line_spacing,FLOAT baseline) { + return This->lpVtbl->SetLineSpacing(This,spacing,line_spacing,baseline); +} +static inline DWRITE_TEXT_ALIGNMENT IDWriteTextLayout2_GetTextAlignment(IDWriteTextLayout2* This) { + return This->lpVtbl->GetTextAlignment(This); +} +static inline DWRITE_PARAGRAPH_ALIGNMENT IDWriteTextLayout2_GetParagraphAlignment(IDWriteTextLayout2* This) { + return This->lpVtbl->GetParagraphAlignment(This); +} +static inline DWRITE_WORD_WRAPPING IDWriteTextLayout2_GetWordWrapping(IDWriteTextLayout2* This) { + return This->lpVtbl->GetWordWrapping(This); +} +static inline DWRITE_READING_DIRECTION IDWriteTextLayout2_GetReadingDirection(IDWriteTextLayout2* This) { + return This->lpVtbl->GetReadingDirection(This); +} +static inline DWRITE_FLOW_DIRECTION IDWriteTextLayout2_GetFlowDirection(IDWriteTextLayout2* This) { + return This->lpVtbl->GetFlowDirection(This); +} +static inline FLOAT IDWriteTextLayout2_GetIncrementalTabStop(IDWriteTextLayout2* This) { + return This->lpVtbl->GetIncrementalTabStop(This); +} +static inline HRESULT IDWriteTextLayout2_GetTrimming(IDWriteTextLayout2* This,DWRITE_TRIMMING *options,IDWriteInlineObject **trimming_sign) { + return This->lpVtbl->GetTrimming(This,options,trimming_sign); +} +static inline HRESULT IDWriteTextLayout2_GetLineSpacing(IDWriteTextLayout2* This,DWRITE_LINE_SPACING_METHOD *method,FLOAT *spacing,FLOAT *baseline) { + return This->lpVtbl->GetLineSpacing(This,method,spacing,baseline); +} +/*** IDWriteTextLayout methods ***/ +static inline HRESULT IDWriteTextLayout2_SetMaxWidth(IDWriteTextLayout2* This,FLOAT maxWidth) { + return This->lpVtbl->SetMaxWidth(This,maxWidth); +} +static inline HRESULT IDWriteTextLayout2_SetMaxHeight(IDWriteTextLayout2* This,FLOAT maxHeight) { + return This->lpVtbl->SetMaxHeight(This,maxHeight); +} +static inline HRESULT IDWriteTextLayout2_SetFontCollection(IDWriteTextLayout2* This,IDWriteFontCollection *collection,DWRITE_TEXT_RANGE range) { + return This->lpVtbl->SetFontCollection(This,collection,range); +} +static inline HRESULT IDWriteTextLayout2_SetFontFamilyName(IDWriteTextLayout2* This,const WCHAR *name,DWRITE_TEXT_RANGE range) { + return This->lpVtbl->SetFontFamilyName(This,name,range); +} +static inline HRESULT IDWriteTextLayout2_SetFontWeight(IDWriteTextLayout2* This,DWRITE_FONT_WEIGHT weight,DWRITE_TEXT_RANGE range) { + return This->lpVtbl->SetFontWeight(This,weight,range); +} +static inline HRESULT IDWriteTextLayout2_SetFontStyle(IDWriteTextLayout2* This,DWRITE_FONT_STYLE style,DWRITE_TEXT_RANGE range) { + return This->lpVtbl->SetFontStyle(This,style,range); +} +static inline HRESULT IDWriteTextLayout2_SetFontStretch(IDWriteTextLayout2* This,DWRITE_FONT_STRETCH stretch,DWRITE_TEXT_RANGE range) { + return This->lpVtbl->SetFontStretch(This,stretch,range); +} +static inline HRESULT IDWriteTextLayout2_SetFontSize(IDWriteTextLayout2* This,FLOAT size,DWRITE_TEXT_RANGE range) { + return This->lpVtbl->SetFontSize(This,size,range); +} +static inline HRESULT IDWriteTextLayout2_SetUnderline(IDWriteTextLayout2* This,WINBOOL underline,DWRITE_TEXT_RANGE range) { + return This->lpVtbl->SetUnderline(This,underline,range); +} +static inline HRESULT IDWriteTextLayout2_SetStrikethrough(IDWriteTextLayout2* This,WINBOOL strikethrough,DWRITE_TEXT_RANGE range) { + return This->lpVtbl->SetStrikethrough(This,strikethrough,range); +} +static inline HRESULT IDWriteTextLayout2_SetDrawingEffect(IDWriteTextLayout2* This,IUnknown *effect,DWRITE_TEXT_RANGE range) { + return This->lpVtbl->SetDrawingEffect(This,effect,range); +} +static inline HRESULT IDWriteTextLayout2_SetInlineObject(IDWriteTextLayout2* This,IDWriteInlineObject *object,DWRITE_TEXT_RANGE range) { + return This->lpVtbl->SetInlineObject(This,object,range); +} +static inline HRESULT IDWriteTextLayout2_SetTypography(IDWriteTextLayout2* This,IDWriteTypography *typography,DWRITE_TEXT_RANGE range) { + return This->lpVtbl->SetTypography(This,typography,range); +} +static inline HRESULT IDWriteTextLayout2_SetLocaleName(IDWriteTextLayout2* This,const WCHAR *locale,DWRITE_TEXT_RANGE range) { + return This->lpVtbl->SetLocaleName(This,locale,range); +} +static inline FLOAT IDWriteTextLayout2_GetMaxWidth(IDWriteTextLayout2* This) { + return This->lpVtbl->GetMaxWidth(This); +} +static inline FLOAT IDWriteTextLayout2_GetMaxHeight(IDWriteTextLayout2* This) { + return This->lpVtbl->GetMaxHeight(This); +} +static inline HRESULT IDWriteTextLayout2_GetFontCollection(IDWriteTextLayout2* This,UINT32 pos,IDWriteFontCollection **collection,DWRITE_TEXT_RANGE *range) { + return This->lpVtbl->IDWriteTextLayout_GetFontCollection(This,pos,collection,range); +} +static inline HRESULT IDWriteTextLayout2_GetFontFamilyNameLength(IDWriteTextLayout2* This,UINT32 pos,UINT32 *len,DWRITE_TEXT_RANGE *range) { + return This->lpVtbl->IDWriteTextLayout_GetFontFamilyNameLength(This,pos,len,range); +} +static inline HRESULT IDWriteTextLayout2_GetFontFamilyName(IDWriteTextLayout2* This,UINT32 position,WCHAR *name,UINT32 name_size,DWRITE_TEXT_RANGE *range) { + return This->lpVtbl->IDWriteTextLayout_GetFontFamilyName(This,position,name,name_size,range); +} +static inline HRESULT IDWriteTextLayout2_GetFontWeight(IDWriteTextLayout2* This,UINT32 position,DWRITE_FONT_WEIGHT *weight,DWRITE_TEXT_RANGE *range) { + return This->lpVtbl->IDWriteTextLayout_GetFontWeight(This,position,weight,range); +} +static inline HRESULT IDWriteTextLayout2_GetFontStyle(IDWriteTextLayout2* This,UINT32 currentPosition,DWRITE_FONT_STYLE *style,DWRITE_TEXT_RANGE *range) { + return This->lpVtbl->IDWriteTextLayout_GetFontStyle(This,currentPosition,style,range); +} +static inline HRESULT IDWriteTextLayout2_GetFontStretch(IDWriteTextLayout2* This,UINT32 position,DWRITE_FONT_STRETCH *stretch,DWRITE_TEXT_RANGE *range) { + return This->lpVtbl->IDWriteTextLayout_GetFontStretch(This,position,stretch,range); +} +static inline HRESULT IDWriteTextLayout2_GetFontSize(IDWriteTextLayout2* This,UINT32 position,FLOAT *size,DWRITE_TEXT_RANGE *range) { + return This->lpVtbl->IDWriteTextLayout_GetFontSize(This,position,size,range); +} +static inline HRESULT IDWriteTextLayout2_GetUnderline(IDWriteTextLayout2* This,UINT32 position,WINBOOL *has_underline,DWRITE_TEXT_RANGE *range) { + return This->lpVtbl->GetUnderline(This,position,has_underline,range); +} +static inline HRESULT IDWriteTextLayout2_GetStrikethrough(IDWriteTextLayout2* This,UINT32 position,WINBOOL *has_strikethrough,DWRITE_TEXT_RANGE *range) { + return This->lpVtbl->GetStrikethrough(This,position,has_strikethrough,range); +} +static inline HRESULT IDWriteTextLayout2_GetDrawingEffect(IDWriteTextLayout2* This,UINT32 position,IUnknown **effect,DWRITE_TEXT_RANGE *range) { + return This->lpVtbl->GetDrawingEffect(This,position,effect,range); +} +static inline HRESULT IDWriteTextLayout2_GetInlineObject(IDWriteTextLayout2* This,UINT32 position,IDWriteInlineObject **object,DWRITE_TEXT_RANGE *range) { + return This->lpVtbl->GetInlineObject(This,position,object,range); +} +static inline HRESULT IDWriteTextLayout2_GetTypography(IDWriteTextLayout2* This,UINT32 position,IDWriteTypography **typography,DWRITE_TEXT_RANGE *range) { + return This->lpVtbl->GetTypography(This,position,typography,range); +} +static inline HRESULT IDWriteTextLayout2_GetLocaleNameLength(IDWriteTextLayout2* This,UINT32 position,UINT32 *length,DWRITE_TEXT_RANGE *range) { + return This->lpVtbl->IDWriteTextLayout_GetLocaleNameLength(This,position,length,range); +} +static inline HRESULT IDWriteTextLayout2_GetLocaleName(IDWriteTextLayout2* This,UINT32 position,WCHAR *name,UINT32 name_size,DWRITE_TEXT_RANGE *range) { + return This->lpVtbl->IDWriteTextLayout_GetLocaleName(This,position,name,name_size,range); +} +static inline HRESULT IDWriteTextLayout2_Draw(IDWriteTextLayout2* This,void *context,IDWriteTextRenderer *renderer,FLOAT originX,FLOAT originY) { + return This->lpVtbl->Draw(This,context,renderer,originX,originY); +} +static inline HRESULT IDWriteTextLayout2_GetLineMetrics(IDWriteTextLayout2* This,DWRITE_LINE_METRICS *metrics,UINT32 max_count,UINT32 *actual_count) { + return This->lpVtbl->GetLineMetrics(This,metrics,max_count,actual_count); +} +static inline HRESULT IDWriteTextLayout2_GetOverhangMetrics(IDWriteTextLayout2* This,DWRITE_OVERHANG_METRICS *overhangs) { + return This->lpVtbl->GetOverhangMetrics(This,overhangs); +} +static inline HRESULT IDWriteTextLayout2_GetClusterMetrics(IDWriteTextLayout2* This,DWRITE_CLUSTER_METRICS *metrics,UINT32 max_count,UINT32 *act_count) { + return This->lpVtbl->GetClusterMetrics(This,metrics,max_count,act_count); +} +static inline HRESULT IDWriteTextLayout2_DetermineMinWidth(IDWriteTextLayout2* This,FLOAT *min_width) { + return This->lpVtbl->DetermineMinWidth(This,min_width); +} +static inline HRESULT IDWriteTextLayout2_HitTestPoint(IDWriteTextLayout2* This,FLOAT pointX,FLOAT pointY,WINBOOL *is_trailinghit,WINBOOL *is_inside,DWRITE_HIT_TEST_METRICS *metrics) { + return This->lpVtbl->HitTestPoint(This,pointX,pointY,is_trailinghit,is_inside,metrics); +} +static inline HRESULT IDWriteTextLayout2_HitTestTextPosition(IDWriteTextLayout2* This,UINT32 textPosition,WINBOOL is_trailinghit,FLOAT *pointX,FLOAT *pointY,DWRITE_HIT_TEST_METRICS *metrics) { + return This->lpVtbl->HitTestTextPosition(This,textPosition,is_trailinghit,pointX,pointY,metrics); +} +static inline HRESULT IDWriteTextLayout2_HitTestTextRange(IDWriteTextLayout2* This,UINT32 textPosition,UINT32 textLength,FLOAT originX,FLOAT originY,DWRITE_HIT_TEST_METRICS *metrics,UINT32 max_metricscount,UINT32 *actual_metricscount) { + return This->lpVtbl->HitTestTextRange(This,textPosition,textLength,originX,originY,metrics,max_metricscount,actual_metricscount); +} +/*** IDWriteTextLayout1 methods ***/ +static inline HRESULT IDWriteTextLayout2_SetPairKerning(IDWriteTextLayout2* This,WINBOOL is_pairkerning_enabled,DWRITE_TEXT_RANGE range) { + return This->lpVtbl->SetPairKerning(This,is_pairkerning_enabled,range); +} +static inline HRESULT IDWriteTextLayout2_GetPairKerning(IDWriteTextLayout2* This,UINT32 position,WINBOOL *is_pairkerning_enabled,DWRITE_TEXT_RANGE *range) { + return This->lpVtbl->GetPairKerning(This,position,is_pairkerning_enabled,range); +} +static inline HRESULT IDWriteTextLayout2_SetCharacterSpacing(IDWriteTextLayout2* This,FLOAT leading_spacing,FLOAT trailing_spacing,FLOAT minimum_advance_width,DWRITE_TEXT_RANGE range) { + return This->lpVtbl->SetCharacterSpacing(This,leading_spacing,trailing_spacing,minimum_advance_width,range); +} +static inline HRESULT IDWriteTextLayout2_GetCharacterSpacing(IDWriteTextLayout2* This,UINT32 position,FLOAT *leading_spacing,FLOAT *trailing_spacing,FLOAT *minimum_advance_width,DWRITE_TEXT_RANGE *range) { + return This->lpVtbl->GetCharacterSpacing(This,position,leading_spacing,trailing_spacing,minimum_advance_width,range); +} +/*** IDWriteTextLayout2 methods ***/ +static inline HRESULT IDWriteTextLayout2_GetMetrics(IDWriteTextLayout2* This,DWRITE_TEXT_METRICS1 *metrics) { + return This->lpVtbl->IDWriteTextLayout2_GetMetrics(This,metrics); +} +static inline HRESULT IDWriteTextLayout2_SetVerticalGlyphOrientation(IDWriteTextLayout2* This,DWRITE_VERTICAL_GLYPH_ORIENTATION orientation) { + return This->lpVtbl->SetVerticalGlyphOrientation(This,orientation); +} +static inline DWRITE_VERTICAL_GLYPH_ORIENTATION IDWriteTextLayout2_GetVerticalGlyphOrientation(IDWriteTextLayout2* This) { + return This->lpVtbl->GetVerticalGlyphOrientation(This); +} +static inline HRESULT IDWriteTextLayout2_SetLastLineWrapping(IDWriteTextLayout2* This,WINBOOL lastline_wrapping_enabled) { + return This->lpVtbl->SetLastLineWrapping(This,lastline_wrapping_enabled); +} +static inline WINBOOL IDWriteTextLayout2_GetLastLineWrapping(IDWriteTextLayout2* This) { + return This->lpVtbl->GetLastLineWrapping(This); +} +static inline HRESULT IDWriteTextLayout2_SetOpticalAlignment(IDWriteTextLayout2* This,DWRITE_OPTICAL_ALIGNMENT alignment) { + return This->lpVtbl->SetOpticalAlignment(This,alignment); +} +static inline DWRITE_OPTICAL_ALIGNMENT IDWriteTextLayout2_GetOpticalAlignment(IDWriteTextLayout2* This) { + return This->lpVtbl->GetOpticalAlignment(This); +} +static inline HRESULT IDWriteTextLayout2_SetFontFallback(IDWriteTextLayout2* This,IDWriteFontFallback *fallback) { + return This->lpVtbl->SetFontFallback(This,fallback); +} +static inline HRESULT IDWriteTextLayout2_GetFontFallback(IDWriteTextLayout2* This,IDWriteFontFallback **fallback) { + return This->lpVtbl->GetFontFallback(This,fallback); +} +#endif +#endif + +#endif + + +#endif /* __IDWriteTextLayout2_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IDWriteTextAnalyzer2 interface + */ +#ifndef __IDWriteTextAnalyzer2_INTERFACE_DEFINED__ +#define __IDWriteTextAnalyzer2_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDWriteTextAnalyzer2, 0x553a9ff3, 0x5693, 0x4df7, 0xb5,0x2b, 0x74,0x80,0x6f,0x7f,0x2e,0xb9); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("553a9ff3-5693-4df7-b52b-74806f7f2eb9") +IDWriteTextAnalyzer2 : public IDWriteTextAnalyzer1 +{ + virtual HRESULT STDMETHODCALLTYPE GetGlyphOrientationTransform( + DWRITE_GLYPH_ORIENTATION_ANGLE angle, + WINBOOL is_sideways, + FLOAT originX, + FLOAT originY, + DWRITE_MATRIX *transform) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetTypographicFeatures( + IDWriteFontFace *fontface, + DWRITE_SCRIPT_ANALYSIS analysis, + const WCHAR *localeName, + UINT32 max_tagcount, + UINT32 *actual_tagcount, + DWRITE_FONT_FEATURE_TAG *tags) = 0; + + virtual HRESULT STDMETHODCALLTYPE CheckTypographicFeature( + IDWriteFontFace *fontface, + DWRITE_SCRIPT_ANALYSIS analysis, + const WCHAR *localeName, + DWRITE_FONT_FEATURE_TAG feature, + UINT32 glyph_count, + const UINT16 *indices, + UINT8 *feature_applies) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDWriteTextAnalyzer2, 0x553a9ff3, 0x5693, 0x4df7, 0xb5,0x2b, 0x74,0x80,0x6f,0x7f,0x2e,0xb9) +#endif +#else +typedef struct IDWriteTextAnalyzer2Vtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDWriteTextAnalyzer2 *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDWriteTextAnalyzer2 *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDWriteTextAnalyzer2 *This); + + /*** IDWriteTextAnalyzer methods ***/ + HRESULT (STDMETHODCALLTYPE *AnalyzeScript)( + IDWriteTextAnalyzer2 *This, + IDWriteTextAnalysisSource *source, + UINT32 position, + UINT32 length, + IDWriteTextAnalysisSink *sink); + + HRESULT (STDMETHODCALLTYPE *AnalyzeBidi)( + IDWriteTextAnalyzer2 *This, + IDWriteTextAnalysisSource *source, + UINT32 position, + UINT32 length, + IDWriteTextAnalysisSink *sink); + + HRESULT (STDMETHODCALLTYPE *AnalyzeNumberSubstitution)( + IDWriteTextAnalyzer2 *This, + IDWriteTextAnalysisSource *source, + UINT32 position, + UINT32 length, + IDWriteTextAnalysisSink *sink); + + HRESULT (STDMETHODCALLTYPE *AnalyzeLineBreakpoints)( + IDWriteTextAnalyzer2 *This, + IDWriteTextAnalysisSource *source, + UINT32 position, + UINT32 length, + IDWriteTextAnalysisSink *sink); + + HRESULT (STDMETHODCALLTYPE *GetGlyphs)( + IDWriteTextAnalyzer2 *This, + const WCHAR *text, + UINT32 length, + IDWriteFontFace *font_face, + WINBOOL is_sideways, + WINBOOL is_rtl, + const DWRITE_SCRIPT_ANALYSIS *analysis, + const WCHAR *locale, + IDWriteNumberSubstitution *substitution, + const DWRITE_TYPOGRAPHIC_FEATURES **features, + const UINT32 *feature_range_len, + UINT32 feature_ranges, + UINT32 max_glyph_count, + UINT16 *clustermap, + DWRITE_SHAPING_TEXT_PROPERTIES *text_props, + UINT16 *glyph_indices, + DWRITE_SHAPING_GLYPH_PROPERTIES *glyph_props, + UINT32 *actual_glyph_count); + + HRESULT (STDMETHODCALLTYPE *GetGlyphPlacements)( + IDWriteTextAnalyzer2 *This, + const WCHAR *text, + const UINT16 *clustermap, + DWRITE_SHAPING_TEXT_PROPERTIES *props, + UINT32 text_len, + const UINT16 *glyph_indices, + const DWRITE_SHAPING_GLYPH_PROPERTIES *glyph_props, + UINT32 glyph_count, + IDWriteFontFace *font_face, + FLOAT fontEmSize, + WINBOOL is_sideways, + WINBOOL is_rtl, + const DWRITE_SCRIPT_ANALYSIS *analysis, + const WCHAR *locale, + const DWRITE_TYPOGRAPHIC_FEATURES **features, + const UINT32 *feature_range_len, + UINT32 feature_ranges, + FLOAT *glyph_advances, + DWRITE_GLYPH_OFFSET *glyph_offsets); + + HRESULT (STDMETHODCALLTYPE *GetGdiCompatibleGlyphPlacements)( + IDWriteTextAnalyzer2 *This, + const WCHAR *text, + const UINT16 *clustermap, + DWRITE_SHAPING_TEXT_PROPERTIES *props, + UINT32 text_len, + const UINT16 *glyph_indices, + const DWRITE_SHAPING_GLYPH_PROPERTIES *glyph_props, + UINT32 glyph_count, + IDWriteFontFace *font_face, + FLOAT fontEmSize, + FLOAT pixels_per_dip, + const DWRITE_MATRIX *transform, + WINBOOL use_gdi_natural, + WINBOOL is_sideways, + WINBOOL is_rtl, + const DWRITE_SCRIPT_ANALYSIS *analysis, + const WCHAR *locale, + const DWRITE_TYPOGRAPHIC_FEATURES **features, + const UINT32 *feature_range_lengths, + UINT32 feature_ranges, + FLOAT *glyph_advances, + DWRITE_GLYPH_OFFSET *glyph_offsets); + + /*** IDWriteTextAnalyzer1 methods ***/ + HRESULT (STDMETHODCALLTYPE *ApplyCharacterSpacing)( + IDWriteTextAnalyzer2 *This, + FLOAT leading_spacing, + FLOAT trailing_spacing, + FLOAT min_advance_width, + UINT32 len, + UINT32 glyph_count, + const UINT16 *clustermap, + const FLOAT *advances, + const DWRITE_GLYPH_OFFSET *offsets, + const DWRITE_SHAPING_GLYPH_PROPERTIES *props, + FLOAT *modified_advances, + DWRITE_GLYPH_OFFSET *modified_offsets); + + HRESULT (STDMETHODCALLTYPE *GetBaseline)( + IDWriteTextAnalyzer2 *This, + IDWriteFontFace *face, + DWRITE_BASELINE baseline, + WINBOOL vertical, + WINBOOL is_simulation_allowed, + DWRITE_SCRIPT_ANALYSIS sa, + const WCHAR *localeName, + INT32 *baseline_coord, + WINBOOL *exists); + + HRESULT (STDMETHODCALLTYPE *AnalyzeVerticalGlyphOrientation)( + IDWriteTextAnalyzer2 *This, + IDWriteTextAnalysisSource1 *source, + UINT32 text_pos, + UINT32 len, + IDWriteTextAnalysisSink1 *sink); + + HRESULT (STDMETHODCALLTYPE *GetGlyphOrientationTransform)( + IDWriteTextAnalyzer2 *This, + DWRITE_GLYPH_ORIENTATION_ANGLE angle, + WINBOOL is_sideways, + DWRITE_MATRIX *transform); + + HRESULT (STDMETHODCALLTYPE *GetScriptProperties)( + IDWriteTextAnalyzer2 *This, + DWRITE_SCRIPT_ANALYSIS sa, + DWRITE_SCRIPT_PROPERTIES *props); + + HRESULT (STDMETHODCALLTYPE *GetTextComplexity)( + IDWriteTextAnalyzer2 *This, + const WCHAR *text, + UINT32 len, + IDWriteFontFace *face, + WINBOOL *is_simple, + UINT32 *len_read, + UINT16 *indices); + + HRESULT (STDMETHODCALLTYPE *GetJustificationOpportunities)( + IDWriteTextAnalyzer2 *This, + IDWriteFontFace *face, + FLOAT font_em_size, + DWRITE_SCRIPT_ANALYSIS sa, + UINT32 length, + UINT32 glyph_count, + const WCHAR *text, + const UINT16 *clustermap, + const DWRITE_SHAPING_GLYPH_PROPERTIES *prop, + DWRITE_JUSTIFICATION_OPPORTUNITY *jo); + + HRESULT (STDMETHODCALLTYPE *JustifyGlyphAdvances)( + IDWriteTextAnalyzer2 *This, + FLOAT width, + UINT32 glyph_count, + const DWRITE_JUSTIFICATION_OPPORTUNITY *jo, + const FLOAT *advances, + const DWRITE_GLYPH_OFFSET *offsets, + FLOAT *justifiedadvances, + DWRITE_GLYPH_OFFSET *justifiedoffsets); + + HRESULT (STDMETHODCALLTYPE *GetJustifiedGlyphs)( + IDWriteTextAnalyzer2 *This, + IDWriteFontFace *face, + FLOAT font_em_size, + DWRITE_SCRIPT_ANALYSIS sa, + UINT32 length, + UINT32 glyph_count, + UINT32 max_glyphcount, + const UINT16 *clustermap, + const UINT16 *indices, + const FLOAT *advances, + const FLOAT *justifiedadvances, + const DWRITE_GLYPH_OFFSET *justifiedoffsets, + const DWRITE_SHAPING_GLYPH_PROPERTIES *prop, + UINT32 *actual_count, + UINT16 *modified_clustermap, + UINT16 *modified_indices, + FLOAT *modified_advances, + DWRITE_GLYPH_OFFSET *modified_offsets); + + /*** IDWriteTextAnalyzer2 methods ***/ + HRESULT (STDMETHODCALLTYPE *IDWriteTextAnalyzer2_GetGlyphOrientationTransform)( + IDWriteTextAnalyzer2 *This, + DWRITE_GLYPH_ORIENTATION_ANGLE angle, + WINBOOL is_sideways, + FLOAT originX, + FLOAT originY, + DWRITE_MATRIX *transform); + + HRESULT (STDMETHODCALLTYPE *GetTypographicFeatures)( + IDWriteTextAnalyzer2 *This, + IDWriteFontFace *fontface, + DWRITE_SCRIPT_ANALYSIS analysis, + const WCHAR *localeName, + UINT32 max_tagcount, + UINT32 *actual_tagcount, + DWRITE_FONT_FEATURE_TAG *tags); + + HRESULT (STDMETHODCALLTYPE *CheckTypographicFeature)( + IDWriteTextAnalyzer2 *This, + IDWriteFontFace *fontface, + DWRITE_SCRIPT_ANALYSIS analysis, + const WCHAR *localeName, + DWRITE_FONT_FEATURE_TAG feature, + UINT32 glyph_count, + const UINT16 *indices, + UINT8 *feature_applies); + + END_INTERFACE +} IDWriteTextAnalyzer2Vtbl; + +interface IDWriteTextAnalyzer2 { + CONST_VTBL IDWriteTextAnalyzer2Vtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDWriteTextAnalyzer2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteTextAnalyzer2_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDWriteTextAnalyzer2_Release(This) (This)->lpVtbl->Release(This) +/*** IDWriteTextAnalyzer methods ***/ +#define IDWriteTextAnalyzer2_AnalyzeScript(This,source,position,length,sink) (This)->lpVtbl->AnalyzeScript(This,source,position,length,sink) +#define IDWriteTextAnalyzer2_AnalyzeBidi(This,source,position,length,sink) (This)->lpVtbl->AnalyzeBidi(This,source,position,length,sink) +#define IDWriteTextAnalyzer2_AnalyzeNumberSubstitution(This,source,position,length,sink) (This)->lpVtbl->AnalyzeNumberSubstitution(This,source,position,length,sink) +#define IDWriteTextAnalyzer2_AnalyzeLineBreakpoints(This,source,position,length,sink) (This)->lpVtbl->AnalyzeLineBreakpoints(This,source,position,length,sink) +#define IDWriteTextAnalyzer2_GetGlyphs(This,text,length,font_face,is_sideways,is_rtl,analysis,locale,substitution,features,feature_range_len,feature_ranges,max_glyph_count,clustermap,text_props,glyph_indices,glyph_props,actual_glyph_count) (This)->lpVtbl->GetGlyphs(This,text,length,font_face,is_sideways,is_rtl,analysis,locale,substitution,features,feature_range_len,feature_ranges,max_glyph_count,clustermap,text_props,glyph_indices,glyph_props,actual_glyph_count) +#define IDWriteTextAnalyzer2_GetGlyphPlacements(This,text,clustermap,props,text_len,glyph_indices,glyph_props,glyph_count,font_face,fontEmSize,is_sideways,is_rtl,analysis,locale,features,feature_range_len,feature_ranges,glyph_advances,glyph_offsets) (This)->lpVtbl->GetGlyphPlacements(This,text,clustermap,props,text_len,glyph_indices,glyph_props,glyph_count,font_face,fontEmSize,is_sideways,is_rtl,analysis,locale,features,feature_range_len,feature_ranges,glyph_advances,glyph_offsets) +#define IDWriteTextAnalyzer2_GetGdiCompatibleGlyphPlacements(This,text,clustermap,props,text_len,glyph_indices,glyph_props,glyph_count,font_face,fontEmSize,pixels_per_dip,transform,use_gdi_natural,is_sideways,is_rtl,analysis,locale,features,feature_range_lengths,feature_ranges,glyph_advances,glyph_offsets) (This)->lpVtbl->GetGdiCompatibleGlyphPlacements(This,text,clustermap,props,text_len,glyph_indices,glyph_props,glyph_count,font_face,fontEmSize,pixels_per_dip,transform,use_gdi_natural,is_sideways,is_rtl,analysis,locale,features,feature_range_lengths,feature_ranges,glyph_advances,glyph_offsets) +/*** IDWriteTextAnalyzer1 methods ***/ +#define IDWriteTextAnalyzer2_ApplyCharacterSpacing(This,leading_spacing,trailing_spacing,min_advance_width,len,glyph_count,clustermap,advances,offsets,props,modified_advances,modified_offsets) (This)->lpVtbl->ApplyCharacterSpacing(This,leading_spacing,trailing_spacing,min_advance_width,len,glyph_count,clustermap,advances,offsets,props,modified_advances,modified_offsets) +#define IDWriteTextAnalyzer2_GetBaseline(This,face,baseline,vertical,is_simulation_allowed,sa,localeName,baseline_coord,exists) (This)->lpVtbl->GetBaseline(This,face,baseline,vertical,is_simulation_allowed,sa,localeName,baseline_coord,exists) +#define IDWriteTextAnalyzer2_AnalyzeVerticalGlyphOrientation(This,source,text_pos,len,sink) (This)->lpVtbl->AnalyzeVerticalGlyphOrientation(This,source,text_pos,len,sink) +#define IDWriteTextAnalyzer2_GetScriptProperties(This,sa,props) (This)->lpVtbl->GetScriptProperties(This,sa,props) +#define IDWriteTextAnalyzer2_GetTextComplexity(This,text,len,face,is_simple,len_read,indices) (This)->lpVtbl->GetTextComplexity(This,text,len,face,is_simple,len_read,indices) +#define IDWriteTextAnalyzer2_GetJustificationOpportunities(This,face,font_em_size,sa,length,glyph_count,text,clustermap,prop,jo) (This)->lpVtbl->GetJustificationOpportunities(This,face,font_em_size,sa,length,glyph_count,text,clustermap,prop,jo) +#define IDWriteTextAnalyzer2_JustifyGlyphAdvances(This,width,glyph_count,jo,advances,offsets,justifiedadvances,justifiedoffsets) (This)->lpVtbl->JustifyGlyphAdvances(This,width,glyph_count,jo,advances,offsets,justifiedadvances,justifiedoffsets) +#define IDWriteTextAnalyzer2_GetJustifiedGlyphs(This,face,font_em_size,sa,length,glyph_count,max_glyphcount,clustermap,indices,advances,justifiedadvances,justifiedoffsets,prop,actual_count,modified_clustermap,modified_indices,modified_advances,modified_offsets) (This)->lpVtbl->GetJustifiedGlyphs(This,face,font_em_size,sa,length,glyph_count,max_glyphcount,clustermap,indices,advances,justifiedadvances,justifiedoffsets,prop,actual_count,modified_clustermap,modified_indices,modified_advances,modified_offsets) +/*** IDWriteTextAnalyzer2 methods ***/ +#define IDWriteTextAnalyzer2_GetGlyphOrientationTransform(This,angle,is_sideways,originX,originY,transform) (This)->lpVtbl->IDWriteTextAnalyzer2_GetGlyphOrientationTransform(This,angle,is_sideways,originX,originY,transform) +#define IDWriteTextAnalyzer2_GetTypographicFeatures(This,fontface,analysis,localeName,max_tagcount,actual_tagcount,tags) (This)->lpVtbl->GetTypographicFeatures(This,fontface,analysis,localeName,max_tagcount,actual_tagcount,tags) +#define IDWriteTextAnalyzer2_CheckTypographicFeature(This,fontface,analysis,localeName,feature,glyph_count,indices,feature_applies) (This)->lpVtbl->CheckTypographicFeature(This,fontface,analysis,localeName,feature,glyph_count,indices,feature_applies) +#else +/*** IUnknown methods ***/ +static inline HRESULT IDWriteTextAnalyzer2_QueryInterface(IDWriteTextAnalyzer2* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static inline ULONG IDWriteTextAnalyzer2_AddRef(IDWriteTextAnalyzer2* This) { + return This->lpVtbl->AddRef(This); +} +static inline ULONG IDWriteTextAnalyzer2_Release(IDWriteTextAnalyzer2* This) { + return This->lpVtbl->Release(This); +} +/*** IDWriteTextAnalyzer methods ***/ +static inline HRESULT IDWriteTextAnalyzer2_AnalyzeScript(IDWriteTextAnalyzer2* This,IDWriteTextAnalysisSource *source,UINT32 position,UINT32 length,IDWriteTextAnalysisSink *sink) { + return This->lpVtbl->AnalyzeScript(This,source,position,length,sink); +} +static inline HRESULT IDWriteTextAnalyzer2_AnalyzeBidi(IDWriteTextAnalyzer2* This,IDWriteTextAnalysisSource *source,UINT32 position,UINT32 length,IDWriteTextAnalysisSink *sink) { + return This->lpVtbl->AnalyzeBidi(This,source,position,length,sink); +} +static inline HRESULT IDWriteTextAnalyzer2_AnalyzeNumberSubstitution(IDWriteTextAnalyzer2* This,IDWriteTextAnalysisSource *source,UINT32 position,UINT32 length,IDWriteTextAnalysisSink *sink) { + return This->lpVtbl->AnalyzeNumberSubstitution(This,source,position,length,sink); +} +static inline HRESULT IDWriteTextAnalyzer2_AnalyzeLineBreakpoints(IDWriteTextAnalyzer2* This,IDWriteTextAnalysisSource *source,UINT32 position,UINT32 length,IDWriteTextAnalysisSink *sink) { + return This->lpVtbl->AnalyzeLineBreakpoints(This,source,position,length,sink); +} +static inline HRESULT IDWriteTextAnalyzer2_GetGlyphs(IDWriteTextAnalyzer2* This,const WCHAR *text,UINT32 length,IDWriteFontFace *font_face,WINBOOL is_sideways,WINBOOL is_rtl,const DWRITE_SCRIPT_ANALYSIS *analysis,const WCHAR *locale,IDWriteNumberSubstitution *substitution,const DWRITE_TYPOGRAPHIC_FEATURES **features,const UINT32 *feature_range_len,UINT32 feature_ranges,UINT32 max_glyph_count,UINT16 *clustermap,DWRITE_SHAPING_TEXT_PROPERTIES *text_props,UINT16 *glyph_indices,DWRITE_SHAPING_GLYPH_PROPERTIES *glyph_props,UINT32 *actual_glyph_count) { + return This->lpVtbl->GetGlyphs(This,text,length,font_face,is_sideways,is_rtl,analysis,locale,substitution,features,feature_range_len,feature_ranges,max_glyph_count,clustermap,text_props,glyph_indices,glyph_props,actual_glyph_count); +} +static inline HRESULT IDWriteTextAnalyzer2_GetGlyphPlacements(IDWriteTextAnalyzer2* This,const WCHAR *text,const UINT16 *clustermap,DWRITE_SHAPING_TEXT_PROPERTIES *props,UINT32 text_len,const UINT16 *glyph_indices,const DWRITE_SHAPING_GLYPH_PROPERTIES *glyph_props,UINT32 glyph_count,IDWriteFontFace *font_face,FLOAT fontEmSize,WINBOOL is_sideways,WINBOOL is_rtl,const DWRITE_SCRIPT_ANALYSIS *analysis,const WCHAR *locale,const DWRITE_TYPOGRAPHIC_FEATURES **features,const UINT32 *feature_range_len,UINT32 feature_ranges,FLOAT *glyph_advances,DWRITE_GLYPH_OFFSET *glyph_offsets) { + return This->lpVtbl->GetGlyphPlacements(This,text,clustermap,props,text_len,glyph_indices,glyph_props,glyph_count,font_face,fontEmSize,is_sideways,is_rtl,analysis,locale,features,feature_range_len,feature_ranges,glyph_advances,glyph_offsets); +} +static inline HRESULT IDWriteTextAnalyzer2_GetGdiCompatibleGlyphPlacements(IDWriteTextAnalyzer2* This,const WCHAR *text,const UINT16 *clustermap,DWRITE_SHAPING_TEXT_PROPERTIES *props,UINT32 text_len,const UINT16 *glyph_indices,const DWRITE_SHAPING_GLYPH_PROPERTIES *glyph_props,UINT32 glyph_count,IDWriteFontFace *font_face,FLOAT fontEmSize,FLOAT pixels_per_dip,const DWRITE_MATRIX *transform,WINBOOL use_gdi_natural,WINBOOL is_sideways,WINBOOL is_rtl,const DWRITE_SCRIPT_ANALYSIS *analysis,const WCHAR *locale,const DWRITE_TYPOGRAPHIC_FEATURES **features,const UINT32 *feature_range_lengths,UINT32 feature_ranges,FLOAT *glyph_advances,DWRITE_GLYPH_OFFSET *glyph_offsets) { + return This->lpVtbl->GetGdiCompatibleGlyphPlacements(This,text,clustermap,props,text_len,glyph_indices,glyph_props,glyph_count,font_face,fontEmSize,pixels_per_dip,transform,use_gdi_natural,is_sideways,is_rtl,analysis,locale,features,feature_range_lengths,feature_ranges,glyph_advances,glyph_offsets); +} +/*** IDWriteTextAnalyzer1 methods ***/ +static inline HRESULT IDWriteTextAnalyzer2_ApplyCharacterSpacing(IDWriteTextAnalyzer2* This,FLOAT leading_spacing,FLOAT trailing_spacing,FLOAT min_advance_width,UINT32 len,UINT32 glyph_count,const UINT16 *clustermap,const FLOAT *advances,const DWRITE_GLYPH_OFFSET *offsets,const DWRITE_SHAPING_GLYPH_PROPERTIES *props,FLOAT *modified_advances,DWRITE_GLYPH_OFFSET *modified_offsets) { + return This->lpVtbl->ApplyCharacterSpacing(This,leading_spacing,trailing_spacing,min_advance_width,len,glyph_count,clustermap,advances,offsets,props,modified_advances,modified_offsets); +} +static inline HRESULT IDWriteTextAnalyzer2_GetBaseline(IDWriteTextAnalyzer2* This,IDWriteFontFace *face,DWRITE_BASELINE baseline,WINBOOL vertical,WINBOOL is_simulation_allowed,DWRITE_SCRIPT_ANALYSIS sa,const WCHAR *localeName,INT32 *baseline_coord,WINBOOL *exists) { + return This->lpVtbl->GetBaseline(This,face,baseline,vertical,is_simulation_allowed,sa,localeName,baseline_coord,exists); +} +static inline HRESULT IDWriteTextAnalyzer2_AnalyzeVerticalGlyphOrientation(IDWriteTextAnalyzer2* This,IDWriteTextAnalysisSource1 *source,UINT32 text_pos,UINT32 len,IDWriteTextAnalysisSink1 *sink) { + return This->lpVtbl->AnalyzeVerticalGlyphOrientation(This,source,text_pos,len,sink); +} +static inline HRESULT IDWriteTextAnalyzer2_GetScriptProperties(IDWriteTextAnalyzer2* This,DWRITE_SCRIPT_ANALYSIS sa,DWRITE_SCRIPT_PROPERTIES *props) { + return This->lpVtbl->GetScriptProperties(This,sa,props); +} +static inline HRESULT IDWriteTextAnalyzer2_GetTextComplexity(IDWriteTextAnalyzer2* This,const WCHAR *text,UINT32 len,IDWriteFontFace *face,WINBOOL *is_simple,UINT32 *len_read,UINT16 *indices) { + return This->lpVtbl->GetTextComplexity(This,text,len,face,is_simple,len_read,indices); +} +static inline HRESULT IDWriteTextAnalyzer2_GetJustificationOpportunities(IDWriteTextAnalyzer2* This,IDWriteFontFace *face,FLOAT font_em_size,DWRITE_SCRIPT_ANALYSIS sa,UINT32 length,UINT32 glyph_count,const WCHAR *text,const UINT16 *clustermap,const DWRITE_SHAPING_GLYPH_PROPERTIES *prop,DWRITE_JUSTIFICATION_OPPORTUNITY *jo) { + return This->lpVtbl->GetJustificationOpportunities(This,face,font_em_size,sa,length,glyph_count,text,clustermap,prop,jo); +} +static inline HRESULT IDWriteTextAnalyzer2_JustifyGlyphAdvances(IDWriteTextAnalyzer2* This,FLOAT width,UINT32 glyph_count,const DWRITE_JUSTIFICATION_OPPORTUNITY *jo,const FLOAT *advances,const DWRITE_GLYPH_OFFSET *offsets,FLOAT *justifiedadvances,DWRITE_GLYPH_OFFSET *justifiedoffsets) { + return This->lpVtbl->JustifyGlyphAdvances(This,width,glyph_count,jo,advances,offsets,justifiedadvances,justifiedoffsets); +} +static inline HRESULT IDWriteTextAnalyzer2_GetJustifiedGlyphs(IDWriteTextAnalyzer2* This,IDWriteFontFace *face,FLOAT font_em_size,DWRITE_SCRIPT_ANALYSIS sa,UINT32 length,UINT32 glyph_count,UINT32 max_glyphcount,const UINT16 *clustermap,const UINT16 *indices,const FLOAT *advances,const FLOAT *justifiedadvances,const DWRITE_GLYPH_OFFSET *justifiedoffsets,const DWRITE_SHAPING_GLYPH_PROPERTIES *prop,UINT32 *actual_count,UINT16 *modified_clustermap,UINT16 *modified_indices,FLOAT *modified_advances,DWRITE_GLYPH_OFFSET *modified_offsets) { + return This->lpVtbl->GetJustifiedGlyphs(This,face,font_em_size,sa,length,glyph_count,max_glyphcount,clustermap,indices,advances,justifiedadvances,justifiedoffsets,prop,actual_count,modified_clustermap,modified_indices,modified_advances,modified_offsets); +} +/*** IDWriteTextAnalyzer2 methods ***/ +static inline HRESULT IDWriteTextAnalyzer2_GetGlyphOrientationTransform(IDWriteTextAnalyzer2* This,DWRITE_GLYPH_ORIENTATION_ANGLE angle,WINBOOL is_sideways,FLOAT originX,FLOAT originY,DWRITE_MATRIX *transform) { + return This->lpVtbl->IDWriteTextAnalyzer2_GetGlyphOrientationTransform(This,angle,is_sideways,originX,originY,transform); +} +static inline HRESULT IDWriteTextAnalyzer2_GetTypographicFeatures(IDWriteTextAnalyzer2* This,IDWriteFontFace *fontface,DWRITE_SCRIPT_ANALYSIS analysis,const WCHAR *localeName,UINT32 max_tagcount,UINT32 *actual_tagcount,DWRITE_FONT_FEATURE_TAG *tags) { + return This->lpVtbl->GetTypographicFeatures(This,fontface,analysis,localeName,max_tagcount,actual_tagcount,tags); +} +static inline HRESULT IDWriteTextAnalyzer2_CheckTypographicFeature(IDWriteTextAnalyzer2* This,IDWriteFontFace *fontface,DWRITE_SCRIPT_ANALYSIS analysis,const WCHAR *localeName,DWRITE_FONT_FEATURE_TAG feature,UINT32 glyph_count,const UINT16 *indices,UINT8 *feature_applies) { + return This->lpVtbl->CheckTypographicFeature(This,fontface,analysis,localeName,feature,glyph_count,indices,feature_applies); +} +#endif +#endif + +#endif + + +#endif /* __IDWriteTextAnalyzer2_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IDWriteFontFallbackBuilder interface + */ +#ifndef __IDWriteFontFallbackBuilder_INTERFACE_DEFINED__ +#define __IDWriteFontFallbackBuilder_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDWriteFontFallbackBuilder, 0xfd882d06, 0x8aba, 0x4fb8, 0xb8,0x49, 0x8b,0xe8,0xb7,0x3e,0x14,0xde); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("fd882d06-8aba-4fb8-b849-8be8b73e14de") +IDWriteFontFallbackBuilder : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE AddMapping( + const DWRITE_UNICODE_RANGE *ranges, + UINT32 rangesCount, + const WCHAR **targetFamilyNames, + UINT32 targetFamilyNamesCount, + IDWriteFontCollection *collection = 0, + const WCHAR *localeName = 0, + const WCHAR *baseFamilyName = 0, + FLOAT scale = 1) = 0; + + virtual HRESULT STDMETHODCALLTYPE AddMappings( + IDWriteFontFallback *fallback) = 0; + + virtual HRESULT STDMETHODCALLTYPE CreateFontFallback( + IDWriteFontFallback **fallback) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDWriteFontFallbackBuilder, 0xfd882d06, 0x8aba, 0x4fb8, 0xb8,0x49, 0x8b,0xe8,0xb7,0x3e,0x14,0xde) +#endif +#else +typedef struct IDWriteFontFallbackBuilderVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDWriteFontFallbackBuilder *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDWriteFontFallbackBuilder *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDWriteFontFallbackBuilder *This); + + /*** IDWriteFontFallbackBuilder methods ***/ + HRESULT (STDMETHODCALLTYPE *AddMapping)( + IDWriteFontFallbackBuilder *This, + const DWRITE_UNICODE_RANGE *ranges, + UINT32 rangesCount, + const WCHAR **targetFamilyNames, + UINT32 targetFamilyNamesCount, + IDWriteFontCollection *collection, + const WCHAR *localeName, + const WCHAR *baseFamilyName, + FLOAT scale); + + HRESULT (STDMETHODCALLTYPE *AddMappings)( + IDWriteFontFallbackBuilder *This, + IDWriteFontFallback *fallback); + + HRESULT (STDMETHODCALLTYPE *CreateFontFallback)( + IDWriteFontFallbackBuilder *This, + IDWriteFontFallback **fallback); + + END_INTERFACE +} IDWriteFontFallbackBuilderVtbl; + +interface IDWriteFontFallbackBuilder { + CONST_VTBL IDWriteFontFallbackBuilderVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDWriteFontFallbackBuilder_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteFontFallbackBuilder_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDWriteFontFallbackBuilder_Release(This) (This)->lpVtbl->Release(This) +/*** IDWriteFontFallbackBuilder methods ***/ +#define IDWriteFontFallbackBuilder_AddMapping(This,ranges,rangesCount,targetFamilyNames,targetFamilyNamesCount,collection,localeName,baseFamilyName,scale) (This)->lpVtbl->AddMapping(This,ranges,rangesCount,targetFamilyNames,targetFamilyNamesCount,collection,localeName,baseFamilyName,scale) +#define IDWriteFontFallbackBuilder_AddMappings(This,fallback) (This)->lpVtbl->AddMappings(This,fallback) +#define IDWriteFontFallbackBuilder_CreateFontFallback(This,fallback) (This)->lpVtbl->CreateFontFallback(This,fallback) +#else +/*** IUnknown methods ***/ +static inline HRESULT IDWriteFontFallbackBuilder_QueryInterface(IDWriteFontFallbackBuilder* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static inline ULONG IDWriteFontFallbackBuilder_AddRef(IDWriteFontFallbackBuilder* This) { + return This->lpVtbl->AddRef(This); +} +static inline ULONG IDWriteFontFallbackBuilder_Release(IDWriteFontFallbackBuilder* This) { + return This->lpVtbl->Release(This); +} +/*** IDWriteFontFallbackBuilder methods ***/ +static inline HRESULT IDWriteFontFallbackBuilder_AddMapping(IDWriteFontFallbackBuilder* This,const DWRITE_UNICODE_RANGE *ranges,UINT32 rangesCount,const WCHAR **targetFamilyNames,UINT32 targetFamilyNamesCount,IDWriteFontCollection *collection,const WCHAR *localeName,const WCHAR *baseFamilyName,FLOAT scale) { + return This->lpVtbl->AddMapping(This,ranges,rangesCount,targetFamilyNames,targetFamilyNamesCount,collection,localeName,baseFamilyName,scale); +} +static inline HRESULT IDWriteFontFallbackBuilder_AddMappings(IDWriteFontFallbackBuilder* This,IDWriteFontFallback *fallback) { + return This->lpVtbl->AddMappings(This,fallback); +} +static inline HRESULT IDWriteFontFallbackBuilder_CreateFontFallback(IDWriteFontFallbackBuilder* This,IDWriteFontFallback **fallback) { + return This->lpVtbl->CreateFontFallback(This,fallback); +} +#endif +#endif + +#endif + + +#endif /* __IDWriteFontFallbackBuilder_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IDWriteFont2 interface + */ +#ifndef __IDWriteFont2_INTERFACE_DEFINED__ +#define __IDWriteFont2_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDWriteFont2, 0x29748ed6, 0x8c9c, 0x4a6a, 0xbe,0x0b, 0xd9,0x12,0xe8,0x53,0x89,0x44); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("29748ed6-8c9c-4a6a-be0b-d912e8538944") +IDWriteFont2 : public IDWriteFont1 +{ + virtual WINBOOL STDMETHODCALLTYPE IsColorFont( + ) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDWriteFont2, 0x29748ed6, 0x8c9c, 0x4a6a, 0xbe,0x0b, 0xd9,0x12,0xe8,0x53,0x89,0x44) +#endif +#else +typedef struct IDWriteFont2Vtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDWriteFont2 *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDWriteFont2 *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDWriteFont2 *This); + + /*** IDWriteFont methods ***/ + HRESULT (STDMETHODCALLTYPE *GetFontFamily)( + IDWriteFont2 *This, + IDWriteFontFamily **family); + + DWRITE_FONT_WEIGHT (STDMETHODCALLTYPE *GetWeight)( + IDWriteFont2 *This); + + DWRITE_FONT_STRETCH (STDMETHODCALLTYPE *GetStretch)( + IDWriteFont2 *This); + + DWRITE_FONT_STYLE (STDMETHODCALLTYPE *GetStyle)( + IDWriteFont2 *This); + + WINBOOL (STDMETHODCALLTYPE *IsSymbolFont)( + IDWriteFont2 *This); + + HRESULT (STDMETHODCALLTYPE *GetFaceNames)( + IDWriteFont2 *This, + IDWriteLocalizedStrings **names); + + HRESULT (STDMETHODCALLTYPE *GetInformationalStrings)( + IDWriteFont2 *This, + DWRITE_INFORMATIONAL_STRING_ID stringid, + IDWriteLocalizedStrings **strings, + WINBOOL *exists); + + DWRITE_FONT_SIMULATIONS (STDMETHODCALLTYPE *GetSimulations)( + IDWriteFont2 *This); + + void (STDMETHODCALLTYPE *GetMetrics)( + IDWriteFont2 *This, + DWRITE_FONT_METRICS *metrics); + + HRESULT (STDMETHODCALLTYPE *HasCharacter)( + IDWriteFont2 *This, + UINT32 value, + WINBOOL *exists); + + HRESULT (STDMETHODCALLTYPE *CreateFontFace)( + IDWriteFont2 *This, + IDWriteFontFace **face); + + /*** IDWriteFont1 methods ***/ + void (STDMETHODCALLTYPE *IDWriteFont1_GetMetrics)( + IDWriteFont2 *This, + DWRITE_FONT_METRICS1 *metrics); + + void (STDMETHODCALLTYPE *GetPanose)( + IDWriteFont2 *This, + DWRITE_PANOSE *panose); + + HRESULT (STDMETHODCALLTYPE *GetUnicodeRanges)( + IDWriteFont2 *This, + UINT32 max_count, + DWRITE_UNICODE_RANGE *ranges, + UINT32 *count); + + WINBOOL (STDMETHODCALLTYPE *IsMonospacedFont)( + IDWriteFont2 *This); + + /*** IDWriteFont2 methods ***/ + WINBOOL (STDMETHODCALLTYPE *IsColorFont)( + IDWriteFont2 *This); + + END_INTERFACE +} IDWriteFont2Vtbl; + +interface IDWriteFont2 { + CONST_VTBL IDWriteFont2Vtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDWriteFont2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteFont2_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDWriteFont2_Release(This) (This)->lpVtbl->Release(This) +/*** IDWriteFont methods ***/ +#define IDWriteFont2_GetFontFamily(This,family) (This)->lpVtbl->GetFontFamily(This,family) +#define IDWriteFont2_GetWeight(This) (This)->lpVtbl->GetWeight(This) +#define IDWriteFont2_GetStretch(This) (This)->lpVtbl->GetStretch(This) +#define IDWriteFont2_GetStyle(This) (This)->lpVtbl->GetStyle(This) +#define IDWriteFont2_IsSymbolFont(This) (This)->lpVtbl->IsSymbolFont(This) +#define IDWriteFont2_GetFaceNames(This,names) (This)->lpVtbl->GetFaceNames(This,names) +#define IDWriteFont2_GetInformationalStrings(This,stringid,strings,exists) (This)->lpVtbl->GetInformationalStrings(This,stringid,strings,exists) +#define IDWriteFont2_GetSimulations(This) (This)->lpVtbl->GetSimulations(This) +#define IDWriteFont2_HasCharacter(This,value,exists) (This)->lpVtbl->HasCharacter(This,value,exists) +#define IDWriteFont2_CreateFontFace(This,face) (This)->lpVtbl->CreateFontFace(This,face) +/*** IDWriteFont1 methods ***/ +#define IDWriteFont2_GetMetrics(This,metrics) (This)->lpVtbl->IDWriteFont1_GetMetrics(This,metrics) +#define IDWriteFont2_GetPanose(This,panose) (This)->lpVtbl->GetPanose(This,panose) +#define IDWriteFont2_GetUnicodeRanges(This,max_count,ranges,count) (This)->lpVtbl->GetUnicodeRanges(This,max_count,ranges,count) +#define IDWriteFont2_IsMonospacedFont(This) (This)->lpVtbl->IsMonospacedFont(This) +/*** IDWriteFont2 methods ***/ +#define IDWriteFont2_IsColorFont(This) (This)->lpVtbl->IsColorFont(This) +#else +/*** IUnknown methods ***/ +static inline HRESULT IDWriteFont2_QueryInterface(IDWriteFont2* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static inline ULONG IDWriteFont2_AddRef(IDWriteFont2* This) { + return This->lpVtbl->AddRef(This); +} +static inline ULONG IDWriteFont2_Release(IDWriteFont2* This) { + return This->lpVtbl->Release(This); +} +/*** IDWriteFont methods ***/ +static inline HRESULT IDWriteFont2_GetFontFamily(IDWriteFont2* This,IDWriteFontFamily **family) { + return This->lpVtbl->GetFontFamily(This,family); +} +static inline DWRITE_FONT_WEIGHT IDWriteFont2_GetWeight(IDWriteFont2* This) { + return This->lpVtbl->GetWeight(This); +} +static inline DWRITE_FONT_STRETCH IDWriteFont2_GetStretch(IDWriteFont2* This) { + return This->lpVtbl->GetStretch(This); +} +static inline DWRITE_FONT_STYLE IDWriteFont2_GetStyle(IDWriteFont2* This) { + return This->lpVtbl->GetStyle(This); +} +static inline WINBOOL IDWriteFont2_IsSymbolFont(IDWriteFont2* This) { + return This->lpVtbl->IsSymbolFont(This); +} +static inline HRESULT IDWriteFont2_GetFaceNames(IDWriteFont2* This,IDWriteLocalizedStrings **names) { + return This->lpVtbl->GetFaceNames(This,names); +} +static inline HRESULT IDWriteFont2_GetInformationalStrings(IDWriteFont2* This,DWRITE_INFORMATIONAL_STRING_ID stringid,IDWriteLocalizedStrings **strings,WINBOOL *exists) { + return This->lpVtbl->GetInformationalStrings(This,stringid,strings,exists); +} +static inline DWRITE_FONT_SIMULATIONS IDWriteFont2_GetSimulations(IDWriteFont2* This) { + return This->lpVtbl->GetSimulations(This); +} +static inline HRESULT IDWriteFont2_HasCharacter(IDWriteFont2* This,UINT32 value,WINBOOL *exists) { + return This->lpVtbl->HasCharacter(This,value,exists); +} +static inline HRESULT IDWriteFont2_CreateFontFace(IDWriteFont2* This,IDWriteFontFace **face) { + return This->lpVtbl->CreateFontFace(This,face); +} +/*** IDWriteFont1 methods ***/ +static inline void IDWriteFont2_GetMetrics(IDWriteFont2* This,DWRITE_FONT_METRICS1 *metrics) { + This->lpVtbl->IDWriteFont1_GetMetrics(This,metrics); +} +static inline void IDWriteFont2_GetPanose(IDWriteFont2* This,DWRITE_PANOSE *panose) { + This->lpVtbl->GetPanose(This,panose); +} +static inline HRESULT IDWriteFont2_GetUnicodeRanges(IDWriteFont2* This,UINT32 max_count,DWRITE_UNICODE_RANGE *ranges,UINT32 *count) { + return This->lpVtbl->GetUnicodeRanges(This,max_count,ranges,count); +} +static inline WINBOOL IDWriteFont2_IsMonospacedFont(IDWriteFont2* This) { + return This->lpVtbl->IsMonospacedFont(This); +} +/*** IDWriteFont2 methods ***/ +static inline WINBOOL IDWriteFont2_IsColorFont(IDWriteFont2* This) { + return This->lpVtbl->IsColorFont(This); +} +#endif +#endif + +#endif + + +#endif /* __IDWriteFont2_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IDWriteFontFace2 interface + */ +#ifndef __IDWriteFontFace2_INTERFACE_DEFINED__ +#define __IDWriteFontFace2_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDWriteFontFace2, 0xd8b768ff, 0x64bc, 0x4e66, 0x98,0x2b, 0xec,0x8e,0x87,0xf6,0x93,0xf7); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("d8b768ff-64bc-4e66-982b-ec8e87f693f7") +IDWriteFontFace2 : public IDWriteFontFace1 +{ + virtual WINBOOL STDMETHODCALLTYPE IsColorFont( + ) = 0; + + virtual UINT32 STDMETHODCALLTYPE GetColorPaletteCount( + ) = 0; + + virtual UINT32 STDMETHODCALLTYPE GetPaletteEntryCount( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetPaletteEntries( + UINT32 palette_index, + UINT32 first_entry_index, + UINT32 entry_count, + DWRITE_COLOR_F *entries) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetRecommendedRenderingMode( + FLOAT fontEmSize, + FLOAT dpiX, + FLOAT dpiY, + const DWRITE_MATRIX *transform, + WINBOOL is_sideways, + DWRITE_OUTLINE_THRESHOLD threshold, + DWRITE_MEASURING_MODE measuringmode, + IDWriteRenderingParams *params, + DWRITE_RENDERING_MODE *renderingmode, + DWRITE_GRID_FIT_MODE *gridfitmode) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDWriteFontFace2, 0xd8b768ff, 0x64bc, 0x4e66, 0x98,0x2b, 0xec,0x8e,0x87,0xf6,0x93,0xf7) +#endif +#else +typedef struct IDWriteFontFace2Vtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDWriteFontFace2 *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDWriteFontFace2 *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDWriteFontFace2 *This); + + /*** IDWriteFontFace methods ***/ + DWRITE_FONT_FACE_TYPE (STDMETHODCALLTYPE *GetType)( + IDWriteFontFace2 *This); + + HRESULT (STDMETHODCALLTYPE *GetFiles)( + IDWriteFontFace2 *This, + UINT32 *number_of_files, + IDWriteFontFile **fontfiles); + + UINT32 (STDMETHODCALLTYPE *GetIndex)( + IDWriteFontFace2 *This); + + DWRITE_FONT_SIMULATIONS (STDMETHODCALLTYPE *GetSimulations)( + IDWriteFontFace2 *This); + + WINBOOL (STDMETHODCALLTYPE *IsSymbolFont)( + IDWriteFontFace2 *This); + + void (STDMETHODCALLTYPE *GetMetrics)( + IDWriteFontFace2 *This, + DWRITE_FONT_METRICS *metrics); + + UINT16 (STDMETHODCALLTYPE *GetGlyphCount)( + IDWriteFontFace2 *This); + + HRESULT (STDMETHODCALLTYPE *GetDesignGlyphMetrics)( + IDWriteFontFace2 *This, + const UINT16 *glyph_indices, + UINT32 glyph_count, + DWRITE_GLYPH_METRICS *metrics, + WINBOOL is_sideways); + + HRESULT (STDMETHODCALLTYPE *GetGlyphIndices)( + IDWriteFontFace2 *This, + const UINT32 *codepoints, + UINT32 count, + UINT16 *glyph_indices); + + HRESULT (STDMETHODCALLTYPE *TryGetFontTable)( + IDWriteFontFace2 *This, + UINT32 table_tag, + const void **table_data, + UINT32 *table_size, + void **context, + WINBOOL *exists); + + void (STDMETHODCALLTYPE *ReleaseFontTable)( + IDWriteFontFace2 *This, + void *table_context); + + HRESULT (STDMETHODCALLTYPE *GetGlyphRunOutline)( + IDWriteFontFace2 *This, + FLOAT emSize, + const UINT16 *glyph_indices, + const FLOAT *glyph_advances, + const DWRITE_GLYPH_OFFSET *glyph_offsets, + UINT32 glyph_count, + WINBOOL is_sideways, + WINBOOL is_rtl, + IDWriteGeometrySink *geometrysink); + + HRESULT (STDMETHODCALLTYPE *GetRecommendedRenderingMode)( + IDWriteFontFace2 *This, + FLOAT emSize, + FLOAT pixels_per_dip, + DWRITE_MEASURING_MODE mode, + IDWriteRenderingParams *params, + DWRITE_RENDERING_MODE *rendering_mode); + + HRESULT (STDMETHODCALLTYPE *GetGdiCompatibleMetrics)( + IDWriteFontFace2 *This, + FLOAT emSize, + FLOAT pixels_per_dip, + const DWRITE_MATRIX *transform, + DWRITE_FONT_METRICS *metrics); + + HRESULT (STDMETHODCALLTYPE *GetGdiCompatibleGlyphMetrics)( + IDWriteFontFace2 *This, + FLOAT emSize, + FLOAT pixels_per_dip, + const DWRITE_MATRIX *transform, + WINBOOL use_gdi_natural, + const UINT16 *glyph_indices, + UINT32 glyph_count, + DWRITE_GLYPH_METRICS *metrics, + WINBOOL is_sideways); + + /*** IDWriteFontFace1 methods ***/ + void (STDMETHODCALLTYPE *IDWriteFontFace1_GetMetrics)( + IDWriteFontFace2 *This, + DWRITE_FONT_METRICS1 *metrics); + + HRESULT (STDMETHODCALLTYPE *IDWriteFontFace1_GetGdiCompatibleMetrics)( + IDWriteFontFace2 *This, + FLOAT em_size, + FLOAT pixels_per_dip, + const DWRITE_MATRIX *transform, + DWRITE_FONT_METRICS1 *metrics); + + void (STDMETHODCALLTYPE *GetCaretMetrics)( + IDWriteFontFace2 *This, + DWRITE_CARET_METRICS *metrics); + + HRESULT (STDMETHODCALLTYPE *GetUnicodeRanges)( + IDWriteFontFace2 *This, + UINT32 max_count, + DWRITE_UNICODE_RANGE *ranges, + UINT32 *count); + + WINBOOL (STDMETHODCALLTYPE *IsMonospacedFont)( + IDWriteFontFace2 *This); + + HRESULT (STDMETHODCALLTYPE *GetDesignGlyphAdvances)( + IDWriteFontFace2 *This, + UINT32 glyph_count, + const UINT16 *indices, + INT32 *advances, + WINBOOL is_sideways); + + HRESULT (STDMETHODCALLTYPE *GetGdiCompatibleGlyphAdvances)( + IDWriteFontFace2 *This, + FLOAT em_size, + FLOAT pixels_per_dip, + const DWRITE_MATRIX *transform, + WINBOOL use_gdi_natural, + WINBOOL is_sideways, + UINT32 glyph_count, + const UINT16 *indices, + INT32 *advances); + + HRESULT (STDMETHODCALLTYPE *GetKerningPairAdjustments)( + IDWriteFontFace2 *This, + UINT32 glyph_count, + const UINT16 *indices, + INT32 *adjustments); + + WINBOOL (STDMETHODCALLTYPE *HasKerningPairs)( + IDWriteFontFace2 *This); + + HRESULT (STDMETHODCALLTYPE *IDWriteFontFace1_GetRecommendedRenderingMode)( + IDWriteFontFace2 *This, + FLOAT font_emsize, + FLOAT dpiX, + FLOAT dpiY, + const DWRITE_MATRIX *transform, + WINBOOL is_sideways, + DWRITE_OUTLINE_THRESHOLD threshold, + DWRITE_MEASURING_MODE measuring_mode, + DWRITE_RENDERING_MODE *rendering_mode); + + HRESULT (STDMETHODCALLTYPE *GetVerticalGlyphVariants)( + IDWriteFontFace2 *This, + UINT32 glyph_count, + const UINT16 *nominal_indices, + UINT16 *vertical_indices); + + WINBOOL (STDMETHODCALLTYPE *HasVerticalGlyphVariants)( + IDWriteFontFace2 *This); + + /*** IDWriteFontFace2 methods ***/ + WINBOOL (STDMETHODCALLTYPE *IsColorFont)( + IDWriteFontFace2 *This); + + UINT32 (STDMETHODCALLTYPE *GetColorPaletteCount)( + IDWriteFontFace2 *This); + + UINT32 (STDMETHODCALLTYPE *GetPaletteEntryCount)( + IDWriteFontFace2 *This); + + HRESULT (STDMETHODCALLTYPE *GetPaletteEntries)( + IDWriteFontFace2 *This, + UINT32 palette_index, + UINT32 first_entry_index, + UINT32 entry_count, + DWRITE_COLOR_F *entries); + + HRESULT (STDMETHODCALLTYPE *IDWriteFontFace2_GetRecommendedRenderingMode)( + IDWriteFontFace2 *This, + FLOAT fontEmSize, + FLOAT dpiX, + FLOAT dpiY, + const DWRITE_MATRIX *transform, + WINBOOL is_sideways, + DWRITE_OUTLINE_THRESHOLD threshold, + DWRITE_MEASURING_MODE measuringmode, + IDWriteRenderingParams *params, + DWRITE_RENDERING_MODE *renderingmode, + DWRITE_GRID_FIT_MODE *gridfitmode); + + END_INTERFACE +} IDWriteFontFace2Vtbl; + +interface IDWriteFontFace2 { + CONST_VTBL IDWriteFontFace2Vtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDWriteFontFace2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteFontFace2_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDWriteFontFace2_Release(This) (This)->lpVtbl->Release(This) +/*** IDWriteFontFace methods ***/ +#define IDWriteFontFace2_GetType(This) (This)->lpVtbl->GetType(This) +#define IDWriteFontFace2_GetFiles(This,number_of_files,fontfiles) (This)->lpVtbl->GetFiles(This,number_of_files,fontfiles) +#define IDWriteFontFace2_GetIndex(This) (This)->lpVtbl->GetIndex(This) +#define IDWriteFontFace2_GetSimulations(This) (This)->lpVtbl->GetSimulations(This) +#define IDWriteFontFace2_IsSymbolFont(This) (This)->lpVtbl->IsSymbolFont(This) +#define IDWriteFontFace2_GetGlyphCount(This) (This)->lpVtbl->GetGlyphCount(This) +#define IDWriteFontFace2_GetDesignGlyphMetrics(This,glyph_indices,glyph_count,metrics,is_sideways) (This)->lpVtbl->GetDesignGlyphMetrics(This,glyph_indices,glyph_count,metrics,is_sideways) +#define IDWriteFontFace2_GetGlyphIndices(This,codepoints,count,glyph_indices) (This)->lpVtbl->GetGlyphIndices(This,codepoints,count,glyph_indices) +#define IDWriteFontFace2_TryGetFontTable(This,table_tag,table_data,table_size,context,exists) (This)->lpVtbl->TryGetFontTable(This,table_tag,table_data,table_size,context,exists) +#define IDWriteFontFace2_ReleaseFontTable(This,table_context) (This)->lpVtbl->ReleaseFontTable(This,table_context) +#define IDWriteFontFace2_GetGlyphRunOutline(This,emSize,glyph_indices,glyph_advances,glyph_offsets,glyph_count,is_sideways,is_rtl,geometrysink) (This)->lpVtbl->GetGlyphRunOutline(This,emSize,glyph_indices,glyph_advances,glyph_offsets,glyph_count,is_sideways,is_rtl,geometrysink) +#define IDWriteFontFace2_GetGdiCompatibleGlyphMetrics(This,emSize,pixels_per_dip,transform,use_gdi_natural,glyph_indices,glyph_count,metrics,is_sideways) (This)->lpVtbl->GetGdiCompatibleGlyphMetrics(This,emSize,pixels_per_dip,transform,use_gdi_natural,glyph_indices,glyph_count,metrics,is_sideways) +/*** IDWriteFontFace1 methods ***/ +#define IDWriteFontFace2_GetMetrics(This,metrics) (This)->lpVtbl->IDWriteFontFace1_GetMetrics(This,metrics) +#define IDWriteFontFace2_GetGdiCompatibleMetrics(This,em_size,pixels_per_dip,transform,metrics) (This)->lpVtbl->IDWriteFontFace1_GetGdiCompatibleMetrics(This,em_size,pixels_per_dip,transform,metrics) +#define IDWriteFontFace2_GetCaretMetrics(This,metrics) (This)->lpVtbl->GetCaretMetrics(This,metrics) +#define IDWriteFontFace2_GetUnicodeRanges(This,max_count,ranges,count) (This)->lpVtbl->GetUnicodeRanges(This,max_count,ranges,count) +#define IDWriteFontFace2_IsMonospacedFont(This) (This)->lpVtbl->IsMonospacedFont(This) +#define IDWriteFontFace2_GetDesignGlyphAdvances(This,glyph_count,indices,advances,is_sideways) (This)->lpVtbl->GetDesignGlyphAdvances(This,glyph_count,indices,advances,is_sideways) +#define IDWriteFontFace2_GetGdiCompatibleGlyphAdvances(This,em_size,pixels_per_dip,transform,use_gdi_natural,is_sideways,glyph_count,indices,advances) (This)->lpVtbl->GetGdiCompatibleGlyphAdvances(This,em_size,pixels_per_dip,transform,use_gdi_natural,is_sideways,glyph_count,indices,advances) +#define IDWriteFontFace2_GetKerningPairAdjustments(This,glyph_count,indices,adjustments) (This)->lpVtbl->GetKerningPairAdjustments(This,glyph_count,indices,adjustments) +#define IDWriteFontFace2_HasKerningPairs(This) (This)->lpVtbl->HasKerningPairs(This) +#define IDWriteFontFace2_GetVerticalGlyphVariants(This,glyph_count,nominal_indices,vertical_indices) (This)->lpVtbl->GetVerticalGlyphVariants(This,glyph_count,nominal_indices,vertical_indices) +#define IDWriteFontFace2_HasVerticalGlyphVariants(This) (This)->lpVtbl->HasVerticalGlyphVariants(This) +/*** IDWriteFontFace2 methods ***/ +#define IDWriteFontFace2_IsColorFont(This) (This)->lpVtbl->IsColorFont(This) +#define IDWriteFontFace2_GetColorPaletteCount(This) (This)->lpVtbl->GetColorPaletteCount(This) +#define IDWriteFontFace2_GetPaletteEntryCount(This) (This)->lpVtbl->GetPaletteEntryCount(This) +#define IDWriteFontFace2_GetPaletteEntries(This,palette_index,first_entry_index,entry_count,entries) (This)->lpVtbl->GetPaletteEntries(This,palette_index,first_entry_index,entry_count,entries) +#define IDWriteFontFace2_GetRecommendedRenderingMode(This,fontEmSize,dpiX,dpiY,transform,is_sideways,threshold,measuringmode,params,renderingmode,gridfitmode) (This)->lpVtbl->IDWriteFontFace2_GetRecommendedRenderingMode(This,fontEmSize,dpiX,dpiY,transform,is_sideways,threshold,measuringmode,params,renderingmode,gridfitmode) +#else +/*** IUnknown methods ***/ +static inline HRESULT IDWriteFontFace2_QueryInterface(IDWriteFontFace2* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static inline ULONG IDWriteFontFace2_AddRef(IDWriteFontFace2* This) { + return This->lpVtbl->AddRef(This); +} +static inline ULONG IDWriteFontFace2_Release(IDWriteFontFace2* This) { + return This->lpVtbl->Release(This); +} +/*** IDWriteFontFace methods ***/ +static inline DWRITE_FONT_FACE_TYPE IDWriteFontFace2_GetType(IDWriteFontFace2* This) { + return This->lpVtbl->GetType(This); +} +static inline HRESULT IDWriteFontFace2_GetFiles(IDWriteFontFace2* This,UINT32 *number_of_files,IDWriteFontFile **fontfiles) { + return This->lpVtbl->GetFiles(This,number_of_files,fontfiles); +} +static inline UINT32 IDWriteFontFace2_GetIndex(IDWriteFontFace2* This) { + return This->lpVtbl->GetIndex(This); +} +static inline DWRITE_FONT_SIMULATIONS IDWriteFontFace2_GetSimulations(IDWriteFontFace2* This) { + return This->lpVtbl->GetSimulations(This); +} +static inline WINBOOL IDWriteFontFace2_IsSymbolFont(IDWriteFontFace2* This) { + return This->lpVtbl->IsSymbolFont(This); +} +static inline UINT16 IDWriteFontFace2_GetGlyphCount(IDWriteFontFace2* This) { + return This->lpVtbl->GetGlyphCount(This); +} +static inline HRESULT IDWriteFontFace2_GetDesignGlyphMetrics(IDWriteFontFace2* This,const UINT16 *glyph_indices,UINT32 glyph_count,DWRITE_GLYPH_METRICS *metrics,WINBOOL is_sideways) { + return This->lpVtbl->GetDesignGlyphMetrics(This,glyph_indices,glyph_count,metrics,is_sideways); +} +static inline HRESULT IDWriteFontFace2_GetGlyphIndices(IDWriteFontFace2* This,const UINT32 *codepoints,UINT32 count,UINT16 *glyph_indices) { + return This->lpVtbl->GetGlyphIndices(This,codepoints,count,glyph_indices); +} +static inline HRESULT IDWriteFontFace2_TryGetFontTable(IDWriteFontFace2* This,UINT32 table_tag,const void **table_data,UINT32 *table_size,void **context,WINBOOL *exists) { + return This->lpVtbl->TryGetFontTable(This,table_tag,table_data,table_size,context,exists); +} +static inline void IDWriteFontFace2_ReleaseFontTable(IDWriteFontFace2* This,void *table_context) { + This->lpVtbl->ReleaseFontTable(This,table_context); +} +static inline HRESULT IDWriteFontFace2_GetGlyphRunOutline(IDWriteFontFace2* This,FLOAT emSize,const UINT16 *glyph_indices,const FLOAT *glyph_advances,const DWRITE_GLYPH_OFFSET *glyph_offsets,UINT32 glyph_count,WINBOOL is_sideways,WINBOOL is_rtl,IDWriteGeometrySink *geometrysink) { + return This->lpVtbl->GetGlyphRunOutline(This,emSize,glyph_indices,glyph_advances,glyph_offsets,glyph_count,is_sideways,is_rtl,geometrysink); +} +static inline HRESULT IDWriteFontFace2_GetGdiCompatibleGlyphMetrics(IDWriteFontFace2* This,FLOAT emSize,FLOAT pixels_per_dip,const DWRITE_MATRIX *transform,WINBOOL use_gdi_natural,const UINT16 *glyph_indices,UINT32 glyph_count,DWRITE_GLYPH_METRICS *metrics,WINBOOL is_sideways) { + return This->lpVtbl->GetGdiCompatibleGlyphMetrics(This,emSize,pixels_per_dip,transform,use_gdi_natural,glyph_indices,glyph_count,metrics,is_sideways); +} +/*** IDWriteFontFace1 methods ***/ +static inline void IDWriteFontFace2_GetMetrics(IDWriteFontFace2* This,DWRITE_FONT_METRICS1 *metrics) { + This->lpVtbl->IDWriteFontFace1_GetMetrics(This,metrics); +} +static inline HRESULT IDWriteFontFace2_GetGdiCompatibleMetrics(IDWriteFontFace2* This,FLOAT em_size,FLOAT pixels_per_dip,const DWRITE_MATRIX *transform,DWRITE_FONT_METRICS1 *metrics) { + return This->lpVtbl->IDWriteFontFace1_GetGdiCompatibleMetrics(This,em_size,pixels_per_dip,transform,metrics); +} +static inline void IDWriteFontFace2_GetCaretMetrics(IDWriteFontFace2* This,DWRITE_CARET_METRICS *metrics) { + This->lpVtbl->GetCaretMetrics(This,metrics); +} +static inline HRESULT IDWriteFontFace2_GetUnicodeRanges(IDWriteFontFace2* This,UINT32 max_count,DWRITE_UNICODE_RANGE *ranges,UINT32 *count) { + return This->lpVtbl->GetUnicodeRanges(This,max_count,ranges,count); +} +static inline WINBOOL IDWriteFontFace2_IsMonospacedFont(IDWriteFontFace2* This) { + return This->lpVtbl->IsMonospacedFont(This); +} +static inline HRESULT IDWriteFontFace2_GetDesignGlyphAdvances(IDWriteFontFace2* This,UINT32 glyph_count,const UINT16 *indices,INT32 *advances,WINBOOL is_sideways) { + return This->lpVtbl->GetDesignGlyphAdvances(This,glyph_count,indices,advances,is_sideways); +} +static inline HRESULT IDWriteFontFace2_GetGdiCompatibleGlyphAdvances(IDWriteFontFace2* This,FLOAT em_size,FLOAT pixels_per_dip,const DWRITE_MATRIX *transform,WINBOOL use_gdi_natural,WINBOOL is_sideways,UINT32 glyph_count,const UINT16 *indices,INT32 *advances) { + return This->lpVtbl->GetGdiCompatibleGlyphAdvances(This,em_size,pixels_per_dip,transform,use_gdi_natural,is_sideways,glyph_count,indices,advances); +} +static inline HRESULT IDWriteFontFace2_GetKerningPairAdjustments(IDWriteFontFace2* This,UINT32 glyph_count,const UINT16 *indices,INT32 *adjustments) { + return This->lpVtbl->GetKerningPairAdjustments(This,glyph_count,indices,adjustments); +} +static inline WINBOOL IDWriteFontFace2_HasKerningPairs(IDWriteFontFace2* This) { + return This->lpVtbl->HasKerningPairs(This); +} +static inline HRESULT IDWriteFontFace2_GetVerticalGlyphVariants(IDWriteFontFace2* This,UINT32 glyph_count,const UINT16 *nominal_indices,UINT16 *vertical_indices) { + return This->lpVtbl->GetVerticalGlyphVariants(This,glyph_count,nominal_indices,vertical_indices); +} +static inline WINBOOL IDWriteFontFace2_HasVerticalGlyphVariants(IDWriteFontFace2* This) { + return This->lpVtbl->HasVerticalGlyphVariants(This); +} +/*** IDWriteFontFace2 methods ***/ +static inline WINBOOL IDWriteFontFace2_IsColorFont(IDWriteFontFace2* This) { + return This->lpVtbl->IsColorFont(This); +} +static inline UINT32 IDWriteFontFace2_GetColorPaletteCount(IDWriteFontFace2* This) { + return This->lpVtbl->GetColorPaletteCount(This); +} +static inline UINT32 IDWriteFontFace2_GetPaletteEntryCount(IDWriteFontFace2* This) { + return This->lpVtbl->GetPaletteEntryCount(This); +} +static inline HRESULT IDWriteFontFace2_GetPaletteEntries(IDWriteFontFace2* This,UINT32 palette_index,UINT32 first_entry_index,UINT32 entry_count,DWRITE_COLOR_F *entries) { + return This->lpVtbl->GetPaletteEntries(This,palette_index,first_entry_index,entry_count,entries); +} +static inline HRESULT IDWriteFontFace2_GetRecommendedRenderingMode(IDWriteFontFace2* This,FLOAT fontEmSize,FLOAT dpiX,FLOAT dpiY,const DWRITE_MATRIX *transform,WINBOOL is_sideways,DWRITE_OUTLINE_THRESHOLD threshold,DWRITE_MEASURING_MODE measuringmode,IDWriteRenderingParams *params,DWRITE_RENDERING_MODE *renderingmode,DWRITE_GRID_FIT_MODE *gridfitmode) { + return This->lpVtbl->IDWriteFontFace2_GetRecommendedRenderingMode(This,fontEmSize,dpiX,dpiY,transform,is_sideways,threshold,measuringmode,params,renderingmode,gridfitmode); +} +#endif +#endif + +#endif + + +#endif /* __IDWriteFontFace2_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IDWriteColorGlyphRunEnumerator interface + */ +#ifndef __IDWriteColorGlyphRunEnumerator_INTERFACE_DEFINED__ +#define __IDWriteColorGlyphRunEnumerator_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDWriteColorGlyphRunEnumerator, 0xd31fbe17, 0xf157, 0x41a2, 0x8d,0x24, 0xcb,0x77,0x9e,0x05,0x60,0xe8); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("d31fbe17-f157-41a2-8d24-cb779e0560e8") +IDWriteColorGlyphRunEnumerator : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE MoveNext( + WINBOOL *hasRun) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetCurrentRun( + const DWRITE_COLOR_GLYPH_RUN **run) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDWriteColorGlyphRunEnumerator, 0xd31fbe17, 0xf157, 0x41a2, 0x8d,0x24, 0xcb,0x77,0x9e,0x05,0x60,0xe8) +#endif +#else +typedef struct IDWriteColorGlyphRunEnumeratorVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDWriteColorGlyphRunEnumerator *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDWriteColorGlyphRunEnumerator *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDWriteColorGlyphRunEnumerator *This); + + /*** IDWriteColorGlyphRunEnumerator methods ***/ + HRESULT (STDMETHODCALLTYPE *MoveNext)( + IDWriteColorGlyphRunEnumerator *This, + WINBOOL *hasRun); + + HRESULT (STDMETHODCALLTYPE *GetCurrentRun)( + IDWriteColorGlyphRunEnumerator *This, + const DWRITE_COLOR_GLYPH_RUN **run); + + END_INTERFACE +} IDWriteColorGlyphRunEnumeratorVtbl; + +interface IDWriteColorGlyphRunEnumerator { + CONST_VTBL IDWriteColorGlyphRunEnumeratorVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDWriteColorGlyphRunEnumerator_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteColorGlyphRunEnumerator_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDWriteColorGlyphRunEnumerator_Release(This) (This)->lpVtbl->Release(This) +/*** IDWriteColorGlyphRunEnumerator methods ***/ +#define IDWriteColorGlyphRunEnumerator_MoveNext(This,hasRun) (This)->lpVtbl->MoveNext(This,hasRun) +#define IDWriteColorGlyphRunEnumerator_GetCurrentRun(This,run) (This)->lpVtbl->GetCurrentRun(This,run) +#else +/*** IUnknown methods ***/ +static inline HRESULT IDWriteColorGlyphRunEnumerator_QueryInterface(IDWriteColorGlyphRunEnumerator* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static inline ULONG IDWriteColorGlyphRunEnumerator_AddRef(IDWriteColorGlyphRunEnumerator* This) { + return This->lpVtbl->AddRef(This); +} +static inline ULONG IDWriteColorGlyphRunEnumerator_Release(IDWriteColorGlyphRunEnumerator* This) { + return This->lpVtbl->Release(This); +} +/*** IDWriteColorGlyphRunEnumerator methods ***/ +static inline HRESULT IDWriteColorGlyphRunEnumerator_MoveNext(IDWriteColorGlyphRunEnumerator* This,WINBOOL *hasRun) { + return This->lpVtbl->MoveNext(This,hasRun); +} +static inline HRESULT IDWriteColorGlyphRunEnumerator_GetCurrentRun(IDWriteColorGlyphRunEnumerator* This,const DWRITE_COLOR_GLYPH_RUN **run) { + return This->lpVtbl->GetCurrentRun(This,run); +} +#endif +#endif + +#endif + + +#endif /* __IDWriteColorGlyphRunEnumerator_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IDWriteRenderingParams2 interface + */ +#ifndef __IDWriteRenderingParams2_INTERFACE_DEFINED__ +#define __IDWriteRenderingParams2_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDWriteRenderingParams2, 0xf9d711c3, 0x9777, 0x40ae, 0x87,0xe8, 0x3e,0x5a,0xf9,0xbf,0x09,0x48); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("f9d711c3-9777-40ae-87e8-3e5af9bf0948") +IDWriteRenderingParams2 : public IDWriteRenderingParams1 +{ + virtual DWRITE_GRID_FIT_MODE STDMETHODCALLTYPE GetGridFitMode( + ) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDWriteRenderingParams2, 0xf9d711c3, 0x9777, 0x40ae, 0x87,0xe8, 0x3e,0x5a,0xf9,0xbf,0x09,0x48) +#endif +#else +typedef struct IDWriteRenderingParams2Vtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDWriteRenderingParams2 *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDWriteRenderingParams2 *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDWriteRenderingParams2 *This); + + /*** IDWriteRenderingParams methods ***/ + FLOAT (STDMETHODCALLTYPE *GetGamma)( + IDWriteRenderingParams2 *This); + + FLOAT (STDMETHODCALLTYPE *GetEnhancedContrast)( + IDWriteRenderingParams2 *This); + + FLOAT (STDMETHODCALLTYPE *GetClearTypeLevel)( + IDWriteRenderingParams2 *This); + + DWRITE_PIXEL_GEOMETRY (STDMETHODCALLTYPE *GetPixelGeometry)( + IDWriteRenderingParams2 *This); + + DWRITE_RENDERING_MODE (STDMETHODCALLTYPE *GetRenderingMode)( + IDWriteRenderingParams2 *This); + + /*** IDWriteRenderingParams1 methods ***/ + FLOAT (STDMETHODCALLTYPE *GetGrayscaleEnhancedContrast)( + IDWriteRenderingParams2 *This); + + /*** IDWriteRenderingParams2 methods ***/ + DWRITE_GRID_FIT_MODE (STDMETHODCALLTYPE *GetGridFitMode)( + IDWriteRenderingParams2 *This); + + END_INTERFACE +} IDWriteRenderingParams2Vtbl; + +interface IDWriteRenderingParams2 { + CONST_VTBL IDWriteRenderingParams2Vtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDWriteRenderingParams2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteRenderingParams2_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDWriteRenderingParams2_Release(This) (This)->lpVtbl->Release(This) +/*** IDWriteRenderingParams methods ***/ +#define IDWriteRenderingParams2_GetGamma(This) (This)->lpVtbl->GetGamma(This) +#define IDWriteRenderingParams2_GetEnhancedContrast(This) (This)->lpVtbl->GetEnhancedContrast(This) +#define IDWriteRenderingParams2_GetClearTypeLevel(This) (This)->lpVtbl->GetClearTypeLevel(This) +#define IDWriteRenderingParams2_GetPixelGeometry(This) (This)->lpVtbl->GetPixelGeometry(This) +#define IDWriteRenderingParams2_GetRenderingMode(This) (This)->lpVtbl->GetRenderingMode(This) +/*** IDWriteRenderingParams1 methods ***/ +#define IDWriteRenderingParams2_GetGrayscaleEnhancedContrast(This) (This)->lpVtbl->GetGrayscaleEnhancedContrast(This) +/*** IDWriteRenderingParams2 methods ***/ +#define IDWriteRenderingParams2_GetGridFitMode(This) (This)->lpVtbl->GetGridFitMode(This) +#else +/*** IUnknown methods ***/ +static inline HRESULT IDWriteRenderingParams2_QueryInterface(IDWriteRenderingParams2* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static inline ULONG IDWriteRenderingParams2_AddRef(IDWriteRenderingParams2* This) { + return This->lpVtbl->AddRef(This); +} +static inline ULONG IDWriteRenderingParams2_Release(IDWriteRenderingParams2* This) { + return This->lpVtbl->Release(This); +} +/*** IDWriteRenderingParams methods ***/ +static inline FLOAT IDWriteRenderingParams2_GetGamma(IDWriteRenderingParams2* This) { + return This->lpVtbl->GetGamma(This); +} +static inline FLOAT IDWriteRenderingParams2_GetEnhancedContrast(IDWriteRenderingParams2* This) { + return This->lpVtbl->GetEnhancedContrast(This); +} +static inline FLOAT IDWriteRenderingParams2_GetClearTypeLevel(IDWriteRenderingParams2* This) { + return This->lpVtbl->GetClearTypeLevel(This); +} +static inline DWRITE_PIXEL_GEOMETRY IDWriteRenderingParams2_GetPixelGeometry(IDWriteRenderingParams2* This) { + return This->lpVtbl->GetPixelGeometry(This); +} +static inline DWRITE_RENDERING_MODE IDWriteRenderingParams2_GetRenderingMode(IDWriteRenderingParams2* This) { + return This->lpVtbl->GetRenderingMode(This); +} +/*** IDWriteRenderingParams1 methods ***/ +static inline FLOAT IDWriteRenderingParams2_GetGrayscaleEnhancedContrast(IDWriteRenderingParams2* This) { + return This->lpVtbl->GetGrayscaleEnhancedContrast(This); +} +/*** IDWriteRenderingParams2 methods ***/ +static inline DWRITE_GRID_FIT_MODE IDWriteRenderingParams2_GetGridFitMode(IDWriteRenderingParams2* This) { + return This->lpVtbl->GetGridFitMode(This); +} +#endif +#endif + +#endif + + +#endif /* __IDWriteRenderingParams2_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IDWriteFactory2 interface + */ +#ifndef __IDWriteFactory2_INTERFACE_DEFINED__ +#define __IDWriteFactory2_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDWriteFactory2, 0x0439fc60, 0xca44, 0x4994, 0x8d,0xee, 0x3a,0x9a,0xf7,0xb7,0x32,0xec); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("0439fc60-ca44-4994-8dee-3a9af7b732ec") +IDWriteFactory2 : public IDWriteFactory1 +{ + virtual HRESULT STDMETHODCALLTYPE GetSystemFontFallback( + IDWriteFontFallback **fallback) = 0; + + virtual HRESULT STDMETHODCALLTYPE CreateFontFallbackBuilder( + IDWriteFontFallbackBuilder **fallbackbuilder) = 0; + + virtual HRESULT STDMETHODCALLTYPE TranslateColorGlyphRun( + FLOAT originX, + FLOAT originY, + const DWRITE_GLYPH_RUN *run, + const DWRITE_GLYPH_RUN_DESCRIPTION *rundescr, + DWRITE_MEASURING_MODE mode, + const DWRITE_MATRIX *transform, + UINT32 palette_index, + IDWriteColorGlyphRunEnumerator **colorlayers) = 0; + + virtual HRESULT STDMETHODCALLTYPE CreateCustomRenderingParams( + FLOAT gamma, + FLOAT contrast, + FLOAT grayscalecontrast, + FLOAT cleartypeLevel, + DWRITE_PIXEL_GEOMETRY pixelGeometry, + DWRITE_RENDERING_MODE renderingMode, + DWRITE_GRID_FIT_MODE gridFitMode, + IDWriteRenderingParams2 **params) = 0; + + virtual HRESULT STDMETHODCALLTYPE CreateGlyphRunAnalysis( + const DWRITE_GLYPH_RUN *run, + const DWRITE_MATRIX *transform, + DWRITE_RENDERING_MODE renderingMode, + DWRITE_MEASURING_MODE measuringMode, + DWRITE_GRID_FIT_MODE gridFitMode, + DWRITE_TEXT_ANTIALIAS_MODE antialiasMode, + FLOAT originX, + FLOAT originY, + IDWriteGlyphRunAnalysis **analysis) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDWriteFactory2, 0x0439fc60, 0xca44, 0x4994, 0x8d,0xee, 0x3a,0x9a,0xf7,0xb7,0x32,0xec) +#endif +#else +typedef struct IDWriteFactory2Vtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDWriteFactory2 *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDWriteFactory2 *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDWriteFactory2 *This); + + /*** IDWriteFactory methods ***/ + HRESULT (STDMETHODCALLTYPE *GetSystemFontCollection)( + IDWriteFactory2 *This, + IDWriteFontCollection **collection, + WINBOOL check_for_updates); + + HRESULT (STDMETHODCALLTYPE *CreateCustomFontCollection)( + IDWriteFactory2 *This, + IDWriteFontCollectionLoader *loader, + const void *key, + UINT32 key_size, + IDWriteFontCollection **collection); + + HRESULT (STDMETHODCALLTYPE *RegisterFontCollectionLoader)( + IDWriteFactory2 *This, + IDWriteFontCollectionLoader *loader); + + HRESULT (STDMETHODCALLTYPE *UnregisterFontCollectionLoader)( + IDWriteFactory2 *This, + IDWriteFontCollectionLoader *loader); + + HRESULT (STDMETHODCALLTYPE *CreateFontFileReference)( + IDWriteFactory2 *This, + const WCHAR *path, + const FILETIME *writetime, + IDWriteFontFile **font_file); + + HRESULT (STDMETHODCALLTYPE *CreateCustomFontFileReference)( + IDWriteFactory2 *This, + const void *reference_key, + UINT32 key_size, + IDWriteFontFileLoader *loader, + IDWriteFontFile **font_file); + + HRESULT (STDMETHODCALLTYPE *CreateFontFace)( + IDWriteFactory2 *This, + DWRITE_FONT_FACE_TYPE facetype, + UINT32 files_number, + IDWriteFontFile *const *font_files, + UINT32 index, + DWRITE_FONT_SIMULATIONS sim_flags, + IDWriteFontFace **font_face); + + HRESULT (STDMETHODCALLTYPE *CreateRenderingParams)( + IDWriteFactory2 *This, + IDWriteRenderingParams **params); + + HRESULT (STDMETHODCALLTYPE *CreateMonitorRenderingParams)( + IDWriteFactory2 *This, + HMONITOR monitor, + IDWriteRenderingParams **params); + + HRESULT (STDMETHODCALLTYPE *CreateCustomRenderingParams)( + IDWriteFactory2 *This, + FLOAT gamma, + FLOAT enhancedContrast, + FLOAT cleartype_level, + DWRITE_PIXEL_GEOMETRY geometry, + DWRITE_RENDERING_MODE mode, + IDWriteRenderingParams **params); + + HRESULT (STDMETHODCALLTYPE *RegisterFontFileLoader)( + IDWriteFactory2 *This, + IDWriteFontFileLoader *loader); + + HRESULT (STDMETHODCALLTYPE *UnregisterFontFileLoader)( + IDWriteFactory2 *This, + IDWriteFontFileLoader *loader); + + HRESULT (STDMETHODCALLTYPE *CreateTextFormat)( + IDWriteFactory2 *This, + const WCHAR *family_name, + IDWriteFontCollection *collection, + DWRITE_FONT_WEIGHT weight, + DWRITE_FONT_STYLE style, + DWRITE_FONT_STRETCH stretch, + FLOAT size, + const WCHAR *locale, + IDWriteTextFormat **format); + + HRESULT (STDMETHODCALLTYPE *CreateTypography)( + IDWriteFactory2 *This, + IDWriteTypography **typography); + + HRESULT (STDMETHODCALLTYPE *GetGdiInterop)( + IDWriteFactory2 *This, + IDWriteGdiInterop **gdi_interop); + + HRESULT (STDMETHODCALLTYPE *CreateTextLayout)( + IDWriteFactory2 *This, + const WCHAR *string, + UINT32 len, + IDWriteTextFormat *format, + FLOAT max_width, + FLOAT max_height, + IDWriteTextLayout **layout); + + HRESULT (STDMETHODCALLTYPE *CreateGdiCompatibleTextLayout)( + IDWriteFactory2 *This, + const WCHAR *string, + UINT32 len, + IDWriteTextFormat *format, + FLOAT layout_width, + FLOAT layout_height, + FLOAT pixels_per_dip, + const DWRITE_MATRIX *transform, + WINBOOL use_gdi_natural, + IDWriteTextLayout **layout); + + HRESULT (STDMETHODCALLTYPE *CreateEllipsisTrimmingSign)( + IDWriteFactory2 *This, + IDWriteTextFormat *format, + IDWriteInlineObject **trimming_sign); + + HRESULT (STDMETHODCALLTYPE *CreateTextAnalyzer)( + IDWriteFactory2 *This, + IDWriteTextAnalyzer **analyzer); + + HRESULT (STDMETHODCALLTYPE *CreateNumberSubstitution)( + IDWriteFactory2 *This, + DWRITE_NUMBER_SUBSTITUTION_METHOD method, + const WCHAR *locale, + WINBOOL ignore_user_override, + IDWriteNumberSubstitution **substitution); + + HRESULT (STDMETHODCALLTYPE *CreateGlyphRunAnalysis)( + IDWriteFactory2 *This, + const DWRITE_GLYPH_RUN *glyph_run, + FLOAT pixels_per_dip, + const DWRITE_MATRIX *transform, + DWRITE_RENDERING_MODE rendering_mode, + DWRITE_MEASURING_MODE measuring_mode, + FLOAT baseline_x, + FLOAT baseline_y, + IDWriteGlyphRunAnalysis **analysis); + + /*** IDWriteFactory1 methods ***/ + HRESULT (STDMETHODCALLTYPE *GetEudcFontCollection)( + IDWriteFactory2 *This, + IDWriteFontCollection **collection, + WINBOOL check_for_updates); + + HRESULT (STDMETHODCALLTYPE *IDWriteFactory1_CreateCustomRenderingParams)( + IDWriteFactory2 *This, + FLOAT gamma, + FLOAT enhcontrast, + FLOAT enhcontrast_grayscale, + FLOAT cleartype_level, + DWRITE_PIXEL_GEOMETRY geometry, + DWRITE_RENDERING_MODE mode, + IDWriteRenderingParams1 **params); + + /*** IDWriteFactory2 methods ***/ + HRESULT (STDMETHODCALLTYPE *GetSystemFontFallback)( + IDWriteFactory2 *This, + IDWriteFontFallback **fallback); + + HRESULT (STDMETHODCALLTYPE *CreateFontFallbackBuilder)( + IDWriteFactory2 *This, + IDWriteFontFallbackBuilder **fallbackbuilder); + + HRESULT (STDMETHODCALLTYPE *TranslateColorGlyphRun)( + IDWriteFactory2 *This, + FLOAT originX, + FLOAT originY, + const DWRITE_GLYPH_RUN *run, + const DWRITE_GLYPH_RUN_DESCRIPTION *rundescr, + DWRITE_MEASURING_MODE mode, + const DWRITE_MATRIX *transform, + UINT32 palette_index, + IDWriteColorGlyphRunEnumerator **colorlayers); + + HRESULT (STDMETHODCALLTYPE *IDWriteFactory2_CreateCustomRenderingParams)( + IDWriteFactory2 *This, + FLOAT gamma, + FLOAT contrast, + FLOAT grayscalecontrast, + FLOAT cleartypeLevel, + DWRITE_PIXEL_GEOMETRY pixelGeometry, + DWRITE_RENDERING_MODE renderingMode, + DWRITE_GRID_FIT_MODE gridFitMode, + IDWriteRenderingParams2 **params); + + HRESULT (STDMETHODCALLTYPE *IDWriteFactory2_CreateGlyphRunAnalysis)( + IDWriteFactory2 *This, + const DWRITE_GLYPH_RUN *run, + const DWRITE_MATRIX *transform, + DWRITE_RENDERING_MODE renderingMode, + DWRITE_MEASURING_MODE measuringMode, + DWRITE_GRID_FIT_MODE gridFitMode, + DWRITE_TEXT_ANTIALIAS_MODE antialiasMode, + FLOAT originX, + FLOAT originY, + IDWriteGlyphRunAnalysis **analysis); + + END_INTERFACE +} IDWriteFactory2Vtbl; + +interface IDWriteFactory2 { + CONST_VTBL IDWriteFactory2Vtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDWriteFactory2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteFactory2_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDWriteFactory2_Release(This) (This)->lpVtbl->Release(This) +/*** IDWriteFactory methods ***/ +#define IDWriteFactory2_GetSystemFontCollection(This,collection,check_for_updates) (This)->lpVtbl->GetSystemFontCollection(This,collection,check_for_updates) +#define IDWriteFactory2_CreateCustomFontCollection(This,loader,key,key_size,collection) (This)->lpVtbl->CreateCustomFontCollection(This,loader,key,key_size,collection) +#define IDWriteFactory2_RegisterFontCollectionLoader(This,loader) (This)->lpVtbl->RegisterFontCollectionLoader(This,loader) +#define IDWriteFactory2_UnregisterFontCollectionLoader(This,loader) (This)->lpVtbl->UnregisterFontCollectionLoader(This,loader) +#define IDWriteFactory2_CreateFontFileReference(This,path,writetime,font_file) (This)->lpVtbl->CreateFontFileReference(This,path,writetime,font_file) +#define IDWriteFactory2_CreateCustomFontFileReference(This,reference_key,key_size,loader,font_file) (This)->lpVtbl->CreateCustomFontFileReference(This,reference_key,key_size,loader,font_file) +#define IDWriteFactory2_CreateFontFace(This,facetype,files_number,font_files,index,sim_flags,font_face) (This)->lpVtbl->CreateFontFace(This,facetype,files_number,font_files,index,sim_flags,font_face) +#define IDWriteFactory2_CreateRenderingParams(This,params) (This)->lpVtbl->CreateRenderingParams(This,params) +#define IDWriteFactory2_CreateMonitorRenderingParams(This,monitor,params) (This)->lpVtbl->CreateMonitorRenderingParams(This,monitor,params) +#define IDWriteFactory2_RegisterFontFileLoader(This,loader) (This)->lpVtbl->RegisterFontFileLoader(This,loader) +#define IDWriteFactory2_UnregisterFontFileLoader(This,loader) (This)->lpVtbl->UnregisterFontFileLoader(This,loader) +#define IDWriteFactory2_CreateTextFormat(This,family_name,collection,weight,style,stretch,size,locale,format) (This)->lpVtbl->CreateTextFormat(This,family_name,collection,weight,style,stretch,size,locale,format) +#define IDWriteFactory2_CreateTypography(This,typography) (This)->lpVtbl->CreateTypography(This,typography) +#define IDWriteFactory2_GetGdiInterop(This,gdi_interop) (This)->lpVtbl->GetGdiInterop(This,gdi_interop) +#define IDWriteFactory2_CreateTextLayout(This,string,len,format,max_width,max_height,layout) (This)->lpVtbl->CreateTextLayout(This,string,len,format,max_width,max_height,layout) +#define IDWriteFactory2_CreateGdiCompatibleTextLayout(This,string,len,format,layout_width,layout_height,pixels_per_dip,transform,use_gdi_natural,layout) (This)->lpVtbl->CreateGdiCompatibleTextLayout(This,string,len,format,layout_width,layout_height,pixels_per_dip,transform,use_gdi_natural,layout) +#define IDWriteFactory2_CreateEllipsisTrimmingSign(This,format,trimming_sign) (This)->lpVtbl->CreateEllipsisTrimmingSign(This,format,trimming_sign) +#define IDWriteFactory2_CreateTextAnalyzer(This,analyzer) (This)->lpVtbl->CreateTextAnalyzer(This,analyzer) +#define IDWriteFactory2_CreateNumberSubstitution(This,method,locale,ignore_user_override,substitution) (This)->lpVtbl->CreateNumberSubstitution(This,method,locale,ignore_user_override,substitution) +/*** IDWriteFactory1 methods ***/ +#define IDWriteFactory2_GetEudcFontCollection(This,collection,check_for_updates) (This)->lpVtbl->GetEudcFontCollection(This,collection,check_for_updates) +/*** IDWriteFactory2 methods ***/ +#define IDWriteFactory2_GetSystemFontFallback(This,fallback) (This)->lpVtbl->GetSystemFontFallback(This,fallback) +#define IDWriteFactory2_CreateFontFallbackBuilder(This,fallbackbuilder) (This)->lpVtbl->CreateFontFallbackBuilder(This,fallbackbuilder) +#define IDWriteFactory2_TranslateColorGlyphRun(This,originX,originY,run,rundescr,mode,transform,palette_index,colorlayers) (This)->lpVtbl->TranslateColorGlyphRun(This,originX,originY,run,rundescr,mode,transform,palette_index,colorlayers) +#define IDWriteFactory2_CreateCustomRenderingParams(This,gamma,contrast,grayscalecontrast,cleartypeLevel,pixelGeometry,renderingMode,gridFitMode,params) (This)->lpVtbl->IDWriteFactory2_CreateCustomRenderingParams(This,gamma,contrast,grayscalecontrast,cleartypeLevel,pixelGeometry,renderingMode,gridFitMode,params) +#define IDWriteFactory2_CreateGlyphRunAnalysis(This,run,transform,renderingMode,measuringMode,gridFitMode,antialiasMode,originX,originY,analysis) (This)->lpVtbl->IDWriteFactory2_CreateGlyphRunAnalysis(This,run,transform,renderingMode,measuringMode,gridFitMode,antialiasMode,originX,originY,analysis) +#else +/*** IUnknown methods ***/ +static inline HRESULT IDWriteFactory2_QueryInterface(IDWriteFactory2* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static inline ULONG IDWriteFactory2_AddRef(IDWriteFactory2* This) { + return This->lpVtbl->AddRef(This); +} +static inline ULONG IDWriteFactory2_Release(IDWriteFactory2* This) { + return This->lpVtbl->Release(This); +} +/*** IDWriteFactory methods ***/ +static inline HRESULT IDWriteFactory2_GetSystemFontCollection(IDWriteFactory2* This,IDWriteFontCollection **collection,WINBOOL check_for_updates) { + return This->lpVtbl->GetSystemFontCollection(This,collection,check_for_updates); +} +static inline HRESULT IDWriteFactory2_CreateCustomFontCollection(IDWriteFactory2* This,IDWriteFontCollectionLoader *loader,const void *key,UINT32 key_size,IDWriteFontCollection **collection) { + return This->lpVtbl->CreateCustomFontCollection(This,loader,key,key_size,collection); +} +static inline HRESULT IDWriteFactory2_RegisterFontCollectionLoader(IDWriteFactory2* This,IDWriteFontCollectionLoader *loader) { + return This->lpVtbl->RegisterFontCollectionLoader(This,loader); +} +static inline HRESULT IDWriteFactory2_UnregisterFontCollectionLoader(IDWriteFactory2* This,IDWriteFontCollectionLoader *loader) { + return This->lpVtbl->UnregisterFontCollectionLoader(This,loader); +} +static inline HRESULT IDWriteFactory2_CreateFontFileReference(IDWriteFactory2* This,const WCHAR *path,const FILETIME *writetime,IDWriteFontFile **font_file) { + return This->lpVtbl->CreateFontFileReference(This,path,writetime,font_file); +} +static inline HRESULT IDWriteFactory2_CreateCustomFontFileReference(IDWriteFactory2* This,const void *reference_key,UINT32 key_size,IDWriteFontFileLoader *loader,IDWriteFontFile **font_file) { + return This->lpVtbl->CreateCustomFontFileReference(This,reference_key,key_size,loader,font_file); +} +static inline HRESULT IDWriteFactory2_CreateFontFace(IDWriteFactory2* This,DWRITE_FONT_FACE_TYPE facetype,UINT32 files_number,IDWriteFontFile *const *font_files,UINT32 index,DWRITE_FONT_SIMULATIONS sim_flags,IDWriteFontFace **font_face) { + return This->lpVtbl->CreateFontFace(This,facetype,files_number,font_files,index,sim_flags,font_face); +} +static inline HRESULT IDWriteFactory2_CreateRenderingParams(IDWriteFactory2* This,IDWriteRenderingParams **params) { + return This->lpVtbl->CreateRenderingParams(This,params); +} +static inline HRESULT IDWriteFactory2_CreateMonitorRenderingParams(IDWriteFactory2* This,HMONITOR monitor,IDWriteRenderingParams **params) { + return This->lpVtbl->CreateMonitorRenderingParams(This,monitor,params); +} +static inline HRESULT IDWriteFactory2_RegisterFontFileLoader(IDWriteFactory2* This,IDWriteFontFileLoader *loader) { + return This->lpVtbl->RegisterFontFileLoader(This,loader); +} +static inline HRESULT IDWriteFactory2_UnregisterFontFileLoader(IDWriteFactory2* This,IDWriteFontFileLoader *loader) { + return This->lpVtbl->UnregisterFontFileLoader(This,loader); +} +static inline HRESULT IDWriteFactory2_CreateTextFormat(IDWriteFactory2* This,const WCHAR *family_name,IDWriteFontCollection *collection,DWRITE_FONT_WEIGHT weight,DWRITE_FONT_STYLE style,DWRITE_FONT_STRETCH stretch,FLOAT size,const WCHAR *locale,IDWriteTextFormat **format) { + return This->lpVtbl->CreateTextFormat(This,family_name,collection,weight,style,stretch,size,locale,format); +} +static inline HRESULT IDWriteFactory2_CreateTypography(IDWriteFactory2* This,IDWriteTypography **typography) { + return This->lpVtbl->CreateTypography(This,typography); +} +static inline HRESULT IDWriteFactory2_GetGdiInterop(IDWriteFactory2* This,IDWriteGdiInterop **gdi_interop) { + return This->lpVtbl->GetGdiInterop(This,gdi_interop); +} +static inline HRESULT IDWriteFactory2_CreateTextLayout(IDWriteFactory2* This,const WCHAR *string,UINT32 len,IDWriteTextFormat *format,FLOAT max_width,FLOAT max_height,IDWriteTextLayout **layout) { + return This->lpVtbl->CreateTextLayout(This,string,len,format,max_width,max_height,layout); +} +static inline HRESULT IDWriteFactory2_CreateGdiCompatibleTextLayout(IDWriteFactory2* This,const WCHAR *string,UINT32 len,IDWriteTextFormat *format,FLOAT layout_width,FLOAT layout_height,FLOAT pixels_per_dip,const DWRITE_MATRIX *transform,WINBOOL use_gdi_natural,IDWriteTextLayout **layout) { + return This->lpVtbl->CreateGdiCompatibleTextLayout(This,string,len,format,layout_width,layout_height,pixels_per_dip,transform,use_gdi_natural,layout); +} +static inline HRESULT IDWriteFactory2_CreateEllipsisTrimmingSign(IDWriteFactory2* This,IDWriteTextFormat *format,IDWriteInlineObject **trimming_sign) { + return This->lpVtbl->CreateEllipsisTrimmingSign(This,format,trimming_sign); +} +static inline HRESULT IDWriteFactory2_CreateTextAnalyzer(IDWriteFactory2* This,IDWriteTextAnalyzer **analyzer) { + return This->lpVtbl->CreateTextAnalyzer(This,analyzer); +} +static inline HRESULT IDWriteFactory2_CreateNumberSubstitution(IDWriteFactory2* This,DWRITE_NUMBER_SUBSTITUTION_METHOD method,const WCHAR *locale,WINBOOL ignore_user_override,IDWriteNumberSubstitution **substitution) { + return This->lpVtbl->CreateNumberSubstitution(This,method,locale,ignore_user_override,substitution); +} +/*** IDWriteFactory1 methods ***/ +static inline HRESULT IDWriteFactory2_GetEudcFontCollection(IDWriteFactory2* This,IDWriteFontCollection **collection,WINBOOL check_for_updates) { + return This->lpVtbl->GetEudcFontCollection(This,collection,check_for_updates); +} +/*** IDWriteFactory2 methods ***/ +static inline HRESULT IDWriteFactory2_GetSystemFontFallback(IDWriteFactory2* This,IDWriteFontFallback **fallback) { + return This->lpVtbl->GetSystemFontFallback(This,fallback); +} +static inline HRESULT IDWriteFactory2_CreateFontFallbackBuilder(IDWriteFactory2* This,IDWriteFontFallbackBuilder **fallbackbuilder) { + return This->lpVtbl->CreateFontFallbackBuilder(This,fallbackbuilder); +} +static inline HRESULT IDWriteFactory2_TranslateColorGlyphRun(IDWriteFactory2* This,FLOAT originX,FLOAT originY,const DWRITE_GLYPH_RUN *run,const DWRITE_GLYPH_RUN_DESCRIPTION *rundescr,DWRITE_MEASURING_MODE mode,const DWRITE_MATRIX *transform,UINT32 palette_index,IDWriteColorGlyphRunEnumerator **colorlayers) { + return This->lpVtbl->TranslateColorGlyphRun(This,originX,originY,run,rundescr,mode,transform,palette_index,colorlayers); +} +static inline HRESULT IDWriteFactory2_CreateCustomRenderingParams(IDWriteFactory2* This,FLOAT gamma,FLOAT contrast,FLOAT grayscalecontrast,FLOAT cleartypeLevel,DWRITE_PIXEL_GEOMETRY pixelGeometry,DWRITE_RENDERING_MODE renderingMode,DWRITE_GRID_FIT_MODE gridFitMode,IDWriteRenderingParams2 **params) { + return This->lpVtbl->IDWriteFactory2_CreateCustomRenderingParams(This,gamma,contrast,grayscalecontrast,cleartypeLevel,pixelGeometry,renderingMode,gridFitMode,params); +} +static inline HRESULT IDWriteFactory2_CreateGlyphRunAnalysis(IDWriteFactory2* This,const DWRITE_GLYPH_RUN *run,const DWRITE_MATRIX *transform,DWRITE_RENDERING_MODE renderingMode,DWRITE_MEASURING_MODE measuringMode,DWRITE_GRID_FIT_MODE gridFitMode,DWRITE_TEXT_ANTIALIAS_MODE antialiasMode,FLOAT originX,FLOAT originY,IDWriteGlyphRunAnalysis **analysis) { + return This->lpVtbl->IDWriteFactory2_CreateGlyphRunAnalysis(This,run,transform,renderingMode,measuringMode,gridFitMode,antialiasMode,originX,originY,analysis); +} +#endif +#endif + +#endif + + +#endif /* __IDWriteFactory2_INTERFACE_DEFINED__ */ + +/* Begin additional prototypes for all interfaces */ + + +/* End additional prototypes */ + +#ifdef __cplusplus +} +#endif + +#endif /* __dwrite_2_h__ */ diff --git a/src/text/dwrite_3.h b/src/text/dwrite_3.h new file mode 100644 index 0000000..c2b6f85 --- /dev/null +++ b/src/text/dwrite_3.h @@ -0,0 +1,15191 @@ +/*** Autogenerated by WIDL 11.0-rc1 from include/dwrite_3.idl - Do not edit ***/ + +#define COBJMACROS + +#ifdef _WIN32 +#ifndef __REQUIRED_RPCNDR_H_VERSION__ +#define __REQUIRED_RPCNDR_H_VERSION__ 475 +#endif +#include +#include +#endif + +#ifndef COM_NO_WINDOWS_H +#include +#include +#endif + +#ifndef __dwrite_3_h__ +#define __dwrite_3_h__ + +/* Forward declarations */ + +#ifndef __IDWriteFontDownloadListener_FWD_DEFINED__ +#define __IDWriteFontDownloadListener_FWD_DEFINED__ +typedef interface IDWriteFontDownloadListener IDWriteFontDownloadListener; +#ifdef __cplusplus +interface IDWriteFontDownloadListener; +#endif /* __cplusplus */ +#endif + +#ifndef __IDWriteFontDownloadQueue_FWD_DEFINED__ +#define __IDWriteFontDownloadQueue_FWD_DEFINED__ +typedef interface IDWriteFontDownloadQueue IDWriteFontDownloadQueue; +#ifdef __cplusplus +interface IDWriteFontDownloadQueue; +#endif /* __cplusplus */ +#endif + +#ifndef __IDWriteRenderingParams3_FWD_DEFINED__ +#define __IDWriteRenderingParams3_FWD_DEFINED__ +typedef interface IDWriteRenderingParams3 IDWriteRenderingParams3; +#ifdef __cplusplus +interface IDWriteRenderingParams3; +#endif /* __cplusplus */ +#endif + +#ifndef __IDWriteStringList_FWD_DEFINED__ +#define __IDWriteStringList_FWD_DEFINED__ +typedef interface IDWriteStringList IDWriteStringList; +#ifdef __cplusplus +interface IDWriteStringList; +#endif /* __cplusplus */ +#endif + +#ifndef __IDWriteFontSet_FWD_DEFINED__ +#define __IDWriteFontSet_FWD_DEFINED__ +typedef interface IDWriteFontSet IDWriteFontSet; +#ifdef __cplusplus +interface IDWriteFontSet; +#endif /* __cplusplus */ +#endif + +#ifndef __IDWriteFontResource_FWD_DEFINED__ +#define __IDWriteFontResource_FWD_DEFINED__ +typedef interface IDWriteFontResource IDWriteFontResource; +#ifdef __cplusplus +interface IDWriteFontResource; +#endif /* __cplusplus */ +#endif + +#ifndef __IDWriteFontSet1_FWD_DEFINED__ +#define __IDWriteFontSet1_FWD_DEFINED__ +typedef interface IDWriteFontSet1 IDWriteFontSet1; +#ifdef __cplusplus +interface IDWriteFontSet1; +#endif /* __cplusplus */ +#endif + +#ifndef __IDWriteFont3_FWD_DEFINED__ +#define __IDWriteFont3_FWD_DEFINED__ +typedef interface IDWriteFont3 IDWriteFont3; +#ifdef __cplusplus +interface IDWriteFont3; +#endif /* __cplusplus */ +#endif + +#ifndef __IDWriteFontFamily1_FWD_DEFINED__ +#define __IDWriteFontFamily1_FWD_DEFINED__ +typedef interface IDWriteFontFamily1 IDWriteFontFamily1; +#ifdef __cplusplus +interface IDWriteFontFamily1; +#endif /* __cplusplus */ +#endif + +#ifndef __IDWriteFontFamily2_FWD_DEFINED__ +#define __IDWriteFontFamily2_FWD_DEFINED__ +typedef interface IDWriteFontFamily2 IDWriteFontFamily2; +#ifdef __cplusplus +interface IDWriteFontFamily2; +#endif /* __cplusplus */ +#endif + +#ifndef __IDWriteFontCollection1_FWD_DEFINED__ +#define __IDWriteFontCollection1_FWD_DEFINED__ +typedef interface IDWriteFontCollection1 IDWriteFontCollection1; +#ifdef __cplusplus +interface IDWriteFontCollection1; +#endif /* __cplusplus */ +#endif + +#ifndef __IDWriteFontCollection2_FWD_DEFINED__ +#define __IDWriteFontCollection2_FWD_DEFINED__ +typedef interface IDWriteFontCollection2 IDWriteFontCollection2; +#ifdef __cplusplus +interface IDWriteFontCollection2; +#endif /* __cplusplus */ +#endif + +#ifndef __IDWriteFontCollection3_FWD_DEFINED__ +#define __IDWriteFontCollection3_FWD_DEFINED__ +typedef interface IDWriteFontCollection3 IDWriteFontCollection3; +#ifdef __cplusplus +interface IDWriteFontCollection3; +#endif /* __cplusplus */ +#endif + +#ifndef __IDWriteFontFaceReference_FWD_DEFINED__ +#define __IDWriteFontFaceReference_FWD_DEFINED__ +typedef interface IDWriteFontFaceReference IDWriteFontFaceReference; +#ifdef __cplusplus +interface IDWriteFontFaceReference; +#endif /* __cplusplus */ +#endif + +#ifndef __IDWriteFontFaceReference1_FWD_DEFINED__ +#define __IDWriteFontFaceReference1_FWD_DEFINED__ +typedef interface IDWriteFontFaceReference1 IDWriteFontFaceReference1; +#ifdef __cplusplus +interface IDWriteFontFaceReference1; +#endif /* __cplusplus */ +#endif + +#ifndef __IDWriteFontList1_FWD_DEFINED__ +#define __IDWriteFontList1_FWD_DEFINED__ +typedef interface IDWriteFontList1 IDWriteFontList1; +#ifdef __cplusplus +interface IDWriteFontList1; +#endif /* __cplusplus */ +#endif + +#ifndef __IDWriteFontList2_FWD_DEFINED__ +#define __IDWriteFontList2_FWD_DEFINED__ +typedef interface IDWriteFontList2 IDWriteFontList2; +#ifdef __cplusplus +interface IDWriteFontList2; +#endif /* __cplusplus */ +#endif + +#ifndef __IDWriteFontSet2_FWD_DEFINED__ +#define __IDWriteFontSet2_FWD_DEFINED__ +typedef interface IDWriteFontSet2 IDWriteFontSet2; +#ifdef __cplusplus +interface IDWriteFontSet2; +#endif /* __cplusplus */ +#endif + +#ifndef __IDWriteFontSet3_FWD_DEFINED__ +#define __IDWriteFontSet3_FWD_DEFINED__ +typedef interface IDWriteFontSet3 IDWriteFontSet3; +#ifdef __cplusplus +interface IDWriteFontSet3; +#endif /* __cplusplus */ +#endif + +#ifndef __IDWriteFontSet4_FWD_DEFINED__ +#define __IDWriteFontSet4_FWD_DEFINED__ +typedef interface IDWriteFontSet4 IDWriteFontSet4; +#ifdef __cplusplus +interface IDWriteFontSet4; +#endif /* __cplusplus */ +#endif + +#ifndef __IDWriteFontFace3_FWD_DEFINED__ +#define __IDWriteFontFace3_FWD_DEFINED__ +typedef interface IDWriteFontFace3 IDWriteFontFace3; +#ifdef __cplusplus +interface IDWriteFontFace3; +#endif /* __cplusplus */ +#endif + +#ifndef __IDWriteTextFormat2_FWD_DEFINED__ +#define __IDWriteTextFormat2_FWD_DEFINED__ +typedef interface IDWriteTextFormat2 IDWriteTextFormat2; +#ifdef __cplusplus +interface IDWriteTextFormat2; +#endif /* __cplusplus */ +#endif + +#ifndef __IDWriteTextFormat3_FWD_DEFINED__ +#define __IDWriteTextFormat3_FWD_DEFINED__ +typedef interface IDWriteTextFormat3 IDWriteTextFormat3; +#ifdef __cplusplus +interface IDWriteTextFormat3; +#endif /* __cplusplus */ +#endif + +#ifndef __IDWriteTextLayout3_FWD_DEFINED__ +#define __IDWriteTextLayout3_FWD_DEFINED__ +typedef interface IDWriteTextLayout3 IDWriteTextLayout3; +#ifdef __cplusplus +interface IDWriteTextLayout3; +#endif /* __cplusplus */ +#endif + +#ifndef __IDWriteTextLayout4_FWD_DEFINED__ +#define __IDWriteTextLayout4_FWD_DEFINED__ +typedef interface IDWriteTextLayout4 IDWriteTextLayout4; +#ifdef __cplusplus +interface IDWriteTextLayout4; +#endif /* __cplusplus */ +#endif + +#ifndef __IDWriteFontFallback1_FWD_DEFINED__ +#define __IDWriteFontFallback1_FWD_DEFINED__ +typedef interface IDWriteFontFallback1 IDWriteFontFallback1; +#ifdef __cplusplus +interface IDWriteFontFallback1; +#endif /* __cplusplus */ +#endif + +#ifndef __IDWriteGdiInterop1_FWD_DEFINED__ +#define __IDWriteGdiInterop1_FWD_DEFINED__ +typedef interface IDWriteGdiInterop1 IDWriteGdiInterop1; +#ifdef __cplusplus +interface IDWriteGdiInterop1; +#endif /* __cplusplus */ +#endif + +#ifndef __IDWriteFontSetBuilder_FWD_DEFINED__ +#define __IDWriteFontSetBuilder_FWD_DEFINED__ +typedef interface IDWriteFontSetBuilder IDWriteFontSetBuilder; +#ifdef __cplusplus +interface IDWriteFontSetBuilder; +#endif /* __cplusplus */ +#endif + +#ifndef __IDWriteFontSetBuilder1_FWD_DEFINED__ +#define __IDWriteFontSetBuilder1_FWD_DEFINED__ +typedef interface IDWriteFontSetBuilder1 IDWriteFontSetBuilder1; +#ifdef __cplusplus +interface IDWriteFontSetBuilder1; +#endif /* __cplusplus */ +#endif + +#ifndef __IDWriteFontSetBuilder2_FWD_DEFINED__ +#define __IDWriteFontSetBuilder2_FWD_DEFINED__ +typedef interface IDWriteFontSetBuilder2 IDWriteFontSetBuilder2; +#ifdef __cplusplus +interface IDWriteFontSetBuilder2; +#endif /* __cplusplus */ +#endif + +#ifndef __IDWriteFactory3_FWD_DEFINED__ +#define __IDWriteFactory3_FWD_DEFINED__ +typedef interface IDWriteFactory3 IDWriteFactory3; +#ifdef __cplusplus +interface IDWriteFactory3; +#endif /* __cplusplus */ +#endif + +#ifndef __IDWriteFontFace4_FWD_DEFINED__ +#define __IDWriteFontFace4_FWD_DEFINED__ +typedef interface IDWriteFontFace4 IDWriteFontFace4; +#ifdef __cplusplus +interface IDWriteFontFace4; +#endif /* __cplusplus */ +#endif + +#ifndef __IDWriteFontFace5_FWD_DEFINED__ +#define __IDWriteFontFace5_FWD_DEFINED__ +typedef interface IDWriteFontFace5 IDWriteFontFace5; +#ifdef __cplusplus +interface IDWriteFontFace5; +#endif /* __cplusplus */ +#endif + +#ifndef __IDWriteFontFace6_FWD_DEFINED__ +#define __IDWriteFontFace6_FWD_DEFINED__ +typedef interface IDWriteFontFace6 IDWriteFontFace6; +#ifdef __cplusplus +interface IDWriteFontFace6; +#endif /* __cplusplus */ +#endif + +#ifndef __IDWritePaintReader_FWD_DEFINED__ +#define __IDWritePaintReader_FWD_DEFINED__ +typedef interface IDWritePaintReader IDWritePaintReader; +#ifdef __cplusplus +interface IDWritePaintReader; +#endif /* __cplusplus */ +#endif + +#ifndef __IDWriteFontFace7_FWD_DEFINED__ +#define __IDWriteFontFace7_FWD_DEFINED__ +typedef interface IDWriteFontFace7 IDWriteFontFace7; +#ifdef __cplusplus +interface IDWriteFontFace7; +#endif /* __cplusplus */ +#endif + +#ifndef __IDWriteColorGlyphRunEnumerator1_FWD_DEFINED__ +#define __IDWriteColorGlyphRunEnumerator1_FWD_DEFINED__ +typedef interface IDWriteColorGlyphRunEnumerator1 IDWriteColorGlyphRunEnumerator1; +#ifdef __cplusplus +interface IDWriteColorGlyphRunEnumerator1; +#endif /* __cplusplus */ +#endif + +#ifndef __IDWriteFactory4_FWD_DEFINED__ +#define __IDWriteFactory4_FWD_DEFINED__ +typedef interface IDWriteFactory4 IDWriteFactory4; +#ifdef __cplusplus +interface IDWriteFactory4; +#endif /* __cplusplus */ +#endif + +#ifndef __IDWriteAsyncResult_FWD_DEFINED__ +#define __IDWriteAsyncResult_FWD_DEFINED__ +typedef interface IDWriteAsyncResult IDWriteAsyncResult; +#ifdef __cplusplus +interface IDWriteAsyncResult; +#endif /* __cplusplus */ +#endif + +#ifndef __IDWriteRemoteFontFileStream_FWD_DEFINED__ +#define __IDWriteRemoteFontFileStream_FWD_DEFINED__ +typedef interface IDWriteRemoteFontFileStream IDWriteRemoteFontFileStream; +#ifdef __cplusplus +interface IDWriteRemoteFontFileStream; +#endif /* __cplusplus */ +#endif + +#ifndef __IDWriteRemoteFontFileLoader_FWD_DEFINED__ +#define __IDWriteRemoteFontFileLoader_FWD_DEFINED__ +typedef interface IDWriteRemoteFontFileLoader IDWriteRemoteFontFileLoader; +#ifdef __cplusplus +interface IDWriteRemoteFontFileLoader; +#endif /* __cplusplus */ +#endif + +#ifndef __IDWriteInMemoryFontFileLoader_FWD_DEFINED__ +#define __IDWriteInMemoryFontFileLoader_FWD_DEFINED__ +typedef interface IDWriteInMemoryFontFileLoader IDWriteInMemoryFontFileLoader; +#ifdef __cplusplus +interface IDWriteInMemoryFontFileLoader; +#endif /* __cplusplus */ +#endif + +#ifndef __IDWriteFactory5_FWD_DEFINED__ +#define __IDWriteFactory5_FWD_DEFINED__ +typedef interface IDWriteFactory5 IDWriteFactory5; +#ifdef __cplusplus +interface IDWriteFactory5; +#endif /* __cplusplus */ +#endif + +#ifndef __IDWriteFactory6_FWD_DEFINED__ +#define __IDWriteFactory6_FWD_DEFINED__ +typedef interface IDWriteFactory6 IDWriteFactory6; +#ifdef __cplusplus +interface IDWriteFactory6; +#endif /* __cplusplus */ +#endif + +#ifndef __IDWriteFactory7_FWD_DEFINED__ +#define __IDWriteFactory7_FWD_DEFINED__ +typedef interface IDWriteFactory7 IDWriteFactory7; +#ifdef __cplusplus +interface IDWriteFactory7; +#endif /* __cplusplus */ +#endif + +#ifndef __IDWriteFactory8_FWD_DEFINED__ +#define __IDWriteFactory8_FWD_DEFINED__ +typedef interface IDWriteFactory8 IDWriteFactory8; +#ifdef __cplusplus +interface IDWriteFactory8; +#endif /* __cplusplus */ +#endif + +#ifndef __IDWriteBitmapRenderTarget2_FWD_DEFINED__ +#define __IDWriteBitmapRenderTarget2_FWD_DEFINED__ +typedef interface IDWriteBitmapRenderTarget2 IDWriteBitmapRenderTarget2; +#ifdef __cplusplus +interface IDWriteBitmapRenderTarget2; +#endif /* __cplusplus */ +#endif + +#ifndef __IDWriteBitmapRenderTarget3_FWD_DEFINED__ +#define __IDWriteBitmapRenderTarget3_FWD_DEFINED__ +typedef interface IDWriteBitmapRenderTarget3 IDWriteBitmapRenderTarget3; +#ifdef __cplusplus +interface IDWriteBitmapRenderTarget3; +#endif /* __cplusplus */ +#endif + +/* Headers for imported files */ + +#include "dwrite_2.h" + +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef __IDWriteFontFaceReference_FWD_DEFINED__ +#define __IDWriteFontFaceReference_FWD_DEFINED__ +typedef interface IDWriteFontFaceReference IDWriteFontFaceReference; +#ifdef __cplusplus +interface IDWriteFontFaceReference; +#endif /* __cplusplus */ +#endif + +#ifndef __IDWriteFontFaceReference1_FWD_DEFINED__ +#define __IDWriteFontFaceReference1_FWD_DEFINED__ +typedef interface IDWriteFontFaceReference1 IDWriteFontFaceReference1; +#ifdef __cplusplus +interface IDWriteFontFaceReference1; +#endif /* __cplusplus */ +#endif + +#ifndef __IDWriteFontFace3_FWD_DEFINED__ +#define __IDWriteFontFace3_FWD_DEFINED__ +typedef interface IDWriteFontFace3 IDWriteFontFace3; +#ifdef __cplusplus +interface IDWriteFontFace3; +#endif /* __cplusplus */ +#endif + +#ifndef __IDWriteFontSet_FWD_DEFINED__ +#define __IDWriteFontSet_FWD_DEFINED__ +typedef interface IDWriteFontSet IDWriteFontSet; +#ifdef __cplusplus +interface IDWriteFontSet; +#endif /* __cplusplus */ +#endif + +#ifndef __IDWriteFontDownloadQueue_FWD_DEFINED__ +#define __IDWriteFontDownloadQueue_FWD_DEFINED__ +typedef interface IDWriteFontDownloadQueue IDWriteFontDownloadQueue; +#ifdef __cplusplus +interface IDWriteFontDownloadQueue; +#endif /* __cplusplus */ +#endif + +#ifndef __IDWriteFontFace5_FWD_DEFINED__ +#define __IDWriteFontFace5_FWD_DEFINED__ +typedef interface IDWriteFontFace5 IDWriteFontFace5; +#ifdef __cplusplus +interface IDWriteFontFace5; +#endif /* __cplusplus */ +#endif + +#ifndef __IDWriteFontList2_FWD_DEFINED__ +#define __IDWriteFontList2_FWD_DEFINED__ +typedef interface IDWriteFontList2 IDWriteFontList2; +#ifdef __cplusplus +interface IDWriteFontList2; +#endif /* __cplusplus */ +#endif + +#ifndef _WINGDI_ +typedef struct FONTSIGNATURE FONTSIGNATURE; +#endif /* _WINGDI_ */ +typedef struct D2D1_GRADIENT_STOP D2D1_GRADIENT_STOP; +typedef enum DWRITE_COLOR_COMPOSITE_MODE { + DWRITE_COLOR_COMPOSITE_CLEAR = 0, + DWRITE_COLOR_COMPOSITE_SRC = 1, + DWRITE_COLOR_COMPOSITE_DEST = 2, + DWRITE_COLOR_COMPOSITE_SRC_OVER = 3, + DWRITE_COLOR_COMPOSITE_DEST_OVER = 4, + DWRITE_COLOR_COMPOSITE_SRC_IN = 5, + DWRITE_COLOR_COMPOSITE_DEST_IN = 6, + DWRITE_COLOR_COMPOSITE_SRC_OUT = 7, + DWRITE_COLOR_COMPOSITE_DEST_OUT = 8, + DWRITE_COLOR_COMPOSITE_SRC_ATOP = 9, + DWRITE_COLOR_COMPOSITE_DEST_ATOP = 10, + DWRITE_COLOR_COMPOSITE_XOR = 11, + DWRITE_COLOR_COMPOSITE_PLUS = 12, + DWRITE_COLOR_COMPOSITE_SCREEN = 13, + DWRITE_COLOR_COMPOSITE_OVERLAY = 14, + DWRITE_COLOR_COMPOSITE_DARKEN = 15, + DWRITE_COLOR_COMPOSITE_LIGHTEN = 16, + DWRITE_COLOR_COMPOSITE_COLOR_DODGE = 17, + DWRITE_COLOR_COMPOSITE_COLOR_BURN = 18, + DWRITE_COLOR_COMPOSITE_HARD_LIGHT = 19, + DWRITE_COLOR_COMPOSITE_SOFT_LIGHT = 20, + DWRITE_COLOR_COMPOSITE_DIFFERENCE = 21, + DWRITE_COLOR_COMPOSITE_EXCLUSION = 22, + DWRITE_COLOR_COMPOSITE_MULTIPLY = 23, + DWRITE_COLOR_COMPOSITE_HSL_HUE = 24, + DWRITE_COLOR_COMPOSITE_HSL_SATURATION = 25, + DWRITE_COLOR_COMPOSITE_HSL_COLOR = 26, + DWRITE_COLOR_COMPOSITE_HSL_LUMINOSITY = 27 +} DWRITE_COLOR_COMPOSITE_MODE; +typedef enum DWRITE_LOCALITY { + DWRITE_LOCALITY_REMOTE = 0, + DWRITE_LOCALITY_PARTIAL = 1, + DWRITE_LOCALITY_LOCAL = 2 +} DWRITE_LOCALITY; +typedef enum DWRITE_RENDERING_MODE1 { + DWRITE_RENDERING_MODE1_DEFAULT = 0, + DWRITE_RENDERING_MODE1_ALIASED = 1, + DWRITE_RENDERING_MODE1_GDI_CLASSIC = 2, + DWRITE_RENDERING_MODE1_GDI_NATURAL = 3, + DWRITE_RENDERING_MODE1_NATURAL = 4, + DWRITE_RENDERING_MODE1_NATURAL_SYMMETRIC = 5, + DWRITE_RENDERING_MODE1_OUTLINE = 6, + DWRITE_RENDERING_MODE1_NATURAL_SYMMETRIC_DOWNSAMPLED = 7 +} DWRITE_RENDERING_MODE1; +typedef enum DWRITE_FONT_PROPERTY_ID { + DWRITE_FONT_PROPERTY_ID_NONE = 0, + DWRITE_FONT_PROPERTY_ID_WEIGHT_STRETCH_STYLE_FAMILY_NAME = 1, + DWRITE_FONT_PROPERTY_ID_TYPOGRAPHIC_FAMILY_NAME = 2, + DWRITE_FONT_PROPERTY_ID_WEIGHT_STRETCH_STYLE_FACE_NAME = 3, + DWRITE_FONT_PROPERTY_ID_FULL_NAME = 4, + DWRITE_FONT_PROPERTY_ID_WIN32_FAMILY_NAME = 5, + DWRITE_FONT_PROPERTY_ID_POSTSCRIPT_NAME = 6, + DWRITE_FONT_PROPERTY_ID_DESIGN_SCRIPT_LANGUAGE_TAG = 7, + DWRITE_FONT_PROPERTY_ID_SUPPORTED_SCRIPT_LANGUAGE_TAG = 8, + DWRITE_FONT_PROPERTY_ID_SEMANTIC_TAG = 9, + DWRITE_FONT_PROPERTY_ID_WEIGHT = 10, + DWRITE_FONT_PROPERTY_ID_STRETCH = 11, + DWRITE_FONT_PROPERTY_ID_STYLE = 12, + DWRITE_FONT_PROPERTY_ID_TYPOGRAPHIC_FACE_NAME = 13, + DWRITE_FONT_PROPERTY_ID_TOTAL = DWRITE_FONT_PROPERTY_ID_STYLE + 1, + DWRITE_FONT_PROPERTY_ID_TOTAL_RS3 = DWRITE_FONT_PROPERTY_ID_TYPOGRAPHIC_FACE_NAME + 1, + DWRITE_FONT_PROPERTY_ID_FAMILY_NAME = DWRITE_FONT_PROPERTY_ID_TYPOGRAPHIC_FAMILY_NAME, + DWRITE_FONT_PROPERTY_ID_PREFERRED_FAMILY_NAME = DWRITE_FONT_PROPERTY_ID_WEIGHT_STRETCH_STYLE_FAMILY_NAME, + DWRITE_FONT_PROPERTY_ID_FACE_NAME = DWRITE_FONT_PROPERTY_ID_WEIGHT_STRETCH_STYLE_FACE_NAME +} DWRITE_FONT_PROPERTY_ID; +typedef struct DWRITE_FONT_PROPERTY { + DWRITE_FONT_PROPERTY_ID propertyId; + const WCHAR *propertyValue; + const WCHAR *localeName; +} DWRITE_FONT_PROPERTY; +#ifdef __cplusplus +#define DWRITE_MAKE_FONT_AXIS_TAG(a,b,c,d) (static_cast(DWRITE_MAKE_OPENTYPE_TAG(a,b,c,d))) +#else +#define DWRITE_MAKE_FONT_AXIS_TAG(a,b,c,d) (DWRITE_MAKE_OPENTYPE_TAG(a,b,c,d)) +#endif +typedef enum DWRITE_FONT_AXIS_TAG { + DWRITE_FONT_AXIS_TAG_WEIGHT = 0x74686777, + DWRITE_FONT_AXIS_TAG_WIDTH = 0x68746477, + DWRITE_FONT_AXIS_TAG_SLANT = 0x746e6c73, + DWRITE_FONT_AXIS_TAG_OPTICAL_SIZE = 0x7a73706f, + DWRITE_FONT_AXIS_TAG_ITALIC = 0x6c617469 +} DWRITE_FONT_AXIS_TAG; +typedef enum DWRITE_FONT_SOURCE_TYPE { + DWRITE_FONT_SOURCE_TYPE_UNKNOWN = 0, + DWRITE_FONT_SOURCE_TYPE_PER_MACHINE = 1, + DWRITE_FONT_SOURCE_TYPE_PER_USER = 2, + DWRITE_FONT_SOURCE_TYPE_APPX_PACKAGE = 3, + DWRITE_FONT_SOURCE_TYPE_REMOTE_FONT_PROVIDER = 4 +} DWRITE_FONT_SOURCE_TYPE; +typedef struct DWRITE_FONT_AXIS_VALUE { + DWRITE_FONT_AXIS_TAG axisTag; + FLOAT value; +} DWRITE_FONT_AXIS_VALUE; +typedef struct DWRITE_FONT_AXIS_RANGE { + DWRITE_FONT_AXIS_TAG axisTag; + FLOAT minValue; + FLOAT maxValue; +} DWRITE_FONT_AXIS_RANGE; +typedef enum DWRITE_AUTOMATIC_FONT_AXES { + DWRITE_AUTOMATIC_FONT_AXES_NONE = 0, + DWRITE_AUTOMATIC_FONT_AXES_OPTICAL_SIZE = 1 +} DWRITE_AUTOMATIC_FONT_AXES; +typedef enum DWRITE_FONT_AXIS_ATTRIBUTES { + DWRITE_FONT_AXIS_ATTRIBUTES_NONE = 0, + DWRITE_FONT_AXIS_ATTRIBUTES_VARIABLE = 1, + DWRITE_FONT_AXIS_ATTRIBUTES_HIDDEN = 2 +} DWRITE_FONT_AXIS_ATTRIBUTES; +typedef enum DWRITE_FONT_FAMILY_MODEL { + DWRITE_FONT_FAMILY_MODEL_TYPOGRAPHIC = 0, + DWRITE_FONT_FAMILY_MODEL_WEIGHT_STRETCH_STYLE = 1 +} DWRITE_FONT_FAMILY_MODEL; +typedef enum DWRITE_PAINT_TYPE { + DWRITE_PAINT_TYPE_NONE = 0, + DWRITE_PAINT_TYPE_LAYERS = 1, + DWRITE_PAINT_TYPE_SOLID_GLYPH = 2, + DWRITE_PAINT_TYPE_SOLID = 3, + DWRITE_PAINT_TYPE_LINEAR_GRADIENT = 4, + DWRITE_PAINT_TYPE_RADIAL_GRADIENT = 5, + DWRITE_PAINT_TYPE_SWEEP_GRADIENT = 6, + DWRITE_PAINT_TYPE_GLYPH = 7, + DWRITE_PAINT_TYPE_COLOR_GLYPH = 8, + DWRITE_PAINT_TYPE_TRANSFORM = 9, + DWRITE_PAINT_TYPE_COMPOSITE = 10 +} DWRITE_PAINT_TYPE; +#ifndef DWRITE_PAINT_FEATURE_LEVEL_DEFINED +#define DWRITE_PAINT_FEATURE_LEVEL_DEFINED +typedef enum DWRITE_PAINT_FEATURE_LEVEL { + DWRITE_PAINT_FEATURE_LEVEL_NONE = 0, + DWRITE_PAINT_FEATURE_LEVEL_COLR_V0 = 1, + DWRITE_PAINT_FEATURE_LEVEL_COLR_V1 = 2 +} DWRITE_PAINT_FEATURE_LEVEL; +#endif /* DWRITE_PAINT_FEATURE_LEVEL_DEFINED */ +typedef enum DWRITE_PAINT_ATTRIBUTES { + DWRITE_PAINT_ATTRIBUTES_NONE = 0, + DWRITE_PAINT_ATTRIBUTES_USES_PALETTE = 0x1, + DWRITE_PAINT_ATTRIBUTES_USES_TEXT_COLOR = 0x2 +} DWRITE_PAINT_ATTRIBUTES; +DEFINE_ENUM_FLAG_OPERATORS(DWRITE_PAINT_ATTRIBUTES) +typedef struct DWRITE_PAINT_COLOR { + DWRITE_COLOR_F value; + UINT16 paletteEntryIndex; + float alphaMultiplier; + DWRITE_PAINT_ATTRIBUTES colorAttributes; +} DWRITE_PAINT_COLOR; +typedef struct DWRITE_PAINT_ELEMENT { + DWRITE_PAINT_TYPE paintType; + union PAINT_UNION { + struct PAINT_LAYERS { + UINT32 childCount; + } layers; + struct PAINT_SOLID_GLYPH { + UINT32 glyphIndex; + DWRITE_PAINT_COLOR color; + } solidGlyph; + DWRITE_PAINT_COLOR solid; + struct PAINT_LINEAR_GRADIENT { + UINT32 extendMode; + UINT32 gradientStopCount; + float x0; + float y0; + float x1; + float y1; + float x2; + float y2; + } linearGradient; + struct PAINT_RADIAL_GRADIENT { + UINT32 extendMode; + UINT32 gradientStopCount; + float x0; + float y0; + float radius0; + float x1; + float y1; + float radius1; + } radialGradient; + struct PAINT_SWEEP_GRADIENT { + UINT32 extendMode; + UINT32 gradientStopCount; + float centerX; + float centerY; + float startAngle; + float endAngle; + } sweepGradient; + struct PAINT_GLYPH { + UINT32 glyphIndex; + } glyph; + struct PAINT_COLOR_GLYPH { + UINT32 glyphIndex; + D2D_RECT_F clipBox; + } colorGlyph; + DWRITE_MATRIX transform; + struct PAINT_COMPOSITE { + DWRITE_COLOR_COMPOSITE_MODE mode; + } composite; + } paint; +} DWRITE_PAINT_ELEMENT; +/***************************************************************************** + * IDWriteFontDownloadListener interface + */ +#ifndef __IDWriteFontDownloadListener_INTERFACE_DEFINED__ +#define __IDWriteFontDownloadListener_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDWriteFontDownloadListener, 0xb06fe5b9, 0x43ec, 0x4393, 0x88,0x1b, 0xdb,0xe4,0xdc,0x72,0xfd,0xa7); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("b06fe5b9-43ec-4393-881b-dbe4dc72fda7") +IDWriteFontDownloadListener : public IUnknown +{ + virtual void STDMETHODCALLTYPE DownloadCompleted( + IDWriteFontDownloadQueue *queue, + IUnknown *context, + HRESULT result) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDWriteFontDownloadListener, 0xb06fe5b9, 0x43ec, 0x4393, 0x88,0x1b, 0xdb,0xe4,0xdc,0x72,0xfd,0xa7) +#endif +#else +typedef struct IDWriteFontDownloadListenerVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDWriteFontDownloadListener *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDWriteFontDownloadListener *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDWriteFontDownloadListener *This); + + /*** IDWriteFontDownloadListener methods ***/ + void (STDMETHODCALLTYPE *DownloadCompleted)( + IDWriteFontDownloadListener *This, + IDWriteFontDownloadQueue *queue, + IUnknown *context, + HRESULT result); + + END_INTERFACE +} IDWriteFontDownloadListenerVtbl; + +interface IDWriteFontDownloadListener { + CONST_VTBL IDWriteFontDownloadListenerVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDWriteFontDownloadListener_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteFontDownloadListener_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDWriteFontDownloadListener_Release(This) (This)->lpVtbl->Release(This) +/*** IDWriteFontDownloadListener methods ***/ +#define IDWriteFontDownloadListener_DownloadCompleted(This,queue,context,result) (This)->lpVtbl->DownloadCompleted(This,queue,context,result) +#else +/*** IUnknown methods ***/ +static inline HRESULT IDWriteFontDownloadListener_QueryInterface(IDWriteFontDownloadListener* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static inline ULONG IDWriteFontDownloadListener_AddRef(IDWriteFontDownloadListener* This) { + return This->lpVtbl->AddRef(This); +} +static inline ULONG IDWriteFontDownloadListener_Release(IDWriteFontDownloadListener* This) { + return This->lpVtbl->Release(This); +} +/*** IDWriteFontDownloadListener methods ***/ +static inline void IDWriteFontDownloadListener_DownloadCompleted(IDWriteFontDownloadListener* This,IDWriteFontDownloadQueue *queue,IUnknown *context,HRESULT result) { + This->lpVtbl->DownloadCompleted(This,queue,context,result); +} +#endif +#endif + +#endif + + +#endif /* __IDWriteFontDownloadListener_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IDWriteFontDownloadQueue interface + */ +#ifndef __IDWriteFontDownloadQueue_INTERFACE_DEFINED__ +#define __IDWriteFontDownloadQueue_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDWriteFontDownloadQueue, 0xb71e6052, 0x5aea, 0x4fa3, 0x83,0x2e, 0xf6,0x0d,0x43,0x1f,0x7e,0x91); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("b71e6052-5aea-4fa3-832e-f60d431f7e91") +IDWriteFontDownloadQueue : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE AddListener( + IDWriteFontDownloadListener *listener, + UINT32 *token) = 0; + + virtual HRESULT STDMETHODCALLTYPE RemoveListener( + UINT32 token) = 0; + + virtual WINBOOL STDMETHODCALLTYPE IsEmpty( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE BeginDownload( + IUnknown *context) = 0; + + virtual HRESULT STDMETHODCALLTYPE CancelDownload( + ) = 0; + + virtual UINT64 STDMETHODCALLTYPE GetGenerationCount( + ) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDWriteFontDownloadQueue, 0xb71e6052, 0x5aea, 0x4fa3, 0x83,0x2e, 0xf6,0x0d,0x43,0x1f,0x7e,0x91) +#endif +#else +typedef struct IDWriteFontDownloadQueueVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDWriteFontDownloadQueue *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDWriteFontDownloadQueue *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDWriteFontDownloadQueue *This); + + /*** IDWriteFontDownloadQueue methods ***/ + HRESULT (STDMETHODCALLTYPE *AddListener)( + IDWriteFontDownloadQueue *This, + IDWriteFontDownloadListener *listener, + UINT32 *token); + + HRESULT (STDMETHODCALLTYPE *RemoveListener)( + IDWriteFontDownloadQueue *This, + UINT32 token); + + WINBOOL (STDMETHODCALLTYPE *IsEmpty)( + IDWriteFontDownloadQueue *This); + + HRESULT (STDMETHODCALLTYPE *BeginDownload)( + IDWriteFontDownloadQueue *This, + IUnknown *context); + + HRESULT (STDMETHODCALLTYPE *CancelDownload)( + IDWriteFontDownloadQueue *This); + + UINT64 (STDMETHODCALLTYPE *GetGenerationCount)( + IDWriteFontDownloadQueue *This); + + END_INTERFACE +} IDWriteFontDownloadQueueVtbl; + +interface IDWriteFontDownloadQueue { + CONST_VTBL IDWriteFontDownloadQueueVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDWriteFontDownloadQueue_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteFontDownloadQueue_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDWriteFontDownloadQueue_Release(This) (This)->lpVtbl->Release(This) +/*** IDWriteFontDownloadQueue methods ***/ +#define IDWriteFontDownloadQueue_AddListener(This,listener,token) (This)->lpVtbl->AddListener(This,listener,token) +#define IDWriteFontDownloadQueue_RemoveListener(This,token) (This)->lpVtbl->RemoveListener(This,token) +#define IDWriteFontDownloadQueue_IsEmpty(This) (This)->lpVtbl->IsEmpty(This) +#define IDWriteFontDownloadQueue_BeginDownload(This,context) (This)->lpVtbl->BeginDownload(This,context) +#define IDWriteFontDownloadQueue_CancelDownload(This) (This)->lpVtbl->CancelDownload(This) +#define IDWriteFontDownloadQueue_GetGenerationCount(This) (This)->lpVtbl->GetGenerationCount(This) +#else +/*** IUnknown methods ***/ +static inline HRESULT IDWriteFontDownloadQueue_QueryInterface(IDWriteFontDownloadQueue* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static inline ULONG IDWriteFontDownloadQueue_AddRef(IDWriteFontDownloadQueue* This) { + return This->lpVtbl->AddRef(This); +} +static inline ULONG IDWriteFontDownloadQueue_Release(IDWriteFontDownloadQueue* This) { + return This->lpVtbl->Release(This); +} +/*** IDWriteFontDownloadQueue methods ***/ +static inline HRESULT IDWriteFontDownloadQueue_AddListener(IDWriteFontDownloadQueue* This,IDWriteFontDownloadListener *listener,UINT32 *token) { + return This->lpVtbl->AddListener(This,listener,token); +} +static inline HRESULT IDWriteFontDownloadQueue_RemoveListener(IDWriteFontDownloadQueue* This,UINT32 token) { + return This->lpVtbl->RemoveListener(This,token); +} +static inline WINBOOL IDWriteFontDownloadQueue_IsEmpty(IDWriteFontDownloadQueue* This) { + return This->lpVtbl->IsEmpty(This); +} +static inline HRESULT IDWriteFontDownloadQueue_BeginDownload(IDWriteFontDownloadQueue* This,IUnknown *context) { + return This->lpVtbl->BeginDownload(This,context); +} +static inline HRESULT IDWriteFontDownloadQueue_CancelDownload(IDWriteFontDownloadQueue* This) { + return This->lpVtbl->CancelDownload(This); +} +static inline UINT64 IDWriteFontDownloadQueue_GetGenerationCount(IDWriteFontDownloadQueue* This) { + return This->lpVtbl->GetGenerationCount(This); +} +#endif +#endif + +#endif + + +#endif /* __IDWriteFontDownloadQueue_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IDWriteRenderingParams3 interface + */ +#ifndef __IDWriteRenderingParams3_INTERFACE_DEFINED__ +#define __IDWriteRenderingParams3_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDWriteRenderingParams3, 0xb7924baa, 0x391b, 0x412a, 0x8c,0x5c, 0xe4,0x4c,0xc2,0xd8,0x67,0xdc); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("b7924baa-391b-412a-8c5c-e44cc2d867dc") +IDWriteRenderingParams3 : public IDWriteRenderingParams2 +{ + virtual DWRITE_RENDERING_MODE1 STDMETHODCALLTYPE GetRenderingMode1( + ) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDWriteRenderingParams3, 0xb7924baa, 0x391b, 0x412a, 0x8c,0x5c, 0xe4,0x4c,0xc2,0xd8,0x67,0xdc) +#endif +#else +typedef struct IDWriteRenderingParams3Vtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDWriteRenderingParams3 *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDWriteRenderingParams3 *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDWriteRenderingParams3 *This); + + /*** IDWriteRenderingParams methods ***/ + FLOAT (STDMETHODCALLTYPE *GetGamma)( + IDWriteRenderingParams3 *This); + + FLOAT (STDMETHODCALLTYPE *GetEnhancedContrast)( + IDWriteRenderingParams3 *This); + + FLOAT (STDMETHODCALLTYPE *GetClearTypeLevel)( + IDWriteRenderingParams3 *This); + + DWRITE_PIXEL_GEOMETRY (STDMETHODCALLTYPE *GetPixelGeometry)( + IDWriteRenderingParams3 *This); + + DWRITE_RENDERING_MODE (STDMETHODCALLTYPE *GetRenderingMode)( + IDWriteRenderingParams3 *This); + + /*** IDWriteRenderingParams1 methods ***/ + FLOAT (STDMETHODCALLTYPE *GetGrayscaleEnhancedContrast)( + IDWriteRenderingParams3 *This); + + /*** IDWriteRenderingParams2 methods ***/ + DWRITE_GRID_FIT_MODE (STDMETHODCALLTYPE *GetGridFitMode)( + IDWriteRenderingParams3 *This); + + /*** IDWriteRenderingParams3 methods ***/ + DWRITE_RENDERING_MODE1 (STDMETHODCALLTYPE *GetRenderingMode1)( + IDWriteRenderingParams3 *This); + + END_INTERFACE +} IDWriteRenderingParams3Vtbl; + +interface IDWriteRenderingParams3 { + CONST_VTBL IDWriteRenderingParams3Vtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDWriteRenderingParams3_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteRenderingParams3_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDWriteRenderingParams3_Release(This) (This)->lpVtbl->Release(This) +/*** IDWriteRenderingParams methods ***/ +#define IDWriteRenderingParams3_GetGamma(This) (This)->lpVtbl->GetGamma(This) +#define IDWriteRenderingParams3_GetEnhancedContrast(This) (This)->lpVtbl->GetEnhancedContrast(This) +#define IDWriteRenderingParams3_GetClearTypeLevel(This) (This)->lpVtbl->GetClearTypeLevel(This) +#define IDWriteRenderingParams3_GetPixelGeometry(This) (This)->lpVtbl->GetPixelGeometry(This) +#define IDWriteRenderingParams3_GetRenderingMode(This) (This)->lpVtbl->GetRenderingMode(This) +/*** IDWriteRenderingParams1 methods ***/ +#define IDWriteRenderingParams3_GetGrayscaleEnhancedContrast(This) (This)->lpVtbl->GetGrayscaleEnhancedContrast(This) +/*** IDWriteRenderingParams2 methods ***/ +#define IDWriteRenderingParams3_GetGridFitMode(This) (This)->lpVtbl->GetGridFitMode(This) +/*** IDWriteRenderingParams3 methods ***/ +#define IDWriteRenderingParams3_GetRenderingMode1(This) (This)->lpVtbl->GetRenderingMode1(This) +#else +/*** IUnknown methods ***/ +static inline HRESULT IDWriteRenderingParams3_QueryInterface(IDWriteRenderingParams3* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static inline ULONG IDWriteRenderingParams3_AddRef(IDWriteRenderingParams3* This) { + return This->lpVtbl->AddRef(This); +} +static inline ULONG IDWriteRenderingParams3_Release(IDWriteRenderingParams3* This) { + return This->lpVtbl->Release(This); +} +/*** IDWriteRenderingParams methods ***/ +static inline FLOAT IDWriteRenderingParams3_GetGamma(IDWriteRenderingParams3* This) { + return This->lpVtbl->GetGamma(This); +} +static inline FLOAT IDWriteRenderingParams3_GetEnhancedContrast(IDWriteRenderingParams3* This) { + return This->lpVtbl->GetEnhancedContrast(This); +} +static inline FLOAT IDWriteRenderingParams3_GetClearTypeLevel(IDWriteRenderingParams3* This) { + return This->lpVtbl->GetClearTypeLevel(This); +} +static inline DWRITE_PIXEL_GEOMETRY IDWriteRenderingParams3_GetPixelGeometry(IDWriteRenderingParams3* This) { + return This->lpVtbl->GetPixelGeometry(This); +} +static inline DWRITE_RENDERING_MODE IDWriteRenderingParams3_GetRenderingMode(IDWriteRenderingParams3* This) { + return This->lpVtbl->GetRenderingMode(This); +} +/*** IDWriteRenderingParams1 methods ***/ +static inline FLOAT IDWriteRenderingParams3_GetGrayscaleEnhancedContrast(IDWriteRenderingParams3* This) { + return This->lpVtbl->GetGrayscaleEnhancedContrast(This); +} +/*** IDWriteRenderingParams2 methods ***/ +static inline DWRITE_GRID_FIT_MODE IDWriteRenderingParams3_GetGridFitMode(IDWriteRenderingParams3* This) { + return This->lpVtbl->GetGridFitMode(This); +} +/*** IDWriteRenderingParams3 methods ***/ +static inline DWRITE_RENDERING_MODE1 IDWriteRenderingParams3_GetRenderingMode1(IDWriteRenderingParams3* This) { + return This->lpVtbl->GetRenderingMode1(This); +} +#endif +#endif + +#endif + + +#endif /* __IDWriteRenderingParams3_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IDWriteStringList interface + */ +#ifndef __IDWriteStringList_INTERFACE_DEFINED__ +#define __IDWriteStringList_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDWriteStringList, 0xcfee3140, 0x1157, 0x47ca, 0x8b,0x85, 0x31,0xbf,0xcf,0x3f,0x2d,0x0e); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("cfee3140-1157-47ca-8b85-31bfcf3f2d0e") +IDWriteStringList : public IUnknown +{ + virtual UINT32 STDMETHODCALLTYPE GetCount( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetLocaleNameLength( + UINT32 index, + UINT32 *length) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetLocaleName( + UINT32 index, + WCHAR *name, + UINT32 size) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetStringLength( + UINT32 index, + UINT32 *length) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetString( + UINT32 index, + WCHAR *string, + UINT32 size) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDWriteStringList, 0xcfee3140, 0x1157, 0x47ca, 0x8b,0x85, 0x31,0xbf,0xcf,0x3f,0x2d,0x0e) +#endif +#else +typedef struct IDWriteStringListVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDWriteStringList *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDWriteStringList *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDWriteStringList *This); + + /*** IDWriteStringList methods ***/ + UINT32 (STDMETHODCALLTYPE *GetCount)( + IDWriteStringList *This); + + HRESULT (STDMETHODCALLTYPE *GetLocaleNameLength)( + IDWriteStringList *This, + UINT32 index, + UINT32 *length); + + HRESULT (STDMETHODCALLTYPE *GetLocaleName)( + IDWriteStringList *This, + UINT32 index, + WCHAR *name, + UINT32 size); + + HRESULT (STDMETHODCALLTYPE *GetStringLength)( + IDWriteStringList *This, + UINT32 index, + UINT32 *length); + + HRESULT (STDMETHODCALLTYPE *GetString)( + IDWriteStringList *This, + UINT32 index, + WCHAR *string, + UINT32 size); + + END_INTERFACE +} IDWriteStringListVtbl; + +interface IDWriteStringList { + CONST_VTBL IDWriteStringListVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDWriteStringList_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteStringList_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDWriteStringList_Release(This) (This)->lpVtbl->Release(This) +/*** IDWriteStringList methods ***/ +#define IDWriteStringList_GetCount(This) (This)->lpVtbl->GetCount(This) +#define IDWriteStringList_GetLocaleNameLength(This,index,length) (This)->lpVtbl->GetLocaleNameLength(This,index,length) +#define IDWriteStringList_GetLocaleName(This,index,name,size) (This)->lpVtbl->GetLocaleName(This,index,name,size) +#define IDWriteStringList_GetStringLength(This,index,length) (This)->lpVtbl->GetStringLength(This,index,length) +#define IDWriteStringList_GetString(This,index,string,size) (This)->lpVtbl->GetString(This,index,string,size) +#else +/*** IUnknown methods ***/ +static inline HRESULT IDWriteStringList_QueryInterface(IDWriteStringList* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static inline ULONG IDWriteStringList_AddRef(IDWriteStringList* This) { + return This->lpVtbl->AddRef(This); +} +static inline ULONG IDWriteStringList_Release(IDWriteStringList* This) { + return This->lpVtbl->Release(This); +} +/*** IDWriteStringList methods ***/ +static inline UINT32 IDWriteStringList_GetCount(IDWriteStringList* This) { + return This->lpVtbl->GetCount(This); +} +static inline HRESULT IDWriteStringList_GetLocaleNameLength(IDWriteStringList* This,UINT32 index,UINT32 *length) { + return This->lpVtbl->GetLocaleNameLength(This,index,length); +} +static inline HRESULT IDWriteStringList_GetLocaleName(IDWriteStringList* This,UINT32 index,WCHAR *name,UINT32 size) { + return This->lpVtbl->GetLocaleName(This,index,name,size); +} +static inline HRESULT IDWriteStringList_GetStringLength(IDWriteStringList* This,UINT32 index,UINT32 *length) { + return This->lpVtbl->GetStringLength(This,index,length); +} +static inline HRESULT IDWriteStringList_GetString(IDWriteStringList* This,UINT32 index,WCHAR *string,UINT32 size) { + return This->lpVtbl->GetString(This,index,string,size); +} +#endif +#endif + +#endif + + +#endif /* __IDWriteStringList_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IDWriteFontSet interface + */ +#ifndef __IDWriteFontSet_INTERFACE_DEFINED__ +#define __IDWriteFontSet_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDWriteFontSet, 0x53585141, 0xd9f8, 0x4095, 0x83,0x21, 0xd7,0x3c,0xf6,0xbd,0x11,0x6b); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("53585141-d9f8-4095-8321-d73cf6bd116b") +IDWriteFontSet : public IUnknown +{ + virtual UINT32 STDMETHODCALLTYPE GetFontCount( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetFontFaceReference( + UINT32 index, + IDWriteFontFaceReference **reference) = 0; + + virtual HRESULT STDMETHODCALLTYPE FindFontFaceReference( + IDWriteFontFaceReference *reference, + UINT32 *index, + WINBOOL *exists) = 0; + + virtual HRESULT STDMETHODCALLTYPE FindFontFace( + IDWriteFontFace *fontface, + UINT32 *index, + WINBOOL *exists) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetPropertyValues__( + DWRITE_FONT_PROPERTY_ID id, + IDWriteStringList **values) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetPropertyValues_( + DWRITE_FONT_PROPERTY_ID id, + const WCHAR *preferred_locales, + IDWriteStringList **values) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetPropertyValues( + UINT32 index, + DWRITE_FONT_PROPERTY_ID id, + WINBOOL *exists, + IDWriteLocalizedStrings **values) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetPropertyOccurrenceCount( + const DWRITE_FONT_PROPERTY *property, + UINT32 *count) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetMatchingFonts_( + const WCHAR *family, + DWRITE_FONT_WEIGHT weight, + DWRITE_FONT_STRETCH stretch, + DWRITE_FONT_STYLE style, + IDWriteFontSet **fontset) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetMatchingFonts( + const DWRITE_FONT_PROPERTY *props, + UINT32 count, + IDWriteFontSet **fontset) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDWriteFontSet, 0x53585141, 0xd9f8, 0x4095, 0x83,0x21, 0xd7,0x3c,0xf6,0xbd,0x11,0x6b) +#endif +#else +typedef struct IDWriteFontSetVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDWriteFontSet *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDWriteFontSet *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDWriteFontSet *This); + + /*** IDWriteFontSet methods ***/ + UINT32 (STDMETHODCALLTYPE *GetFontCount)( + IDWriteFontSet *This); + + HRESULT (STDMETHODCALLTYPE *GetFontFaceReference)( + IDWriteFontSet *This, + UINT32 index, + IDWriteFontFaceReference **reference); + + HRESULT (STDMETHODCALLTYPE *FindFontFaceReference)( + IDWriteFontSet *This, + IDWriteFontFaceReference *reference, + UINT32 *index, + WINBOOL *exists); + + HRESULT (STDMETHODCALLTYPE *FindFontFace)( + IDWriteFontSet *This, + IDWriteFontFace *fontface, + UINT32 *index, + WINBOOL *exists); + + HRESULT (STDMETHODCALLTYPE *GetPropertyValues__)( + IDWriteFontSet *This, + DWRITE_FONT_PROPERTY_ID id, + IDWriteStringList **values); + + HRESULT (STDMETHODCALLTYPE *GetPropertyValues_)( + IDWriteFontSet *This, + DWRITE_FONT_PROPERTY_ID id, + const WCHAR *preferred_locales, + IDWriteStringList **values); + + HRESULT (STDMETHODCALLTYPE *GetPropertyValues)( + IDWriteFontSet *This, + UINT32 index, + DWRITE_FONT_PROPERTY_ID id, + WINBOOL *exists, + IDWriteLocalizedStrings **values); + + HRESULT (STDMETHODCALLTYPE *GetPropertyOccurrenceCount)( + IDWriteFontSet *This, + const DWRITE_FONT_PROPERTY *property, + UINT32 *count); + + HRESULT (STDMETHODCALLTYPE *GetMatchingFonts_)( + IDWriteFontSet *This, + const WCHAR *family, + DWRITE_FONT_WEIGHT weight, + DWRITE_FONT_STRETCH stretch, + DWRITE_FONT_STYLE style, + IDWriteFontSet **fontset); + + HRESULT (STDMETHODCALLTYPE *GetMatchingFonts)( + IDWriteFontSet *This, + const DWRITE_FONT_PROPERTY *props, + UINT32 count, + IDWriteFontSet **fontset); + + END_INTERFACE +} IDWriteFontSetVtbl; + +interface IDWriteFontSet { + CONST_VTBL IDWriteFontSetVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDWriteFontSet_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteFontSet_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDWriteFontSet_Release(This) (This)->lpVtbl->Release(This) +/*** IDWriteFontSet methods ***/ +#define IDWriteFontSet_GetFontCount(This) (This)->lpVtbl->GetFontCount(This) +#define IDWriteFontSet_GetFontFaceReference(This,index,reference) (This)->lpVtbl->GetFontFaceReference(This,index,reference) +#define IDWriteFontSet_FindFontFaceReference(This,reference,index,exists) (This)->lpVtbl->FindFontFaceReference(This,reference,index,exists) +#define IDWriteFontSet_FindFontFace(This,fontface,index,exists) (This)->lpVtbl->FindFontFace(This,fontface,index,exists) +#define IDWriteFontSet_GetPropertyValues__(This,id,values) (This)->lpVtbl->GetPropertyValues__(This,id,values) +#define IDWriteFontSet_GetPropertyValues_(This,id,preferred_locales,values) (This)->lpVtbl->GetPropertyValues_(This,id,preferred_locales,values) +#define IDWriteFontSet_GetPropertyValues(This,index,id,exists,values) (This)->lpVtbl->GetPropertyValues(This,index,id,exists,values) +#define IDWriteFontSet_GetPropertyOccurrenceCount(This,property,count) (This)->lpVtbl->GetPropertyOccurrenceCount(This,property,count) +#define IDWriteFontSet_GetMatchingFonts_(This,family,weight,stretch,style,fontset) (This)->lpVtbl->GetMatchingFonts_(This,family,weight,stretch,style,fontset) +#define IDWriteFontSet_GetMatchingFonts(This,props,count,fontset) (This)->lpVtbl->GetMatchingFonts(This,props,count,fontset) +#else +/*** IUnknown methods ***/ +static inline HRESULT IDWriteFontSet_QueryInterface(IDWriteFontSet* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static inline ULONG IDWriteFontSet_AddRef(IDWriteFontSet* This) { + return This->lpVtbl->AddRef(This); +} +static inline ULONG IDWriteFontSet_Release(IDWriteFontSet* This) { + return This->lpVtbl->Release(This); +} +/*** IDWriteFontSet methods ***/ +static inline UINT32 IDWriteFontSet_GetFontCount(IDWriteFontSet* This) { + return This->lpVtbl->GetFontCount(This); +} +static inline HRESULT IDWriteFontSet_GetFontFaceReference(IDWriteFontSet* This,UINT32 index,IDWriteFontFaceReference **reference) { + return This->lpVtbl->GetFontFaceReference(This,index,reference); +} +static inline HRESULT IDWriteFontSet_FindFontFaceReference(IDWriteFontSet* This,IDWriteFontFaceReference *reference,UINT32 *index,WINBOOL *exists) { + return This->lpVtbl->FindFontFaceReference(This,reference,index,exists); +} +static inline HRESULT IDWriteFontSet_FindFontFace(IDWriteFontSet* This,IDWriteFontFace *fontface,UINT32 *index,WINBOOL *exists) { + return This->lpVtbl->FindFontFace(This,fontface,index,exists); +} +static inline HRESULT IDWriteFontSet_GetPropertyValues__(IDWriteFontSet* This,DWRITE_FONT_PROPERTY_ID id,IDWriteStringList **values) { + return This->lpVtbl->GetPropertyValues__(This,id,values); +} +static inline HRESULT IDWriteFontSet_GetPropertyValues_(IDWriteFontSet* This,DWRITE_FONT_PROPERTY_ID id,const WCHAR *preferred_locales,IDWriteStringList **values) { + return This->lpVtbl->GetPropertyValues_(This,id,preferred_locales,values); +} +static inline HRESULT IDWriteFontSet_GetPropertyValues(IDWriteFontSet* This,UINT32 index,DWRITE_FONT_PROPERTY_ID id,WINBOOL *exists,IDWriteLocalizedStrings **values) { + return This->lpVtbl->GetPropertyValues(This,index,id,exists,values); +} +static inline HRESULT IDWriteFontSet_GetPropertyOccurrenceCount(IDWriteFontSet* This,const DWRITE_FONT_PROPERTY *property,UINT32 *count) { + return This->lpVtbl->GetPropertyOccurrenceCount(This,property,count); +} +static inline HRESULT IDWriteFontSet_GetMatchingFonts_(IDWriteFontSet* This,const WCHAR *family,DWRITE_FONT_WEIGHT weight,DWRITE_FONT_STRETCH stretch,DWRITE_FONT_STYLE style,IDWriteFontSet **fontset) { + return This->lpVtbl->GetMatchingFonts_(This,family,weight,stretch,style,fontset); +} +static inline HRESULT IDWriteFontSet_GetMatchingFonts(IDWriteFontSet* This,const DWRITE_FONT_PROPERTY *props,UINT32 count,IDWriteFontSet **fontset) { + return This->lpVtbl->GetMatchingFonts(This,props,count,fontset); +} +#endif +#endif + +#endif + + +#endif /* __IDWriteFontSet_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IDWriteFontResource interface + */ +#ifndef __IDWriteFontResource_INTERFACE_DEFINED__ +#define __IDWriteFontResource_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDWriteFontResource, 0x1f803a76, 0x6871, 0x48e8, 0x98,0x7f, 0xb9,0x75,0x55,0x1c,0x50,0xf2); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("1f803a76-6871-48e8-987f-b975551c50f2") +IDWriteFontResource : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE GetFontFile( + IDWriteFontFile **fontfile) = 0; + + virtual UINT32 STDMETHODCALLTYPE GetFontFaceIndex( + ) = 0; + + virtual UINT32 STDMETHODCALLTYPE GetFontAxisCount( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetDefaultFontAxisValues( + DWRITE_FONT_AXIS_VALUE *values, + UINT32 num_values) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetFontAxisRanges( + DWRITE_FONT_AXIS_RANGE *ranges, + UINT32 num_ranges) = 0; + + virtual DWRITE_FONT_AXIS_ATTRIBUTES STDMETHODCALLTYPE GetFontAxisAttributes( + UINT32 axis) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetAxisNames( + UINT32 axis, + IDWriteLocalizedStrings **names) = 0; + + virtual UINT32 STDMETHODCALLTYPE GetAxisValueNameCount( + UINT32 axis) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetAxisValueNames( + UINT32 axis, + UINT32 axis_value, + DWRITE_FONT_AXIS_RANGE *axis_range, + IDWriteLocalizedStrings **names) = 0; + + virtual WINBOOL STDMETHODCALLTYPE HasVariations( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE CreateFontFace( + DWRITE_FONT_SIMULATIONS simulations, + const DWRITE_FONT_AXIS_VALUE *axis_values, + UINT32 num_values, + IDWriteFontFace5 **fontface) = 0; + + virtual HRESULT STDMETHODCALLTYPE CreateFontFaceReference( + DWRITE_FONT_SIMULATIONS simulations, + const DWRITE_FONT_AXIS_VALUE *axis_values, + UINT32 num_values, + IDWriteFontFaceReference1 **reference) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDWriteFontResource, 0x1f803a76, 0x6871, 0x48e8, 0x98,0x7f, 0xb9,0x75,0x55,0x1c,0x50,0xf2) +#endif +#else +typedef struct IDWriteFontResourceVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDWriteFontResource *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDWriteFontResource *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDWriteFontResource *This); + + /*** IDWriteFontResource methods ***/ + HRESULT (STDMETHODCALLTYPE *GetFontFile)( + IDWriteFontResource *This, + IDWriteFontFile **fontfile); + + UINT32 (STDMETHODCALLTYPE *GetFontFaceIndex)( + IDWriteFontResource *This); + + UINT32 (STDMETHODCALLTYPE *GetFontAxisCount)( + IDWriteFontResource *This); + + HRESULT (STDMETHODCALLTYPE *GetDefaultFontAxisValues)( + IDWriteFontResource *This, + DWRITE_FONT_AXIS_VALUE *values, + UINT32 num_values); + + HRESULT (STDMETHODCALLTYPE *GetFontAxisRanges)( + IDWriteFontResource *This, + DWRITE_FONT_AXIS_RANGE *ranges, + UINT32 num_ranges); + + DWRITE_FONT_AXIS_ATTRIBUTES (STDMETHODCALLTYPE *GetFontAxisAttributes)( + IDWriteFontResource *This, + UINT32 axis); + + HRESULT (STDMETHODCALLTYPE *GetAxisNames)( + IDWriteFontResource *This, + UINT32 axis, + IDWriteLocalizedStrings **names); + + UINT32 (STDMETHODCALLTYPE *GetAxisValueNameCount)( + IDWriteFontResource *This, + UINT32 axis); + + HRESULT (STDMETHODCALLTYPE *GetAxisValueNames)( + IDWriteFontResource *This, + UINT32 axis, + UINT32 axis_value, + DWRITE_FONT_AXIS_RANGE *axis_range, + IDWriteLocalizedStrings **names); + + WINBOOL (STDMETHODCALLTYPE *HasVariations)( + IDWriteFontResource *This); + + HRESULT (STDMETHODCALLTYPE *CreateFontFace)( + IDWriteFontResource *This, + DWRITE_FONT_SIMULATIONS simulations, + const DWRITE_FONT_AXIS_VALUE *axis_values, + UINT32 num_values, + IDWriteFontFace5 **fontface); + + HRESULT (STDMETHODCALLTYPE *CreateFontFaceReference)( + IDWriteFontResource *This, + DWRITE_FONT_SIMULATIONS simulations, + const DWRITE_FONT_AXIS_VALUE *axis_values, + UINT32 num_values, + IDWriteFontFaceReference1 **reference); + + END_INTERFACE +} IDWriteFontResourceVtbl; + +interface IDWriteFontResource { + CONST_VTBL IDWriteFontResourceVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDWriteFontResource_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteFontResource_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDWriteFontResource_Release(This) (This)->lpVtbl->Release(This) +/*** IDWriteFontResource methods ***/ +#define IDWriteFontResource_GetFontFile(This,fontfile) (This)->lpVtbl->GetFontFile(This,fontfile) +#define IDWriteFontResource_GetFontFaceIndex(This) (This)->lpVtbl->GetFontFaceIndex(This) +#define IDWriteFontResource_GetFontAxisCount(This) (This)->lpVtbl->GetFontAxisCount(This) +#define IDWriteFontResource_GetDefaultFontAxisValues(This,values,num_values) (This)->lpVtbl->GetDefaultFontAxisValues(This,values,num_values) +#define IDWriteFontResource_GetFontAxisRanges(This,ranges,num_ranges) (This)->lpVtbl->GetFontAxisRanges(This,ranges,num_ranges) +#define IDWriteFontResource_GetFontAxisAttributes(This,axis) (This)->lpVtbl->GetFontAxisAttributes(This,axis) +#define IDWriteFontResource_GetAxisNames(This,axis,names) (This)->lpVtbl->GetAxisNames(This,axis,names) +#define IDWriteFontResource_GetAxisValueNameCount(This,axis) (This)->lpVtbl->GetAxisValueNameCount(This,axis) +#define IDWriteFontResource_GetAxisValueNames(This,axis,axis_value,axis_range,names) (This)->lpVtbl->GetAxisValueNames(This,axis,axis_value,axis_range,names) +#define IDWriteFontResource_HasVariations(This) (This)->lpVtbl->HasVariations(This) +#define IDWriteFontResource_CreateFontFace(This,simulations,axis_values,num_values,fontface) (This)->lpVtbl->CreateFontFace(This,simulations,axis_values,num_values,fontface) +#define IDWriteFontResource_CreateFontFaceReference(This,simulations,axis_values,num_values,reference) (This)->lpVtbl->CreateFontFaceReference(This,simulations,axis_values,num_values,reference) +#else +/*** IUnknown methods ***/ +static inline HRESULT IDWriteFontResource_QueryInterface(IDWriteFontResource* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static inline ULONG IDWriteFontResource_AddRef(IDWriteFontResource* This) { + return This->lpVtbl->AddRef(This); +} +static inline ULONG IDWriteFontResource_Release(IDWriteFontResource* This) { + return This->lpVtbl->Release(This); +} +/*** IDWriteFontResource methods ***/ +static inline HRESULT IDWriteFontResource_GetFontFile(IDWriteFontResource* This,IDWriteFontFile **fontfile) { + return This->lpVtbl->GetFontFile(This,fontfile); +} +static inline UINT32 IDWriteFontResource_GetFontFaceIndex(IDWriteFontResource* This) { + return This->lpVtbl->GetFontFaceIndex(This); +} +static inline UINT32 IDWriteFontResource_GetFontAxisCount(IDWriteFontResource* This) { + return This->lpVtbl->GetFontAxisCount(This); +} +static inline HRESULT IDWriteFontResource_GetDefaultFontAxisValues(IDWriteFontResource* This,DWRITE_FONT_AXIS_VALUE *values,UINT32 num_values) { + return This->lpVtbl->GetDefaultFontAxisValues(This,values,num_values); +} +static inline HRESULT IDWriteFontResource_GetFontAxisRanges(IDWriteFontResource* This,DWRITE_FONT_AXIS_RANGE *ranges,UINT32 num_ranges) { + return This->lpVtbl->GetFontAxisRanges(This,ranges,num_ranges); +} +static inline DWRITE_FONT_AXIS_ATTRIBUTES IDWriteFontResource_GetFontAxisAttributes(IDWriteFontResource* This,UINT32 axis) { + return This->lpVtbl->GetFontAxisAttributes(This,axis); +} +static inline HRESULT IDWriteFontResource_GetAxisNames(IDWriteFontResource* This,UINT32 axis,IDWriteLocalizedStrings **names) { + return This->lpVtbl->GetAxisNames(This,axis,names); +} +static inline UINT32 IDWriteFontResource_GetAxisValueNameCount(IDWriteFontResource* This,UINT32 axis) { + return This->lpVtbl->GetAxisValueNameCount(This,axis); +} +static inline HRESULT IDWriteFontResource_GetAxisValueNames(IDWriteFontResource* This,UINT32 axis,UINT32 axis_value,DWRITE_FONT_AXIS_RANGE *axis_range,IDWriteLocalizedStrings **names) { + return This->lpVtbl->GetAxisValueNames(This,axis,axis_value,axis_range,names); +} +static inline WINBOOL IDWriteFontResource_HasVariations(IDWriteFontResource* This) { + return This->lpVtbl->HasVariations(This); +} +static inline HRESULT IDWriteFontResource_CreateFontFace(IDWriteFontResource* This,DWRITE_FONT_SIMULATIONS simulations,const DWRITE_FONT_AXIS_VALUE *axis_values,UINT32 num_values,IDWriteFontFace5 **fontface) { + return This->lpVtbl->CreateFontFace(This,simulations,axis_values,num_values,fontface); +} +static inline HRESULT IDWriteFontResource_CreateFontFaceReference(IDWriteFontResource* This,DWRITE_FONT_SIMULATIONS simulations,const DWRITE_FONT_AXIS_VALUE *axis_values,UINT32 num_values,IDWriteFontFaceReference1 **reference) { + return This->lpVtbl->CreateFontFaceReference(This,simulations,axis_values,num_values,reference); +} +#endif +#endif + +#endif + + +#endif /* __IDWriteFontResource_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IDWriteFontSet1 interface + */ +#ifndef __IDWriteFontSet1_INTERFACE_DEFINED__ +#define __IDWriteFontSet1_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDWriteFontSet1, 0x7e9fda85, 0x6c92, 0x4053, 0xbc,0x47, 0x7a,0xe3,0x53,0x0d,0xb4,0xd3); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("7e9fda85-6c92-4053-bc47-7ae3530db4d3") +IDWriteFontSet1 : public IDWriteFontSet +{ + virtual HRESULT STDMETHODCALLTYPE GetMatchingFonts( + const DWRITE_FONT_PROPERTY *property, + const DWRITE_FONT_AXIS_VALUE *axis_values, + UINT32 num_values, + IDWriteFontSet1 **fontset) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetFirstFontResources( + IDWriteFontSet1 **fontset) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetFilteredFonts__( + const UINT32 *indices, + UINT32 num_indices, + IDWriteFontSet1 **fontset) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetFilteredFonts_( + const DWRITE_FONT_AXIS_RANGE *axis_ranges, + UINT32 num_ranges, + WINBOOL select_any_range, + IDWriteFontSet1 **fontset) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetFilteredFonts( + const DWRITE_FONT_PROPERTY *props, + UINT32 num_properties, + WINBOOL select_any_property, + IDWriteFontSet1 **fontset) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetFilteredFontIndices_( + const DWRITE_FONT_AXIS_RANGE *ranges, + UINT32 num_ranges, + WINBOOL select_any_range, + UINT32 *indices, + UINT32 num_indices, + UINT32 *actual_num_indices) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetFilteredFontIndices( + const DWRITE_FONT_PROPERTY *props, + UINT32 num_properties, + WINBOOL select_any_range, + UINT32 *indices, + UINT32 num_indices, + UINT32 *actual_num_indices) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetFontAxisRanges_( + UINT32 font_index, + DWRITE_FONT_AXIS_RANGE *axis_ranges, + UINT32 num_ranges, + UINT32 *actual_num_ranges) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetFontAxisRanges( + DWRITE_FONT_AXIS_RANGE *axis_ranges, + UINT32 num_ranges, + UINT32 *actual_num_ranges) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetFontFaceReference( + UINT32 index, + IDWriteFontFaceReference1 **reference) = 0; + + virtual HRESULT STDMETHODCALLTYPE CreateFontResource( + UINT32 index, + IDWriteFontResource **resource) = 0; + + virtual HRESULT STDMETHODCALLTYPE CreateFontFace( + UINT32 index, + IDWriteFontFace5 **fontface) = 0; + + virtual DWRITE_LOCALITY STDMETHODCALLTYPE GetFontLocality( + UINT32 index) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDWriteFontSet1, 0x7e9fda85, 0x6c92, 0x4053, 0xbc,0x47, 0x7a,0xe3,0x53,0x0d,0xb4,0xd3) +#endif +#else +typedef struct IDWriteFontSet1Vtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDWriteFontSet1 *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDWriteFontSet1 *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDWriteFontSet1 *This); + + /*** IDWriteFontSet methods ***/ + UINT32 (STDMETHODCALLTYPE *GetFontCount)( + IDWriteFontSet1 *This); + + HRESULT (STDMETHODCALLTYPE *GetFontFaceReference)( + IDWriteFontSet1 *This, + UINT32 index, + IDWriteFontFaceReference **reference); + + HRESULT (STDMETHODCALLTYPE *FindFontFaceReference)( + IDWriteFontSet1 *This, + IDWriteFontFaceReference *reference, + UINT32 *index, + WINBOOL *exists); + + HRESULT (STDMETHODCALLTYPE *FindFontFace)( + IDWriteFontSet1 *This, + IDWriteFontFace *fontface, + UINT32 *index, + WINBOOL *exists); + + HRESULT (STDMETHODCALLTYPE *GetPropertyValues__)( + IDWriteFontSet1 *This, + DWRITE_FONT_PROPERTY_ID id, + IDWriteStringList **values); + + HRESULT (STDMETHODCALLTYPE *GetPropertyValues_)( + IDWriteFontSet1 *This, + DWRITE_FONT_PROPERTY_ID id, + const WCHAR *preferred_locales, + IDWriteStringList **values); + + HRESULT (STDMETHODCALLTYPE *GetPropertyValues)( + IDWriteFontSet1 *This, + UINT32 index, + DWRITE_FONT_PROPERTY_ID id, + WINBOOL *exists, + IDWriteLocalizedStrings **values); + + HRESULT (STDMETHODCALLTYPE *GetPropertyOccurrenceCount)( + IDWriteFontSet1 *This, + const DWRITE_FONT_PROPERTY *property, + UINT32 *count); + + HRESULT (STDMETHODCALLTYPE *GetMatchingFonts_)( + IDWriteFontSet1 *This, + const WCHAR *family, + DWRITE_FONT_WEIGHT weight, + DWRITE_FONT_STRETCH stretch, + DWRITE_FONT_STYLE style, + IDWriteFontSet **fontset); + + HRESULT (STDMETHODCALLTYPE *GetMatchingFonts)( + IDWriteFontSet1 *This, + const DWRITE_FONT_PROPERTY *props, + UINT32 count, + IDWriteFontSet **fontset); + + /*** IDWriteFontSet1 methods ***/ + HRESULT (STDMETHODCALLTYPE *IDWriteFontSet1_GetMatchingFonts)( + IDWriteFontSet1 *This, + const DWRITE_FONT_PROPERTY *property, + const DWRITE_FONT_AXIS_VALUE *axis_values, + UINT32 num_values, + IDWriteFontSet1 **fontset); + + HRESULT (STDMETHODCALLTYPE *GetFirstFontResources)( + IDWriteFontSet1 *This, + IDWriteFontSet1 **fontset); + + HRESULT (STDMETHODCALLTYPE *GetFilteredFonts__)( + IDWriteFontSet1 *This, + const UINT32 *indices, + UINT32 num_indices, + IDWriteFontSet1 **fontset); + + HRESULT (STDMETHODCALLTYPE *GetFilteredFonts_)( + IDWriteFontSet1 *This, + const DWRITE_FONT_AXIS_RANGE *axis_ranges, + UINT32 num_ranges, + WINBOOL select_any_range, + IDWriteFontSet1 **fontset); + + HRESULT (STDMETHODCALLTYPE *GetFilteredFonts)( + IDWriteFontSet1 *This, + const DWRITE_FONT_PROPERTY *props, + UINT32 num_properties, + WINBOOL select_any_property, + IDWriteFontSet1 **fontset); + + HRESULT (STDMETHODCALLTYPE *GetFilteredFontIndices_)( + IDWriteFontSet1 *This, + const DWRITE_FONT_AXIS_RANGE *ranges, + UINT32 num_ranges, + WINBOOL select_any_range, + UINT32 *indices, + UINT32 num_indices, + UINT32 *actual_num_indices); + + HRESULT (STDMETHODCALLTYPE *GetFilteredFontIndices)( + IDWriteFontSet1 *This, + const DWRITE_FONT_PROPERTY *props, + UINT32 num_properties, + WINBOOL select_any_range, + UINT32 *indices, + UINT32 num_indices, + UINT32 *actual_num_indices); + + HRESULT (STDMETHODCALLTYPE *GetFontAxisRanges_)( + IDWriteFontSet1 *This, + UINT32 font_index, + DWRITE_FONT_AXIS_RANGE *axis_ranges, + UINT32 num_ranges, + UINT32 *actual_num_ranges); + + HRESULT (STDMETHODCALLTYPE *GetFontAxisRanges)( + IDWriteFontSet1 *This, + DWRITE_FONT_AXIS_RANGE *axis_ranges, + UINT32 num_ranges, + UINT32 *actual_num_ranges); + + HRESULT (STDMETHODCALLTYPE *IDWriteFontSet1_GetFontFaceReference)( + IDWriteFontSet1 *This, + UINT32 index, + IDWriteFontFaceReference1 **reference); + + HRESULT (STDMETHODCALLTYPE *CreateFontResource)( + IDWriteFontSet1 *This, + UINT32 index, + IDWriteFontResource **resource); + + HRESULT (STDMETHODCALLTYPE *CreateFontFace)( + IDWriteFontSet1 *This, + UINT32 index, + IDWriteFontFace5 **fontface); + + DWRITE_LOCALITY (STDMETHODCALLTYPE *GetFontLocality)( + IDWriteFontSet1 *This, + UINT32 index); + + END_INTERFACE +} IDWriteFontSet1Vtbl; + +interface IDWriteFontSet1 { + CONST_VTBL IDWriteFontSet1Vtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDWriteFontSet1_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteFontSet1_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDWriteFontSet1_Release(This) (This)->lpVtbl->Release(This) +/*** IDWriteFontSet methods ***/ +#define IDWriteFontSet1_GetFontCount(This) (This)->lpVtbl->GetFontCount(This) +#define IDWriteFontSet1_FindFontFaceReference(This,reference,index,exists) (This)->lpVtbl->FindFontFaceReference(This,reference,index,exists) +#define IDWriteFontSet1_FindFontFace(This,fontface,index,exists) (This)->lpVtbl->FindFontFace(This,fontface,index,exists) +#define IDWriteFontSet1_GetPropertyValues__(This,id,values) (This)->lpVtbl->GetPropertyValues__(This,id,values) +#define IDWriteFontSet1_GetPropertyValues_(This,id,preferred_locales,values) (This)->lpVtbl->GetPropertyValues_(This,id,preferred_locales,values) +#define IDWriteFontSet1_GetPropertyValues(This,index,id,exists,values) (This)->lpVtbl->GetPropertyValues(This,index,id,exists,values) +#define IDWriteFontSet1_GetPropertyOccurrenceCount(This,property,count) (This)->lpVtbl->GetPropertyOccurrenceCount(This,property,count) +#define IDWriteFontSet1_GetMatchingFonts_(This,family,weight,stretch,style,fontset) (This)->lpVtbl->GetMatchingFonts_(This,family,weight,stretch,style,fontset) +/*** IDWriteFontSet1 methods ***/ +#define IDWriteFontSet1_GetMatchingFonts(This,property,axis_values,num_values,fontset) (This)->lpVtbl->IDWriteFontSet1_GetMatchingFonts(This,property,axis_values,num_values,fontset) +#define IDWriteFontSet1_GetFirstFontResources(This,fontset) (This)->lpVtbl->GetFirstFontResources(This,fontset) +#define IDWriteFontSet1_GetFilteredFonts__(This,indices,num_indices,fontset) (This)->lpVtbl->GetFilteredFonts__(This,indices,num_indices,fontset) +#define IDWriteFontSet1_GetFilteredFonts_(This,axis_ranges,num_ranges,select_any_range,fontset) (This)->lpVtbl->GetFilteredFonts_(This,axis_ranges,num_ranges,select_any_range,fontset) +#define IDWriteFontSet1_GetFilteredFonts(This,props,num_properties,select_any_property,fontset) (This)->lpVtbl->GetFilteredFonts(This,props,num_properties,select_any_property,fontset) +#define IDWriteFontSet1_GetFilteredFontIndices_(This,ranges,num_ranges,select_any_range,indices,num_indices,actual_num_indices) (This)->lpVtbl->GetFilteredFontIndices_(This,ranges,num_ranges,select_any_range,indices,num_indices,actual_num_indices) +#define IDWriteFontSet1_GetFilteredFontIndices(This,props,num_properties,select_any_range,indices,num_indices,actual_num_indices) (This)->lpVtbl->GetFilteredFontIndices(This,props,num_properties,select_any_range,indices,num_indices,actual_num_indices) +#define IDWriteFontSet1_GetFontAxisRanges_(This,font_index,axis_ranges,num_ranges,actual_num_ranges) (This)->lpVtbl->GetFontAxisRanges_(This,font_index,axis_ranges,num_ranges,actual_num_ranges) +#define IDWriteFontSet1_GetFontAxisRanges(This,axis_ranges,num_ranges,actual_num_ranges) (This)->lpVtbl->GetFontAxisRanges(This,axis_ranges,num_ranges,actual_num_ranges) +#define IDWriteFontSet1_GetFontFaceReference(This,index,reference) (This)->lpVtbl->IDWriteFontSet1_GetFontFaceReference(This,index,reference) +#define IDWriteFontSet1_CreateFontResource(This,index,resource) (This)->lpVtbl->CreateFontResource(This,index,resource) +#define IDWriteFontSet1_CreateFontFace(This,index,fontface) (This)->lpVtbl->CreateFontFace(This,index,fontface) +#define IDWriteFontSet1_GetFontLocality(This,index) (This)->lpVtbl->GetFontLocality(This,index) +#else +/*** IUnknown methods ***/ +static inline HRESULT IDWriteFontSet1_QueryInterface(IDWriteFontSet1* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static inline ULONG IDWriteFontSet1_AddRef(IDWriteFontSet1* This) { + return This->lpVtbl->AddRef(This); +} +static inline ULONG IDWriteFontSet1_Release(IDWriteFontSet1* This) { + return This->lpVtbl->Release(This); +} +/*** IDWriteFontSet methods ***/ +static inline UINT32 IDWriteFontSet1_GetFontCount(IDWriteFontSet1* This) { + return This->lpVtbl->GetFontCount(This); +} +static inline HRESULT IDWriteFontSet1_FindFontFaceReference(IDWriteFontSet1* This,IDWriteFontFaceReference *reference,UINT32 *index,WINBOOL *exists) { + return This->lpVtbl->FindFontFaceReference(This,reference,index,exists); +} +static inline HRESULT IDWriteFontSet1_FindFontFace(IDWriteFontSet1* This,IDWriteFontFace *fontface,UINT32 *index,WINBOOL *exists) { + return This->lpVtbl->FindFontFace(This,fontface,index,exists); +} +static inline HRESULT IDWriteFontSet1_GetPropertyValues__(IDWriteFontSet1* This,DWRITE_FONT_PROPERTY_ID id,IDWriteStringList **values) { + return This->lpVtbl->GetPropertyValues__(This,id,values); +} +static inline HRESULT IDWriteFontSet1_GetPropertyValues_(IDWriteFontSet1* This,DWRITE_FONT_PROPERTY_ID id,const WCHAR *preferred_locales,IDWriteStringList **values) { + return This->lpVtbl->GetPropertyValues_(This,id,preferred_locales,values); +} +static inline HRESULT IDWriteFontSet1_GetPropertyValues(IDWriteFontSet1* This,UINT32 index,DWRITE_FONT_PROPERTY_ID id,WINBOOL *exists,IDWriteLocalizedStrings **values) { + return This->lpVtbl->GetPropertyValues(This,index,id,exists,values); +} +static inline HRESULT IDWriteFontSet1_GetPropertyOccurrenceCount(IDWriteFontSet1* This,const DWRITE_FONT_PROPERTY *property,UINT32 *count) { + return This->lpVtbl->GetPropertyOccurrenceCount(This,property,count); +} +static inline HRESULT IDWriteFontSet1_GetMatchingFonts_(IDWriteFontSet1* This,const WCHAR *family,DWRITE_FONT_WEIGHT weight,DWRITE_FONT_STRETCH stretch,DWRITE_FONT_STYLE style,IDWriteFontSet **fontset) { + return This->lpVtbl->GetMatchingFonts_(This,family,weight,stretch,style,fontset); +} +/*** IDWriteFontSet1 methods ***/ +static inline HRESULT IDWriteFontSet1_GetMatchingFonts(IDWriteFontSet1* This,const DWRITE_FONT_PROPERTY *property,const DWRITE_FONT_AXIS_VALUE *axis_values,UINT32 num_values,IDWriteFontSet1 **fontset) { + return This->lpVtbl->IDWriteFontSet1_GetMatchingFonts(This,property,axis_values,num_values,fontset); +} +static inline HRESULT IDWriteFontSet1_GetFirstFontResources(IDWriteFontSet1* This,IDWriteFontSet1 **fontset) { + return This->lpVtbl->GetFirstFontResources(This,fontset); +} +static inline HRESULT IDWriteFontSet1_GetFilteredFonts__(IDWriteFontSet1* This,const UINT32 *indices,UINT32 num_indices,IDWriteFontSet1 **fontset) { + return This->lpVtbl->GetFilteredFonts__(This,indices,num_indices,fontset); +} +static inline HRESULT IDWriteFontSet1_GetFilteredFonts_(IDWriteFontSet1* This,const DWRITE_FONT_AXIS_RANGE *axis_ranges,UINT32 num_ranges,WINBOOL select_any_range,IDWriteFontSet1 **fontset) { + return This->lpVtbl->GetFilteredFonts_(This,axis_ranges,num_ranges,select_any_range,fontset); +} +static inline HRESULT IDWriteFontSet1_GetFilteredFonts(IDWriteFontSet1* This,const DWRITE_FONT_PROPERTY *props,UINT32 num_properties,WINBOOL select_any_property,IDWriteFontSet1 **fontset) { + return This->lpVtbl->GetFilteredFonts(This,props,num_properties,select_any_property,fontset); +} +static inline HRESULT IDWriteFontSet1_GetFilteredFontIndices_(IDWriteFontSet1* This,const DWRITE_FONT_AXIS_RANGE *ranges,UINT32 num_ranges,WINBOOL select_any_range,UINT32 *indices,UINT32 num_indices,UINT32 *actual_num_indices) { + return This->lpVtbl->GetFilteredFontIndices_(This,ranges,num_ranges,select_any_range,indices,num_indices,actual_num_indices); +} +static inline HRESULT IDWriteFontSet1_GetFilteredFontIndices(IDWriteFontSet1* This,const DWRITE_FONT_PROPERTY *props,UINT32 num_properties,WINBOOL select_any_range,UINT32 *indices,UINT32 num_indices,UINT32 *actual_num_indices) { + return This->lpVtbl->GetFilteredFontIndices(This,props,num_properties,select_any_range,indices,num_indices,actual_num_indices); +} +static inline HRESULT IDWriteFontSet1_GetFontAxisRanges_(IDWriteFontSet1* This,UINT32 font_index,DWRITE_FONT_AXIS_RANGE *axis_ranges,UINT32 num_ranges,UINT32 *actual_num_ranges) { + return This->lpVtbl->GetFontAxisRanges_(This,font_index,axis_ranges,num_ranges,actual_num_ranges); +} +static inline HRESULT IDWriteFontSet1_GetFontAxisRanges(IDWriteFontSet1* This,DWRITE_FONT_AXIS_RANGE *axis_ranges,UINT32 num_ranges,UINT32 *actual_num_ranges) { + return This->lpVtbl->GetFontAxisRanges(This,axis_ranges,num_ranges,actual_num_ranges); +} +static inline HRESULT IDWriteFontSet1_GetFontFaceReference(IDWriteFontSet1* This,UINT32 index,IDWriteFontFaceReference1 **reference) { + return This->lpVtbl->IDWriteFontSet1_GetFontFaceReference(This,index,reference); +} +static inline HRESULT IDWriteFontSet1_CreateFontResource(IDWriteFontSet1* This,UINT32 index,IDWriteFontResource **resource) { + return This->lpVtbl->CreateFontResource(This,index,resource); +} +static inline HRESULT IDWriteFontSet1_CreateFontFace(IDWriteFontSet1* This,UINT32 index,IDWriteFontFace5 **fontface) { + return This->lpVtbl->CreateFontFace(This,index,fontface); +} +static inline DWRITE_LOCALITY IDWriteFontSet1_GetFontLocality(IDWriteFontSet1* This,UINT32 index) { + return This->lpVtbl->GetFontLocality(This,index); +} +#endif +#endif + +#endif + + +#endif /* __IDWriteFontSet1_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IDWriteFont3 interface + */ +#ifndef __IDWriteFont3_INTERFACE_DEFINED__ +#define __IDWriteFont3_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDWriteFont3, 0x29748ed6, 0x8c9c, 0x4a6a, 0xbe,0x0b, 0xd9,0x12,0xe8,0x53,0x89,0x44); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("29748ed6-8c9c-4a6a-be0b-d912e8538944") +IDWriteFont3 : public IDWriteFont2 +{ + virtual HRESULT STDMETHODCALLTYPE CreateFontFace( + IDWriteFontFace3 **fontface) = 0; + + virtual WINBOOL STDMETHODCALLTYPE Equals( + IDWriteFont *font) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetFontFaceReference( + IDWriteFontFaceReference **reference) = 0; + + virtual WINBOOL STDMETHODCALLTYPE HasCharacter( + UINT32 character) = 0; + + virtual DWRITE_LOCALITY STDMETHODCALLTYPE GetLocality( + ) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDWriteFont3, 0x29748ed6, 0x8c9c, 0x4a6a, 0xbe,0x0b, 0xd9,0x12,0xe8,0x53,0x89,0x44) +#endif +#else +typedef struct IDWriteFont3Vtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDWriteFont3 *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDWriteFont3 *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDWriteFont3 *This); + + /*** IDWriteFont methods ***/ + HRESULT (STDMETHODCALLTYPE *GetFontFamily)( + IDWriteFont3 *This, + IDWriteFontFamily **family); + + DWRITE_FONT_WEIGHT (STDMETHODCALLTYPE *GetWeight)( + IDWriteFont3 *This); + + DWRITE_FONT_STRETCH (STDMETHODCALLTYPE *GetStretch)( + IDWriteFont3 *This); + + DWRITE_FONT_STYLE (STDMETHODCALLTYPE *GetStyle)( + IDWriteFont3 *This); + + WINBOOL (STDMETHODCALLTYPE *IsSymbolFont)( + IDWriteFont3 *This); + + HRESULT (STDMETHODCALLTYPE *GetFaceNames)( + IDWriteFont3 *This, + IDWriteLocalizedStrings **names); + + HRESULT (STDMETHODCALLTYPE *GetInformationalStrings)( + IDWriteFont3 *This, + DWRITE_INFORMATIONAL_STRING_ID stringid, + IDWriteLocalizedStrings **strings, + WINBOOL *exists); + + DWRITE_FONT_SIMULATIONS (STDMETHODCALLTYPE *GetSimulations)( + IDWriteFont3 *This); + + void (STDMETHODCALLTYPE *GetMetrics)( + IDWriteFont3 *This, + DWRITE_FONT_METRICS *metrics); + + HRESULT (STDMETHODCALLTYPE *HasCharacter)( + IDWriteFont3 *This, + UINT32 value, + WINBOOL *exists); + + HRESULT (STDMETHODCALLTYPE *CreateFontFace)( + IDWriteFont3 *This, + IDWriteFontFace **face); + + /*** IDWriteFont1 methods ***/ + void (STDMETHODCALLTYPE *IDWriteFont1_GetMetrics)( + IDWriteFont3 *This, + DWRITE_FONT_METRICS1 *metrics); + + void (STDMETHODCALLTYPE *GetPanose)( + IDWriteFont3 *This, + DWRITE_PANOSE *panose); + + HRESULT (STDMETHODCALLTYPE *GetUnicodeRanges)( + IDWriteFont3 *This, + UINT32 max_count, + DWRITE_UNICODE_RANGE *ranges, + UINT32 *count); + + WINBOOL (STDMETHODCALLTYPE *IsMonospacedFont)( + IDWriteFont3 *This); + + /*** IDWriteFont2 methods ***/ + WINBOOL (STDMETHODCALLTYPE *IsColorFont)( + IDWriteFont3 *This); + + /*** IDWriteFont3 methods ***/ + HRESULT (STDMETHODCALLTYPE *IDWriteFont3_CreateFontFace)( + IDWriteFont3 *This, + IDWriteFontFace3 **fontface); + + WINBOOL (STDMETHODCALLTYPE *Equals)( + IDWriteFont3 *This, + IDWriteFont *font); + + HRESULT (STDMETHODCALLTYPE *GetFontFaceReference)( + IDWriteFont3 *This, + IDWriteFontFaceReference **reference); + + WINBOOL (STDMETHODCALLTYPE *IDWriteFont3_HasCharacter)( + IDWriteFont3 *This, + UINT32 character); + + DWRITE_LOCALITY (STDMETHODCALLTYPE *GetLocality)( + IDWriteFont3 *This); + + END_INTERFACE +} IDWriteFont3Vtbl; + +interface IDWriteFont3 { + CONST_VTBL IDWriteFont3Vtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDWriteFont3_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteFont3_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDWriteFont3_Release(This) (This)->lpVtbl->Release(This) +/*** IDWriteFont methods ***/ +#define IDWriteFont3_GetFontFamily(This,family) (This)->lpVtbl->GetFontFamily(This,family) +#define IDWriteFont3_GetWeight(This) (This)->lpVtbl->GetWeight(This) +#define IDWriteFont3_GetStretch(This) (This)->lpVtbl->GetStretch(This) +#define IDWriteFont3_GetStyle(This) (This)->lpVtbl->GetStyle(This) +#define IDWriteFont3_IsSymbolFont(This) (This)->lpVtbl->IsSymbolFont(This) +#define IDWriteFont3_GetFaceNames(This,names) (This)->lpVtbl->GetFaceNames(This,names) +#define IDWriteFont3_GetInformationalStrings(This,stringid,strings,exists) (This)->lpVtbl->GetInformationalStrings(This,stringid,strings,exists) +#define IDWriteFont3_GetSimulations(This) (This)->lpVtbl->GetSimulations(This) +/*** IDWriteFont1 methods ***/ +#define IDWriteFont3_GetMetrics(This,metrics) (This)->lpVtbl->IDWriteFont1_GetMetrics(This,metrics) +#define IDWriteFont3_GetPanose(This,panose) (This)->lpVtbl->GetPanose(This,panose) +#define IDWriteFont3_GetUnicodeRanges(This,max_count,ranges,count) (This)->lpVtbl->GetUnicodeRanges(This,max_count,ranges,count) +#define IDWriteFont3_IsMonospacedFont(This) (This)->lpVtbl->IsMonospacedFont(This) +/*** IDWriteFont2 methods ***/ +#define IDWriteFont3_IsColorFont(This) (This)->lpVtbl->IsColorFont(This) +/*** IDWriteFont3 methods ***/ +#define IDWriteFont3_CreateFontFace(This,fontface) (This)->lpVtbl->IDWriteFont3_CreateFontFace(This,fontface) +#define IDWriteFont3_Equals(This,font) (This)->lpVtbl->Equals(This,font) +#define IDWriteFont3_GetFontFaceReference(This,reference) (This)->lpVtbl->GetFontFaceReference(This,reference) +#define IDWriteFont3_HasCharacter(This,character) (This)->lpVtbl->IDWriteFont3_HasCharacter(This,character) +#define IDWriteFont3_GetLocality(This) (This)->lpVtbl->GetLocality(This) +#else +/*** IUnknown methods ***/ +static inline HRESULT IDWriteFont3_QueryInterface(IDWriteFont3* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static inline ULONG IDWriteFont3_AddRef(IDWriteFont3* This) { + return This->lpVtbl->AddRef(This); +} +static inline ULONG IDWriteFont3_Release(IDWriteFont3* This) { + return This->lpVtbl->Release(This); +} +/*** IDWriteFont methods ***/ +static inline HRESULT IDWriteFont3_GetFontFamily(IDWriteFont3* This,IDWriteFontFamily **family) { + return This->lpVtbl->GetFontFamily(This,family); +} +static inline DWRITE_FONT_WEIGHT IDWriteFont3_GetWeight(IDWriteFont3* This) { + return This->lpVtbl->GetWeight(This); +} +static inline DWRITE_FONT_STRETCH IDWriteFont3_GetStretch(IDWriteFont3* This) { + return This->lpVtbl->GetStretch(This); +} +static inline DWRITE_FONT_STYLE IDWriteFont3_GetStyle(IDWriteFont3* This) { + return This->lpVtbl->GetStyle(This); +} +static inline WINBOOL IDWriteFont3_IsSymbolFont(IDWriteFont3* This) { + return This->lpVtbl->IsSymbolFont(This); +} +static inline HRESULT IDWriteFont3_GetFaceNames(IDWriteFont3* This,IDWriteLocalizedStrings **names) { + return This->lpVtbl->GetFaceNames(This,names); +} +static inline HRESULT IDWriteFont3_GetInformationalStrings(IDWriteFont3* This,DWRITE_INFORMATIONAL_STRING_ID stringid,IDWriteLocalizedStrings **strings,WINBOOL *exists) { + return This->lpVtbl->GetInformationalStrings(This,stringid,strings,exists); +} +static inline DWRITE_FONT_SIMULATIONS IDWriteFont3_GetSimulations(IDWriteFont3* This) { + return This->lpVtbl->GetSimulations(This); +} +/*** IDWriteFont1 methods ***/ +static inline void IDWriteFont3_GetMetrics(IDWriteFont3* This,DWRITE_FONT_METRICS1 *metrics) { + This->lpVtbl->IDWriteFont1_GetMetrics(This,metrics); +} +static inline void IDWriteFont3_GetPanose(IDWriteFont3* This,DWRITE_PANOSE *panose) { + This->lpVtbl->GetPanose(This,panose); +} +static inline HRESULT IDWriteFont3_GetUnicodeRanges(IDWriteFont3* This,UINT32 max_count,DWRITE_UNICODE_RANGE *ranges,UINT32 *count) { + return This->lpVtbl->GetUnicodeRanges(This,max_count,ranges,count); +} +static inline WINBOOL IDWriteFont3_IsMonospacedFont(IDWriteFont3* This) { + return This->lpVtbl->IsMonospacedFont(This); +} +/*** IDWriteFont2 methods ***/ +static inline WINBOOL IDWriteFont3_IsColorFont(IDWriteFont3* This) { + return This->lpVtbl->IsColorFont(This); +} +/*** IDWriteFont3 methods ***/ +static inline HRESULT IDWriteFont3_CreateFontFace(IDWriteFont3* This,IDWriteFontFace3 **fontface) { + return This->lpVtbl->IDWriteFont3_CreateFontFace(This,fontface); +} +static inline WINBOOL IDWriteFont3_Equals(IDWriteFont3* This,IDWriteFont *font) { + return This->lpVtbl->Equals(This,font); +} +static inline HRESULT IDWriteFont3_GetFontFaceReference(IDWriteFont3* This,IDWriteFontFaceReference **reference) { + return This->lpVtbl->GetFontFaceReference(This,reference); +} +static inline WINBOOL IDWriteFont3_HasCharacter(IDWriteFont3* This,UINT32 character) { + return This->lpVtbl->IDWriteFont3_HasCharacter(This,character); +} +static inline DWRITE_LOCALITY IDWriteFont3_GetLocality(IDWriteFont3* This) { + return This->lpVtbl->GetLocality(This); +} +#endif +#endif + +#endif + + +#endif /* __IDWriteFont3_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IDWriteFontFamily1 interface + */ +#ifndef __IDWriteFontFamily1_INTERFACE_DEFINED__ +#define __IDWriteFontFamily1_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDWriteFontFamily1, 0xda20d8ef, 0x812a, 0x4c43, 0x98,0x02, 0x62,0xec,0x4a,0xbd,0x7a,0xdf); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("da20d8ef-812a-4c43-9802-62ec4abd7adf") +IDWriteFontFamily1 : public IDWriteFontFamily +{ + virtual DWRITE_LOCALITY STDMETHODCALLTYPE GetFontLocality( + UINT32 index) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetFont( + UINT32 index, + IDWriteFont3 **font) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetFontFaceReference( + UINT32 index, + IDWriteFontFaceReference **reference) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDWriteFontFamily1, 0xda20d8ef, 0x812a, 0x4c43, 0x98,0x02, 0x62,0xec,0x4a,0xbd,0x7a,0xdf) +#endif +#else +typedef struct IDWriteFontFamily1Vtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDWriteFontFamily1 *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDWriteFontFamily1 *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDWriteFontFamily1 *This); + + /*** IDWriteFontList methods ***/ + HRESULT (STDMETHODCALLTYPE *GetFontCollection)( + IDWriteFontFamily1 *This, + IDWriteFontCollection **collection); + + UINT32 (STDMETHODCALLTYPE *GetFontCount)( + IDWriteFontFamily1 *This); + + HRESULT (STDMETHODCALLTYPE *GetFont)( + IDWriteFontFamily1 *This, + UINT32 index, + IDWriteFont **font); + + /*** IDWriteFontFamily methods ***/ + HRESULT (STDMETHODCALLTYPE *GetFamilyNames)( + IDWriteFontFamily1 *This, + IDWriteLocalizedStrings **names); + + HRESULT (STDMETHODCALLTYPE *GetFirstMatchingFont)( + IDWriteFontFamily1 *This, + DWRITE_FONT_WEIGHT weight, + DWRITE_FONT_STRETCH stretch, + DWRITE_FONT_STYLE style, + IDWriteFont **font); + + HRESULT (STDMETHODCALLTYPE *GetMatchingFonts)( + IDWriteFontFamily1 *This, + DWRITE_FONT_WEIGHT weight, + DWRITE_FONT_STRETCH stretch, + DWRITE_FONT_STYLE style, + IDWriteFontList **fonts); + + /*** IDWriteFontFamily1 methods ***/ + DWRITE_LOCALITY (STDMETHODCALLTYPE *GetFontLocality)( + IDWriteFontFamily1 *This, + UINT32 index); + + HRESULT (STDMETHODCALLTYPE *IDWriteFontFamily1_GetFont)( + IDWriteFontFamily1 *This, + UINT32 index, + IDWriteFont3 **font); + + HRESULT (STDMETHODCALLTYPE *GetFontFaceReference)( + IDWriteFontFamily1 *This, + UINT32 index, + IDWriteFontFaceReference **reference); + + END_INTERFACE +} IDWriteFontFamily1Vtbl; + +interface IDWriteFontFamily1 { + CONST_VTBL IDWriteFontFamily1Vtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDWriteFontFamily1_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteFontFamily1_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDWriteFontFamily1_Release(This) (This)->lpVtbl->Release(This) +/*** IDWriteFontList methods ***/ +#define IDWriteFontFamily1_GetFontCollection(This,collection) (This)->lpVtbl->GetFontCollection(This,collection) +#define IDWriteFontFamily1_GetFontCount(This) (This)->lpVtbl->GetFontCount(This) +/*** IDWriteFontFamily methods ***/ +#define IDWriteFontFamily1_GetFamilyNames(This,names) (This)->lpVtbl->GetFamilyNames(This,names) +#define IDWriteFontFamily1_GetFirstMatchingFont(This,weight,stretch,style,font) (This)->lpVtbl->GetFirstMatchingFont(This,weight,stretch,style,font) +#define IDWriteFontFamily1_GetMatchingFonts(This,weight,stretch,style,fonts) (This)->lpVtbl->GetMatchingFonts(This,weight,stretch,style,fonts) +/*** IDWriteFontFamily1 methods ***/ +#define IDWriteFontFamily1_GetFontLocality(This,index) (This)->lpVtbl->GetFontLocality(This,index) +#define IDWriteFontFamily1_GetFont(This,index,font) (This)->lpVtbl->IDWriteFontFamily1_GetFont(This,index,font) +#define IDWriteFontFamily1_GetFontFaceReference(This,index,reference) (This)->lpVtbl->GetFontFaceReference(This,index,reference) +#else +/*** IUnknown methods ***/ +static inline HRESULT IDWriteFontFamily1_QueryInterface(IDWriteFontFamily1* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static inline ULONG IDWriteFontFamily1_AddRef(IDWriteFontFamily1* This) { + return This->lpVtbl->AddRef(This); +} +static inline ULONG IDWriteFontFamily1_Release(IDWriteFontFamily1* This) { + return This->lpVtbl->Release(This); +} +/*** IDWriteFontList methods ***/ +static inline HRESULT IDWriteFontFamily1_GetFontCollection(IDWriteFontFamily1* This,IDWriteFontCollection **collection) { + return This->lpVtbl->GetFontCollection(This,collection); +} +static inline UINT32 IDWriteFontFamily1_GetFontCount(IDWriteFontFamily1* This) { + return This->lpVtbl->GetFontCount(This); +} +/*** IDWriteFontFamily methods ***/ +static inline HRESULT IDWriteFontFamily1_GetFamilyNames(IDWriteFontFamily1* This,IDWriteLocalizedStrings **names) { + return This->lpVtbl->GetFamilyNames(This,names); +} +static inline HRESULT IDWriteFontFamily1_GetFirstMatchingFont(IDWriteFontFamily1* This,DWRITE_FONT_WEIGHT weight,DWRITE_FONT_STRETCH stretch,DWRITE_FONT_STYLE style,IDWriteFont **font) { + return This->lpVtbl->GetFirstMatchingFont(This,weight,stretch,style,font); +} +static inline HRESULT IDWriteFontFamily1_GetMatchingFonts(IDWriteFontFamily1* This,DWRITE_FONT_WEIGHT weight,DWRITE_FONT_STRETCH stretch,DWRITE_FONT_STYLE style,IDWriteFontList **fonts) { + return This->lpVtbl->GetMatchingFonts(This,weight,stretch,style,fonts); +} +/*** IDWriteFontFamily1 methods ***/ +static inline DWRITE_LOCALITY IDWriteFontFamily1_GetFontLocality(IDWriteFontFamily1* This,UINT32 index) { + return This->lpVtbl->GetFontLocality(This,index); +} +static inline HRESULT IDWriteFontFamily1_GetFont(IDWriteFontFamily1* This,UINT32 index,IDWriteFont3 **font) { + return This->lpVtbl->IDWriteFontFamily1_GetFont(This,index,font); +} +static inline HRESULT IDWriteFontFamily1_GetFontFaceReference(IDWriteFontFamily1* This,UINT32 index,IDWriteFontFaceReference **reference) { + return This->lpVtbl->GetFontFaceReference(This,index,reference); +} +#endif +#endif + +#endif + + +#endif /* __IDWriteFontFamily1_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IDWriteFontFamily2 interface + */ +#ifndef __IDWriteFontFamily2_INTERFACE_DEFINED__ +#define __IDWriteFontFamily2_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDWriteFontFamily2, 0x3ed49e77, 0xa398, 0x4261, 0xb9,0xcf, 0xc1,0x26,0xc2,0x13,0x1e,0xf3); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("3ed49e77-a398-4261-b9cf-c126c2131ef3") +IDWriteFontFamily2 : public IDWriteFontFamily1 +{ + virtual HRESULT STDMETHODCALLTYPE GetMatchingFonts( + const DWRITE_FONT_AXIS_VALUE *axis_values, + UINT32 num_values, + IDWriteFontList2 **fontlist) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetFontSet( + IDWriteFontSet1 **fontset) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDWriteFontFamily2, 0x3ed49e77, 0xa398, 0x4261, 0xb9,0xcf, 0xc1,0x26,0xc2,0x13,0x1e,0xf3) +#endif +#else +typedef struct IDWriteFontFamily2Vtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDWriteFontFamily2 *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDWriteFontFamily2 *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDWriteFontFamily2 *This); + + /*** IDWriteFontList methods ***/ + HRESULT (STDMETHODCALLTYPE *GetFontCollection)( + IDWriteFontFamily2 *This, + IDWriteFontCollection **collection); + + UINT32 (STDMETHODCALLTYPE *GetFontCount)( + IDWriteFontFamily2 *This); + + HRESULT (STDMETHODCALLTYPE *GetFont)( + IDWriteFontFamily2 *This, + UINT32 index, + IDWriteFont **font); + + /*** IDWriteFontFamily methods ***/ + HRESULT (STDMETHODCALLTYPE *GetFamilyNames)( + IDWriteFontFamily2 *This, + IDWriteLocalizedStrings **names); + + HRESULT (STDMETHODCALLTYPE *GetFirstMatchingFont)( + IDWriteFontFamily2 *This, + DWRITE_FONT_WEIGHT weight, + DWRITE_FONT_STRETCH stretch, + DWRITE_FONT_STYLE style, + IDWriteFont **font); + + HRESULT (STDMETHODCALLTYPE *GetMatchingFonts)( + IDWriteFontFamily2 *This, + DWRITE_FONT_WEIGHT weight, + DWRITE_FONT_STRETCH stretch, + DWRITE_FONT_STYLE style, + IDWriteFontList **fonts); + + /*** IDWriteFontFamily1 methods ***/ + DWRITE_LOCALITY (STDMETHODCALLTYPE *GetFontLocality)( + IDWriteFontFamily2 *This, + UINT32 index); + + HRESULT (STDMETHODCALLTYPE *IDWriteFontFamily1_GetFont)( + IDWriteFontFamily2 *This, + UINT32 index, + IDWriteFont3 **font); + + HRESULT (STDMETHODCALLTYPE *GetFontFaceReference)( + IDWriteFontFamily2 *This, + UINT32 index, + IDWriteFontFaceReference **reference); + + /*** IDWriteFontFamily2 methods ***/ + HRESULT (STDMETHODCALLTYPE *IDWriteFontFamily2_GetMatchingFonts)( + IDWriteFontFamily2 *This, + const DWRITE_FONT_AXIS_VALUE *axis_values, + UINT32 num_values, + IDWriteFontList2 **fontlist); + + HRESULT (STDMETHODCALLTYPE *GetFontSet)( + IDWriteFontFamily2 *This, + IDWriteFontSet1 **fontset); + + END_INTERFACE +} IDWriteFontFamily2Vtbl; + +interface IDWriteFontFamily2 { + CONST_VTBL IDWriteFontFamily2Vtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDWriteFontFamily2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteFontFamily2_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDWriteFontFamily2_Release(This) (This)->lpVtbl->Release(This) +/*** IDWriteFontList methods ***/ +#define IDWriteFontFamily2_GetFontCollection(This,collection) (This)->lpVtbl->GetFontCollection(This,collection) +#define IDWriteFontFamily2_GetFontCount(This) (This)->lpVtbl->GetFontCount(This) +/*** IDWriteFontFamily methods ***/ +#define IDWriteFontFamily2_GetFamilyNames(This,names) (This)->lpVtbl->GetFamilyNames(This,names) +#define IDWriteFontFamily2_GetFirstMatchingFont(This,weight,stretch,style,font) (This)->lpVtbl->GetFirstMatchingFont(This,weight,stretch,style,font) +/*** IDWriteFontFamily1 methods ***/ +#define IDWriteFontFamily2_GetFontLocality(This,index) (This)->lpVtbl->GetFontLocality(This,index) +#define IDWriteFontFamily2_GetFont(This,index,font) (This)->lpVtbl->IDWriteFontFamily1_GetFont(This,index,font) +#define IDWriteFontFamily2_GetFontFaceReference(This,index,reference) (This)->lpVtbl->GetFontFaceReference(This,index,reference) +/*** IDWriteFontFamily2 methods ***/ +#define IDWriteFontFamily2_GetMatchingFonts(This,axis_values,num_values,fontlist) (This)->lpVtbl->IDWriteFontFamily2_GetMatchingFonts(This,axis_values,num_values,fontlist) +#define IDWriteFontFamily2_GetFontSet(This,fontset) (This)->lpVtbl->GetFontSet(This,fontset) +#else +/*** IUnknown methods ***/ +static inline HRESULT IDWriteFontFamily2_QueryInterface(IDWriteFontFamily2* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static inline ULONG IDWriteFontFamily2_AddRef(IDWriteFontFamily2* This) { + return This->lpVtbl->AddRef(This); +} +static inline ULONG IDWriteFontFamily2_Release(IDWriteFontFamily2* This) { + return This->lpVtbl->Release(This); +} +/*** IDWriteFontList methods ***/ +static inline HRESULT IDWriteFontFamily2_GetFontCollection(IDWriteFontFamily2* This,IDWriteFontCollection **collection) { + return This->lpVtbl->GetFontCollection(This,collection); +} +static inline UINT32 IDWriteFontFamily2_GetFontCount(IDWriteFontFamily2* This) { + return This->lpVtbl->GetFontCount(This); +} +/*** IDWriteFontFamily methods ***/ +static inline HRESULT IDWriteFontFamily2_GetFamilyNames(IDWriteFontFamily2* This,IDWriteLocalizedStrings **names) { + return This->lpVtbl->GetFamilyNames(This,names); +} +static inline HRESULT IDWriteFontFamily2_GetFirstMatchingFont(IDWriteFontFamily2* This,DWRITE_FONT_WEIGHT weight,DWRITE_FONT_STRETCH stretch,DWRITE_FONT_STYLE style,IDWriteFont **font) { + return This->lpVtbl->GetFirstMatchingFont(This,weight,stretch,style,font); +} +/*** IDWriteFontFamily1 methods ***/ +static inline DWRITE_LOCALITY IDWriteFontFamily2_GetFontLocality(IDWriteFontFamily2* This,UINT32 index) { + return This->lpVtbl->GetFontLocality(This,index); +} +static inline HRESULT IDWriteFontFamily2_GetFont(IDWriteFontFamily2* This,UINT32 index,IDWriteFont3 **font) { + return This->lpVtbl->IDWriteFontFamily1_GetFont(This,index,font); +} +static inline HRESULT IDWriteFontFamily2_GetFontFaceReference(IDWriteFontFamily2* This,UINT32 index,IDWriteFontFaceReference **reference) { + return This->lpVtbl->GetFontFaceReference(This,index,reference); +} +/*** IDWriteFontFamily2 methods ***/ +static inline HRESULT IDWriteFontFamily2_GetMatchingFonts(IDWriteFontFamily2* This,const DWRITE_FONT_AXIS_VALUE *axis_values,UINT32 num_values,IDWriteFontList2 **fontlist) { + return This->lpVtbl->IDWriteFontFamily2_GetMatchingFonts(This,axis_values,num_values,fontlist); +} +static inline HRESULT IDWriteFontFamily2_GetFontSet(IDWriteFontFamily2* This,IDWriteFontSet1 **fontset) { + return This->lpVtbl->GetFontSet(This,fontset); +} +#endif +#endif + +#endif + + +#endif /* __IDWriteFontFamily2_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IDWriteFontCollection1 interface + */ +#ifndef __IDWriteFontCollection1_INTERFACE_DEFINED__ +#define __IDWriteFontCollection1_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDWriteFontCollection1, 0x53585141, 0xd9f8, 0x4095, 0x83,0x21, 0xd7,0x3c,0xf6,0xbd,0x11,0x6c); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("53585141-d9f8-4095-8321-d73cf6bd116c") +IDWriteFontCollection1 : public IDWriteFontCollection +{ + virtual HRESULT STDMETHODCALLTYPE GetFontSet( + IDWriteFontSet **fontset) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetFontFamily( + UINT32 index, + IDWriteFontFamily1 **family) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDWriteFontCollection1, 0x53585141, 0xd9f8, 0x4095, 0x83,0x21, 0xd7,0x3c,0xf6,0xbd,0x11,0x6c) +#endif +#else +typedef struct IDWriteFontCollection1Vtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDWriteFontCollection1 *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDWriteFontCollection1 *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDWriteFontCollection1 *This); + + /*** IDWriteFontCollection methods ***/ + UINT32 (STDMETHODCALLTYPE *GetFontFamilyCount)( + IDWriteFontCollection1 *This); + + HRESULT (STDMETHODCALLTYPE *GetFontFamily)( + IDWriteFontCollection1 *This, + UINT32 index, + IDWriteFontFamily **family); + + HRESULT (STDMETHODCALLTYPE *FindFamilyName)( + IDWriteFontCollection1 *This, + const WCHAR *name, + UINT32 *index, + WINBOOL *exists); + + HRESULT (STDMETHODCALLTYPE *GetFontFromFontFace)( + IDWriteFontCollection1 *This, + IDWriteFontFace *face, + IDWriteFont **font); + + /*** IDWriteFontCollection1 methods ***/ + HRESULT (STDMETHODCALLTYPE *GetFontSet)( + IDWriteFontCollection1 *This, + IDWriteFontSet **fontset); + + HRESULT (STDMETHODCALLTYPE *IDWriteFontCollection1_GetFontFamily)( + IDWriteFontCollection1 *This, + UINT32 index, + IDWriteFontFamily1 **family); + + END_INTERFACE +} IDWriteFontCollection1Vtbl; + +interface IDWriteFontCollection1 { + CONST_VTBL IDWriteFontCollection1Vtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDWriteFontCollection1_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteFontCollection1_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDWriteFontCollection1_Release(This) (This)->lpVtbl->Release(This) +/*** IDWriteFontCollection methods ***/ +#define IDWriteFontCollection1_GetFontFamilyCount(This) (This)->lpVtbl->GetFontFamilyCount(This) +#define IDWriteFontCollection1_FindFamilyName(This,name,index,exists) (This)->lpVtbl->FindFamilyName(This,name,index,exists) +#define IDWriteFontCollection1_GetFontFromFontFace(This,face,font) (This)->lpVtbl->GetFontFromFontFace(This,face,font) +/*** IDWriteFontCollection1 methods ***/ +#define IDWriteFontCollection1_GetFontSet(This,fontset) (This)->lpVtbl->GetFontSet(This,fontset) +#define IDWriteFontCollection1_GetFontFamily(This,index,family) (This)->lpVtbl->IDWriteFontCollection1_GetFontFamily(This,index,family) +#else +/*** IUnknown methods ***/ +static inline HRESULT IDWriteFontCollection1_QueryInterface(IDWriteFontCollection1* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static inline ULONG IDWriteFontCollection1_AddRef(IDWriteFontCollection1* This) { + return This->lpVtbl->AddRef(This); +} +static inline ULONG IDWriteFontCollection1_Release(IDWriteFontCollection1* This) { + return This->lpVtbl->Release(This); +} +/*** IDWriteFontCollection methods ***/ +static inline UINT32 IDWriteFontCollection1_GetFontFamilyCount(IDWriteFontCollection1* This) { + return This->lpVtbl->GetFontFamilyCount(This); +} +static inline HRESULT IDWriteFontCollection1_FindFamilyName(IDWriteFontCollection1* This,const WCHAR *name,UINT32 *index,WINBOOL *exists) { + return This->lpVtbl->FindFamilyName(This,name,index,exists); +} +static inline HRESULT IDWriteFontCollection1_GetFontFromFontFace(IDWriteFontCollection1* This,IDWriteFontFace *face,IDWriteFont **font) { + return This->lpVtbl->GetFontFromFontFace(This,face,font); +} +/*** IDWriteFontCollection1 methods ***/ +static inline HRESULT IDWriteFontCollection1_GetFontSet(IDWriteFontCollection1* This,IDWriteFontSet **fontset) { + return This->lpVtbl->GetFontSet(This,fontset); +} +static inline HRESULT IDWriteFontCollection1_GetFontFamily(IDWriteFontCollection1* This,UINT32 index,IDWriteFontFamily1 **family) { + return This->lpVtbl->IDWriteFontCollection1_GetFontFamily(This,index,family); +} +#endif +#endif + +#endif + + +#endif /* __IDWriteFontCollection1_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IDWriteFontCollection2 interface + */ +#ifndef __IDWriteFontCollection2_INTERFACE_DEFINED__ +#define __IDWriteFontCollection2_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDWriteFontCollection2, 0x514039c6, 0x4617, 0x4064, 0xbf,0x8b, 0x92,0xea,0x83,0xe5,0x06,0xe0); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("514039c6-4617-4064-bf8b-92ea83e506e0") +IDWriteFontCollection2 : public IDWriteFontCollection1 +{ + virtual HRESULT STDMETHODCALLTYPE GetFontFamily( + UINT32 index, + IDWriteFontFamily2 **family) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetMatchingFonts( + const WCHAR *familyname, + const DWRITE_FONT_AXIS_VALUE *axis_values, + UINT32 num_values, + IDWriteFontList2 **fontlist) = 0; + + virtual DWRITE_FONT_FAMILY_MODEL STDMETHODCALLTYPE GetFontFamilyModel( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetFontSet( + IDWriteFontSet1 **fontset) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDWriteFontCollection2, 0x514039c6, 0x4617, 0x4064, 0xbf,0x8b, 0x92,0xea,0x83,0xe5,0x06,0xe0) +#endif +#else +typedef struct IDWriteFontCollection2Vtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDWriteFontCollection2 *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDWriteFontCollection2 *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDWriteFontCollection2 *This); + + /*** IDWriteFontCollection methods ***/ + UINT32 (STDMETHODCALLTYPE *GetFontFamilyCount)( + IDWriteFontCollection2 *This); + + HRESULT (STDMETHODCALLTYPE *GetFontFamily)( + IDWriteFontCollection2 *This, + UINT32 index, + IDWriteFontFamily **family); + + HRESULT (STDMETHODCALLTYPE *FindFamilyName)( + IDWriteFontCollection2 *This, + const WCHAR *name, + UINT32 *index, + WINBOOL *exists); + + HRESULT (STDMETHODCALLTYPE *GetFontFromFontFace)( + IDWriteFontCollection2 *This, + IDWriteFontFace *face, + IDWriteFont **font); + + /*** IDWriteFontCollection1 methods ***/ + HRESULT (STDMETHODCALLTYPE *GetFontSet)( + IDWriteFontCollection2 *This, + IDWriteFontSet **fontset); + + HRESULT (STDMETHODCALLTYPE *IDWriteFontCollection1_GetFontFamily)( + IDWriteFontCollection2 *This, + UINT32 index, + IDWriteFontFamily1 **family); + + /*** IDWriteFontCollection2 methods ***/ + HRESULT (STDMETHODCALLTYPE *IDWriteFontCollection2_GetFontFamily)( + IDWriteFontCollection2 *This, + UINT32 index, + IDWriteFontFamily2 **family); + + HRESULT (STDMETHODCALLTYPE *GetMatchingFonts)( + IDWriteFontCollection2 *This, + const WCHAR *familyname, + const DWRITE_FONT_AXIS_VALUE *axis_values, + UINT32 num_values, + IDWriteFontList2 **fontlist); + + DWRITE_FONT_FAMILY_MODEL (STDMETHODCALLTYPE *GetFontFamilyModel)( + IDWriteFontCollection2 *This); + + HRESULT (STDMETHODCALLTYPE *IDWriteFontCollection2_GetFontSet)( + IDWriteFontCollection2 *This, + IDWriteFontSet1 **fontset); + + END_INTERFACE +} IDWriteFontCollection2Vtbl; + +interface IDWriteFontCollection2 { + CONST_VTBL IDWriteFontCollection2Vtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDWriteFontCollection2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteFontCollection2_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDWriteFontCollection2_Release(This) (This)->lpVtbl->Release(This) +/*** IDWriteFontCollection methods ***/ +#define IDWriteFontCollection2_GetFontFamilyCount(This) (This)->lpVtbl->GetFontFamilyCount(This) +#define IDWriteFontCollection2_FindFamilyName(This,name,index,exists) (This)->lpVtbl->FindFamilyName(This,name,index,exists) +#define IDWriteFontCollection2_GetFontFromFontFace(This,face,font) (This)->lpVtbl->GetFontFromFontFace(This,face,font) +/*** IDWriteFontCollection1 methods ***/ +/*** IDWriteFontCollection2 methods ***/ +#define IDWriteFontCollection2_GetFontFamily(This,index,family) (This)->lpVtbl->IDWriteFontCollection2_GetFontFamily(This,index,family) +#define IDWriteFontCollection2_GetMatchingFonts(This,familyname,axis_values,num_values,fontlist) (This)->lpVtbl->GetMatchingFonts(This,familyname,axis_values,num_values,fontlist) +#define IDWriteFontCollection2_GetFontFamilyModel(This) (This)->lpVtbl->GetFontFamilyModel(This) +#define IDWriteFontCollection2_GetFontSet(This,fontset) (This)->lpVtbl->IDWriteFontCollection2_GetFontSet(This,fontset) +#else +/*** IUnknown methods ***/ +static inline HRESULT IDWriteFontCollection2_QueryInterface(IDWriteFontCollection2* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static inline ULONG IDWriteFontCollection2_AddRef(IDWriteFontCollection2* This) { + return This->lpVtbl->AddRef(This); +} +static inline ULONG IDWriteFontCollection2_Release(IDWriteFontCollection2* This) { + return This->lpVtbl->Release(This); +} +/*** IDWriteFontCollection methods ***/ +static inline UINT32 IDWriteFontCollection2_GetFontFamilyCount(IDWriteFontCollection2* This) { + return This->lpVtbl->GetFontFamilyCount(This); +} +static inline HRESULT IDWriteFontCollection2_FindFamilyName(IDWriteFontCollection2* This,const WCHAR *name,UINT32 *index,WINBOOL *exists) { + return This->lpVtbl->FindFamilyName(This,name,index,exists); +} +static inline HRESULT IDWriteFontCollection2_GetFontFromFontFace(IDWriteFontCollection2* This,IDWriteFontFace *face,IDWriteFont **font) { + return This->lpVtbl->GetFontFromFontFace(This,face,font); +} +/*** IDWriteFontCollection1 methods ***/ +/*** IDWriteFontCollection2 methods ***/ +static inline HRESULT IDWriteFontCollection2_GetFontFamily(IDWriteFontCollection2* This,UINT32 index,IDWriteFontFamily2 **family) { + return This->lpVtbl->IDWriteFontCollection2_GetFontFamily(This,index,family); +} +static inline HRESULT IDWriteFontCollection2_GetMatchingFonts(IDWriteFontCollection2* This,const WCHAR *familyname,const DWRITE_FONT_AXIS_VALUE *axis_values,UINT32 num_values,IDWriteFontList2 **fontlist) { + return This->lpVtbl->GetMatchingFonts(This,familyname,axis_values,num_values,fontlist); +} +static inline DWRITE_FONT_FAMILY_MODEL IDWriteFontCollection2_GetFontFamilyModel(IDWriteFontCollection2* This) { + return This->lpVtbl->GetFontFamilyModel(This); +} +static inline HRESULT IDWriteFontCollection2_GetFontSet(IDWriteFontCollection2* This,IDWriteFontSet1 **fontset) { + return This->lpVtbl->IDWriteFontCollection2_GetFontSet(This,fontset); +} +#endif +#endif + +#endif + + +#endif /* __IDWriteFontCollection2_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IDWriteFontCollection3 interface + */ +#ifndef __IDWriteFontCollection3_INTERFACE_DEFINED__ +#define __IDWriteFontCollection3_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDWriteFontCollection3, 0xa4d055a6, 0xf9e3, 0x4e25, 0x93,0xb7, 0x9e,0x30,0x9f,0x3a,0xf8,0xe9); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("a4d055a6-f9e3-4e25-93b7-9e309f3af8e9") +IDWriteFontCollection3 : public IDWriteFontCollection2 +{ + virtual HANDLE STDMETHODCALLTYPE GetExpirationEvent( + ) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDWriteFontCollection3, 0xa4d055a6, 0xf9e3, 0x4e25, 0x93,0xb7, 0x9e,0x30,0x9f,0x3a,0xf8,0xe9) +#endif +#else +typedef struct IDWriteFontCollection3Vtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDWriteFontCollection3 *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDWriteFontCollection3 *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDWriteFontCollection3 *This); + + /*** IDWriteFontCollection methods ***/ + UINT32 (STDMETHODCALLTYPE *GetFontFamilyCount)( + IDWriteFontCollection3 *This); + + HRESULT (STDMETHODCALLTYPE *GetFontFamily)( + IDWriteFontCollection3 *This, + UINT32 index, + IDWriteFontFamily **family); + + HRESULT (STDMETHODCALLTYPE *FindFamilyName)( + IDWriteFontCollection3 *This, + const WCHAR *name, + UINT32 *index, + WINBOOL *exists); + + HRESULT (STDMETHODCALLTYPE *GetFontFromFontFace)( + IDWriteFontCollection3 *This, + IDWriteFontFace *face, + IDWriteFont **font); + + /*** IDWriteFontCollection1 methods ***/ + HRESULT (STDMETHODCALLTYPE *GetFontSet)( + IDWriteFontCollection3 *This, + IDWriteFontSet **fontset); + + HRESULT (STDMETHODCALLTYPE *IDWriteFontCollection1_GetFontFamily)( + IDWriteFontCollection3 *This, + UINT32 index, + IDWriteFontFamily1 **family); + + /*** IDWriteFontCollection2 methods ***/ + HRESULT (STDMETHODCALLTYPE *IDWriteFontCollection2_GetFontFamily)( + IDWriteFontCollection3 *This, + UINT32 index, + IDWriteFontFamily2 **family); + + HRESULT (STDMETHODCALLTYPE *GetMatchingFonts)( + IDWriteFontCollection3 *This, + const WCHAR *familyname, + const DWRITE_FONT_AXIS_VALUE *axis_values, + UINT32 num_values, + IDWriteFontList2 **fontlist); + + DWRITE_FONT_FAMILY_MODEL (STDMETHODCALLTYPE *GetFontFamilyModel)( + IDWriteFontCollection3 *This); + + HRESULT (STDMETHODCALLTYPE *IDWriteFontCollection2_GetFontSet)( + IDWriteFontCollection3 *This, + IDWriteFontSet1 **fontset); + + /*** IDWriteFontCollection3 methods ***/ + HANDLE (STDMETHODCALLTYPE *GetExpirationEvent)( + IDWriteFontCollection3 *This); + + END_INTERFACE +} IDWriteFontCollection3Vtbl; + +interface IDWriteFontCollection3 { + CONST_VTBL IDWriteFontCollection3Vtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDWriteFontCollection3_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteFontCollection3_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDWriteFontCollection3_Release(This) (This)->lpVtbl->Release(This) +/*** IDWriteFontCollection methods ***/ +#define IDWriteFontCollection3_GetFontFamilyCount(This) (This)->lpVtbl->GetFontFamilyCount(This) +#define IDWriteFontCollection3_FindFamilyName(This,name,index,exists) (This)->lpVtbl->FindFamilyName(This,name,index,exists) +#define IDWriteFontCollection3_GetFontFromFontFace(This,face,font) (This)->lpVtbl->GetFontFromFontFace(This,face,font) +/*** IDWriteFontCollection1 methods ***/ +/*** IDWriteFontCollection2 methods ***/ +#define IDWriteFontCollection3_GetFontFamily(This,index,family) (This)->lpVtbl->IDWriteFontCollection2_GetFontFamily(This,index,family) +#define IDWriteFontCollection3_GetMatchingFonts(This,familyname,axis_values,num_values,fontlist) (This)->lpVtbl->GetMatchingFonts(This,familyname,axis_values,num_values,fontlist) +#define IDWriteFontCollection3_GetFontFamilyModel(This) (This)->lpVtbl->GetFontFamilyModel(This) +#define IDWriteFontCollection3_GetFontSet(This,fontset) (This)->lpVtbl->IDWriteFontCollection2_GetFontSet(This,fontset) +/*** IDWriteFontCollection3 methods ***/ +#define IDWriteFontCollection3_GetExpirationEvent(This) (This)->lpVtbl->GetExpirationEvent(This) +#else +/*** IUnknown methods ***/ +static inline HRESULT IDWriteFontCollection3_QueryInterface(IDWriteFontCollection3* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static inline ULONG IDWriteFontCollection3_AddRef(IDWriteFontCollection3* This) { + return This->lpVtbl->AddRef(This); +} +static inline ULONG IDWriteFontCollection3_Release(IDWriteFontCollection3* This) { + return This->lpVtbl->Release(This); +} +/*** IDWriteFontCollection methods ***/ +static inline UINT32 IDWriteFontCollection3_GetFontFamilyCount(IDWriteFontCollection3* This) { + return This->lpVtbl->GetFontFamilyCount(This); +} +static inline HRESULT IDWriteFontCollection3_FindFamilyName(IDWriteFontCollection3* This,const WCHAR *name,UINT32 *index,WINBOOL *exists) { + return This->lpVtbl->FindFamilyName(This,name,index,exists); +} +static inline HRESULT IDWriteFontCollection3_GetFontFromFontFace(IDWriteFontCollection3* This,IDWriteFontFace *face,IDWriteFont **font) { + return This->lpVtbl->GetFontFromFontFace(This,face,font); +} +/*** IDWriteFontCollection1 methods ***/ +/*** IDWriteFontCollection2 methods ***/ +static inline HRESULT IDWriteFontCollection3_GetFontFamily(IDWriteFontCollection3* This,UINT32 index,IDWriteFontFamily2 **family) { + return This->lpVtbl->IDWriteFontCollection2_GetFontFamily(This,index,family); +} +static inline HRESULT IDWriteFontCollection3_GetMatchingFonts(IDWriteFontCollection3* This,const WCHAR *familyname,const DWRITE_FONT_AXIS_VALUE *axis_values,UINT32 num_values,IDWriteFontList2 **fontlist) { + return This->lpVtbl->GetMatchingFonts(This,familyname,axis_values,num_values,fontlist); +} +static inline DWRITE_FONT_FAMILY_MODEL IDWriteFontCollection3_GetFontFamilyModel(IDWriteFontCollection3* This) { + return This->lpVtbl->GetFontFamilyModel(This); +} +static inline HRESULT IDWriteFontCollection3_GetFontSet(IDWriteFontCollection3* This,IDWriteFontSet1 **fontset) { + return This->lpVtbl->IDWriteFontCollection2_GetFontSet(This,fontset); +} +/*** IDWriteFontCollection3 methods ***/ +static inline HANDLE IDWriteFontCollection3_GetExpirationEvent(IDWriteFontCollection3* This) { + return This->lpVtbl->GetExpirationEvent(This); +} +#endif +#endif + +#endif + + +#endif /* __IDWriteFontCollection3_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IDWriteFontFaceReference interface + */ +#ifndef __IDWriteFontFaceReference_INTERFACE_DEFINED__ +#define __IDWriteFontFaceReference_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDWriteFontFaceReference, 0x5e7fa7ca, 0xdde3, 0x424c, 0x89,0xf0, 0x9f,0xcd,0x6f,0xed,0x58,0xcd); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("5e7fa7ca-dde3-424c-89f0-9fcd6fed58cd") +IDWriteFontFaceReference : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE CreateFontFace( + IDWriteFontFace3 **fontface) = 0; + + virtual HRESULT STDMETHODCALLTYPE CreateFontFaceWithSimulations( + DWRITE_FONT_SIMULATIONS simulations, + IDWriteFontFace3 **fontface) = 0; + + virtual WINBOOL STDMETHODCALLTYPE Equals( + IDWriteFontFaceReference *reference) = 0; + + virtual UINT32 STDMETHODCALLTYPE GetFontFaceIndex( + ) = 0; + + virtual DWRITE_FONT_SIMULATIONS STDMETHODCALLTYPE GetSimulations( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetFontFile( + IDWriteFontFile **fontfile) = 0; + + virtual UINT64 STDMETHODCALLTYPE GetLocalFileSize( + ) = 0; + + virtual UINT64 STDMETHODCALLTYPE GetFileSize( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetFileTime( + FILETIME *writetime) = 0; + + virtual DWRITE_LOCALITY STDMETHODCALLTYPE GetLocality( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE EnqueueFontDownloadRequest( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE EnqueueCharacterDownloadRequest( + const WCHAR *chars, + UINT32 count) = 0; + + virtual HRESULT STDMETHODCALLTYPE EnqueueGlyphDownloadRequest( + const UINT16 *glyphs, + UINT32 count) = 0; + + virtual HRESULT STDMETHODCALLTYPE EnqueueFileFragmentDownloadRequest( + UINT64 offset, + UINT64 size) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDWriteFontFaceReference, 0x5e7fa7ca, 0xdde3, 0x424c, 0x89,0xf0, 0x9f,0xcd,0x6f,0xed,0x58,0xcd) +#endif +#else +typedef struct IDWriteFontFaceReferenceVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDWriteFontFaceReference *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDWriteFontFaceReference *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDWriteFontFaceReference *This); + + /*** IDWriteFontFaceReference methods ***/ + HRESULT (STDMETHODCALLTYPE *CreateFontFace)( + IDWriteFontFaceReference *This, + IDWriteFontFace3 **fontface); + + HRESULT (STDMETHODCALLTYPE *CreateFontFaceWithSimulations)( + IDWriteFontFaceReference *This, + DWRITE_FONT_SIMULATIONS simulations, + IDWriteFontFace3 **fontface); + + WINBOOL (STDMETHODCALLTYPE *Equals)( + IDWriteFontFaceReference *This, + IDWriteFontFaceReference *reference); + + UINT32 (STDMETHODCALLTYPE *GetFontFaceIndex)( + IDWriteFontFaceReference *This); + + DWRITE_FONT_SIMULATIONS (STDMETHODCALLTYPE *GetSimulations)( + IDWriteFontFaceReference *This); + + HRESULT (STDMETHODCALLTYPE *GetFontFile)( + IDWriteFontFaceReference *This, + IDWriteFontFile **fontfile); + + UINT64 (STDMETHODCALLTYPE *GetLocalFileSize)( + IDWriteFontFaceReference *This); + + UINT64 (STDMETHODCALLTYPE *GetFileSize)( + IDWriteFontFaceReference *This); + + HRESULT (STDMETHODCALLTYPE *GetFileTime)( + IDWriteFontFaceReference *This, + FILETIME *writetime); + + DWRITE_LOCALITY (STDMETHODCALLTYPE *GetLocality)( + IDWriteFontFaceReference *This); + + HRESULT (STDMETHODCALLTYPE *EnqueueFontDownloadRequest)( + IDWriteFontFaceReference *This); + + HRESULT (STDMETHODCALLTYPE *EnqueueCharacterDownloadRequest)( + IDWriteFontFaceReference *This, + const WCHAR *chars, + UINT32 count); + + HRESULT (STDMETHODCALLTYPE *EnqueueGlyphDownloadRequest)( + IDWriteFontFaceReference *This, + const UINT16 *glyphs, + UINT32 count); + + HRESULT (STDMETHODCALLTYPE *EnqueueFileFragmentDownloadRequest)( + IDWriteFontFaceReference *This, + UINT64 offset, + UINT64 size); + + END_INTERFACE +} IDWriteFontFaceReferenceVtbl; + +interface IDWriteFontFaceReference { + CONST_VTBL IDWriteFontFaceReferenceVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDWriteFontFaceReference_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteFontFaceReference_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDWriteFontFaceReference_Release(This) (This)->lpVtbl->Release(This) +/*** IDWriteFontFaceReference methods ***/ +#define IDWriteFontFaceReference_CreateFontFace(This,fontface) (This)->lpVtbl->CreateFontFace(This,fontface) +#define IDWriteFontFaceReference_CreateFontFaceWithSimulations(This,simulations,fontface) (This)->lpVtbl->CreateFontFaceWithSimulations(This,simulations,fontface) +#define IDWriteFontFaceReference_Equals(This,reference) (This)->lpVtbl->Equals(This,reference) +#define IDWriteFontFaceReference_GetFontFaceIndex(This) (This)->lpVtbl->GetFontFaceIndex(This) +#define IDWriteFontFaceReference_GetSimulations(This) (This)->lpVtbl->GetSimulations(This) +#define IDWriteFontFaceReference_GetFontFile(This,fontfile) (This)->lpVtbl->GetFontFile(This,fontfile) +#define IDWriteFontFaceReference_GetLocalFileSize(This) (This)->lpVtbl->GetLocalFileSize(This) +#define IDWriteFontFaceReference_GetFileSize(This) (This)->lpVtbl->GetFileSize(This) +#define IDWriteFontFaceReference_GetFileTime(This,writetime) (This)->lpVtbl->GetFileTime(This,writetime) +#define IDWriteFontFaceReference_GetLocality(This) (This)->lpVtbl->GetLocality(This) +#define IDWriteFontFaceReference_EnqueueFontDownloadRequest(This) (This)->lpVtbl->EnqueueFontDownloadRequest(This) +#define IDWriteFontFaceReference_EnqueueCharacterDownloadRequest(This,chars,count) (This)->lpVtbl->EnqueueCharacterDownloadRequest(This,chars,count) +#define IDWriteFontFaceReference_EnqueueGlyphDownloadRequest(This,glyphs,count) (This)->lpVtbl->EnqueueGlyphDownloadRequest(This,glyphs,count) +#define IDWriteFontFaceReference_EnqueueFileFragmentDownloadRequest(This,offset,size) (This)->lpVtbl->EnqueueFileFragmentDownloadRequest(This,offset,size) +#else +/*** IUnknown methods ***/ +static inline HRESULT IDWriteFontFaceReference_QueryInterface(IDWriteFontFaceReference* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static inline ULONG IDWriteFontFaceReference_AddRef(IDWriteFontFaceReference* This) { + return This->lpVtbl->AddRef(This); +} +static inline ULONG IDWriteFontFaceReference_Release(IDWriteFontFaceReference* This) { + return This->lpVtbl->Release(This); +} +/*** IDWriteFontFaceReference methods ***/ +static inline HRESULT IDWriteFontFaceReference_CreateFontFace(IDWriteFontFaceReference* This,IDWriteFontFace3 **fontface) { + return This->lpVtbl->CreateFontFace(This,fontface); +} +static inline HRESULT IDWriteFontFaceReference_CreateFontFaceWithSimulations(IDWriteFontFaceReference* This,DWRITE_FONT_SIMULATIONS simulations,IDWriteFontFace3 **fontface) { + return This->lpVtbl->CreateFontFaceWithSimulations(This,simulations,fontface); +} +static inline WINBOOL IDWriteFontFaceReference_Equals(IDWriteFontFaceReference* This,IDWriteFontFaceReference *reference) { + return This->lpVtbl->Equals(This,reference); +} +static inline UINT32 IDWriteFontFaceReference_GetFontFaceIndex(IDWriteFontFaceReference* This) { + return This->lpVtbl->GetFontFaceIndex(This); +} +static inline DWRITE_FONT_SIMULATIONS IDWriteFontFaceReference_GetSimulations(IDWriteFontFaceReference* This) { + return This->lpVtbl->GetSimulations(This); +} +static inline HRESULT IDWriteFontFaceReference_GetFontFile(IDWriteFontFaceReference* This,IDWriteFontFile **fontfile) { + return This->lpVtbl->GetFontFile(This,fontfile); +} +static inline UINT64 IDWriteFontFaceReference_GetLocalFileSize(IDWriteFontFaceReference* This) { + return This->lpVtbl->GetLocalFileSize(This); +} +static inline UINT64 IDWriteFontFaceReference_GetFileSize(IDWriteFontFaceReference* This) { + return This->lpVtbl->GetFileSize(This); +} +static inline HRESULT IDWriteFontFaceReference_GetFileTime(IDWriteFontFaceReference* This,FILETIME *writetime) { + return This->lpVtbl->GetFileTime(This,writetime); +} +static inline DWRITE_LOCALITY IDWriteFontFaceReference_GetLocality(IDWriteFontFaceReference* This) { + return This->lpVtbl->GetLocality(This); +} +static inline HRESULT IDWriteFontFaceReference_EnqueueFontDownloadRequest(IDWriteFontFaceReference* This) { + return This->lpVtbl->EnqueueFontDownloadRequest(This); +} +static inline HRESULT IDWriteFontFaceReference_EnqueueCharacterDownloadRequest(IDWriteFontFaceReference* This,const WCHAR *chars,UINT32 count) { + return This->lpVtbl->EnqueueCharacterDownloadRequest(This,chars,count); +} +static inline HRESULT IDWriteFontFaceReference_EnqueueGlyphDownloadRequest(IDWriteFontFaceReference* This,const UINT16 *glyphs,UINT32 count) { + return This->lpVtbl->EnqueueGlyphDownloadRequest(This,glyphs,count); +} +static inline HRESULT IDWriteFontFaceReference_EnqueueFileFragmentDownloadRequest(IDWriteFontFaceReference* This,UINT64 offset,UINT64 size) { + return This->lpVtbl->EnqueueFileFragmentDownloadRequest(This,offset,size); +} +#endif +#endif + +#endif + + +#endif /* __IDWriteFontFaceReference_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IDWriteFontFaceReference1 interface + */ +#ifndef __IDWriteFontFaceReference1_INTERFACE_DEFINED__ +#define __IDWriteFontFaceReference1_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDWriteFontFaceReference1, 0xc081fe77, 0x2fd1, 0x41ac, 0xa5,0xa3, 0x34,0x98,0x3c,0x4b,0xa6,0x1a); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("c081fe77-2fd1-41ac-a5a3-34983c4ba61a") +IDWriteFontFaceReference1 : public IDWriteFontFaceReference +{ + virtual HRESULT STDMETHODCALLTYPE CreateFontFace( + IDWriteFontFace5 **fontface) = 0; + + virtual UINT32 STDMETHODCALLTYPE GetFontAxisValueCount( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetFontAxisValues( + DWRITE_FONT_AXIS_VALUE *values, + UINT32 num_values) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDWriteFontFaceReference1, 0xc081fe77, 0x2fd1, 0x41ac, 0xa5,0xa3, 0x34,0x98,0x3c,0x4b,0xa6,0x1a) +#endif +#else +typedef struct IDWriteFontFaceReference1Vtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDWriteFontFaceReference1 *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDWriteFontFaceReference1 *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDWriteFontFaceReference1 *This); + + /*** IDWriteFontFaceReference methods ***/ + HRESULT (STDMETHODCALLTYPE *CreateFontFace)( + IDWriteFontFaceReference1 *This, + IDWriteFontFace3 **fontface); + + HRESULT (STDMETHODCALLTYPE *CreateFontFaceWithSimulations)( + IDWriteFontFaceReference1 *This, + DWRITE_FONT_SIMULATIONS simulations, + IDWriteFontFace3 **fontface); + + WINBOOL (STDMETHODCALLTYPE *Equals)( + IDWriteFontFaceReference1 *This, + IDWriteFontFaceReference *reference); + + UINT32 (STDMETHODCALLTYPE *GetFontFaceIndex)( + IDWriteFontFaceReference1 *This); + + DWRITE_FONT_SIMULATIONS (STDMETHODCALLTYPE *GetSimulations)( + IDWriteFontFaceReference1 *This); + + HRESULT (STDMETHODCALLTYPE *GetFontFile)( + IDWriteFontFaceReference1 *This, + IDWriteFontFile **fontfile); + + UINT64 (STDMETHODCALLTYPE *GetLocalFileSize)( + IDWriteFontFaceReference1 *This); + + UINT64 (STDMETHODCALLTYPE *GetFileSize)( + IDWriteFontFaceReference1 *This); + + HRESULT (STDMETHODCALLTYPE *GetFileTime)( + IDWriteFontFaceReference1 *This, + FILETIME *writetime); + + DWRITE_LOCALITY (STDMETHODCALLTYPE *GetLocality)( + IDWriteFontFaceReference1 *This); + + HRESULT (STDMETHODCALLTYPE *EnqueueFontDownloadRequest)( + IDWriteFontFaceReference1 *This); + + HRESULT (STDMETHODCALLTYPE *EnqueueCharacterDownloadRequest)( + IDWriteFontFaceReference1 *This, + const WCHAR *chars, + UINT32 count); + + HRESULT (STDMETHODCALLTYPE *EnqueueGlyphDownloadRequest)( + IDWriteFontFaceReference1 *This, + const UINT16 *glyphs, + UINT32 count); + + HRESULT (STDMETHODCALLTYPE *EnqueueFileFragmentDownloadRequest)( + IDWriteFontFaceReference1 *This, + UINT64 offset, + UINT64 size); + + /*** IDWriteFontFaceReference1 methods ***/ + HRESULT (STDMETHODCALLTYPE *IDWriteFontFaceReference1_CreateFontFace)( + IDWriteFontFaceReference1 *This, + IDWriteFontFace5 **fontface); + + UINT32 (STDMETHODCALLTYPE *GetFontAxisValueCount)( + IDWriteFontFaceReference1 *This); + + HRESULT (STDMETHODCALLTYPE *GetFontAxisValues)( + IDWriteFontFaceReference1 *This, + DWRITE_FONT_AXIS_VALUE *values, + UINT32 num_values); + + END_INTERFACE +} IDWriteFontFaceReference1Vtbl; + +interface IDWriteFontFaceReference1 { + CONST_VTBL IDWriteFontFaceReference1Vtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDWriteFontFaceReference1_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteFontFaceReference1_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDWriteFontFaceReference1_Release(This) (This)->lpVtbl->Release(This) +/*** IDWriteFontFaceReference methods ***/ +#define IDWriteFontFaceReference1_CreateFontFaceWithSimulations(This,simulations,fontface) (This)->lpVtbl->CreateFontFaceWithSimulations(This,simulations,fontface) +#define IDWriteFontFaceReference1_Equals(This,reference) (This)->lpVtbl->Equals(This,reference) +#define IDWriteFontFaceReference1_GetFontFaceIndex(This) (This)->lpVtbl->GetFontFaceIndex(This) +#define IDWriteFontFaceReference1_GetSimulations(This) (This)->lpVtbl->GetSimulations(This) +#define IDWriteFontFaceReference1_GetFontFile(This,fontfile) (This)->lpVtbl->GetFontFile(This,fontfile) +#define IDWriteFontFaceReference1_GetLocalFileSize(This) (This)->lpVtbl->GetLocalFileSize(This) +#define IDWriteFontFaceReference1_GetFileSize(This) (This)->lpVtbl->GetFileSize(This) +#define IDWriteFontFaceReference1_GetFileTime(This,writetime) (This)->lpVtbl->GetFileTime(This,writetime) +#define IDWriteFontFaceReference1_GetLocality(This) (This)->lpVtbl->GetLocality(This) +#define IDWriteFontFaceReference1_EnqueueFontDownloadRequest(This) (This)->lpVtbl->EnqueueFontDownloadRequest(This) +#define IDWriteFontFaceReference1_EnqueueCharacterDownloadRequest(This,chars,count) (This)->lpVtbl->EnqueueCharacterDownloadRequest(This,chars,count) +#define IDWriteFontFaceReference1_EnqueueGlyphDownloadRequest(This,glyphs,count) (This)->lpVtbl->EnqueueGlyphDownloadRequest(This,glyphs,count) +#define IDWriteFontFaceReference1_EnqueueFileFragmentDownloadRequest(This,offset,size) (This)->lpVtbl->EnqueueFileFragmentDownloadRequest(This,offset,size) +/*** IDWriteFontFaceReference1 methods ***/ +#define IDWriteFontFaceReference1_CreateFontFace(This,fontface) (This)->lpVtbl->IDWriteFontFaceReference1_CreateFontFace(This,fontface) +#define IDWriteFontFaceReference1_GetFontAxisValueCount(This) (This)->lpVtbl->GetFontAxisValueCount(This) +#define IDWriteFontFaceReference1_GetFontAxisValues(This,values,num_values) (This)->lpVtbl->GetFontAxisValues(This,values,num_values) +#else +/*** IUnknown methods ***/ +static inline HRESULT IDWriteFontFaceReference1_QueryInterface(IDWriteFontFaceReference1* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static inline ULONG IDWriteFontFaceReference1_AddRef(IDWriteFontFaceReference1* This) { + return This->lpVtbl->AddRef(This); +} +static inline ULONG IDWriteFontFaceReference1_Release(IDWriteFontFaceReference1* This) { + return This->lpVtbl->Release(This); +} +/*** IDWriteFontFaceReference methods ***/ +static inline HRESULT IDWriteFontFaceReference1_CreateFontFaceWithSimulations(IDWriteFontFaceReference1* This,DWRITE_FONT_SIMULATIONS simulations,IDWriteFontFace3 **fontface) { + return This->lpVtbl->CreateFontFaceWithSimulations(This,simulations,fontface); +} +static inline WINBOOL IDWriteFontFaceReference1_Equals(IDWriteFontFaceReference1* This,IDWriteFontFaceReference *reference) { + return This->lpVtbl->Equals(This,reference); +} +static inline UINT32 IDWriteFontFaceReference1_GetFontFaceIndex(IDWriteFontFaceReference1* This) { + return This->lpVtbl->GetFontFaceIndex(This); +} +static inline DWRITE_FONT_SIMULATIONS IDWriteFontFaceReference1_GetSimulations(IDWriteFontFaceReference1* This) { + return This->lpVtbl->GetSimulations(This); +} +static inline HRESULT IDWriteFontFaceReference1_GetFontFile(IDWriteFontFaceReference1* This,IDWriteFontFile **fontfile) { + return This->lpVtbl->GetFontFile(This,fontfile); +} +static inline UINT64 IDWriteFontFaceReference1_GetLocalFileSize(IDWriteFontFaceReference1* This) { + return This->lpVtbl->GetLocalFileSize(This); +} +static inline UINT64 IDWriteFontFaceReference1_GetFileSize(IDWriteFontFaceReference1* This) { + return This->lpVtbl->GetFileSize(This); +} +static inline HRESULT IDWriteFontFaceReference1_GetFileTime(IDWriteFontFaceReference1* This,FILETIME *writetime) { + return This->lpVtbl->GetFileTime(This,writetime); +} +static inline DWRITE_LOCALITY IDWriteFontFaceReference1_GetLocality(IDWriteFontFaceReference1* This) { + return This->lpVtbl->GetLocality(This); +} +static inline HRESULT IDWriteFontFaceReference1_EnqueueFontDownloadRequest(IDWriteFontFaceReference1* This) { + return This->lpVtbl->EnqueueFontDownloadRequest(This); +} +static inline HRESULT IDWriteFontFaceReference1_EnqueueCharacterDownloadRequest(IDWriteFontFaceReference1* This,const WCHAR *chars,UINT32 count) { + return This->lpVtbl->EnqueueCharacterDownloadRequest(This,chars,count); +} +static inline HRESULT IDWriteFontFaceReference1_EnqueueGlyphDownloadRequest(IDWriteFontFaceReference1* This,const UINT16 *glyphs,UINT32 count) { + return This->lpVtbl->EnqueueGlyphDownloadRequest(This,glyphs,count); +} +static inline HRESULT IDWriteFontFaceReference1_EnqueueFileFragmentDownloadRequest(IDWriteFontFaceReference1* This,UINT64 offset,UINT64 size) { + return This->lpVtbl->EnqueueFileFragmentDownloadRequest(This,offset,size); +} +/*** IDWriteFontFaceReference1 methods ***/ +static inline HRESULT IDWriteFontFaceReference1_CreateFontFace(IDWriteFontFaceReference1* This,IDWriteFontFace5 **fontface) { + return This->lpVtbl->IDWriteFontFaceReference1_CreateFontFace(This,fontface); +} +static inline UINT32 IDWriteFontFaceReference1_GetFontAxisValueCount(IDWriteFontFaceReference1* This) { + return This->lpVtbl->GetFontAxisValueCount(This); +} +static inline HRESULT IDWriteFontFaceReference1_GetFontAxisValues(IDWriteFontFaceReference1* This,DWRITE_FONT_AXIS_VALUE *values,UINT32 num_values) { + return This->lpVtbl->GetFontAxisValues(This,values,num_values); +} +#endif +#endif + +#endif + + +#endif /* __IDWriteFontFaceReference1_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IDWriteFontList1 interface + */ +#ifndef __IDWriteFontList1_INTERFACE_DEFINED__ +#define __IDWriteFontList1_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDWriteFontList1, 0xda20d8ef, 0x812a, 0x4c43, 0x98,0x02, 0x62,0xec,0x4a,0xbd,0x7a,0xde); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("da20d8ef-812a-4c43-9802-62ec4abd7ade") +IDWriteFontList1 : public IDWriteFontList +{ + virtual DWRITE_LOCALITY STDMETHODCALLTYPE GetFontLocality( + UINT32 index) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetFont( + UINT32 index, + IDWriteFont3 **font) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetFontFaceReference( + UINT32 index, + IDWriteFontFaceReference **reference) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDWriteFontList1, 0xda20d8ef, 0x812a, 0x4c43, 0x98,0x02, 0x62,0xec,0x4a,0xbd,0x7a,0xde) +#endif +#else +typedef struct IDWriteFontList1Vtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDWriteFontList1 *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDWriteFontList1 *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDWriteFontList1 *This); + + /*** IDWriteFontList methods ***/ + HRESULT (STDMETHODCALLTYPE *GetFontCollection)( + IDWriteFontList1 *This, + IDWriteFontCollection **collection); + + UINT32 (STDMETHODCALLTYPE *GetFontCount)( + IDWriteFontList1 *This); + + HRESULT (STDMETHODCALLTYPE *GetFont)( + IDWriteFontList1 *This, + UINT32 index, + IDWriteFont **font); + + /*** IDWriteFontList1 methods ***/ + DWRITE_LOCALITY (STDMETHODCALLTYPE *GetFontLocality)( + IDWriteFontList1 *This, + UINT32 index); + + HRESULT (STDMETHODCALLTYPE *IDWriteFontList1_GetFont)( + IDWriteFontList1 *This, + UINT32 index, + IDWriteFont3 **font); + + HRESULT (STDMETHODCALLTYPE *GetFontFaceReference)( + IDWriteFontList1 *This, + UINT32 index, + IDWriteFontFaceReference **reference); + + END_INTERFACE +} IDWriteFontList1Vtbl; + +interface IDWriteFontList1 { + CONST_VTBL IDWriteFontList1Vtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDWriteFontList1_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteFontList1_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDWriteFontList1_Release(This) (This)->lpVtbl->Release(This) +/*** IDWriteFontList methods ***/ +#define IDWriteFontList1_GetFontCollection(This,collection) (This)->lpVtbl->GetFontCollection(This,collection) +#define IDWriteFontList1_GetFontCount(This) (This)->lpVtbl->GetFontCount(This) +/*** IDWriteFontList1 methods ***/ +#define IDWriteFontList1_GetFontLocality(This,index) (This)->lpVtbl->GetFontLocality(This,index) +#define IDWriteFontList1_GetFont(This,index,font) (This)->lpVtbl->IDWriteFontList1_GetFont(This,index,font) +#define IDWriteFontList1_GetFontFaceReference(This,index,reference) (This)->lpVtbl->GetFontFaceReference(This,index,reference) +#else +/*** IUnknown methods ***/ +static inline HRESULT IDWriteFontList1_QueryInterface(IDWriteFontList1* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static inline ULONG IDWriteFontList1_AddRef(IDWriteFontList1* This) { + return This->lpVtbl->AddRef(This); +} +static inline ULONG IDWriteFontList1_Release(IDWriteFontList1* This) { + return This->lpVtbl->Release(This); +} +/*** IDWriteFontList methods ***/ +static inline HRESULT IDWriteFontList1_GetFontCollection(IDWriteFontList1* This,IDWriteFontCollection **collection) { + return This->lpVtbl->GetFontCollection(This,collection); +} +static inline UINT32 IDWriteFontList1_GetFontCount(IDWriteFontList1* This) { + return This->lpVtbl->GetFontCount(This); +} +/*** IDWriteFontList1 methods ***/ +static inline DWRITE_LOCALITY IDWriteFontList1_GetFontLocality(IDWriteFontList1* This,UINT32 index) { + return This->lpVtbl->GetFontLocality(This,index); +} +static inline HRESULT IDWriteFontList1_GetFont(IDWriteFontList1* This,UINT32 index,IDWriteFont3 **font) { + return This->lpVtbl->IDWriteFontList1_GetFont(This,index,font); +} +static inline HRESULT IDWriteFontList1_GetFontFaceReference(IDWriteFontList1* This,UINT32 index,IDWriteFontFaceReference **reference) { + return This->lpVtbl->GetFontFaceReference(This,index,reference); +} +#endif +#endif + +#endif + + +#endif /* __IDWriteFontList1_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IDWriteFontList2 interface + */ +#ifndef __IDWriteFontList2_INTERFACE_DEFINED__ +#define __IDWriteFontList2_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDWriteFontList2, 0xc0763a34, 0x77af, 0x445a, 0xb7,0x35, 0x08,0xc3,0x7b,0x0a,0x5b,0xf5); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("c0763a34-77af-445a-b735-08c37b0a5bf5") +IDWriteFontList2 : public IDWriteFontList1 +{ + virtual HRESULT STDMETHODCALLTYPE GetFontSet( + IDWriteFontSet1 **fontset) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDWriteFontList2, 0xc0763a34, 0x77af, 0x445a, 0xb7,0x35, 0x08,0xc3,0x7b,0x0a,0x5b,0xf5) +#endif +#else +typedef struct IDWriteFontList2Vtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDWriteFontList2 *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDWriteFontList2 *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDWriteFontList2 *This); + + /*** IDWriteFontList methods ***/ + HRESULT (STDMETHODCALLTYPE *GetFontCollection)( + IDWriteFontList2 *This, + IDWriteFontCollection **collection); + + UINT32 (STDMETHODCALLTYPE *GetFontCount)( + IDWriteFontList2 *This); + + HRESULT (STDMETHODCALLTYPE *GetFont)( + IDWriteFontList2 *This, + UINT32 index, + IDWriteFont **font); + + /*** IDWriteFontList1 methods ***/ + DWRITE_LOCALITY (STDMETHODCALLTYPE *GetFontLocality)( + IDWriteFontList2 *This, + UINT32 index); + + HRESULT (STDMETHODCALLTYPE *IDWriteFontList1_GetFont)( + IDWriteFontList2 *This, + UINT32 index, + IDWriteFont3 **font); + + HRESULT (STDMETHODCALLTYPE *GetFontFaceReference)( + IDWriteFontList2 *This, + UINT32 index, + IDWriteFontFaceReference **reference); + + /*** IDWriteFontList2 methods ***/ + HRESULT (STDMETHODCALLTYPE *GetFontSet)( + IDWriteFontList2 *This, + IDWriteFontSet1 **fontset); + + END_INTERFACE +} IDWriteFontList2Vtbl; + +interface IDWriteFontList2 { + CONST_VTBL IDWriteFontList2Vtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDWriteFontList2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteFontList2_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDWriteFontList2_Release(This) (This)->lpVtbl->Release(This) +/*** IDWriteFontList methods ***/ +#define IDWriteFontList2_GetFontCollection(This,collection) (This)->lpVtbl->GetFontCollection(This,collection) +#define IDWriteFontList2_GetFontCount(This) (This)->lpVtbl->GetFontCount(This) +/*** IDWriteFontList1 methods ***/ +#define IDWriteFontList2_GetFontLocality(This,index) (This)->lpVtbl->GetFontLocality(This,index) +#define IDWriteFontList2_GetFont(This,index,font) (This)->lpVtbl->IDWriteFontList1_GetFont(This,index,font) +#define IDWriteFontList2_GetFontFaceReference(This,index,reference) (This)->lpVtbl->GetFontFaceReference(This,index,reference) +/*** IDWriteFontList2 methods ***/ +#define IDWriteFontList2_GetFontSet(This,fontset) (This)->lpVtbl->GetFontSet(This,fontset) +#else +/*** IUnknown methods ***/ +static inline HRESULT IDWriteFontList2_QueryInterface(IDWriteFontList2* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static inline ULONG IDWriteFontList2_AddRef(IDWriteFontList2* This) { + return This->lpVtbl->AddRef(This); +} +static inline ULONG IDWriteFontList2_Release(IDWriteFontList2* This) { + return This->lpVtbl->Release(This); +} +/*** IDWriteFontList methods ***/ +static inline HRESULT IDWriteFontList2_GetFontCollection(IDWriteFontList2* This,IDWriteFontCollection **collection) { + return This->lpVtbl->GetFontCollection(This,collection); +} +static inline UINT32 IDWriteFontList2_GetFontCount(IDWriteFontList2* This) { + return This->lpVtbl->GetFontCount(This); +} +/*** IDWriteFontList1 methods ***/ +static inline DWRITE_LOCALITY IDWriteFontList2_GetFontLocality(IDWriteFontList2* This,UINT32 index) { + return This->lpVtbl->GetFontLocality(This,index); +} +static inline HRESULT IDWriteFontList2_GetFont(IDWriteFontList2* This,UINT32 index,IDWriteFont3 **font) { + return This->lpVtbl->IDWriteFontList1_GetFont(This,index,font); +} +static inline HRESULT IDWriteFontList2_GetFontFaceReference(IDWriteFontList2* This,UINT32 index,IDWriteFontFaceReference **reference) { + return This->lpVtbl->GetFontFaceReference(This,index,reference); +} +/*** IDWriteFontList2 methods ***/ +static inline HRESULT IDWriteFontList2_GetFontSet(IDWriteFontList2* This,IDWriteFontSet1 **fontset) { + return This->lpVtbl->GetFontSet(This,fontset); +} +#endif +#endif + +#endif + + +#endif /* __IDWriteFontList2_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IDWriteFontSet2 interface + */ +#ifndef __IDWriteFontSet2_INTERFACE_DEFINED__ +#define __IDWriteFontSet2_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDWriteFontSet2, 0xdc7ead19, 0xe54c, 0x43af, 0xb2,0xda, 0x4e,0x2b,0x79,0xba,0x3f,0x7f); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("dc7ead19-e54c-43af-b2da-4e2b79ba3f7f") +IDWriteFontSet2 : public IDWriteFontSet1 +{ + virtual HANDLE STDMETHODCALLTYPE GetExpirationEvent( + ) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDWriteFontSet2, 0xdc7ead19, 0xe54c, 0x43af, 0xb2,0xda, 0x4e,0x2b,0x79,0xba,0x3f,0x7f) +#endif +#else +typedef struct IDWriteFontSet2Vtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDWriteFontSet2 *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDWriteFontSet2 *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDWriteFontSet2 *This); + + /*** IDWriteFontSet methods ***/ + UINT32 (STDMETHODCALLTYPE *GetFontCount)( + IDWriteFontSet2 *This); + + HRESULT (STDMETHODCALLTYPE *GetFontFaceReference)( + IDWriteFontSet2 *This, + UINT32 index, + IDWriteFontFaceReference **reference); + + HRESULT (STDMETHODCALLTYPE *FindFontFaceReference)( + IDWriteFontSet2 *This, + IDWriteFontFaceReference *reference, + UINT32 *index, + WINBOOL *exists); + + HRESULT (STDMETHODCALLTYPE *FindFontFace)( + IDWriteFontSet2 *This, + IDWriteFontFace *fontface, + UINT32 *index, + WINBOOL *exists); + + HRESULT (STDMETHODCALLTYPE *GetPropertyValues__)( + IDWriteFontSet2 *This, + DWRITE_FONT_PROPERTY_ID id, + IDWriteStringList **values); + + HRESULT (STDMETHODCALLTYPE *GetPropertyValues_)( + IDWriteFontSet2 *This, + DWRITE_FONT_PROPERTY_ID id, + const WCHAR *preferred_locales, + IDWriteStringList **values); + + HRESULT (STDMETHODCALLTYPE *GetPropertyValues)( + IDWriteFontSet2 *This, + UINT32 index, + DWRITE_FONT_PROPERTY_ID id, + WINBOOL *exists, + IDWriteLocalizedStrings **values); + + HRESULT (STDMETHODCALLTYPE *GetPropertyOccurrenceCount)( + IDWriteFontSet2 *This, + const DWRITE_FONT_PROPERTY *property, + UINT32 *count); + + HRESULT (STDMETHODCALLTYPE *GetMatchingFonts_)( + IDWriteFontSet2 *This, + const WCHAR *family, + DWRITE_FONT_WEIGHT weight, + DWRITE_FONT_STRETCH stretch, + DWRITE_FONT_STYLE style, + IDWriteFontSet **fontset); + + HRESULT (STDMETHODCALLTYPE *GetMatchingFonts)( + IDWriteFontSet2 *This, + const DWRITE_FONT_PROPERTY *props, + UINT32 count, + IDWriteFontSet **fontset); + + /*** IDWriteFontSet1 methods ***/ + HRESULT (STDMETHODCALLTYPE *IDWriteFontSet1_GetMatchingFonts)( + IDWriteFontSet2 *This, + const DWRITE_FONT_PROPERTY *property, + const DWRITE_FONT_AXIS_VALUE *axis_values, + UINT32 num_values, + IDWriteFontSet1 **fontset); + + HRESULT (STDMETHODCALLTYPE *GetFirstFontResources)( + IDWriteFontSet2 *This, + IDWriteFontSet1 **fontset); + + HRESULT (STDMETHODCALLTYPE *GetFilteredFonts__)( + IDWriteFontSet2 *This, + const UINT32 *indices, + UINT32 num_indices, + IDWriteFontSet1 **fontset); + + HRESULT (STDMETHODCALLTYPE *GetFilteredFonts_)( + IDWriteFontSet2 *This, + const DWRITE_FONT_AXIS_RANGE *axis_ranges, + UINT32 num_ranges, + WINBOOL select_any_range, + IDWriteFontSet1 **fontset); + + HRESULT (STDMETHODCALLTYPE *GetFilteredFonts)( + IDWriteFontSet2 *This, + const DWRITE_FONT_PROPERTY *props, + UINT32 num_properties, + WINBOOL select_any_property, + IDWriteFontSet1 **fontset); + + HRESULT (STDMETHODCALLTYPE *GetFilteredFontIndices_)( + IDWriteFontSet2 *This, + const DWRITE_FONT_AXIS_RANGE *ranges, + UINT32 num_ranges, + WINBOOL select_any_range, + UINT32 *indices, + UINT32 num_indices, + UINT32 *actual_num_indices); + + HRESULT (STDMETHODCALLTYPE *GetFilteredFontIndices)( + IDWriteFontSet2 *This, + const DWRITE_FONT_PROPERTY *props, + UINT32 num_properties, + WINBOOL select_any_range, + UINT32 *indices, + UINT32 num_indices, + UINT32 *actual_num_indices); + + HRESULT (STDMETHODCALLTYPE *GetFontAxisRanges_)( + IDWriteFontSet2 *This, + UINT32 font_index, + DWRITE_FONT_AXIS_RANGE *axis_ranges, + UINT32 num_ranges, + UINT32 *actual_num_ranges); + + HRESULT (STDMETHODCALLTYPE *GetFontAxisRanges)( + IDWriteFontSet2 *This, + DWRITE_FONT_AXIS_RANGE *axis_ranges, + UINT32 num_ranges, + UINT32 *actual_num_ranges); + + HRESULT (STDMETHODCALLTYPE *IDWriteFontSet1_GetFontFaceReference)( + IDWriteFontSet2 *This, + UINT32 index, + IDWriteFontFaceReference1 **reference); + + HRESULT (STDMETHODCALLTYPE *CreateFontResource)( + IDWriteFontSet2 *This, + UINT32 index, + IDWriteFontResource **resource); + + HRESULT (STDMETHODCALLTYPE *CreateFontFace)( + IDWriteFontSet2 *This, + UINT32 index, + IDWriteFontFace5 **fontface); + + DWRITE_LOCALITY (STDMETHODCALLTYPE *GetFontLocality)( + IDWriteFontSet2 *This, + UINT32 index); + + /*** IDWriteFontSet2 methods ***/ + HANDLE (STDMETHODCALLTYPE *GetExpirationEvent)( + IDWriteFontSet2 *This); + + END_INTERFACE +} IDWriteFontSet2Vtbl; + +interface IDWriteFontSet2 { + CONST_VTBL IDWriteFontSet2Vtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDWriteFontSet2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteFontSet2_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDWriteFontSet2_Release(This) (This)->lpVtbl->Release(This) +/*** IDWriteFontSet methods ***/ +#define IDWriteFontSet2_GetFontCount(This) (This)->lpVtbl->GetFontCount(This) +#define IDWriteFontSet2_FindFontFaceReference(This,reference,index,exists) (This)->lpVtbl->FindFontFaceReference(This,reference,index,exists) +#define IDWriteFontSet2_FindFontFace(This,fontface,index,exists) (This)->lpVtbl->FindFontFace(This,fontface,index,exists) +#define IDWriteFontSet2_GetPropertyValues__(This,id,values) (This)->lpVtbl->GetPropertyValues__(This,id,values) +#define IDWriteFontSet2_GetPropertyValues_(This,id,preferred_locales,values) (This)->lpVtbl->GetPropertyValues_(This,id,preferred_locales,values) +#define IDWriteFontSet2_GetPropertyValues(This,index,id,exists,values) (This)->lpVtbl->GetPropertyValues(This,index,id,exists,values) +#define IDWriteFontSet2_GetPropertyOccurrenceCount(This,property,count) (This)->lpVtbl->GetPropertyOccurrenceCount(This,property,count) +#define IDWriteFontSet2_GetMatchingFonts_(This,family,weight,stretch,style,fontset) (This)->lpVtbl->GetMatchingFonts_(This,family,weight,stretch,style,fontset) +/*** IDWriteFontSet1 methods ***/ +#define IDWriteFontSet2_GetMatchingFonts(This,property,axis_values,num_values,fontset) (This)->lpVtbl->IDWriteFontSet1_GetMatchingFonts(This,property,axis_values,num_values,fontset) +#define IDWriteFontSet2_GetFirstFontResources(This,fontset) (This)->lpVtbl->GetFirstFontResources(This,fontset) +#define IDWriteFontSet2_GetFilteredFonts__(This,indices,num_indices,fontset) (This)->lpVtbl->GetFilteredFonts__(This,indices,num_indices,fontset) +#define IDWriteFontSet2_GetFilteredFonts_(This,axis_ranges,num_ranges,select_any_range,fontset) (This)->lpVtbl->GetFilteredFonts_(This,axis_ranges,num_ranges,select_any_range,fontset) +#define IDWriteFontSet2_GetFilteredFonts(This,props,num_properties,select_any_property,fontset) (This)->lpVtbl->GetFilteredFonts(This,props,num_properties,select_any_property,fontset) +#define IDWriteFontSet2_GetFilteredFontIndices_(This,ranges,num_ranges,select_any_range,indices,num_indices,actual_num_indices) (This)->lpVtbl->GetFilteredFontIndices_(This,ranges,num_ranges,select_any_range,indices,num_indices,actual_num_indices) +#define IDWriteFontSet2_GetFilteredFontIndices(This,props,num_properties,select_any_range,indices,num_indices,actual_num_indices) (This)->lpVtbl->GetFilteredFontIndices(This,props,num_properties,select_any_range,indices,num_indices,actual_num_indices) +#define IDWriteFontSet2_GetFontAxisRanges_(This,font_index,axis_ranges,num_ranges,actual_num_ranges) (This)->lpVtbl->GetFontAxisRanges_(This,font_index,axis_ranges,num_ranges,actual_num_ranges) +#define IDWriteFontSet2_GetFontAxisRanges(This,axis_ranges,num_ranges,actual_num_ranges) (This)->lpVtbl->GetFontAxisRanges(This,axis_ranges,num_ranges,actual_num_ranges) +#define IDWriteFontSet2_GetFontFaceReference(This,index,reference) (This)->lpVtbl->IDWriteFontSet1_GetFontFaceReference(This,index,reference) +#define IDWriteFontSet2_CreateFontResource(This,index,resource) (This)->lpVtbl->CreateFontResource(This,index,resource) +#define IDWriteFontSet2_CreateFontFace(This,index,fontface) (This)->lpVtbl->CreateFontFace(This,index,fontface) +#define IDWriteFontSet2_GetFontLocality(This,index) (This)->lpVtbl->GetFontLocality(This,index) +/*** IDWriteFontSet2 methods ***/ +#define IDWriteFontSet2_GetExpirationEvent(This) (This)->lpVtbl->GetExpirationEvent(This) +#else +/*** IUnknown methods ***/ +static inline HRESULT IDWriteFontSet2_QueryInterface(IDWriteFontSet2* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static inline ULONG IDWriteFontSet2_AddRef(IDWriteFontSet2* This) { + return This->lpVtbl->AddRef(This); +} +static inline ULONG IDWriteFontSet2_Release(IDWriteFontSet2* This) { + return This->lpVtbl->Release(This); +} +/*** IDWriteFontSet methods ***/ +static inline UINT32 IDWriteFontSet2_GetFontCount(IDWriteFontSet2* This) { + return This->lpVtbl->GetFontCount(This); +} +static inline HRESULT IDWriteFontSet2_FindFontFaceReference(IDWriteFontSet2* This,IDWriteFontFaceReference *reference,UINT32 *index,WINBOOL *exists) { + return This->lpVtbl->FindFontFaceReference(This,reference,index,exists); +} +static inline HRESULT IDWriteFontSet2_FindFontFace(IDWriteFontSet2* This,IDWriteFontFace *fontface,UINT32 *index,WINBOOL *exists) { + return This->lpVtbl->FindFontFace(This,fontface,index,exists); +} +static inline HRESULT IDWriteFontSet2_GetPropertyValues__(IDWriteFontSet2* This,DWRITE_FONT_PROPERTY_ID id,IDWriteStringList **values) { + return This->lpVtbl->GetPropertyValues__(This,id,values); +} +static inline HRESULT IDWriteFontSet2_GetPropertyValues_(IDWriteFontSet2* This,DWRITE_FONT_PROPERTY_ID id,const WCHAR *preferred_locales,IDWriteStringList **values) { + return This->lpVtbl->GetPropertyValues_(This,id,preferred_locales,values); +} +static inline HRESULT IDWriteFontSet2_GetPropertyValues(IDWriteFontSet2* This,UINT32 index,DWRITE_FONT_PROPERTY_ID id,WINBOOL *exists,IDWriteLocalizedStrings **values) { + return This->lpVtbl->GetPropertyValues(This,index,id,exists,values); +} +static inline HRESULT IDWriteFontSet2_GetPropertyOccurrenceCount(IDWriteFontSet2* This,const DWRITE_FONT_PROPERTY *property,UINT32 *count) { + return This->lpVtbl->GetPropertyOccurrenceCount(This,property,count); +} +static inline HRESULT IDWriteFontSet2_GetMatchingFonts_(IDWriteFontSet2* This,const WCHAR *family,DWRITE_FONT_WEIGHT weight,DWRITE_FONT_STRETCH stretch,DWRITE_FONT_STYLE style,IDWriteFontSet **fontset) { + return This->lpVtbl->GetMatchingFonts_(This,family,weight,stretch,style,fontset); +} +/*** IDWriteFontSet1 methods ***/ +static inline HRESULT IDWriteFontSet2_GetMatchingFonts(IDWriteFontSet2* This,const DWRITE_FONT_PROPERTY *property,const DWRITE_FONT_AXIS_VALUE *axis_values,UINT32 num_values,IDWriteFontSet1 **fontset) { + return This->lpVtbl->IDWriteFontSet1_GetMatchingFonts(This,property,axis_values,num_values,fontset); +} +static inline HRESULT IDWriteFontSet2_GetFirstFontResources(IDWriteFontSet2* This,IDWriteFontSet1 **fontset) { + return This->lpVtbl->GetFirstFontResources(This,fontset); +} +static inline HRESULT IDWriteFontSet2_GetFilteredFonts__(IDWriteFontSet2* This,const UINT32 *indices,UINT32 num_indices,IDWriteFontSet1 **fontset) { + return This->lpVtbl->GetFilteredFonts__(This,indices,num_indices,fontset); +} +static inline HRESULT IDWriteFontSet2_GetFilteredFonts_(IDWriteFontSet2* This,const DWRITE_FONT_AXIS_RANGE *axis_ranges,UINT32 num_ranges,WINBOOL select_any_range,IDWriteFontSet1 **fontset) { + return This->lpVtbl->GetFilteredFonts_(This,axis_ranges,num_ranges,select_any_range,fontset); +} +static inline HRESULT IDWriteFontSet2_GetFilteredFonts(IDWriteFontSet2* This,const DWRITE_FONT_PROPERTY *props,UINT32 num_properties,WINBOOL select_any_property,IDWriteFontSet1 **fontset) { + return This->lpVtbl->GetFilteredFonts(This,props,num_properties,select_any_property,fontset); +} +static inline HRESULT IDWriteFontSet2_GetFilteredFontIndices_(IDWriteFontSet2* This,const DWRITE_FONT_AXIS_RANGE *ranges,UINT32 num_ranges,WINBOOL select_any_range,UINT32 *indices,UINT32 num_indices,UINT32 *actual_num_indices) { + return This->lpVtbl->GetFilteredFontIndices_(This,ranges,num_ranges,select_any_range,indices,num_indices,actual_num_indices); +} +static inline HRESULT IDWriteFontSet2_GetFilteredFontIndices(IDWriteFontSet2* This,const DWRITE_FONT_PROPERTY *props,UINT32 num_properties,WINBOOL select_any_range,UINT32 *indices,UINT32 num_indices,UINT32 *actual_num_indices) { + return This->lpVtbl->GetFilteredFontIndices(This,props,num_properties,select_any_range,indices,num_indices,actual_num_indices); +} +static inline HRESULT IDWriteFontSet2_GetFontAxisRanges_(IDWriteFontSet2* This,UINT32 font_index,DWRITE_FONT_AXIS_RANGE *axis_ranges,UINT32 num_ranges,UINT32 *actual_num_ranges) { + return This->lpVtbl->GetFontAxisRanges_(This,font_index,axis_ranges,num_ranges,actual_num_ranges); +} +static inline HRESULT IDWriteFontSet2_GetFontAxisRanges(IDWriteFontSet2* This,DWRITE_FONT_AXIS_RANGE *axis_ranges,UINT32 num_ranges,UINT32 *actual_num_ranges) { + return This->lpVtbl->GetFontAxisRanges(This,axis_ranges,num_ranges,actual_num_ranges); +} +static inline HRESULT IDWriteFontSet2_GetFontFaceReference(IDWriteFontSet2* This,UINT32 index,IDWriteFontFaceReference1 **reference) { + return This->lpVtbl->IDWriteFontSet1_GetFontFaceReference(This,index,reference); +} +static inline HRESULT IDWriteFontSet2_CreateFontResource(IDWriteFontSet2* This,UINT32 index,IDWriteFontResource **resource) { + return This->lpVtbl->CreateFontResource(This,index,resource); +} +static inline HRESULT IDWriteFontSet2_CreateFontFace(IDWriteFontSet2* This,UINT32 index,IDWriteFontFace5 **fontface) { + return This->lpVtbl->CreateFontFace(This,index,fontface); +} +static inline DWRITE_LOCALITY IDWriteFontSet2_GetFontLocality(IDWriteFontSet2* This,UINT32 index) { + return This->lpVtbl->GetFontLocality(This,index); +} +/*** IDWriteFontSet2 methods ***/ +static inline HANDLE IDWriteFontSet2_GetExpirationEvent(IDWriteFontSet2* This) { + return This->lpVtbl->GetExpirationEvent(This); +} +#endif +#endif + +#endif + + +#endif /* __IDWriteFontSet2_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IDWriteFontSet3 interface + */ +#ifndef __IDWriteFontSet3_INTERFACE_DEFINED__ +#define __IDWriteFontSet3_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDWriteFontSet3, 0x7c073ef2, 0xa7f4, 0x4045, 0x8c,0x32, 0x8a,0xb8,0xae,0x64,0x0f,0x90); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("7c073ef2-a7f4-4045-8c32-8ab8ae640f90") +IDWriteFontSet3 : public IDWriteFontSet2 +{ + virtual DWRITE_FONT_SOURCE_TYPE STDMETHODCALLTYPE GetFontSourceType( + UINT32 index) = 0; + + virtual UINT32 STDMETHODCALLTYPE GetFontSourceNameLength( + UINT32 index) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetFontSourceName( + UINT32 index, + WCHAR *buffer, + UINT32 buffer_size) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDWriteFontSet3, 0x7c073ef2, 0xa7f4, 0x4045, 0x8c,0x32, 0x8a,0xb8,0xae,0x64,0x0f,0x90) +#endif +#else +typedef struct IDWriteFontSet3Vtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDWriteFontSet3 *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDWriteFontSet3 *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDWriteFontSet3 *This); + + /*** IDWriteFontSet methods ***/ + UINT32 (STDMETHODCALLTYPE *GetFontCount)( + IDWriteFontSet3 *This); + + HRESULT (STDMETHODCALLTYPE *GetFontFaceReference)( + IDWriteFontSet3 *This, + UINT32 index, + IDWriteFontFaceReference **reference); + + HRESULT (STDMETHODCALLTYPE *FindFontFaceReference)( + IDWriteFontSet3 *This, + IDWriteFontFaceReference *reference, + UINT32 *index, + WINBOOL *exists); + + HRESULT (STDMETHODCALLTYPE *FindFontFace)( + IDWriteFontSet3 *This, + IDWriteFontFace *fontface, + UINT32 *index, + WINBOOL *exists); + + HRESULT (STDMETHODCALLTYPE *GetPropertyValues__)( + IDWriteFontSet3 *This, + DWRITE_FONT_PROPERTY_ID id, + IDWriteStringList **values); + + HRESULT (STDMETHODCALLTYPE *GetPropertyValues_)( + IDWriteFontSet3 *This, + DWRITE_FONT_PROPERTY_ID id, + const WCHAR *preferred_locales, + IDWriteStringList **values); + + HRESULT (STDMETHODCALLTYPE *GetPropertyValues)( + IDWriteFontSet3 *This, + UINT32 index, + DWRITE_FONT_PROPERTY_ID id, + WINBOOL *exists, + IDWriteLocalizedStrings **values); + + HRESULT (STDMETHODCALLTYPE *GetPropertyOccurrenceCount)( + IDWriteFontSet3 *This, + const DWRITE_FONT_PROPERTY *property, + UINT32 *count); + + HRESULT (STDMETHODCALLTYPE *GetMatchingFonts_)( + IDWriteFontSet3 *This, + const WCHAR *family, + DWRITE_FONT_WEIGHT weight, + DWRITE_FONT_STRETCH stretch, + DWRITE_FONT_STYLE style, + IDWriteFontSet **fontset); + + HRESULT (STDMETHODCALLTYPE *GetMatchingFonts)( + IDWriteFontSet3 *This, + const DWRITE_FONT_PROPERTY *props, + UINT32 count, + IDWriteFontSet **fontset); + + /*** IDWriteFontSet1 methods ***/ + HRESULT (STDMETHODCALLTYPE *IDWriteFontSet1_GetMatchingFonts)( + IDWriteFontSet3 *This, + const DWRITE_FONT_PROPERTY *property, + const DWRITE_FONT_AXIS_VALUE *axis_values, + UINT32 num_values, + IDWriteFontSet1 **fontset); + + HRESULT (STDMETHODCALLTYPE *GetFirstFontResources)( + IDWriteFontSet3 *This, + IDWriteFontSet1 **fontset); + + HRESULT (STDMETHODCALLTYPE *GetFilteredFonts__)( + IDWriteFontSet3 *This, + const UINT32 *indices, + UINT32 num_indices, + IDWriteFontSet1 **fontset); + + HRESULT (STDMETHODCALLTYPE *GetFilteredFonts_)( + IDWriteFontSet3 *This, + const DWRITE_FONT_AXIS_RANGE *axis_ranges, + UINT32 num_ranges, + WINBOOL select_any_range, + IDWriteFontSet1 **fontset); + + HRESULT (STDMETHODCALLTYPE *GetFilteredFonts)( + IDWriteFontSet3 *This, + const DWRITE_FONT_PROPERTY *props, + UINT32 num_properties, + WINBOOL select_any_property, + IDWriteFontSet1 **fontset); + + HRESULT (STDMETHODCALLTYPE *GetFilteredFontIndices_)( + IDWriteFontSet3 *This, + const DWRITE_FONT_AXIS_RANGE *ranges, + UINT32 num_ranges, + WINBOOL select_any_range, + UINT32 *indices, + UINT32 num_indices, + UINT32 *actual_num_indices); + + HRESULT (STDMETHODCALLTYPE *GetFilteredFontIndices)( + IDWriteFontSet3 *This, + const DWRITE_FONT_PROPERTY *props, + UINT32 num_properties, + WINBOOL select_any_range, + UINT32 *indices, + UINT32 num_indices, + UINT32 *actual_num_indices); + + HRESULT (STDMETHODCALLTYPE *GetFontAxisRanges_)( + IDWriteFontSet3 *This, + UINT32 font_index, + DWRITE_FONT_AXIS_RANGE *axis_ranges, + UINT32 num_ranges, + UINT32 *actual_num_ranges); + + HRESULT (STDMETHODCALLTYPE *GetFontAxisRanges)( + IDWriteFontSet3 *This, + DWRITE_FONT_AXIS_RANGE *axis_ranges, + UINT32 num_ranges, + UINT32 *actual_num_ranges); + + HRESULT (STDMETHODCALLTYPE *IDWriteFontSet1_GetFontFaceReference)( + IDWriteFontSet3 *This, + UINT32 index, + IDWriteFontFaceReference1 **reference); + + HRESULT (STDMETHODCALLTYPE *CreateFontResource)( + IDWriteFontSet3 *This, + UINT32 index, + IDWriteFontResource **resource); + + HRESULT (STDMETHODCALLTYPE *CreateFontFace)( + IDWriteFontSet3 *This, + UINT32 index, + IDWriteFontFace5 **fontface); + + DWRITE_LOCALITY (STDMETHODCALLTYPE *GetFontLocality)( + IDWriteFontSet3 *This, + UINT32 index); + + /*** IDWriteFontSet2 methods ***/ + HANDLE (STDMETHODCALLTYPE *GetExpirationEvent)( + IDWriteFontSet3 *This); + + /*** IDWriteFontSet3 methods ***/ + DWRITE_FONT_SOURCE_TYPE (STDMETHODCALLTYPE *GetFontSourceType)( + IDWriteFontSet3 *This, + UINT32 index); + + UINT32 (STDMETHODCALLTYPE *GetFontSourceNameLength)( + IDWriteFontSet3 *This, + UINT32 index); + + HRESULT (STDMETHODCALLTYPE *GetFontSourceName)( + IDWriteFontSet3 *This, + UINT32 index, + WCHAR *buffer, + UINT32 buffer_size); + + END_INTERFACE +} IDWriteFontSet3Vtbl; + +interface IDWriteFontSet3 { + CONST_VTBL IDWriteFontSet3Vtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDWriteFontSet3_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteFontSet3_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDWriteFontSet3_Release(This) (This)->lpVtbl->Release(This) +/*** IDWriteFontSet methods ***/ +#define IDWriteFontSet3_GetFontCount(This) (This)->lpVtbl->GetFontCount(This) +#define IDWriteFontSet3_FindFontFaceReference(This,reference,index,exists) (This)->lpVtbl->FindFontFaceReference(This,reference,index,exists) +#define IDWriteFontSet3_FindFontFace(This,fontface,index,exists) (This)->lpVtbl->FindFontFace(This,fontface,index,exists) +#define IDWriteFontSet3_GetPropertyValues__(This,id,values) (This)->lpVtbl->GetPropertyValues__(This,id,values) +#define IDWriteFontSet3_GetPropertyValues_(This,id,preferred_locales,values) (This)->lpVtbl->GetPropertyValues_(This,id,preferred_locales,values) +#define IDWriteFontSet3_GetPropertyValues(This,index,id,exists,values) (This)->lpVtbl->GetPropertyValues(This,index,id,exists,values) +#define IDWriteFontSet3_GetPropertyOccurrenceCount(This,property,count) (This)->lpVtbl->GetPropertyOccurrenceCount(This,property,count) +#define IDWriteFontSet3_GetMatchingFonts_(This,family,weight,stretch,style,fontset) (This)->lpVtbl->GetMatchingFonts_(This,family,weight,stretch,style,fontset) +/*** IDWriteFontSet1 methods ***/ +#define IDWriteFontSet3_GetMatchingFonts(This,property,axis_values,num_values,fontset) (This)->lpVtbl->IDWriteFontSet1_GetMatchingFonts(This,property,axis_values,num_values,fontset) +#define IDWriteFontSet3_GetFirstFontResources(This,fontset) (This)->lpVtbl->GetFirstFontResources(This,fontset) +#define IDWriteFontSet3_GetFilteredFonts__(This,indices,num_indices,fontset) (This)->lpVtbl->GetFilteredFonts__(This,indices,num_indices,fontset) +#define IDWriteFontSet3_GetFilteredFonts_(This,axis_ranges,num_ranges,select_any_range,fontset) (This)->lpVtbl->GetFilteredFonts_(This,axis_ranges,num_ranges,select_any_range,fontset) +#define IDWriteFontSet3_GetFilteredFonts(This,props,num_properties,select_any_property,fontset) (This)->lpVtbl->GetFilteredFonts(This,props,num_properties,select_any_property,fontset) +#define IDWriteFontSet3_GetFilteredFontIndices_(This,ranges,num_ranges,select_any_range,indices,num_indices,actual_num_indices) (This)->lpVtbl->GetFilteredFontIndices_(This,ranges,num_ranges,select_any_range,indices,num_indices,actual_num_indices) +#define IDWriteFontSet3_GetFilteredFontIndices(This,props,num_properties,select_any_range,indices,num_indices,actual_num_indices) (This)->lpVtbl->GetFilteredFontIndices(This,props,num_properties,select_any_range,indices,num_indices,actual_num_indices) +#define IDWriteFontSet3_GetFontAxisRanges_(This,font_index,axis_ranges,num_ranges,actual_num_ranges) (This)->lpVtbl->GetFontAxisRanges_(This,font_index,axis_ranges,num_ranges,actual_num_ranges) +#define IDWriteFontSet3_GetFontAxisRanges(This,axis_ranges,num_ranges,actual_num_ranges) (This)->lpVtbl->GetFontAxisRanges(This,axis_ranges,num_ranges,actual_num_ranges) +#define IDWriteFontSet3_GetFontFaceReference(This,index,reference) (This)->lpVtbl->IDWriteFontSet1_GetFontFaceReference(This,index,reference) +#define IDWriteFontSet3_CreateFontResource(This,index,resource) (This)->lpVtbl->CreateFontResource(This,index,resource) +#define IDWriteFontSet3_CreateFontFace(This,index,fontface) (This)->lpVtbl->CreateFontFace(This,index,fontface) +#define IDWriteFontSet3_GetFontLocality(This,index) (This)->lpVtbl->GetFontLocality(This,index) +/*** IDWriteFontSet2 methods ***/ +#define IDWriteFontSet3_GetExpirationEvent(This) (This)->lpVtbl->GetExpirationEvent(This) +/*** IDWriteFontSet3 methods ***/ +#define IDWriteFontSet3_GetFontSourceType(This,index) (This)->lpVtbl->GetFontSourceType(This,index) +#define IDWriteFontSet3_GetFontSourceNameLength(This,index) (This)->lpVtbl->GetFontSourceNameLength(This,index) +#define IDWriteFontSet3_GetFontSourceName(This,index,buffer,buffer_size) (This)->lpVtbl->GetFontSourceName(This,index,buffer,buffer_size) +#else +/*** IUnknown methods ***/ +static inline HRESULT IDWriteFontSet3_QueryInterface(IDWriteFontSet3* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static inline ULONG IDWriteFontSet3_AddRef(IDWriteFontSet3* This) { + return This->lpVtbl->AddRef(This); +} +static inline ULONG IDWriteFontSet3_Release(IDWriteFontSet3* This) { + return This->lpVtbl->Release(This); +} +/*** IDWriteFontSet methods ***/ +static inline UINT32 IDWriteFontSet3_GetFontCount(IDWriteFontSet3* This) { + return This->lpVtbl->GetFontCount(This); +} +static inline HRESULT IDWriteFontSet3_FindFontFaceReference(IDWriteFontSet3* This,IDWriteFontFaceReference *reference,UINT32 *index,WINBOOL *exists) { + return This->lpVtbl->FindFontFaceReference(This,reference,index,exists); +} +static inline HRESULT IDWriteFontSet3_FindFontFace(IDWriteFontSet3* This,IDWriteFontFace *fontface,UINT32 *index,WINBOOL *exists) { + return This->lpVtbl->FindFontFace(This,fontface,index,exists); +} +static inline HRESULT IDWriteFontSet3_GetPropertyValues__(IDWriteFontSet3* This,DWRITE_FONT_PROPERTY_ID id,IDWriteStringList **values) { + return This->lpVtbl->GetPropertyValues__(This,id,values); +} +static inline HRESULT IDWriteFontSet3_GetPropertyValues_(IDWriteFontSet3* This,DWRITE_FONT_PROPERTY_ID id,const WCHAR *preferred_locales,IDWriteStringList **values) { + return This->lpVtbl->GetPropertyValues_(This,id,preferred_locales,values); +} +static inline HRESULT IDWriteFontSet3_GetPropertyValues(IDWriteFontSet3* This,UINT32 index,DWRITE_FONT_PROPERTY_ID id,WINBOOL *exists,IDWriteLocalizedStrings **values) { + return This->lpVtbl->GetPropertyValues(This,index,id,exists,values); +} +static inline HRESULT IDWriteFontSet3_GetPropertyOccurrenceCount(IDWriteFontSet3* This,const DWRITE_FONT_PROPERTY *property,UINT32 *count) { + return This->lpVtbl->GetPropertyOccurrenceCount(This,property,count); +} +static inline HRESULT IDWriteFontSet3_GetMatchingFonts_(IDWriteFontSet3* This,const WCHAR *family,DWRITE_FONT_WEIGHT weight,DWRITE_FONT_STRETCH stretch,DWRITE_FONT_STYLE style,IDWriteFontSet **fontset) { + return This->lpVtbl->GetMatchingFonts_(This,family,weight,stretch,style,fontset); +} +/*** IDWriteFontSet1 methods ***/ +static inline HRESULT IDWriteFontSet3_GetMatchingFonts(IDWriteFontSet3* This,const DWRITE_FONT_PROPERTY *property,const DWRITE_FONT_AXIS_VALUE *axis_values,UINT32 num_values,IDWriteFontSet1 **fontset) { + return This->lpVtbl->IDWriteFontSet1_GetMatchingFonts(This,property,axis_values,num_values,fontset); +} +static inline HRESULT IDWriteFontSet3_GetFirstFontResources(IDWriteFontSet3* This,IDWriteFontSet1 **fontset) { + return This->lpVtbl->GetFirstFontResources(This,fontset); +} +static inline HRESULT IDWriteFontSet3_GetFilteredFonts__(IDWriteFontSet3* This,const UINT32 *indices,UINT32 num_indices,IDWriteFontSet1 **fontset) { + return This->lpVtbl->GetFilteredFonts__(This,indices,num_indices,fontset); +} +static inline HRESULT IDWriteFontSet3_GetFilteredFonts_(IDWriteFontSet3* This,const DWRITE_FONT_AXIS_RANGE *axis_ranges,UINT32 num_ranges,WINBOOL select_any_range,IDWriteFontSet1 **fontset) { + return This->lpVtbl->GetFilteredFonts_(This,axis_ranges,num_ranges,select_any_range,fontset); +} +static inline HRESULT IDWriteFontSet3_GetFilteredFonts(IDWriteFontSet3* This,const DWRITE_FONT_PROPERTY *props,UINT32 num_properties,WINBOOL select_any_property,IDWriteFontSet1 **fontset) { + return This->lpVtbl->GetFilteredFonts(This,props,num_properties,select_any_property,fontset); +} +static inline HRESULT IDWriteFontSet3_GetFilteredFontIndices_(IDWriteFontSet3* This,const DWRITE_FONT_AXIS_RANGE *ranges,UINT32 num_ranges,WINBOOL select_any_range,UINT32 *indices,UINT32 num_indices,UINT32 *actual_num_indices) { + return This->lpVtbl->GetFilteredFontIndices_(This,ranges,num_ranges,select_any_range,indices,num_indices,actual_num_indices); +} +static inline HRESULT IDWriteFontSet3_GetFilteredFontIndices(IDWriteFontSet3* This,const DWRITE_FONT_PROPERTY *props,UINT32 num_properties,WINBOOL select_any_range,UINT32 *indices,UINT32 num_indices,UINT32 *actual_num_indices) { + return This->lpVtbl->GetFilteredFontIndices(This,props,num_properties,select_any_range,indices,num_indices,actual_num_indices); +} +static inline HRESULT IDWriteFontSet3_GetFontAxisRanges_(IDWriteFontSet3* This,UINT32 font_index,DWRITE_FONT_AXIS_RANGE *axis_ranges,UINT32 num_ranges,UINT32 *actual_num_ranges) { + return This->lpVtbl->GetFontAxisRanges_(This,font_index,axis_ranges,num_ranges,actual_num_ranges); +} +static inline HRESULT IDWriteFontSet3_GetFontAxisRanges(IDWriteFontSet3* This,DWRITE_FONT_AXIS_RANGE *axis_ranges,UINT32 num_ranges,UINT32 *actual_num_ranges) { + return This->lpVtbl->GetFontAxisRanges(This,axis_ranges,num_ranges,actual_num_ranges); +} +static inline HRESULT IDWriteFontSet3_GetFontFaceReference(IDWriteFontSet3* This,UINT32 index,IDWriteFontFaceReference1 **reference) { + return This->lpVtbl->IDWriteFontSet1_GetFontFaceReference(This,index,reference); +} +static inline HRESULT IDWriteFontSet3_CreateFontResource(IDWriteFontSet3* This,UINT32 index,IDWriteFontResource **resource) { + return This->lpVtbl->CreateFontResource(This,index,resource); +} +static inline HRESULT IDWriteFontSet3_CreateFontFace(IDWriteFontSet3* This,UINT32 index,IDWriteFontFace5 **fontface) { + return This->lpVtbl->CreateFontFace(This,index,fontface); +} +static inline DWRITE_LOCALITY IDWriteFontSet3_GetFontLocality(IDWriteFontSet3* This,UINT32 index) { + return This->lpVtbl->GetFontLocality(This,index); +} +/*** IDWriteFontSet2 methods ***/ +static inline HANDLE IDWriteFontSet3_GetExpirationEvent(IDWriteFontSet3* This) { + return This->lpVtbl->GetExpirationEvent(This); +} +/*** IDWriteFontSet3 methods ***/ +static inline DWRITE_FONT_SOURCE_TYPE IDWriteFontSet3_GetFontSourceType(IDWriteFontSet3* This,UINT32 index) { + return This->lpVtbl->GetFontSourceType(This,index); +} +static inline UINT32 IDWriteFontSet3_GetFontSourceNameLength(IDWriteFontSet3* This,UINT32 index) { + return This->lpVtbl->GetFontSourceNameLength(This,index); +} +static inline HRESULT IDWriteFontSet3_GetFontSourceName(IDWriteFontSet3* This,UINT32 index,WCHAR *buffer,UINT32 buffer_size) { + return This->lpVtbl->GetFontSourceName(This,index,buffer,buffer_size); +} +#endif +#endif + +#endif + + +#endif /* __IDWriteFontSet3_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IDWriteFontSet4 interface + */ +#ifndef __IDWriteFontSet4_INTERFACE_DEFINED__ +#define __IDWriteFontSet4_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDWriteFontSet4, 0xeec175fc, 0xbea9, 0x4c86, 0x8b,0x53, 0xcc,0xbd,0xd7,0xdf,0x0c,0x82); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("eec175fc-bea9-4c86-8b53-ccbdd7df0c82") +IDWriteFontSet4 : public IDWriteFontSet3 +{ + virtual UINT32 STDMETHODCALLTYPE ConvertWeightStretchStyleToFontAxisValues( + const DWRITE_FONT_AXIS_VALUE *input_axis_values, + UINT32 input_axis_count, + DWRITE_FONT_WEIGHT weight, + DWRITE_FONT_STRETCH stretch, + DWRITE_FONT_STYLE style, + float size, + DWRITE_FONT_AXIS_VALUE *output_axis_values) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetMatchingFonts( + const WCHAR *family_name, + const DWRITE_FONT_AXIS_VALUE *axis_values, + UINT32 axis_value_count, + DWRITE_FONT_SIMULATIONS allowed_simulations, + IDWriteFontSet4 **fonts) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDWriteFontSet4, 0xeec175fc, 0xbea9, 0x4c86, 0x8b,0x53, 0xcc,0xbd,0xd7,0xdf,0x0c,0x82) +#endif +#else +typedef struct IDWriteFontSet4Vtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDWriteFontSet4 *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDWriteFontSet4 *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDWriteFontSet4 *This); + + /*** IDWriteFontSet methods ***/ + UINT32 (STDMETHODCALLTYPE *GetFontCount)( + IDWriteFontSet4 *This); + + HRESULT (STDMETHODCALLTYPE *GetFontFaceReference)( + IDWriteFontSet4 *This, + UINT32 index, + IDWriteFontFaceReference **reference); + + HRESULT (STDMETHODCALLTYPE *FindFontFaceReference)( + IDWriteFontSet4 *This, + IDWriteFontFaceReference *reference, + UINT32 *index, + WINBOOL *exists); + + HRESULT (STDMETHODCALLTYPE *FindFontFace)( + IDWriteFontSet4 *This, + IDWriteFontFace *fontface, + UINT32 *index, + WINBOOL *exists); + + HRESULT (STDMETHODCALLTYPE *GetPropertyValues__)( + IDWriteFontSet4 *This, + DWRITE_FONT_PROPERTY_ID id, + IDWriteStringList **values); + + HRESULT (STDMETHODCALLTYPE *GetPropertyValues_)( + IDWriteFontSet4 *This, + DWRITE_FONT_PROPERTY_ID id, + const WCHAR *preferred_locales, + IDWriteStringList **values); + + HRESULT (STDMETHODCALLTYPE *GetPropertyValues)( + IDWriteFontSet4 *This, + UINT32 index, + DWRITE_FONT_PROPERTY_ID id, + WINBOOL *exists, + IDWriteLocalizedStrings **values); + + HRESULT (STDMETHODCALLTYPE *GetPropertyOccurrenceCount)( + IDWriteFontSet4 *This, + const DWRITE_FONT_PROPERTY *property, + UINT32 *count); + + HRESULT (STDMETHODCALLTYPE *GetMatchingFonts_)( + IDWriteFontSet4 *This, + const WCHAR *family, + DWRITE_FONT_WEIGHT weight, + DWRITE_FONT_STRETCH stretch, + DWRITE_FONT_STYLE style, + IDWriteFontSet **fontset); + + HRESULT (STDMETHODCALLTYPE *GetMatchingFonts)( + IDWriteFontSet4 *This, + const DWRITE_FONT_PROPERTY *props, + UINT32 count, + IDWriteFontSet **fontset); + + /*** IDWriteFontSet1 methods ***/ + HRESULT (STDMETHODCALLTYPE *IDWriteFontSet1_GetMatchingFonts)( + IDWriteFontSet4 *This, + const DWRITE_FONT_PROPERTY *property, + const DWRITE_FONT_AXIS_VALUE *axis_values, + UINT32 num_values, + IDWriteFontSet1 **fontset); + + HRESULT (STDMETHODCALLTYPE *GetFirstFontResources)( + IDWriteFontSet4 *This, + IDWriteFontSet1 **fontset); + + HRESULT (STDMETHODCALLTYPE *GetFilteredFonts__)( + IDWriteFontSet4 *This, + const UINT32 *indices, + UINT32 num_indices, + IDWriteFontSet1 **fontset); + + HRESULT (STDMETHODCALLTYPE *GetFilteredFonts_)( + IDWriteFontSet4 *This, + const DWRITE_FONT_AXIS_RANGE *axis_ranges, + UINT32 num_ranges, + WINBOOL select_any_range, + IDWriteFontSet1 **fontset); + + HRESULT (STDMETHODCALLTYPE *GetFilteredFonts)( + IDWriteFontSet4 *This, + const DWRITE_FONT_PROPERTY *props, + UINT32 num_properties, + WINBOOL select_any_property, + IDWriteFontSet1 **fontset); + + HRESULT (STDMETHODCALLTYPE *GetFilteredFontIndices_)( + IDWriteFontSet4 *This, + const DWRITE_FONT_AXIS_RANGE *ranges, + UINT32 num_ranges, + WINBOOL select_any_range, + UINT32 *indices, + UINT32 num_indices, + UINT32 *actual_num_indices); + + HRESULT (STDMETHODCALLTYPE *GetFilteredFontIndices)( + IDWriteFontSet4 *This, + const DWRITE_FONT_PROPERTY *props, + UINT32 num_properties, + WINBOOL select_any_range, + UINT32 *indices, + UINT32 num_indices, + UINT32 *actual_num_indices); + + HRESULT (STDMETHODCALLTYPE *GetFontAxisRanges_)( + IDWriteFontSet4 *This, + UINT32 font_index, + DWRITE_FONT_AXIS_RANGE *axis_ranges, + UINT32 num_ranges, + UINT32 *actual_num_ranges); + + HRESULT (STDMETHODCALLTYPE *GetFontAxisRanges)( + IDWriteFontSet4 *This, + DWRITE_FONT_AXIS_RANGE *axis_ranges, + UINT32 num_ranges, + UINT32 *actual_num_ranges); + + HRESULT (STDMETHODCALLTYPE *IDWriteFontSet1_GetFontFaceReference)( + IDWriteFontSet4 *This, + UINT32 index, + IDWriteFontFaceReference1 **reference); + + HRESULT (STDMETHODCALLTYPE *CreateFontResource)( + IDWriteFontSet4 *This, + UINT32 index, + IDWriteFontResource **resource); + + HRESULT (STDMETHODCALLTYPE *CreateFontFace)( + IDWriteFontSet4 *This, + UINT32 index, + IDWriteFontFace5 **fontface); + + DWRITE_LOCALITY (STDMETHODCALLTYPE *GetFontLocality)( + IDWriteFontSet4 *This, + UINT32 index); + + /*** IDWriteFontSet2 methods ***/ + HANDLE (STDMETHODCALLTYPE *GetExpirationEvent)( + IDWriteFontSet4 *This); + + /*** IDWriteFontSet3 methods ***/ + DWRITE_FONT_SOURCE_TYPE (STDMETHODCALLTYPE *GetFontSourceType)( + IDWriteFontSet4 *This, + UINT32 index); + + UINT32 (STDMETHODCALLTYPE *GetFontSourceNameLength)( + IDWriteFontSet4 *This, + UINT32 index); + + HRESULT (STDMETHODCALLTYPE *GetFontSourceName)( + IDWriteFontSet4 *This, + UINT32 index, + WCHAR *buffer, + UINT32 buffer_size); + + /*** IDWriteFontSet4 methods ***/ + UINT32 (STDMETHODCALLTYPE *ConvertWeightStretchStyleToFontAxisValues)( + IDWriteFontSet4 *This, + const DWRITE_FONT_AXIS_VALUE *input_axis_values, + UINT32 input_axis_count, + DWRITE_FONT_WEIGHT weight, + DWRITE_FONT_STRETCH stretch, + DWRITE_FONT_STYLE style, + float size, + DWRITE_FONT_AXIS_VALUE *output_axis_values); + + HRESULT (STDMETHODCALLTYPE *IDWriteFontSet4_GetMatchingFonts)( + IDWriteFontSet4 *This, + const WCHAR *family_name, + const DWRITE_FONT_AXIS_VALUE *axis_values, + UINT32 axis_value_count, + DWRITE_FONT_SIMULATIONS allowed_simulations, + IDWriteFontSet4 **fonts); + + END_INTERFACE +} IDWriteFontSet4Vtbl; + +interface IDWriteFontSet4 { + CONST_VTBL IDWriteFontSet4Vtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDWriteFontSet4_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteFontSet4_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDWriteFontSet4_Release(This) (This)->lpVtbl->Release(This) +/*** IDWriteFontSet methods ***/ +#define IDWriteFontSet4_GetFontCount(This) (This)->lpVtbl->GetFontCount(This) +#define IDWriteFontSet4_FindFontFaceReference(This,reference,index,exists) (This)->lpVtbl->FindFontFaceReference(This,reference,index,exists) +#define IDWriteFontSet4_FindFontFace(This,fontface,index,exists) (This)->lpVtbl->FindFontFace(This,fontface,index,exists) +#define IDWriteFontSet4_GetPropertyValues__(This,id,values) (This)->lpVtbl->GetPropertyValues__(This,id,values) +#define IDWriteFontSet4_GetPropertyValues_(This,id,preferred_locales,values) (This)->lpVtbl->GetPropertyValues_(This,id,preferred_locales,values) +#define IDWriteFontSet4_GetPropertyValues(This,index,id,exists,values) (This)->lpVtbl->GetPropertyValues(This,index,id,exists,values) +#define IDWriteFontSet4_GetPropertyOccurrenceCount(This,property,count) (This)->lpVtbl->GetPropertyOccurrenceCount(This,property,count) +#define IDWriteFontSet4_GetMatchingFonts_(This,family,weight,stretch,style,fontset) (This)->lpVtbl->GetMatchingFonts_(This,family,weight,stretch,style,fontset) +/*** IDWriteFontSet1 methods ***/ +#define IDWriteFontSet4_GetFirstFontResources(This,fontset) (This)->lpVtbl->GetFirstFontResources(This,fontset) +#define IDWriteFontSet4_GetFilteredFonts__(This,indices,num_indices,fontset) (This)->lpVtbl->GetFilteredFonts__(This,indices,num_indices,fontset) +#define IDWriteFontSet4_GetFilteredFonts_(This,axis_ranges,num_ranges,select_any_range,fontset) (This)->lpVtbl->GetFilteredFonts_(This,axis_ranges,num_ranges,select_any_range,fontset) +#define IDWriteFontSet4_GetFilteredFonts(This,props,num_properties,select_any_property,fontset) (This)->lpVtbl->GetFilteredFonts(This,props,num_properties,select_any_property,fontset) +#define IDWriteFontSet4_GetFilteredFontIndices_(This,ranges,num_ranges,select_any_range,indices,num_indices,actual_num_indices) (This)->lpVtbl->GetFilteredFontIndices_(This,ranges,num_ranges,select_any_range,indices,num_indices,actual_num_indices) +#define IDWriteFontSet4_GetFilteredFontIndices(This,props,num_properties,select_any_range,indices,num_indices,actual_num_indices) (This)->lpVtbl->GetFilteredFontIndices(This,props,num_properties,select_any_range,indices,num_indices,actual_num_indices) +#define IDWriteFontSet4_GetFontAxisRanges_(This,font_index,axis_ranges,num_ranges,actual_num_ranges) (This)->lpVtbl->GetFontAxisRanges_(This,font_index,axis_ranges,num_ranges,actual_num_ranges) +#define IDWriteFontSet4_GetFontAxisRanges(This,axis_ranges,num_ranges,actual_num_ranges) (This)->lpVtbl->GetFontAxisRanges(This,axis_ranges,num_ranges,actual_num_ranges) +#define IDWriteFontSet4_GetFontFaceReference(This,index,reference) (This)->lpVtbl->IDWriteFontSet1_GetFontFaceReference(This,index,reference) +#define IDWriteFontSet4_CreateFontResource(This,index,resource) (This)->lpVtbl->CreateFontResource(This,index,resource) +#define IDWriteFontSet4_CreateFontFace(This,index,fontface) (This)->lpVtbl->CreateFontFace(This,index,fontface) +#define IDWriteFontSet4_GetFontLocality(This,index) (This)->lpVtbl->GetFontLocality(This,index) +/*** IDWriteFontSet2 methods ***/ +#define IDWriteFontSet4_GetExpirationEvent(This) (This)->lpVtbl->GetExpirationEvent(This) +/*** IDWriteFontSet3 methods ***/ +#define IDWriteFontSet4_GetFontSourceType(This,index) (This)->lpVtbl->GetFontSourceType(This,index) +#define IDWriteFontSet4_GetFontSourceNameLength(This,index) (This)->lpVtbl->GetFontSourceNameLength(This,index) +#define IDWriteFontSet4_GetFontSourceName(This,index,buffer,buffer_size) (This)->lpVtbl->GetFontSourceName(This,index,buffer,buffer_size) +/*** IDWriteFontSet4 methods ***/ +#define IDWriteFontSet4_ConvertWeightStretchStyleToFontAxisValues(This,input_axis_values,input_axis_count,weight,stretch,style,size,output_axis_values) (This)->lpVtbl->ConvertWeightStretchStyleToFontAxisValues(This,input_axis_values,input_axis_count,weight,stretch,style,size,output_axis_values) +#define IDWriteFontSet4_GetMatchingFonts(This,family_name,axis_values,axis_value_count,allowed_simulations,fonts) (This)->lpVtbl->IDWriteFontSet4_GetMatchingFonts(This,family_name,axis_values,axis_value_count,allowed_simulations,fonts) +#else +/*** IUnknown methods ***/ +static inline HRESULT IDWriteFontSet4_QueryInterface(IDWriteFontSet4* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static inline ULONG IDWriteFontSet4_AddRef(IDWriteFontSet4* This) { + return This->lpVtbl->AddRef(This); +} +static inline ULONG IDWriteFontSet4_Release(IDWriteFontSet4* This) { + return This->lpVtbl->Release(This); +} +/*** IDWriteFontSet methods ***/ +static inline UINT32 IDWriteFontSet4_GetFontCount(IDWriteFontSet4* This) { + return This->lpVtbl->GetFontCount(This); +} +static inline HRESULT IDWriteFontSet4_FindFontFaceReference(IDWriteFontSet4* This,IDWriteFontFaceReference *reference,UINT32 *index,WINBOOL *exists) { + return This->lpVtbl->FindFontFaceReference(This,reference,index,exists); +} +static inline HRESULT IDWriteFontSet4_FindFontFace(IDWriteFontSet4* This,IDWriteFontFace *fontface,UINT32 *index,WINBOOL *exists) { + return This->lpVtbl->FindFontFace(This,fontface,index,exists); +} +static inline HRESULT IDWriteFontSet4_GetPropertyValues__(IDWriteFontSet4* This,DWRITE_FONT_PROPERTY_ID id,IDWriteStringList **values) { + return This->lpVtbl->GetPropertyValues__(This,id,values); +} +static inline HRESULT IDWriteFontSet4_GetPropertyValues_(IDWriteFontSet4* This,DWRITE_FONT_PROPERTY_ID id,const WCHAR *preferred_locales,IDWriteStringList **values) { + return This->lpVtbl->GetPropertyValues_(This,id,preferred_locales,values); +} +static inline HRESULT IDWriteFontSet4_GetPropertyValues(IDWriteFontSet4* This,UINT32 index,DWRITE_FONT_PROPERTY_ID id,WINBOOL *exists,IDWriteLocalizedStrings **values) { + return This->lpVtbl->GetPropertyValues(This,index,id,exists,values); +} +static inline HRESULT IDWriteFontSet4_GetPropertyOccurrenceCount(IDWriteFontSet4* This,const DWRITE_FONT_PROPERTY *property,UINT32 *count) { + return This->lpVtbl->GetPropertyOccurrenceCount(This,property,count); +} +static inline HRESULT IDWriteFontSet4_GetMatchingFonts_(IDWriteFontSet4* This,const WCHAR *family,DWRITE_FONT_WEIGHT weight,DWRITE_FONT_STRETCH stretch,DWRITE_FONT_STYLE style,IDWriteFontSet **fontset) { + return This->lpVtbl->GetMatchingFonts_(This,family,weight,stretch,style,fontset); +} +/*** IDWriteFontSet1 methods ***/ +static inline HRESULT IDWriteFontSet4_GetFirstFontResources(IDWriteFontSet4* This,IDWriteFontSet1 **fontset) { + return This->lpVtbl->GetFirstFontResources(This,fontset); +} +static inline HRESULT IDWriteFontSet4_GetFilteredFonts__(IDWriteFontSet4* This,const UINT32 *indices,UINT32 num_indices,IDWriteFontSet1 **fontset) { + return This->lpVtbl->GetFilteredFonts__(This,indices,num_indices,fontset); +} +static inline HRESULT IDWriteFontSet4_GetFilteredFonts_(IDWriteFontSet4* This,const DWRITE_FONT_AXIS_RANGE *axis_ranges,UINT32 num_ranges,WINBOOL select_any_range,IDWriteFontSet1 **fontset) { + return This->lpVtbl->GetFilteredFonts_(This,axis_ranges,num_ranges,select_any_range,fontset); +} +static inline HRESULT IDWriteFontSet4_GetFilteredFonts(IDWriteFontSet4* This,const DWRITE_FONT_PROPERTY *props,UINT32 num_properties,WINBOOL select_any_property,IDWriteFontSet1 **fontset) { + return This->lpVtbl->GetFilteredFonts(This,props,num_properties,select_any_property,fontset); +} +static inline HRESULT IDWriteFontSet4_GetFilteredFontIndices_(IDWriteFontSet4* This,const DWRITE_FONT_AXIS_RANGE *ranges,UINT32 num_ranges,WINBOOL select_any_range,UINT32 *indices,UINT32 num_indices,UINT32 *actual_num_indices) { + return This->lpVtbl->GetFilteredFontIndices_(This,ranges,num_ranges,select_any_range,indices,num_indices,actual_num_indices); +} +static inline HRESULT IDWriteFontSet4_GetFilteredFontIndices(IDWriteFontSet4* This,const DWRITE_FONT_PROPERTY *props,UINT32 num_properties,WINBOOL select_any_range,UINT32 *indices,UINT32 num_indices,UINT32 *actual_num_indices) { + return This->lpVtbl->GetFilteredFontIndices(This,props,num_properties,select_any_range,indices,num_indices,actual_num_indices); +} +static inline HRESULT IDWriteFontSet4_GetFontAxisRanges_(IDWriteFontSet4* This,UINT32 font_index,DWRITE_FONT_AXIS_RANGE *axis_ranges,UINT32 num_ranges,UINT32 *actual_num_ranges) { + return This->lpVtbl->GetFontAxisRanges_(This,font_index,axis_ranges,num_ranges,actual_num_ranges); +} +static inline HRESULT IDWriteFontSet4_GetFontAxisRanges(IDWriteFontSet4* This,DWRITE_FONT_AXIS_RANGE *axis_ranges,UINT32 num_ranges,UINT32 *actual_num_ranges) { + return This->lpVtbl->GetFontAxisRanges(This,axis_ranges,num_ranges,actual_num_ranges); +} +static inline HRESULT IDWriteFontSet4_GetFontFaceReference(IDWriteFontSet4* This,UINT32 index,IDWriteFontFaceReference1 **reference) { + return This->lpVtbl->IDWriteFontSet1_GetFontFaceReference(This,index,reference); +} +static inline HRESULT IDWriteFontSet4_CreateFontResource(IDWriteFontSet4* This,UINT32 index,IDWriteFontResource **resource) { + return This->lpVtbl->CreateFontResource(This,index,resource); +} +static inline HRESULT IDWriteFontSet4_CreateFontFace(IDWriteFontSet4* This,UINT32 index,IDWriteFontFace5 **fontface) { + return This->lpVtbl->CreateFontFace(This,index,fontface); +} +static inline DWRITE_LOCALITY IDWriteFontSet4_GetFontLocality(IDWriteFontSet4* This,UINT32 index) { + return This->lpVtbl->GetFontLocality(This,index); +} +/*** IDWriteFontSet2 methods ***/ +static inline HANDLE IDWriteFontSet4_GetExpirationEvent(IDWriteFontSet4* This) { + return This->lpVtbl->GetExpirationEvent(This); +} +/*** IDWriteFontSet3 methods ***/ +static inline DWRITE_FONT_SOURCE_TYPE IDWriteFontSet4_GetFontSourceType(IDWriteFontSet4* This,UINT32 index) { + return This->lpVtbl->GetFontSourceType(This,index); +} +static inline UINT32 IDWriteFontSet4_GetFontSourceNameLength(IDWriteFontSet4* This,UINT32 index) { + return This->lpVtbl->GetFontSourceNameLength(This,index); +} +static inline HRESULT IDWriteFontSet4_GetFontSourceName(IDWriteFontSet4* This,UINT32 index,WCHAR *buffer,UINT32 buffer_size) { + return This->lpVtbl->GetFontSourceName(This,index,buffer,buffer_size); +} +/*** IDWriteFontSet4 methods ***/ +static inline UINT32 IDWriteFontSet4_ConvertWeightStretchStyleToFontAxisValues(IDWriteFontSet4* This,const DWRITE_FONT_AXIS_VALUE *input_axis_values,UINT32 input_axis_count,DWRITE_FONT_WEIGHT weight,DWRITE_FONT_STRETCH stretch,DWRITE_FONT_STYLE style,float size,DWRITE_FONT_AXIS_VALUE *output_axis_values) { + return This->lpVtbl->ConvertWeightStretchStyleToFontAxisValues(This,input_axis_values,input_axis_count,weight,stretch,style,size,output_axis_values); +} +static inline HRESULT IDWriteFontSet4_GetMatchingFonts(IDWriteFontSet4* This,const WCHAR *family_name,const DWRITE_FONT_AXIS_VALUE *axis_values,UINT32 axis_value_count,DWRITE_FONT_SIMULATIONS allowed_simulations,IDWriteFontSet4 **fonts) { + return This->lpVtbl->IDWriteFontSet4_GetMatchingFonts(This,family_name,axis_values,axis_value_count,allowed_simulations,fonts); +} +#endif +#endif + +#endif + + +#endif /* __IDWriteFontSet4_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IDWriteFontFace3 interface + */ +#ifndef __IDWriteFontFace3_INTERFACE_DEFINED__ +#define __IDWriteFontFace3_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDWriteFontFace3, 0xd37d7598, 0x09be, 0x4222, 0xa2,0x36, 0x20,0x81,0x34,0x1c,0xc1,0xf2); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("d37d7598-09be-4222-a236-2081341cc1f2") +IDWriteFontFace3 : public IDWriteFontFace2 +{ + virtual HRESULT STDMETHODCALLTYPE GetFontFaceReference( + IDWriteFontFaceReference **reference) = 0; + + virtual void STDMETHODCALLTYPE GetPanose( + DWRITE_PANOSE *panose) = 0; + + virtual DWRITE_FONT_WEIGHT STDMETHODCALLTYPE GetWeight( + ) = 0; + + virtual DWRITE_FONT_STRETCH STDMETHODCALLTYPE GetStretch( + ) = 0; + + virtual DWRITE_FONT_STYLE STDMETHODCALLTYPE GetStyle( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetFamilyNames( + IDWriteLocalizedStrings **names) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetFaceNames( + IDWriteLocalizedStrings **names) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetInformationalStrings( + DWRITE_INFORMATIONAL_STRING_ID stringid, + IDWriteLocalizedStrings **strings, + WINBOOL *exists) = 0; + + virtual WINBOOL STDMETHODCALLTYPE HasCharacter( + UINT32 character) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetRecommendedRenderingMode( + FLOAT emsize, + FLOAT dpi_x, + FLOAT dpi_y, + const DWRITE_MATRIX *transform, + WINBOOL is_sideways, + DWRITE_OUTLINE_THRESHOLD threshold, + DWRITE_MEASURING_MODE measuring_mode, + IDWriteRenderingParams *params, + DWRITE_RENDERING_MODE1 *rendering_mode, + DWRITE_GRID_FIT_MODE *gridfit_mode) = 0; + + virtual WINBOOL STDMETHODCALLTYPE IsCharacterLocal( + UINT32 character) = 0; + + virtual WINBOOL STDMETHODCALLTYPE IsGlyphLocal( + UINT16 glyph) = 0; + + virtual HRESULT STDMETHODCALLTYPE AreCharactersLocal( + const WCHAR *characters, + UINT32 count, + WINBOOL enqueue_if_not, + WINBOOL *are_local) = 0; + + virtual HRESULT STDMETHODCALLTYPE AreGlyphsLocal( + const UINT16 *glyphs, + UINT32 count, + WINBOOL enqueue_if_not, + WINBOOL *are_local) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDWriteFontFace3, 0xd37d7598, 0x09be, 0x4222, 0xa2,0x36, 0x20,0x81,0x34,0x1c,0xc1,0xf2) +#endif +#else +typedef struct IDWriteFontFace3Vtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDWriteFontFace3 *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDWriteFontFace3 *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDWriteFontFace3 *This); + + /*** IDWriteFontFace methods ***/ + DWRITE_FONT_FACE_TYPE (STDMETHODCALLTYPE *GetType)( + IDWriteFontFace3 *This); + + HRESULT (STDMETHODCALLTYPE *GetFiles)( + IDWriteFontFace3 *This, + UINT32 *number_of_files, + IDWriteFontFile **fontfiles); + + UINT32 (STDMETHODCALLTYPE *GetIndex)( + IDWriteFontFace3 *This); + + DWRITE_FONT_SIMULATIONS (STDMETHODCALLTYPE *GetSimulations)( + IDWriteFontFace3 *This); + + WINBOOL (STDMETHODCALLTYPE *IsSymbolFont)( + IDWriteFontFace3 *This); + + void (STDMETHODCALLTYPE *GetMetrics)( + IDWriteFontFace3 *This, + DWRITE_FONT_METRICS *metrics); + + UINT16 (STDMETHODCALLTYPE *GetGlyphCount)( + IDWriteFontFace3 *This); + + HRESULT (STDMETHODCALLTYPE *GetDesignGlyphMetrics)( + IDWriteFontFace3 *This, + const UINT16 *glyph_indices, + UINT32 glyph_count, + DWRITE_GLYPH_METRICS *metrics, + WINBOOL is_sideways); + + HRESULT (STDMETHODCALLTYPE *GetGlyphIndices)( + IDWriteFontFace3 *This, + const UINT32 *codepoints, + UINT32 count, + UINT16 *glyph_indices); + + HRESULT (STDMETHODCALLTYPE *TryGetFontTable)( + IDWriteFontFace3 *This, + UINT32 table_tag, + const void **table_data, + UINT32 *table_size, + void **context, + WINBOOL *exists); + + void (STDMETHODCALLTYPE *ReleaseFontTable)( + IDWriteFontFace3 *This, + void *table_context); + + HRESULT (STDMETHODCALLTYPE *GetGlyphRunOutline)( + IDWriteFontFace3 *This, + FLOAT emSize, + const UINT16 *glyph_indices, + const FLOAT *glyph_advances, + const DWRITE_GLYPH_OFFSET *glyph_offsets, + UINT32 glyph_count, + WINBOOL is_sideways, + WINBOOL is_rtl, + IDWriteGeometrySink *geometrysink); + + HRESULT (STDMETHODCALLTYPE *GetRecommendedRenderingMode)( + IDWriteFontFace3 *This, + FLOAT emSize, + FLOAT pixels_per_dip, + DWRITE_MEASURING_MODE mode, + IDWriteRenderingParams *params, + DWRITE_RENDERING_MODE *rendering_mode); + + HRESULT (STDMETHODCALLTYPE *GetGdiCompatibleMetrics)( + IDWriteFontFace3 *This, + FLOAT emSize, + FLOAT pixels_per_dip, + const DWRITE_MATRIX *transform, + DWRITE_FONT_METRICS *metrics); + + HRESULT (STDMETHODCALLTYPE *GetGdiCompatibleGlyphMetrics)( + IDWriteFontFace3 *This, + FLOAT emSize, + FLOAT pixels_per_dip, + const DWRITE_MATRIX *transform, + WINBOOL use_gdi_natural, + const UINT16 *glyph_indices, + UINT32 glyph_count, + DWRITE_GLYPH_METRICS *metrics, + WINBOOL is_sideways); + + /*** IDWriteFontFace1 methods ***/ + void (STDMETHODCALLTYPE *IDWriteFontFace1_GetMetrics)( + IDWriteFontFace3 *This, + DWRITE_FONT_METRICS1 *metrics); + + HRESULT (STDMETHODCALLTYPE *IDWriteFontFace1_GetGdiCompatibleMetrics)( + IDWriteFontFace3 *This, + FLOAT em_size, + FLOAT pixels_per_dip, + const DWRITE_MATRIX *transform, + DWRITE_FONT_METRICS1 *metrics); + + void (STDMETHODCALLTYPE *GetCaretMetrics)( + IDWriteFontFace3 *This, + DWRITE_CARET_METRICS *metrics); + + HRESULT (STDMETHODCALLTYPE *GetUnicodeRanges)( + IDWriteFontFace3 *This, + UINT32 max_count, + DWRITE_UNICODE_RANGE *ranges, + UINT32 *count); + + WINBOOL (STDMETHODCALLTYPE *IsMonospacedFont)( + IDWriteFontFace3 *This); + + HRESULT (STDMETHODCALLTYPE *GetDesignGlyphAdvances)( + IDWriteFontFace3 *This, + UINT32 glyph_count, + const UINT16 *indices, + INT32 *advances, + WINBOOL is_sideways); + + HRESULT (STDMETHODCALLTYPE *GetGdiCompatibleGlyphAdvances)( + IDWriteFontFace3 *This, + FLOAT em_size, + FLOAT pixels_per_dip, + const DWRITE_MATRIX *transform, + WINBOOL use_gdi_natural, + WINBOOL is_sideways, + UINT32 glyph_count, + const UINT16 *indices, + INT32 *advances); + + HRESULT (STDMETHODCALLTYPE *GetKerningPairAdjustments)( + IDWriteFontFace3 *This, + UINT32 glyph_count, + const UINT16 *indices, + INT32 *adjustments); + + WINBOOL (STDMETHODCALLTYPE *HasKerningPairs)( + IDWriteFontFace3 *This); + + HRESULT (STDMETHODCALLTYPE *IDWriteFontFace1_GetRecommendedRenderingMode)( + IDWriteFontFace3 *This, + FLOAT font_emsize, + FLOAT dpiX, + FLOAT dpiY, + const DWRITE_MATRIX *transform, + WINBOOL is_sideways, + DWRITE_OUTLINE_THRESHOLD threshold, + DWRITE_MEASURING_MODE measuring_mode, + DWRITE_RENDERING_MODE *rendering_mode); + + HRESULT (STDMETHODCALLTYPE *GetVerticalGlyphVariants)( + IDWriteFontFace3 *This, + UINT32 glyph_count, + const UINT16 *nominal_indices, + UINT16 *vertical_indices); + + WINBOOL (STDMETHODCALLTYPE *HasVerticalGlyphVariants)( + IDWriteFontFace3 *This); + + /*** IDWriteFontFace2 methods ***/ + WINBOOL (STDMETHODCALLTYPE *IsColorFont)( + IDWriteFontFace3 *This); + + UINT32 (STDMETHODCALLTYPE *GetColorPaletteCount)( + IDWriteFontFace3 *This); + + UINT32 (STDMETHODCALLTYPE *GetPaletteEntryCount)( + IDWriteFontFace3 *This); + + HRESULT (STDMETHODCALLTYPE *GetPaletteEntries)( + IDWriteFontFace3 *This, + UINT32 palette_index, + UINT32 first_entry_index, + UINT32 entry_count, + DWRITE_COLOR_F *entries); + + HRESULT (STDMETHODCALLTYPE *IDWriteFontFace2_GetRecommendedRenderingMode)( + IDWriteFontFace3 *This, + FLOAT fontEmSize, + FLOAT dpiX, + FLOAT dpiY, + const DWRITE_MATRIX *transform, + WINBOOL is_sideways, + DWRITE_OUTLINE_THRESHOLD threshold, + DWRITE_MEASURING_MODE measuringmode, + IDWriteRenderingParams *params, + DWRITE_RENDERING_MODE *renderingmode, + DWRITE_GRID_FIT_MODE *gridfitmode); + + /*** IDWriteFontFace3 methods ***/ + HRESULT (STDMETHODCALLTYPE *GetFontFaceReference)( + IDWriteFontFace3 *This, + IDWriteFontFaceReference **reference); + + void (STDMETHODCALLTYPE *GetPanose)( + IDWriteFontFace3 *This, + DWRITE_PANOSE *panose); + + DWRITE_FONT_WEIGHT (STDMETHODCALLTYPE *GetWeight)( + IDWriteFontFace3 *This); + + DWRITE_FONT_STRETCH (STDMETHODCALLTYPE *GetStretch)( + IDWriteFontFace3 *This); + + DWRITE_FONT_STYLE (STDMETHODCALLTYPE *GetStyle)( + IDWriteFontFace3 *This); + + HRESULT (STDMETHODCALLTYPE *GetFamilyNames)( + IDWriteFontFace3 *This, + IDWriteLocalizedStrings **names); + + HRESULT (STDMETHODCALLTYPE *GetFaceNames)( + IDWriteFontFace3 *This, + IDWriteLocalizedStrings **names); + + HRESULT (STDMETHODCALLTYPE *GetInformationalStrings)( + IDWriteFontFace3 *This, + DWRITE_INFORMATIONAL_STRING_ID stringid, + IDWriteLocalizedStrings **strings, + WINBOOL *exists); + + WINBOOL (STDMETHODCALLTYPE *HasCharacter)( + IDWriteFontFace3 *This, + UINT32 character); + + HRESULT (STDMETHODCALLTYPE *IDWriteFontFace3_GetRecommendedRenderingMode)( + IDWriteFontFace3 *This, + FLOAT emsize, + FLOAT dpi_x, + FLOAT dpi_y, + const DWRITE_MATRIX *transform, + WINBOOL is_sideways, + DWRITE_OUTLINE_THRESHOLD threshold, + DWRITE_MEASURING_MODE measuring_mode, + IDWriteRenderingParams *params, + DWRITE_RENDERING_MODE1 *rendering_mode, + DWRITE_GRID_FIT_MODE *gridfit_mode); + + WINBOOL (STDMETHODCALLTYPE *IsCharacterLocal)( + IDWriteFontFace3 *This, + UINT32 character); + + WINBOOL (STDMETHODCALLTYPE *IsGlyphLocal)( + IDWriteFontFace3 *This, + UINT16 glyph); + + HRESULT (STDMETHODCALLTYPE *AreCharactersLocal)( + IDWriteFontFace3 *This, + const WCHAR *characters, + UINT32 count, + WINBOOL enqueue_if_not, + WINBOOL *are_local); + + HRESULT (STDMETHODCALLTYPE *AreGlyphsLocal)( + IDWriteFontFace3 *This, + const UINT16 *glyphs, + UINT32 count, + WINBOOL enqueue_if_not, + WINBOOL *are_local); + + END_INTERFACE +} IDWriteFontFace3Vtbl; + +interface IDWriteFontFace3 { + CONST_VTBL IDWriteFontFace3Vtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDWriteFontFace3_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteFontFace3_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDWriteFontFace3_Release(This) (This)->lpVtbl->Release(This) +/*** IDWriteFontFace methods ***/ +#define IDWriteFontFace3_GetType(This) (This)->lpVtbl->GetType(This) +#define IDWriteFontFace3_GetFiles(This,number_of_files,fontfiles) (This)->lpVtbl->GetFiles(This,number_of_files,fontfiles) +#define IDWriteFontFace3_GetIndex(This) (This)->lpVtbl->GetIndex(This) +#define IDWriteFontFace3_GetSimulations(This) (This)->lpVtbl->GetSimulations(This) +#define IDWriteFontFace3_IsSymbolFont(This) (This)->lpVtbl->IsSymbolFont(This) +#define IDWriteFontFace3_GetGlyphCount(This) (This)->lpVtbl->GetGlyphCount(This) +#define IDWriteFontFace3_GetDesignGlyphMetrics(This,glyph_indices,glyph_count,metrics,is_sideways) (This)->lpVtbl->GetDesignGlyphMetrics(This,glyph_indices,glyph_count,metrics,is_sideways) +#define IDWriteFontFace3_GetGlyphIndices(This,codepoints,count,glyph_indices) (This)->lpVtbl->GetGlyphIndices(This,codepoints,count,glyph_indices) +#define IDWriteFontFace3_TryGetFontTable(This,table_tag,table_data,table_size,context,exists) (This)->lpVtbl->TryGetFontTable(This,table_tag,table_data,table_size,context,exists) +#define IDWriteFontFace3_ReleaseFontTable(This,table_context) (This)->lpVtbl->ReleaseFontTable(This,table_context) +#define IDWriteFontFace3_GetGlyphRunOutline(This,emSize,glyph_indices,glyph_advances,glyph_offsets,glyph_count,is_sideways,is_rtl,geometrysink) (This)->lpVtbl->GetGlyphRunOutline(This,emSize,glyph_indices,glyph_advances,glyph_offsets,glyph_count,is_sideways,is_rtl,geometrysink) +#define IDWriteFontFace3_GetGdiCompatibleGlyphMetrics(This,emSize,pixels_per_dip,transform,use_gdi_natural,glyph_indices,glyph_count,metrics,is_sideways) (This)->lpVtbl->GetGdiCompatibleGlyphMetrics(This,emSize,pixels_per_dip,transform,use_gdi_natural,glyph_indices,glyph_count,metrics,is_sideways) +/*** IDWriteFontFace1 methods ***/ +#define IDWriteFontFace3_GetMetrics(This,metrics) (This)->lpVtbl->IDWriteFontFace1_GetMetrics(This,metrics) +#define IDWriteFontFace3_GetGdiCompatibleMetrics(This,em_size,pixels_per_dip,transform,metrics) (This)->lpVtbl->IDWriteFontFace1_GetGdiCompatibleMetrics(This,em_size,pixels_per_dip,transform,metrics) +#define IDWriteFontFace3_GetCaretMetrics(This,metrics) (This)->lpVtbl->GetCaretMetrics(This,metrics) +#define IDWriteFontFace3_GetUnicodeRanges(This,max_count,ranges,count) (This)->lpVtbl->GetUnicodeRanges(This,max_count,ranges,count) +#define IDWriteFontFace3_IsMonospacedFont(This) (This)->lpVtbl->IsMonospacedFont(This) +#define IDWriteFontFace3_GetDesignGlyphAdvances(This,glyph_count,indices,advances,is_sideways) (This)->lpVtbl->GetDesignGlyphAdvances(This,glyph_count,indices,advances,is_sideways) +#define IDWriteFontFace3_GetGdiCompatibleGlyphAdvances(This,em_size,pixels_per_dip,transform,use_gdi_natural,is_sideways,glyph_count,indices,advances) (This)->lpVtbl->GetGdiCompatibleGlyphAdvances(This,em_size,pixels_per_dip,transform,use_gdi_natural,is_sideways,glyph_count,indices,advances) +#define IDWriteFontFace3_GetKerningPairAdjustments(This,glyph_count,indices,adjustments) (This)->lpVtbl->GetKerningPairAdjustments(This,glyph_count,indices,adjustments) +#define IDWriteFontFace3_HasKerningPairs(This) (This)->lpVtbl->HasKerningPairs(This) +#define IDWriteFontFace3_GetVerticalGlyphVariants(This,glyph_count,nominal_indices,vertical_indices) (This)->lpVtbl->GetVerticalGlyphVariants(This,glyph_count,nominal_indices,vertical_indices) +#define IDWriteFontFace3_HasVerticalGlyphVariants(This) (This)->lpVtbl->HasVerticalGlyphVariants(This) +/*** IDWriteFontFace2 methods ***/ +#define IDWriteFontFace3_IsColorFont(This) (This)->lpVtbl->IsColorFont(This) +#define IDWriteFontFace3_GetColorPaletteCount(This) (This)->lpVtbl->GetColorPaletteCount(This) +#define IDWriteFontFace3_GetPaletteEntryCount(This) (This)->lpVtbl->GetPaletteEntryCount(This) +#define IDWriteFontFace3_GetPaletteEntries(This,palette_index,first_entry_index,entry_count,entries) (This)->lpVtbl->GetPaletteEntries(This,palette_index,first_entry_index,entry_count,entries) +/*** IDWriteFontFace3 methods ***/ +#define IDWriteFontFace3_GetFontFaceReference(This,reference) (This)->lpVtbl->GetFontFaceReference(This,reference) +#define IDWriteFontFace3_GetPanose(This,panose) (This)->lpVtbl->GetPanose(This,panose) +#define IDWriteFontFace3_GetWeight(This) (This)->lpVtbl->GetWeight(This) +#define IDWriteFontFace3_GetStretch(This) (This)->lpVtbl->GetStretch(This) +#define IDWriteFontFace3_GetStyle(This) (This)->lpVtbl->GetStyle(This) +#define IDWriteFontFace3_GetFamilyNames(This,names) (This)->lpVtbl->GetFamilyNames(This,names) +#define IDWriteFontFace3_GetFaceNames(This,names) (This)->lpVtbl->GetFaceNames(This,names) +#define IDWriteFontFace3_GetInformationalStrings(This,stringid,strings,exists) (This)->lpVtbl->GetInformationalStrings(This,stringid,strings,exists) +#define IDWriteFontFace3_HasCharacter(This,character) (This)->lpVtbl->HasCharacter(This,character) +#define IDWriteFontFace3_GetRecommendedRenderingMode(This,emsize,dpi_x,dpi_y,transform,is_sideways,threshold,measuring_mode,params,rendering_mode,gridfit_mode) (This)->lpVtbl->IDWriteFontFace3_GetRecommendedRenderingMode(This,emsize,dpi_x,dpi_y,transform,is_sideways,threshold,measuring_mode,params,rendering_mode,gridfit_mode) +#define IDWriteFontFace3_IsCharacterLocal(This,character) (This)->lpVtbl->IsCharacterLocal(This,character) +#define IDWriteFontFace3_IsGlyphLocal(This,glyph) (This)->lpVtbl->IsGlyphLocal(This,glyph) +#define IDWriteFontFace3_AreCharactersLocal(This,characters,count,enqueue_if_not,are_local) (This)->lpVtbl->AreCharactersLocal(This,characters,count,enqueue_if_not,are_local) +#define IDWriteFontFace3_AreGlyphsLocal(This,glyphs,count,enqueue_if_not,are_local) (This)->lpVtbl->AreGlyphsLocal(This,glyphs,count,enqueue_if_not,are_local) +#else +/*** IUnknown methods ***/ +static inline HRESULT IDWriteFontFace3_QueryInterface(IDWriteFontFace3* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static inline ULONG IDWriteFontFace3_AddRef(IDWriteFontFace3* This) { + return This->lpVtbl->AddRef(This); +} +static inline ULONG IDWriteFontFace3_Release(IDWriteFontFace3* This) { + return This->lpVtbl->Release(This); +} +/*** IDWriteFontFace methods ***/ +static inline DWRITE_FONT_FACE_TYPE IDWriteFontFace3_GetType(IDWriteFontFace3* This) { + return This->lpVtbl->GetType(This); +} +static inline HRESULT IDWriteFontFace3_GetFiles(IDWriteFontFace3* This,UINT32 *number_of_files,IDWriteFontFile **fontfiles) { + return This->lpVtbl->GetFiles(This,number_of_files,fontfiles); +} +static inline UINT32 IDWriteFontFace3_GetIndex(IDWriteFontFace3* This) { + return This->lpVtbl->GetIndex(This); +} +static inline DWRITE_FONT_SIMULATIONS IDWriteFontFace3_GetSimulations(IDWriteFontFace3* This) { + return This->lpVtbl->GetSimulations(This); +} +static inline WINBOOL IDWriteFontFace3_IsSymbolFont(IDWriteFontFace3* This) { + return This->lpVtbl->IsSymbolFont(This); +} +static inline UINT16 IDWriteFontFace3_GetGlyphCount(IDWriteFontFace3* This) { + return This->lpVtbl->GetGlyphCount(This); +} +static inline HRESULT IDWriteFontFace3_GetDesignGlyphMetrics(IDWriteFontFace3* This,const UINT16 *glyph_indices,UINT32 glyph_count,DWRITE_GLYPH_METRICS *metrics,WINBOOL is_sideways) { + return This->lpVtbl->GetDesignGlyphMetrics(This,glyph_indices,glyph_count,metrics,is_sideways); +} +static inline HRESULT IDWriteFontFace3_GetGlyphIndices(IDWriteFontFace3* This,const UINT32 *codepoints,UINT32 count,UINT16 *glyph_indices) { + return This->lpVtbl->GetGlyphIndices(This,codepoints,count,glyph_indices); +} +static inline HRESULT IDWriteFontFace3_TryGetFontTable(IDWriteFontFace3* This,UINT32 table_tag,const void **table_data,UINT32 *table_size,void **context,WINBOOL *exists) { + return This->lpVtbl->TryGetFontTable(This,table_tag,table_data,table_size,context,exists); +} +static inline void IDWriteFontFace3_ReleaseFontTable(IDWriteFontFace3* This,void *table_context) { + This->lpVtbl->ReleaseFontTable(This,table_context); +} +static inline HRESULT IDWriteFontFace3_GetGlyphRunOutline(IDWriteFontFace3* This,FLOAT emSize,const UINT16 *glyph_indices,const FLOAT *glyph_advances,const DWRITE_GLYPH_OFFSET *glyph_offsets,UINT32 glyph_count,WINBOOL is_sideways,WINBOOL is_rtl,IDWriteGeometrySink *geometrysink) { + return This->lpVtbl->GetGlyphRunOutline(This,emSize,glyph_indices,glyph_advances,glyph_offsets,glyph_count,is_sideways,is_rtl,geometrysink); +} +static inline HRESULT IDWriteFontFace3_GetGdiCompatibleGlyphMetrics(IDWriteFontFace3* This,FLOAT emSize,FLOAT pixels_per_dip,const DWRITE_MATRIX *transform,WINBOOL use_gdi_natural,const UINT16 *glyph_indices,UINT32 glyph_count,DWRITE_GLYPH_METRICS *metrics,WINBOOL is_sideways) { + return This->lpVtbl->GetGdiCompatibleGlyphMetrics(This,emSize,pixels_per_dip,transform,use_gdi_natural,glyph_indices,glyph_count,metrics,is_sideways); +} +/*** IDWriteFontFace1 methods ***/ +static inline void IDWriteFontFace3_GetMetrics(IDWriteFontFace3* This,DWRITE_FONT_METRICS1 *metrics) { + This->lpVtbl->IDWriteFontFace1_GetMetrics(This,metrics); +} +static inline HRESULT IDWriteFontFace3_GetGdiCompatibleMetrics(IDWriteFontFace3* This,FLOAT em_size,FLOAT pixels_per_dip,const DWRITE_MATRIX *transform,DWRITE_FONT_METRICS1 *metrics) { + return This->lpVtbl->IDWriteFontFace1_GetGdiCompatibleMetrics(This,em_size,pixels_per_dip,transform,metrics); +} +static inline void IDWriteFontFace3_GetCaretMetrics(IDWriteFontFace3* This,DWRITE_CARET_METRICS *metrics) { + This->lpVtbl->GetCaretMetrics(This,metrics); +} +static inline HRESULT IDWriteFontFace3_GetUnicodeRanges(IDWriteFontFace3* This,UINT32 max_count,DWRITE_UNICODE_RANGE *ranges,UINT32 *count) { + return This->lpVtbl->GetUnicodeRanges(This,max_count,ranges,count); +} +static inline WINBOOL IDWriteFontFace3_IsMonospacedFont(IDWriteFontFace3* This) { + return This->lpVtbl->IsMonospacedFont(This); +} +static inline HRESULT IDWriteFontFace3_GetDesignGlyphAdvances(IDWriteFontFace3* This,UINT32 glyph_count,const UINT16 *indices,INT32 *advances,WINBOOL is_sideways) { + return This->lpVtbl->GetDesignGlyphAdvances(This,glyph_count,indices,advances,is_sideways); +} +static inline HRESULT IDWriteFontFace3_GetGdiCompatibleGlyphAdvances(IDWriteFontFace3* This,FLOAT em_size,FLOAT pixels_per_dip,const DWRITE_MATRIX *transform,WINBOOL use_gdi_natural,WINBOOL is_sideways,UINT32 glyph_count,const UINT16 *indices,INT32 *advances) { + return This->lpVtbl->GetGdiCompatibleGlyphAdvances(This,em_size,pixels_per_dip,transform,use_gdi_natural,is_sideways,glyph_count,indices,advances); +} +static inline HRESULT IDWriteFontFace3_GetKerningPairAdjustments(IDWriteFontFace3* This,UINT32 glyph_count,const UINT16 *indices,INT32 *adjustments) { + return This->lpVtbl->GetKerningPairAdjustments(This,glyph_count,indices,adjustments); +} +static inline WINBOOL IDWriteFontFace3_HasKerningPairs(IDWriteFontFace3* This) { + return This->lpVtbl->HasKerningPairs(This); +} +static inline HRESULT IDWriteFontFace3_GetVerticalGlyphVariants(IDWriteFontFace3* This,UINT32 glyph_count,const UINT16 *nominal_indices,UINT16 *vertical_indices) { + return This->lpVtbl->GetVerticalGlyphVariants(This,glyph_count,nominal_indices,vertical_indices); +} +static inline WINBOOL IDWriteFontFace3_HasVerticalGlyphVariants(IDWriteFontFace3* This) { + return This->lpVtbl->HasVerticalGlyphVariants(This); +} +/*** IDWriteFontFace2 methods ***/ +static inline WINBOOL IDWriteFontFace3_IsColorFont(IDWriteFontFace3* This) { + return This->lpVtbl->IsColorFont(This); +} +static inline UINT32 IDWriteFontFace3_GetColorPaletteCount(IDWriteFontFace3* This) { + return This->lpVtbl->GetColorPaletteCount(This); +} +static inline UINT32 IDWriteFontFace3_GetPaletteEntryCount(IDWriteFontFace3* This) { + return This->lpVtbl->GetPaletteEntryCount(This); +} +static inline HRESULT IDWriteFontFace3_GetPaletteEntries(IDWriteFontFace3* This,UINT32 palette_index,UINT32 first_entry_index,UINT32 entry_count,DWRITE_COLOR_F *entries) { + return This->lpVtbl->GetPaletteEntries(This,palette_index,first_entry_index,entry_count,entries); +} +/*** IDWriteFontFace3 methods ***/ +static inline HRESULT IDWriteFontFace3_GetFontFaceReference(IDWriteFontFace3* This,IDWriteFontFaceReference **reference) { + return This->lpVtbl->GetFontFaceReference(This,reference); +} +static inline void IDWriteFontFace3_GetPanose(IDWriteFontFace3* This,DWRITE_PANOSE *panose) { + This->lpVtbl->GetPanose(This,panose); +} +static inline DWRITE_FONT_WEIGHT IDWriteFontFace3_GetWeight(IDWriteFontFace3* This) { + return This->lpVtbl->GetWeight(This); +} +static inline DWRITE_FONT_STRETCH IDWriteFontFace3_GetStretch(IDWriteFontFace3* This) { + return This->lpVtbl->GetStretch(This); +} +static inline DWRITE_FONT_STYLE IDWriteFontFace3_GetStyle(IDWriteFontFace3* This) { + return This->lpVtbl->GetStyle(This); +} +static inline HRESULT IDWriteFontFace3_GetFamilyNames(IDWriteFontFace3* This,IDWriteLocalizedStrings **names) { + return This->lpVtbl->GetFamilyNames(This,names); +} +static inline HRESULT IDWriteFontFace3_GetFaceNames(IDWriteFontFace3* This,IDWriteLocalizedStrings **names) { + return This->lpVtbl->GetFaceNames(This,names); +} +static inline HRESULT IDWriteFontFace3_GetInformationalStrings(IDWriteFontFace3* This,DWRITE_INFORMATIONAL_STRING_ID stringid,IDWriteLocalizedStrings **strings,WINBOOL *exists) { + return This->lpVtbl->GetInformationalStrings(This,stringid,strings,exists); +} +static inline WINBOOL IDWriteFontFace3_HasCharacter(IDWriteFontFace3* This,UINT32 character) { + return This->lpVtbl->HasCharacter(This,character); +} +static inline HRESULT IDWriteFontFace3_GetRecommendedRenderingMode(IDWriteFontFace3* This,FLOAT emsize,FLOAT dpi_x,FLOAT dpi_y,const DWRITE_MATRIX *transform,WINBOOL is_sideways,DWRITE_OUTLINE_THRESHOLD threshold,DWRITE_MEASURING_MODE measuring_mode,IDWriteRenderingParams *params,DWRITE_RENDERING_MODE1 *rendering_mode,DWRITE_GRID_FIT_MODE *gridfit_mode) { + return This->lpVtbl->IDWriteFontFace3_GetRecommendedRenderingMode(This,emsize,dpi_x,dpi_y,transform,is_sideways,threshold,measuring_mode,params,rendering_mode,gridfit_mode); +} +static inline WINBOOL IDWriteFontFace3_IsCharacterLocal(IDWriteFontFace3* This,UINT32 character) { + return This->lpVtbl->IsCharacterLocal(This,character); +} +static inline WINBOOL IDWriteFontFace3_IsGlyphLocal(IDWriteFontFace3* This,UINT16 glyph) { + return This->lpVtbl->IsGlyphLocal(This,glyph); +} +static inline HRESULT IDWriteFontFace3_AreCharactersLocal(IDWriteFontFace3* This,const WCHAR *characters,UINT32 count,WINBOOL enqueue_if_not,WINBOOL *are_local) { + return This->lpVtbl->AreCharactersLocal(This,characters,count,enqueue_if_not,are_local); +} +static inline HRESULT IDWriteFontFace3_AreGlyphsLocal(IDWriteFontFace3* This,const UINT16 *glyphs,UINT32 count,WINBOOL enqueue_if_not,WINBOOL *are_local) { + return This->lpVtbl->AreGlyphsLocal(This,glyphs,count,enqueue_if_not,are_local); +} +#endif +#endif + +#endif + + +#endif /* __IDWriteFontFace3_INTERFACE_DEFINED__ */ + +typedef struct DWRITE_LINE_METRICS1 { + UINT32 length; + UINT32 trailingWhitespaceLength; + UINT32 newlineLength; + FLOAT height; + FLOAT baseline; + WINBOOL isTrimmed; + FLOAT leadingBefore; + FLOAT leadingAfter; +} DWRITE_LINE_METRICS1; +typedef enum DWRITE_FONT_LINE_GAP_USAGE { + DWRITE_FONT_LINE_GAP_USAGE_DEFAULT = 0, + DWRITE_FONT_LINE_GAP_USAGE_DISABLED = 1, + DWRITE_FONT_LINE_GAP_USAGE_ENABLED = 2 +} DWRITE_FONT_LINE_GAP_USAGE; +typedef struct DWRITE_LINE_SPACING { + DWRITE_LINE_SPACING_METHOD method; + FLOAT height; + FLOAT baseline; + FLOAT leadingBefore; + DWRITE_FONT_LINE_GAP_USAGE fontLineGapUsage; +} DWRITE_LINE_SPACING; +/***************************************************************************** + * IDWriteTextFormat2 interface + */ +#ifndef __IDWriteTextFormat2_INTERFACE_DEFINED__ +#define __IDWriteTextFormat2_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDWriteTextFormat2, 0xf67e0edd, 0x9e3d, 0x4ecc, 0x8c,0x32, 0x41,0x83,0x25,0x3d,0xfe,0x70); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("f67e0edd-9e3d-4ecc-8c32-4183253dfe70") +IDWriteTextFormat2 : public IDWriteTextFormat1 +{ + virtual HRESULT STDMETHODCALLTYPE SetLineSpacing( + const DWRITE_LINE_SPACING *spacing) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetLineSpacing( + DWRITE_LINE_SPACING *spacing) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDWriteTextFormat2, 0xf67e0edd, 0x9e3d, 0x4ecc, 0x8c,0x32, 0x41,0x83,0x25,0x3d,0xfe,0x70) +#endif +#else +typedef struct IDWriteTextFormat2Vtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDWriteTextFormat2 *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDWriteTextFormat2 *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDWriteTextFormat2 *This); + + /*** IDWriteTextFormat methods ***/ + HRESULT (STDMETHODCALLTYPE *SetTextAlignment)( + IDWriteTextFormat2 *This, + DWRITE_TEXT_ALIGNMENT alignment); + + HRESULT (STDMETHODCALLTYPE *SetParagraphAlignment)( + IDWriteTextFormat2 *This, + DWRITE_PARAGRAPH_ALIGNMENT alignment); + + HRESULT (STDMETHODCALLTYPE *SetWordWrapping)( + IDWriteTextFormat2 *This, + DWRITE_WORD_WRAPPING wrapping); + + HRESULT (STDMETHODCALLTYPE *SetReadingDirection)( + IDWriteTextFormat2 *This, + DWRITE_READING_DIRECTION direction); + + HRESULT (STDMETHODCALLTYPE *SetFlowDirection)( + IDWriteTextFormat2 *This, + DWRITE_FLOW_DIRECTION direction); + + HRESULT (STDMETHODCALLTYPE *SetIncrementalTabStop)( + IDWriteTextFormat2 *This, + FLOAT tabstop); + + HRESULT (STDMETHODCALLTYPE *SetTrimming)( + IDWriteTextFormat2 *This, + const DWRITE_TRIMMING *trimming, + IDWriteInlineObject *trimming_sign); + + HRESULT (STDMETHODCALLTYPE *SetLineSpacing)( + IDWriteTextFormat2 *This, + DWRITE_LINE_SPACING_METHOD spacing, + FLOAT line_spacing, + FLOAT baseline); + + DWRITE_TEXT_ALIGNMENT (STDMETHODCALLTYPE *GetTextAlignment)( + IDWriteTextFormat2 *This); + + DWRITE_PARAGRAPH_ALIGNMENT (STDMETHODCALLTYPE *GetParagraphAlignment)( + IDWriteTextFormat2 *This); + + DWRITE_WORD_WRAPPING (STDMETHODCALLTYPE *GetWordWrapping)( + IDWriteTextFormat2 *This); + + DWRITE_READING_DIRECTION (STDMETHODCALLTYPE *GetReadingDirection)( + IDWriteTextFormat2 *This); + + DWRITE_FLOW_DIRECTION (STDMETHODCALLTYPE *GetFlowDirection)( + IDWriteTextFormat2 *This); + + FLOAT (STDMETHODCALLTYPE *GetIncrementalTabStop)( + IDWriteTextFormat2 *This); + + HRESULT (STDMETHODCALLTYPE *GetTrimming)( + IDWriteTextFormat2 *This, + DWRITE_TRIMMING *options, + IDWriteInlineObject **trimming_sign); + + HRESULT (STDMETHODCALLTYPE *GetLineSpacing)( + IDWriteTextFormat2 *This, + DWRITE_LINE_SPACING_METHOD *method, + FLOAT *spacing, + FLOAT *baseline); + + HRESULT (STDMETHODCALLTYPE *GetFontCollection)( + IDWriteTextFormat2 *This, + IDWriteFontCollection **collection); + + UINT32 (STDMETHODCALLTYPE *GetFontFamilyNameLength)( + IDWriteTextFormat2 *This); + + HRESULT (STDMETHODCALLTYPE *GetFontFamilyName)( + IDWriteTextFormat2 *This, + WCHAR *name, + UINT32 size); + + DWRITE_FONT_WEIGHT (STDMETHODCALLTYPE *GetFontWeight)( + IDWriteTextFormat2 *This); + + DWRITE_FONT_STYLE (STDMETHODCALLTYPE *GetFontStyle)( + IDWriteTextFormat2 *This); + + DWRITE_FONT_STRETCH (STDMETHODCALLTYPE *GetFontStretch)( + IDWriteTextFormat2 *This); + + FLOAT (STDMETHODCALLTYPE *GetFontSize)( + IDWriteTextFormat2 *This); + + UINT32 (STDMETHODCALLTYPE *GetLocaleNameLength)( + IDWriteTextFormat2 *This); + + HRESULT (STDMETHODCALLTYPE *GetLocaleName)( + IDWriteTextFormat2 *This, + WCHAR *name, + UINT32 size); + + /*** IDWriteTextFormat1 methods ***/ + HRESULT (STDMETHODCALLTYPE *SetVerticalGlyphOrientation)( + IDWriteTextFormat2 *This, + DWRITE_VERTICAL_GLYPH_ORIENTATION orientation); + + DWRITE_VERTICAL_GLYPH_ORIENTATION (STDMETHODCALLTYPE *GetVerticalGlyphOrientation)( + IDWriteTextFormat2 *This); + + HRESULT (STDMETHODCALLTYPE *SetLastLineWrapping)( + IDWriteTextFormat2 *This, + WINBOOL lastline_wrapping_enabled); + + WINBOOL (STDMETHODCALLTYPE *GetLastLineWrapping)( + IDWriteTextFormat2 *This); + + HRESULT (STDMETHODCALLTYPE *SetOpticalAlignment)( + IDWriteTextFormat2 *This, + DWRITE_OPTICAL_ALIGNMENT alignment); + + DWRITE_OPTICAL_ALIGNMENT (STDMETHODCALLTYPE *GetOpticalAlignment)( + IDWriteTextFormat2 *This); + + HRESULT (STDMETHODCALLTYPE *SetFontFallback)( + IDWriteTextFormat2 *This, + IDWriteFontFallback *fallback); + + HRESULT (STDMETHODCALLTYPE *GetFontFallback)( + IDWriteTextFormat2 *This, + IDWriteFontFallback **fallback); + + /*** IDWriteTextFormat2 methods ***/ + HRESULT (STDMETHODCALLTYPE *IDWriteTextFormat2_SetLineSpacing)( + IDWriteTextFormat2 *This, + const DWRITE_LINE_SPACING *spacing); + + HRESULT (STDMETHODCALLTYPE *IDWriteTextFormat2_GetLineSpacing)( + IDWriteTextFormat2 *This, + DWRITE_LINE_SPACING *spacing); + + END_INTERFACE +} IDWriteTextFormat2Vtbl; + +interface IDWriteTextFormat2 { + CONST_VTBL IDWriteTextFormat2Vtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDWriteTextFormat2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteTextFormat2_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDWriteTextFormat2_Release(This) (This)->lpVtbl->Release(This) +/*** IDWriteTextFormat methods ***/ +#define IDWriteTextFormat2_SetTextAlignment(This,alignment) (This)->lpVtbl->SetTextAlignment(This,alignment) +#define IDWriteTextFormat2_SetParagraphAlignment(This,alignment) (This)->lpVtbl->SetParagraphAlignment(This,alignment) +#define IDWriteTextFormat2_SetWordWrapping(This,wrapping) (This)->lpVtbl->SetWordWrapping(This,wrapping) +#define IDWriteTextFormat2_SetReadingDirection(This,direction) (This)->lpVtbl->SetReadingDirection(This,direction) +#define IDWriteTextFormat2_SetFlowDirection(This,direction) (This)->lpVtbl->SetFlowDirection(This,direction) +#define IDWriteTextFormat2_SetIncrementalTabStop(This,tabstop) (This)->lpVtbl->SetIncrementalTabStop(This,tabstop) +#define IDWriteTextFormat2_SetTrimming(This,trimming,trimming_sign) (This)->lpVtbl->SetTrimming(This,trimming,trimming_sign) +#define IDWriteTextFormat2_GetTextAlignment(This) (This)->lpVtbl->GetTextAlignment(This) +#define IDWriteTextFormat2_GetParagraphAlignment(This) (This)->lpVtbl->GetParagraphAlignment(This) +#define IDWriteTextFormat2_GetWordWrapping(This) (This)->lpVtbl->GetWordWrapping(This) +#define IDWriteTextFormat2_GetReadingDirection(This) (This)->lpVtbl->GetReadingDirection(This) +#define IDWriteTextFormat2_GetFlowDirection(This) (This)->lpVtbl->GetFlowDirection(This) +#define IDWriteTextFormat2_GetIncrementalTabStop(This) (This)->lpVtbl->GetIncrementalTabStop(This) +#define IDWriteTextFormat2_GetTrimming(This,options,trimming_sign) (This)->lpVtbl->GetTrimming(This,options,trimming_sign) +#define IDWriteTextFormat2_GetFontCollection(This,collection) (This)->lpVtbl->GetFontCollection(This,collection) +#define IDWriteTextFormat2_GetFontFamilyNameLength(This) (This)->lpVtbl->GetFontFamilyNameLength(This) +#define IDWriteTextFormat2_GetFontFamilyName(This,name,size) (This)->lpVtbl->GetFontFamilyName(This,name,size) +#define IDWriteTextFormat2_GetFontWeight(This) (This)->lpVtbl->GetFontWeight(This) +#define IDWriteTextFormat2_GetFontStyle(This) (This)->lpVtbl->GetFontStyle(This) +#define IDWriteTextFormat2_GetFontStretch(This) (This)->lpVtbl->GetFontStretch(This) +#define IDWriteTextFormat2_GetFontSize(This) (This)->lpVtbl->GetFontSize(This) +#define IDWriteTextFormat2_GetLocaleNameLength(This) (This)->lpVtbl->GetLocaleNameLength(This) +#define IDWriteTextFormat2_GetLocaleName(This,name,size) (This)->lpVtbl->GetLocaleName(This,name,size) +/*** IDWriteTextFormat1 methods ***/ +#define IDWriteTextFormat2_SetVerticalGlyphOrientation(This,orientation) (This)->lpVtbl->SetVerticalGlyphOrientation(This,orientation) +#define IDWriteTextFormat2_GetVerticalGlyphOrientation(This) (This)->lpVtbl->GetVerticalGlyphOrientation(This) +#define IDWriteTextFormat2_SetLastLineWrapping(This,lastline_wrapping_enabled) (This)->lpVtbl->SetLastLineWrapping(This,lastline_wrapping_enabled) +#define IDWriteTextFormat2_GetLastLineWrapping(This) (This)->lpVtbl->GetLastLineWrapping(This) +#define IDWriteTextFormat2_SetOpticalAlignment(This,alignment) (This)->lpVtbl->SetOpticalAlignment(This,alignment) +#define IDWriteTextFormat2_GetOpticalAlignment(This) (This)->lpVtbl->GetOpticalAlignment(This) +#define IDWriteTextFormat2_SetFontFallback(This,fallback) (This)->lpVtbl->SetFontFallback(This,fallback) +#define IDWriteTextFormat2_GetFontFallback(This,fallback) (This)->lpVtbl->GetFontFallback(This,fallback) +/*** IDWriteTextFormat2 methods ***/ +#define IDWriteTextFormat2_SetLineSpacing(This,spacing) (This)->lpVtbl->IDWriteTextFormat2_SetLineSpacing(This,spacing) +#define IDWriteTextFormat2_GetLineSpacing(This,spacing) (This)->lpVtbl->IDWriteTextFormat2_GetLineSpacing(This,spacing) +#else +/*** IUnknown methods ***/ +static inline HRESULT IDWriteTextFormat2_QueryInterface(IDWriteTextFormat2* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static inline ULONG IDWriteTextFormat2_AddRef(IDWriteTextFormat2* This) { + return This->lpVtbl->AddRef(This); +} +static inline ULONG IDWriteTextFormat2_Release(IDWriteTextFormat2* This) { + return This->lpVtbl->Release(This); +} +/*** IDWriteTextFormat methods ***/ +static inline HRESULT IDWriteTextFormat2_SetTextAlignment(IDWriteTextFormat2* This,DWRITE_TEXT_ALIGNMENT alignment) { + return This->lpVtbl->SetTextAlignment(This,alignment); +} +static inline HRESULT IDWriteTextFormat2_SetParagraphAlignment(IDWriteTextFormat2* This,DWRITE_PARAGRAPH_ALIGNMENT alignment) { + return This->lpVtbl->SetParagraphAlignment(This,alignment); +} +static inline HRESULT IDWriteTextFormat2_SetWordWrapping(IDWriteTextFormat2* This,DWRITE_WORD_WRAPPING wrapping) { + return This->lpVtbl->SetWordWrapping(This,wrapping); +} +static inline HRESULT IDWriteTextFormat2_SetReadingDirection(IDWriteTextFormat2* This,DWRITE_READING_DIRECTION direction) { + return This->lpVtbl->SetReadingDirection(This,direction); +} +static inline HRESULT IDWriteTextFormat2_SetFlowDirection(IDWriteTextFormat2* This,DWRITE_FLOW_DIRECTION direction) { + return This->lpVtbl->SetFlowDirection(This,direction); +} +static inline HRESULT IDWriteTextFormat2_SetIncrementalTabStop(IDWriteTextFormat2* This,FLOAT tabstop) { + return This->lpVtbl->SetIncrementalTabStop(This,tabstop); +} +static inline HRESULT IDWriteTextFormat2_SetTrimming(IDWriteTextFormat2* This,const DWRITE_TRIMMING *trimming,IDWriteInlineObject *trimming_sign) { + return This->lpVtbl->SetTrimming(This,trimming,trimming_sign); +} +static inline DWRITE_TEXT_ALIGNMENT IDWriteTextFormat2_GetTextAlignment(IDWriteTextFormat2* This) { + return This->lpVtbl->GetTextAlignment(This); +} +static inline DWRITE_PARAGRAPH_ALIGNMENT IDWriteTextFormat2_GetParagraphAlignment(IDWriteTextFormat2* This) { + return This->lpVtbl->GetParagraphAlignment(This); +} +static inline DWRITE_WORD_WRAPPING IDWriteTextFormat2_GetWordWrapping(IDWriteTextFormat2* This) { + return This->lpVtbl->GetWordWrapping(This); +} +static inline DWRITE_READING_DIRECTION IDWriteTextFormat2_GetReadingDirection(IDWriteTextFormat2* This) { + return This->lpVtbl->GetReadingDirection(This); +} +static inline DWRITE_FLOW_DIRECTION IDWriteTextFormat2_GetFlowDirection(IDWriteTextFormat2* This) { + return This->lpVtbl->GetFlowDirection(This); +} +static inline FLOAT IDWriteTextFormat2_GetIncrementalTabStop(IDWriteTextFormat2* This) { + return This->lpVtbl->GetIncrementalTabStop(This); +} +static inline HRESULT IDWriteTextFormat2_GetTrimming(IDWriteTextFormat2* This,DWRITE_TRIMMING *options,IDWriteInlineObject **trimming_sign) { + return This->lpVtbl->GetTrimming(This,options,trimming_sign); +} +static inline HRESULT IDWriteTextFormat2_GetFontCollection(IDWriteTextFormat2* This,IDWriteFontCollection **collection) { + return This->lpVtbl->GetFontCollection(This,collection); +} +static inline UINT32 IDWriteTextFormat2_GetFontFamilyNameLength(IDWriteTextFormat2* This) { + return This->lpVtbl->GetFontFamilyNameLength(This); +} +static inline HRESULT IDWriteTextFormat2_GetFontFamilyName(IDWriteTextFormat2* This,WCHAR *name,UINT32 size) { + return This->lpVtbl->GetFontFamilyName(This,name,size); +} +static inline DWRITE_FONT_WEIGHT IDWriteTextFormat2_GetFontWeight(IDWriteTextFormat2* This) { + return This->lpVtbl->GetFontWeight(This); +} +static inline DWRITE_FONT_STYLE IDWriteTextFormat2_GetFontStyle(IDWriteTextFormat2* This) { + return This->lpVtbl->GetFontStyle(This); +} +static inline DWRITE_FONT_STRETCH IDWriteTextFormat2_GetFontStretch(IDWriteTextFormat2* This) { + return This->lpVtbl->GetFontStretch(This); +} +static inline FLOAT IDWriteTextFormat2_GetFontSize(IDWriteTextFormat2* This) { + return This->lpVtbl->GetFontSize(This); +} +static inline UINT32 IDWriteTextFormat2_GetLocaleNameLength(IDWriteTextFormat2* This) { + return This->lpVtbl->GetLocaleNameLength(This); +} +static inline HRESULT IDWriteTextFormat2_GetLocaleName(IDWriteTextFormat2* This,WCHAR *name,UINT32 size) { + return This->lpVtbl->GetLocaleName(This,name,size); +} +/*** IDWriteTextFormat1 methods ***/ +static inline HRESULT IDWriteTextFormat2_SetVerticalGlyphOrientation(IDWriteTextFormat2* This,DWRITE_VERTICAL_GLYPH_ORIENTATION orientation) { + return This->lpVtbl->SetVerticalGlyphOrientation(This,orientation); +} +static inline DWRITE_VERTICAL_GLYPH_ORIENTATION IDWriteTextFormat2_GetVerticalGlyphOrientation(IDWriteTextFormat2* This) { + return This->lpVtbl->GetVerticalGlyphOrientation(This); +} +static inline HRESULT IDWriteTextFormat2_SetLastLineWrapping(IDWriteTextFormat2* This,WINBOOL lastline_wrapping_enabled) { + return This->lpVtbl->SetLastLineWrapping(This,lastline_wrapping_enabled); +} +static inline WINBOOL IDWriteTextFormat2_GetLastLineWrapping(IDWriteTextFormat2* This) { + return This->lpVtbl->GetLastLineWrapping(This); +} +static inline HRESULT IDWriteTextFormat2_SetOpticalAlignment(IDWriteTextFormat2* This,DWRITE_OPTICAL_ALIGNMENT alignment) { + return This->lpVtbl->SetOpticalAlignment(This,alignment); +} +static inline DWRITE_OPTICAL_ALIGNMENT IDWriteTextFormat2_GetOpticalAlignment(IDWriteTextFormat2* This) { + return This->lpVtbl->GetOpticalAlignment(This); +} +static inline HRESULT IDWriteTextFormat2_SetFontFallback(IDWriteTextFormat2* This,IDWriteFontFallback *fallback) { + return This->lpVtbl->SetFontFallback(This,fallback); +} +static inline HRESULT IDWriteTextFormat2_GetFontFallback(IDWriteTextFormat2* This,IDWriteFontFallback **fallback) { + return This->lpVtbl->GetFontFallback(This,fallback); +} +/*** IDWriteTextFormat2 methods ***/ +static inline HRESULT IDWriteTextFormat2_SetLineSpacing(IDWriteTextFormat2* This,const DWRITE_LINE_SPACING *spacing) { + return This->lpVtbl->IDWriteTextFormat2_SetLineSpacing(This,spacing); +} +static inline HRESULT IDWriteTextFormat2_GetLineSpacing(IDWriteTextFormat2* This,DWRITE_LINE_SPACING *spacing) { + return This->lpVtbl->IDWriteTextFormat2_GetLineSpacing(This,spacing); +} +#endif +#endif + +#endif + + +#endif /* __IDWriteTextFormat2_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IDWriteTextFormat3 interface + */ +#ifndef __IDWriteTextFormat3_INTERFACE_DEFINED__ +#define __IDWriteTextFormat3_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDWriteTextFormat3, 0x6d3b5641, 0xe550, 0x430d, 0xa8,0x5b, 0xb7,0xbf,0x48,0xa9,0x34,0x27); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("6d3b5641-e550-430d-a85b-b7bf48a93427") +IDWriteTextFormat3 : public IDWriteTextFormat2 +{ + virtual HRESULT STDMETHODCALLTYPE SetFontAxisValues( + const DWRITE_FONT_AXIS_VALUE *axis_values, + UINT32 num_values) = 0; + + virtual UINT32 STDMETHODCALLTYPE GetFontAxisValueCount( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetFontAxisValues( + DWRITE_FONT_AXIS_VALUE *axis_values, + UINT32 num_values) = 0; + + virtual DWRITE_AUTOMATIC_FONT_AXES STDMETHODCALLTYPE GetAutomaticFontAxes( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetAutomaticFontAxes( + DWRITE_AUTOMATIC_FONT_AXES axes) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDWriteTextFormat3, 0x6d3b5641, 0xe550, 0x430d, 0xa8,0x5b, 0xb7,0xbf,0x48,0xa9,0x34,0x27) +#endif +#else +typedef struct IDWriteTextFormat3Vtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDWriteTextFormat3 *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDWriteTextFormat3 *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDWriteTextFormat3 *This); + + /*** IDWriteTextFormat methods ***/ + HRESULT (STDMETHODCALLTYPE *SetTextAlignment)( + IDWriteTextFormat3 *This, + DWRITE_TEXT_ALIGNMENT alignment); + + HRESULT (STDMETHODCALLTYPE *SetParagraphAlignment)( + IDWriteTextFormat3 *This, + DWRITE_PARAGRAPH_ALIGNMENT alignment); + + HRESULT (STDMETHODCALLTYPE *SetWordWrapping)( + IDWriteTextFormat3 *This, + DWRITE_WORD_WRAPPING wrapping); + + HRESULT (STDMETHODCALLTYPE *SetReadingDirection)( + IDWriteTextFormat3 *This, + DWRITE_READING_DIRECTION direction); + + HRESULT (STDMETHODCALLTYPE *SetFlowDirection)( + IDWriteTextFormat3 *This, + DWRITE_FLOW_DIRECTION direction); + + HRESULT (STDMETHODCALLTYPE *SetIncrementalTabStop)( + IDWriteTextFormat3 *This, + FLOAT tabstop); + + HRESULT (STDMETHODCALLTYPE *SetTrimming)( + IDWriteTextFormat3 *This, + const DWRITE_TRIMMING *trimming, + IDWriteInlineObject *trimming_sign); + + HRESULT (STDMETHODCALLTYPE *SetLineSpacing)( + IDWriteTextFormat3 *This, + DWRITE_LINE_SPACING_METHOD spacing, + FLOAT line_spacing, + FLOAT baseline); + + DWRITE_TEXT_ALIGNMENT (STDMETHODCALLTYPE *GetTextAlignment)( + IDWriteTextFormat3 *This); + + DWRITE_PARAGRAPH_ALIGNMENT (STDMETHODCALLTYPE *GetParagraphAlignment)( + IDWriteTextFormat3 *This); + + DWRITE_WORD_WRAPPING (STDMETHODCALLTYPE *GetWordWrapping)( + IDWriteTextFormat3 *This); + + DWRITE_READING_DIRECTION (STDMETHODCALLTYPE *GetReadingDirection)( + IDWriteTextFormat3 *This); + + DWRITE_FLOW_DIRECTION (STDMETHODCALLTYPE *GetFlowDirection)( + IDWriteTextFormat3 *This); + + FLOAT (STDMETHODCALLTYPE *GetIncrementalTabStop)( + IDWriteTextFormat3 *This); + + HRESULT (STDMETHODCALLTYPE *GetTrimming)( + IDWriteTextFormat3 *This, + DWRITE_TRIMMING *options, + IDWriteInlineObject **trimming_sign); + + HRESULT (STDMETHODCALLTYPE *GetLineSpacing)( + IDWriteTextFormat3 *This, + DWRITE_LINE_SPACING_METHOD *method, + FLOAT *spacing, + FLOAT *baseline); + + HRESULT (STDMETHODCALLTYPE *GetFontCollection)( + IDWriteTextFormat3 *This, + IDWriteFontCollection **collection); + + UINT32 (STDMETHODCALLTYPE *GetFontFamilyNameLength)( + IDWriteTextFormat3 *This); + + HRESULT (STDMETHODCALLTYPE *GetFontFamilyName)( + IDWriteTextFormat3 *This, + WCHAR *name, + UINT32 size); + + DWRITE_FONT_WEIGHT (STDMETHODCALLTYPE *GetFontWeight)( + IDWriteTextFormat3 *This); + + DWRITE_FONT_STYLE (STDMETHODCALLTYPE *GetFontStyle)( + IDWriteTextFormat3 *This); + + DWRITE_FONT_STRETCH (STDMETHODCALLTYPE *GetFontStretch)( + IDWriteTextFormat3 *This); + + FLOAT (STDMETHODCALLTYPE *GetFontSize)( + IDWriteTextFormat3 *This); + + UINT32 (STDMETHODCALLTYPE *GetLocaleNameLength)( + IDWriteTextFormat3 *This); + + HRESULT (STDMETHODCALLTYPE *GetLocaleName)( + IDWriteTextFormat3 *This, + WCHAR *name, + UINT32 size); + + /*** IDWriteTextFormat1 methods ***/ + HRESULT (STDMETHODCALLTYPE *SetVerticalGlyphOrientation)( + IDWriteTextFormat3 *This, + DWRITE_VERTICAL_GLYPH_ORIENTATION orientation); + + DWRITE_VERTICAL_GLYPH_ORIENTATION (STDMETHODCALLTYPE *GetVerticalGlyphOrientation)( + IDWriteTextFormat3 *This); + + HRESULT (STDMETHODCALLTYPE *SetLastLineWrapping)( + IDWriteTextFormat3 *This, + WINBOOL lastline_wrapping_enabled); + + WINBOOL (STDMETHODCALLTYPE *GetLastLineWrapping)( + IDWriteTextFormat3 *This); + + HRESULT (STDMETHODCALLTYPE *SetOpticalAlignment)( + IDWriteTextFormat3 *This, + DWRITE_OPTICAL_ALIGNMENT alignment); + + DWRITE_OPTICAL_ALIGNMENT (STDMETHODCALLTYPE *GetOpticalAlignment)( + IDWriteTextFormat3 *This); + + HRESULT (STDMETHODCALLTYPE *SetFontFallback)( + IDWriteTextFormat3 *This, + IDWriteFontFallback *fallback); + + HRESULT (STDMETHODCALLTYPE *GetFontFallback)( + IDWriteTextFormat3 *This, + IDWriteFontFallback **fallback); + + /*** IDWriteTextFormat2 methods ***/ + HRESULT (STDMETHODCALLTYPE *IDWriteTextFormat2_SetLineSpacing)( + IDWriteTextFormat3 *This, + const DWRITE_LINE_SPACING *spacing); + + HRESULT (STDMETHODCALLTYPE *IDWriteTextFormat2_GetLineSpacing)( + IDWriteTextFormat3 *This, + DWRITE_LINE_SPACING *spacing); + + /*** IDWriteTextFormat3 methods ***/ + HRESULT (STDMETHODCALLTYPE *SetFontAxisValues)( + IDWriteTextFormat3 *This, + const DWRITE_FONT_AXIS_VALUE *axis_values, + UINT32 num_values); + + UINT32 (STDMETHODCALLTYPE *GetFontAxisValueCount)( + IDWriteTextFormat3 *This); + + HRESULT (STDMETHODCALLTYPE *GetFontAxisValues)( + IDWriteTextFormat3 *This, + DWRITE_FONT_AXIS_VALUE *axis_values, + UINT32 num_values); + + DWRITE_AUTOMATIC_FONT_AXES (STDMETHODCALLTYPE *GetAutomaticFontAxes)( + IDWriteTextFormat3 *This); + + HRESULT (STDMETHODCALLTYPE *SetAutomaticFontAxes)( + IDWriteTextFormat3 *This, + DWRITE_AUTOMATIC_FONT_AXES axes); + + END_INTERFACE +} IDWriteTextFormat3Vtbl; + +interface IDWriteTextFormat3 { + CONST_VTBL IDWriteTextFormat3Vtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDWriteTextFormat3_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteTextFormat3_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDWriteTextFormat3_Release(This) (This)->lpVtbl->Release(This) +/*** IDWriteTextFormat methods ***/ +#define IDWriteTextFormat3_SetTextAlignment(This,alignment) (This)->lpVtbl->SetTextAlignment(This,alignment) +#define IDWriteTextFormat3_SetParagraphAlignment(This,alignment) (This)->lpVtbl->SetParagraphAlignment(This,alignment) +#define IDWriteTextFormat3_SetWordWrapping(This,wrapping) (This)->lpVtbl->SetWordWrapping(This,wrapping) +#define IDWriteTextFormat3_SetReadingDirection(This,direction) (This)->lpVtbl->SetReadingDirection(This,direction) +#define IDWriteTextFormat3_SetFlowDirection(This,direction) (This)->lpVtbl->SetFlowDirection(This,direction) +#define IDWriteTextFormat3_SetIncrementalTabStop(This,tabstop) (This)->lpVtbl->SetIncrementalTabStop(This,tabstop) +#define IDWriteTextFormat3_SetTrimming(This,trimming,trimming_sign) (This)->lpVtbl->SetTrimming(This,trimming,trimming_sign) +#define IDWriteTextFormat3_GetTextAlignment(This) (This)->lpVtbl->GetTextAlignment(This) +#define IDWriteTextFormat3_GetParagraphAlignment(This) (This)->lpVtbl->GetParagraphAlignment(This) +#define IDWriteTextFormat3_GetWordWrapping(This) (This)->lpVtbl->GetWordWrapping(This) +#define IDWriteTextFormat3_GetReadingDirection(This) (This)->lpVtbl->GetReadingDirection(This) +#define IDWriteTextFormat3_GetFlowDirection(This) (This)->lpVtbl->GetFlowDirection(This) +#define IDWriteTextFormat3_GetIncrementalTabStop(This) (This)->lpVtbl->GetIncrementalTabStop(This) +#define IDWriteTextFormat3_GetTrimming(This,options,trimming_sign) (This)->lpVtbl->GetTrimming(This,options,trimming_sign) +#define IDWriteTextFormat3_GetFontCollection(This,collection) (This)->lpVtbl->GetFontCollection(This,collection) +#define IDWriteTextFormat3_GetFontFamilyNameLength(This) (This)->lpVtbl->GetFontFamilyNameLength(This) +#define IDWriteTextFormat3_GetFontFamilyName(This,name,size) (This)->lpVtbl->GetFontFamilyName(This,name,size) +#define IDWriteTextFormat3_GetFontWeight(This) (This)->lpVtbl->GetFontWeight(This) +#define IDWriteTextFormat3_GetFontStyle(This) (This)->lpVtbl->GetFontStyle(This) +#define IDWriteTextFormat3_GetFontStretch(This) (This)->lpVtbl->GetFontStretch(This) +#define IDWriteTextFormat3_GetFontSize(This) (This)->lpVtbl->GetFontSize(This) +#define IDWriteTextFormat3_GetLocaleNameLength(This) (This)->lpVtbl->GetLocaleNameLength(This) +#define IDWriteTextFormat3_GetLocaleName(This,name,size) (This)->lpVtbl->GetLocaleName(This,name,size) +/*** IDWriteTextFormat1 methods ***/ +#define IDWriteTextFormat3_SetVerticalGlyphOrientation(This,orientation) (This)->lpVtbl->SetVerticalGlyphOrientation(This,orientation) +#define IDWriteTextFormat3_GetVerticalGlyphOrientation(This) (This)->lpVtbl->GetVerticalGlyphOrientation(This) +#define IDWriteTextFormat3_SetLastLineWrapping(This,lastline_wrapping_enabled) (This)->lpVtbl->SetLastLineWrapping(This,lastline_wrapping_enabled) +#define IDWriteTextFormat3_GetLastLineWrapping(This) (This)->lpVtbl->GetLastLineWrapping(This) +#define IDWriteTextFormat3_SetOpticalAlignment(This,alignment) (This)->lpVtbl->SetOpticalAlignment(This,alignment) +#define IDWriteTextFormat3_GetOpticalAlignment(This) (This)->lpVtbl->GetOpticalAlignment(This) +#define IDWriteTextFormat3_SetFontFallback(This,fallback) (This)->lpVtbl->SetFontFallback(This,fallback) +#define IDWriteTextFormat3_GetFontFallback(This,fallback) (This)->lpVtbl->GetFontFallback(This,fallback) +/*** IDWriteTextFormat2 methods ***/ +#define IDWriteTextFormat3_SetLineSpacing(This,spacing) (This)->lpVtbl->IDWriteTextFormat2_SetLineSpacing(This,spacing) +#define IDWriteTextFormat3_GetLineSpacing(This,spacing) (This)->lpVtbl->IDWriteTextFormat2_GetLineSpacing(This,spacing) +/*** IDWriteTextFormat3 methods ***/ +#define IDWriteTextFormat3_SetFontAxisValues(This,axis_values,num_values) (This)->lpVtbl->SetFontAxisValues(This,axis_values,num_values) +#define IDWriteTextFormat3_GetFontAxisValueCount(This) (This)->lpVtbl->GetFontAxisValueCount(This) +#define IDWriteTextFormat3_GetFontAxisValues(This,axis_values,num_values) (This)->lpVtbl->GetFontAxisValues(This,axis_values,num_values) +#define IDWriteTextFormat3_GetAutomaticFontAxes(This) (This)->lpVtbl->GetAutomaticFontAxes(This) +#define IDWriteTextFormat3_SetAutomaticFontAxes(This,axes) (This)->lpVtbl->SetAutomaticFontAxes(This,axes) +#else +/*** IUnknown methods ***/ +static inline HRESULT IDWriteTextFormat3_QueryInterface(IDWriteTextFormat3* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static inline ULONG IDWriteTextFormat3_AddRef(IDWriteTextFormat3* This) { + return This->lpVtbl->AddRef(This); +} +static inline ULONG IDWriteTextFormat3_Release(IDWriteTextFormat3* This) { + return This->lpVtbl->Release(This); +} +/*** IDWriteTextFormat methods ***/ +static inline HRESULT IDWriteTextFormat3_SetTextAlignment(IDWriteTextFormat3* This,DWRITE_TEXT_ALIGNMENT alignment) { + return This->lpVtbl->SetTextAlignment(This,alignment); +} +static inline HRESULT IDWriteTextFormat3_SetParagraphAlignment(IDWriteTextFormat3* This,DWRITE_PARAGRAPH_ALIGNMENT alignment) { + return This->lpVtbl->SetParagraphAlignment(This,alignment); +} +static inline HRESULT IDWriteTextFormat3_SetWordWrapping(IDWriteTextFormat3* This,DWRITE_WORD_WRAPPING wrapping) { + return This->lpVtbl->SetWordWrapping(This,wrapping); +} +static inline HRESULT IDWriteTextFormat3_SetReadingDirection(IDWriteTextFormat3* This,DWRITE_READING_DIRECTION direction) { + return This->lpVtbl->SetReadingDirection(This,direction); +} +static inline HRESULT IDWriteTextFormat3_SetFlowDirection(IDWriteTextFormat3* This,DWRITE_FLOW_DIRECTION direction) { + return This->lpVtbl->SetFlowDirection(This,direction); +} +static inline HRESULT IDWriteTextFormat3_SetIncrementalTabStop(IDWriteTextFormat3* This,FLOAT tabstop) { + return This->lpVtbl->SetIncrementalTabStop(This,tabstop); +} +static inline HRESULT IDWriteTextFormat3_SetTrimming(IDWriteTextFormat3* This,const DWRITE_TRIMMING *trimming,IDWriteInlineObject *trimming_sign) { + return This->lpVtbl->SetTrimming(This,trimming,trimming_sign); +} +static inline DWRITE_TEXT_ALIGNMENT IDWriteTextFormat3_GetTextAlignment(IDWriteTextFormat3* This) { + return This->lpVtbl->GetTextAlignment(This); +} +static inline DWRITE_PARAGRAPH_ALIGNMENT IDWriteTextFormat3_GetParagraphAlignment(IDWriteTextFormat3* This) { + return This->lpVtbl->GetParagraphAlignment(This); +} +static inline DWRITE_WORD_WRAPPING IDWriteTextFormat3_GetWordWrapping(IDWriteTextFormat3* This) { + return This->lpVtbl->GetWordWrapping(This); +} +static inline DWRITE_READING_DIRECTION IDWriteTextFormat3_GetReadingDirection(IDWriteTextFormat3* This) { + return This->lpVtbl->GetReadingDirection(This); +} +static inline DWRITE_FLOW_DIRECTION IDWriteTextFormat3_GetFlowDirection(IDWriteTextFormat3* This) { + return This->lpVtbl->GetFlowDirection(This); +} +static inline FLOAT IDWriteTextFormat3_GetIncrementalTabStop(IDWriteTextFormat3* This) { + return This->lpVtbl->GetIncrementalTabStop(This); +} +static inline HRESULT IDWriteTextFormat3_GetTrimming(IDWriteTextFormat3* This,DWRITE_TRIMMING *options,IDWriteInlineObject **trimming_sign) { + return This->lpVtbl->GetTrimming(This,options,trimming_sign); +} +static inline HRESULT IDWriteTextFormat3_GetFontCollection(IDWriteTextFormat3* This,IDWriteFontCollection **collection) { + return This->lpVtbl->GetFontCollection(This,collection); +} +static inline UINT32 IDWriteTextFormat3_GetFontFamilyNameLength(IDWriteTextFormat3* This) { + return This->lpVtbl->GetFontFamilyNameLength(This); +} +static inline HRESULT IDWriteTextFormat3_GetFontFamilyName(IDWriteTextFormat3* This,WCHAR *name,UINT32 size) { + return This->lpVtbl->GetFontFamilyName(This,name,size); +} +static inline DWRITE_FONT_WEIGHT IDWriteTextFormat3_GetFontWeight(IDWriteTextFormat3* This) { + return This->lpVtbl->GetFontWeight(This); +} +static inline DWRITE_FONT_STYLE IDWriteTextFormat3_GetFontStyle(IDWriteTextFormat3* This) { + return This->lpVtbl->GetFontStyle(This); +} +static inline DWRITE_FONT_STRETCH IDWriteTextFormat3_GetFontStretch(IDWriteTextFormat3* This) { + return This->lpVtbl->GetFontStretch(This); +} +static inline FLOAT IDWriteTextFormat3_GetFontSize(IDWriteTextFormat3* This) { + return This->lpVtbl->GetFontSize(This); +} +static inline UINT32 IDWriteTextFormat3_GetLocaleNameLength(IDWriteTextFormat3* This) { + return This->lpVtbl->GetLocaleNameLength(This); +} +static inline HRESULT IDWriteTextFormat3_GetLocaleName(IDWriteTextFormat3* This,WCHAR *name,UINT32 size) { + return This->lpVtbl->GetLocaleName(This,name,size); +} +/*** IDWriteTextFormat1 methods ***/ +static inline HRESULT IDWriteTextFormat3_SetVerticalGlyphOrientation(IDWriteTextFormat3* This,DWRITE_VERTICAL_GLYPH_ORIENTATION orientation) { + return This->lpVtbl->SetVerticalGlyphOrientation(This,orientation); +} +static inline DWRITE_VERTICAL_GLYPH_ORIENTATION IDWriteTextFormat3_GetVerticalGlyphOrientation(IDWriteTextFormat3* This) { + return This->lpVtbl->GetVerticalGlyphOrientation(This); +} +static inline HRESULT IDWriteTextFormat3_SetLastLineWrapping(IDWriteTextFormat3* This,WINBOOL lastline_wrapping_enabled) { + return This->lpVtbl->SetLastLineWrapping(This,lastline_wrapping_enabled); +} +static inline WINBOOL IDWriteTextFormat3_GetLastLineWrapping(IDWriteTextFormat3* This) { + return This->lpVtbl->GetLastLineWrapping(This); +} +static inline HRESULT IDWriteTextFormat3_SetOpticalAlignment(IDWriteTextFormat3* This,DWRITE_OPTICAL_ALIGNMENT alignment) { + return This->lpVtbl->SetOpticalAlignment(This,alignment); +} +static inline DWRITE_OPTICAL_ALIGNMENT IDWriteTextFormat3_GetOpticalAlignment(IDWriteTextFormat3* This) { + return This->lpVtbl->GetOpticalAlignment(This); +} +static inline HRESULT IDWriteTextFormat3_SetFontFallback(IDWriteTextFormat3* This,IDWriteFontFallback *fallback) { + return This->lpVtbl->SetFontFallback(This,fallback); +} +static inline HRESULT IDWriteTextFormat3_GetFontFallback(IDWriteTextFormat3* This,IDWriteFontFallback **fallback) { + return This->lpVtbl->GetFontFallback(This,fallback); +} +/*** IDWriteTextFormat2 methods ***/ +static inline HRESULT IDWriteTextFormat3_SetLineSpacing(IDWriteTextFormat3* This,const DWRITE_LINE_SPACING *spacing) { + return This->lpVtbl->IDWriteTextFormat2_SetLineSpacing(This,spacing); +} +static inline HRESULT IDWriteTextFormat3_GetLineSpacing(IDWriteTextFormat3* This,DWRITE_LINE_SPACING *spacing) { + return This->lpVtbl->IDWriteTextFormat2_GetLineSpacing(This,spacing); +} +/*** IDWriteTextFormat3 methods ***/ +static inline HRESULT IDWriteTextFormat3_SetFontAxisValues(IDWriteTextFormat3* This,const DWRITE_FONT_AXIS_VALUE *axis_values,UINT32 num_values) { + return This->lpVtbl->SetFontAxisValues(This,axis_values,num_values); +} +static inline UINT32 IDWriteTextFormat3_GetFontAxisValueCount(IDWriteTextFormat3* This) { + return This->lpVtbl->GetFontAxisValueCount(This); +} +static inline HRESULT IDWriteTextFormat3_GetFontAxisValues(IDWriteTextFormat3* This,DWRITE_FONT_AXIS_VALUE *axis_values,UINT32 num_values) { + return This->lpVtbl->GetFontAxisValues(This,axis_values,num_values); +} +static inline DWRITE_AUTOMATIC_FONT_AXES IDWriteTextFormat3_GetAutomaticFontAxes(IDWriteTextFormat3* This) { + return This->lpVtbl->GetAutomaticFontAxes(This); +} +static inline HRESULT IDWriteTextFormat3_SetAutomaticFontAxes(IDWriteTextFormat3* This,DWRITE_AUTOMATIC_FONT_AXES axes) { + return This->lpVtbl->SetAutomaticFontAxes(This,axes); +} +#endif +#endif + +#endif + + +#endif /* __IDWriteTextFormat3_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IDWriteTextLayout3 interface + */ +#ifndef __IDWriteTextLayout3_INTERFACE_DEFINED__ +#define __IDWriteTextLayout3_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDWriteTextLayout3, 0x07ddcd52, 0x020e, 0x4de8, 0xac,0x33, 0x6c,0x95,0x3d,0x83,0xf9,0x2d); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("07ddcd52-020e-4de8-ac33-6c953d83f92d") +IDWriteTextLayout3 : public IDWriteTextLayout2 +{ + virtual HRESULT STDMETHODCALLTYPE InvalidateLayout( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetLineSpacing( + const DWRITE_LINE_SPACING *spacing) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetLineSpacing( + DWRITE_LINE_SPACING *spacing) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetLineMetrics( + DWRITE_LINE_METRICS1 *metrics, + UINT32 max_count, + UINT32 *count) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDWriteTextLayout3, 0x07ddcd52, 0x020e, 0x4de8, 0xac,0x33, 0x6c,0x95,0x3d,0x83,0xf9,0x2d) +#endif +#else +typedef struct IDWriteTextLayout3Vtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDWriteTextLayout3 *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDWriteTextLayout3 *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDWriteTextLayout3 *This); + + /*** IDWriteTextFormat methods ***/ + HRESULT (STDMETHODCALLTYPE *SetTextAlignment)( + IDWriteTextLayout3 *This, + DWRITE_TEXT_ALIGNMENT alignment); + + HRESULT (STDMETHODCALLTYPE *SetParagraphAlignment)( + IDWriteTextLayout3 *This, + DWRITE_PARAGRAPH_ALIGNMENT alignment); + + HRESULT (STDMETHODCALLTYPE *SetWordWrapping)( + IDWriteTextLayout3 *This, + DWRITE_WORD_WRAPPING wrapping); + + HRESULT (STDMETHODCALLTYPE *SetReadingDirection)( + IDWriteTextLayout3 *This, + DWRITE_READING_DIRECTION direction); + + HRESULT (STDMETHODCALLTYPE *SetFlowDirection)( + IDWriteTextLayout3 *This, + DWRITE_FLOW_DIRECTION direction); + + HRESULT (STDMETHODCALLTYPE *SetIncrementalTabStop)( + IDWriteTextLayout3 *This, + FLOAT tabstop); + + HRESULT (STDMETHODCALLTYPE *SetTrimming)( + IDWriteTextLayout3 *This, + const DWRITE_TRIMMING *trimming, + IDWriteInlineObject *trimming_sign); + + HRESULT (STDMETHODCALLTYPE *SetLineSpacing)( + IDWriteTextLayout3 *This, + DWRITE_LINE_SPACING_METHOD spacing, + FLOAT line_spacing, + FLOAT baseline); + + DWRITE_TEXT_ALIGNMENT (STDMETHODCALLTYPE *GetTextAlignment)( + IDWriteTextLayout3 *This); + + DWRITE_PARAGRAPH_ALIGNMENT (STDMETHODCALLTYPE *GetParagraphAlignment)( + IDWriteTextLayout3 *This); + + DWRITE_WORD_WRAPPING (STDMETHODCALLTYPE *GetWordWrapping)( + IDWriteTextLayout3 *This); + + DWRITE_READING_DIRECTION (STDMETHODCALLTYPE *GetReadingDirection)( + IDWriteTextLayout3 *This); + + DWRITE_FLOW_DIRECTION (STDMETHODCALLTYPE *GetFlowDirection)( + IDWriteTextLayout3 *This); + + FLOAT (STDMETHODCALLTYPE *GetIncrementalTabStop)( + IDWriteTextLayout3 *This); + + HRESULT (STDMETHODCALLTYPE *GetTrimming)( + IDWriteTextLayout3 *This, + DWRITE_TRIMMING *options, + IDWriteInlineObject **trimming_sign); + + HRESULT (STDMETHODCALLTYPE *GetLineSpacing)( + IDWriteTextLayout3 *This, + DWRITE_LINE_SPACING_METHOD *method, + FLOAT *spacing, + FLOAT *baseline); + + HRESULT (STDMETHODCALLTYPE *GetFontCollection)( + IDWriteTextLayout3 *This, + IDWriteFontCollection **collection); + + UINT32 (STDMETHODCALLTYPE *GetFontFamilyNameLength)( + IDWriteTextLayout3 *This); + + HRESULT (STDMETHODCALLTYPE *GetFontFamilyName)( + IDWriteTextLayout3 *This, + WCHAR *name, + UINT32 size); + + DWRITE_FONT_WEIGHT (STDMETHODCALLTYPE *GetFontWeight)( + IDWriteTextLayout3 *This); + + DWRITE_FONT_STYLE (STDMETHODCALLTYPE *GetFontStyle)( + IDWriteTextLayout3 *This); + + DWRITE_FONT_STRETCH (STDMETHODCALLTYPE *GetFontStretch)( + IDWriteTextLayout3 *This); + + FLOAT (STDMETHODCALLTYPE *GetFontSize)( + IDWriteTextLayout3 *This); + + UINT32 (STDMETHODCALLTYPE *GetLocaleNameLength)( + IDWriteTextLayout3 *This); + + HRESULT (STDMETHODCALLTYPE *GetLocaleName)( + IDWriteTextLayout3 *This, + WCHAR *name, + UINT32 size); + + /*** IDWriteTextLayout methods ***/ + HRESULT (STDMETHODCALLTYPE *SetMaxWidth)( + IDWriteTextLayout3 *This, + FLOAT maxWidth); + + HRESULT (STDMETHODCALLTYPE *SetMaxHeight)( + IDWriteTextLayout3 *This, + FLOAT maxHeight); + + HRESULT (STDMETHODCALLTYPE *SetFontCollection)( + IDWriteTextLayout3 *This, + IDWriteFontCollection *collection, + DWRITE_TEXT_RANGE range); + + HRESULT (STDMETHODCALLTYPE *SetFontFamilyName)( + IDWriteTextLayout3 *This, + const WCHAR *name, + DWRITE_TEXT_RANGE range); + + HRESULT (STDMETHODCALLTYPE *SetFontWeight)( + IDWriteTextLayout3 *This, + DWRITE_FONT_WEIGHT weight, + DWRITE_TEXT_RANGE range); + + HRESULT (STDMETHODCALLTYPE *SetFontStyle)( + IDWriteTextLayout3 *This, + DWRITE_FONT_STYLE style, + DWRITE_TEXT_RANGE range); + + HRESULT (STDMETHODCALLTYPE *SetFontStretch)( + IDWriteTextLayout3 *This, + DWRITE_FONT_STRETCH stretch, + DWRITE_TEXT_RANGE range); + + HRESULT (STDMETHODCALLTYPE *SetFontSize)( + IDWriteTextLayout3 *This, + FLOAT size, + DWRITE_TEXT_RANGE range); + + HRESULT (STDMETHODCALLTYPE *SetUnderline)( + IDWriteTextLayout3 *This, + WINBOOL underline, + DWRITE_TEXT_RANGE range); + + HRESULT (STDMETHODCALLTYPE *SetStrikethrough)( + IDWriteTextLayout3 *This, + WINBOOL strikethrough, + DWRITE_TEXT_RANGE range); + + HRESULT (STDMETHODCALLTYPE *SetDrawingEffect)( + IDWriteTextLayout3 *This, + IUnknown *effect, + DWRITE_TEXT_RANGE range); + + HRESULT (STDMETHODCALLTYPE *SetInlineObject)( + IDWriteTextLayout3 *This, + IDWriteInlineObject *object, + DWRITE_TEXT_RANGE range); + + HRESULT (STDMETHODCALLTYPE *SetTypography)( + IDWriteTextLayout3 *This, + IDWriteTypography *typography, + DWRITE_TEXT_RANGE range); + + HRESULT (STDMETHODCALLTYPE *SetLocaleName)( + IDWriteTextLayout3 *This, + const WCHAR *locale, + DWRITE_TEXT_RANGE range); + + FLOAT (STDMETHODCALLTYPE *GetMaxWidth)( + IDWriteTextLayout3 *This); + + FLOAT (STDMETHODCALLTYPE *GetMaxHeight)( + IDWriteTextLayout3 *This); + + HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout_GetFontCollection)( + IDWriteTextLayout3 *This, + UINT32 pos, + IDWriteFontCollection **collection, + DWRITE_TEXT_RANGE *range); + + HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout_GetFontFamilyNameLength)( + IDWriteTextLayout3 *This, + UINT32 pos, + UINT32 *len, + DWRITE_TEXT_RANGE *range); + + HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout_GetFontFamilyName)( + IDWriteTextLayout3 *This, + UINT32 position, + WCHAR *name, + UINT32 name_size, + DWRITE_TEXT_RANGE *range); + + HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout_GetFontWeight)( + IDWriteTextLayout3 *This, + UINT32 position, + DWRITE_FONT_WEIGHT *weight, + DWRITE_TEXT_RANGE *range); + + HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout_GetFontStyle)( + IDWriteTextLayout3 *This, + UINT32 currentPosition, + DWRITE_FONT_STYLE *style, + DWRITE_TEXT_RANGE *range); + + HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout_GetFontStretch)( + IDWriteTextLayout3 *This, + UINT32 position, + DWRITE_FONT_STRETCH *stretch, + DWRITE_TEXT_RANGE *range); + + HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout_GetFontSize)( + IDWriteTextLayout3 *This, + UINT32 position, + FLOAT *size, + DWRITE_TEXT_RANGE *range); + + HRESULT (STDMETHODCALLTYPE *GetUnderline)( + IDWriteTextLayout3 *This, + UINT32 position, + WINBOOL *has_underline, + DWRITE_TEXT_RANGE *range); + + HRESULT (STDMETHODCALLTYPE *GetStrikethrough)( + IDWriteTextLayout3 *This, + UINT32 position, + WINBOOL *has_strikethrough, + DWRITE_TEXT_RANGE *range); + + HRESULT (STDMETHODCALLTYPE *GetDrawingEffect)( + IDWriteTextLayout3 *This, + UINT32 position, + IUnknown **effect, + DWRITE_TEXT_RANGE *range); + + HRESULT (STDMETHODCALLTYPE *GetInlineObject)( + IDWriteTextLayout3 *This, + UINT32 position, + IDWriteInlineObject **object, + DWRITE_TEXT_RANGE *range); + + HRESULT (STDMETHODCALLTYPE *GetTypography)( + IDWriteTextLayout3 *This, + UINT32 position, + IDWriteTypography **typography, + DWRITE_TEXT_RANGE *range); + + HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout_GetLocaleNameLength)( + IDWriteTextLayout3 *This, + UINT32 position, + UINT32 *length, + DWRITE_TEXT_RANGE *range); + + HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout_GetLocaleName)( + IDWriteTextLayout3 *This, + UINT32 position, + WCHAR *name, + UINT32 name_size, + DWRITE_TEXT_RANGE *range); + + HRESULT (STDMETHODCALLTYPE *Draw)( + IDWriteTextLayout3 *This, + void *context, + IDWriteTextRenderer *renderer, + FLOAT originX, + FLOAT originY); + + HRESULT (STDMETHODCALLTYPE *GetLineMetrics)( + IDWriteTextLayout3 *This, + DWRITE_LINE_METRICS *metrics, + UINT32 max_count, + UINT32 *actual_count); + + HRESULT (STDMETHODCALLTYPE *GetMetrics)( + IDWriteTextLayout3 *This, + DWRITE_TEXT_METRICS *metrics); + + HRESULT (STDMETHODCALLTYPE *GetOverhangMetrics)( + IDWriteTextLayout3 *This, + DWRITE_OVERHANG_METRICS *overhangs); + + HRESULT (STDMETHODCALLTYPE *GetClusterMetrics)( + IDWriteTextLayout3 *This, + DWRITE_CLUSTER_METRICS *metrics, + UINT32 max_count, + UINT32 *act_count); + + HRESULT (STDMETHODCALLTYPE *DetermineMinWidth)( + IDWriteTextLayout3 *This, + FLOAT *min_width); + + HRESULT (STDMETHODCALLTYPE *HitTestPoint)( + IDWriteTextLayout3 *This, + FLOAT pointX, + FLOAT pointY, + WINBOOL *is_trailinghit, + WINBOOL *is_inside, + DWRITE_HIT_TEST_METRICS *metrics); + + HRESULT (STDMETHODCALLTYPE *HitTestTextPosition)( + IDWriteTextLayout3 *This, + UINT32 textPosition, + WINBOOL is_trailinghit, + FLOAT *pointX, + FLOAT *pointY, + DWRITE_HIT_TEST_METRICS *metrics); + + HRESULT (STDMETHODCALLTYPE *HitTestTextRange)( + IDWriteTextLayout3 *This, + UINT32 textPosition, + UINT32 textLength, + FLOAT originX, + FLOAT originY, + DWRITE_HIT_TEST_METRICS *metrics, + UINT32 max_metricscount, + UINT32 *actual_metricscount); + + /*** IDWriteTextLayout1 methods ***/ + HRESULT (STDMETHODCALLTYPE *SetPairKerning)( + IDWriteTextLayout3 *This, + WINBOOL is_pairkerning_enabled, + DWRITE_TEXT_RANGE range); + + HRESULT (STDMETHODCALLTYPE *GetPairKerning)( + IDWriteTextLayout3 *This, + UINT32 position, + WINBOOL *is_pairkerning_enabled, + DWRITE_TEXT_RANGE *range); + + HRESULT (STDMETHODCALLTYPE *SetCharacterSpacing)( + IDWriteTextLayout3 *This, + FLOAT leading_spacing, + FLOAT trailing_spacing, + FLOAT minimum_advance_width, + DWRITE_TEXT_RANGE range); + + HRESULT (STDMETHODCALLTYPE *GetCharacterSpacing)( + IDWriteTextLayout3 *This, + UINT32 position, + FLOAT *leading_spacing, + FLOAT *trailing_spacing, + FLOAT *minimum_advance_width, + DWRITE_TEXT_RANGE *range); + + /*** IDWriteTextLayout2 methods ***/ + HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout2_GetMetrics)( + IDWriteTextLayout3 *This, + DWRITE_TEXT_METRICS1 *metrics); + + HRESULT (STDMETHODCALLTYPE *SetVerticalGlyphOrientation)( + IDWriteTextLayout3 *This, + DWRITE_VERTICAL_GLYPH_ORIENTATION orientation); + + DWRITE_VERTICAL_GLYPH_ORIENTATION (STDMETHODCALLTYPE *GetVerticalGlyphOrientation)( + IDWriteTextLayout3 *This); + + HRESULT (STDMETHODCALLTYPE *SetLastLineWrapping)( + IDWriteTextLayout3 *This, + WINBOOL lastline_wrapping_enabled); + + WINBOOL (STDMETHODCALLTYPE *GetLastLineWrapping)( + IDWriteTextLayout3 *This); + + HRESULT (STDMETHODCALLTYPE *SetOpticalAlignment)( + IDWriteTextLayout3 *This, + DWRITE_OPTICAL_ALIGNMENT alignment); + + DWRITE_OPTICAL_ALIGNMENT (STDMETHODCALLTYPE *GetOpticalAlignment)( + IDWriteTextLayout3 *This); + + HRESULT (STDMETHODCALLTYPE *SetFontFallback)( + IDWriteTextLayout3 *This, + IDWriteFontFallback *fallback); + + HRESULT (STDMETHODCALLTYPE *GetFontFallback)( + IDWriteTextLayout3 *This, + IDWriteFontFallback **fallback); + + /*** IDWriteTextLayout3 methods ***/ + HRESULT (STDMETHODCALLTYPE *InvalidateLayout)( + IDWriteTextLayout3 *This); + + HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout3_SetLineSpacing)( + IDWriteTextLayout3 *This, + const DWRITE_LINE_SPACING *spacing); + + HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout3_GetLineSpacing)( + IDWriteTextLayout3 *This, + DWRITE_LINE_SPACING *spacing); + + HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout3_GetLineMetrics)( + IDWriteTextLayout3 *This, + DWRITE_LINE_METRICS1 *metrics, + UINT32 max_count, + UINT32 *count); + + END_INTERFACE +} IDWriteTextLayout3Vtbl; + +interface IDWriteTextLayout3 { + CONST_VTBL IDWriteTextLayout3Vtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDWriteTextLayout3_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteTextLayout3_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDWriteTextLayout3_Release(This) (This)->lpVtbl->Release(This) +/*** IDWriteTextFormat methods ***/ +#define IDWriteTextLayout3_SetTextAlignment(This,alignment) (This)->lpVtbl->SetTextAlignment(This,alignment) +#define IDWriteTextLayout3_SetParagraphAlignment(This,alignment) (This)->lpVtbl->SetParagraphAlignment(This,alignment) +#define IDWriteTextLayout3_SetWordWrapping(This,wrapping) (This)->lpVtbl->SetWordWrapping(This,wrapping) +#define IDWriteTextLayout3_SetReadingDirection(This,direction) (This)->lpVtbl->SetReadingDirection(This,direction) +#define IDWriteTextLayout3_SetFlowDirection(This,direction) (This)->lpVtbl->SetFlowDirection(This,direction) +#define IDWriteTextLayout3_SetIncrementalTabStop(This,tabstop) (This)->lpVtbl->SetIncrementalTabStop(This,tabstop) +#define IDWriteTextLayout3_SetTrimming(This,trimming,trimming_sign) (This)->lpVtbl->SetTrimming(This,trimming,trimming_sign) +#define IDWriteTextLayout3_GetTextAlignment(This) (This)->lpVtbl->GetTextAlignment(This) +#define IDWriteTextLayout3_GetParagraphAlignment(This) (This)->lpVtbl->GetParagraphAlignment(This) +#define IDWriteTextLayout3_GetWordWrapping(This) (This)->lpVtbl->GetWordWrapping(This) +#define IDWriteTextLayout3_GetReadingDirection(This) (This)->lpVtbl->GetReadingDirection(This) +#define IDWriteTextLayout3_GetFlowDirection(This) (This)->lpVtbl->GetFlowDirection(This) +#define IDWriteTextLayout3_GetIncrementalTabStop(This) (This)->lpVtbl->GetIncrementalTabStop(This) +#define IDWriteTextLayout3_GetTrimming(This,options,trimming_sign) (This)->lpVtbl->GetTrimming(This,options,trimming_sign) +/*** IDWriteTextLayout methods ***/ +#define IDWriteTextLayout3_SetMaxWidth(This,maxWidth) (This)->lpVtbl->SetMaxWidth(This,maxWidth) +#define IDWriteTextLayout3_SetMaxHeight(This,maxHeight) (This)->lpVtbl->SetMaxHeight(This,maxHeight) +#define IDWriteTextLayout3_SetFontCollection(This,collection,range) (This)->lpVtbl->SetFontCollection(This,collection,range) +#define IDWriteTextLayout3_SetFontFamilyName(This,name,range) (This)->lpVtbl->SetFontFamilyName(This,name,range) +#define IDWriteTextLayout3_SetFontWeight(This,weight,range) (This)->lpVtbl->SetFontWeight(This,weight,range) +#define IDWriteTextLayout3_SetFontStyle(This,style,range) (This)->lpVtbl->SetFontStyle(This,style,range) +#define IDWriteTextLayout3_SetFontStretch(This,stretch,range) (This)->lpVtbl->SetFontStretch(This,stretch,range) +#define IDWriteTextLayout3_SetFontSize(This,size,range) (This)->lpVtbl->SetFontSize(This,size,range) +#define IDWriteTextLayout3_SetUnderline(This,underline,range) (This)->lpVtbl->SetUnderline(This,underline,range) +#define IDWriteTextLayout3_SetStrikethrough(This,strikethrough,range) (This)->lpVtbl->SetStrikethrough(This,strikethrough,range) +#define IDWriteTextLayout3_SetDrawingEffect(This,effect,range) (This)->lpVtbl->SetDrawingEffect(This,effect,range) +#define IDWriteTextLayout3_SetInlineObject(This,object,range) (This)->lpVtbl->SetInlineObject(This,object,range) +#define IDWriteTextLayout3_SetTypography(This,typography,range) (This)->lpVtbl->SetTypography(This,typography,range) +#define IDWriteTextLayout3_SetLocaleName(This,locale,range) (This)->lpVtbl->SetLocaleName(This,locale,range) +#define IDWriteTextLayout3_GetMaxWidth(This) (This)->lpVtbl->GetMaxWidth(This) +#define IDWriteTextLayout3_GetMaxHeight(This) (This)->lpVtbl->GetMaxHeight(This) +#define IDWriteTextLayout3_GetFontCollection(This,pos,collection,range) (This)->lpVtbl->IDWriteTextLayout_GetFontCollection(This,pos,collection,range) +#define IDWriteTextLayout3_GetFontFamilyNameLength(This,pos,len,range) (This)->lpVtbl->IDWriteTextLayout_GetFontFamilyNameLength(This,pos,len,range) +#define IDWriteTextLayout3_GetFontFamilyName(This,position,name,name_size,range) (This)->lpVtbl->IDWriteTextLayout_GetFontFamilyName(This,position,name,name_size,range) +#define IDWriteTextLayout3_GetFontWeight(This,position,weight,range) (This)->lpVtbl->IDWriteTextLayout_GetFontWeight(This,position,weight,range) +#define IDWriteTextLayout3_GetFontStyle(This,currentPosition,style,range) (This)->lpVtbl->IDWriteTextLayout_GetFontStyle(This,currentPosition,style,range) +#define IDWriteTextLayout3_GetFontStretch(This,position,stretch,range) (This)->lpVtbl->IDWriteTextLayout_GetFontStretch(This,position,stretch,range) +#define IDWriteTextLayout3_GetFontSize(This,position,size,range) (This)->lpVtbl->IDWriteTextLayout_GetFontSize(This,position,size,range) +#define IDWriteTextLayout3_GetUnderline(This,position,has_underline,range) (This)->lpVtbl->GetUnderline(This,position,has_underline,range) +#define IDWriteTextLayout3_GetStrikethrough(This,position,has_strikethrough,range) (This)->lpVtbl->GetStrikethrough(This,position,has_strikethrough,range) +#define IDWriteTextLayout3_GetDrawingEffect(This,position,effect,range) (This)->lpVtbl->GetDrawingEffect(This,position,effect,range) +#define IDWriteTextLayout3_GetInlineObject(This,position,object,range) (This)->lpVtbl->GetInlineObject(This,position,object,range) +#define IDWriteTextLayout3_GetTypography(This,position,typography,range) (This)->lpVtbl->GetTypography(This,position,typography,range) +#define IDWriteTextLayout3_GetLocaleNameLength(This,position,length,range) (This)->lpVtbl->IDWriteTextLayout_GetLocaleNameLength(This,position,length,range) +#define IDWriteTextLayout3_GetLocaleName(This,position,name,name_size,range) (This)->lpVtbl->IDWriteTextLayout_GetLocaleName(This,position,name,name_size,range) +#define IDWriteTextLayout3_Draw(This,context,renderer,originX,originY) (This)->lpVtbl->Draw(This,context,renderer,originX,originY) +#define IDWriteTextLayout3_GetOverhangMetrics(This,overhangs) (This)->lpVtbl->GetOverhangMetrics(This,overhangs) +#define IDWriteTextLayout3_GetClusterMetrics(This,metrics,max_count,act_count) (This)->lpVtbl->GetClusterMetrics(This,metrics,max_count,act_count) +#define IDWriteTextLayout3_DetermineMinWidth(This,min_width) (This)->lpVtbl->DetermineMinWidth(This,min_width) +#define IDWriteTextLayout3_HitTestPoint(This,pointX,pointY,is_trailinghit,is_inside,metrics) (This)->lpVtbl->HitTestPoint(This,pointX,pointY,is_trailinghit,is_inside,metrics) +#define IDWriteTextLayout3_HitTestTextPosition(This,textPosition,is_trailinghit,pointX,pointY,metrics) (This)->lpVtbl->HitTestTextPosition(This,textPosition,is_trailinghit,pointX,pointY,metrics) +#define IDWriteTextLayout3_HitTestTextRange(This,textPosition,textLength,originX,originY,metrics,max_metricscount,actual_metricscount) (This)->lpVtbl->HitTestTextRange(This,textPosition,textLength,originX,originY,metrics,max_metricscount,actual_metricscount) +/*** IDWriteTextLayout1 methods ***/ +#define IDWriteTextLayout3_SetPairKerning(This,is_pairkerning_enabled,range) (This)->lpVtbl->SetPairKerning(This,is_pairkerning_enabled,range) +#define IDWriteTextLayout3_GetPairKerning(This,position,is_pairkerning_enabled,range) (This)->lpVtbl->GetPairKerning(This,position,is_pairkerning_enabled,range) +#define IDWriteTextLayout3_SetCharacterSpacing(This,leading_spacing,trailing_spacing,minimum_advance_width,range) (This)->lpVtbl->SetCharacterSpacing(This,leading_spacing,trailing_spacing,minimum_advance_width,range) +#define IDWriteTextLayout3_GetCharacterSpacing(This,position,leading_spacing,trailing_spacing,minimum_advance_width,range) (This)->lpVtbl->GetCharacterSpacing(This,position,leading_spacing,trailing_spacing,minimum_advance_width,range) +/*** IDWriteTextLayout2 methods ***/ +#define IDWriteTextLayout3_GetMetrics(This,metrics) (This)->lpVtbl->IDWriteTextLayout2_GetMetrics(This,metrics) +#define IDWriteTextLayout3_SetVerticalGlyphOrientation(This,orientation) (This)->lpVtbl->SetVerticalGlyphOrientation(This,orientation) +#define IDWriteTextLayout3_GetVerticalGlyphOrientation(This) (This)->lpVtbl->GetVerticalGlyphOrientation(This) +#define IDWriteTextLayout3_SetLastLineWrapping(This,lastline_wrapping_enabled) (This)->lpVtbl->SetLastLineWrapping(This,lastline_wrapping_enabled) +#define IDWriteTextLayout3_GetLastLineWrapping(This) (This)->lpVtbl->GetLastLineWrapping(This) +#define IDWriteTextLayout3_SetOpticalAlignment(This,alignment) (This)->lpVtbl->SetOpticalAlignment(This,alignment) +#define IDWriteTextLayout3_GetOpticalAlignment(This) (This)->lpVtbl->GetOpticalAlignment(This) +#define IDWriteTextLayout3_SetFontFallback(This,fallback) (This)->lpVtbl->SetFontFallback(This,fallback) +#define IDWriteTextLayout3_GetFontFallback(This,fallback) (This)->lpVtbl->GetFontFallback(This,fallback) +/*** IDWriteTextLayout3 methods ***/ +#define IDWriteTextLayout3_InvalidateLayout(This) (This)->lpVtbl->InvalidateLayout(This) +#define IDWriteTextLayout3_SetLineSpacing(This,spacing) (This)->lpVtbl->IDWriteTextLayout3_SetLineSpacing(This,spacing) +#define IDWriteTextLayout3_GetLineSpacing(This,spacing) (This)->lpVtbl->IDWriteTextLayout3_GetLineSpacing(This,spacing) +#define IDWriteTextLayout3_GetLineMetrics(This,metrics,max_count,count) (This)->lpVtbl->IDWriteTextLayout3_GetLineMetrics(This,metrics,max_count,count) +#else +/*** IUnknown methods ***/ +static inline HRESULT IDWriteTextLayout3_QueryInterface(IDWriteTextLayout3* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static inline ULONG IDWriteTextLayout3_AddRef(IDWriteTextLayout3* This) { + return This->lpVtbl->AddRef(This); +} +static inline ULONG IDWriteTextLayout3_Release(IDWriteTextLayout3* This) { + return This->lpVtbl->Release(This); +} +/*** IDWriteTextFormat methods ***/ +static inline HRESULT IDWriteTextLayout3_SetTextAlignment(IDWriteTextLayout3* This,DWRITE_TEXT_ALIGNMENT alignment) { + return This->lpVtbl->SetTextAlignment(This,alignment); +} +static inline HRESULT IDWriteTextLayout3_SetParagraphAlignment(IDWriteTextLayout3* This,DWRITE_PARAGRAPH_ALIGNMENT alignment) { + return This->lpVtbl->SetParagraphAlignment(This,alignment); +} +static inline HRESULT IDWriteTextLayout3_SetWordWrapping(IDWriteTextLayout3* This,DWRITE_WORD_WRAPPING wrapping) { + return This->lpVtbl->SetWordWrapping(This,wrapping); +} +static inline HRESULT IDWriteTextLayout3_SetReadingDirection(IDWriteTextLayout3* This,DWRITE_READING_DIRECTION direction) { + return This->lpVtbl->SetReadingDirection(This,direction); +} +static inline HRESULT IDWriteTextLayout3_SetFlowDirection(IDWriteTextLayout3* This,DWRITE_FLOW_DIRECTION direction) { + return This->lpVtbl->SetFlowDirection(This,direction); +} +static inline HRESULT IDWriteTextLayout3_SetIncrementalTabStop(IDWriteTextLayout3* This,FLOAT tabstop) { + return This->lpVtbl->SetIncrementalTabStop(This,tabstop); +} +static inline HRESULT IDWriteTextLayout3_SetTrimming(IDWriteTextLayout3* This,const DWRITE_TRIMMING *trimming,IDWriteInlineObject *trimming_sign) { + return This->lpVtbl->SetTrimming(This,trimming,trimming_sign); +} +static inline DWRITE_TEXT_ALIGNMENT IDWriteTextLayout3_GetTextAlignment(IDWriteTextLayout3* This) { + return This->lpVtbl->GetTextAlignment(This); +} +static inline DWRITE_PARAGRAPH_ALIGNMENT IDWriteTextLayout3_GetParagraphAlignment(IDWriteTextLayout3* This) { + return This->lpVtbl->GetParagraphAlignment(This); +} +static inline DWRITE_WORD_WRAPPING IDWriteTextLayout3_GetWordWrapping(IDWriteTextLayout3* This) { + return This->lpVtbl->GetWordWrapping(This); +} +static inline DWRITE_READING_DIRECTION IDWriteTextLayout3_GetReadingDirection(IDWriteTextLayout3* This) { + return This->lpVtbl->GetReadingDirection(This); +} +static inline DWRITE_FLOW_DIRECTION IDWriteTextLayout3_GetFlowDirection(IDWriteTextLayout3* This) { + return This->lpVtbl->GetFlowDirection(This); +} +static inline FLOAT IDWriteTextLayout3_GetIncrementalTabStop(IDWriteTextLayout3* This) { + return This->lpVtbl->GetIncrementalTabStop(This); +} +static inline HRESULT IDWriteTextLayout3_GetTrimming(IDWriteTextLayout3* This,DWRITE_TRIMMING *options,IDWriteInlineObject **trimming_sign) { + return This->lpVtbl->GetTrimming(This,options,trimming_sign); +} +/*** IDWriteTextLayout methods ***/ +static inline HRESULT IDWriteTextLayout3_SetMaxWidth(IDWriteTextLayout3* This,FLOAT maxWidth) { + return This->lpVtbl->SetMaxWidth(This,maxWidth); +} +static inline HRESULT IDWriteTextLayout3_SetMaxHeight(IDWriteTextLayout3* This,FLOAT maxHeight) { + return This->lpVtbl->SetMaxHeight(This,maxHeight); +} +static inline HRESULT IDWriteTextLayout3_SetFontCollection(IDWriteTextLayout3* This,IDWriteFontCollection *collection,DWRITE_TEXT_RANGE range) { + return This->lpVtbl->SetFontCollection(This,collection,range); +} +static inline HRESULT IDWriteTextLayout3_SetFontFamilyName(IDWriteTextLayout3* This,const WCHAR *name,DWRITE_TEXT_RANGE range) { + return This->lpVtbl->SetFontFamilyName(This,name,range); +} +static inline HRESULT IDWriteTextLayout3_SetFontWeight(IDWriteTextLayout3* This,DWRITE_FONT_WEIGHT weight,DWRITE_TEXT_RANGE range) { + return This->lpVtbl->SetFontWeight(This,weight,range); +} +static inline HRESULT IDWriteTextLayout3_SetFontStyle(IDWriteTextLayout3* This,DWRITE_FONT_STYLE style,DWRITE_TEXT_RANGE range) { + return This->lpVtbl->SetFontStyle(This,style,range); +} +static inline HRESULT IDWriteTextLayout3_SetFontStretch(IDWriteTextLayout3* This,DWRITE_FONT_STRETCH stretch,DWRITE_TEXT_RANGE range) { + return This->lpVtbl->SetFontStretch(This,stretch,range); +} +static inline HRESULT IDWriteTextLayout3_SetFontSize(IDWriteTextLayout3* This,FLOAT size,DWRITE_TEXT_RANGE range) { + return This->lpVtbl->SetFontSize(This,size,range); +} +static inline HRESULT IDWriteTextLayout3_SetUnderline(IDWriteTextLayout3* This,WINBOOL underline,DWRITE_TEXT_RANGE range) { + return This->lpVtbl->SetUnderline(This,underline,range); +} +static inline HRESULT IDWriteTextLayout3_SetStrikethrough(IDWriteTextLayout3* This,WINBOOL strikethrough,DWRITE_TEXT_RANGE range) { + return This->lpVtbl->SetStrikethrough(This,strikethrough,range); +} +static inline HRESULT IDWriteTextLayout3_SetDrawingEffect(IDWriteTextLayout3* This,IUnknown *effect,DWRITE_TEXT_RANGE range) { + return This->lpVtbl->SetDrawingEffect(This,effect,range); +} +static inline HRESULT IDWriteTextLayout3_SetInlineObject(IDWriteTextLayout3* This,IDWriteInlineObject *object,DWRITE_TEXT_RANGE range) { + return This->lpVtbl->SetInlineObject(This,object,range); +} +static inline HRESULT IDWriteTextLayout3_SetTypography(IDWriteTextLayout3* This,IDWriteTypography *typography,DWRITE_TEXT_RANGE range) { + return This->lpVtbl->SetTypography(This,typography,range); +} +static inline HRESULT IDWriteTextLayout3_SetLocaleName(IDWriteTextLayout3* This,const WCHAR *locale,DWRITE_TEXT_RANGE range) { + return This->lpVtbl->SetLocaleName(This,locale,range); +} +static inline FLOAT IDWriteTextLayout3_GetMaxWidth(IDWriteTextLayout3* This) { + return This->lpVtbl->GetMaxWidth(This); +} +static inline FLOAT IDWriteTextLayout3_GetMaxHeight(IDWriteTextLayout3* This) { + return This->lpVtbl->GetMaxHeight(This); +} +static inline HRESULT IDWriteTextLayout3_GetFontCollection(IDWriteTextLayout3* This,UINT32 pos,IDWriteFontCollection **collection,DWRITE_TEXT_RANGE *range) { + return This->lpVtbl->IDWriteTextLayout_GetFontCollection(This,pos,collection,range); +} +static inline HRESULT IDWriteTextLayout3_GetFontFamilyNameLength(IDWriteTextLayout3* This,UINT32 pos,UINT32 *len,DWRITE_TEXT_RANGE *range) { + return This->lpVtbl->IDWriteTextLayout_GetFontFamilyNameLength(This,pos,len,range); +} +static inline HRESULT IDWriteTextLayout3_GetFontFamilyName(IDWriteTextLayout3* This,UINT32 position,WCHAR *name,UINT32 name_size,DWRITE_TEXT_RANGE *range) { + return This->lpVtbl->IDWriteTextLayout_GetFontFamilyName(This,position,name,name_size,range); +} +static inline HRESULT IDWriteTextLayout3_GetFontWeight(IDWriteTextLayout3* This,UINT32 position,DWRITE_FONT_WEIGHT *weight,DWRITE_TEXT_RANGE *range) { + return This->lpVtbl->IDWriteTextLayout_GetFontWeight(This,position,weight,range); +} +static inline HRESULT IDWriteTextLayout3_GetFontStyle(IDWriteTextLayout3* This,UINT32 currentPosition,DWRITE_FONT_STYLE *style,DWRITE_TEXT_RANGE *range) { + return This->lpVtbl->IDWriteTextLayout_GetFontStyle(This,currentPosition,style,range); +} +static inline HRESULT IDWriteTextLayout3_GetFontStretch(IDWriteTextLayout3* This,UINT32 position,DWRITE_FONT_STRETCH *stretch,DWRITE_TEXT_RANGE *range) { + return This->lpVtbl->IDWriteTextLayout_GetFontStretch(This,position,stretch,range); +} +static inline HRESULT IDWriteTextLayout3_GetFontSize(IDWriteTextLayout3* This,UINT32 position,FLOAT *size,DWRITE_TEXT_RANGE *range) { + return This->lpVtbl->IDWriteTextLayout_GetFontSize(This,position,size,range); +} +static inline HRESULT IDWriteTextLayout3_GetUnderline(IDWriteTextLayout3* This,UINT32 position,WINBOOL *has_underline,DWRITE_TEXT_RANGE *range) { + return This->lpVtbl->GetUnderline(This,position,has_underline,range); +} +static inline HRESULT IDWriteTextLayout3_GetStrikethrough(IDWriteTextLayout3* This,UINT32 position,WINBOOL *has_strikethrough,DWRITE_TEXT_RANGE *range) { + return This->lpVtbl->GetStrikethrough(This,position,has_strikethrough,range); +} +static inline HRESULT IDWriteTextLayout3_GetDrawingEffect(IDWriteTextLayout3* This,UINT32 position,IUnknown **effect,DWRITE_TEXT_RANGE *range) { + return This->lpVtbl->GetDrawingEffect(This,position,effect,range); +} +static inline HRESULT IDWriteTextLayout3_GetInlineObject(IDWriteTextLayout3* This,UINT32 position,IDWriteInlineObject **object,DWRITE_TEXT_RANGE *range) { + return This->lpVtbl->GetInlineObject(This,position,object,range); +} +static inline HRESULT IDWriteTextLayout3_GetTypography(IDWriteTextLayout3* This,UINT32 position,IDWriteTypography **typography,DWRITE_TEXT_RANGE *range) { + return This->lpVtbl->GetTypography(This,position,typography,range); +} +static inline HRESULT IDWriteTextLayout3_GetLocaleNameLength(IDWriteTextLayout3* This,UINT32 position,UINT32 *length,DWRITE_TEXT_RANGE *range) { + return This->lpVtbl->IDWriteTextLayout_GetLocaleNameLength(This,position,length,range); +} +static inline HRESULT IDWriteTextLayout3_GetLocaleName(IDWriteTextLayout3* This,UINT32 position,WCHAR *name,UINT32 name_size,DWRITE_TEXT_RANGE *range) { + return This->lpVtbl->IDWriteTextLayout_GetLocaleName(This,position,name,name_size,range); +} +static inline HRESULT IDWriteTextLayout3_Draw(IDWriteTextLayout3* This,void *context,IDWriteTextRenderer *renderer,FLOAT originX,FLOAT originY) { + return This->lpVtbl->Draw(This,context,renderer,originX,originY); +} +static inline HRESULT IDWriteTextLayout3_GetOverhangMetrics(IDWriteTextLayout3* This,DWRITE_OVERHANG_METRICS *overhangs) { + return This->lpVtbl->GetOverhangMetrics(This,overhangs); +} +static inline HRESULT IDWriteTextLayout3_GetClusterMetrics(IDWriteTextLayout3* This,DWRITE_CLUSTER_METRICS *metrics,UINT32 max_count,UINT32 *act_count) { + return This->lpVtbl->GetClusterMetrics(This,metrics,max_count,act_count); +} +static inline HRESULT IDWriteTextLayout3_DetermineMinWidth(IDWriteTextLayout3* This,FLOAT *min_width) { + return This->lpVtbl->DetermineMinWidth(This,min_width); +} +static inline HRESULT IDWriteTextLayout3_HitTestPoint(IDWriteTextLayout3* This,FLOAT pointX,FLOAT pointY,WINBOOL *is_trailinghit,WINBOOL *is_inside,DWRITE_HIT_TEST_METRICS *metrics) { + return This->lpVtbl->HitTestPoint(This,pointX,pointY,is_trailinghit,is_inside,metrics); +} +static inline HRESULT IDWriteTextLayout3_HitTestTextPosition(IDWriteTextLayout3* This,UINT32 textPosition,WINBOOL is_trailinghit,FLOAT *pointX,FLOAT *pointY,DWRITE_HIT_TEST_METRICS *metrics) { + return This->lpVtbl->HitTestTextPosition(This,textPosition,is_trailinghit,pointX,pointY,metrics); +} +static inline HRESULT IDWriteTextLayout3_HitTestTextRange(IDWriteTextLayout3* This,UINT32 textPosition,UINT32 textLength,FLOAT originX,FLOAT originY,DWRITE_HIT_TEST_METRICS *metrics,UINT32 max_metricscount,UINT32 *actual_metricscount) { + return This->lpVtbl->HitTestTextRange(This,textPosition,textLength,originX,originY,metrics,max_metricscount,actual_metricscount); +} +/*** IDWriteTextLayout1 methods ***/ +static inline HRESULT IDWriteTextLayout3_SetPairKerning(IDWriteTextLayout3* This,WINBOOL is_pairkerning_enabled,DWRITE_TEXT_RANGE range) { + return This->lpVtbl->SetPairKerning(This,is_pairkerning_enabled,range); +} +static inline HRESULT IDWriteTextLayout3_GetPairKerning(IDWriteTextLayout3* This,UINT32 position,WINBOOL *is_pairkerning_enabled,DWRITE_TEXT_RANGE *range) { + return This->lpVtbl->GetPairKerning(This,position,is_pairkerning_enabled,range); +} +static inline HRESULT IDWriteTextLayout3_SetCharacterSpacing(IDWriteTextLayout3* This,FLOAT leading_spacing,FLOAT trailing_spacing,FLOAT minimum_advance_width,DWRITE_TEXT_RANGE range) { + return This->lpVtbl->SetCharacterSpacing(This,leading_spacing,trailing_spacing,minimum_advance_width,range); +} +static inline HRESULT IDWriteTextLayout3_GetCharacterSpacing(IDWriteTextLayout3* This,UINT32 position,FLOAT *leading_spacing,FLOAT *trailing_spacing,FLOAT *minimum_advance_width,DWRITE_TEXT_RANGE *range) { + return This->lpVtbl->GetCharacterSpacing(This,position,leading_spacing,trailing_spacing,minimum_advance_width,range); +} +/*** IDWriteTextLayout2 methods ***/ +static inline HRESULT IDWriteTextLayout3_GetMetrics(IDWriteTextLayout3* This,DWRITE_TEXT_METRICS1 *metrics) { + return This->lpVtbl->IDWriteTextLayout2_GetMetrics(This,metrics); +} +static inline HRESULT IDWriteTextLayout3_SetVerticalGlyphOrientation(IDWriteTextLayout3* This,DWRITE_VERTICAL_GLYPH_ORIENTATION orientation) { + return This->lpVtbl->SetVerticalGlyphOrientation(This,orientation); +} +static inline DWRITE_VERTICAL_GLYPH_ORIENTATION IDWriteTextLayout3_GetVerticalGlyphOrientation(IDWriteTextLayout3* This) { + return This->lpVtbl->GetVerticalGlyphOrientation(This); +} +static inline HRESULT IDWriteTextLayout3_SetLastLineWrapping(IDWriteTextLayout3* This,WINBOOL lastline_wrapping_enabled) { + return This->lpVtbl->SetLastLineWrapping(This,lastline_wrapping_enabled); +} +static inline WINBOOL IDWriteTextLayout3_GetLastLineWrapping(IDWriteTextLayout3* This) { + return This->lpVtbl->GetLastLineWrapping(This); +} +static inline HRESULT IDWriteTextLayout3_SetOpticalAlignment(IDWriteTextLayout3* This,DWRITE_OPTICAL_ALIGNMENT alignment) { + return This->lpVtbl->SetOpticalAlignment(This,alignment); +} +static inline DWRITE_OPTICAL_ALIGNMENT IDWriteTextLayout3_GetOpticalAlignment(IDWriteTextLayout3* This) { + return This->lpVtbl->GetOpticalAlignment(This); +} +static inline HRESULT IDWriteTextLayout3_SetFontFallback(IDWriteTextLayout3* This,IDWriteFontFallback *fallback) { + return This->lpVtbl->SetFontFallback(This,fallback); +} +static inline HRESULT IDWriteTextLayout3_GetFontFallback(IDWriteTextLayout3* This,IDWriteFontFallback **fallback) { + return This->lpVtbl->GetFontFallback(This,fallback); +} +/*** IDWriteTextLayout3 methods ***/ +static inline HRESULT IDWriteTextLayout3_InvalidateLayout(IDWriteTextLayout3* This) { + return This->lpVtbl->InvalidateLayout(This); +} +static inline HRESULT IDWriteTextLayout3_SetLineSpacing(IDWriteTextLayout3* This,const DWRITE_LINE_SPACING *spacing) { + return This->lpVtbl->IDWriteTextLayout3_SetLineSpacing(This,spacing); +} +static inline HRESULT IDWriteTextLayout3_GetLineSpacing(IDWriteTextLayout3* This,DWRITE_LINE_SPACING *spacing) { + return This->lpVtbl->IDWriteTextLayout3_GetLineSpacing(This,spacing); +} +static inline HRESULT IDWriteTextLayout3_GetLineMetrics(IDWriteTextLayout3* This,DWRITE_LINE_METRICS1 *metrics,UINT32 max_count,UINT32 *count) { + return This->lpVtbl->IDWriteTextLayout3_GetLineMetrics(This,metrics,max_count,count); +} +#endif +#endif + +#endif + + +#endif /* __IDWriteTextLayout3_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IDWriteTextLayout4 interface + */ +#ifndef __IDWriteTextLayout4_INTERFACE_DEFINED__ +#define __IDWriteTextLayout4_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDWriteTextLayout4, 0x05a9bf42, 0x223f, 0x4441, 0xb5,0xfb, 0x82,0x63,0x68,0x5f,0x55,0xe9); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("05a9bf42-223f-4441-b5fb-8263685f55e9") +IDWriteTextLayout4 : public IDWriteTextLayout3 +{ + virtual HRESULT STDMETHODCALLTYPE SetFontAxisValues( + const DWRITE_FONT_AXIS_VALUE *axis_values, + UINT32 num_values, + DWRITE_TEXT_RANGE range) = 0; + + virtual UINT32 STDMETHODCALLTYPE GetFontAxisValueCount( + UINT32 pos) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetFontAxisValues( + UINT32 pos, + DWRITE_FONT_AXIS_VALUE *values, + UINT32 num_values, + DWRITE_TEXT_RANGE *range) = 0; + + virtual DWRITE_AUTOMATIC_FONT_AXES STDMETHODCALLTYPE GetAutomaticFontAxes( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetAutomaticFontAxes( + DWRITE_AUTOMATIC_FONT_AXES axes) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDWriteTextLayout4, 0x05a9bf42, 0x223f, 0x4441, 0xb5,0xfb, 0x82,0x63,0x68,0x5f,0x55,0xe9) +#endif +#else +typedef struct IDWriteTextLayout4Vtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDWriteTextLayout4 *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDWriteTextLayout4 *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDWriteTextLayout4 *This); + + /*** IDWriteTextFormat methods ***/ + HRESULT (STDMETHODCALLTYPE *SetTextAlignment)( + IDWriteTextLayout4 *This, + DWRITE_TEXT_ALIGNMENT alignment); + + HRESULT (STDMETHODCALLTYPE *SetParagraphAlignment)( + IDWriteTextLayout4 *This, + DWRITE_PARAGRAPH_ALIGNMENT alignment); + + HRESULT (STDMETHODCALLTYPE *SetWordWrapping)( + IDWriteTextLayout4 *This, + DWRITE_WORD_WRAPPING wrapping); + + HRESULT (STDMETHODCALLTYPE *SetReadingDirection)( + IDWriteTextLayout4 *This, + DWRITE_READING_DIRECTION direction); + + HRESULT (STDMETHODCALLTYPE *SetFlowDirection)( + IDWriteTextLayout4 *This, + DWRITE_FLOW_DIRECTION direction); + + HRESULT (STDMETHODCALLTYPE *SetIncrementalTabStop)( + IDWriteTextLayout4 *This, + FLOAT tabstop); + + HRESULT (STDMETHODCALLTYPE *SetTrimming)( + IDWriteTextLayout4 *This, + const DWRITE_TRIMMING *trimming, + IDWriteInlineObject *trimming_sign); + + HRESULT (STDMETHODCALLTYPE *SetLineSpacing)( + IDWriteTextLayout4 *This, + DWRITE_LINE_SPACING_METHOD spacing, + FLOAT line_spacing, + FLOAT baseline); + + DWRITE_TEXT_ALIGNMENT (STDMETHODCALLTYPE *GetTextAlignment)( + IDWriteTextLayout4 *This); + + DWRITE_PARAGRAPH_ALIGNMENT (STDMETHODCALLTYPE *GetParagraphAlignment)( + IDWriteTextLayout4 *This); + + DWRITE_WORD_WRAPPING (STDMETHODCALLTYPE *GetWordWrapping)( + IDWriteTextLayout4 *This); + + DWRITE_READING_DIRECTION (STDMETHODCALLTYPE *GetReadingDirection)( + IDWriteTextLayout4 *This); + + DWRITE_FLOW_DIRECTION (STDMETHODCALLTYPE *GetFlowDirection)( + IDWriteTextLayout4 *This); + + FLOAT (STDMETHODCALLTYPE *GetIncrementalTabStop)( + IDWriteTextLayout4 *This); + + HRESULT (STDMETHODCALLTYPE *GetTrimming)( + IDWriteTextLayout4 *This, + DWRITE_TRIMMING *options, + IDWriteInlineObject **trimming_sign); + + HRESULT (STDMETHODCALLTYPE *GetLineSpacing)( + IDWriteTextLayout4 *This, + DWRITE_LINE_SPACING_METHOD *method, + FLOAT *spacing, + FLOAT *baseline); + + HRESULT (STDMETHODCALLTYPE *GetFontCollection)( + IDWriteTextLayout4 *This, + IDWriteFontCollection **collection); + + UINT32 (STDMETHODCALLTYPE *GetFontFamilyNameLength)( + IDWriteTextLayout4 *This); + + HRESULT (STDMETHODCALLTYPE *GetFontFamilyName)( + IDWriteTextLayout4 *This, + WCHAR *name, + UINT32 size); + + DWRITE_FONT_WEIGHT (STDMETHODCALLTYPE *GetFontWeight)( + IDWriteTextLayout4 *This); + + DWRITE_FONT_STYLE (STDMETHODCALLTYPE *GetFontStyle)( + IDWriteTextLayout4 *This); + + DWRITE_FONT_STRETCH (STDMETHODCALLTYPE *GetFontStretch)( + IDWriteTextLayout4 *This); + + FLOAT (STDMETHODCALLTYPE *GetFontSize)( + IDWriteTextLayout4 *This); + + UINT32 (STDMETHODCALLTYPE *GetLocaleNameLength)( + IDWriteTextLayout4 *This); + + HRESULT (STDMETHODCALLTYPE *GetLocaleName)( + IDWriteTextLayout4 *This, + WCHAR *name, + UINT32 size); + + /*** IDWriteTextLayout methods ***/ + HRESULT (STDMETHODCALLTYPE *SetMaxWidth)( + IDWriteTextLayout4 *This, + FLOAT maxWidth); + + HRESULT (STDMETHODCALLTYPE *SetMaxHeight)( + IDWriteTextLayout4 *This, + FLOAT maxHeight); + + HRESULT (STDMETHODCALLTYPE *SetFontCollection)( + IDWriteTextLayout4 *This, + IDWriteFontCollection *collection, + DWRITE_TEXT_RANGE range); + + HRESULT (STDMETHODCALLTYPE *SetFontFamilyName)( + IDWriteTextLayout4 *This, + const WCHAR *name, + DWRITE_TEXT_RANGE range); + + HRESULT (STDMETHODCALLTYPE *SetFontWeight)( + IDWriteTextLayout4 *This, + DWRITE_FONT_WEIGHT weight, + DWRITE_TEXT_RANGE range); + + HRESULT (STDMETHODCALLTYPE *SetFontStyle)( + IDWriteTextLayout4 *This, + DWRITE_FONT_STYLE style, + DWRITE_TEXT_RANGE range); + + HRESULT (STDMETHODCALLTYPE *SetFontStretch)( + IDWriteTextLayout4 *This, + DWRITE_FONT_STRETCH stretch, + DWRITE_TEXT_RANGE range); + + HRESULT (STDMETHODCALLTYPE *SetFontSize)( + IDWriteTextLayout4 *This, + FLOAT size, + DWRITE_TEXT_RANGE range); + + HRESULT (STDMETHODCALLTYPE *SetUnderline)( + IDWriteTextLayout4 *This, + WINBOOL underline, + DWRITE_TEXT_RANGE range); + + HRESULT (STDMETHODCALLTYPE *SetStrikethrough)( + IDWriteTextLayout4 *This, + WINBOOL strikethrough, + DWRITE_TEXT_RANGE range); + + HRESULT (STDMETHODCALLTYPE *SetDrawingEffect)( + IDWriteTextLayout4 *This, + IUnknown *effect, + DWRITE_TEXT_RANGE range); + + HRESULT (STDMETHODCALLTYPE *SetInlineObject)( + IDWriteTextLayout4 *This, + IDWriteInlineObject *object, + DWRITE_TEXT_RANGE range); + + HRESULT (STDMETHODCALLTYPE *SetTypography)( + IDWriteTextLayout4 *This, + IDWriteTypography *typography, + DWRITE_TEXT_RANGE range); + + HRESULT (STDMETHODCALLTYPE *SetLocaleName)( + IDWriteTextLayout4 *This, + const WCHAR *locale, + DWRITE_TEXT_RANGE range); + + FLOAT (STDMETHODCALLTYPE *GetMaxWidth)( + IDWriteTextLayout4 *This); + + FLOAT (STDMETHODCALLTYPE *GetMaxHeight)( + IDWriteTextLayout4 *This); + + HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout_GetFontCollection)( + IDWriteTextLayout4 *This, + UINT32 pos, + IDWriteFontCollection **collection, + DWRITE_TEXT_RANGE *range); + + HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout_GetFontFamilyNameLength)( + IDWriteTextLayout4 *This, + UINT32 pos, + UINT32 *len, + DWRITE_TEXT_RANGE *range); + + HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout_GetFontFamilyName)( + IDWriteTextLayout4 *This, + UINT32 position, + WCHAR *name, + UINT32 name_size, + DWRITE_TEXT_RANGE *range); + + HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout_GetFontWeight)( + IDWriteTextLayout4 *This, + UINT32 position, + DWRITE_FONT_WEIGHT *weight, + DWRITE_TEXT_RANGE *range); + + HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout_GetFontStyle)( + IDWriteTextLayout4 *This, + UINT32 currentPosition, + DWRITE_FONT_STYLE *style, + DWRITE_TEXT_RANGE *range); + + HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout_GetFontStretch)( + IDWriteTextLayout4 *This, + UINT32 position, + DWRITE_FONT_STRETCH *stretch, + DWRITE_TEXT_RANGE *range); + + HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout_GetFontSize)( + IDWriteTextLayout4 *This, + UINT32 position, + FLOAT *size, + DWRITE_TEXT_RANGE *range); + + HRESULT (STDMETHODCALLTYPE *GetUnderline)( + IDWriteTextLayout4 *This, + UINT32 position, + WINBOOL *has_underline, + DWRITE_TEXT_RANGE *range); + + HRESULT (STDMETHODCALLTYPE *GetStrikethrough)( + IDWriteTextLayout4 *This, + UINT32 position, + WINBOOL *has_strikethrough, + DWRITE_TEXT_RANGE *range); + + HRESULT (STDMETHODCALLTYPE *GetDrawingEffect)( + IDWriteTextLayout4 *This, + UINT32 position, + IUnknown **effect, + DWRITE_TEXT_RANGE *range); + + HRESULT (STDMETHODCALLTYPE *GetInlineObject)( + IDWriteTextLayout4 *This, + UINT32 position, + IDWriteInlineObject **object, + DWRITE_TEXT_RANGE *range); + + HRESULT (STDMETHODCALLTYPE *GetTypography)( + IDWriteTextLayout4 *This, + UINT32 position, + IDWriteTypography **typography, + DWRITE_TEXT_RANGE *range); + + HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout_GetLocaleNameLength)( + IDWriteTextLayout4 *This, + UINT32 position, + UINT32 *length, + DWRITE_TEXT_RANGE *range); + + HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout_GetLocaleName)( + IDWriteTextLayout4 *This, + UINT32 position, + WCHAR *name, + UINT32 name_size, + DWRITE_TEXT_RANGE *range); + + HRESULT (STDMETHODCALLTYPE *Draw)( + IDWriteTextLayout4 *This, + void *context, + IDWriteTextRenderer *renderer, + FLOAT originX, + FLOAT originY); + + HRESULT (STDMETHODCALLTYPE *GetLineMetrics)( + IDWriteTextLayout4 *This, + DWRITE_LINE_METRICS *metrics, + UINT32 max_count, + UINT32 *actual_count); + + HRESULT (STDMETHODCALLTYPE *GetMetrics)( + IDWriteTextLayout4 *This, + DWRITE_TEXT_METRICS *metrics); + + HRESULT (STDMETHODCALLTYPE *GetOverhangMetrics)( + IDWriteTextLayout4 *This, + DWRITE_OVERHANG_METRICS *overhangs); + + HRESULT (STDMETHODCALLTYPE *GetClusterMetrics)( + IDWriteTextLayout4 *This, + DWRITE_CLUSTER_METRICS *metrics, + UINT32 max_count, + UINT32 *act_count); + + HRESULT (STDMETHODCALLTYPE *DetermineMinWidth)( + IDWriteTextLayout4 *This, + FLOAT *min_width); + + HRESULT (STDMETHODCALLTYPE *HitTestPoint)( + IDWriteTextLayout4 *This, + FLOAT pointX, + FLOAT pointY, + WINBOOL *is_trailinghit, + WINBOOL *is_inside, + DWRITE_HIT_TEST_METRICS *metrics); + + HRESULT (STDMETHODCALLTYPE *HitTestTextPosition)( + IDWriteTextLayout4 *This, + UINT32 textPosition, + WINBOOL is_trailinghit, + FLOAT *pointX, + FLOAT *pointY, + DWRITE_HIT_TEST_METRICS *metrics); + + HRESULT (STDMETHODCALLTYPE *HitTestTextRange)( + IDWriteTextLayout4 *This, + UINT32 textPosition, + UINT32 textLength, + FLOAT originX, + FLOAT originY, + DWRITE_HIT_TEST_METRICS *metrics, + UINT32 max_metricscount, + UINT32 *actual_metricscount); + + /*** IDWriteTextLayout1 methods ***/ + HRESULT (STDMETHODCALLTYPE *SetPairKerning)( + IDWriteTextLayout4 *This, + WINBOOL is_pairkerning_enabled, + DWRITE_TEXT_RANGE range); + + HRESULT (STDMETHODCALLTYPE *GetPairKerning)( + IDWriteTextLayout4 *This, + UINT32 position, + WINBOOL *is_pairkerning_enabled, + DWRITE_TEXT_RANGE *range); + + HRESULT (STDMETHODCALLTYPE *SetCharacterSpacing)( + IDWriteTextLayout4 *This, + FLOAT leading_spacing, + FLOAT trailing_spacing, + FLOAT minimum_advance_width, + DWRITE_TEXT_RANGE range); + + HRESULT (STDMETHODCALLTYPE *GetCharacterSpacing)( + IDWriteTextLayout4 *This, + UINT32 position, + FLOAT *leading_spacing, + FLOAT *trailing_spacing, + FLOAT *minimum_advance_width, + DWRITE_TEXT_RANGE *range); + + /*** IDWriteTextLayout2 methods ***/ + HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout2_GetMetrics)( + IDWriteTextLayout4 *This, + DWRITE_TEXT_METRICS1 *metrics); + + HRESULT (STDMETHODCALLTYPE *SetVerticalGlyphOrientation)( + IDWriteTextLayout4 *This, + DWRITE_VERTICAL_GLYPH_ORIENTATION orientation); + + DWRITE_VERTICAL_GLYPH_ORIENTATION (STDMETHODCALLTYPE *GetVerticalGlyphOrientation)( + IDWriteTextLayout4 *This); + + HRESULT (STDMETHODCALLTYPE *SetLastLineWrapping)( + IDWriteTextLayout4 *This, + WINBOOL lastline_wrapping_enabled); + + WINBOOL (STDMETHODCALLTYPE *GetLastLineWrapping)( + IDWriteTextLayout4 *This); + + HRESULT (STDMETHODCALLTYPE *SetOpticalAlignment)( + IDWriteTextLayout4 *This, + DWRITE_OPTICAL_ALIGNMENT alignment); + + DWRITE_OPTICAL_ALIGNMENT (STDMETHODCALLTYPE *GetOpticalAlignment)( + IDWriteTextLayout4 *This); + + HRESULT (STDMETHODCALLTYPE *SetFontFallback)( + IDWriteTextLayout4 *This, + IDWriteFontFallback *fallback); + + HRESULT (STDMETHODCALLTYPE *GetFontFallback)( + IDWriteTextLayout4 *This, + IDWriteFontFallback **fallback); + + /*** IDWriteTextLayout3 methods ***/ + HRESULT (STDMETHODCALLTYPE *InvalidateLayout)( + IDWriteTextLayout4 *This); + + HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout3_SetLineSpacing)( + IDWriteTextLayout4 *This, + const DWRITE_LINE_SPACING *spacing); + + HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout3_GetLineSpacing)( + IDWriteTextLayout4 *This, + DWRITE_LINE_SPACING *spacing); + + HRESULT (STDMETHODCALLTYPE *IDWriteTextLayout3_GetLineMetrics)( + IDWriteTextLayout4 *This, + DWRITE_LINE_METRICS1 *metrics, + UINT32 max_count, + UINT32 *count); + + /*** IDWriteTextLayout4 methods ***/ + HRESULT (STDMETHODCALLTYPE *SetFontAxisValues)( + IDWriteTextLayout4 *This, + const DWRITE_FONT_AXIS_VALUE *axis_values, + UINT32 num_values, + DWRITE_TEXT_RANGE range); + + UINT32 (STDMETHODCALLTYPE *GetFontAxisValueCount)( + IDWriteTextLayout4 *This, + UINT32 pos); + + HRESULT (STDMETHODCALLTYPE *GetFontAxisValues)( + IDWriteTextLayout4 *This, + UINT32 pos, + DWRITE_FONT_AXIS_VALUE *values, + UINT32 num_values, + DWRITE_TEXT_RANGE *range); + + DWRITE_AUTOMATIC_FONT_AXES (STDMETHODCALLTYPE *GetAutomaticFontAxes)( + IDWriteTextLayout4 *This); + + HRESULT (STDMETHODCALLTYPE *SetAutomaticFontAxes)( + IDWriteTextLayout4 *This, + DWRITE_AUTOMATIC_FONT_AXES axes); + + END_INTERFACE +} IDWriteTextLayout4Vtbl; + +interface IDWriteTextLayout4 { + CONST_VTBL IDWriteTextLayout4Vtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDWriteTextLayout4_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteTextLayout4_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDWriteTextLayout4_Release(This) (This)->lpVtbl->Release(This) +/*** IDWriteTextFormat methods ***/ +#define IDWriteTextLayout4_SetTextAlignment(This,alignment) (This)->lpVtbl->SetTextAlignment(This,alignment) +#define IDWriteTextLayout4_SetParagraphAlignment(This,alignment) (This)->lpVtbl->SetParagraphAlignment(This,alignment) +#define IDWriteTextLayout4_SetWordWrapping(This,wrapping) (This)->lpVtbl->SetWordWrapping(This,wrapping) +#define IDWriteTextLayout4_SetReadingDirection(This,direction) (This)->lpVtbl->SetReadingDirection(This,direction) +#define IDWriteTextLayout4_SetFlowDirection(This,direction) (This)->lpVtbl->SetFlowDirection(This,direction) +#define IDWriteTextLayout4_SetIncrementalTabStop(This,tabstop) (This)->lpVtbl->SetIncrementalTabStop(This,tabstop) +#define IDWriteTextLayout4_SetTrimming(This,trimming,trimming_sign) (This)->lpVtbl->SetTrimming(This,trimming,trimming_sign) +#define IDWriteTextLayout4_GetTextAlignment(This) (This)->lpVtbl->GetTextAlignment(This) +#define IDWriteTextLayout4_GetParagraphAlignment(This) (This)->lpVtbl->GetParagraphAlignment(This) +#define IDWriteTextLayout4_GetWordWrapping(This) (This)->lpVtbl->GetWordWrapping(This) +#define IDWriteTextLayout4_GetReadingDirection(This) (This)->lpVtbl->GetReadingDirection(This) +#define IDWriteTextLayout4_GetFlowDirection(This) (This)->lpVtbl->GetFlowDirection(This) +#define IDWriteTextLayout4_GetIncrementalTabStop(This) (This)->lpVtbl->GetIncrementalTabStop(This) +#define IDWriteTextLayout4_GetTrimming(This,options,trimming_sign) (This)->lpVtbl->GetTrimming(This,options,trimming_sign) +/*** IDWriteTextLayout methods ***/ +#define IDWriteTextLayout4_SetMaxWidth(This,maxWidth) (This)->lpVtbl->SetMaxWidth(This,maxWidth) +#define IDWriteTextLayout4_SetMaxHeight(This,maxHeight) (This)->lpVtbl->SetMaxHeight(This,maxHeight) +#define IDWriteTextLayout4_SetFontCollection(This,collection,range) (This)->lpVtbl->SetFontCollection(This,collection,range) +#define IDWriteTextLayout4_SetFontFamilyName(This,name,range) (This)->lpVtbl->SetFontFamilyName(This,name,range) +#define IDWriteTextLayout4_SetFontWeight(This,weight,range) (This)->lpVtbl->SetFontWeight(This,weight,range) +#define IDWriteTextLayout4_SetFontStyle(This,style,range) (This)->lpVtbl->SetFontStyle(This,style,range) +#define IDWriteTextLayout4_SetFontStretch(This,stretch,range) (This)->lpVtbl->SetFontStretch(This,stretch,range) +#define IDWriteTextLayout4_SetFontSize(This,size,range) (This)->lpVtbl->SetFontSize(This,size,range) +#define IDWriteTextLayout4_SetUnderline(This,underline,range) (This)->lpVtbl->SetUnderline(This,underline,range) +#define IDWriteTextLayout4_SetStrikethrough(This,strikethrough,range) (This)->lpVtbl->SetStrikethrough(This,strikethrough,range) +#define IDWriteTextLayout4_SetDrawingEffect(This,effect,range) (This)->lpVtbl->SetDrawingEffect(This,effect,range) +#define IDWriteTextLayout4_SetInlineObject(This,object,range) (This)->lpVtbl->SetInlineObject(This,object,range) +#define IDWriteTextLayout4_SetTypography(This,typography,range) (This)->lpVtbl->SetTypography(This,typography,range) +#define IDWriteTextLayout4_SetLocaleName(This,locale,range) (This)->lpVtbl->SetLocaleName(This,locale,range) +#define IDWriteTextLayout4_GetMaxWidth(This) (This)->lpVtbl->GetMaxWidth(This) +#define IDWriteTextLayout4_GetMaxHeight(This) (This)->lpVtbl->GetMaxHeight(This) +#define IDWriteTextLayout4_GetFontCollection(This,pos,collection,range) (This)->lpVtbl->IDWriteTextLayout_GetFontCollection(This,pos,collection,range) +#define IDWriteTextLayout4_GetFontFamilyNameLength(This,pos,len,range) (This)->lpVtbl->IDWriteTextLayout_GetFontFamilyNameLength(This,pos,len,range) +#define IDWriteTextLayout4_GetFontFamilyName(This,position,name,name_size,range) (This)->lpVtbl->IDWriteTextLayout_GetFontFamilyName(This,position,name,name_size,range) +#define IDWriteTextLayout4_GetFontWeight(This,position,weight,range) (This)->lpVtbl->IDWriteTextLayout_GetFontWeight(This,position,weight,range) +#define IDWriteTextLayout4_GetFontStyle(This,currentPosition,style,range) (This)->lpVtbl->IDWriteTextLayout_GetFontStyle(This,currentPosition,style,range) +#define IDWriteTextLayout4_GetFontStretch(This,position,stretch,range) (This)->lpVtbl->IDWriteTextLayout_GetFontStretch(This,position,stretch,range) +#define IDWriteTextLayout4_GetFontSize(This,position,size,range) (This)->lpVtbl->IDWriteTextLayout_GetFontSize(This,position,size,range) +#define IDWriteTextLayout4_GetUnderline(This,position,has_underline,range) (This)->lpVtbl->GetUnderline(This,position,has_underline,range) +#define IDWriteTextLayout4_GetStrikethrough(This,position,has_strikethrough,range) (This)->lpVtbl->GetStrikethrough(This,position,has_strikethrough,range) +#define IDWriteTextLayout4_GetDrawingEffect(This,position,effect,range) (This)->lpVtbl->GetDrawingEffect(This,position,effect,range) +#define IDWriteTextLayout4_GetInlineObject(This,position,object,range) (This)->lpVtbl->GetInlineObject(This,position,object,range) +#define IDWriteTextLayout4_GetTypography(This,position,typography,range) (This)->lpVtbl->GetTypography(This,position,typography,range) +#define IDWriteTextLayout4_GetLocaleNameLength(This,position,length,range) (This)->lpVtbl->IDWriteTextLayout_GetLocaleNameLength(This,position,length,range) +#define IDWriteTextLayout4_GetLocaleName(This,position,name,name_size,range) (This)->lpVtbl->IDWriteTextLayout_GetLocaleName(This,position,name,name_size,range) +#define IDWriteTextLayout4_Draw(This,context,renderer,originX,originY) (This)->lpVtbl->Draw(This,context,renderer,originX,originY) +#define IDWriteTextLayout4_GetOverhangMetrics(This,overhangs) (This)->lpVtbl->GetOverhangMetrics(This,overhangs) +#define IDWriteTextLayout4_GetClusterMetrics(This,metrics,max_count,act_count) (This)->lpVtbl->GetClusterMetrics(This,metrics,max_count,act_count) +#define IDWriteTextLayout4_DetermineMinWidth(This,min_width) (This)->lpVtbl->DetermineMinWidth(This,min_width) +#define IDWriteTextLayout4_HitTestPoint(This,pointX,pointY,is_trailinghit,is_inside,metrics) (This)->lpVtbl->HitTestPoint(This,pointX,pointY,is_trailinghit,is_inside,metrics) +#define IDWriteTextLayout4_HitTestTextPosition(This,textPosition,is_trailinghit,pointX,pointY,metrics) (This)->lpVtbl->HitTestTextPosition(This,textPosition,is_trailinghit,pointX,pointY,metrics) +#define IDWriteTextLayout4_HitTestTextRange(This,textPosition,textLength,originX,originY,metrics,max_metricscount,actual_metricscount) (This)->lpVtbl->HitTestTextRange(This,textPosition,textLength,originX,originY,metrics,max_metricscount,actual_metricscount) +/*** IDWriteTextLayout1 methods ***/ +#define IDWriteTextLayout4_SetPairKerning(This,is_pairkerning_enabled,range) (This)->lpVtbl->SetPairKerning(This,is_pairkerning_enabled,range) +#define IDWriteTextLayout4_GetPairKerning(This,position,is_pairkerning_enabled,range) (This)->lpVtbl->GetPairKerning(This,position,is_pairkerning_enabled,range) +#define IDWriteTextLayout4_SetCharacterSpacing(This,leading_spacing,trailing_spacing,minimum_advance_width,range) (This)->lpVtbl->SetCharacterSpacing(This,leading_spacing,trailing_spacing,minimum_advance_width,range) +#define IDWriteTextLayout4_GetCharacterSpacing(This,position,leading_spacing,trailing_spacing,minimum_advance_width,range) (This)->lpVtbl->GetCharacterSpacing(This,position,leading_spacing,trailing_spacing,minimum_advance_width,range) +/*** IDWriteTextLayout2 methods ***/ +#define IDWriteTextLayout4_GetMetrics(This,metrics) (This)->lpVtbl->IDWriteTextLayout2_GetMetrics(This,metrics) +#define IDWriteTextLayout4_SetVerticalGlyphOrientation(This,orientation) (This)->lpVtbl->SetVerticalGlyphOrientation(This,orientation) +#define IDWriteTextLayout4_GetVerticalGlyphOrientation(This) (This)->lpVtbl->GetVerticalGlyphOrientation(This) +#define IDWriteTextLayout4_SetLastLineWrapping(This,lastline_wrapping_enabled) (This)->lpVtbl->SetLastLineWrapping(This,lastline_wrapping_enabled) +#define IDWriteTextLayout4_GetLastLineWrapping(This) (This)->lpVtbl->GetLastLineWrapping(This) +#define IDWriteTextLayout4_SetOpticalAlignment(This,alignment) (This)->lpVtbl->SetOpticalAlignment(This,alignment) +#define IDWriteTextLayout4_GetOpticalAlignment(This) (This)->lpVtbl->GetOpticalAlignment(This) +#define IDWriteTextLayout4_SetFontFallback(This,fallback) (This)->lpVtbl->SetFontFallback(This,fallback) +#define IDWriteTextLayout4_GetFontFallback(This,fallback) (This)->lpVtbl->GetFontFallback(This,fallback) +/*** IDWriteTextLayout3 methods ***/ +#define IDWriteTextLayout4_InvalidateLayout(This) (This)->lpVtbl->InvalidateLayout(This) +#define IDWriteTextLayout4_SetLineSpacing(This,spacing) (This)->lpVtbl->IDWriteTextLayout3_SetLineSpacing(This,spacing) +#define IDWriteTextLayout4_GetLineSpacing(This,spacing) (This)->lpVtbl->IDWriteTextLayout3_GetLineSpacing(This,spacing) +#define IDWriteTextLayout4_GetLineMetrics(This,metrics,max_count,count) (This)->lpVtbl->IDWriteTextLayout3_GetLineMetrics(This,metrics,max_count,count) +/*** IDWriteTextLayout4 methods ***/ +#define IDWriteTextLayout4_SetFontAxisValues(This,axis_values,num_values,range) (This)->lpVtbl->SetFontAxisValues(This,axis_values,num_values,range) +#define IDWriteTextLayout4_GetFontAxisValueCount(This,pos) (This)->lpVtbl->GetFontAxisValueCount(This,pos) +#define IDWriteTextLayout4_GetFontAxisValues(This,pos,values,num_values,range) (This)->lpVtbl->GetFontAxisValues(This,pos,values,num_values,range) +#define IDWriteTextLayout4_GetAutomaticFontAxes(This) (This)->lpVtbl->GetAutomaticFontAxes(This) +#define IDWriteTextLayout4_SetAutomaticFontAxes(This,axes) (This)->lpVtbl->SetAutomaticFontAxes(This,axes) +#else +/*** IUnknown methods ***/ +static inline HRESULT IDWriteTextLayout4_QueryInterface(IDWriteTextLayout4* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static inline ULONG IDWriteTextLayout4_AddRef(IDWriteTextLayout4* This) { + return This->lpVtbl->AddRef(This); +} +static inline ULONG IDWriteTextLayout4_Release(IDWriteTextLayout4* This) { + return This->lpVtbl->Release(This); +} +/*** IDWriteTextFormat methods ***/ +static inline HRESULT IDWriteTextLayout4_SetTextAlignment(IDWriteTextLayout4* This,DWRITE_TEXT_ALIGNMENT alignment) { + return This->lpVtbl->SetTextAlignment(This,alignment); +} +static inline HRESULT IDWriteTextLayout4_SetParagraphAlignment(IDWriteTextLayout4* This,DWRITE_PARAGRAPH_ALIGNMENT alignment) { + return This->lpVtbl->SetParagraphAlignment(This,alignment); +} +static inline HRESULT IDWriteTextLayout4_SetWordWrapping(IDWriteTextLayout4* This,DWRITE_WORD_WRAPPING wrapping) { + return This->lpVtbl->SetWordWrapping(This,wrapping); +} +static inline HRESULT IDWriteTextLayout4_SetReadingDirection(IDWriteTextLayout4* This,DWRITE_READING_DIRECTION direction) { + return This->lpVtbl->SetReadingDirection(This,direction); +} +static inline HRESULT IDWriteTextLayout4_SetFlowDirection(IDWriteTextLayout4* This,DWRITE_FLOW_DIRECTION direction) { + return This->lpVtbl->SetFlowDirection(This,direction); +} +static inline HRESULT IDWriteTextLayout4_SetIncrementalTabStop(IDWriteTextLayout4* This,FLOAT tabstop) { + return This->lpVtbl->SetIncrementalTabStop(This,tabstop); +} +static inline HRESULT IDWriteTextLayout4_SetTrimming(IDWriteTextLayout4* This,const DWRITE_TRIMMING *trimming,IDWriteInlineObject *trimming_sign) { + return This->lpVtbl->SetTrimming(This,trimming,trimming_sign); +} +static inline DWRITE_TEXT_ALIGNMENT IDWriteTextLayout4_GetTextAlignment(IDWriteTextLayout4* This) { + return This->lpVtbl->GetTextAlignment(This); +} +static inline DWRITE_PARAGRAPH_ALIGNMENT IDWriteTextLayout4_GetParagraphAlignment(IDWriteTextLayout4* This) { + return This->lpVtbl->GetParagraphAlignment(This); +} +static inline DWRITE_WORD_WRAPPING IDWriteTextLayout4_GetWordWrapping(IDWriteTextLayout4* This) { + return This->lpVtbl->GetWordWrapping(This); +} +static inline DWRITE_READING_DIRECTION IDWriteTextLayout4_GetReadingDirection(IDWriteTextLayout4* This) { + return This->lpVtbl->GetReadingDirection(This); +} +static inline DWRITE_FLOW_DIRECTION IDWriteTextLayout4_GetFlowDirection(IDWriteTextLayout4* This) { + return This->lpVtbl->GetFlowDirection(This); +} +static inline FLOAT IDWriteTextLayout4_GetIncrementalTabStop(IDWriteTextLayout4* This) { + return This->lpVtbl->GetIncrementalTabStop(This); +} +static inline HRESULT IDWriteTextLayout4_GetTrimming(IDWriteTextLayout4* This,DWRITE_TRIMMING *options,IDWriteInlineObject **trimming_sign) { + return This->lpVtbl->GetTrimming(This,options,trimming_sign); +} +/*** IDWriteTextLayout methods ***/ +static inline HRESULT IDWriteTextLayout4_SetMaxWidth(IDWriteTextLayout4* This,FLOAT maxWidth) { + return This->lpVtbl->SetMaxWidth(This,maxWidth); +} +static inline HRESULT IDWriteTextLayout4_SetMaxHeight(IDWriteTextLayout4* This,FLOAT maxHeight) { + return This->lpVtbl->SetMaxHeight(This,maxHeight); +} +static inline HRESULT IDWriteTextLayout4_SetFontCollection(IDWriteTextLayout4* This,IDWriteFontCollection *collection,DWRITE_TEXT_RANGE range) { + return This->lpVtbl->SetFontCollection(This,collection,range); +} +static inline HRESULT IDWriteTextLayout4_SetFontFamilyName(IDWriteTextLayout4* This,const WCHAR *name,DWRITE_TEXT_RANGE range) { + return This->lpVtbl->SetFontFamilyName(This,name,range); +} +static inline HRESULT IDWriteTextLayout4_SetFontWeight(IDWriteTextLayout4* This,DWRITE_FONT_WEIGHT weight,DWRITE_TEXT_RANGE range) { + return This->lpVtbl->SetFontWeight(This,weight,range); +} +static inline HRESULT IDWriteTextLayout4_SetFontStyle(IDWriteTextLayout4* This,DWRITE_FONT_STYLE style,DWRITE_TEXT_RANGE range) { + return This->lpVtbl->SetFontStyle(This,style,range); +} +static inline HRESULT IDWriteTextLayout4_SetFontStretch(IDWriteTextLayout4* This,DWRITE_FONT_STRETCH stretch,DWRITE_TEXT_RANGE range) { + return This->lpVtbl->SetFontStretch(This,stretch,range); +} +static inline HRESULT IDWriteTextLayout4_SetFontSize(IDWriteTextLayout4* This,FLOAT size,DWRITE_TEXT_RANGE range) { + return This->lpVtbl->SetFontSize(This,size,range); +} +static inline HRESULT IDWriteTextLayout4_SetUnderline(IDWriteTextLayout4* This,WINBOOL underline,DWRITE_TEXT_RANGE range) { + return This->lpVtbl->SetUnderline(This,underline,range); +} +static inline HRESULT IDWriteTextLayout4_SetStrikethrough(IDWriteTextLayout4* This,WINBOOL strikethrough,DWRITE_TEXT_RANGE range) { + return This->lpVtbl->SetStrikethrough(This,strikethrough,range); +} +static inline HRESULT IDWriteTextLayout4_SetDrawingEffect(IDWriteTextLayout4* This,IUnknown *effect,DWRITE_TEXT_RANGE range) { + return This->lpVtbl->SetDrawingEffect(This,effect,range); +} +static inline HRESULT IDWriteTextLayout4_SetInlineObject(IDWriteTextLayout4* This,IDWriteInlineObject *object,DWRITE_TEXT_RANGE range) { + return This->lpVtbl->SetInlineObject(This,object,range); +} +static inline HRESULT IDWriteTextLayout4_SetTypography(IDWriteTextLayout4* This,IDWriteTypography *typography,DWRITE_TEXT_RANGE range) { + return This->lpVtbl->SetTypography(This,typography,range); +} +static inline HRESULT IDWriteTextLayout4_SetLocaleName(IDWriteTextLayout4* This,const WCHAR *locale,DWRITE_TEXT_RANGE range) { + return This->lpVtbl->SetLocaleName(This,locale,range); +} +static inline FLOAT IDWriteTextLayout4_GetMaxWidth(IDWriteTextLayout4* This) { + return This->lpVtbl->GetMaxWidth(This); +} +static inline FLOAT IDWriteTextLayout4_GetMaxHeight(IDWriteTextLayout4* This) { + return This->lpVtbl->GetMaxHeight(This); +} +static inline HRESULT IDWriteTextLayout4_GetFontCollection(IDWriteTextLayout4* This,UINT32 pos,IDWriteFontCollection **collection,DWRITE_TEXT_RANGE *range) { + return This->lpVtbl->IDWriteTextLayout_GetFontCollection(This,pos,collection,range); +} +static inline HRESULT IDWriteTextLayout4_GetFontFamilyNameLength(IDWriteTextLayout4* This,UINT32 pos,UINT32 *len,DWRITE_TEXT_RANGE *range) { + return This->lpVtbl->IDWriteTextLayout_GetFontFamilyNameLength(This,pos,len,range); +} +static inline HRESULT IDWriteTextLayout4_GetFontFamilyName(IDWriteTextLayout4* This,UINT32 position,WCHAR *name,UINT32 name_size,DWRITE_TEXT_RANGE *range) { + return This->lpVtbl->IDWriteTextLayout_GetFontFamilyName(This,position,name,name_size,range); +} +static inline HRESULT IDWriteTextLayout4_GetFontWeight(IDWriteTextLayout4* This,UINT32 position,DWRITE_FONT_WEIGHT *weight,DWRITE_TEXT_RANGE *range) { + return This->lpVtbl->IDWriteTextLayout_GetFontWeight(This,position,weight,range); +} +static inline HRESULT IDWriteTextLayout4_GetFontStyle(IDWriteTextLayout4* This,UINT32 currentPosition,DWRITE_FONT_STYLE *style,DWRITE_TEXT_RANGE *range) { + return This->lpVtbl->IDWriteTextLayout_GetFontStyle(This,currentPosition,style,range); +} +static inline HRESULT IDWriteTextLayout4_GetFontStretch(IDWriteTextLayout4* This,UINT32 position,DWRITE_FONT_STRETCH *stretch,DWRITE_TEXT_RANGE *range) { + return This->lpVtbl->IDWriteTextLayout_GetFontStretch(This,position,stretch,range); +} +static inline HRESULT IDWriteTextLayout4_GetFontSize(IDWriteTextLayout4* This,UINT32 position,FLOAT *size,DWRITE_TEXT_RANGE *range) { + return This->lpVtbl->IDWriteTextLayout_GetFontSize(This,position,size,range); +} +static inline HRESULT IDWriteTextLayout4_GetUnderline(IDWriteTextLayout4* This,UINT32 position,WINBOOL *has_underline,DWRITE_TEXT_RANGE *range) { + return This->lpVtbl->GetUnderline(This,position,has_underline,range); +} +static inline HRESULT IDWriteTextLayout4_GetStrikethrough(IDWriteTextLayout4* This,UINT32 position,WINBOOL *has_strikethrough,DWRITE_TEXT_RANGE *range) { + return This->lpVtbl->GetStrikethrough(This,position,has_strikethrough,range); +} +static inline HRESULT IDWriteTextLayout4_GetDrawingEffect(IDWriteTextLayout4* This,UINT32 position,IUnknown **effect,DWRITE_TEXT_RANGE *range) { + return This->lpVtbl->GetDrawingEffect(This,position,effect,range); +} +static inline HRESULT IDWriteTextLayout4_GetInlineObject(IDWriteTextLayout4* This,UINT32 position,IDWriteInlineObject **object,DWRITE_TEXT_RANGE *range) { + return This->lpVtbl->GetInlineObject(This,position,object,range); +} +static inline HRESULT IDWriteTextLayout4_GetTypography(IDWriteTextLayout4* This,UINT32 position,IDWriteTypography **typography,DWRITE_TEXT_RANGE *range) { + return This->lpVtbl->GetTypography(This,position,typography,range); +} +static inline HRESULT IDWriteTextLayout4_GetLocaleNameLength(IDWriteTextLayout4* This,UINT32 position,UINT32 *length,DWRITE_TEXT_RANGE *range) { + return This->lpVtbl->IDWriteTextLayout_GetLocaleNameLength(This,position,length,range); +} +static inline HRESULT IDWriteTextLayout4_GetLocaleName(IDWriteTextLayout4* This,UINT32 position,WCHAR *name,UINT32 name_size,DWRITE_TEXT_RANGE *range) { + return This->lpVtbl->IDWriteTextLayout_GetLocaleName(This,position,name,name_size,range); +} +static inline HRESULT IDWriteTextLayout4_Draw(IDWriteTextLayout4* This,void *context,IDWriteTextRenderer *renderer,FLOAT originX,FLOAT originY) { + return This->lpVtbl->Draw(This,context,renderer,originX,originY); +} +static inline HRESULT IDWriteTextLayout4_GetOverhangMetrics(IDWriteTextLayout4* This,DWRITE_OVERHANG_METRICS *overhangs) { + return This->lpVtbl->GetOverhangMetrics(This,overhangs); +} +static inline HRESULT IDWriteTextLayout4_GetClusterMetrics(IDWriteTextLayout4* This,DWRITE_CLUSTER_METRICS *metrics,UINT32 max_count,UINT32 *act_count) { + return This->lpVtbl->GetClusterMetrics(This,metrics,max_count,act_count); +} +static inline HRESULT IDWriteTextLayout4_DetermineMinWidth(IDWriteTextLayout4* This,FLOAT *min_width) { + return This->lpVtbl->DetermineMinWidth(This,min_width); +} +static inline HRESULT IDWriteTextLayout4_HitTestPoint(IDWriteTextLayout4* This,FLOAT pointX,FLOAT pointY,WINBOOL *is_trailinghit,WINBOOL *is_inside,DWRITE_HIT_TEST_METRICS *metrics) { + return This->lpVtbl->HitTestPoint(This,pointX,pointY,is_trailinghit,is_inside,metrics); +} +static inline HRESULT IDWriteTextLayout4_HitTestTextPosition(IDWriteTextLayout4* This,UINT32 textPosition,WINBOOL is_trailinghit,FLOAT *pointX,FLOAT *pointY,DWRITE_HIT_TEST_METRICS *metrics) { + return This->lpVtbl->HitTestTextPosition(This,textPosition,is_trailinghit,pointX,pointY,metrics); +} +static inline HRESULT IDWriteTextLayout4_HitTestTextRange(IDWriteTextLayout4* This,UINT32 textPosition,UINT32 textLength,FLOAT originX,FLOAT originY,DWRITE_HIT_TEST_METRICS *metrics,UINT32 max_metricscount,UINT32 *actual_metricscount) { + return This->lpVtbl->HitTestTextRange(This,textPosition,textLength,originX,originY,metrics,max_metricscount,actual_metricscount); +} +/*** IDWriteTextLayout1 methods ***/ +static inline HRESULT IDWriteTextLayout4_SetPairKerning(IDWriteTextLayout4* This,WINBOOL is_pairkerning_enabled,DWRITE_TEXT_RANGE range) { + return This->lpVtbl->SetPairKerning(This,is_pairkerning_enabled,range); +} +static inline HRESULT IDWriteTextLayout4_GetPairKerning(IDWriteTextLayout4* This,UINT32 position,WINBOOL *is_pairkerning_enabled,DWRITE_TEXT_RANGE *range) { + return This->lpVtbl->GetPairKerning(This,position,is_pairkerning_enabled,range); +} +static inline HRESULT IDWriteTextLayout4_SetCharacterSpacing(IDWriteTextLayout4* This,FLOAT leading_spacing,FLOAT trailing_spacing,FLOAT minimum_advance_width,DWRITE_TEXT_RANGE range) { + return This->lpVtbl->SetCharacterSpacing(This,leading_spacing,trailing_spacing,minimum_advance_width,range); +} +static inline HRESULT IDWriteTextLayout4_GetCharacterSpacing(IDWriteTextLayout4* This,UINT32 position,FLOAT *leading_spacing,FLOAT *trailing_spacing,FLOAT *minimum_advance_width,DWRITE_TEXT_RANGE *range) { + return This->lpVtbl->GetCharacterSpacing(This,position,leading_spacing,trailing_spacing,minimum_advance_width,range); +} +/*** IDWriteTextLayout2 methods ***/ +static inline HRESULT IDWriteTextLayout4_GetMetrics(IDWriteTextLayout4* This,DWRITE_TEXT_METRICS1 *metrics) { + return This->lpVtbl->IDWriteTextLayout2_GetMetrics(This,metrics); +} +static inline HRESULT IDWriteTextLayout4_SetVerticalGlyphOrientation(IDWriteTextLayout4* This,DWRITE_VERTICAL_GLYPH_ORIENTATION orientation) { + return This->lpVtbl->SetVerticalGlyphOrientation(This,orientation); +} +static inline DWRITE_VERTICAL_GLYPH_ORIENTATION IDWriteTextLayout4_GetVerticalGlyphOrientation(IDWriteTextLayout4* This) { + return This->lpVtbl->GetVerticalGlyphOrientation(This); +} +static inline HRESULT IDWriteTextLayout4_SetLastLineWrapping(IDWriteTextLayout4* This,WINBOOL lastline_wrapping_enabled) { + return This->lpVtbl->SetLastLineWrapping(This,lastline_wrapping_enabled); +} +static inline WINBOOL IDWriteTextLayout4_GetLastLineWrapping(IDWriteTextLayout4* This) { + return This->lpVtbl->GetLastLineWrapping(This); +} +static inline HRESULT IDWriteTextLayout4_SetOpticalAlignment(IDWriteTextLayout4* This,DWRITE_OPTICAL_ALIGNMENT alignment) { + return This->lpVtbl->SetOpticalAlignment(This,alignment); +} +static inline DWRITE_OPTICAL_ALIGNMENT IDWriteTextLayout4_GetOpticalAlignment(IDWriteTextLayout4* This) { + return This->lpVtbl->GetOpticalAlignment(This); +} +static inline HRESULT IDWriteTextLayout4_SetFontFallback(IDWriteTextLayout4* This,IDWriteFontFallback *fallback) { + return This->lpVtbl->SetFontFallback(This,fallback); +} +static inline HRESULT IDWriteTextLayout4_GetFontFallback(IDWriteTextLayout4* This,IDWriteFontFallback **fallback) { + return This->lpVtbl->GetFontFallback(This,fallback); +} +/*** IDWriteTextLayout3 methods ***/ +static inline HRESULT IDWriteTextLayout4_InvalidateLayout(IDWriteTextLayout4* This) { + return This->lpVtbl->InvalidateLayout(This); +} +static inline HRESULT IDWriteTextLayout4_SetLineSpacing(IDWriteTextLayout4* This,const DWRITE_LINE_SPACING *spacing) { + return This->lpVtbl->IDWriteTextLayout3_SetLineSpacing(This,spacing); +} +static inline HRESULT IDWriteTextLayout4_GetLineSpacing(IDWriteTextLayout4* This,DWRITE_LINE_SPACING *spacing) { + return This->lpVtbl->IDWriteTextLayout3_GetLineSpacing(This,spacing); +} +static inline HRESULT IDWriteTextLayout4_GetLineMetrics(IDWriteTextLayout4* This,DWRITE_LINE_METRICS1 *metrics,UINT32 max_count,UINT32 *count) { + return This->lpVtbl->IDWriteTextLayout3_GetLineMetrics(This,metrics,max_count,count); +} +/*** IDWriteTextLayout4 methods ***/ +static inline HRESULT IDWriteTextLayout4_SetFontAxisValues(IDWriteTextLayout4* This,const DWRITE_FONT_AXIS_VALUE *axis_values,UINT32 num_values,DWRITE_TEXT_RANGE range) { + return This->lpVtbl->SetFontAxisValues(This,axis_values,num_values,range); +} +static inline UINT32 IDWriteTextLayout4_GetFontAxisValueCount(IDWriteTextLayout4* This,UINT32 pos) { + return This->lpVtbl->GetFontAxisValueCount(This,pos); +} +static inline HRESULT IDWriteTextLayout4_GetFontAxisValues(IDWriteTextLayout4* This,UINT32 pos,DWRITE_FONT_AXIS_VALUE *values,UINT32 num_values,DWRITE_TEXT_RANGE *range) { + return This->lpVtbl->GetFontAxisValues(This,pos,values,num_values,range); +} +static inline DWRITE_AUTOMATIC_FONT_AXES IDWriteTextLayout4_GetAutomaticFontAxes(IDWriteTextLayout4* This) { + return This->lpVtbl->GetAutomaticFontAxes(This); +} +static inline HRESULT IDWriteTextLayout4_SetAutomaticFontAxes(IDWriteTextLayout4* This,DWRITE_AUTOMATIC_FONT_AXES axes) { + return This->lpVtbl->SetAutomaticFontAxes(This,axes); +} +#endif +#endif + +#endif + + +#endif /* __IDWriteTextLayout4_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IDWriteFontFallback1 interface + */ +#ifndef __IDWriteFontFallback1_INTERFACE_DEFINED__ +#define __IDWriteFontFallback1_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDWriteFontFallback1, 0x2397599d, 0xdd0d, 0x4681, 0xbd,0x6a, 0xf4,0xf3,0x1e,0xaa,0xde,0x77); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("2397599d-dd0d-4681-bd6a-f4f31eaade77") +IDWriteFontFallback1 : public IDWriteFontFallback +{ + virtual HRESULT STDMETHODCALLTYPE MapCharacters( + IDWriteTextAnalysisSource *source, + UINT32 pos, + UINT32 length, + IDWriteFontCollection *base_collection, + const WCHAR *familyname, + const DWRITE_FONT_AXIS_VALUE *axis_values, + UINT32 num_values, + UINT32 *mapped_length, + FLOAT *scale, + IDWriteFontFace5 **fontface) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDWriteFontFallback1, 0x2397599d, 0xdd0d, 0x4681, 0xbd,0x6a, 0xf4,0xf3,0x1e,0xaa,0xde,0x77) +#endif +#else +typedef struct IDWriteFontFallback1Vtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDWriteFontFallback1 *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDWriteFontFallback1 *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDWriteFontFallback1 *This); + + /*** IDWriteFontFallback methods ***/ + HRESULT (STDMETHODCALLTYPE *MapCharacters)( + IDWriteFontFallback1 *This, + IDWriteTextAnalysisSource *source, + UINT32 position, + UINT32 length, + IDWriteFontCollection *basecollection, + const WCHAR *baseFamilyName, + DWRITE_FONT_WEIGHT baseWeight, + DWRITE_FONT_STYLE baseStyle, + DWRITE_FONT_STRETCH baseStretch, + UINT32 *mappedLength, + IDWriteFont **mappedFont, + FLOAT *scale); + + /*** IDWriteFontFallback1 methods ***/ + HRESULT (STDMETHODCALLTYPE *IDWriteFontFallback1_MapCharacters)( + IDWriteFontFallback1 *This, + IDWriteTextAnalysisSource *source, + UINT32 pos, + UINT32 length, + IDWriteFontCollection *base_collection, + const WCHAR *familyname, + const DWRITE_FONT_AXIS_VALUE *axis_values, + UINT32 num_values, + UINT32 *mapped_length, + FLOAT *scale, + IDWriteFontFace5 **fontface); + + END_INTERFACE +} IDWriteFontFallback1Vtbl; + +interface IDWriteFontFallback1 { + CONST_VTBL IDWriteFontFallback1Vtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDWriteFontFallback1_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteFontFallback1_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDWriteFontFallback1_Release(This) (This)->lpVtbl->Release(This) +/*** IDWriteFontFallback methods ***/ +/*** IDWriteFontFallback1 methods ***/ +#define IDWriteFontFallback1_MapCharacters(This,source,pos,length,base_collection,familyname,axis_values,num_values,mapped_length,scale,fontface) (This)->lpVtbl->IDWriteFontFallback1_MapCharacters(This,source,pos,length,base_collection,familyname,axis_values,num_values,mapped_length,scale,fontface) +#else +/*** IUnknown methods ***/ +static inline HRESULT IDWriteFontFallback1_QueryInterface(IDWriteFontFallback1* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static inline ULONG IDWriteFontFallback1_AddRef(IDWriteFontFallback1* This) { + return This->lpVtbl->AddRef(This); +} +static inline ULONG IDWriteFontFallback1_Release(IDWriteFontFallback1* This) { + return This->lpVtbl->Release(This); +} +/*** IDWriteFontFallback methods ***/ +/*** IDWriteFontFallback1 methods ***/ +static inline HRESULT IDWriteFontFallback1_MapCharacters(IDWriteFontFallback1* This,IDWriteTextAnalysisSource *source,UINT32 pos,UINT32 length,IDWriteFontCollection *base_collection,const WCHAR *familyname,const DWRITE_FONT_AXIS_VALUE *axis_values,UINT32 num_values,UINT32 *mapped_length,FLOAT *scale,IDWriteFontFace5 **fontface) { + return This->lpVtbl->IDWriteFontFallback1_MapCharacters(This,source,pos,length,base_collection,familyname,axis_values,num_values,mapped_length,scale,fontface); +} +#endif +#endif + +#endif + + +#endif /* __IDWriteFontFallback1_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IDWriteGdiInterop1 interface + */ +#ifndef __IDWriteGdiInterop1_INTERFACE_DEFINED__ +#define __IDWriteGdiInterop1_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDWriteGdiInterop1, 0x4556be70, 0x3abd, 0x4f70, 0x90,0xbe, 0x42,0x17,0x80,0xa6,0xf5,0x15); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("4556be70-3abd-4f70-90be-421780a6f515") +IDWriteGdiInterop1 : public IDWriteGdiInterop +{ + virtual HRESULT STDMETHODCALLTYPE CreateFontFromLOGFONT( + const LOGFONTW *logfont, + IDWriteFontCollection *collection, + IDWriteFont **font) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetFontSignature_( + IDWriteFontFace *fontface, + FONTSIGNATURE *fontsig) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetFontSignature( + IDWriteFont *font, + FONTSIGNATURE *fontsig) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetMatchingFontsByLOGFONT( + const LOGFONTW *logfont, + IDWriteFontSet *fontset, + IDWriteFontSet **subset) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDWriteGdiInterop1, 0x4556be70, 0x3abd, 0x4f70, 0x90,0xbe, 0x42,0x17,0x80,0xa6,0xf5,0x15) +#endif +#else +typedef struct IDWriteGdiInterop1Vtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDWriteGdiInterop1 *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDWriteGdiInterop1 *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDWriteGdiInterop1 *This); + + /*** IDWriteGdiInterop methods ***/ + HRESULT (STDMETHODCALLTYPE *CreateFontFromLOGFONT)( + IDWriteGdiInterop1 *This, + const LOGFONTW *logfont, + IDWriteFont **font); + + HRESULT (STDMETHODCALLTYPE *ConvertFontToLOGFONT)( + IDWriteGdiInterop1 *This, + IDWriteFont *font, + LOGFONTW *logfont, + WINBOOL *is_systemfont); + + HRESULT (STDMETHODCALLTYPE *ConvertFontFaceToLOGFONT)( + IDWriteGdiInterop1 *This, + IDWriteFontFace *font, + LOGFONTW *logfont); + + HRESULT (STDMETHODCALLTYPE *CreateFontFaceFromHdc)( + IDWriteGdiInterop1 *This, + HDC hdc, + IDWriteFontFace **fontface); + + HRESULT (STDMETHODCALLTYPE *CreateBitmapRenderTarget)( + IDWriteGdiInterop1 *This, + HDC hdc, + UINT32 width, + UINT32 height, + IDWriteBitmapRenderTarget **target); + + /*** IDWriteGdiInterop1 methods ***/ + HRESULT (STDMETHODCALLTYPE *IDWriteGdiInterop1_CreateFontFromLOGFONT)( + IDWriteGdiInterop1 *This, + const LOGFONTW *logfont, + IDWriteFontCollection *collection, + IDWriteFont **font); + + HRESULT (STDMETHODCALLTYPE *GetFontSignature_)( + IDWriteGdiInterop1 *This, + IDWriteFontFace *fontface, + FONTSIGNATURE *fontsig); + + HRESULT (STDMETHODCALLTYPE *GetFontSignature)( + IDWriteGdiInterop1 *This, + IDWriteFont *font, + FONTSIGNATURE *fontsig); + + HRESULT (STDMETHODCALLTYPE *GetMatchingFontsByLOGFONT)( + IDWriteGdiInterop1 *This, + const LOGFONTW *logfont, + IDWriteFontSet *fontset, + IDWriteFontSet **subset); + + END_INTERFACE +} IDWriteGdiInterop1Vtbl; + +interface IDWriteGdiInterop1 { + CONST_VTBL IDWriteGdiInterop1Vtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDWriteGdiInterop1_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteGdiInterop1_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDWriteGdiInterop1_Release(This) (This)->lpVtbl->Release(This) +/*** IDWriteGdiInterop methods ***/ +#define IDWriteGdiInterop1_ConvertFontToLOGFONT(This,font,logfont,is_systemfont) (This)->lpVtbl->ConvertFontToLOGFONT(This,font,logfont,is_systemfont) +#define IDWriteGdiInterop1_ConvertFontFaceToLOGFONT(This,font,logfont) (This)->lpVtbl->ConvertFontFaceToLOGFONT(This,font,logfont) +#define IDWriteGdiInterop1_CreateFontFaceFromHdc(This,hdc,fontface) (This)->lpVtbl->CreateFontFaceFromHdc(This,hdc,fontface) +#define IDWriteGdiInterop1_CreateBitmapRenderTarget(This,hdc,width,height,target) (This)->lpVtbl->CreateBitmapRenderTarget(This,hdc,width,height,target) +/*** IDWriteGdiInterop1 methods ***/ +#define IDWriteGdiInterop1_CreateFontFromLOGFONT(This,logfont,collection,font) (This)->lpVtbl->IDWriteGdiInterop1_CreateFontFromLOGFONT(This,logfont,collection,font) +#define IDWriteGdiInterop1_GetFontSignature_(This,fontface,fontsig) (This)->lpVtbl->GetFontSignature_(This,fontface,fontsig) +#define IDWriteGdiInterop1_GetFontSignature(This,font,fontsig) (This)->lpVtbl->GetFontSignature(This,font,fontsig) +#define IDWriteGdiInterop1_GetMatchingFontsByLOGFONT(This,logfont,fontset,subset) (This)->lpVtbl->GetMatchingFontsByLOGFONT(This,logfont,fontset,subset) +#else +/*** IUnknown methods ***/ +static inline HRESULT IDWriteGdiInterop1_QueryInterface(IDWriteGdiInterop1* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static inline ULONG IDWriteGdiInterop1_AddRef(IDWriteGdiInterop1* This) { + return This->lpVtbl->AddRef(This); +} +static inline ULONG IDWriteGdiInterop1_Release(IDWriteGdiInterop1* This) { + return This->lpVtbl->Release(This); +} +/*** IDWriteGdiInterop methods ***/ +static inline HRESULT IDWriteGdiInterop1_ConvertFontToLOGFONT(IDWriteGdiInterop1* This,IDWriteFont *font,LOGFONTW *logfont,WINBOOL *is_systemfont) { + return This->lpVtbl->ConvertFontToLOGFONT(This,font,logfont,is_systemfont); +} +static inline HRESULT IDWriteGdiInterop1_ConvertFontFaceToLOGFONT(IDWriteGdiInterop1* This,IDWriteFontFace *font,LOGFONTW *logfont) { + return This->lpVtbl->ConvertFontFaceToLOGFONT(This,font,logfont); +} +static inline HRESULT IDWriteGdiInterop1_CreateFontFaceFromHdc(IDWriteGdiInterop1* This,HDC hdc,IDWriteFontFace **fontface) { + return This->lpVtbl->CreateFontFaceFromHdc(This,hdc,fontface); +} +static inline HRESULT IDWriteGdiInterop1_CreateBitmapRenderTarget(IDWriteGdiInterop1* This,HDC hdc,UINT32 width,UINT32 height,IDWriteBitmapRenderTarget **target) { + return This->lpVtbl->CreateBitmapRenderTarget(This,hdc,width,height,target); +} +/*** IDWriteGdiInterop1 methods ***/ +static inline HRESULT IDWriteGdiInterop1_CreateFontFromLOGFONT(IDWriteGdiInterop1* This,const LOGFONTW *logfont,IDWriteFontCollection *collection,IDWriteFont **font) { + return This->lpVtbl->IDWriteGdiInterop1_CreateFontFromLOGFONT(This,logfont,collection,font); +} +static inline HRESULT IDWriteGdiInterop1_GetFontSignature_(IDWriteGdiInterop1* This,IDWriteFontFace *fontface,FONTSIGNATURE *fontsig) { + return This->lpVtbl->GetFontSignature_(This,fontface,fontsig); +} +static inline HRESULT IDWriteGdiInterop1_GetFontSignature(IDWriteGdiInterop1* This,IDWriteFont *font,FONTSIGNATURE *fontsig) { + return This->lpVtbl->GetFontSignature(This,font,fontsig); +} +static inline HRESULT IDWriteGdiInterop1_GetMatchingFontsByLOGFONT(IDWriteGdiInterop1* This,const LOGFONTW *logfont,IDWriteFontSet *fontset,IDWriteFontSet **subset) { + return This->lpVtbl->GetMatchingFontsByLOGFONT(This,logfont,fontset,subset); +} +#endif +#endif + +#endif + + +#endif /* __IDWriteGdiInterop1_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IDWriteFontSetBuilder interface + */ +#ifndef __IDWriteFontSetBuilder_INTERFACE_DEFINED__ +#define __IDWriteFontSetBuilder_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDWriteFontSetBuilder, 0x2f642afe, 0x9c68, 0x4f40, 0xb8,0xbe, 0x45,0x74,0x01,0xaf,0xcb,0x3d); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("2f642afe-9c68-4f40-b8be-457401afcb3d") +IDWriteFontSetBuilder : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE AddFontFaceReference_( + IDWriteFontFaceReference *ref, + const DWRITE_FONT_PROPERTY *props, + UINT32 prop_count) = 0; + + virtual HRESULT STDMETHODCALLTYPE AddFontFaceReference( + IDWriteFontFaceReference *ref) = 0; + + virtual HRESULT STDMETHODCALLTYPE AddFontSet( + IDWriteFontSet *fontset) = 0; + + virtual HRESULT STDMETHODCALLTYPE CreateFontSet( + IDWriteFontSet **fontset) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDWriteFontSetBuilder, 0x2f642afe, 0x9c68, 0x4f40, 0xb8,0xbe, 0x45,0x74,0x01,0xaf,0xcb,0x3d) +#endif +#else +typedef struct IDWriteFontSetBuilderVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDWriteFontSetBuilder *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDWriteFontSetBuilder *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDWriteFontSetBuilder *This); + + /*** IDWriteFontSetBuilder methods ***/ + HRESULT (STDMETHODCALLTYPE *AddFontFaceReference_)( + IDWriteFontSetBuilder *This, + IDWriteFontFaceReference *ref, + const DWRITE_FONT_PROPERTY *props, + UINT32 prop_count); + + HRESULT (STDMETHODCALLTYPE *AddFontFaceReference)( + IDWriteFontSetBuilder *This, + IDWriteFontFaceReference *ref); + + HRESULT (STDMETHODCALLTYPE *AddFontSet)( + IDWriteFontSetBuilder *This, + IDWriteFontSet *fontset); + + HRESULT (STDMETHODCALLTYPE *CreateFontSet)( + IDWriteFontSetBuilder *This, + IDWriteFontSet **fontset); + + END_INTERFACE +} IDWriteFontSetBuilderVtbl; + +interface IDWriteFontSetBuilder { + CONST_VTBL IDWriteFontSetBuilderVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDWriteFontSetBuilder_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteFontSetBuilder_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDWriteFontSetBuilder_Release(This) (This)->lpVtbl->Release(This) +/*** IDWriteFontSetBuilder methods ***/ +#define IDWriteFontSetBuilder_AddFontFaceReference_(This,ref,props,prop_count) (This)->lpVtbl->AddFontFaceReference_(This,ref,props,prop_count) +#define IDWriteFontSetBuilder_AddFontFaceReference(This,ref) (This)->lpVtbl->AddFontFaceReference(This,ref) +#define IDWriteFontSetBuilder_AddFontSet(This,fontset) (This)->lpVtbl->AddFontSet(This,fontset) +#define IDWriteFontSetBuilder_CreateFontSet(This,fontset) (This)->lpVtbl->CreateFontSet(This,fontset) +#else +/*** IUnknown methods ***/ +static inline HRESULT IDWriteFontSetBuilder_QueryInterface(IDWriteFontSetBuilder* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static inline ULONG IDWriteFontSetBuilder_AddRef(IDWriteFontSetBuilder* This) { + return This->lpVtbl->AddRef(This); +} +static inline ULONG IDWriteFontSetBuilder_Release(IDWriteFontSetBuilder* This) { + return This->lpVtbl->Release(This); +} +/*** IDWriteFontSetBuilder methods ***/ +static inline HRESULT IDWriteFontSetBuilder_AddFontFaceReference_(IDWriteFontSetBuilder* This,IDWriteFontFaceReference *ref,const DWRITE_FONT_PROPERTY *props,UINT32 prop_count) { + return This->lpVtbl->AddFontFaceReference_(This,ref,props,prop_count); +} +static inline HRESULT IDWriteFontSetBuilder_AddFontFaceReference(IDWriteFontSetBuilder* This,IDWriteFontFaceReference *ref) { + return This->lpVtbl->AddFontFaceReference(This,ref); +} +static inline HRESULT IDWriteFontSetBuilder_AddFontSet(IDWriteFontSetBuilder* This,IDWriteFontSet *fontset) { + return This->lpVtbl->AddFontSet(This,fontset); +} +static inline HRESULT IDWriteFontSetBuilder_CreateFontSet(IDWriteFontSetBuilder* This,IDWriteFontSet **fontset) { + return This->lpVtbl->CreateFontSet(This,fontset); +} +#endif +#endif + +#endif + + +#endif /* __IDWriteFontSetBuilder_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IDWriteFontSetBuilder1 interface + */ +#ifndef __IDWriteFontSetBuilder1_INTERFACE_DEFINED__ +#define __IDWriteFontSetBuilder1_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDWriteFontSetBuilder1, 0x3ff7715f, 0x3cdc, 0x4dc6, 0x9b,0x72, 0xec,0x56,0x21,0xdc,0xca,0xfd); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("3ff7715f-3cdc-4dc6-9b72-ec5621dccafd") +IDWriteFontSetBuilder1 : public IDWriteFontSetBuilder +{ + virtual HRESULT STDMETHODCALLTYPE AddFontFile( + IDWriteFontFile *file) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDWriteFontSetBuilder1, 0x3ff7715f, 0x3cdc, 0x4dc6, 0x9b,0x72, 0xec,0x56,0x21,0xdc,0xca,0xfd) +#endif +#else +typedef struct IDWriteFontSetBuilder1Vtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDWriteFontSetBuilder1 *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDWriteFontSetBuilder1 *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDWriteFontSetBuilder1 *This); + + /*** IDWriteFontSetBuilder methods ***/ + HRESULT (STDMETHODCALLTYPE *AddFontFaceReference_)( + IDWriteFontSetBuilder1 *This, + IDWriteFontFaceReference *ref, + const DWRITE_FONT_PROPERTY *props, + UINT32 prop_count); + + HRESULT (STDMETHODCALLTYPE *AddFontFaceReference)( + IDWriteFontSetBuilder1 *This, + IDWriteFontFaceReference *ref); + + HRESULT (STDMETHODCALLTYPE *AddFontSet)( + IDWriteFontSetBuilder1 *This, + IDWriteFontSet *fontset); + + HRESULT (STDMETHODCALLTYPE *CreateFontSet)( + IDWriteFontSetBuilder1 *This, + IDWriteFontSet **fontset); + + /*** IDWriteFontSetBuilder1 methods ***/ + HRESULT (STDMETHODCALLTYPE *AddFontFile)( + IDWriteFontSetBuilder1 *This, + IDWriteFontFile *file); + + END_INTERFACE +} IDWriteFontSetBuilder1Vtbl; + +interface IDWriteFontSetBuilder1 { + CONST_VTBL IDWriteFontSetBuilder1Vtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDWriteFontSetBuilder1_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteFontSetBuilder1_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDWriteFontSetBuilder1_Release(This) (This)->lpVtbl->Release(This) +/*** IDWriteFontSetBuilder methods ***/ +#define IDWriteFontSetBuilder1_AddFontFaceReference_(This,ref,props,prop_count) (This)->lpVtbl->AddFontFaceReference_(This,ref,props,prop_count) +#define IDWriteFontSetBuilder1_AddFontFaceReference(This,ref) (This)->lpVtbl->AddFontFaceReference(This,ref) +#define IDWriteFontSetBuilder1_AddFontSet(This,fontset) (This)->lpVtbl->AddFontSet(This,fontset) +#define IDWriteFontSetBuilder1_CreateFontSet(This,fontset) (This)->lpVtbl->CreateFontSet(This,fontset) +/*** IDWriteFontSetBuilder1 methods ***/ +#define IDWriteFontSetBuilder1_AddFontFile(This,file) (This)->lpVtbl->AddFontFile(This,file) +#else +/*** IUnknown methods ***/ +static inline HRESULT IDWriteFontSetBuilder1_QueryInterface(IDWriteFontSetBuilder1* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static inline ULONG IDWriteFontSetBuilder1_AddRef(IDWriteFontSetBuilder1* This) { + return This->lpVtbl->AddRef(This); +} +static inline ULONG IDWriteFontSetBuilder1_Release(IDWriteFontSetBuilder1* This) { + return This->lpVtbl->Release(This); +} +/*** IDWriteFontSetBuilder methods ***/ +static inline HRESULT IDWriteFontSetBuilder1_AddFontFaceReference_(IDWriteFontSetBuilder1* This,IDWriteFontFaceReference *ref,const DWRITE_FONT_PROPERTY *props,UINT32 prop_count) { + return This->lpVtbl->AddFontFaceReference_(This,ref,props,prop_count); +} +static inline HRESULT IDWriteFontSetBuilder1_AddFontFaceReference(IDWriteFontSetBuilder1* This,IDWriteFontFaceReference *ref) { + return This->lpVtbl->AddFontFaceReference(This,ref); +} +static inline HRESULT IDWriteFontSetBuilder1_AddFontSet(IDWriteFontSetBuilder1* This,IDWriteFontSet *fontset) { + return This->lpVtbl->AddFontSet(This,fontset); +} +static inline HRESULT IDWriteFontSetBuilder1_CreateFontSet(IDWriteFontSetBuilder1* This,IDWriteFontSet **fontset) { + return This->lpVtbl->CreateFontSet(This,fontset); +} +/*** IDWriteFontSetBuilder1 methods ***/ +static inline HRESULT IDWriteFontSetBuilder1_AddFontFile(IDWriteFontSetBuilder1* This,IDWriteFontFile *file) { + return This->lpVtbl->AddFontFile(This,file); +} +#endif +#endif + +#endif + + +#endif /* __IDWriteFontSetBuilder1_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IDWriteFontSetBuilder2 interface + */ +#ifndef __IDWriteFontSetBuilder2_INTERFACE_DEFINED__ +#define __IDWriteFontSetBuilder2_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDWriteFontSetBuilder2, 0xee5ba612, 0xb131, 0x463c, 0x8f,0x4f, 0x31,0x89,0xb9,0x40,0x1e,0x45); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("ee5ba612-b131-463c-8f4f-3189b9401e45") +IDWriteFontSetBuilder2 : public IDWriteFontSetBuilder1 +{ + virtual HRESULT STDMETHODCALLTYPE AddFont( + IDWriteFontFile *fontfile, + UINT32 face_index, + DWRITE_FONT_SIMULATIONS simulations, + const DWRITE_FONT_AXIS_VALUE *axis_values, + UINT32 num_values, + const DWRITE_FONT_AXIS_RANGE *axis_ranges, + UINT32 num_ranges, + const DWRITE_FONT_PROPERTY *props, + UINT32 num_properties) = 0; + + virtual HRESULT STDMETHODCALLTYPE AddFontFile( + const WCHAR *filepath) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDWriteFontSetBuilder2, 0xee5ba612, 0xb131, 0x463c, 0x8f,0x4f, 0x31,0x89,0xb9,0x40,0x1e,0x45) +#endif +#else +typedef struct IDWriteFontSetBuilder2Vtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDWriteFontSetBuilder2 *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDWriteFontSetBuilder2 *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDWriteFontSetBuilder2 *This); + + /*** IDWriteFontSetBuilder methods ***/ + HRESULT (STDMETHODCALLTYPE *AddFontFaceReference_)( + IDWriteFontSetBuilder2 *This, + IDWriteFontFaceReference *ref, + const DWRITE_FONT_PROPERTY *props, + UINT32 prop_count); + + HRESULT (STDMETHODCALLTYPE *AddFontFaceReference)( + IDWriteFontSetBuilder2 *This, + IDWriteFontFaceReference *ref); + + HRESULT (STDMETHODCALLTYPE *AddFontSet)( + IDWriteFontSetBuilder2 *This, + IDWriteFontSet *fontset); + + HRESULT (STDMETHODCALLTYPE *CreateFontSet)( + IDWriteFontSetBuilder2 *This, + IDWriteFontSet **fontset); + + /*** IDWriteFontSetBuilder1 methods ***/ + HRESULT (STDMETHODCALLTYPE *AddFontFile)( + IDWriteFontSetBuilder2 *This, + IDWriteFontFile *file); + + /*** IDWriteFontSetBuilder2 methods ***/ + HRESULT (STDMETHODCALLTYPE *AddFont)( + IDWriteFontSetBuilder2 *This, + IDWriteFontFile *fontfile, + UINT32 face_index, + DWRITE_FONT_SIMULATIONS simulations, + const DWRITE_FONT_AXIS_VALUE *axis_values, + UINT32 num_values, + const DWRITE_FONT_AXIS_RANGE *axis_ranges, + UINT32 num_ranges, + const DWRITE_FONT_PROPERTY *props, + UINT32 num_properties); + + HRESULT (STDMETHODCALLTYPE *IDWriteFontSetBuilder2_AddFontFile)( + IDWriteFontSetBuilder2 *This, + const WCHAR *filepath); + + END_INTERFACE +} IDWriteFontSetBuilder2Vtbl; + +interface IDWriteFontSetBuilder2 { + CONST_VTBL IDWriteFontSetBuilder2Vtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDWriteFontSetBuilder2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteFontSetBuilder2_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDWriteFontSetBuilder2_Release(This) (This)->lpVtbl->Release(This) +/*** IDWriteFontSetBuilder methods ***/ +#define IDWriteFontSetBuilder2_AddFontFaceReference_(This,ref,props,prop_count) (This)->lpVtbl->AddFontFaceReference_(This,ref,props,prop_count) +#define IDWriteFontSetBuilder2_AddFontFaceReference(This,ref) (This)->lpVtbl->AddFontFaceReference(This,ref) +#define IDWriteFontSetBuilder2_AddFontSet(This,fontset) (This)->lpVtbl->AddFontSet(This,fontset) +#define IDWriteFontSetBuilder2_CreateFontSet(This,fontset) (This)->lpVtbl->CreateFontSet(This,fontset) +/*** IDWriteFontSetBuilder1 methods ***/ +/*** IDWriteFontSetBuilder2 methods ***/ +#define IDWriteFontSetBuilder2_AddFont(This,fontfile,face_index,simulations,axis_values,num_values,axis_ranges,num_ranges,props,num_properties) (This)->lpVtbl->AddFont(This,fontfile,face_index,simulations,axis_values,num_values,axis_ranges,num_ranges,props,num_properties) +#define IDWriteFontSetBuilder2_AddFontFile(This,filepath) (This)->lpVtbl->IDWriteFontSetBuilder2_AddFontFile(This,filepath) +#else +/*** IUnknown methods ***/ +static inline HRESULT IDWriteFontSetBuilder2_QueryInterface(IDWriteFontSetBuilder2* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static inline ULONG IDWriteFontSetBuilder2_AddRef(IDWriteFontSetBuilder2* This) { + return This->lpVtbl->AddRef(This); +} +static inline ULONG IDWriteFontSetBuilder2_Release(IDWriteFontSetBuilder2* This) { + return This->lpVtbl->Release(This); +} +/*** IDWriteFontSetBuilder methods ***/ +static inline HRESULT IDWriteFontSetBuilder2_AddFontFaceReference_(IDWriteFontSetBuilder2* This,IDWriteFontFaceReference *ref,const DWRITE_FONT_PROPERTY *props,UINT32 prop_count) { + return This->lpVtbl->AddFontFaceReference_(This,ref,props,prop_count); +} +static inline HRESULT IDWriteFontSetBuilder2_AddFontFaceReference(IDWriteFontSetBuilder2* This,IDWriteFontFaceReference *ref) { + return This->lpVtbl->AddFontFaceReference(This,ref); +} +static inline HRESULT IDWriteFontSetBuilder2_AddFontSet(IDWriteFontSetBuilder2* This,IDWriteFontSet *fontset) { + return This->lpVtbl->AddFontSet(This,fontset); +} +static inline HRESULT IDWriteFontSetBuilder2_CreateFontSet(IDWriteFontSetBuilder2* This,IDWriteFontSet **fontset) { + return This->lpVtbl->CreateFontSet(This,fontset); +} +/*** IDWriteFontSetBuilder1 methods ***/ +/*** IDWriteFontSetBuilder2 methods ***/ +static inline HRESULT IDWriteFontSetBuilder2_AddFont(IDWriteFontSetBuilder2* This,IDWriteFontFile *fontfile,UINT32 face_index,DWRITE_FONT_SIMULATIONS simulations,const DWRITE_FONT_AXIS_VALUE *axis_values,UINT32 num_values,const DWRITE_FONT_AXIS_RANGE *axis_ranges,UINT32 num_ranges,const DWRITE_FONT_PROPERTY *props,UINT32 num_properties) { + return This->lpVtbl->AddFont(This,fontfile,face_index,simulations,axis_values,num_values,axis_ranges,num_ranges,props,num_properties); +} +static inline HRESULT IDWriteFontSetBuilder2_AddFontFile(IDWriteFontSetBuilder2* This,const WCHAR *filepath) { + return This->lpVtbl->IDWriteFontSetBuilder2_AddFontFile(This,filepath); +} +#endif +#endif + +#endif + + +#endif /* __IDWriteFontSetBuilder2_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IDWriteFactory3 interface + */ +#ifndef __IDWriteFactory3_INTERFACE_DEFINED__ +#define __IDWriteFactory3_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDWriteFactory3, 0x9a1b41c3, 0xd3bb, 0x466a, 0x87,0xfc, 0xfe,0x67,0x55,0x6a,0x3b,0x65); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("9a1b41c3-d3bb-466a-87fc-fe67556a3b65") +IDWriteFactory3 : public IDWriteFactory2 +{ + virtual HRESULT STDMETHODCALLTYPE CreateGlyphRunAnalysis( + const DWRITE_GLYPH_RUN *run, + const DWRITE_MATRIX *transform, + DWRITE_RENDERING_MODE1 rendering_mode, + DWRITE_MEASURING_MODE measuring_mode, + DWRITE_GRID_FIT_MODE gridfit_mode, + DWRITE_TEXT_ANTIALIAS_MODE antialias_mode, + FLOAT origin_x, + FLOAT origin_y, + IDWriteGlyphRunAnalysis **analysis) = 0; + + virtual HRESULT STDMETHODCALLTYPE CreateCustomRenderingParams( + FLOAT gamma, + FLOAT enhanced_contrast, + FLOAT grayscale_enhanced_contrast, + FLOAT cleartype_level, + DWRITE_PIXEL_GEOMETRY pixel_geometry, + DWRITE_RENDERING_MODE1 rendering_mode, + DWRITE_GRID_FIT_MODE gridfit_mode, + IDWriteRenderingParams3 **params) = 0; + + virtual HRESULT STDMETHODCALLTYPE CreateFontFaceReference_( + IDWriteFontFile *file, + UINT32 index, + DWRITE_FONT_SIMULATIONS simulations, + IDWriteFontFaceReference **reference) = 0; + + virtual HRESULT STDMETHODCALLTYPE CreateFontFaceReference( + const WCHAR *path, + const FILETIME *writetime, + UINT32 index, + DWRITE_FONT_SIMULATIONS simulations, + IDWriteFontFaceReference **reference) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetSystemFontSet( + IDWriteFontSet **fontset) = 0; + + virtual HRESULT STDMETHODCALLTYPE CreateFontSetBuilder( + IDWriteFontSetBuilder **builder) = 0; + + virtual HRESULT STDMETHODCALLTYPE CreateFontCollectionFromFontSet( + IDWriteFontSet *fontset, + IDWriteFontCollection1 **collection) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetSystemFontCollection( + WINBOOL include_downloadable, + IDWriteFontCollection1 **collection, + WINBOOL check_for_updates) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetFontDownloadQueue( + IDWriteFontDownloadQueue **queue) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDWriteFactory3, 0x9a1b41c3, 0xd3bb, 0x466a, 0x87,0xfc, 0xfe,0x67,0x55,0x6a,0x3b,0x65) +#endif +#else +typedef struct IDWriteFactory3Vtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDWriteFactory3 *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDWriteFactory3 *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDWriteFactory3 *This); + + /*** IDWriteFactory methods ***/ + HRESULT (STDMETHODCALLTYPE *GetSystemFontCollection)( + IDWriteFactory3 *This, + IDWriteFontCollection **collection, + WINBOOL check_for_updates); + + HRESULT (STDMETHODCALLTYPE *CreateCustomFontCollection)( + IDWriteFactory3 *This, + IDWriteFontCollectionLoader *loader, + const void *key, + UINT32 key_size, + IDWriteFontCollection **collection); + + HRESULT (STDMETHODCALLTYPE *RegisterFontCollectionLoader)( + IDWriteFactory3 *This, + IDWriteFontCollectionLoader *loader); + + HRESULT (STDMETHODCALLTYPE *UnregisterFontCollectionLoader)( + IDWriteFactory3 *This, + IDWriteFontCollectionLoader *loader); + + HRESULT (STDMETHODCALLTYPE *CreateFontFileReference)( + IDWriteFactory3 *This, + const WCHAR *path, + const FILETIME *writetime, + IDWriteFontFile **font_file); + + HRESULT (STDMETHODCALLTYPE *CreateCustomFontFileReference)( + IDWriteFactory3 *This, + const void *reference_key, + UINT32 key_size, + IDWriteFontFileLoader *loader, + IDWriteFontFile **font_file); + + HRESULT (STDMETHODCALLTYPE *CreateFontFace)( + IDWriteFactory3 *This, + DWRITE_FONT_FACE_TYPE facetype, + UINT32 files_number, + IDWriteFontFile *const *font_files, + UINT32 index, + DWRITE_FONT_SIMULATIONS sim_flags, + IDWriteFontFace **font_face); + + HRESULT (STDMETHODCALLTYPE *CreateRenderingParams)( + IDWriteFactory3 *This, + IDWriteRenderingParams **params); + + HRESULT (STDMETHODCALLTYPE *CreateMonitorRenderingParams)( + IDWriteFactory3 *This, + HMONITOR monitor, + IDWriteRenderingParams **params); + + HRESULT (STDMETHODCALLTYPE *CreateCustomRenderingParams)( + IDWriteFactory3 *This, + FLOAT gamma, + FLOAT enhancedContrast, + FLOAT cleartype_level, + DWRITE_PIXEL_GEOMETRY geometry, + DWRITE_RENDERING_MODE mode, + IDWriteRenderingParams **params); + + HRESULT (STDMETHODCALLTYPE *RegisterFontFileLoader)( + IDWriteFactory3 *This, + IDWriteFontFileLoader *loader); + + HRESULT (STDMETHODCALLTYPE *UnregisterFontFileLoader)( + IDWriteFactory3 *This, + IDWriteFontFileLoader *loader); + + HRESULT (STDMETHODCALLTYPE *CreateTextFormat)( + IDWriteFactory3 *This, + const WCHAR *family_name, + IDWriteFontCollection *collection, + DWRITE_FONT_WEIGHT weight, + DWRITE_FONT_STYLE style, + DWRITE_FONT_STRETCH stretch, + FLOAT size, + const WCHAR *locale, + IDWriteTextFormat **format); + + HRESULT (STDMETHODCALLTYPE *CreateTypography)( + IDWriteFactory3 *This, + IDWriteTypography **typography); + + HRESULT (STDMETHODCALLTYPE *GetGdiInterop)( + IDWriteFactory3 *This, + IDWriteGdiInterop **gdi_interop); + + HRESULT (STDMETHODCALLTYPE *CreateTextLayout)( + IDWriteFactory3 *This, + const WCHAR *string, + UINT32 len, + IDWriteTextFormat *format, + FLOAT max_width, + FLOAT max_height, + IDWriteTextLayout **layout); + + HRESULT (STDMETHODCALLTYPE *CreateGdiCompatibleTextLayout)( + IDWriteFactory3 *This, + const WCHAR *string, + UINT32 len, + IDWriteTextFormat *format, + FLOAT layout_width, + FLOAT layout_height, + FLOAT pixels_per_dip, + const DWRITE_MATRIX *transform, + WINBOOL use_gdi_natural, + IDWriteTextLayout **layout); + + HRESULT (STDMETHODCALLTYPE *CreateEllipsisTrimmingSign)( + IDWriteFactory3 *This, + IDWriteTextFormat *format, + IDWriteInlineObject **trimming_sign); + + HRESULT (STDMETHODCALLTYPE *CreateTextAnalyzer)( + IDWriteFactory3 *This, + IDWriteTextAnalyzer **analyzer); + + HRESULT (STDMETHODCALLTYPE *CreateNumberSubstitution)( + IDWriteFactory3 *This, + DWRITE_NUMBER_SUBSTITUTION_METHOD method, + const WCHAR *locale, + WINBOOL ignore_user_override, + IDWriteNumberSubstitution **substitution); + + HRESULT (STDMETHODCALLTYPE *CreateGlyphRunAnalysis)( + IDWriteFactory3 *This, + const DWRITE_GLYPH_RUN *glyph_run, + FLOAT pixels_per_dip, + const DWRITE_MATRIX *transform, + DWRITE_RENDERING_MODE rendering_mode, + DWRITE_MEASURING_MODE measuring_mode, + FLOAT baseline_x, + FLOAT baseline_y, + IDWriteGlyphRunAnalysis **analysis); + + /*** IDWriteFactory1 methods ***/ + HRESULT (STDMETHODCALLTYPE *GetEudcFontCollection)( + IDWriteFactory3 *This, + IDWriteFontCollection **collection, + WINBOOL check_for_updates); + + HRESULT (STDMETHODCALLTYPE *IDWriteFactory1_CreateCustomRenderingParams)( + IDWriteFactory3 *This, + FLOAT gamma, + FLOAT enhcontrast, + FLOAT enhcontrast_grayscale, + FLOAT cleartype_level, + DWRITE_PIXEL_GEOMETRY geometry, + DWRITE_RENDERING_MODE mode, + IDWriteRenderingParams1 **params); + + /*** IDWriteFactory2 methods ***/ + HRESULT (STDMETHODCALLTYPE *GetSystemFontFallback)( + IDWriteFactory3 *This, + IDWriteFontFallback **fallback); + + HRESULT (STDMETHODCALLTYPE *CreateFontFallbackBuilder)( + IDWriteFactory3 *This, + IDWriteFontFallbackBuilder **fallbackbuilder); + + HRESULT (STDMETHODCALLTYPE *TranslateColorGlyphRun)( + IDWriteFactory3 *This, + FLOAT originX, + FLOAT originY, + const DWRITE_GLYPH_RUN *run, + const DWRITE_GLYPH_RUN_DESCRIPTION *rundescr, + DWRITE_MEASURING_MODE mode, + const DWRITE_MATRIX *transform, + UINT32 palette_index, + IDWriteColorGlyphRunEnumerator **colorlayers); + + HRESULT (STDMETHODCALLTYPE *IDWriteFactory2_CreateCustomRenderingParams)( + IDWriteFactory3 *This, + FLOAT gamma, + FLOAT contrast, + FLOAT grayscalecontrast, + FLOAT cleartypeLevel, + DWRITE_PIXEL_GEOMETRY pixelGeometry, + DWRITE_RENDERING_MODE renderingMode, + DWRITE_GRID_FIT_MODE gridFitMode, + IDWriteRenderingParams2 **params); + + HRESULT (STDMETHODCALLTYPE *IDWriteFactory2_CreateGlyphRunAnalysis)( + IDWriteFactory3 *This, + const DWRITE_GLYPH_RUN *run, + const DWRITE_MATRIX *transform, + DWRITE_RENDERING_MODE renderingMode, + DWRITE_MEASURING_MODE measuringMode, + DWRITE_GRID_FIT_MODE gridFitMode, + DWRITE_TEXT_ANTIALIAS_MODE antialiasMode, + FLOAT originX, + FLOAT originY, + IDWriteGlyphRunAnalysis **analysis); + + /*** IDWriteFactory3 methods ***/ + HRESULT (STDMETHODCALLTYPE *IDWriteFactory3_CreateGlyphRunAnalysis)( + IDWriteFactory3 *This, + const DWRITE_GLYPH_RUN *run, + const DWRITE_MATRIX *transform, + DWRITE_RENDERING_MODE1 rendering_mode, + DWRITE_MEASURING_MODE measuring_mode, + DWRITE_GRID_FIT_MODE gridfit_mode, + DWRITE_TEXT_ANTIALIAS_MODE antialias_mode, + FLOAT origin_x, + FLOAT origin_y, + IDWriteGlyphRunAnalysis **analysis); + + HRESULT (STDMETHODCALLTYPE *IDWriteFactory3_CreateCustomRenderingParams)( + IDWriteFactory3 *This, + FLOAT gamma, + FLOAT enhanced_contrast, + FLOAT grayscale_enhanced_contrast, + FLOAT cleartype_level, + DWRITE_PIXEL_GEOMETRY pixel_geometry, + DWRITE_RENDERING_MODE1 rendering_mode, + DWRITE_GRID_FIT_MODE gridfit_mode, + IDWriteRenderingParams3 **params); + + HRESULT (STDMETHODCALLTYPE *CreateFontFaceReference_)( + IDWriteFactory3 *This, + IDWriteFontFile *file, + UINT32 index, + DWRITE_FONT_SIMULATIONS simulations, + IDWriteFontFaceReference **reference); + + HRESULT (STDMETHODCALLTYPE *CreateFontFaceReference)( + IDWriteFactory3 *This, + const WCHAR *path, + const FILETIME *writetime, + UINT32 index, + DWRITE_FONT_SIMULATIONS simulations, + IDWriteFontFaceReference **reference); + + HRESULT (STDMETHODCALLTYPE *GetSystemFontSet)( + IDWriteFactory3 *This, + IDWriteFontSet **fontset); + + HRESULT (STDMETHODCALLTYPE *CreateFontSetBuilder)( + IDWriteFactory3 *This, + IDWriteFontSetBuilder **builder); + + HRESULT (STDMETHODCALLTYPE *CreateFontCollectionFromFontSet)( + IDWriteFactory3 *This, + IDWriteFontSet *fontset, + IDWriteFontCollection1 **collection); + + HRESULT (STDMETHODCALLTYPE *IDWriteFactory3_GetSystemFontCollection)( + IDWriteFactory3 *This, + WINBOOL include_downloadable, + IDWriteFontCollection1 **collection, + WINBOOL check_for_updates); + + HRESULT (STDMETHODCALLTYPE *GetFontDownloadQueue)( + IDWriteFactory3 *This, + IDWriteFontDownloadQueue **queue); + + END_INTERFACE +} IDWriteFactory3Vtbl; + +interface IDWriteFactory3 { + CONST_VTBL IDWriteFactory3Vtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDWriteFactory3_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteFactory3_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDWriteFactory3_Release(This) (This)->lpVtbl->Release(This) +/*** IDWriteFactory methods ***/ +#define IDWriteFactory3_CreateCustomFontCollection(This,loader,key,key_size,collection) (This)->lpVtbl->CreateCustomFontCollection(This,loader,key,key_size,collection) +#define IDWriteFactory3_RegisterFontCollectionLoader(This,loader) (This)->lpVtbl->RegisterFontCollectionLoader(This,loader) +#define IDWriteFactory3_UnregisterFontCollectionLoader(This,loader) (This)->lpVtbl->UnregisterFontCollectionLoader(This,loader) +#define IDWriteFactory3_CreateFontFileReference(This,path,writetime,font_file) (This)->lpVtbl->CreateFontFileReference(This,path,writetime,font_file) +#define IDWriteFactory3_CreateCustomFontFileReference(This,reference_key,key_size,loader,font_file) (This)->lpVtbl->CreateCustomFontFileReference(This,reference_key,key_size,loader,font_file) +#define IDWriteFactory3_CreateFontFace(This,facetype,files_number,font_files,index,sim_flags,font_face) (This)->lpVtbl->CreateFontFace(This,facetype,files_number,font_files,index,sim_flags,font_face) +#define IDWriteFactory3_CreateRenderingParams(This,params) (This)->lpVtbl->CreateRenderingParams(This,params) +#define IDWriteFactory3_CreateMonitorRenderingParams(This,monitor,params) (This)->lpVtbl->CreateMonitorRenderingParams(This,monitor,params) +#define IDWriteFactory3_RegisterFontFileLoader(This,loader) (This)->lpVtbl->RegisterFontFileLoader(This,loader) +#define IDWriteFactory3_UnregisterFontFileLoader(This,loader) (This)->lpVtbl->UnregisterFontFileLoader(This,loader) +#define IDWriteFactory3_CreateTextFormat(This,family_name,collection,weight,style,stretch,size,locale,format) (This)->lpVtbl->CreateTextFormat(This,family_name,collection,weight,style,stretch,size,locale,format) +#define IDWriteFactory3_CreateTypography(This,typography) (This)->lpVtbl->CreateTypography(This,typography) +#define IDWriteFactory3_GetGdiInterop(This,gdi_interop) (This)->lpVtbl->GetGdiInterop(This,gdi_interop) +#define IDWriteFactory3_CreateTextLayout(This,string,len,format,max_width,max_height,layout) (This)->lpVtbl->CreateTextLayout(This,string,len,format,max_width,max_height,layout) +#define IDWriteFactory3_CreateGdiCompatibleTextLayout(This,string,len,format,layout_width,layout_height,pixels_per_dip,transform,use_gdi_natural,layout) (This)->lpVtbl->CreateGdiCompatibleTextLayout(This,string,len,format,layout_width,layout_height,pixels_per_dip,transform,use_gdi_natural,layout) +#define IDWriteFactory3_CreateEllipsisTrimmingSign(This,format,trimming_sign) (This)->lpVtbl->CreateEllipsisTrimmingSign(This,format,trimming_sign) +#define IDWriteFactory3_CreateTextAnalyzer(This,analyzer) (This)->lpVtbl->CreateTextAnalyzer(This,analyzer) +#define IDWriteFactory3_CreateNumberSubstitution(This,method,locale,ignore_user_override,substitution) (This)->lpVtbl->CreateNumberSubstitution(This,method,locale,ignore_user_override,substitution) +/*** IDWriteFactory1 methods ***/ +#define IDWriteFactory3_GetEudcFontCollection(This,collection,check_for_updates) (This)->lpVtbl->GetEudcFontCollection(This,collection,check_for_updates) +/*** IDWriteFactory2 methods ***/ +#define IDWriteFactory3_GetSystemFontFallback(This,fallback) (This)->lpVtbl->GetSystemFontFallback(This,fallback) +#define IDWriteFactory3_CreateFontFallbackBuilder(This,fallbackbuilder) (This)->lpVtbl->CreateFontFallbackBuilder(This,fallbackbuilder) +#define IDWriteFactory3_TranslateColorGlyphRun(This,originX,originY,run,rundescr,mode,transform,palette_index,colorlayers) (This)->lpVtbl->TranslateColorGlyphRun(This,originX,originY,run,rundescr,mode,transform,palette_index,colorlayers) +/*** IDWriteFactory3 methods ***/ +#define IDWriteFactory3_CreateGlyphRunAnalysis(This,run,transform,rendering_mode,measuring_mode,gridfit_mode,antialias_mode,origin_x,origin_y,analysis) (This)->lpVtbl->IDWriteFactory3_CreateGlyphRunAnalysis(This,run,transform,rendering_mode,measuring_mode,gridfit_mode,antialias_mode,origin_x,origin_y,analysis) +#define IDWriteFactory3_CreateCustomRenderingParams(This,gamma,enhanced_contrast,grayscale_enhanced_contrast,cleartype_level,pixel_geometry,rendering_mode,gridfit_mode,params) (This)->lpVtbl->IDWriteFactory3_CreateCustomRenderingParams(This,gamma,enhanced_contrast,grayscale_enhanced_contrast,cleartype_level,pixel_geometry,rendering_mode,gridfit_mode,params) +#define IDWriteFactory3_CreateFontFaceReference_(This,file,index,simulations,reference) (This)->lpVtbl->CreateFontFaceReference_(This,file,index,simulations,reference) +#define IDWriteFactory3_CreateFontFaceReference(This,path,writetime,index,simulations,reference) (This)->lpVtbl->CreateFontFaceReference(This,path,writetime,index,simulations,reference) +#define IDWriteFactory3_GetSystemFontSet(This,fontset) (This)->lpVtbl->GetSystemFontSet(This,fontset) +#define IDWriteFactory3_CreateFontSetBuilder(This,builder) (This)->lpVtbl->CreateFontSetBuilder(This,builder) +#define IDWriteFactory3_CreateFontCollectionFromFontSet(This,fontset,collection) (This)->lpVtbl->CreateFontCollectionFromFontSet(This,fontset,collection) +#define IDWriteFactory3_GetSystemFontCollection(This,include_downloadable,collection,check_for_updates) (This)->lpVtbl->IDWriteFactory3_GetSystemFontCollection(This,include_downloadable,collection,check_for_updates) +#define IDWriteFactory3_GetFontDownloadQueue(This,queue) (This)->lpVtbl->GetFontDownloadQueue(This,queue) +#else +/*** IUnknown methods ***/ +static inline HRESULT IDWriteFactory3_QueryInterface(IDWriteFactory3* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static inline ULONG IDWriteFactory3_AddRef(IDWriteFactory3* This) { + return This->lpVtbl->AddRef(This); +} +static inline ULONG IDWriteFactory3_Release(IDWriteFactory3* This) { + return This->lpVtbl->Release(This); +} +/*** IDWriteFactory methods ***/ +static inline HRESULT IDWriteFactory3_CreateCustomFontCollection(IDWriteFactory3* This,IDWriteFontCollectionLoader *loader,const void *key,UINT32 key_size,IDWriteFontCollection **collection) { + return This->lpVtbl->CreateCustomFontCollection(This,loader,key,key_size,collection); +} +static inline HRESULT IDWriteFactory3_RegisterFontCollectionLoader(IDWriteFactory3* This,IDWriteFontCollectionLoader *loader) { + return This->lpVtbl->RegisterFontCollectionLoader(This,loader); +} +static inline HRESULT IDWriteFactory3_UnregisterFontCollectionLoader(IDWriteFactory3* This,IDWriteFontCollectionLoader *loader) { + return This->lpVtbl->UnregisterFontCollectionLoader(This,loader); +} +static inline HRESULT IDWriteFactory3_CreateFontFileReference(IDWriteFactory3* This,const WCHAR *path,const FILETIME *writetime,IDWriteFontFile **font_file) { + return This->lpVtbl->CreateFontFileReference(This,path,writetime,font_file); +} +static inline HRESULT IDWriteFactory3_CreateCustomFontFileReference(IDWriteFactory3* This,const void *reference_key,UINT32 key_size,IDWriteFontFileLoader *loader,IDWriteFontFile **font_file) { + return This->lpVtbl->CreateCustomFontFileReference(This,reference_key,key_size,loader,font_file); +} +static inline HRESULT IDWriteFactory3_CreateFontFace(IDWriteFactory3* This,DWRITE_FONT_FACE_TYPE facetype,UINT32 files_number,IDWriteFontFile *const *font_files,UINT32 index,DWRITE_FONT_SIMULATIONS sim_flags,IDWriteFontFace **font_face) { + return This->lpVtbl->CreateFontFace(This,facetype,files_number,font_files,index,sim_flags,font_face); +} +static inline HRESULT IDWriteFactory3_CreateRenderingParams(IDWriteFactory3* This,IDWriteRenderingParams **params) { + return This->lpVtbl->CreateRenderingParams(This,params); +} +static inline HRESULT IDWriteFactory3_CreateMonitorRenderingParams(IDWriteFactory3* This,HMONITOR monitor,IDWriteRenderingParams **params) { + return This->lpVtbl->CreateMonitorRenderingParams(This,monitor,params); +} +static inline HRESULT IDWriteFactory3_RegisterFontFileLoader(IDWriteFactory3* This,IDWriteFontFileLoader *loader) { + return This->lpVtbl->RegisterFontFileLoader(This,loader); +} +static inline HRESULT IDWriteFactory3_UnregisterFontFileLoader(IDWriteFactory3* This,IDWriteFontFileLoader *loader) { + return This->lpVtbl->UnregisterFontFileLoader(This,loader); +} +static inline HRESULT IDWriteFactory3_CreateTextFormat(IDWriteFactory3* This,const WCHAR *family_name,IDWriteFontCollection *collection,DWRITE_FONT_WEIGHT weight,DWRITE_FONT_STYLE style,DWRITE_FONT_STRETCH stretch,FLOAT size,const WCHAR *locale,IDWriteTextFormat **format) { + return This->lpVtbl->CreateTextFormat(This,family_name,collection,weight,style,stretch,size,locale,format); +} +static inline HRESULT IDWriteFactory3_CreateTypography(IDWriteFactory3* This,IDWriteTypography **typography) { + return This->lpVtbl->CreateTypography(This,typography); +} +static inline HRESULT IDWriteFactory3_GetGdiInterop(IDWriteFactory3* This,IDWriteGdiInterop **gdi_interop) { + return This->lpVtbl->GetGdiInterop(This,gdi_interop); +} +static inline HRESULT IDWriteFactory3_CreateTextLayout(IDWriteFactory3* This,const WCHAR *string,UINT32 len,IDWriteTextFormat *format,FLOAT max_width,FLOAT max_height,IDWriteTextLayout **layout) { + return This->lpVtbl->CreateTextLayout(This,string,len,format,max_width,max_height,layout); +} +static inline HRESULT IDWriteFactory3_CreateGdiCompatibleTextLayout(IDWriteFactory3* This,const WCHAR *string,UINT32 len,IDWriteTextFormat *format,FLOAT layout_width,FLOAT layout_height,FLOAT pixels_per_dip,const DWRITE_MATRIX *transform,WINBOOL use_gdi_natural,IDWriteTextLayout **layout) { + return This->lpVtbl->CreateGdiCompatibleTextLayout(This,string,len,format,layout_width,layout_height,pixels_per_dip,transform,use_gdi_natural,layout); +} +static inline HRESULT IDWriteFactory3_CreateEllipsisTrimmingSign(IDWriteFactory3* This,IDWriteTextFormat *format,IDWriteInlineObject **trimming_sign) { + return This->lpVtbl->CreateEllipsisTrimmingSign(This,format,trimming_sign); +} +static inline HRESULT IDWriteFactory3_CreateTextAnalyzer(IDWriteFactory3* This,IDWriteTextAnalyzer **analyzer) { + return This->lpVtbl->CreateTextAnalyzer(This,analyzer); +} +static inline HRESULT IDWriteFactory3_CreateNumberSubstitution(IDWriteFactory3* This,DWRITE_NUMBER_SUBSTITUTION_METHOD method,const WCHAR *locale,WINBOOL ignore_user_override,IDWriteNumberSubstitution **substitution) { + return This->lpVtbl->CreateNumberSubstitution(This,method,locale,ignore_user_override,substitution); +} +/*** IDWriteFactory1 methods ***/ +static inline HRESULT IDWriteFactory3_GetEudcFontCollection(IDWriteFactory3* This,IDWriteFontCollection **collection,WINBOOL check_for_updates) { + return This->lpVtbl->GetEudcFontCollection(This,collection,check_for_updates); +} +/*** IDWriteFactory2 methods ***/ +static inline HRESULT IDWriteFactory3_GetSystemFontFallback(IDWriteFactory3* This,IDWriteFontFallback **fallback) { + return This->lpVtbl->GetSystemFontFallback(This,fallback); +} +static inline HRESULT IDWriteFactory3_CreateFontFallbackBuilder(IDWriteFactory3* This,IDWriteFontFallbackBuilder **fallbackbuilder) { + return This->lpVtbl->CreateFontFallbackBuilder(This,fallbackbuilder); +} +static inline HRESULT IDWriteFactory3_TranslateColorGlyphRun(IDWriteFactory3* This,FLOAT originX,FLOAT originY,const DWRITE_GLYPH_RUN *run,const DWRITE_GLYPH_RUN_DESCRIPTION *rundescr,DWRITE_MEASURING_MODE mode,const DWRITE_MATRIX *transform,UINT32 palette_index,IDWriteColorGlyphRunEnumerator **colorlayers) { + return This->lpVtbl->TranslateColorGlyphRun(This,originX,originY,run,rundescr,mode,transform,palette_index,colorlayers); +} +/*** IDWriteFactory3 methods ***/ +static inline HRESULT IDWriteFactory3_CreateGlyphRunAnalysis(IDWriteFactory3* This,const DWRITE_GLYPH_RUN *run,const DWRITE_MATRIX *transform,DWRITE_RENDERING_MODE1 rendering_mode,DWRITE_MEASURING_MODE measuring_mode,DWRITE_GRID_FIT_MODE gridfit_mode,DWRITE_TEXT_ANTIALIAS_MODE antialias_mode,FLOAT origin_x,FLOAT origin_y,IDWriteGlyphRunAnalysis **analysis) { + return This->lpVtbl->IDWriteFactory3_CreateGlyphRunAnalysis(This,run,transform,rendering_mode,measuring_mode,gridfit_mode,antialias_mode,origin_x,origin_y,analysis); +} +static inline HRESULT IDWriteFactory3_CreateCustomRenderingParams(IDWriteFactory3* This,FLOAT gamma,FLOAT enhanced_contrast,FLOAT grayscale_enhanced_contrast,FLOAT cleartype_level,DWRITE_PIXEL_GEOMETRY pixel_geometry,DWRITE_RENDERING_MODE1 rendering_mode,DWRITE_GRID_FIT_MODE gridfit_mode,IDWriteRenderingParams3 **params) { + return This->lpVtbl->IDWriteFactory3_CreateCustomRenderingParams(This,gamma,enhanced_contrast,grayscale_enhanced_contrast,cleartype_level,pixel_geometry,rendering_mode,gridfit_mode,params); +} +static inline HRESULT IDWriteFactory3_CreateFontFaceReference_(IDWriteFactory3* This,IDWriteFontFile *file,UINT32 index,DWRITE_FONT_SIMULATIONS simulations,IDWriteFontFaceReference **reference) { + return This->lpVtbl->CreateFontFaceReference_(This,file,index,simulations,reference); +} +static inline HRESULT IDWriteFactory3_CreateFontFaceReference(IDWriteFactory3* This,const WCHAR *path,const FILETIME *writetime,UINT32 index,DWRITE_FONT_SIMULATIONS simulations,IDWriteFontFaceReference **reference) { + return This->lpVtbl->CreateFontFaceReference(This,path,writetime,index,simulations,reference); +} +static inline HRESULT IDWriteFactory3_GetSystemFontSet(IDWriteFactory3* This,IDWriteFontSet **fontset) { + return This->lpVtbl->GetSystemFontSet(This,fontset); +} +static inline HRESULT IDWriteFactory3_CreateFontSetBuilder(IDWriteFactory3* This,IDWriteFontSetBuilder **builder) { + return This->lpVtbl->CreateFontSetBuilder(This,builder); +} +static inline HRESULT IDWriteFactory3_CreateFontCollectionFromFontSet(IDWriteFactory3* This,IDWriteFontSet *fontset,IDWriteFontCollection1 **collection) { + return This->lpVtbl->CreateFontCollectionFromFontSet(This,fontset,collection); +} +static inline HRESULT IDWriteFactory3_GetSystemFontCollection(IDWriteFactory3* This,WINBOOL include_downloadable,IDWriteFontCollection1 **collection,WINBOOL check_for_updates) { + return This->lpVtbl->IDWriteFactory3_GetSystemFontCollection(This,include_downloadable,collection,check_for_updates); +} +static inline HRESULT IDWriteFactory3_GetFontDownloadQueue(IDWriteFactory3* This,IDWriteFontDownloadQueue **queue) { + return This->lpVtbl->GetFontDownloadQueue(This,queue); +} +#endif +#endif + +#endif + + +#endif /* __IDWriteFactory3_INTERFACE_DEFINED__ */ + +typedef struct DWRITE_GLYPH_IMAGE_DATA { + const void *imageData; + UINT32 imageDataSize; + UINT32 uniqueDataId; + UINT32 pixelsPerEm; + D2D1_SIZE_U pixelSize; + D2D1_POINT_2L horizontalLeftOrigin; + D2D1_POINT_2L horizontalRightOrigin; + D2D1_POINT_2L verticalTopOrigin; + D2D1_POINT_2L verticalBottomOrigin; +} DWRITE_GLYPH_IMAGE_DATA; +/***************************************************************************** + * IDWriteFontFace4 interface + */ +#ifndef __IDWriteFontFace4_INTERFACE_DEFINED__ +#define __IDWriteFontFace4_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDWriteFontFace4, 0x27f2a904, 0x4eb8, 0x441d, 0x96,0x78, 0x05,0x63,0xf5,0x3e,0x3e,0x2f); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("27f2a904-4eb8-441d-9678-0563f53e3e2f") +IDWriteFontFace4 : public IDWriteFontFace3 +{ + virtual HRESULT STDMETHODCALLTYPE GetGlyphImageFormats_( + UINT16 glyph, + UINT32 ppem_first, + UINT32 ppem_last, + DWRITE_GLYPH_IMAGE_FORMATS *formats) = 0; + + virtual DWRITE_GLYPH_IMAGE_FORMATS STDMETHODCALLTYPE GetGlyphImageFormats( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetGlyphImageData( + UINT16 glyph, + UINT32 ppem, + DWRITE_GLYPH_IMAGE_FORMATS format, + DWRITE_GLYPH_IMAGE_DATA *data, + void **context) = 0; + + virtual void STDMETHODCALLTYPE ReleaseGlyphImageData( + void *context) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDWriteFontFace4, 0x27f2a904, 0x4eb8, 0x441d, 0x96,0x78, 0x05,0x63,0xf5,0x3e,0x3e,0x2f) +#endif +#else +typedef struct IDWriteFontFace4Vtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDWriteFontFace4 *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDWriteFontFace4 *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDWriteFontFace4 *This); + + /*** IDWriteFontFace methods ***/ + DWRITE_FONT_FACE_TYPE (STDMETHODCALLTYPE *GetType)( + IDWriteFontFace4 *This); + + HRESULT (STDMETHODCALLTYPE *GetFiles)( + IDWriteFontFace4 *This, + UINT32 *number_of_files, + IDWriteFontFile **fontfiles); + + UINT32 (STDMETHODCALLTYPE *GetIndex)( + IDWriteFontFace4 *This); + + DWRITE_FONT_SIMULATIONS (STDMETHODCALLTYPE *GetSimulations)( + IDWriteFontFace4 *This); + + WINBOOL (STDMETHODCALLTYPE *IsSymbolFont)( + IDWriteFontFace4 *This); + + void (STDMETHODCALLTYPE *GetMetrics)( + IDWriteFontFace4 *This, + DWRITE_FONT_METRICS *metrics); + + UINT16 (STDMETHODCALLTYPE *GetGlyphCount)( + IDWriteFontFace4 *This); + + HRESULT (STDMETHODCALLTYPE *GetDesignGlyphMetrics)( + IDWriteFontFace4 *This, + const UINT16 *glyph_indices, + UINT32 glyph_count, + DWRITE_GLYPH_METRICS *metrics, + WINBOOL is_sideways); + + HRESULT (STDMETHODCALLTYPE *GetGlyphIndices)( + IDWriteFontFace4 *This, + const UINT32 *codepoints, + UINT32 count, + UINT16 *glyph_indices); + + HRESULT (STDMETHODCALLTYPE *TryGetFontTable)( + IDWriteFontFace4 *This, + UINT32 table_tag, + const void **table_data, + UINT32 *table_size, + void **context, + WINBOOL *exists); + + void (STDMETHODCALLTYPE *ReleaseFontTable)( + IDWriteFontFace4 *This, + void *table_context); + + HRESULT (STDMETHODCALLTYPE *GetGlyphRunOutline)( + IDWriteFontFace4 *This, + FLOAT emSize, + const UINT16 *glyph_indices, + const FLOAT *glyph_advances, + const DWRITE_GLYPH_OFFSET *glyph_offsets, + UINT32 glyph_count, + WINBOOL is_sideways, + WINBOOL is_rtl, + IDWriteGeometrySink *geometrysink); + + HRESULT (STDMETHODCALLTYPE *GetRecommendedRenderingMode)( + IDWriteFontFace4 *This, + FLOAT emSize, + FLOAT pixels_per_dip, + DWRITE_MEASURING_MODE mode, + IDWriteRenderingParams *params, + DWRITE_RENDERING_MODE *rendering_mode); + + HRESULT (STDMETHODCALLTYPE *GetGdiCompatibleMetrics)( + IDWriteFontFace4 *This, + FLOAT emSize, + FLOAT pixels_per_dip, + const DWRITE_MATRIX *transform, + DWRITE_FONT_METRICS *metrics); + + HRESULT (STDMETHODCALLTYPE *GetGdiCompatibleGlyphMetrics)( + IDWriteFontFace4 *This, + FLOAT emSize, + FLOAT pixels_per_dip, + const DWRITE_MATRIX *transform, + WINBOOL use_gdi_natural, + const UINT16 *glyph_indices, + UINT32 glyph_count, + DWRITE_GLYPH_METRICS *metrics, + WINBOOL is_sideways); + + /*** IDWriteFontFace1 methods ***/ + void (STDMETHODCALLTYPE *IDWriteFontFace1_GetMetrics)( + IDWriteFontFace4 *This, + DWRITE_FONT_METRICS1 *metrics); + + HRESULT (STDMETHODCALLTYPE *IDWriteFontFace1_GetGdiCompatibleMetrics)( + IDWriteFontFace4 *This, + FLOAT em_size, + FLOAT pixels_per_dip, + const DWRITE_MATRIX *transform, + DWRITE_FONT_METRICS1 *metrics); + + void (STDMETHODCALLTYPE *GetCaretMetrics)( + IDWriteFontFace4 *This, + DWRITE_CARET_METRICS *metrics); + + HRESULT (STDMETHODCALLTYPE *GetUnicodeRanges)( + IDWriteFontFace4 *This, + UINT32 max_count, + DWRITE_UNICODE_RANGE *ranges, + UINT32 *count); + + WINBOOL (STDMETHODCALLTYPE *IsMonospacedFont)( + IDWriteFontFace4 *This); + + HRESULT (STDMETHODCALLTYPE *GetDesignGlyphAdvances)( + IDWriteFontFace4 *This, + UINT32 glyph_count, + const UINT16 *indices, + INT32 *advances, + WINBOOL is_sideways); + + HRESULT (STDMETHODCALLTYPE *GetGdiCompatibleGlyphAdvances)( + IDWriteFontFace4 *This, + FLOAT em_size, + FLOAT pixels_per_dip, + const DWRITE_MATRIX *transform, + WINBOOL use_gdi_natural, + WINBOOL is_sideways, + UINT32 glyph_count, + const UINT16 *indices, + INT32 *advances); + + HRESULT (STDMETHODCALLTYPE *GetKerningPairAdjustments)( + IDWriteFontFace4 *This, + UINT32 glyph_count, + const UINT16 *indices, + INT32 *adjustments); + + WINBOOL (STDMETHODCALLTYPE *HasKerningPairs)( + IDWriteFontFace4 *This); + + HRESULT (STDMETHODCALLTYPE *IDWriteFontFace1_GetRecommendedRenderingMode)( + IDWriteFontFace4 *This, + FLOAT font_emsize, + FLOAT dpiX, + FLOAT dpiY, + const DWRITE_MATRIX *transform, + WINBOOL is_sideways, + DWRITE_OUTLINE_THRESHOLD threshold, + DWRITE_MEASURING_MODE measuring_mode, + DWRITE_RENDERING_MODE *rendering_mode); + + HRESULT (STDMETHODCALLTYPE *GetVerticalGlyphVariants)( + IDWriteFontFace4 *This, + UINT32 glyph_count, + const UINT16 *nominal_indices, + UINT16 *vertical_indices); + + WINBOOL (STDMETHODCALLTYPE *HasVerticalGlyphVariants)( + IDWriteFontFace4 *This); + + /*** IDWriteFontFace2 methods ***/ + WINBOOL (STDMETHODCALLTYPE *IsColorFont)( + IDWriteFontFace4 *This); + + UINT32 (STDMETHODCALLTYPE *GetColorPaletteCount)( + IDWriteFontFace4 *This); + + UINT32 (STDMETHODCALLTYPE *GetPaletteEntryCount)( + IDWriteFontFace4 *This); + + HRESULT (STDMETHODCALLTYPE *GetPaletteEntries)( + IDWriteFontFace4 *This, + UINT32 palette_index, + UINT32 first_entry_index, + UINT32 entry_count, + DWRITE_COLOR_F *entries); + + HRESULT (STDMETHODCALLTYPE *IDWriteFontFace2_GetRecommendedRenderingMode)( + IDWriteFontFace4 *This, + FLOAT fontEmSize, + FLOAT dpiX, + FLOAT dpiY, + const DWRITE_MATRIX *transform, + WINBOOL is_sideways, + DWRITE_OUTLINE_THRESHOLD threshold, + DWRITE_MEASURING_MODE measuringmode, + IDWriteRenderingParams *params, + DWRITE_RENDERING_MODE *renderingmode, + DWRITE_GRID_FIT_MODE *gridfitmode); + + /*** IDWriteFontFace3 methods ***/ + HRESULT (STDMETHODCALLTYPE *GetFontFaceReference)( + IDWriteFontFace4 *This, + IDWriteFontFaceReference **reference); + + void (STDMETHODCALLTYPE *GetPanose)( + IDWriteFontFace4 *This, + DWRITE_PANOSE *panose); + + DWRITE_FONT_WEIGHT (STDMETHODCALLTYPE *GetWeight)( + IDWriteFontFace4 *This); + + DWRITE_FONT_STRETCH (STDMETHODCALLTYPE *GetStretch)( + IDWriteFontFace4 *This); + + DWRITE_FONT_STYLE (STDMETHODCALLTYPE *GetStyle)( + IDWriteFontFace4 *This); + + HRESULT (STDMETHODCALLTYPE *GetFamilyNames)( + IDWriteFontFace4 *This, + IDWriteLocalizedStrings **names); + + HRESULT (STDMETHODCALLTYPE *GetFaceNames)( + IDWriteFontFace4 *This, + IDWriteLocalizedStrings **names); + + HRESULT (STDMETHODCALLTYPE *GetInformationalStrings)( + IDWriteFontFace4 *This, + DWRITE_INFORMATIONAL_STRING_ID stringid, + IDWriteLocalizedStrings **strings, + WINBOOL *exists); + + WINBOOL (STDMETHODCALLTYPE *HasCharacter)( + IDWriteFontFace4 *This, + UINT32 character); + + HRESULT (STDMETHODCALLTYPE *IDWriteFontFace3_GetRecommendedRenderingMode)( + IDWriteFontFace4 *This, + FLOAT emsize, + FLOAT dpi_x, + FLOAT dpi_y, + const DWRITE_MATRIX *transform, + WINBOOL is_sideways, + DWRITE_OUTLINE_THRESHOLD threshold, + DWRITE_MEASURING_MODE measuring_mode, + IDWriteRenderingParams *params, + DWRITE_RENDERING_MODE1 *rendering_mode, + DWRITE_GRID_FIT_MODE *gridfit_mode); + + WINBOOL (STDMETHODCALLTYPE *IsCharacterLocal)( + IDWriteFontFace4 *This, + UINT32 character); + + WINBOOL (STDMETHODCALLTYPE *IsGlyphLocal)( + IDWriteFontFace4 *This, + UINT16 glyph); + + HRESULT (STDMETHODCALLTYPE *AreCharactersLocal)( + IDWriteFontFace4 *This, + const WCHAR *characters, + UINT32 count, + WINBOOL enqueue_if_not, + WINBOOL *are_local); + + HRESULT (STDMETHODCALLTYPE *AreGlyphsLocal)( + IDWriteFontFace4 *This, + const UINT16 *glyphs, + UINT32 count, + WINBOOL enqueue_if_not, + WINBOOL *are_local); + + /*** IDWriteFontFace4 methods ***/ + HRESULT (STDMETHODCALLTYPE *GetGlyphImageFormats_)( + IDWriteFontFace4 *This, + UINT16 glyph, + UINT32 ppem_first, + UINT32 ppem_last, + DWRITE_GLYPH_IMAGE_FORMATS *formats); + + DWRITE_GLYPH_IMAGE_FORMATS (STDMETHODCALLTYPE *GetGlyphImageFormats)( + IDWriteFontFace4 *This); + + HRESULT (STDMETHODCALLTYPE *GetGlyphImageData)( + IDWriteFontFace4 *This, + UINT16 glyph, + UINT32 ppem, + DWRITE_GLYPH_IMAGE_FORMATS format, + DWRITE_GLYPH_IMAGE_DATA *data, + void **context); + + void (STDMETHODCALLTYPE *ReleaseGlyphImageData)( + IDWriteFontFace4 *This, + void *context); + + END_INTERFACE +} IDWriteFontFace4Vtbl; + +interface IDWriteFontFace4 { + CONST_VTBL IDWriteFontFace4Vtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDWriteFontFace4_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteFontFace4_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDWriteFontFace4_Release(This) (This)->lpVtbl->Release(This) +/*** IDWriteFontFace methods ***/ +#define IDWriteFontFace4_GetType(This) (This)->lpVtbl->GetType(This) +#define IDWriteFontFace4_GetFiles(This,number_of_files,fontfiles) (This)->lpVtbl->GetFiles(This,number_of_files,fontfiles) +#define IDWriteFontFace4_GetIndex(This) (This)->lpVtbl->GetIndex(This) +#define IDWriteFontFace4_GetSimulations(This) (This)->lpVtbl->GetSimulations(This) +#define IDWriteFontFace4_IsSymbolFont(This) (This)->lpVtbl->IsSymbolFont(This) +#define IDWriteFontFace4_GetGlyphCount(This) (This)->lpVtbl->GetGlyphCount(This) +#define IDWriteFontFace4_GetDesignGlyphMetrics(This,glyph_indices,glyph_count,metrics,is_sideways) (This)->lpVtbl->GetDesignGlyphMetrics(This,glyph_indices,glyph_count,metrics,is_sideways) +#define IDWriteFontFace4_GetGlyphIndices(This,codepoints,count,glyph_indices) (This)->lpVtbl->GetGlyphIndices(This,codepoints,count,glyph_indices) +#define IDWriteFontFace4_TryGetFontTable(This,table_tag,table_data,table_size,context,exists) (This)->lpVtbl->TryGetFontTable(This,table_tag,table_data,table_size,context,exists) +#define IDWriteFontFace4_ReleaseFontTable(This,table_context) (This)->lpVtbl->ReleaseFontTable(This,table_context) +#define IDWriteFontFace4_GetGlyphRunOutline(This,emSize,glyph_indices,glyph_advances,glyph_offsets,glyph_count,is_sideways,is_rtl,geometrysink) (This)->lpVtbl->GetGlyphRunOutline(This,emSize,glyph_indices,glyph_advances,glyph_offsets,glyph_count,is_sideways,is_rtl,geometrysink) +#define IDWriteFontFace4_GetGdiCompatibleGlyphMetrics(This,emSize,pixels_per_dip,transform,use_gdi_natural,glyph_indices,glyph_count,metrics,is_sideways) (This)->lpVtbl->GetGdiCompatibleGlyphMetrics(This,emSize,pixels_per_dip,transform,use_gdi_natural,glyph_indices,glyph_count,metrics,is_sideways) +/*** IDWriteFontFace1 methods ***/ +#define IDWriteFontFace4_GetMetrics(This,metrics) (This)->lpVtbl->IDWriteFontFace1_GetMetrics(This,metrics) +#define IDWriteFontFace4_GetGdiCompatibleMetrics(This,em_size,pixels_per_dip,transform,metrics) (This)->lpVtbl->IDWriteFontFace1_GetGdiCompatibleMetrics(This,em_size,pixels_per_dip,transform,metrics) +#define IDWriteFontFace4_GetCaretMetrics(This,metrics) (This)->lpVtbl->GetCaretMetrics(This,metrics) +#define IDWriteFontFace4_GetUnicodeRanges(This,max_count,ranges,count) (This)->lpVtbl->GetUnicodeRanges(This,max_count,ranges,count) +#define IDWriteFontFace4_IsMonospacedFont(This) (This)->lpVtbl->IsMonospacedFont(This) +#define IDWriteFontFace4_GetDesignGlyphAdvances(This,glyph_count,indices,advances,is_sideways) (This)->lpVtbl->GetDesignGlyphAdvances(This,glyph_count,indices,advances,is_sideways) +#define IDWriteFontFace4_GetGdiCompatibleGlyphAdvances(This,em_size,pixels_per_dip,transform,use_gdi_natural,is_sideways,glyph_count,indices,advances) (This)->lpVtbl->GetGdiCompatibleGlyphAdvances(This,em_size,pixels_per_dip,transform,use_gdi_natural,is_sideways,glyph_count,indices,advances) +#define IDWriteFontFace4_GetKerningPairAdjustments(This,glyph_count,indices,adjustments) (This)->lpVtbl->GetKerningPairAdjustments(This,glyph_count,indices,adjustments) +#define IDWriteFontFace4_HasKerningPairs(This) (This)->lpVtbl->HasKerningPairs(This) +#define IDWriteFontFace4_GetVerticalGlyphVariants(This,glyph_count,nominal_indices,vertical_indices) (This)->lpVtbl->GetVerticalGlyphVariants(This,glyph_count,nominal_indices,vertical_indices) +#define IDWriteFontFace4_HasVerticalGlyphVariants(This) (This)->lpVtbl->HasVerticalGlyphVariants(This) +/*** IDWriteFontFace2 methods ***/ +#define IDWriteFontFace4_IsColorFont(This) (This)->lpVtbl->IsColorFont(This) +#define IDWriteFontFace4_GetColorPaletteCount(This) (This)->lpVtbl->GetColorPaletteCount(This) +#define IDWriteFontFace4_GetPaletteEntryCount(This) (This)->lpVtbl->GetPaletteEntryCount(This) +#define IDWriteFontFace4_GetPaletteEntries(This,palette_index,first_entry_index,entry_count,entries) (This)->lpVtbl->GetPaletteEntries(This,palette_index,first_entry_index,entry_count,entries) +/*** IDWriteFontFace3 methods ***/ +#define IDWriteFontFace4_GetFontFaceReference(This,reference) (This)->lpVtbl->GetFontFaceReference(This,reference) +#define IDWriteFontFace4_GetPanose(This,panose) (This)->lpVtbl->GetPanose(This,panose) +#define IDWriteFontFace4_GetWeight(This) (This)->lpVtbl->GetWeight(This) +#define IDWriteFontFace4_GetStretch(This) (This)->lpVtbl->GetStretch(This) +#define IDWriteFontFace4_GetStyle(This) (This)->lpVtbl->GetStyle(This) +#define IDWriteFontFace4_GetFamilyNames(This,names) (This)->lpVtbl->GetFamilyNames(This,names) +#define IDWriteFontFace4_GetFaceNames(This,names) (This)->lpVtbl->GetFaceNames(This,names) +#define IDWriteFontFace4_GetInformationalStrings(This,stringid,strings,exists) (This)->lpVtbl->GetInformationalStrings(This,stringid,strings,exists) +#define IDWriteFontFace4_HasCharacter(This,character) (This)->lpVtbl->HasCharacter(This,character) +#define IDWriteFontFace4_GetRecommendedRenderingMode(This,emsize,dpi_x,dpi_y,transform,is_sideways,threshold,measuring_mode,params,rendering_mode,gridfit_mode) (This)->lpVtbl->IDWriteFontFace3_GetRecommendedRenderingMode(This,emsize,dpi_x,dpi_y,transform,is_sideways,threshold,measuring_mode,params,rendering_mode,gridfit_mode) +#define IDWriteFontFace4_IsCharacterLocal(This,character) (This)->lpVtbl->IsCharacterLocal(This,character) +#define IDWriteFontFace4_IsGlyphLocal(This,glyph) (This)->lpVtbl->IsGlyphLocal(This,glyph) +#define IDWriteFontFace4_AreCharactersLocal(This,characters,count,enqueue_if_not,are_local) (This)->lpVtbl->AreCharactersLocal(This,characters,count,enqueue_if_not,are_local) +#define IDWriteFontFace4_AreGlyphsLocal(This,glyphs,count,enqueue_if_not,are_local) (This)->lpVtbl->AreGlyphsLocal(This,glyphs,count,enqueue_if_not,are_local) +/*** IDWriteFontFace4 methods ***/ +#define IDWriteFontFace4_GetGlyphImageFormats_(This,glyph,ppem_first,ppem_last,formats) (This)->lpVtbl->GetGlyphImageFormats_(This,glyph,ppem_first,ppem_last,formats) +#define IDWriteFontFace4_GetGlyphImageFormats(This) (This)->lpVtbl->GetGlyphImageFormats(This) +#define IDWriteFontFace4_GetGlyphImageData(This,glyph,ppem,format,data,context) (This)->lpVtbl->GetGlyphImageData(This,glyph,ppem,format,data,context) +#define IDWriteFontFace4_ReleaseGlyphImageData(This,context) (This)->lpVtbl->ReleaseGlyphImageData(This,context) +#else +/*** IUnknown methods ***/ +static inline HRESULT IDWriteFontFace4_QueryInterface(IDWriteFontFace4* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static inline ULONG IDWriteFontFace4_AddRef(IDWriteFontFace4* This) { + return This->lpVtbl->AddRef(This); +} +static inline ULONG IDWriteFontFace4_Release(IDWriteFontFace4* This) { + return This->lpVtbl->Release(This); +} +/*** IDWriteFontFace methods ***/ +static inline DWRITE_FONT_FACE_TYPE IDWriteFontFace4_GetType(IDWriteFontFace4* This) { + return This->lpVtbl->GetType(This); +} +static inline HRESULT IDWriteFontFace4_GetFiles(IDWriteFontFace4* This,UINT32 *number_of_files,IDWriteFontFile **fontfiles) { + return This->lpVtbl->GetFiles(This,number_of_files,fontfiles); +} +static inline UINT32 IDWriteFontFace4_GetIndex(IDWriteFontFace4* This) { + return This->lpVtbl->GetIndex(This); +} +static inline DWRITE_FONT_SIMULATIONS IDWriteFontFace4_GetSimulations(IDWriteFontFace4* This) { + return This->lpVtbl->GetSimulations(This); +} +static inline WINBOOL IDWriteFontFace4_IsSymbolFont(IDWriteFontFace4* This) { + return This->lpVtbl->IsSymbolFont(This); +} +static inline UINT16 IDWriteFontFace4_GetGlyphCount(IDWriteFontFace4* This) { + return This->lpVtbl->GetGlyphCount(This); +} +static inline HRESULT IDWriteFontFace4_GetDesignGlyphMetrics(IDWriteFontFace4* This,const UINT16 *glyph_indices,UINT32 glyph_count,DWRITE_GLYPH_METRICS *metrics,WINBOOL is_sideways) { + return This->lpVtbl->GetDesignGlyphMetrics(This,glyph_indices,glyph_count,metrics,is_sideways); +} +static inline HRESULT IDWriteFontFace4_GetGlyphIndices(IDWriteFontFace4* This,const UINT32 *codepoints,UINT32 count,UINT16 *glyph_indices) { + return This->lpVtbl->GetGlyphIndices(This,codepoints,count,glyph_indices); +} +static inline HRESULT IDWriteFontFace4_TryGetFontTable(IDWriteFontFace4* This,UINT32 table_tag,const void **table_data,UINT32 *table_size,void **context,WINBOOL *exists) { + return This->lpVtbl->TryGetFontTable(This,table_tag,table_data,table_size,context,exists); +} +static inline void IDWriteFontFace4_ReleaseFontTable(IDWriteFontFace4* This,void *table_context) { + This->lpVtbl->ReleaseFontTable(This,table_context); +} +static inline HRESULT IDWriteFontFace4_GetGlyphRunOutline(IDWriteFontFace4* This,FLOAT emSize,const UINT16 *glyph_indices,const FLOAT *glyph_advances,const DWRITE_GLYPH_OFFSET *glyph_offsets,UINT32 glyph_count,WINBOOL is_sideways,WINBOOL is_rtl,IDWriteGeometrySink *geometrysink) { + return This->lpVtbl->GetGlyphRunOutline(This,emSize,glyph_indices,glyph_advances,glyph_offsets,glyph_count,is_sideways,is_rtl,geometrysink); +} +static inline HRESULT IDWriteFontFace4_GetGdiCompatibleGlyphMetrics(IDWriteFontFace4* This,FLOAT emSize,FLOAT pixels_per_dip,const DWRITE_MATRIX *transform,WINBOOL use_gdi_natural,const UINT16 *glyph_indices,UINT32 glyph_count,DWRITE_GLYPH_METRICS *metrics,WINBOOL is_sideways) { + return This->lpVtbl->GetGdiCompatibleGlyphMetrics(This,emSize,pixels_per_dip,transform,use_gdi_natural,glyph_indices,glyph_count,metrics,is_sideways); +} +/*** IDWriteFontFace1 methods ***/ +static inline void IDWriteFontFace4_GetMetrics(IDWriteFontFace4* This,DWRITE_FONT_METRICS1 *metrics) { + This->lpVtbl->IDWriteFontFace1_GetMetrics(This,metrics); +} +static inline HRESULT IDWriteFontFace4_GetGdiCompatibleMetrics(IDWriteFontFace4* This,FLOAT em_size,FLOAT pixels_per_dip,const DWRITE_MATRIX *transform,DWRITE_FONT_METRICS1 *metrics) { + return This->lpVtbl->IDWriteFontFace1_GetGdiCompatibleMetrics(This,em_size,pixels_per_dip,transform,metrics); +} +static inline void IDWriteFontFace4_GetCaretMetrics(IDWriteFontFace4* This,DWRITE_CARET_METRICS *metrics) { + This->lpVtbl->GetCaretMetrics(This,metrics); +} +static inline HRESULT IDWriteFontFace4_GetUnicodeRanges(IDWriteFontFace4* This,UINT32 max_count,DWRITE_UNICODE_RANGE *ranges,UINT32 *count) { + return This->lpVtbl->GetUnicodeRanges(This,max_count,ranges,count); +} +static inline WINBOOL IDWriteFontFace4_IsMonospacedFont(IDWriteFontFace4* This) { + return This->lpVtbl->IsMonospacedFont(This); +} +static inline HRESULT IDWriteFontFace4_GetDesignGlyphAdvances(IDWriteFontFace4* This,UINT32 glyph_count,const UINT16 *indices,INT32 *advances,WINBOOL is_sideways) { + return This->lpVtbl->GetDesignGlyphAdvances(This,glyph_count,indices,advances,is_sideways); +} +static inline HRESULT IDWriteFontFace4_GetGdiCompatibleGlyphAdvances(IDWriteFontFace4* This,FLOAT em_size,FLOAT pixels_per_dip,const DWRITE_MATRIX *transform,WINBOOL use_gdi_natural,WINBOOL is_sideways,UINT32 glyph_count,const UINT16 *indices,INT32 *advances) { + return This->lpVtbl->GetGdiCompatibleGlyphAdvances(This,em_size,pixels_per_dip,transform,use_gdi_natural,is_sideways,glyph_count,indices,advances); +} +static inline HRESULT IDWriteFontFace4_GetKerningPairAdjustments(IDWriteFontFace4* This,UINT32 glyph_count,const UINT16 *indices,INT32 *adjustments) { + return This->lpVtbl->GetKerningPairAdjustments(This,glyph_count,indices,adjustments); +} +static inline WINBOOL IDWriteFontFace4_HasKerningPairs(IDWriteFontFace4* This) { + return This->lpVtbl->HasKerningPairs(This); +} +static inline HRESULT IDWriteFontFace4_GetVerticalGlyphVariants(IDWriteFontFace4* This,UINT32 glyph_count,const UINT16 *nominal_indices,UINT16 *vertical_indices) { + return This->lpVtbl->GetVerticalGlyphVariants(This,glyph_count,nominal_indices,vertical_indices); +} +static inline WINBOOL IDWriteFontFace4_HasVerticalGlyphVariants(IDWriteFontFace4* This) { + return This->lpVtbl->HasVerticalGlyphVariants(This); +} +/*** IDWriteFontFace2 methods ***/ +static inline WINBOOL IDWriteFontFace4_IsColorFont(IDWriteFontFace4* This) { + return This->lpVtbl->IsColorFont(This); +} +static inline UINT32 IDWriteFontFace4_GetColorPaletteCount(IDWriteFontFace4* This) { + return This->lpVtbl->GetColorPaletteCount(This); +} +static inline UINT32 IDWriteFontFace4_GetPaletteEntryCount(IDWriteFontFace4* This) { + return This->lpVtbl->GetPaletteEntryCount(This); +} +static inline HRESULT IDWriteFontFace4_GetPaletteEntries(IDWriteFontFace4* This,UINT32 palette_index,UINT32 first_entry_index,UINT32 entry_count,DWRITE_COLOR_F *entries) { + return This->lpVtbl->GetPaletteEntries(This,palette_index,first_entry_index,entry_count,entries); +} +/*** IDWriteFontFace3 methods ***/ +static inline HRESULT IDWriteFontFace4_GetFontFaceReference(IDWriteFontFace4* This,IDWriteFontFaceReference **reference) { + return This->lpVtbl->GetFontFaceReference(This,reference); +} +static inline void IDWriteFontFace4_GetPanose(IDWriteFontFace4* This,DWRITE_PANOSE *panose) { + This->lpVtbl->GetPanose(This,panose); +} +static inline DWRITE_FONT_WEIGHT IDWriteFontFace4_GetWeight(IDWriteFontFace4* This) { + return This->lpVtbl->GetWeight(This); +} +static inline DWRITE_FONT_STRETCH IDWriteFontFace4_GetStretch(IDWriteFontFace4* This) { + return This->lpVtbl->GetStretch(This); +} +static inline DWRITE_FONT_STYLE IDWriteFontFace4_GetStyle(IDWriteFontFace4* This) { + return This->lpVtbl->GetStyle(This); +} +static inline HRESULT IDWriteFontFace4_GetFamilyNames(IDWriteFontFace4* This,IDWriteLocalizedStrings **names) { + return This->lpVtbl->GetFamilyNames(This,names); +} +static inline HRESULT IDWriteFontFace4_GetFaceNames(IDWriteFontFace4* This,IDWriteLocalizedStrings **names) { + return This->lpVtbl->GetFaceNames(This,names); +} +static inline HRESULT IDWriteFontFace4_GetInformationalStrings(IDWriteFontFace4* This,DWRITE_INFORMATIONAL_STRING_ID stringid,IDWriteLocalizedStrings **strings,WINBOOL *exists) { + return This->lpVtbl->GetInformationalStrings(This,stringid,strings,exists); +} +static inline WINBOOL IDWriteFontFace4_HasCharacter(IDWriteFontFace4* This,UINT32 character) { + return This->lpVtbl->HasCharacter(This,character); +} +static inline HRESULT IDWriteFontFace4_GetRecommendedRenderingMode(IDWriteFontFace4* This,FLOAT emsize,FLOAT dpi_x,FLOAT dpi_y,const DWRITE_MATRIX *transform,WINBOOL is_sideways,DWRITE_OUTLINE_THRESHOLD threshold,DWRITE_MEASURING_MODE measuring_mode,IDWriteRenderingParams *params,DWRITE_RENDERING_MODE1 *rendering_mode,DWRITE_GRID_FIT_MODE *gridfit_mode) { + return This->lpVtbl->IDWriteFontFace3_GetRecommendedRenderingMode(This,emsize,dpi_x,dpi_y,transform,is_sideways,threshold,measuring_mode,params,rendering_mode,gridfit_mode); +} +static inline WINBOOL IDWriteFontFace4_IsCharacterLocal(IDWriteFontFace4* This,UINT32 character) { + return This->lpVtbl->IsCharacterLocal(This,character); +} +static inline WINBOOL IDWriteFontFace4_IsGlyphLocal(IDWriteFontFace4* This,UINT16 glyph) { + return This->lpVtbl->IsGlyphLocal(This,glyph); +} +static inline HRESULT IDWriteFontFace4_AreCharactersLocal(IDWriteFontFace4* This,const WCHAR *characters,UINT32 count,WINBOOL enqueue_if_not,WINBOOL *are_local) { + return This->lpVtbl->AreCharactersLocal(This,characters,count,enqueue_if_not,are_local); +} +static inline HRESULT IDWriteFontFace4_AreGlyphsLocal(IDWriteFontFace4* This,const UINT16 *glyphs,UINT32 count,WINBOOL enqueue_if_not,WINBOOL *are_local) { + return This->lpVtbl->AreGlyphsLocal(This,glyphs,count,enqueue_if_not,are_local); +} +/*** IDWriteFontFace4 methods ***/ +static inline HRESULT IDWriteFontFace4_GetGlyphImageFormats_(IDWriteFontFace4* This,UINT16 glyph,UINT32 ppem_first,UINT32 ppem_last,DWRITE_GLYPH_IMAGE_FORMATS *formats) { + return This->lpVtbl->GetGlyphImageFormats_(This,glyph,ppem_first,ppem_last,formats); +} +static inline DWRITE_GLYPH_IMAGE_FORMATS IDWriteFontFace4_GetGlyphImageFormats(IDWriteFontFace4* This) { + return This->lpVtbl->GetGlyphImageFormats(This); +} +static inline HRESULT IDWriteFontFace4_GetGlyphImageData(IDWriteFontFace4* This,UINT16 glyph,UINT32 ppem,DWRITE_GLYPH_IMAGE_FORMATS format,DWRITE_GLYPH_IMAGE_DATA *data,void **context) { + return This->lpVtbl->GetGlyphImageData(This,glyph,ppem,format,data,context); +} +static inline void IDWriteFontFace4_ReleaseGlyphImageData(IDWriteFontFace4* This,void *context) { + This->lpVtbl->ReleaseGlyphImageData(This,context); +} +#endif +#endif + +#endif + + +#endif /* __IDWriteFontFace4_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IDWriteFontFace5 interface + */ +#ifndef __IDWriteFontFace5_INTERFACE_DEFINED__ +#define __IDWriteFontFace5_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDWriteFontFace5, 0x98eff3a5, 0xb667, 0x479a, 0xb1,0x45, 0xe2,0xfa,0x5b,0x9f,0xdc,0x29); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("98eff3a5-b667-479a-b145-e2fa5b9fdc29") +IDWriteFontFace5 : public IDWriteFontFace4 +{ + virtual UINT32 STDMETHODCALLTYPE GetFontAxisValueCount( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetFontAxisValues( + DWRITE_FONT_AXIS_VALUE *values, + UINT32 value_count) = 0; + + virtual WINBOOL STDMETHODCALLTYPE HasVariations( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetFontResource( + IDWriteFontResource **resource) = 0; + + virtual WINBOOL STDMETHODCALLTYPE Equals( + IDWriteFontFace *fontface) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDWriteFontFace5, 0x98eff3a5, 0xb667, 0x479a, 0xb1,0x45, 0xe2,0xfa,0x5b,0x9f,0xdc,0x29) +#endif +#else +typedef struct IDWriteFontFace5Vtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDWriteFontFace5 *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDWriteFontFace5 *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDWriteFontFace5 *This); + + /*** IDWriteFontFace methods ***/ + DWRITE_FONT_FACE_TYPE (STDMETHODCALLTYPE *GetType)( + IDWriteFontFace5 *This); + + HRESULT (STDMETHODCALLTYPE *GetFiles)( + IDWriteFontFace5 *This, + UINT32 *number_of_files, + IDWriteFontFile **fontfiles); + + UINT32 (STDMETHODCALLTYPE *GetIndex)( + IDWriteFontFace5 *This); + + DWRITE_FONT_SIMULATIONS (STDMETHODCALLTYPE *GetSimulations)( + IDWriteFontFace5 *This); + + WINBOOL (STDMETHODCALLTYPE *IsSymbolFont)( + IDWriteFontFace5 *This); + + void (STDMETHODCALLTYPE *GetMetrics)( + IDWriteFontFace5 *This, + DWRITE_FONT_METRICS *metrics); + + UINT16 (STDMETHODCALLTYPE *GetGlyphCount)( + IDWriteFontFace5 *This); + + HRESULT (STDMETHODCALLTYPE *GetDesignGlyphMetrics)( + IDWriteFontFace5 *This, + const UINT16 *glyph_indices, + UINT32 glyph_count, + DWRITE_GLYPH_METRICS *metrics, + WINBOOL is_sideways); + + HRESULT (STDMETHODCALLTYPE *GetGlyphIndices)( + IDWriteFontFace5 *This, + const UINT32 *codepoints, + UINT32 count, + UINT16 *glyph_indices); + + HRESULT (STDMETHODCALLTYPE *TryGetFontTable)( + IDWriteFontFace5 *This, + UINT32 table_tag, + const void **table_data, + UINT32 *table_size, + void **context, + WINBOOL *exists); + + void (STDMETHODCALLTYPE *ReleaseFontTable)( + IDWriteFontFace5 *This, + void *table_context); + + HRESULT (STDMETHODCALLTYPE *GetGlyphRunOutline)( + IDWriteFontFace5 *This, + FLOAT emSize, + const UINT16 *glyph_indices, + const FLOAT *glyph_advances, + const DWRITE_GLYPH_OFFSET *glyph_offsets, + UINT32 glyph_count, + WINBOOL is_sideways, + WINBOOL is_rtl, + IDWriteGeometrySink *geometrysink); + + HRESULT (STDMETHODCALLTYPE *GetRecommendedRenderingMode)( + IDWriteFontFace5 *This, + FLOAT emSize, + FLOAT pixels_per_dip, + DWRITE_MEASURING_MODE mode, + IDWriteRenderingParams *params, + DWRITE_RENDERING_MODE *rendering_mode); + + HRESULT (STDMETHODCALLTYPE *GetGdiCompatibleMetrics)( + IDWriteFontFace5 *This, + FLOAT emSize, + FLOAT pixels_per_dip, + const DWRITE_MATRIX *transform, + DWRITE_FONT_METRICS *metrics); + + HRESULT (STDMETHODCALLTYPE *GetGdiCompatibleGlyphMetrics)( + IDWriteFontFace5 *This, + FLOAT emSize, + FLOAT pixels_per_dip, + const DWRITE_MATRIX *transform, + WINBOOL use_gdi_natural, + const UINT16 *glyph_indices, + UINT32 glyph_count, + DWRITE_GLYPH_METRICS *metrics, + WINBOOL is_sideways); + + /*** IDWriteFontFace1 methods ***/ + void (STDMETHODCALLTYPE *IDWriteFontFace1_GetMetrics)( + IDWriteFontFace5 *This, + DWRITE_FONT_METRICS1 *metrics); + + HRESULT (STDMETHODCALLTYPE *IDWriteFontFace1_GetGdiCompatibleMetrics)( + IDWriteFontFace5 *This, + FLOAT em_size, + FLOAT pixels_per_dip, + const DWRITE_MATRIX *transform, + DWRITE_FONT_METRICS1 *metrics); + + void (STDMETHODCALLTYPE *GetCaretMetrics)( + IDWriteFontFace5 *This, + DWRITE_CARET_METRICS *metrics); + + HRESULT (STDMETHODCALLTYPE *GetUnicodeRanges)( + IDWriteFontFace5 *This, + UINT32 max_count, + DWRITE_UNICODE_RANGE *ranges, + UINT32 *count); + + WINBOOL (STDMETHODCALLTYPE *IsMonospacedFont)( + IDWriteFontFace5 *This); + + HRESULT (STDMETHODCALLTYPE *GetDesignGlyphAdvances)( + IDWriteFontFace5 *This, + UINT32 glyph_count, + const UINT16 *indices, + INT32 *advances, + WINBOOL is_sideways); + + HRESULT (STDMETHODCALLTYPE *GetGdiCompatibleGlyphAdvances)( + IDWriteFontFace5 *This, + FLOAT em_size, + FLOAT pixels_per_dip, + const DWRITE_MATRIX *transform, + WINBOOL use_gdi_natural, + WINBOOL is_sideways, + UINT32 glyph_count, + const UINT16 *indices, + INT32 *advances); + + HRESULT (STDMETHODCALLTYPE *GetKerningPairAdjustments)( + IDWriteFontFace5 *This, + UINT32 glyph_count, + const UINT16 *indices, + INT32 *adjustments); + + WINBOOL (STDMETHODCALLTYPE *HasKerningPairs)( + IDWriteFontFace5 *This); + + HRESULT (STDMETHODCALLTYPE *IDWriteFontFace1_GetRecommendedRenderingMode)( + IDWriteFontFace5 *This, + FLOAT font_emsize, + FLOAT dpiX, + FLOAT dpiY, + const DWRITE_MATRIX *transform, + WINBOOL is_sideways, + DWRITE_OUTLINE_THRESHOLD threshold, + DWRITE_MEASURING_MODE measuring_mode, + DWRITE_RENDERING_MODE *rendering_mode); + + HRESULT (STDMETHODCALLTYPE *GetVerticalGlyphVariants)( + IDWriteFontFace5 *This, + UINT32 glyph_count, + const UINT16 *nominal_indices, + UINT16 *vertical_indices); + + WINBOOL (STDMETHODCALLTYPE *HasVerticalGlyphVariants)( + IDWriteFontFace5 *This); + + /*** IDWriteFontFace2 methods ***/ + WINBOOL (STDMETHODCALLTYPE *IsColorFont)( + IDWriteFontFace5 *This); + + UINT32 (STDMETHODCALLTYPE *GetColorPaletteCount)( + IDWriteFontFace5 *This); + + UINT32 (STDMETHODCALLTYPE *GetPaletteEntryCount)( + IDWriteFontFace5 *This); + + HRESULT (STDMETHODCALLTYPE *GetPaletteEntries)( + IDWriteFontFace5 *This, + UINT32 palette_index, + UINT32 first_entry_index, + UINT32 entry_count, + DWRITE_COLOR_F *entries); + + HRESULT (STDMETHODCALLTYPE *IDWriteFontFace2_GetRecommendedRenderingMode)( + IDWriteFontFace5 *This, + FLOAT fontEmSize, + FLOAT dpiX, + FLOAT dpiY, + const DWRITE_MATRIX *transform, + WINBOOL is_sideways, + DWRITE_OUTLINE_THRESHOLD threshold, + DWRITE_MEASURING_MODE measuringmode, + IDWriteRenderingParams *params, + DWRITE_RENDERING_MODE *renderingmode, + DWRITE_GRID_FIT_MODE *gridfitmode); + + /*** IDWriteFontFace3 methods ***/ + HRESULT (STDMETHODCALLTYPE *GetFontFaceReference)( + IDWriteFontFace5 *This, + IDWriteFontFaceReference **reference); + + void (STDMETHODCALLTYPE *GetPanose)( + IDWriteFontFace5 *This, + DWRITE_PANOSE *panose); + + DWRITE_FONT_WEIGHT (STDMETHODCALLTYPE *GetWeight)( + IDWriteFontFace5 *This); + + DWRITE_FONT_STRETCH (STDMETHODCALLTYPE *GetStretch)( + IDWriteFontFace5 *This); + + DWRITE_FONT_STYLE (STDMETHODCALLTYPE *GetStyle)( + IDWriteFontFace5 *This); + + HRESULT (STDMETHODCALLTYPE *GetFamilyNames)( + IDWriteFontFace5 *This, + IDWriteLocalizedStrings **names); + + HRESULT (STDMETHODCALLTYPE *GetFaceNames)( + IDWriteFontFace5 *This, + IDWriteLocalizedStrings **names); + + HRESULT (STDMETHODCALLTYPE *GetInformationalStrings)( + IDWriteFontFace5 *This, + DWRITE_INFORMATIONAL_STRING_ID stringid, + IDWriteLocalizedStrings **strings, + WINBOOL *exists); + + WINBOOL (STDMETHODCALLTYPE *HasCharacter)( + IDWriteFontFace5 *This, + UINT32 character); + + HRESULT (STDMETHODCALLTYPE *IDWriteFontFace3_GetRecommendedRenderingMode)( + IDWriteFontFace5 *This, + FLOAT emsize, + FLOAT dpi_x, + FLOAT dpi_y, + const DWRITE_MATRIX *transform, + WINBOOL is_sideways, + DWRITE_OUTLINE_THRESHOLD threshold, + DWRITE_MEASURING_MODE measuring_mode, + IDWriteRenderingParams *params, + DWRITE_RENDERING_MODE1 *rendering_mode, + DWRITE_GRID_FIT_MODE *gridfit_mode); + + WINBOOL (STDMETHODCALLTYPE *IsCharacterLocal)( + IDWriteFontFace5 *This, + UINT32 character); + + WINBOOL (STDMETHODCALLTYPE *IsGlyphLocal)( + IDWriteFontFace5 *This, + UINT16 glyph); + + HRESULT (STDMETHODCALLTYPE *AreCharactersLocal)( + IDWriteFontFace5 *This, + const WCHAR *characters, + UINT32 count, + WINBOOL enqueue_if_not, + WINBOOL *are_local); + + HRESULT (STDMETHODCALLTYPE *AreGlyphsLocal)( + IDWriteFontFace5 *This, + const UINT16 *glyphs, + UINT32 count, + WINBOOL enqueue_if_not, + WINBOOL *are_local); + + /*** IDWriteFontFace4 methods ***/ + HRESULT (STDMETHODCALLTYPE *GetGlyphImageFormats_)( + IDWriteFontFace5 *This, + UINT16 glyph, + UINT32 ppem_first, + UINT32 ppem_last, + DWRITE_GLYPH_IMAGE_FORMATS *formats); + + DWRITE_GLYPH_IMAGE_FORMATS (STDMETHODCALLTYPE *GetGlyphImageFormats)( + IDWriteFontFace5 *This); + + HRESULT (STDMETHODCALLTYPE *GetGlyphImageData)( + IDWriteFontFace5 *This, + UINT16 glyph, + UINT32 ppem, + DWRITE_GLYPH_IMAGE_FORMATS format, + DWRITE_GLYPH_IMAGE_DATA *data, + void **context); + + void (STDMETHODCALLTYPE *ReleaseGlyphImageData)( + IDWriteFontFace5 *This, + void *context); + + /*** IDWriteFontFace5 methods ***/ + UINT32 (STDMETHODCALLTYPE *GetFontAxisValueCount)( + IDWriteFontFace5 *This); + + HRESULT (STDMETHODCALLTYPE *GetFontAxisValues)( + IDWriteFontFace5 *This, + DWRITE_FONT_AXIS_VALUE *values, + UINT32 value_count); + + WINBOOL (STDMETHODCALLTYPE *HasVariations)( + IDWriteFontFace5 *This); + + HRESULT (STDMETHODCALLTYPE *GetFontResource)( + IDWriteFontFace5 *This, + IDWriteFontResource **resource); + + WINBOOL (STDMETHODCALLTYPE *Equals)( + IDWriteFontFace5 *This, + IDWriteFontFace *fontface); + + END_INTERFACE +} IDWriteFontFace5Vtbl; + +interface IDWriteFontFace5 { + CONST_VTBL IDWriteFontFace5Vtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDWriteFontFace5_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteFontFace5_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDWriteFontFace5_Release(This) (This)->lpVtbl->Release(This) +/*** IDWriteFontFace methods ***/ +#define IDWriteFontFace5_GetType(This) (This)->lpVtbl->GetType(This) +#define IDWriteFontFace5_GetFiles(This,number_of_files,fontfiles) (This)->lpVtbl->GetFiles(This,number_of_files,fontfiles) +#define IDWriteFontFace5_GetIndex(This) (This)->lpVtbl->GetIndex(This) +#define IDWriteFontFace5_GetSimulations(This) (This)->lpVtbl->GetSimulations(This) +#define IDWriteFontFace5_IsSymbolFont(This) (This)->lpVtbl->IsSymbolFont(This) +#define IDWriteFontFace5_GetGlyphCount(This) (This)->lpVtbl->GetGlyphCount(This) +#define IDWriteFontFace5_GetDesignGlyphMetrics(This,glyph_indices,glyph_count,metrics,is_sideways) (This)->lpVtbl->GetDesignGlyphMetrics(This,glyph_indices,glyph_count,metrics,is_sideways) +#define IDWriteFontFace5_GetGlyphIndices(This,codepoints,count,glyph_indices) (This)->lpVtbl->GetGlyphIndices(This,codepoints,count,glyph_indices) +#define IDWriteFontFace5_TryGetFontTable(This,table_tag,table_data,table_size,context,exists) (This)->lpVtbl->TryGetFontTable(This,table_tag,table_data,table_size,context,exists) +#define IDWriteFontFace5_ReleaseFontTable(This,table_context) (This)->lpVtbl->ReleaseFontTable(This,table_context) +#define IDWriteFontFace5_GetGlyphRunOutline(This,emSize,glyph_indices,glyph_advances,glyph_offsets,glyph_count,is_sideways,is_rtl,geometrysink) (This)->lpVtbl->GetGlyphRunOutline(This,emSize,glyph_indices,glyph_advances,glyph_offsets,glyph_count,is_sideways,is_rtl,geometrysink) +#define IDWriteFontFace5_GetGdiCompatibleGlyphMetrics(This,emSize,pixels_per_dip,transform,use_gdi_natural,glyph_indices,glyph_count,metrics,is_sideways) (This)->lpVtbl->GetGdiCompatibleGlyphMetrics(This,emSize,pixels_per_dip,transform,use_gdi_natural,glyph_indices,glyph_count,metrics,is_sideways) +/*** IDWriteFontFace1 methods ***/ +#define IDWriteFontFace5_GetMetrics(This,metrics) (This)->lpVtbl->IDWriteFontFace1_GetMetrics(This,metrics) +#define IDWriteFontFace5_GetGdiCompatibleMetrics(This,em_size,pixels_per_dip,transform,metrics) (This)->lpVtbl->IDWriteFontFace1_GetGdiCompatibleMetrics(This,em_size,pixels_per_dip,transform,metrics) +#define IDWriteFontFace5_GetCaretMetrics(This,metrics) (This)->lpVtbl->GetCaretMetrics(This,metrics) +#define IDWriteFontFace5_GetUnicodeRanges(This,max_count,ranges,count) (This)->lpVtbl->GetUnicodeRanges(This,max_count,ranges,count) +#define IDWriteFontFace5_IsMonospacedFont(This) (This)->lpVtbl->IsMonospacedFont(This) +#define IDWriteFontFace5_GetDesignGlyphAdvances(This,glyph_count,indices,advances,is_sideways) (This)->lpVtbl->GetDesignGlyphAdvances(This,glyph_count,indices,advances,is_sideways) +#define IDWriteFontFace5_GetGdiCompatibleGlyphAdvances(This,em_size,pixels_per_dip,transform,use_gdi_natural,is_sideways,glyph_count,indices,advances) (This)->lpVtbl->GetGdiCompatibleGlyphAdvances(This,em_size,pixels_per_dip,transform,use_gdi_natural,is_sideways,glyph_count,indices,advances) +#define IDWriteFontFace5_GetKerningPairAdjustments(This,glyph_count,indices,adjustments) (This)->lpVtbl->GetKerningPairAdjustments(This,glyph_count,indices,adjustments) +#define IDWriteFontFace5_HasKerningPairs(This) (This)->lpVtbl->HasKerningPairs(This) +#define IDWriteFontFace5_GetVerticalGlyphVariants(This,glyph_count,nominal_indices,vertical_indices) (This)->lpVtbl->GetVerticalGlyphVariants(This,glyph_count,nominal_indices,vertical_indices) +#define IDWriteFontFace5_HasVerticalGlyphVariants(This) (This)->lpVtbl->HasVerticalGlyphVariants(This) +/*** IDWriteFontFace2 methods ***/ +#define IDWriteFontFace5_IsColorFont(This) (This)->lpVtbl->IsColorFont(This) +#define IDWriteFontFace5_GetColorPaletteCount(This) (This)->lpVtbl->GetColorPaletteCount(This) +#define IDWriteFontFace5_GetPaletteEntryCount(This) (This)->lpVtbl->GetPaletteEntryCount(This) +#define IDWriteFontFace5_GetPaletteEntries(This,palette_index,first_entry_index,entry_count,entries) (This)->lpVtbl->GetPaletteEntries(This,palette_index,first_entry_index,entry_count,entries) +/*** IDWriteFontFace3 methods ***/ +#define IDWriteFontFace5_GetFontFaceReference(This,reference) (This)->lpVtbl->GetFontFaceReference(This,reference) +#define IDWriteFontFace5_GetPanose(This,panose) (This)->lpVtbl->GetPanose(This,panose) +#define IDWriteFontFace5_GetWeight(This) (This)->lpVtbl->GetWeight(This) +#define IDWriteFontFace5_GetStretch(This) (This)->lpVtbl->GetStretch(This) +#define IDWriteFontFace5_GetStyle(This) (This)->lpVtbl->GetStyle(This) +#define IDWriteFontFace5_GetFamilyNames(This,names) (This)->lpVtbl->GetFamilyNames(This,names) +#define IDWriteFontFace5_GetFaceNames(This,names) (This)->lpVtbl->GetFaceNames(This,names) +#define IDWriteFontFace5_GetInformationalStrings(This,stringid,strings,exists) (This)->lpVtbl->GetInformationalStrings(This,stringid,strings,exists) +#define IDWriteFontFace5_HasCharacter(This,character) (This)->lpVtbl->HasCharacter(This,character) +#define IDWriteFontFace5_GetRecommendedRenderingMode(This,emsize,dpi_x,dpi_y,transform,is_sideways,threshold,measuring_mode,params,rendering_mode,gridfit_mode) (This)->lpVtbl->IDWriteFontFace3_GetRecommendedRenderingMode(This,emsize,dpi_x,dpi_y,transform,is_sideways,threshold,measuring_mode,params,rendering_mode,gridfit_mode) +#define IDWriteFontFace5_IsCharacterLocal(This,character) (This)->lpVtbl->IsCharacterLocal(This,character) +#define IDWriteFontFace5_IsGlyphLocal(This,glyph) (This)->lpVtbl->IsGlyphLocal(This,glyph) +#define IDWriteFontFace5_AreCharactersLocal(This,characters,count,enqueue_if_not,are_local) (This)->lpVtbl->AreCharactersLocal(This,characters,count,enqueue_if_not,are_local) +#define IDWriteFontFace5_AreGlyphsLocal(This,glyphs,count,enqueue_if_not,are_local) (This)->lpVtbl->AreGlyphsLocal(This,glyphs,count,enqueue_if_not,are_local) +/*** IDWriteFontFace4 methods ***/ +#define IDWriteFontFace5_GetGlyphImageFormats_(This,glyph,ppem_first,ppem_last,formats) (This)->lpVtbl->GetGlyphImageFormats_(This,glyph,ppem_first,ppem_last,formats) +#define IDWriteFontFace5_GetGlyphImageFormats(This) (This)->lpVtbl->GetGlyphImageFormats(This) +#define IDWriteFontFace5_GetGlyphImageData(This,glyph,ppem,format,data,context) (This)->lpVtbl->GetGlyphImageData(This,glyph,ppem,format,data,context) +#define IDWriteFontFace5_ReleaseGlyphImageData(This,context) (This)->lpVtbl->ReleaseGlyphImageData(This,context) +/*** IDWriteFontFace5 methods ***/ +#define IDWriteFontFace5_GetFontAxisValueCount(This) (This)->lpVtbl->GetFontAxisValueCount(This) +#define IDWriteFontFace5_GetFontAxisValues(This,values,value_count) (This)->lpVtbl->GetFontAxisValues(This,values,value_count) +#define IDWriteFontFace5_HasVariations(This) (This)->lpVtbl->HasVariations(This) +#define IDWriteFontFace5_GetFontResource(This,resource) (This)->lpVtbl->GetFontResource(This,resource) +#define IDWriteFontFace5_Equals(This,fontface) (This)->lpVtbl->Equals(This,fontface) +#else +/*** IUnknown methods ***/ +static inline HRESULT IDWriteFontFace5_QueryInterface(IDWriteFontFace5* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static inline ULONG IDWriteFontFace5_AddRef(IDWriteFontFace5* This) { + return This->lpVtbl->AddRef(This); +} +static inline ULONG IDWriteFontFace5_Release(IDWriteFontFace5* This) { + return This->lpVtbl->Release(This); +} +/*** IDWriteFontFace methods ***/ +static inline DWRITE_FONT_FACE_TYPE IDWriteFontFace5_GetType(IDWriteFontFace5* This) { + return This->lpVtbl->GetType(This); +} +static inline HRESULT IDWriteFontFace5_GetFiles(IDWriteFontFace5* This,UINT32 *number_of_files,IDWriteFontFile **fontfiles) { + return This->lpVtbl->GetFiles(This,number_of_files,fontfiles); +} +static inline UINT32 IDWriteFontFace5_GetIndex(IDWriteFontFace5* This) { + return This->lpVtbl->GetIndex(This); +} +static inline DWRITE_FONT_SIMULATIONS IDWriteFontFace5_GetSimulations(IDWriteFontFace5* This) { + return This->lpVtbl->GetSimulations(This); +} +static inline WINBOOL IDWriteFontFace5_IsSymbolFont(IDWriteFontFace5* This) { + return This->lpVtbl->IsSymbolFont(This); +} +static inline UINT16 IDWriteFontFace5_GetGlyphCount(IDWriteFontFace5* This) { + return This->lpVtbl->GetGlyphCount(This); +} +static inline HRESULT IDWriteFontFace5_GetDesignGlyphMetrics(IDWriteFontFace5* This,const UINT16 *glyph_indices,UINT32 glyph_count,DWRITE_GLYPH_METRICS *metrics,WINBOOL is_sideways) { + return This->lpVtbl->GetDesignGlyphMetrics(This,glyph_indices,glyph_count,metrics,is_sideways); +} +static inline HRESULT IDWriteFontFace5_GetGlyphIndices(IDWriteFontFace5* This,const UINT32 *codepoints,UINT32 count,UINT16 *glyph_indices) { + return This->lpVtbl->GetGlyphIndices(This,codepoints,count,glyph_indices); +} +static inline HRESULT IDWriteFontFace5_TryGetFontTable(IDWriteFontFace5* This,UINT32 table_tag,const void **table_data,UINT32 *table_size,void **context,WINBOOL *exists) { + return This->lpVtbl->TryGetFontTable(This,table_tag,table_data,table_size,context,exists); +} +static inline void IDWriteFontFace5_ReleaseFontTable(IDWriteFontFace5* This,void *table_context) { + This->lpVtbl->ReleaseFontTable(This,table_context); +} +static inline HRESULT IDWriteFontFace5_GetGlyphRunOutline(IDWriteFontFace5* This,FLOAT emSize,const UINT16 *glyph_indices,const FLOAT *glyph_advances,const DWRITE_GLYPH_OFFSET *glyph_offsets,UINT32 glyph_count,WINBOOL is_sideways,WINBOOL is_rtl,IDWriteGeometrySink *geometrysink) { + return This->lpVtbl->GetGlyphRunOutline(This,emSize,glyph_indices,glyph_advances,glyph_offsets,glyph_count,is_sideways,is_rtl,geometrysink); +} +static inline HRESULT IDWriteFontFace5_GetGdiCompatibleGlyphMetrics(IDWriteFontFace5* This,FLOAT emSize,FLOAT pixels_per_dip,const DWRITE_MATRIX *transform,WINBOOL use_gdi_natural,const UINT16 *glyph_indices,UINT32 glyph_count,DWRITE_GLYPH_METRICS *metrics,WINBOOL is_sideways) { + return This->lpVtbl->GetGdiCompatibleGlyphMetrics(This,emSize,pixels_per_dip,transform,use_gdi_natural,glyph_indices,glyph_count,metrics,is_sideways); +} +/*** IDWriteFontFace1 methods ***/ +static inline void IDWriteFontFace5_GetMetrics(IDWriteFontFace5* This,DWRITE_FONT_METRICS1 *metrics) { + This->lpVtbl->IDWriteFontFace1_GetMetrics(This,metrics); +} +static inline HRESULT IDWriteFontFace5_GetGdiCompatibleMetrics(IDWriteFontFace5* This,FLOAT em_size,FLOAT pixels_per_dip,const DWRITE_MATRIX *transform,DWRITE_FONT_METRICS1 *metrics) { + return This->lpVtbl->IDWriteFontFace1_GetGdiCompatibleMetrics(This,em_size,pixels_per_dip,transform,metrics); +} +static inline void IDWriteFontFace5_GetCaretMetrics(IDWriteFontFace5* This,DWRITE_CARET_METRICS *metrics) { + This->lpVtbl->GetCaretMetrics(This,metrics); +} +static inline HRESULT IDWriteFontFace5_GetUnicodeRanges(IDWriteFontFace5* This,UINT32 max_count,DWRITE_UNICODE_RANGE *ranges,UINT32 *count) { + return This->lpVtbl->GetUnicodeRanges(This,max_count,ranges,count); +} +static inline WINBOOL IDWriteFontFace5_IsMonospacedFont(IDWriteFontFace5* This) { + return This->lpVtbl->IsMonospacedFont(This); +} +static inline HRESULT IDWriteFontFace5_GetDesignGlyphAdvances(IDWriteFontFace5* This,UINT32 glyph_count,const UINT16 *indices,INT32 *advances,WINBOOL is_sideways) { + return This->lpVtbl->GetDesignGlyphAdvances(This,glyph_count,indices,advances,is_sideways); +} +static inline HRESULT IDWriteFontFace5_GetGdiCompatibleGlyphAdvances(IDWriteFontFace5* This,FLOAT em_size,FLOAT pixels_per_dip,const DWRITE_MATRIX *transform,WINBOOL use_gdi_natural,WINBOOL is_sideways,UINT32 glyph_count,const UINT16 *indices,INT32 *advances) { + return This->lpVtbl->GetGdiCompatibleGlyphAdvances(This,em_size,pixels_per_dip,transform,use_gdi_natural,is_sideways,glyph_count,indices,advances); +} +static inline HRESULT IDWriteFontFace5_GetKerningPairAdjustments(IDWriteFontFace5* This,UINT32 glyph_count,const UINT16 *indices,INT32 *adjustments) { + return This->lpVtbl->GetKerningPairAdjustments(This,glyph_count,indices,adjustments); +} +static inline WINBOOL IDWriteFontFace5_HasKerningPairs(IDWriteFontFace5* This) { + return This->lpVtbl->HasKerningPairs(This); +} +static inline HRESULT IDWriteFontFace5_GetVerticalGlyphVariants(IDWriteFontFace5* This,UINT32 glyph_count,const UINT16 *nominal_indices,UINT16 *vertical_indices) { + return This->lpVtbl->GetVerticalGlyphVariants(This,glyph_count,nominal_indices,vertical_indices); +} +static inline WINBOOL IDWriteFontFace5_HasVerticalGlyphVariants(IDWriteFontFace5* This) { + return This->lpVtbl->HasVerticalGlyphVariants(This); +} +/*** IDWriteFontFace2 methods ***/ +static inline WINBOOL IDWriteFontFace5_IsColorFont(IDWriteFontFace5* This) { + return This->lpVtbl->IsColorFont(This); +} +static inline UINT32 IDWriteFontFace5_GetColorPaletteCount(IDWriteFontFace5* This) { + return This->lpVtbl->GetColorPaletteCount(This); +} +static inline UINT32 IDWriteFontFace5_GetPaletteEntryCount(IDWriteFontFace5* This) { + return This->lpVtbl->GetPaletteEntryCount(This); +} +static inline HRESULT IDWriteFontFace5_GetPaletteEntries(IDWriteFontFace5* This,UINT32 palette_index,UINT32 first_entry_index,UINT32 entry_count,DWRITE_COLOR_F *entries) { + return This->lpVtbl->GetPaletteEntries(This,palette_index,first_entry_index,entry_count,entries); +} +/*** IDWriteFontFace3 methods ***/ +static inline HRESULT IDWriteFontFace5_GetFontFaceReference(IDWriteFontFace5* This,IDWriteFontFaceReference **reference) { + return This->lpVtbl->GetFontFaceReference(This,reference); +} +static inline void IDWriteFontFace5_GetPanose(IDWriteFontFace5* This,DWRITE_PANOSE *panose) { + This->lpVtbl->GetPanose(This,panose); +} +static inline DWRITE_FONT_WEIGHT IDWriteFontFace5_GetWeight(IDWriteFontFace5* This) { + return This->lpVtbl->GetWeight(This); +} +static inline DWRITE_FONT_STRETCH IDWriteFontFace5_GetStretch(IDWriteFontFace5* This) { + return This->lpVtbl->GetStretch(This); +} +static inline DWRITE_FONT_STYLE IDWriteFontFace5_GetStyle(IDWriteFontFace5* This) { + return This->lpVtbl->GetStyle(This); +} +static inline HRESULT IDWriteFontFace5_GetFamilyNames(IDWriteFontFace5* This,IDWriteLocalizedStrings **names) { + return This->lpVtbl->GetFamilyNames(This,names); +} +static inline HRESULT IDWriteFontFace5_GetFaceNames(IDWriteFontFace5* This,IDWriteLocalizedStrings **names) { + return This->lpVtbl->GetFaceNames(This,names); +} +static inline HRESULT IDWriteFontFace5_GetInformationalStrings(IDWriteFontFace5* This,DWRITE_INFORMATIONAL_STRING_ID stringid,IDWriteLocalizedStrings **strings,WINBOOL *exists) { + return This->lpVtbl->GetInformationalStrings(This,stringid,strings,exists); +} +static inline WINBOOL IDWriteFontFace5_HasCharacter(IDWriteFontFace5* This,UINT32 character) { + return This->lpVtbl->HasCharacter(This,character); +} +static inline HRESULT IDWriteFontFace5_GetRecommendedRenderingMode(IDWriteFontFace5* This,FLOAT emsize,FLOAT dpi_x,FLOAT dpi_y,const DWRITE_MATRIX *transform,WINBOOL is_sideways,DWRITE_OUTLINE_THRESHOLD threshold,DWRITE_MEASURING_MODE measuring_mode,IDWriteRenderingParams *params,DWRITE_RENDERING_MODE1 *rendering_mode,DWRITE_GRID_FIT_MODE *gridfit_mode) { + return This->lpVtbl->IDWriteFontFace3_GetRecommendedRenderingMode(This,emsize,dpi_x,dpi_y,transform,is_sideways,threshold,measuring_mode,params,rendering_mode,gridfit_mode); +} +static inline WINBOOL IDWriteFontFace5_IsCharacterLocal(IDWriteFontFace5* This,UINT32 character) { + return This->lpVtbl->IsCharacterLocal(This,character); +} +static inline WINBOOL IDWriteFontFace5_IsGlyphLocal(IDWriteFontFace5* This,UINT16 glyph) { + return This->lpVtbl->IsGlyphLocal(This,glyph); +} +static inline HRESULT IDWriteFontFace5_AreCharactersLocal(IDWriteFontFace5* This,const WCHAR *characters,UINT32 count,WINBOOL enqueue_if_not,WINBOOL *are_local) { + return This->lpVtbl->AreCharactersLocal(This,characters,count,enqueue_if_not,are_local); +} +static inline HRESULT IDWriteFontFace5_AreGlyphsLocal(IDWriteFontFace5* This,const UINT16 *glyphs,UINT32 count,WINBOOL enqueue_if_not,WINBOOL *are_local) { + return This->lpVtbl->AreGlyphsLocal(This,glyphs,count,enqueue_if_not,are_local); +} +/*** IDWriteFontFace4 methods ***/ +static inline HRESULT IDWriteFontFace5_GetGlyphImageFormats_(IDWriteFontFace5* This,UINT16 glyph,UINT32 ppem_first,UINT32 ppem_last,DWRITE_GLYPH_IMAGE_FORMATS *formats) { + return This->lpVtbl->GetGlyphImageFormats_(This,glyph,ppem_first,ppem_last,formats); +} +static inline DWRITE_GLYPH_IMAGE_FORMATS IDWriteFontFace5_GetGlyphImageFormats(IDWriteFontFace5* This) { + return This->lpVtbl->GetGlyphImageFormats(This); +} +static inline HRESULT IDWriteFontFace5_GetGlyphImageData(IDWriteFontFace5* This,UINT16 glyph,UINT32 ppem,DWRITE_GLYPH_IMAGE_FORMATS format,DWRITE_GLYPH_IMAGE_DATA *data,void **context) { + return This->lpVtbl->GetGlyphImageData(This,glyph,ppem,format,data,context); +} +static inline void IDWriteFontFace5_ReleaseGlyphImageData(IDWriteFontFace5* This,void *context) { + This->lpVtbl->ReleaseGlyphImageData(This,context); +} +/*** IDWriteFontFace5 methods ***/ +static inline UINT32 IDWriteFontFace5_GetFontAxisValueCount(IDWriteFontFace5* This) { + return This->lpVtbl->GetFontAxisValueCount(This); +} +static inline HRESULT IDWriteFontFace5_GetFontAxisValues(IDWriteFontFace5* This,DWRITE_FONT_AXIS_VALUE *values,UINT32 value_count) { + return This->lpVtbl->GetFontAxisValues(This,values,value_count); +} +static inline WINBOOL IDWriteFontFace5_HasVariations(IDWriteFontFace5* This) { + return This->lpVtbl->HasVariations(This); +} +static inline HRESULT IDWriteFontFace5_GetFontResource(IDWriteFontFace5* This,IDWriteFontResource **resource) { + return This->lpVtbl->GetFontResource(This,resource); +} +static inline WINBOOL IDWriteFontFace5_Equals(IDWriteFontFace5* This,IDWriteFontFace *fontface) { + return This->lpVtbl->Equals(This,fontface); +} +#endif +#endif + +#endif + + +#endif /* __IDWriteFontFace5_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IDWriteFontFace6 interface + */ +#ifndef __IDWriteFontFace6_INTERFACE_DEFINED__ +#define __IDWriteFontFace6_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDWriteFontFace6, 0xc4b1fe1b, 0x6e84, 0x47d5, 0xb5,0x4c, 0xa5,0x97,0x98,0x1b,0x06,0xad); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("c4b1fe1b-6e84-47d5-b54c-a597981b06ad") +IDWriteFontFace6 : public IDWriteFontFace5 +{ + virtual HRESULT STDMETHODCALLTYPE GetFamilyNames( + DWRITE_FONT_FAMILY_MODEL font_family_model, + IDWriteLocalizedStrings **names) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetFaceNames( + DWRITE_FONT_FAMILY_MODEL font_family_model, + IDWriteLocalizedStrings **names) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDWriteFontFace6, 0xc4b1fe1b, 0x6e84, 0x47d5, 0xb5,0x4c, 0xa5,0x97,0x98,0x1b,0x06,0xad) +#endif +#else +typedef struct IDWriteFontFace6Vtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDWriteFontFace6 *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDWriteFontFace6 *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDWriteFontFace6 *This); + + /*** IDWriteFontFace methods ***/ + DWRITE_FONT_FACE_TYPE (STDMETHODCALLTYPE *GetType)( + IDWriteFontFace6 *This); + + HRESULT (STDMETHODCALLTYPE *GetFiles)( + IDWriteFontFace6 *This, + UINT32 *number_of_files, + IDWriteFontFile **fontfiles); + + UINT32 (STDMETHODCALLTYPE *GetIndex)( + IDWriteFontFace6 *This); + + DWRITE_FONT_SIMULATIONS (STDMETHODCALLTYPE *GetSimulations)( + IDWriteFontFace6 *This); + + WINBOOL (STDMETHODCALLTYPE *IsSymbolFont)( + IDWriteFontFace6 *This); + + void (STDMETHODCALLTYPE *GetMetrics)( + IDWriteFontFace6 *This, + DWRITE_FONT_METRICS *metrics); + + UINT16 (STDMETHODCALLTYPE *GetGlyphCount)( + IDWriteFontFace6 *This); + + HRESULT (STDMETHODCALLTYPE *GetDesignGlyphMetrics)( + IDWriteFontFace6 *This, + const UINT16 *glyph_indices, + UINT32 glyph_count, + DWRITE_GLYPH_METRICS *metrics, + WINBOOL is_sideways); + + HRESULT (STDMETHODCALLTYPE *GetGlyphIndices)( + IDWriteFontFace6 *This, + const UINT32 *codepoints, + UINT32 count, + UINT16 *glyph_indices); + + HRESULT (STDMETHODCALLTYPE *TryGetFontTable)( + IDWriteFontFace6 *This, + UINT32 table_tag, + const void **table_data, + UINT32 *table_size, + void **context, + WINBOOL *exists); + + void (STDMETHODCALLTYPE *ReleaseFontTable)( + IDWriteFontFace6 *This, + void *table_context); + + HRESULT (STDMETHODCALLTYPE *GetGlyphRunOutline)( + IDWriteFontFace6 *This, + FLOAT emSize, + const UINT16 *glyph_indices, + const FLOAT *glyph_advances, + const DWRITE_GLYPH_OFFSET *glyph_offsets, + UINT32 glyph_count, + WINBOOL is_sideways, + WINBOOL is_rtl, + IDWriteGeometrySink *geometrysink); + + HRESULT (STDMETHODCALLTYPE *GetRecommendedRenderingMode)( + IDWriteFontFace6 *This, + FLOAT emSize, + FLOAT pixels_per_dip, + DWRITE_MEASURING_MODE mode, + IDWriteRenderingParams *params, + DWRITE_RENDERING_MODE *rendering_mode); + + HRESULT (STDMETHODCALLTYPE *GetGdiCompatibleMetrics)( + IDWriteFontFace6 *This, + FLOAT emSize, + FLOAT pixels_per_dip, + const DWRITE_MATRIX *transform, + DWRITE_FONT_METRICS *metrics); + + HRESULT (STDMETHODCALLTYPE *GetGdiCompatibleGlyphMetrics)( + IDWriteFontFace6 *This, + FLOAT emSize, + FLOAT pixels_per_dip, + const DWRITE_MATRIX *transform, + WINBOOL use_gdi_natural, + const UINT16 *glyph_indices, + UINT32 glyph_count, + DWRITE_GLYPH_METRICS *metrics, + WINBOOL is_sideways); + + /*** IDWriteFontFace1 methods ***/ + void (STDMETHODCALLTYPE *IDWriteFontFace1_GetMetrics)( + IDWriteFontFace6 *This, + DWRITE_FONT_METRICS1 *metrics); + + HRESULT (STDMETHODCALLTYPE *IDWriteFontFace1_GetGdiCompatibleMetrics)( + IDWriteFontFace6 *This, + FLOAT em_size, + FLOAT pixels_per_dip, + const DWRITE_MATRIX *transform, + DWRITE_FONT_METRICS1 *metrics); + + void (STDMETHODCALLTYPE *GetCaretMetrics)( + IDWriteFontFace6 *This, + DWRITE_CARET_METRICS *metrics); + + HRESULT (STDMETHODCALLTYPE *GetUnicodeRanges)( + IDWriteFontFace6 *This, + UINT32 max_count, + DWRITE_UNICODE_RANGE *ranges, + UINT32 *count); + + WINBOOL (STDMETHODCALLTYPE *IsMonospacedFont)( + IDWriteFontFace6 *This); + + HRESULT (STDMETHODCALLTYPE *GetDesignGlyphAdvances)( + IDWriteFontFace6 *This, + UINT32 glyph_count, + const UINT16 *indices, + INT32 *advances, + WINBOOL is_sideways); + + HRESULT (STDMETHODCALLTYPE *GetGdiCompatibleGlyphAdvances)( + IDWriteFontFace6 *This, + FLOAT em_size, + FLOAT pixels_per_dip, + const DWRITE_MATRIX *transform, + WINBOOL use_gdi_natural, + WINBOOL is_sideways, + UINT32 glyph_count, + const UINT16 *indices, + INT32 *advances); + + HRESULT (STDMETHODCALLTYPE *GetKerningPairAdjustments)( + IDWriteFontFace6 *This, + UINT32 glyph_count, + const UINT16 *indices, + INT32 *adjustments); + + WINBOOL (STDMETHODCALLTYPE *HasKerningPairs)( + IDWriteFontFace6 *This); + + HRESULT (STDMETHODCALLTYPE *IDWriteFontFace1_GetRecommendedRenderingMode)( + IDWriteFontFace6 *This, + FLOAT font_emsize, + FLOAT dpiX, + FLOAT dpiY, + const DWRITE_MATRIX *transform, + WINBOOL is_sideways, + DWRITE_OUTLINE_THRESHOLD threshold, + DWRITE_MEASURING_MODE measuring_mode, + DWRITE_RENDERING_MODE *rendering_mode); + + HRESULT (STDMETHODCALLTYPE *GetVerticalGlyphVariants)( + IDWriteFontFace6 *This, + UINT32 glyph_count, + const UINT16 *nominal_indices, + UINT16 *vertical_indices); + + WINBOOL (STDMETHODCALLTYPE *HasVerticalGlyphVariants)( + IDWriteFontFace6 *This); + + /*** IDWriteFontFace2 methods ***/ + WINBOOL (STDMETHODCALLTYPE *IsColorFont)( + IDWriteFontFace6 *This); + + UINT32 (STDMETHODCALLTYPE *GetColorPaletteCount)( + IDWriteFontFace6 *This); + + UINT32 (STDMETHODCALLTYPE *GetPaletteEntryCount)( + IDWriteFontFace6 *This); + + HRESULT (STDMETHODCALLTYPE *GetPaletteEntries)( + IDWriteFontFace6 *This, + UINT32 palette_index, + UINT32 first_entry_index, + UINT32 entry_count, + DWRITE_COLOR_F *entries); + + HRESULT (STDMETHODCALLTYPE *IDWriteFontFace2_GetRecommendedRenderingMode)( + IDWriteFontFace6 *This, + FLOAT fontEmSize, + FLOAT dpiX, + FLOAT dpiY, + const DWRITE_MATRIX *transform, + WINBOOL is_sideways, + DWRITE_OUTLINE_THRESHOLD threshold, + DWRITE_MEASURING_MODE measuringmode, + IDWriteRenderingParams *params, + DWRITE_RENDERING_MODE *renderingmode, + DWRITE_GRID_FIT_MODE *gridfitmode); + + /*** IDWriteFontFace3 methods ***/ + HRESULT (STDMETHODCALLTYPE *GetFontFaceReference)( + IDWriteFontFace6 *This, + IDWriteFontFaceReference **reference); + + void (STDMETHODCALLTYPE *GetPanose)( + IDWriteFontFace6 *This, + DWRITE_PANOSE *panose); + + DWRITE_FONT_WEIGHT (STDMETHODCALLTYPE *GetWeight)( + IDWriteFontFace6 *This); + + DWRITE_FONT_STRETCH (STDMETHODCALLTYPE *GetStretch)( + IDWriteFontFace6 *This); + + DWRITE_FONT_STYLE (STDMETHODCALLTYPE *GetStyle)( + IDWriteFontFace6 *This); + + HRESULT (STDMETHODCALLTYPE *GetFamilyNames)( + IDWriteFontFace6 *This, + IDWriteLocalizedStrings **names); + + HRESULT (STDMETHODCALLTYPE *GetFaceNames)( + IDWriteFontFace6 *This, + IDWriteLocalizedStrings **names); + + HRESULT (STDMETHODCALLTYPE *GetInformationalStrings)( + IDWriteFontFace6 *This, + DWRITE_INFORMATIONAL_STRING_ID stringid, + IDWriteLocalizedStrings **strings, + WINBOOL *exists); + + WINBOOL (STDMETHODCALLTYPE *HasCharacter)( + IDWriteFontFace6 *This, + UINT32 character); + + HRESULT (STDMETHODCALLTYPE *IDWriteFontFace3_GetRecommendedRenderingMode)( + IDWriteFontFace6 *This, + FLOAT emsize, + FLOAT dpi_x, + FLOAT dpi_y, + const DWRITE_MATRIX *transform, + WINBOOL is_sideways, + DWRITE_OUTLINE_THRESHOLD threshold, + DWRITE_MEASURING_MODE measuring_mode, + IDWriteRenderingParams *params, + DWRITE_RENDERING_MODE1 *rendering_mode, + DWRITE_GRID_FIT_MODE *gridfit_mode); + + WINBOOL (STDMETHODCALLTYPE *IsCharacterLocal)( + IDWriteFontFace6 *This, + UINT32 character); + + WINBOOL (STDMETHODCALLTYPE *IsGlyphLocal)( + IDWriteFontFace6 *This, + UINT16 glyph); + + HRESULT (STDMETHODCALLTYPE *AreCharactersLocal)( + IDWriteFontFace6 *This, + const WCHAR *characters, + UINT32 count, + WINBOOL enqueue_if_not, + WINBOOL *are_local); + + HRESULT (STDMETHODCALLTYPE *AreGlyphsLocal)( + IDWriteFontFace6 *This, + const UINT16 *glyphs, + UINT32 count, + WINBOOL enqueue_if_not, + WINBOOL *are_local); + + /*** IDWriteFontFace4 methods ***/ + HRESULT (STDMETHODCALLTYPE *GetGlyphImageFormats_)( + IDWriteFontFace6 *This, + UINT16 glyph, + UINT32 ppem_first, + UINT32 ppem_last, + DWRITE_GLYPH_IMAGE_FORMATS *formats); + + DWRITE_GLYPH_IMAGE_FORMATS (STDMETHODCALLTYPE *GetGlyphImageFormats)( + IDWriteFontFace6 *This); + + HRESULT (STDMETHODCALLTYPE *GetGlyphImageData)( + IDWriteFontFace6 *This, + UINT16 glyph, + UINT32 ppem, + DWRITE_GLYPH_IMAGE_FORMATS format, + DWRITE_GLYPH_IMAGE_DATA *data, + void **context); + + void (STDMETHODCALLTYPE *ReleaseGlyphImageData)( + IDWriteFontFace6 *This, + void *context); + + /*** IDWriteFontFace5 methods ***/ + UINT32 (STDMETHODCALLTYPE *GetFontAxisValueCount)( + IDWriteFontFace6 *This); + + HRESULT (STDMETHODCALLTYPE *GetFontAxisValues)( + IDWriteFontFace6 *This, + DWRITE_FONT_AXIS_VALUE *values, + UINT32 value_count); + + WINBOOL (STDMETHODCALLTYPE *HasVariations)( + IDWriteFontFace6 *This); + + HRESULT (STDMETHODCALLTYPE *GetFontResource)( + IDWriteFontFace6 *This, + IDWriteFontResource **resource); + + WINBOOL (STDMETHODCALLTYPE *Equals)( + IDWriteFontFace6 *This, + IDWriteFontFace *fontface); + + /*** IDWriteFontFace6 methods ***/ + HRESULT (STDMETHODCALLTYPE *IDWriteFontFace6_GetFamilyNames)( + IDWriteFontFace6 *This, + DWRITE_FONT_FAMILY_MODEL font_family_model, + IDWriteLocalizedStrings **names); + + HRESULT (STDMETHODCALLTYPE *IDWriteFontFace6_GetFaceNames)( + IDWriteFontFace6 *This, + DWRITE_FONT_FAMILY_MODEL font_family_model, + IDWriteLocalizedStrings **names); + + END_INTERFACE +} IDWriteFontFace6Vtbl; + +interface IDWriteFontFace6 { + CONST_VTBL IDWriteFontFace6Vtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDWriteFontFace6_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteFontFace6_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDWriteFontFace6_Release(This) (This)->lpVtbl->Release(This) +/*** IDWriteFontFace methods ***/ +#define IDWriteFontFace6_GetType(This) (This)->lpVtbl->GetType(This) +#define IDWriteFontFace6_GetFiles(This,number_of_files,fontfiles) (This)->lpVtbl->GetFiles(This,number_of_files,fontfiles) +#define IDWriteFontFace6_GetIndex(This) (This)->lpVtbl->GetIndex(This) +#define IDWriteFontFace6_GetSimulations(This) (This)->lpVtbl->GetSimulations(This) +#define IDWriteFontFace6_IsSymbolFont(This) (This)->lpVtbl->IsSymbolFont(This) +#define IDWriteFontFace6_GetGlyphCount(This) (This)->lpVtbl->GetGlyphCount(This) +#define IDWriteFontFace6_GetDesignGlyphMetrics(This,glyph_indices,glyph_count,metrics,is_sideways) (This)->lpVtbl->GetDesignGlyphMetrics(This,glyph_indices,glyph_count,metrics,is_sideways) +#define IDWriteFontFace6_GetGlyphIndices(This,codepoints,count,glyph_indices) (This)->lpVtbl->GetGlyphIndices(This,codepoints,count,glyph_indices) +#define IDWriteFontFace6_TryGetFontTable(This,table_tag,table_data,table_size,context,exists) (This)->lpVtbl->TryGetFontTable(This,table_tag,table_data,table_size,context,exists) +#define IDWriteFontFace6_ReleaseFontTable(This,table_context) (This)->lpVtbl->ReleaseFontTable(This,table_context) +#define IDWriteFontFace6_GetGlyphRunOutline(This,emSize,glyph_indices,glyph_advances,glyph_offsets,glyph_count,is_sideways,is_rtl,geometrysink) (This)->lpVtbl->GetGlyphRunOutline(This,emSize,glyph_indices,glyph_advances,glyph_offsets,glyph_count,is_sideways,is_rtl,geometrysink) +#define IDWriteFontFace6_GetGdiCompatibleGlyphMetrics(This,emSize,pixels_per_dip,transform,use_gdi_natural,glyph_indices,glyph_count,metrics,is_sideways) (This)->lpVtbl->GetGdiCompatibleGlyphMetrics(This,emSize,pixels_per_dip,transform,use_gdi_natural,glyph_indices,glyph_count,metrics,is_sideways) +/*** IDWriteFontFace1 methods ***/ +#define IDWriteFontFace6_GetMetrics(This,metrics) (This)->lpVtbl->IDWriteFontFace1_GetMetrics(This,metrics) +#define IDWriteFontFace6_GetGdiCompatibleMetrics(This,em_size,pixels_per_dip,transform,metrics) (This)->lpVtbl->IDWriteFontFace1_GetGdiCompatibleMetrics(This,em_size,pixels_per_dip,transform,metrics) +#define IDWriteFontFace6_GetCaretMetrics(This,metrics) (This)->lpVtbl->GetCaretMetrics(This,metrics) +#define IDWriteFontFace6_GetUnicodeRanges(This,max_count,ranges,count) (This)->lpVtbl->GetUnicodeRanges(This,max_count,ranges,count) +#define IDWriteFontFace6_IsMonospacedFont(This) (This)->lpVtbl->IsMonospacedFont(This) +#define IDWriteFontFace6_GetDesignGlyphAdvances(This,glyph_count,indices,advances,is_sideways) (This)->lpVtbl->GetDesignGlyphAdvances(This,glyph_count,indices,advances,is_sideways) +#define IDWriteFontFace6_GetGdiCompatibleGlyphAdvances(This,em_size,pixels_per_dip,transform,use_gdi_natural,is_sideways,glyph_count,indices,advances) (This)->lpVtbl->GetGdiCompatibleGlyphAdvances(This,em_size,pixels_per_dip,transform,use_gdi_natural,is_sideways,glyph_count,indices,advances) +#define IDWriteFontFace6_GetKerningPairAdjustments(This,glyph_count,indices,adjustments) (This)->lpVtbl->GetKerningPairAdjustments(This,glyph_count,indices,adjustments) +#define IDWriteFontFace6_HasKerningPairs(This) (This)->lpVtbl->HasKerningPairs(This) +#define IDWriteFontFace6_GetVerticalGlyphVariants(This,glyph_count,nominal_indices,vertical_indices) (This)->lpVtbl->GetVerticalGlyphVariants(This,glyph_count,nominal_indices,vertical_indices) +#define IDWriteFontFace6_HasVerticalGlyphVariants(This) (This)->lpVtbl->HasVerticalGlyphVariants(This) +/*** IDWriteFontFace2 methods ***/ +#define IDWriteFontFace6_IsColorFont(This) (This)->lpVtbl->IsColorFont(This) +#define IDWriteFontFace6_GetColorPaletteCount(This) (This)->lpVtbl->GetColorPaletteCount(This) +#define IDWriteFontFace6_GetPaletteEntryCount(This) (This)->lpVtbl->GetPaletteEntryCount(This) +#define IDWriteFontFace6_GetPaletteEntries(This,palette_index,first_entry_index,entry_count,entries) (This)->lpVtbl->GetPaletteEntries(This,palette_index,first_entry_index,entry_count,entries) +/*** IDWriteFontFace3 methods ***/ +#define IDWriteFontFace6_GetFontFaceReference(This,reference) (This)->lpVtbl->GetFontFaceReference(This,reference) +#define IDWriteFontFace6_GetPanose(This,panose) (This)->lpVtbl->GetPanose(This,panose) +#define IDWriteFontFace6_GetWeight(This) (This)->lpVtbl->GetWeight(This) +#define IDWriteFontFace6_GetStretch(This) (This)->lpVtbl->GetStretch(This) +#define IDWriteFontFace6_GetStyle(This) (This)->lpVtbl->GetStyle(This) +#define IDWriteFontFace6_GetInformationalStrings(This,stringid,strings,exists) (This)->lpVtbl->GetInformationalStrings(This,stringid,strings,exists) +#define IDWriteFontFace6_HasCharacter(This,character) (This)->lpVtbl->HasCharacter(This,character) +#define IDWriteFontFace6_GetRecommendedRenderingMode(This,emsize,dpi_x,dpi_y,transform,is_sideways,threshold,measuring_mode,params,rendering_mode,gridfit_mode) (This)->lpVtbl->IDWriteFontFace3_GetRecommendedRenderingMode(This,emsize,dpi_x,dpi_y,transform,is_sideways,threshold,measuring_mode,params,rendering_mode,gridfit_mode) +#define IDWriteFontFace6_IsCharacterLocal(This,character) (This)->lpVtbl->IsCharacterLocal(This,character) +#define IDWriteFontFace6_IsGlyphLocal(This,glyph) (This)->lpVtbl->IsGlyphLocal(This,glyph) +#define IDWriteFontFace6_AreCharactersLocal(This,characters,count,enqueue_if_not,are_local) (This)->lpVtbl->AreCharactersLocal(This,characters,count,enqueue_if_not,are_local) +#define IDWriteFontFace6_AreGlyphsLocal(This,glyphs,count,enqueue_if_not,are_local) (This)->lpVtbl->AreGlyphsLocal(This,glyphs,count,enqueue_if_not,are_local) +/*** IDWriteFontFace4 methods ***/ +#define IDWriteFontFace6_GetGlyphImageFormats_(This,glyph,ppem_first,ppem_last,formats) (This)->lpVtbl->GetGlyphImageFormats_(This,glyph,ppem_first,ppem_last,formats) +#define IDWriteFontFace6_GetGlyphImageFormats(This) (This)->lpVtbl->GetGlyphImageFormats(This) +#define IDWriteFontFace6_GetGlyphImageData(This,glyph,ppem,format,data,context) (This)->lpVtbl->GetGlyphImageData(This,glyph,ppem,format,data,context) +#define IDWriteFontFace6_ReleaseGlyphImageData(This,context) (This)->lpVtbl->ReleaseGlyphImageData(This,context) +/*** IDWriteFontFace5 methods ***/ +#define IDWriteFontFace6_GetFontAxisValueCount(This) (This)->lpVtbl->GetFontAxisValueCount(This) +#define IDWriteFontFace6_GetFontAxisValues(This,values,value_count) (This)->lpVtbl->GetFontAxisValues(This,values,value_count) +#define IDWriteFontFace6_HasVariations(This) (This)->lpVtbl->HasVariations(This) +#define IDWriteFontFace6_GetFontResource(This,resource) (This)->lpVtbl->GetFontResource(This,resource) +#define IDWriteFontFace6_Equals(This,fontface) (This)->lpVtbl->Equals(This,fontface) +/*** IDWriteFontFace6 methods ***/ +#define IDWriteFontFace6_GetFamilyNames(This,font_family_model,names) (This)->lpVtbl->IDWriteFontFace6_GetFamilyNames(This,font_family_model,names) +#define IDWriteFontFace6_GetFaceNames(This,font_family_model,names) (This)->lpVtbl->IDWriteFontFace6_GetFaceNames(This,font_family_model,names) +#else +/*** IUnknown methods ***/ +static inline HRESULT IDWriteFontFace6_QueryInterface(IDWriteFontFace6* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static inline ULONG IDWriteFontFace6_AddRef(IDWriteFontFace6* This) { + return This->lpVtbl->AddRef(This); +} +static inline ULONG IDWriteFontFace6_Release(IDWriteFontFace6* This) { + return This->lpVtbl->Release(This); +} +/*** IDWriteFontFace methods ***/ +static inline DWRITE_FONT_FACE_TYPE IDWriteFontFace6_GetType(IDWriteFontFace6* This) { + return This->lpVtbl->GetType(This); +} +static inline HRESULT IDWriteFontFace6_GetFiles(IDWriteFontFace6* This,UINT32 *number_of_files,IDWriteFontFile **fontfiles) { + return This->lpVtbl->GetFiles(This,number_of_files,fontfiles); +} +static inline UINT32 IDWriteFontFace6_GetIndex(IDWriteFontFace6* This) { + return This->lpVtbl->GetIndex(This); +} +static inline DWRITE_FONT_SIMULATIONS IDWriteFontFace6_GetSimulations(IDWriteFontFace6* This) { + return This->lpVtbl->GetSimulations(This); +} +static inline WINBOOL IDWriteFontFace6_IsSymbolFont(IDWriteFontFace6* This) { + return This->lpVtbl->IsSymbolFont(This); +} +static inline UINT16 IDWriteFontFace6_GetGlyphCount(IDWriteFontFace6* This) { + return This->lpVtbl->GetGlyphCount(This); +} +static inline HRESULT IDWriteFontFace6_GetDesignGlyphMetrics(IDWriteFontFace6* This,const UINT16 *glyph_indices,UINT32 glyph_count,DWRITE_GLYPH_METRICS *metrics,WINBOOL is_sideways) { + return This->lpVtbl->GetDesignGlyphMetrics(This,glyph_indices,glyph_count,metrics,is_sideways); +} +static inline HRESULT IDWriteFontFace6_GetGlyphIndices(IDWriteFontFace6* This,const UINT32 *codepoints,UINT32 count,UINT16 *glyph_indices) { + return This->lpVtbl->GetGlyphIndices(This,codepoints,count,glyph_indices); +} +static inline HRESULT IDWriteFontFace6_TryGetFontTable(IDWriteFontFace6* This,UINT32 table_tag,const void **table_data,UINT32 *table_size,void **context,WINBOOL *exists) { + return This->lpVtbl->TryGetFontTable(This,table_tag,table_data,table_size,context,exists); +} +static inline void IDWriteFontFace6_ReleaseFontTable(IDWriteFontFace6* This,void *table_context) { + This->lpVtbl->ReleaseFontTable(This,table_context); +} +static inline HRESULT IDWriteFontFace6_GetGlyphRunOutline(IDWriteFontFace6* This,FLOAT emSize,const UINT16 *glyph_indices,const FLOAT *glyph_advances,const DWRITE_GLYPH_OFFSET *glyph_offsets,UINT32 glyph_count,WINBOOL is_sideways,WINBOOL is_rtl,IDWriteGeometrySink *geometrysink) { + return This->lpVtbl->GetGlyphRunOutline(This,emSize,glyph_indices,glyph_advances,glyph_offsets,glyph_count,is_sideways,is_rtl,geometrysink); +} +static inline HRESULT IDWriteFontFace6_GetGdiCompatibleGlyphMetrics(IDWriteFontFace6* This,FLOAT emSize,FLOAT pixels_per_dip,const DWRITE_MATRIX *transform,WINBOOL use_gdi_natural,const UINT16 *glyph_indices,UINT32 glyph_count,DWRITE_GLYPH_METRICS *metrics,WINBOOL is_sideways) { + return This->lpVtbl->GetGdiCompatibleGlyphMetrics(This,emSize,pixels_per_dip,transform,use_gdi_natural,glyph_indices,glyph_count,metrics,is_sideways); +} +/*** IDWriteFontFace1 methods ***/ +static inline void IDWriteFontFace6_GetMetrics(IDWriteFontFace6* This,DWRITE_FONT_METRICS1 *metrics) { + This->lpVtbl->IDWriteFontFace1_GetMetrics(This,metrics); +} +static inline HRESULT IDWriteFontFace6_GetGdiCompatibleMetrics(IDWriteFontFace6* This,FLOAT em_size,FLOAT pixels_per_dip,const DWRITE_MATRIX *transform,DWRITE_FONT_METRICS1 *metrics) { + return This->lpVtbl->IDWriteFontFace1_GetGdiCompatibleMetrics(This,em_size,pixels_per_dip,transform,metrics); +} +static inline void IDWriteFontFace6_GetCaretMetrics(IDWriteFontFace6* This,DWRITE_CARET_METRICS *metrics) { + This->lpVtbl->GetCaretMetrics(This,metrics); +} +static inline HRESULT IDWriteFontFace6_GetUnicodeRanges(IDWriteFontFace6* This,UINT32 max_count,DWRITE_UNICODE_RANGE *ranges,UINT32 *count) { + return This->lpVtbl->GetUnicodeRanges(This,max_count,ranges,count); +} +static inline WINBOOL IDWriteFontFace6_IsMonospacedFont(IDWriteFontFace6* This) { + return This->lpVtbl->IsMonospacedFont(This); +} +static inline HRESULT IDWriteFontFace6_GetDesignGlyphAdvances(IDWriteFontFace6* This,UINT32 glyph_count,const UINT16 *indices,INT32 *advances,WINBOOL is_sideways) { + return This->lpVtbl->GetDesignGlyphAdvances(This,glyph_count,indices,advances,is_sideways); +} +static inline HRESULT IDWriteFontFace6_GetGdiCompatibleGlyphAdvances(IDWriteFontFace6* This,FLOAT em_size,FLOAT pixels_per_dip,const DWRITE_MATRIX *transform,WINBOOL use_gdi_natural,WINBOOL is_sideways,UINT32 glyph_count,const UINT16 *indices,INT32 *advances) { + return This->lpVtbl->GetGdiCompatibleGlyphAdvances(This,em_size,pixels_per_dip,transform,use_gdi_natural,is_sideways,glyph_count,indices,advances); +} +static inline HRESULT IDWriteFontFace6_GetKerningPairAdjustments(IDWriteFontFace6* This,UINT32 glyph_count,const UINT16 *indices,INT32 *adjustments) { + return This->lpVtbl->GetKerningPairAdjustments(This,glyph_count,indices,adjustments); +} +static inline WINBOOL IDWriteFontFace6_HasKerningPairs(IDWriteFontFace6* This) { + return This->lpVtbl->HasKerningPairs(This); +} +static inline HRESULT IDWriteFontFace6_GetVerticalGlyphVariants(IDWriteFontFace6* This,UINT32 glyph_count,const UINT16 *nominal_indices,UINT16 *vertical_indices) { + return This->lpVtbl->GetVerticalGlyphVariants(This,glyph_count,nominal_indices,vertical_indices); +} +static inline WINBOOL IDWriteFontFace6_HasVerticalGlyphVariants(IDWriteFontFace6* This) { + return This->lpVtbl->HasVerticalGlyphVariants(This); +} +/*** IDWriteFontFace2 methods ***/ +static inline WINBOOL IDWriteFontFace6_IsColorFont(IDWriteFontFace6* This) { + return This->lpVtbl->IsColorFont(This); +} +static inline UINT32 IDWriteFontFace6_GetColorPaletteCount(IDWriteFontFace6* This) { + return This->lpVtbl->GetColorPaletteCount(This); +} +static inline UINT32 IDWriteFontFace6_GetPaletteEntryCount(IDWriteFontFace6* This) { + return This->lpVtbl->GetPaletteEntryCount(This); +} +static inline HRESULT IDWriteFontFace6_GetPaletteEntries(IDWriteFontFace6* This,UINT32 palette_index,UINT32 first_entry_index,UINT32 entry_count,DWRITE_COLOR_F *entries) { + return This->lpVtbl->GetPaletteEntries(This,palette_index,first_entry_index,entry_count,entries); +} +/*** IDWriteFontFace3 methods ***/ +static inline HRESULT IDWriteFontFace6_GetFontFaceReference(IDWriteFontFace6* This,IDWriteFontFaceReference **reference) { + return This->lpVtbl->GetFontFaceReference(This,reference); +} +static inline void IDWriteFontFace6_GetPanose(IDWriteFontFace6* This,DWRITE_PANOSE *panose) { + This->lpVtbl->GetPanose(This,panose); +} +static inline DWRITE_FONT_WEIGHT IDWriteFontFace6_GetWeight(IDWriteFontFace6* This) { + return This->lpVtbl->GetWeight(This); +} +static inline DWRITE_FONT_STRETCH IDWriteFontFace6_GetStretch(IDWriteFontFace6* This) { + return This->lpVtbl->GetStretch(This); +} +static inline DWRITE_FONT_STYLE IDWriteFontFace6_GetStyle(IDWriteFontFace6* This) { + return This->lpVtbl->GetStyle(This); +} +static inline HRESULT IDWriteFontFace6_GetInformationalStrings(IDWriteFontFace6* This,DWRITE_INFORMATIONAL_STRING_ID stringid,IDWriteLocalizedStrings **strings,WINBOOL *exists) { + return This->lpVtbl->GetInformationalStrings(This,stringid,strings,exists); +} +static inline WINBOOL IDWriteFontFace6_HasCharacter(IDWriteFontFace6* This,UINT32 character) { + return This->lpVtbl->HasCharacter(This,character); +} +static inline HRESULT IDWriteFontFace6_GetRecommendedRenderingMode(IDWriteFontFace6* This,FLOAT emsize,FLOAT dpi_x,FLOAT dpi_y,const DWRITE_MATRIX *transform,WINBOOL is_sideways,DWRITE_OUTLINE_THRESHOLD threshold,DWRITE_MEASURING_MODE measuring_mode,IDWriteRenderingParams *params,DWRITE_RENDERING_MODE1 *rendering_mode,DWRITE_GRID_FIT_MODE *gridfit_mode) { + return This->lpVtbl->IDWriteFontFace3_GetRecommendedRenderingMode(This,emsize,dpi_x,dpi_y,transform,is_sideways,threshold,measuring_mode,params,rendering_mode,gridfit_mode); +} +static inline WINBOOL IDWriteFontFace6_IsCharacterLocal(IDWriteFontFace6* This,UINT32 character) { + return This->lpVtbl->IsCharacterLocal(This,character); +} +static inline WINBOOL IDWriteFontFace6_IsGlyphLocal(IDWriteFontFace6* This,UINT16 glyph) { + return This->lpVtbl->IsGlyphLocal(This,glyph); +} +static inline HRESULT IDWriteFontFace6_AreCharactersLocal(IDWriteFontFace6* This,const WCHAR *characters,UINT32 count,WINBOOL enqueue_if_not,WINBOOL *are_local) { + return This->lpVtbl->AreCharactersLocal(This,characters,count,enqueue_if_not,are_local); +} +static inline HRESULT IDWriteFontFace6_AreGlyphsLocal(IDWriteFontFace6* This,const UINT16 *glyphs,UINT32 count,WINBOOL enqueue_if_not,WINBOOL *are_local) { + return This->lpVtbl->AreGlyphsLocal(This,glyphs,count,enqueue_if_not,are_local); +} +/*** IDWriteFontFace4 methods ***/ +static inline HRESULT IDWriteFontFace6_GetGlyphImageFormats_(IDWriteFontFace6* This,UINT16 glyph,UINT32 ppem_first,UINT32 ppem_last,DWRITE_GLYPH_IMAGE_FORMATS *formats) { + return This->lpVtbl->GetGlyphImageFormats_(This,glyph,ppem_first,ppem_last,formats); +} +static inline DWRITE_GLYPH_IMAGE_FORMATS IDWriteFontFace6_GetGlyphImageFormats(IDWriteFontFace6* This) { + return This->lpVtbl->GetGlyphImageFormats(This); +} +static inline HRESULT IDWriteFontFace6_GetGlyphImageData(IDWriteFontFace6* This,UINT16 glyph,UINT32 ppem,DWRITE_GLYPH_IMAGE_FORMATS format,DWRITE_GLYPH_IMAGE_DATA *data,void **context) { + return This->lpVtbl->GetGlyphImageData(This,glyph,ppem,format,data,context); +} +static inline void IDWriteFontFace6_ReleaseGlyphImageData(IDWriteFontFace6* This,void *context) { + This->lpVtbl->ReleaseGlyphImageData(This,context); +} +/*** IDWriteFontFace5 methods ***/ +static inline UINT32 IDWriteFontFace6_GetFontAxisValueCount(IDWriteFontFace6* This) { + return This->lpVtbl->GetFontAxisValueCount(This); +} +static inline HRESULT IDWriteFontFace6_GetFontAxisValues(IDWriteFontFace6* This,DWRITE_FONT_AXIS_VALUE *values,UINT32 value_count) { + return This->lpVtbl->GetFontAxisValues(This,values,value_count); +} +static inline WINBOOL IDWriteFontFace6_HasVariations(IDWriteFontFace6* This) { + return This->lpVtbl->HasVariations(This); +} +static inline HRESULT IDWriteFontFace6_GetFontResource(IDWriteFontFace6* This,IDWriteFontResource **resource) { + return This->lpVtbl->GetFontResource(This,resource); +} +static inline WINBOOL IDWriteFontFace6_Equals(IDWriteFontFace6* This,IDWriteFontFace *fontface) { + return This->lpVtbl->Equals(This,fontface); +} +/*** IDWriteFontFace6 methods ***/ +static inline HRESULT IDWriteFontFace6_GetFamilyNames(IDWriteFontFace6* This,DWRITE_FONT_FAMILY_MODEL font_family_model,IDWriteLocalizedStrings **names) { + return This->lpVtbl->IDWriteFontFace6_GetFamilyNames(This,font_family_model,names); +} +static inline HRESULT IDWriteFontFace6_GetFaceNames(IDWriteFontFace6* This,DWRITE_FONT_FAMILY_MODEL font_family_model,IDWriteLocalizedStrings **names) { + return This->lpVtbl->IDWriteFontFace6_GetFaceNames(This,font_family_model,names); +} +#endif +#endif + +#endif + + +#endif /* __IDWriteFontFace6_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IDWritePaintReader interface + */ +#ifndef __IDWritePaintReader_INTERFACE_DEFINED__ +#define __IDWritePaintReader_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDWritePaintReader, 0x8128e912, 0x3b97, 0x42a5, 0xab,0x6c, 0x24,0xaa,0xd3,0xa8,0x6e,0x54); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("8128e912-3b97-42a5-ab6c-24aad3a86e54") +IDWritePaintReader : public IUnknown +{ + virtual HRESULT STDMETHODCALLTYPE SetCurrentGlyph( + UINT32 glyph_index, + DWRITE_PAINT_ELEMENT *paint_element, + UINT32 struct_size, + D2D_RECT_F *clip_box, + DWRITE_PAINT_ATTRIBUTES *glyph_attributes = 0) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetTextColor( + const DWRITE_COLOR_F *text_color) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetColorPaletteIndex( + UINT32 color_palette_index) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetCustomColorPalette( + const DWRITE_COLOR_F *palette_entries, + UINT32 palette_entry_count) = 0; + + virtual HRESULT STDMETHODCALLTYPE MoveToFirstChild( + DWRITE_PAINT_ELEMENT *paint_element, + UINT32 struct_size) = 0; + + virtual HRESULT STDMETHODCALLTYPE MoveToNextSibling( + DWRITE_PAINT_ELEMENT *paint_element, + UINT32 struct_size) = 0; + + virtual HRESULT STDMETHODCALLTYPE MoveToParent( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetGradientStops( + UINT32 first_gradient_stop_index, + UINT32 gradient_stop_count, + D2D1_GRADIENT_STOP *gradient_stops) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetGradientStopColors( + UINT32 first_gradient_stop_index, + UINT32 gradient_stop_count, + DWRITE_PAINT_COLOR *gradient_stop_colors) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDWritePaintReader, 0x8128e912, 0x3b97, 0x42a5, 0xab,0x6c, 0x24,0xaa,0xd3,0xa8,0x6e,0x54) +#endif +#else +typedef struct IDWritePaintReaderVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDWritePaintReader *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDWritePaintReader *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDWritePaintReader *This); + + /*** IDWritePaintReader methods ***/ + HRESULT (STDMETHODCALLTYPE *SetCurrentGlyph)( + IDWritePaintReader *This, + UINT32 glyph_index, + DWRITE_PAINT_ELEMENT *paint_element, + UINT32 struct_size, + D2D_RECT_F *clip_box, + DWRITE_PAINT_ATTRIBUTES *glyph_attributes); + + HRESULT (STDMETHODCALLTYPE *SetTextColor)( + IDWritePaintReader *This, + const DWRITE_COLOR_F *text_color); + + HRESULT (STDMETHODCALLTYPE *SetColorPaletteIndex)( + IDWritePaintReader *This, + UINT32 color_palette_index); + + HRESULT (STDMETHODCALLTYPE *SetCustomColorPalette)( + IDWritePaintReader *This, + const DWRITE_COLOR_F *palette_entries, + UINT32 palette_entry_count); + + HRESULT (STDMETHODCALLTYPE *MoveToFirstChild)( + IDWritePaintReader *This, + DWRITE_PAINT_ELEMENT *paint_element, + UINT32 struct_size); + + HRESULT (STDMETHODCALLTYPE *MoveToNextSibling)( + IDWritePaintReader *This, + DWRITE_PAINT_ELEMENT *paint_element, + UINT32 struct_size); + + HRESULT (STDMETHODCALLTYPE *MoveToParent)( + IDWritePaintReader *This); + + HRESULT (STDMETHODCALLTYPE *GetGradientStops)( + IDWritePaintReader *This, + UINT32 first_gradient_stop_index, + UINT32 gradient_stop_count, + D2D1_GRADIENT_STOP *gradient_stops); + + HRESULT (STDMETHODCALLTYPE *GetGradientStopColors)( + IDWritePaintReader *This, + UINT32 first_gradient_stop_index, + UINT32 gradient_stop_count, + DWRITE_PAINT_COLOR *gradient_stop_colors); + + END_INTERFACE +} IDWritePaintReaderVtbl; + +interface IDWritePaintReader { + CONST_VTBL IDWritePaintReaderVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDWritePaintReader_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWritePaintReader_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDWritePaintReader_Release(This) (This)->lpVtbl->Release(This) +/*** IDWritePaintReader methods ***/ +#define IDWritePaintReader_SetCurrentGlyph(This,glyph_index,paint_element,struct_size,clip_box,glyph_attributes) (This)->lpVtbl->SetCurrentGlyph(This,glyph_index,paint_element,struct_size,clip_box,glyph_attributes) +#define IDWritePaintReader_SetTextColor(This,text_color) (This)->lpVtbl->SetTextColor(This,text_color) +#define IDWritePaintReader_SetColorPaletteIndex(This,color_palette_index) (This)->lpVtbl->SetColorPaletteIndex(This,color_palette_index) +#define IDWritePaintReader_SetCustomColorPalette(This,palette_entries,palette_entry_count) (This)->lpVtbl->SetCustomColorPalette(This,palette_entries,palette_entry_count) +#define IDWritePaintReader_MoveToFirstChild(This,paint_element,struct_size) (This)->lpVtbl->MoveToFirstChild(This,paint_element,struct_size) +#define IDWritePaintReader_MoveToNextSibling(This,paint_element,struct_size) (This)->lpVtbl->MoveToNextSibling(This,paint_element,struct_size) +#define IDWritePaintReader_MoveToParent(This) (This)->lpVtbl->MoveToParent(This) +#define IDWritePaintReader_GetGradientStops(This,first_gradient_stop_index,gradient_stop_count,gradient_stops) (This)->lpVtbl->GetGradientStops(This,first_gradient_stop_index,gradient_stop_count,gradient_stops) +#define IDWritePaintReader_GetGradientStopColors(This,first_gradient_stop_index,gradient_stop_count,gradient_stop_colors) (This)->lpVtbl->GetGradientStopColors(This,first_gradient_stop_index,gradient_stop_count,gradient_stop_colors) +#else +/*** IUnknown methods ***/ +static inline HRESULT IDWritePaintReader_QueryInterface(IDWritePaintReader* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static inline ULONG IDWritePaintReader_AddRef(IDWritePaintReader* This) { + return This->lpVtbl->AddRef(This); +} +static inline ULONG IDWritePaintReader_Release(IDWritePaintReader* This) { + return This->lpVtbl->Release(This); +} +/*** IDWritePaintReader methods ***/ +static inline HRESULT IDWritePaintReader_SetCurrentGlyph(IDWritePaintReader* This,UINT32 glyph_index,DWRITE_PAINT_ELEMENT *paint_element,UINT32 struct_size,D2D_RECT_F *clip_box,DWRITE_PAINT_ATTRIBUTES *glyph_attributes) { + return This->lpVtbl->SetCurrentGlyph(This,glyph_index,paint_element,struct_size,clip_box,glyph_attributes); +} +static inline HRESULT IDWritePaintReader_SetTextColor(IDWritePaintReader* This,const DWRITE_COLOR_F *text_color) { + return This->lpVtbl->SetTextColor(This,text_color); +} +static inline HRESULT IDWritePaintReader_SetColorPaletteIndex(IDWritePaintReader* This,UINT32 color_palette_index) { + return This->lpVtbl->SetColorPaletteIndex(This,color_palette_index); +} +static inline HRESULT IDWritePaintReader_SetCustomColorPalette(IDWritePaintReader* This,const DWRITE_COLOR_F *palette_entries,UINT32 palette_entry_count) { + return This->lpVtbl->SetCustomColorPalette(This,palette_entries,palette_entry_count); +} +static inline HRESULT IDWritePaintReader_MoveToFirstChild(IDWritePaintReader* This,DWRITE_PAINT_ELEMENT *paint_element,UINT32 struct_size) { + return This->lpVtbl->MoveToFirstChild(This,paint_element,struct_size); +} +static inline HRESULT IDWritePaintReader_MoveToNextSibling(IDWritePaintReader* This,DWRITE_PAINT_ELEMENT *paint_element,UINT32 struct_size) { + return This->lpVtbl->MoveToNextSibling(This,paint_element,struct_size); +} +static inline HRESULT IDWritePaintReader_MoveToParent(IDWritePaintReader* This) { + return This->lpVtbl->MoveToParent(This); +} +static inline HRESULT IDWritePaintReader_GetGradientStops(IDWritePaintReader* This,UINT32 first_gradient_stop_index,UINT32 gradient_stop_count,D2D1_GRADIENT_STOP *gradient_stops) { + return This->lpVtbl->GetGradientStops(This,first_gradient_stop_index,gradient_stop_count,gradient_stops); +} +static inline HRESULT IDWritePaintReader_GetGradientStopColors(IDWritePaintReader* This,UINT32 first_gradient_stop_index,UINT32 gradient_stop_count,DWRITE_PAINT_COLOR *gradient_stop_colors) { + return This->lpVtbl->GetGradientStopColors(This,first_gradient_stop_index,gradient_stop_count,gradient_stop_colors); +} +#endif +#endif + +#endif + + +#endif /* __IDWritePaintReader_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IDWriteFontFace7 interface + */ +#ifndef __IDWriteFontFace7_INTERFACE_DEFINED__ +#define __IDWriteFontFace7_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDWriteFontFace7, 0x3945b85b, 0xbc95, 0x40f7, 0xb7,0x2c, 0x8b,0x73,0xbf,0xc7,0xe1,0x3b); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("3945b85b-bc95-40f7-b72c-8b73bfc7e13b") +IDWriteFontFace7 : public IDWriteFontFace6 +{ + virtual DWRITE_PAINT_FEATURE_LEVEL STDMETHODCALLTYPE GetPaintFeatureLevel( + DWRITE_GLYPH_IMAGE_FORMATS glyph_image_format) = 0; + + virtual HRESULT STDMETHODCALLTYPE CreatePaintReader( + DWRITE_GLYPH_IMAGE_FORMATS glyph_image_format, + DWRITE_PAINT_FEATURE_LEVEL paint_feature_level, + IDWritePaintReader **paint_reader) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDWriteFontFace7, 0x3945b85b, 0xbc95, 0x40f7, 0xb7,0x2c, 0x8b,0x73,0xbf,0xc7,0xe1,0x3b) +#endif +#else +typedef struct IDWriteFontFace7Vtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDWriteFontFace7 *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDWriteFontFace7 *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDWriteFontFace7 *This); + + /*** IDWriteFontFace methods ***/ + DWRITE_FONT_FACE_TYPE (STDMETHODCALLTYPE *GetType)( + IDWriteFontFace7 *This); + + HRESULT (STDMETHODCALLTYPE *GetFiles)( + IDWriteFontFace7 *This, + UINT32 *number_of_files, + IDWriteFontFile **fontfiles); + + UINT32 (STDMETHODCALLTYPE *GetIndex)( + IDWriteFontFace7 *This); + + DWRITE_FONT_SIMULATIONS (STDMETHODCALLTYPE *GetSimulations)( + IDWriteFontFace7 *This); + + WINBOOL (STDMETHODCALLTYPE *IsSymbolFont)( + IDWriteFontFace7 *This); + + void (STDMETHODCALLTYPE *GetMetrics)( + IDWriteFontFace7 *This, + DWRITE_FONT_METRICS *metrics); + + UINT16 (STDMETHODCALLTYPE *GetGlyphCount)( + IDWriteFontFace7 *This); + + HRESULT (STDMETHODCALLTYPE *GetDesignGlyphMetrics)( + IDWriteFontFace7 *This, + const UINT16 *glyph_indices, + UINT32 glyph_count, + DWRITE_GLYPH_METRICS *metrics, + WINBOOL is_sideways); + + HRESULT (STDMETHODCALLTYPE *GetGlyphIndices)( + IDWriteFontFace7 *This, + const UINT32 *codepoints, + UINT32 count, + UINT16 *glyph_indices); + + HRESULT (STDMETHODCALLTYPE *TryGetFontTable)( + IDWriteFontFace7 *This, + UINT32 table_tag, + const void **table_data, + UINT32 *table_size, + void **context, + WINBOOL *exists); + + void (STDMETHODCALLTYPE *ReleaseFontTable)( + IDWriteFontFace7 *This, + void *table_context); + + HRESULT (STDMETHODCALLTYPE *GetGlyphRunOutline)( + IDWriteFontFace7 *This, + FLOAT emSize, + const UINT16 *glyph_indices, + const FLOAT *glyph_advances, + const DWRITE_GLYPH_OFFSET *glyph_offsets, + UINT32 glyph_count, + WINBOOL is_sideways, + WINBOOL is_rtl, + IDWriteGeometrySink *geometrysink); + + HRESULT (STDMETHODCALLTYPE *GetRecommendedRenderingMode)( + IDWriteFontFace7 *This, + FLOAT emSize, + FLOAT pixels_per_dip, + DWRITE_MEASURING_MODE mode, + IDWriteRenderingParams *params, + DWRITE_RENDERING_MODE *rendering_mode); + + HRESULT (STDMETHODCALLTYPE *GetGdiCompatibleMetrics)( + IDWriteFontFace7 *This, + FLOAT emSize, + FLOAT pixels_per_dip, + const DWRITE_MATRIX *transform, + DWRITE_FONT_METRICS *metrics); + + HRESULT (STDMETHODCALLTYPE *GetGdiCompatibleGlyphMetrics)( + IDWriteFontFace7 *This, + FLOAT emSize, + FLOAT pixels_per_dip, + const DWRITE_MATRIX *transform, + WINBOOL use_gdi_natural, + const UINT16 *glyph_indices, + UINT32 glyph_count, + DWRITE_GLYPH_METRICS *metrics, + WINBOOL is_sideways); + + /*** IDWriteFontFace1 methods ***/ + void (STDMETHODCALLTYPE *IDWriteFontFace1_GetMetrics)( + IDWriteFontFace7 *This, + DWRITE_FONT_METRICS1 *metrics); + + HRESULT (STDMETHODCALLTYPE *IDWriteFontFace1_GetGdiCompatibleMetrics)( + IDWriteFontFace7 *This, + FLOAT em_size, + FLOAT pixels_per_dip, + const DWRITE_MATRIX *transform, + DWRITE_FONT_METRICS1 *metrics); + + void (STDMETHODCALLTYPE *GetCaretMetrics)( + IDWriteFontFace7 *This, + DWRITE_CARET_METRICS *metrics); + + HRESULT (STDMETHODCALLTYPE *GetUnicodeRanges)( + IDWriteFontFace7 *This, + UINT32 max_count, + DWRITE_UNICODE_RANGE *ranges, + UINT32 *count); + + WINBOOL (STDMETHODCALLTYPE *IsMonospacedFont)( + IDWriteFontFace7 *This); + + HRESULT (STDMETHODCALLTYPE *GetDesignGlyphAdvances)( + IDWriteFontFace7 *This, + UINT32 glyph_count, + const UINT16 *indices, + INT32 *advances, + WINBOOL is_sideways); + + HRESULT (STDMETHODCALLTYPE *GetGdiCompatibleGlyphAdvances)( + IDWriteFontFace7 *This, + FLOAT em_size, + FLOAT pixels_per_dip, + const DWRITE_MATRIX *transform, + WINBOOL use_gdi_natural, + WINBOOL is_sideways, + UINT32 glyph_count, + const UINT16 *indices, + INT32 *advances); + + HRESULT (STDMETHODCALLTYPE *GetKerningPairAdjustments)( + IDWriteFontFace7 *This, + UINT32 glyph_count, + const UINT16 *indices, + INT32 *adjustments); + + WINBOOL (STDMETHODCALLTYPE *HasKerningPairs)( + IDWriteFontFace7 *This); + + HRESULT (STDMETHODCALLTYPE *IDWriteFontFace1_GetRecommendedRenderingMode)( + IDWriteFontFace7 *This, + FLOAT font_emsize, + FLOAT dpiX, + FLOAT dpiY, + const DWRITE_MATRIX *transform, + WINBOOL is_sideways, + DWRITE_OUTLINE_THRESHOLD threshold, + DWRITE_MEASURING_MODE measuring_mode, + DWRITE_RENDERING_MODE *rendering_mode); + + HRESULT (STDMETHODCALLTYPE *GetVerticalGlyphVariants)( + IDWriteFontFace7 *This, + UINT32 glyph_count, + const UINT16 *nominal_indices, + UINT16 *vertical_indices); + + WINBOOL (STDMETHODCALLTYPE *HasVerticalGlyphVariants)( + IDWriteFontFace7 *This); + + /*** IDWriteFontFace2 methods ***/ + WINBOOL (STDMETHODCALLTYPE *IsColorFont)( + IDWriteFontFace7 *This); + + UINT32 (STDMETHODCALLTYPE *GetColorPaletteCount)( + IDWriteFontFace7 *This); + + UINT32 (STDMETHODCALLTYPE *GetPaletteEntryCount)( + IDWriteFontFace7 *This); + + HRESULT (STDMETHODCALLTYPE *GetPaletteEntries)( + IDWriteFontFace7 *This, + UINT32 palette_index, + UINT32 first_entry_index, + UINT32 entry_count, + DWRITE_COLOR_F *entries); + + HRESULT (STDMETHODCALLTYPE *IDWriteFontFace2_GetRecommendedRenderingMode)( + IDWriteFontFace7 *This, + FLOAT fontEmSize, + FLOAT dpiX, + FLOAT dpiY, + const DWRITE_MATRIX *transform, + WINBOOL is_sideways, + DWRITE_OUTLINE_THRESHOLD threshold, + DWRITE_MEASURING_MODE measuringmode, + IDWriteRenderingParams *params, + DWRITE_RENDERING_MODE *renderingmode, + DWRITE_GRID_FIT_MODE *gridfitmode); + + /*** IDWriteFontFace3 methods ***/ + HRESULT (STDMETHODCALLTYPE *GetFontFaceReference)( + IDWriteFontFace7 *This, + IDWriteFontFaceReference **reference); + + void (STDMETHODCALLTYPE *GetPanose)( + IDWriteFontFace7 *This, + DWRITE_PANOSE *panose); + + DWRITE_FONT_WEIGHT (STDMETHODCALLTYPE *GetWeight)( + IDWriteFontFace7 *This); + + DWRITE_FONT_STRETCH (STDMETHODCALLTYPE *GetStretch)( + IDWriteFontFace7 *This); + + DWRITE_FONT_STYLE (STDMETHODCALLTYPE *GetStyle)( + IDWriteFontFace7 *This); + + HRESULT (STDMETHODCALLTYPE *GetFamilyNames)( + IDWriteFontFace7 *This, + IDWriteLocalizedStrings **names); + + HRESULT (STDMETHODCALLTYPE *GetFaceNames)( + IDWriteFontFace7 *This, + IDWriteLocalizedStrings **names); + + HRESULT (STDMETHODCALLTYPE *GetInformationalStrings)( + IDWriteFontFace7 *This, + DWRITE_INFORMATIONAL_STRING_ID stringid, + IDWriteLocalizedStrings **strings, + WINBOOL *exists); + + WINBOOL (STDMETHODCALLTYPE *HasCharacter)( + IDWriteFontFace7 *This, + UINT32 character); + + HRESULT (STDMETHODCALLTYPE *IDWriteFontFace3_GetRecommendedRenderingMode)( + IDWriteFontFace7 *This, + FLOAT emsize, + FLOAT dpi_x, + FLOAT dpi_y, + const DWRITE_MATRIX *transform, + WINBOOL is_sideways, + DWRITE_OUTLINE_THRESHOLD threshold, + DWRITE_MEASURING_MODE measuring_mode, + IDWriteRenderingParams *params, + DWRITE_RENDERING_MODE1 *rendering_mode, + DWRITE_GRID_FIT_MODE *gridfit_mode); + + WINBOOL (STDMETHODCALLTYPE *IsCharacterLocal)( + IDWriteFontFace7 *This, + UINT32 character); + + WINBOOL (STDMETHODCALLTYPE *IsGlyphLocal)( + IDWriteFontFace7 *This, + UINT16 glyph); + + HRESULT (STDMETHODCALLTYPE *AreCharactersLocal)( + IDWriteFontFace7 *This, + const WCHAR *characters, + UINT32 count, + WINBOOL enqueue_if_not, + WINBOOL *are_local); + + HRESULT (STDMETHODCALLTYPE *AreGlyphsLocal)( + IDWriteFontFace7 *This, + const UINT16 *glyphs, + UINT32 count, + WINBOOL enqueue_if_not, + WINBOOL *are_local); + + /*** IDWriteFontFace4 methods ***/ + HRESULT (STDMETHODCALLTYPE *GetGlyphImageFormats_)( + IDWriteFontFace7 *This, + UINT16 glyph, + UINT32 ppem_first, + UINT32 ppem_last, + DWRITE_GLYPH_IMAGE_FORMATS *formats); + + DWRITE_GLYPH_IMAGE_FORMATS (STDMETHODCALLTYPE *GetGlyphImageFormats)( + IDWriteFontFace7 *This); + + HRESULT (STDMETHODCALLTYPE *GetGlyphImageData)( + IDWriteFontFace7 *This, + UINT16 glyph, + UINT32 ppem, + DWRITE_GLYPH_IMAGE_FORMATS format, + DWRITE_GLYPH_IMAGE_DATA *data, + void **context); + + void (STDMETHODCALLTYPE *ReleaseGlyphImageData)( + IDWriteFontFace7 *This, + void *context); + + /*** IDWriteFontFace5 methods ***/ + UINT32 (STDMETHODCALLTYPE *GetFontAxisValueCount)( + IDWriteFontFace7 *This); + + HRESULT (STDMETHODCALLTYPE *GetFontAxisValues)( + IDWriteFontFace7 *This, + DWRITE_FONT_AXIS_VALUE *values, + UINT32 value_count); + + WINBOOL (STDMETHODCALLTYPE *HasVariations)( + IDWriteFontFace7 *This); + + HRESULT (STDMETHODCALLTYPE *GetFontResource)( + IDWriteFontFace7 *This, + IDWriteFontResource **resource); + + WINBOOL (STDMETHODCALLTYPE *Equals)( + IDWriteFontFace7 *This, + IDWriteFontFace *fontface); + + /*** IDWriteFontFace6 methods ***/ + HRESULT (STDMETHODCALLTYPE *IDWriteFontFace6_GetFamilyNames)( + IDWriteFontFace7 *This, + DWRITE_FONT_FAMILY_MODEL font_family_model, + IDWriteLocalizedStrings **names); + + HRESULT (STDMETHODCALLTYPE *IDWriteFontFace6_GetFaceNames)( + IDWriteFontFace7 *This, + DWRITE_FONT_FAMILY_MODEL font_family_model, + IDWriteLocalizedStrings **names); + + /*** IDWriteFontFace7 methods ***/ + DWRITE_PAINT_FEATURE_LEVEL (STDMETHODCALLTYPE *GetPaintFeatureLevel)( + IDWriteFontFace7 *This, + DWRITE_GLYPH_IMAGE_FORMATS glyph_image_format); + + HRESULT (STDMETHODCALLTYPE *CreatePaintReader)( + IDWriteFontFace7 *This, + DWRITE_GLYPH_IMAGE_FORMATS glyph_image_format, + DWRITE_PAINT_FEATURE_LEVEL paint_feature_level, + IDWritePaintReader **paint_reader); + + END_INTERFACE +} IDWriteFontFace7Vtbl; + +interface IDWriteFontFace7 { + CONST_VTBL IDWriteFontFace7Vtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDWriteFontFace7_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteFontFace7_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDWriteFontFace7_Release(This) (This)->lpVtbl->Release(This) +/*** IDWriteFontFace methods ***/ +#define IDWriteFontFace7_GetType(This) (This)->lpVtbl->GetType(This) +#define IDWriteFontFace7_GetFiles(This,number_of_files,fontfiles) (This)->lpVtbl->GetFiles(This,number_of_files,fontfiles) +#define IDWriteFontFace7_GetIndex(This) (This)->lpVtbl->GetIndex(This) +#define IDWriteFontFace7_GetSimulations(This) (This)->lpVtbl->GetSimulations(This) +#define IDWriteFontFace7_IsSymbolFont(This) (This)->lpVtbl->IsSymbolFont(This) +#define IDWriteFontFace7_GetGlyphCount(This) (This)->lpVtbl->GetGlyphCount(This) +#define IDWriteFontFace7_GetDesignGlyphMetrics(This,glyph_indices,glyph_count,metrics,is_sideways) (This)->lpVtbl->GetDesignGlyphMetrics(This,glyph_indices,glyph_count,metrics,is_sideways) +#define IDWriteFontFace7_GetGlyphIndices(This,codepoints,count,glyph_indices) (This)->lpVtbl->GetGlyphIndices(This,codepoints,count,glyph_indices) +#define IDWriteFontFace7_TryGetFontTable(This,table_tag,table_data,table_size,context,exists) (This)->lpVtbl->TryGetFontTable(This,table_tag,table_data,table_size,context,exists) +#define IDWriteFontFace7_ReleaseFontTable(This,table_context) (This)->lpVtbl->ReleaseFontTable(This,table_context) +#define IDWriteFontFace7_GetGlyphRunOutline(This,emSize,glyph_indices,glyph_advances,glyph_offsets,glyph_count,is_sideways,is_rtl,geometrysink) (This)->lpVtbl->GetGlyphRunOutline(This,emSize,glyph_indices,glyph_advances,glyph_offsets,glyph_count,is_sideways,is_rtl,geometrysink) +#define IDWriteFontFace7_GetGdiCompatibleGlyphMetrics(This,emSize,pixels_per_dip,transform,use_gdi_natural,glyph_indices,glyph_count,metrics,is_sideways) (This)->lpVtbl->GetGdiCompatibleGlyphMetrics(This,emSize,pixels_per_dip,transform,use_gdi_natural,glyph_indices,glyph_count,metrics,is_sideways) +/*** IDWriteFontFace1 methods ***/ +#define IDWriteFontFace7_GetMetrics(This,metrics) (This)->lpVtbl->IDWriteFontFace1_GetMetrics(This,metrics) +#define IDWriteFontFace7_GetGdiCompatibleMetrics(This,em_size,pixels_per_dip,transform,metrics) (This)->lpVtbl->IDWriteFontFace1_GetGdiCompatibleMetrics(This,em_size,pixels_per_dip,transform,metrics) +#define IDWriteFontFace7_GetCaretMetrics(This,metrics) (This)->lpVtbl->GetCaretMetrics(This,metrics) +#define IDWriteFontFace7_GetUnicodeRanges(This,max_count,ranges,count) (This)->lpVtbl->GetUnicodeRanges(This,max_count,ranges,count) +#define IDWriteFontFace7_IsMonospacedFont(This) (This)->lpVtbl->IsMonospacedFont(This) +#define IDWriteFontFace7_GetDesignGlyphAdvances(This,glyph_count,indices,advances,is_sideways) (This)->lpVtbl->GetDesignGlyphAdvances(This,glyph_count,indices,advances,is_sideways) +#define IDWriteFontFace7_GetGdiCompatibleGlyphAdvances(This,em_size,pixels_per_dip,transform,use_gdi_natural,is_sideways,glyph_count,indices,advances) (This)->lpVtbl->GetGdiCompatibleGlyphAdvances(This,em_size,pixels_per_dip,transform,use_gdi_natural,is_sideways,glyph_count,indices,advances) +#define IDWriteFontFace7_GetKerningPairAdjustments(This,glyph_count,indices,adjustments) (This)->lpVtbl->GetKerningPairAdjustments(This,glyph_count,indices,adjustments) +#define IDWriteFontFace7_HasKerningPairs(This) (This)->lpVtbl->HasKerningPairs(This) +#define IDWriteFontFace7_GetVerticalGlyphVariants(This,glyph_count,nominal_indices,vertical_indices) (This)->lpVtbl->GetVerticalGlyphVariants(This,glyph_count,nominal_indices,vertical_indices) +#define IDWriteFontFace7_HasVerticalGlyphVariants(This) (This)->lpVtbl->HasVerticalGlyphVariants(This) +/*** IDWriteFontFace2 methods ***/ +#define IDWriteFontFace7_IsColorFont(This) (This)->lpVtbl->IsColorFont(This) +#define IDWriteFontFace7_GetColorPaletteCount(This) (This)->lpVtbl->GetColorPaletteCount(This) +#define IDWriteFontFace7_GetPaletteEntryCount(This) (This)->lpVtbl->GetPaletteEntryCount(This) +#define IDWriteFontFace7_GetPaletteEntries(This,palette_index,first_entry_index,entry_count,entries) (This)->lpVtbl->GetPaletteEntries(This,palette_index,first_entry_index,entry_count,entries) +/*** IDWriteFontFace3 methods ***/ +#define IDWriteFontFace7_GetFontFaceReference(This,reference) (This)->lpVtbl->GetFontFaceReference(This,reference) +#define IDWriteFontFace7_GetPanose(This,panose) (This)->lpVtbl->GetPanose(This,panose) +#define IDWriteFontFace7_GetWeight(This) (This)->lpVtbl->GetWeight(This) +#define IDWriteFontFace7_GetStretch(This) (This)->lpVtbl->GetStretch(This) +#define IDWriteFontFace7_GetStyle(This) (This)->lpVtbl->GetStyle(This) +#define IDWriteFontFace7_GetInformationalStrings(This,stringid,strings,exists) (This)->lpVtbl->GetInformationalStrings(This,stringid,strings,exists) +#define IDWriteFontFace7_HasCharacter(This,character) (This)->lpVtbl->HasCharacter(This,character) +#define IDWriteFontFace7_GetRecommendedRenderingMode(This,emsize,dpi_x,dpi_y,transform,is_sideways,threshold,measuring_mode,params,rendering_mode,gridfit_mode) (This)->lpVtbl->IDWriteFontFace3_GetRecommendedRenderingMode(This,emsize,dpi_x,dpi_y,transform,is_sideways,threshold,measuring_mode,params,rendering_mode,gridfit_mode) +#define IDWriteFontFace7_IsCharacterLocal(This,character) (This)->lpVtbl->IsCharacterLocal(This,character) +#define IDWriteFontFace7_IsGlyphLocal(This,glyph) (This)->lpVtbl->IsGlyphLocal(This,glyph) +#define IDWriteFontFace7_AreCharactersLocal(This,characters,count,enqueue_if_not,are_local) (This)->lpVtbl->AreCharactersLocal(This,characters,count,enqueue_if_not,are_local) +#define IDWriteFontFace7_AreGlyphsLocal(This,glyphs,count,enqueue_if_not,are_local) (This)->lpVtbl->AreGlyphsLocal(This,glyphs,count,enqueue_if_not,are_local) +/*** IDWriteFontFace4 methods ***/ +#define IDWriteFontFace7_GetGlyphImageFormats_(This,glyph,ppem_first,ppem_last,formats) (This)->lpVtbl->GetGlyphImageFormats_(This,glyph,ppem_first,ppem_last,formats) +#define IDWriteFontFace7_GetGlyphImageFormats(This) (This)->lpVtbl->GetGlyphImageFormats(This) +#define IDWriteFontFace7_GetGlyphImageData(This,glyph,ppem,format,data,context) (This)->lpVtbl->GetGlyphImageData(This,glyph,ppem,format,data,context) +#define IDWriteFontFace7_ReleaseGlyphImageData(This,context) (This)->lpVtbl->ReleaseGlyphImageData(This,context) +/*** IDWriteFontFace5 methods ***/ +#define IDWriteFontFace7_GetFontAxisValueCount(This) (This)->lpVtbl->GetFontAxisValueCount(This) +#define IDWriteFontFace7_GetFontAxisValues(This,values,value_count) (This)->lpVtbl->GetFontAxisValues(This,values,value_count) +#define IDWriteFontFace7_HasVariations(This) (This)->lpVtbl->HasVariations(This) +#define IDWriteFontFace7_GetFontResource(This,resource) (This)->lpVtbl->GetFontResource(This,resource) +#define IDWriteFontFace7_Equals(This,fontface) (This)->lpVtbl->Equals(This,fontface) +/*** IDWriteFontFace6 methods ***/ +#define IDWriteFontFace7_GetFamilyNames(This,font_family_model,names) (This)->lpVtbl->IDWriteFontFace6_GetFamilyNames(This,font_family_model,names) +#define IDWriteFontFace7_GetFaceNames(This,font_family_model,names) (This)->lpVtbl->IDWriteFontFace6_GetFaceNames(This,font_family_model,names) +/*** IDWriteFontFace7 methods ***/ +#define IDWriteFontFace7_GetPaintFeatureLevel(This,glyph_image_format) (This)->lpVtbl->GetPaintFeatureLevel(This,glyph_image_format) +#define IDWriteFontFace7_CreatePaintReader(This,glyph_image_format,paint_feature_level,paint_reader) (This)->lpVtbl->CreatePaintReader(This,glyph_image_format,paint_feature_level,paint_reader) +#else +/*** IUnknown methods ***/ +static inline HRESULT IDWriteFontFace7_QueryInterface(IDWriteFontFace7* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static inline ULONG IDWriteFontFace7_AddRef(IDWriteFontFace7* This) { + return This->lpVtbl->AddRef(This); +} +static inline ULONG IDWriteFontFace7_Release(IDWriteFontFace7* This) { + return This->lpVtbl->Release(This); +} +/*** IDWriteFontFace methods ***/ +static inline DWRITE_FONT_FACE_TYPE IDWriteFontFace7_GetType(IDWriteFontFace7* This) { + return This->lpVtbl->GetType(This); +} +static inline HRESULT IDWriteFontFace7_GetFiles(IDWriteFontFace7* This,UINT32 *number_of_files,IDWriteFontFile **fontfiles) { + return This->lpVtbl->GetFiles(This,number_of_files,fontfiles); +} +static inline UINT32 IDWriteFontFace7_GetIndex(IDWriteFontFace7* This) { + return This->lpVtbl->GetIndex(This); +} +static inline DWRITE_FONT_SIMULATIONS IDWriteFontFace7_GetSimulations(IDWriteFontFace7* This) { + return This->lpVtbl->GetSimulations(This); +} +static inline WINBOOL IDWriteFontFace7_IsSymbolFont(IDWriteFontFace7* This) { + return This->lpVtbl->IsSymbolFont(This); +} +static inline UINT16 IDWriteFontFace7_GetGlyphCount(IDWriteFontFace7* This) { + return This->lpVtbl->GetGlyphCount(This); +} +static inline HRESULT IDWriteFontFace7_GetDesignGlyphMetrics(IDWriteFontFace7* This,const UINT16 *glyph_indices,UINT32 glyph_count,DWRITE_GLYPH_METRICS *metrics,WINBOOL is_sideways) { + return This->lpVtbl->GetDesignGlyphMetrics(This,glyph_indices,glyph_count,metrics,is_sideways); +} +static inline HRESULT IDWriteFontFace7_GetGlyphIndices(IDWriteFontFace7* This,const UINT32 *codepoints,UINT32 count,UINT16 *glyph_indices) { + return This->lpVtbl->GetGlyphIndices(This,codepoints,count,glyph_indices); +} +static inline HRESULT IDWriteFontFace7_TryGetFontTable(IDWriteFontFace7* This,UINT32 table_tag,const void **table_data,UINT32 *table_size,void **context,WINBOOL *exists) { + return This->lpVtbl->TryGetFontTable(This,table_tag,table_data,table_size,context,exists); +} +static inline void IDWriteFontFace7_ReleaseFontTable(IDWriteFontFace7* This,void *table_context) { + This->lpVtbl->ReleaseFontTable(This,table_context); +} +static inline HRESULT IDWriteFontFace7_GetGlyphRunOutline(IDWriteFontFace7* This,FLOAT emSize,const UINT16 *glyph_indices,const FLOAT *glyph_advances,const DWRITE_GLYPH_OFFSET *glyph_offsets,UINT32 glyph_count,WINBOOL is_sideways,WINBOOL is_rtl,IDWriteGeometrySink *geometrysink) { + return This->lpVtbl->GetGlyphRunOutline(This,emSize,glyph_indices,glyph_advances,glyph_offsets,glyph_count,is_sideways,is_rtl,geometrysink); +} +static inline HRESULT IDWriteFontFace7_GetGdiCompatibleGlyphMetrics(IDWriteFontFace7* This,FLOAT emSize,FLOAT pixels_per_dip,const DWRITE_MATRIX *transform,WINBOOL use_gdi_natural,const UINT16 *glyph_indices,UINT32 glyph_count,DWRITE_GLYPH_METRICS *metrics,WINBOOL is_sideways) { + return This->lpVtbl->GetGdiCompatibleGlyphMetrics(This,emSize,pixels_per_dip,transform,use_gdi_natural,glyph_indices,glyph_count,metrics,is_sideways); +} +/*** IDWriteFontFace1 methods ***/ +static inline void IDWriteFontFace7_GetMetrics(IDWriteFontFace7* This,DWRITE_FONT_METRICS1 *metrics) { + This->lpVtbl->IDWriteFontFace1_GetMetrics(This,metrics); +} +static inline HRESULT IDWriteFontFace7_GetGdiCompatibleMetrics(IDWriteFontFace7* This,FLOAT em_size,FLOAT pixels_per_dip,const DWRITE_MATRIX *transform,DWRITE_FONT_METRICS1 *metrics) { + return This->lpVtbl->IDWriteFontFace1_GetGdiCompatibleMetrics(This,em_size,pixels_per_dip,transform,metrics); +} +static inline void IDWriteFontFace7_GetCaretMetrics(IDWriteFontFace7* This,DWRITE_CARET_METRICS *metrics) { + This->lpVtbl->GetCaretMetrics(This,metrics); +} +static inline HRESULT IDWriteFontFace7_GetUnicodeRanges(IDWriteFontFace7* This,UINT32 max_count,DWRITE_UNICODE_RANGE *ranges,UINT32 *count) { + return This->lpVtbl->GetUnicodeRanges(This,max_count,ranges,count); +} +static inline WINBOOL IDWriteFontFace7_IsMonospacedFont(IDWriteFontFace7* This) { + return This->lpVtbl->IsMonospacedFont(This); +} +static inline HRESULT IDWriteFontFace7_GetDesignGlyphAdvances(IDWriteFontFace7* This,UINT32 glyph_count,const UINT16 *indices,INT32 *advances,WINBOOL is_sideways) { + return This->lpVtbl->GetDesignGlyphAdvances(This,glyph_count,indices,advances,is_sideways); +} +static inline HRESULT IDWriteFontFace7_GetGdiCompatibleGlyphAdvances(IDWriteFontFace7* This,FLOAT em_size,FLOAT pixels_per_dip,const DWRITE_MATRIX *transform,WINBOOL use_gdi_natural,WINBOOL is_sideways,UINT32 glyph_count,const UINT16 *indices,INT32 *advances) { + return This->lpVtbl->GetGdiCompatibleGlyphAdvances(This,em_size,pixels_per_dip,transform,use_gdi_natural,is_sideways,glyph_count,indices,advances); +} +static inline HRESULT IDWriteFontFace7_GetKerningPairAdjustments(IDWriteFontFace7* This,UINT32 glyph_count,const UINT16 *indices,INT32 *adjustments) { + return This->lpVtbl->GetKerningPairAdjustments(This,glyph_count,indices,adjustments); +} +static inline WINBOOL IDWriteFontFace7_HasKerningPairs(IDWriteFontFace7* This) { + return This->lpVtbl->HasKerningPairs(This); +} +static inline HRESULT IDWriteFontFace7_GetVerticalGlyphVariants(IDWriteFontFace7* This,UINT32 glyph_count,const UINT16 *nominal_indices,UINT16 *vertical_indices) { + return This->lpVtbl->GetVerticalGlyphVariants(This,glyph_count,nominal_indices,vertical_indices); +} +static inline WINBOOL IDWriteFontFace7_HasVerticalGlyphVariants(IDWriteFontFace7* This) { + return This->lpVtbl->HasVerticalGlyphVariants(This); +} +/*** IDWriteFontFace2 methods ***/ +static inline WINBOOL IDWriteFontFace7_IsColorFont(IDWriteFontFace7* This) { + return This->lpVtbl->IsColorFont(This); +} +static inline UINT32 IDWriteFontFace7_GetColorPaletteCount(IDWriteFontFace7* This) { + return This->lpVtbl->GetColorPaletteCount(This); +} +static inline UINT32 IDWriteFontFace7_GetPaletteEntryCount(IDWriteFontFace7* This) { + return This->lpVtbl->GetPaletteEntryCount(This); +} +static inline HRESULT IDWriteFontFace7_GetPaletteEntries(IDWriteFontFace7* This,UINT32 palette_index,UINT32 first_entry_index,UINT32 entry_count,DWRITE_COLOR_F *entries) { + return This->lpVtbl->GetPaletteEntries(This,palette_index,first_entry_index,entry_count,entries); +} +/*** IDWriteFontFace3 methods ***/ +static inline HRESULT IDWriteFontFace7_GetFontFaceReference(IDWriteFontFace7* This,IDWriteFontFaceReference **reference) { + return This->lpVtbl->GetFontFaceReference(This,reference); +} +static inline void IDWriteFontFace7_GetPanose(IDWriteFontFace7* This,DWRITE_PANOSE *panose) { + This->lpVtbl->GetPanose(This,panose); +} +static inline DWRITE_FONT_WEIGHT IDWriteFontFace7_GetWeight(IDWriteFontFace7* This) { + return This->lpVtbl->GetWeight(This); +} +static inline DWRITE_FONT_STRETCH IDWriteFontFace7_GetStretch(IDWriteFontFace7* This) { + return This->lpVtbl->GetStretch(This); +} +static inline DWRITE_FONT_STYLE IDWriteFontFace7_GetStyle(IDWriteFontFace7* This) { + return This->lpVtbl->GetStyle(This); +} +static inline HRESULT IDWriteFontFace7_GetInformationalStrings(IDWriteFontFace7* This,DWRITE_INFORMATIONAL_STRING_ID stringid,IDWriteLocalizedStrings **strings,WINBOOL *exists) { + return This->lpVtbl->GetInformationalStrings(This,stringid,strings,exists); +} +static inline WINBOOL IDWriteFontFace7_HasCharacter(IDWriteFontFace7* This,UINT32 character) { + return This->lpVtbl->HasCharacter(This,character); +} +static inline HRESULT IDWriteFontFace7_GetRecommendedRenderingMode(IDWriteFontFace7* This,FLOAT emsize,FLOAT dpi_x,FLOAT dpi_y,const DWRITE_MATRIX *transform,WINBOOL is_sideways,DWRITE_OUTLINE_THRESHOLD threshold,DWRITE_MEASURING_MODE measuring_mode,IDWriteRenderingParams *params,DWRITE_RENDERING_MODE1 *rendering_mode,DWRITE_GRID_FIT_MODE *gridfit_mode) { + return This->lpVtbl->IDWriteFontFace3_GetRecommendedRenderingMode(This,emsize,dpi_x,dpi_y,transform,is_sideways,threshold,measuring_mode,params,rendering_mode,gridfit_mode); +} +static inline WINBOOL IDWriteFontFace7_IsCharacterLocal(IDWriteFontFace7* This,UINT32 character) { + return This->lpVtbl->IsCharacterLocal(This,character); +} +static inline WINBOOL IDWriteFontFace7_IsGlyphLocal(IDWriteFontFace7* This,UINT16 glyph) { + return This->lpVtbl->IsGlyphLocal(This,glyph); +} +static inline HRESULT IDWriteFontFace7_AreCharactersLocal(IDWriteFontFace7* This,const WCHAR *characters,UINT32 count,WINBOOL enqueue_if_not,WINBOOL *are_local) { + return This->lpVtbl->AreCharactersLocal(This,characters,count,enqueue_if_not,are_local); +} +static inline HRESULT IDWriteFontFace7_AreGlyphsLocal(IDWriteFontFace7* This,const UINT16 *glyphs,UINT32 count,WINBOOL enqueue_if_not,WINBOOL *are_local) { + return This->lpVtbl->AreGlyphsLocal(This,glyphs,count,enqueue_if_not,are_local); +} +/*** IDWriteFontFace4 methods ***/ +static inline HRESULT IDWriteFontFace7_GetGlyphImageFormats_(IDWriteFontFace7* This,UINT16 glyph,UINT32 ppem_first,UINT32 ppem_last,DWRITE_GLYPH_IMAGE_FORMATS *formats) { + return This->lpVtbl->GetGlyphImageFormats_(This,glyph,ppem_first,ppem_last,formats); +} +static inline DWRITE_GLYPH_IMAGE_FORMATS IDWriteFontFace7_GetGlyphImageFormats(IDWriteFontFace7* This) { + return This->lpVtbl->GetGlyphImageFormats(This); +} +static inline HRESULT IDWriteFontFace7_GetGlyphImageData(IDWriteFontFace7* This,UINT16 glyph,UINT32 ppem,DWRITE_GLYPH_IMAGE_FORMATS format,DWRITE_GLYPH_IMAGE_DATA *data,void **context) { + return This->lpVtbl->GetGlyphImageData(This,glyph,ppem,format,data,context); +} +static inline void IDWriteFontFace7_ReleaseGlyphImageData(IDWriteFontFace7* This,void *context) { + This->lpVtbl->ReleaseGlyphImageData(This,context); +} +/*** IDWriteFontFace5 methods ***/ +static inline UINT32 IDWriteFontFace7_GetFontAxisValueCount(IDWriteFontFace7* This) { + return This->lpVtbl->GetFontAxisValueCount(This); +} +static inline HRESULT IDWriteFontFace7_GetFontAxisValues(IDWriteFontFace7* This,DWRITE_FONT_AXIS_VALUE *values,UINT32 value_count) { + return This->lpVtbl->GetFontAxisValues(This,values,value_count); +} +static inline WINBOOL IDWriteFontFace7_HasVariations(IDWriteFontFace7* This) { + return This->lpVtbl->HasVariations(This); +} +static inline HRESULT IDWriteFontFace7_GetFontResource(IDWriteFontFace7* This,IDWriteFontResource **resource) { + return This->lpVtbl->GetFontResource(This,resource); +} +static inline WINBOOL IDWriteFontFace7_Equals(IDWriteFontFace7* This,IDWriteFontFace *fontface) { + return This->lpVtbl->Equals(This,fontface); +} +/*** IDWriteFontFace6 methods ***/ +static inline HRESULT IDWriteFontFace7_GetFamilyNames(IDWriteFontFace7* This,DWRITE_FONT_FAMILY_MODEL font_family_model,IDWriteLocalizedStrings **names) { + return This->lpVtbl->IDWriteFontFace6_GetFamilyNames(This,font_family_model,names); +} +static inline HRESULT IDWriteFontFace7_GetFaceNames(IDWriteFontFace7* This,DWRITE_FONT_FAMILY_MODEL font_family_model,IDWriteLocalizedStrings **names) { + return This->lpVtbl->IDWriteFontFace6_GetFaceNames(This,font_family_model,names); +} +/*** IDWriteFontFace7 methods ***/ +static inline DWRITE_PAINT_FEATURE_LEVEL IDWriteFontFace7_GetPaintFeatureLevel(IDWriteFontFace7* This,DWRITE_GLYPH_IMAGE_FORMATS glyph_image_format) { + return This->lpVtbl->GetPaintFeatureLevel(This,glyph_image_format); +} +static inline HRESULT IDWriteFontFace7_CreatePaintReader(IDWriteFontFace7* This,DWRITE_GLYPH_IMAGE_FORMATS glyph_image_format,DWRITE_PAINT_FEATURE_LEVEL paint_feature_level,IDWritePaintReader **paint_reader) { + return This->lpVtbl->CreatePaintReader(This,glyph_image_format,paint_feature_level,paint_reader); +} +#endif +#endif + +#endif + + +#endif /* __IDWriteFontFace7_INTERFACE_DEFINED__ */ + +typedef struct DWRITE_COLOR_GLYPH_RUN1 DWRITE_COLOR_GLYPH_RUN1; +struct DWRITE_COLOR_GLYPH_RUN1 +{ + DWRITE_GLYPH_RUN glyphRun; + DWRITE_GLYPH_RUN_DESCRIPTION *glyphRunDescription; + FLOAT baselineOriginX; + FLOAT baselineOriginY; + DWRITE_COLOR_F runColor; + UINT16 paletteIndex; +#ifdef _WIN64 + UINT32 _pad; +#endif + DWRITE_GLYPH_IMAGE_FORMATS glyphImageFormat; + DWRITE_MEASURING_MODE measuringMode; +}; +/***************************************************************************** + * IDWriteColorGlyphRunEnumerator1 interface + */ +#ifndef __IDWriteColorGlyphRunEnumerator1_INTERFACE_DEFINED__ +#define __IDWriteColorGlyphRunEnumerator1_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDWriteColorGlyphRunEnumerator1, 0x7c5f86da, 0xc7a1, 0x4f05, 0xb8,0xe1, 0x55,0xa1,0x79,0xfe,0x5a,0x35); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("7c5f86da-c7a1-4f05-b8e1-55a179fe5a35") +IDWriteColorGlyphRunEnumerator1 : public IDWriteColorGlyphRunEnumerator +{ + virtual HRESULT STDMETHODCALLTYPE GetCurrentRun( + const DWRITE_COLOR_GLYPH_RUN1 **run) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDWriteColorGlyphRunEnumerator1, 0x7c5f86da, 0xc7a1, 0x4f05, 0xb8,0xe1, 0x55,0xa1,0x79,0xfe,0x5a,0x35) +#endif +#else +typedef struct IDWriteColorGlyphRunEnumerator1Vtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDWriteColorGlyphRunEnumerator1 *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDWriteColorGlyphRunEnumerator1 *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDWriteColorGlyphRunEnumerator1 *This); + + /*** IDWriteColorGlyphRunEnumerator methods ***/ + HRESULT (STDMETHODCALLTYPE *MoveNext)( + IDWriteColorGlyphRunEnumerator1 *This, + WINBOOL *hasRun); + + HRESULT (STDMETHODCALLTYPE *GetCurrentRun)( + IDWriteColorGlyphRunEnumerator1 *This, + const DWRITE_COLOR_GLYPH_RUN **run); + + /*** IDWriteColorGlyphRunEnumerator1 methods ***/ + HRESULT (STDMETHODCALLTYPE *IDWriteColorGlyphRunEnumerator1_GetCurrentRun)( + IDWriteColorGlyphRunEnumerator1 *This, + const DWRITE_COLOR_GLYPH_RUN1 **run); + + END_INTERFACE +} IDWriteColorGlyphRunEnumerator1Vtbl; + +interface IDWriteColorGlyphRunEnumerator1 { + CONST_VTBL IDWriteColorGlyphRunEnumerator1Vtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDWriteColorGlyphRunEnumerator1_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteColorGlyphRunEnumerator1_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDWriteColorGlyphRunEnumerator1_Release(This) (This)->lpVtbl->Release(This) +/*** IDWriteColorGlyphRunEnumerator methods ***/ +#define IDWriteColorGlyphRunEnumerator1_MoveNext(This,hasRun) (This)->lpVtbl->MoveNext(This,hasRun) +/*** IDWriteColorGlyphRunEnumerator1 methods ***/ +#define IDWriteColorGlyphRunEnumerator1_GetCurrentRun(This,run) (This)->lpVtbl->IDWriteColorGlyphRunEnumerator1_GetCurrentRun(This,run) +#else +/*** IUnknown methods ***/ +static inline HRESULT IDWriteColorGlyphRunEnumerator1_QueryInterface(IDWriteColorGlyphRunEnumerator1* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static inline ULONG IDWriteColorGlyphRunEnumerator1_AddRef(IDWriteColorGlyphRunEnumerator1* This) { + return This->lpVtbl->AddRef(This); +} +static inline ULONG IDWriteColorGlyphRunEnumerator1_Release(IDWriteColorGlyphRunEnumerator1* This) { + return This->lpVtbl->Release(This); +} +/*** IDWriteColorGlyphRunEnumerator methods ***/ +static inline HRESULT IDWriteColorGlyphRunEnumerator1_MoveNext(IDWriteColorGlyphRunEnumerator1* This,WINBOOL *hasRun) { + return This->lpVtbl->MoveNext(This,hasRun); +} +/*** IDWriteColorGlyphRunEnumerator1 methods ***/ +static inline HRESULT IDWriteColorGlyphRunEnumerator1_GetCurrentRun(IDWriteColorGlyphRunEnumerator1* This,const DWRITE_COLOR_GLYPH_RUN1 **run) { + return This->lpVtbl->IDWriteColorGlyphRunEnumerator1_GetCurrentRun(This,run); +} +#endif +#endif + +#endif + + +#endif /* __IDWriteColorGlyphRunEnumerator1_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IDWriteFactory4 interface + */ +#ifndef __IDWriteFactory4_INTERFACE_DEFINED__ +#define __IDWriteFactory4_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDWriteFactory4, 0x4b0b5bd3, 0x0797, 0x4549, 0x8a,0xc5, 0xfe,0x91,0x5c,0xc5,0x38,0x56); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("4b0b5bd3-0797-4549-8ac5-fe915cc53856") +IDWriteFactory4 : public IDWriteFactory3 +{ + virtual HRESULT STDMETHODCALLTYPE TranslateColorGlyphRun( + D2D1_POINT_2F baseline_origin, + const DWRITE_GLYPH_RUN *run, + const DWRITE_GLYPH_RUN_DESCRIPTION *run_desc, + DWRITE_GLYPH_IMAGE_FORMATS desired_formats, + DWRITE_MEASURING_MODE measuring_mode, + const DWRITE_MATRIX *transform, + UINT32 palette, + IDWriteColorGlyphRunEnumerator1 **layers) = 0; + + virtual HRESULT STDMETHODCALLTYPE ComputeGlyphOrigins_( + const DWRITE_GLYPH_RUN *run, + D2D1_POINT_2F baseline_origin, + D2D1_POINT_2F *origins) = 0; + + virtual HRESULT STDMETHODCALLTYPE ComputeGlyphOrigins( + const DWRITE_GLYPH_RUN *run, + DWRITE_MEASURING_MODE measuring_mode, + D2D1_POINT_2F baseline_origin, + const DWRITE_MATRIX *transform, + D2D1_POINT_2F *origins) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDWriteFactory4, 0x4b0b5bd3, 0x0797, 0x4549, 0x8a,0xc5, 0xfe,0x91,0x5c,0xc5,0x38,0x56) +#endif +#else +typedef struct IDWriteFactory4Vtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDWriteFactory4 *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDWriteFactory4 *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDWriteFactory4 *This); + + /*** IDWriteFactory methods ***/ + HRESULT (STDMETHODCALLTYPE *GetSystemFontCollection)( + IDWriteFactory4 *This, + IDWriteFontCollection **collection, + WINBOOL check_for_updates); + + HRESULT (STDMETHODCALLTYPE *CreateCustomFontCollection)( + IDWriteFactory4 *This, + IDWriteFontCollectionLoader *loader, + const void *key, + UINT32 key_size, + IDWriteFontCollection **collection); + + HRESULT (STDMETHODCALLTYPE *RegisterFontCollectionLoader)( + IDWriteFactory4 *This, + IDWriteFontCollectionLoader *loader); + + HRESULT (STDMETHODCALLTYPE *UnregisterFontCollectionLoader)( + IDWriteFactory4 *This, + IDWriteFontCollectionLoader *loader); + + HRESULT (STDMETHODCALLTYPE *CreateFontFileReference)( + IDWriteFactory4 *This, + const WCHAR *path, + const FILETIME *writetime, + IDWriteFontFile **font_file); + + HRESULT (STDMETHODCALLTYPE *CreateCustomFontFileReference)( + IDWriteFactory4 *This, + const void *reference_key, + UINT32 key_size, + IDWriteFontFileLoader *loader, + IDWriteFontFile **font_file); + + HRESULT (STDMETHODCALLTYPE *CreateFontFace)( + IDWriteFactory4 *This, + DWRITE_FONT_FACE_TYPE facetype, + UINT32 files_number, + IDWriteFontFile *const *font_files, + UINT32 index, + DWRITE_FONT_SIMULATIONS sim_flags, + IDWriteFontFace **font_face); + + HRESULT (STDMETHODCALLTYPE *CreateRenderingParams)( + IDWriteFactory4 *This, + IDWriteRenderingParams **params); + + HRESULT (STDMETHODCALLTYPE *CreateMonitorRenderingParams)( + IDWriteFactory4 *This, + HMONITOR monitor, + IDWriteRenderingParams **params); + + HRESULT (STDMETHODCALLTYPE *CreateCustomRenderingParams)( + IDWriteFactory4 *This, + FLOAT gamma, + FLOAT enhancedContrast, + FLOAT cleartype_level, + DWRITE_PIXEL_GEOMETRY geometry, + DWRITE_RENDERING_MODE mode, + IDWriteRenderingParams **params); + + HRESULT (STDMETHODCALLTYPE *RegisterFontFileLoader)( + IDWriteFactory4 *This, + IDWriteFontFileLoader *loader); + + HRESULT (STDMETHODCALLTYPE *UnregisterFontFileLoader)( + IDWriteFactory4 *This, + IDWriteFontFileLoader *loader); + + HRESULT (STDMETHODCALLTYPE *CreateTextFormat)( + IDWriteFactory4 *This, + const WCHAR *family_name, + IDWriteFontCollection *collection, + DWRITE_FONT_WEIGHT weight, + DWRITE_FONT_STYLE style, + DWRITE_FONT_STRETCH stretch, + FLOAT size, + const WCHAR *locale, + IDWriteTextFormat **format); + + HRESULT (STDMETHODCALLTYPE *CreateTypography)( + IDWriteFactory4 *This, + IDWriteTypography **typography); + + HRESULT (STDMETHODCALLTYPE *GetGdiInterop)( + IDWriteFactory4 *This, + IDWriteGdiInterop **gdi_interop); + + HRESULT (STDMETHODCALLTYPE *CreateTextLayout)( + IDWriteFactory4 *This, + const WCHAR *string, + UINT32 len, + IDWriteTextFormat *format, + FLOAT max_width, + FLOAT max_height, + IDWriteTextLayout **layout); + + HRESULT (STDMETHODCALLTYPE *CreateGdiCompatibleTextLayout)( + IDWriteFactory4 *This, + const WCHAR *string, + UINT32 len, + IDWriteTextFormat *format, + FLOAT layout_width, + FLOAT layout_height, + FLOAT pixels_per_dip, + const DWRITE_MATRIX *transform, + WINBOOL use_gdi_natural, + IDWriteTextLayout **layout); + + HRESULT (STDMETHODCALLTYPE *CreateEllipsisTrimmingSign)( + IDWriteFactory4 *This, + IDWriteTextFormat *format, + IDWriteInlineObject **trimming_sign); + + HRESULT (STDMETHODCALLTYPE *CreateTextAnalyzer)( + IDWriteFactory4 *This, + IDWriteTextAnalyzer **analyzer); + + HRESULT (STDMETHODCALLTYPE *CreateNumberSubstitution)( + IDWriteFactory4 *This, + DWRITE_NUMBER_SUBSTITUTION_METHOD method, + const WCHAR *locale, + WINBOOL ignore_user_override, + IDWriteNumberSubstitution **substitution); + + HRESULT (STDMETHODCALLTYPE *CreateGlyphRunAnalysis)( + IDWriteFactory4 *This, + const DWRITE_GLYPH_RUN *glyph_run, + FLOAT pixels_per_dip, + const DWRITE_MATRIX *transform, + DWRITE_RENDERING_MODE rendering_mode, + DWRITE_MEASURING_MODE measuring_mode, + FLOAT baseline_x, + FLOAT baseline_y, + IDWriteGlyphRunAnalysis **analysis); + + /*** IDWriteFactory1 methods ***/ + HRESULT (STDMETHODCALLTYPE *GetEudcFontCollection)( + IDWriteFactory4 *This, + IDWriteFontCollection **collection, + WINBOOL check_for_updates); + + HRESULT (STDMETHODCALLTYPE *IDWriteFactory1_CreateCustomRenderingParams)( + IDWriteFactory4 *This, + FLOAT gamma, + FLOAT enhcontrast, + FLOAT enhcontrast_grayscale, + FLOAT cleartype_level, + DWRITE_PIXEL_GEOMETRY geometry, + DWRITE_RENDERING_MODE mode, + IDWriteRenderingParams1 **params); + + /*** IDWriteFactory2 methods ***/ + HRESULT (STDMETHODCALLTYPE *GetSystemFontFallback)( + IDWriteFactory4 *This, + IDWriteFontFallback **fallback); + + HRESULT (STDMETHODCALLTYPE *CreateFontFallbackBuilder)( + IDWriteFactory4 *This, + IDWriteFontFallbackBuilder **fallbackbuilder); + + HRESULT (STDMETHODCALLTYPE *TranslateColorGlyphRun)( + IDWriteFactory4 *This, + FLOAT originX, + FLOAT originY, + const DWRITE_GLYPH_RUN *run, + const DWRITE_GLYPH_RUN_DESCRIPTION *rundescr, + DWRITE_MEASURING_MODE mode, + const DWRITE_MATRIX *transform, + UINT32 palette_index, + IDWriteColorGlyphRunEnumerator **colorlayers); + + HRESULT (STDMETHODCALLTYPE *IDWriteFactory2_CreateCustomRenderingParams)( + IDWriteFactory4 *This, + FLOAT gamma, + FLOAT contrast, + FLOAT grayscalecontrast, + FLOAT cleartypeLevel, + DWRITE_PIXEL_GEOMETRY pixelGeometry, + DWRITE_RENDERING_MODE renderingMode, + DWRITE_GRID_FIT_MODE gridFitMode, + IDWriteRenderingParams2 **params); + + HRESULT (STDMETHODCALLTYPE *IDWriteFactory2_CreateGlyphRunAnalysis)( + IDWriteFactory4 *This, + const DWRITE_GLYPH_RUN *run, + const DWRITE_MATRIX *transform, + DWRITE_RENDERING_MODE renderingMode, + DWRITE_MEASURING_MODE measuringMode, + DWRITE_GRID_FIT_MODE gridFitMode, + DWRITE_TEXT_ANTIALIAS_MODE antialiasMode, + FLOAT originX, + FLOAT originY, + IDWriteGlyphRunAnalysis **analysis); + + /*** IDWriteFactory3 methods ***/ + HRESULT (STDMETHODCALLTYPE *IDWriteFactory3_CreateGlyphRunAnalysis)( + IDWriteFactory4 *This, + const DWRITE_GLYPH_RUN *run, + const DWRITE_MATRIX *transform, + DWRITE_RENDERING_MODE1 rendering_mode, + DWRITE_MEASURING_MODE measuring_mode, + DWRITE_GRID_FIT_MODE gridfit_mode, + DWRITE_TEXT_ANTIALIAS_MODE antialias_mode, + FLOAT origin_x, + FLOAT origin_y, + IDWriteGlyphRunAnalysis **analysis); + + HRESULT (STDMETHODCALLTYPE *IDWriteFactory3_CreateCustomRenderingParams)( + IDWriteFactory4 *This, + FLOAT gamma, + FLOAT enhanced_contrast, + FLOAT grayscale_enhanced_contrast, + FLOAT cleartype_level, + DWRITE_PIXEL_GEOMETRY pixel_geometry, + DWRITE_RENDERING_MODE1 rendering_mode, + DWRITE_GRID_FIT_MODE gridfit_mode, + IDWriteRenderingParams3 **params); + + HRESULT (STDMETHODCALLTYPE *CreateFontFaceReference_)( + IDWriteFactory4 *This, + IDWriteFontFile *file, + UINT32 index, + DWRITE_FONT_SIMULATIONS simulations, + IDWriteFontFaceReference **reference); + + HRESULT (STDMETHODCALLTYPE *CreateFontFaceReference)( + IDWriteFactory4 *This, + const WCHAR *path, + const FILETIME *writetime, + UINT32 index, + DWRITE_FONT_SIMULATIONS simulations, + IDWriteFontFaceReference **reference); + + HRESULT (STDMETHODCALLTYPE *GetSystemFontSet)( + IDWriteFactory4 *This, + IDWriteFontSet **fontset); + + HRESULT (STDMETHODCALLTYPE *CreateFontSetBuilder)( + IDWriteFactory4 *This, + IDWriteFontSetBuilder **builder); + + HRESULT (STDMETHODCALLTYPE *CreateFontCollectionFromFontSet)( + IDWriteFactory4 *This, + IDWriteFontSet *fontset, + IDWriteFontCollection1 **collection); + + HRESULT (STDMETHODCALLTYPE *IDWriteFactory3_GetSystemFontCollection)( + IDWriteFactory4 *This, + WINBOOL include_downloadable, + IDWriteFontCollection1 **collection, + WINBOOL check_for_updates); + + HRESULT (STDMETHODCALLTYPE *GetFontDownloadQueue)( + IDWriteFactory4 *This, + IDWriteFontDownloadQueue **queue); + + /*** IDWriteFactory4 methods ***/ + HRESULT (STDMETHODCALLTYPE *IDWriteFactory4_TranslateColorGlyphRun)( + IDWriteFactory4 *This, + D2D1_POINT_2F baseline_origin, + const DWRITE_GLYPH_RUN *run, + const DWRITE_GLYPH_RUN_DESCRIPTION *run_desc, + DWRITE_GLYPH_IMAGE_FORMATS desired_formats, + DWRITE_MEASURING_MODE measuring_mode, + const DWRITE_MATRIX *transform, + UINT32 palette, + IDWriteColorGlyphRunEnumerator1 **layers); + + HRESULT (STDMETHODCALLTYPE *ComputeGlyphOrigins_)( + IDWriteFactory4 *This, + const DWRITE_GLYPH_RUN *run, + D2D1_POINT_2F baseline_origin, + D2D1_POINT_2F *origins); + + HRESULT (STDMETHODCALLTYPE *ComputeGlyphOrigins)( + IDWriteFactory4 *This, + const DWRITE_GLYPH_RUN *run, + DWRITE_MEASURING_MODE measuring_mode, + D2D1_POINT_2F baseline_origin, + const DWRITE_MATRIX *transform, + D2D1_POINT_2F *origins); + + END_INTERFACE +} IDWriteFactory4Vtbl; + +interface IDWriteFactory4 { + CONST_VTBL IDWriteFactory4Vtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDWriteFactory4_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteFactory4_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDWriteFactory4_Release(This) (This)->lpVtbl->Release(This) +/*** IDWriteFactory methods ***/ +#define IDWriteFactory4_CreateCustomFontCollection(This,loader,key,key_size,collection) (This)->lpVtbl->CreateCustomFontCollection(This,loader,key,key_size,collection) +#define IDWriteFactory4_RegisterFontCollectionLoader(This,loader) (This)->lpVtbl->RegisterFontCollectionLoader(This,loader) +#define IDWriteFactory4_UnregisterFontCollectionLoader(This,loader) (This)->lpVtbl->UnregisterFontCollectionLoader(This,loader) +#define IDWriteFactory4_CreateFontFileReference(This,path,writetime,font_file) (This)->lpVtbl->CreateFontFileReference(This,path,writetime,font_file) +#define IDWriteFactory4_CreateCustomFontFileReference(This,reference_key,key_size,loader,font_file) (This)->lpVtbl->CreateCustomFontFileReference(This,reference_key,key_size,loader,font_file) +#define IDWriteFactory4_CreateFontFace(This,facetype,files_number,font_files,index,sim_flags,font_face) (This)->lpVtbl->CreateFontFace(This,facetype,files_number,font_files,index,sim_flags,font_face) +#define IDWriteFactory4_CreateRenderingParams(This,params) (This)->lpVtbl->CreateRenderingParams(This,params) +#define IDWriteFactory4_CreateMonitorRenderingParams(This,monitor,params) (This)->lpVtbl->CreateMonitorRenderingParams(This,monitor,params) +#define IDWriteFactory4_RegisterFontFileLoader(This,loader) (This)->lpVtbl->RegisterFontFileLoader(This,loader) +#define IDWriteFactory4_UnregisterFontFileLoader(This,loader) (This)->lpVtbl->UnregisterFontFileLoader(This,loader) +#define IDWriteFactory4_CreateTextFormat(This,family_name,collection,weight,style,stretch,size,locale,format) (This)->lpVtbl->CreateTextFormat(This,family_name,collection,weight,style,stretch,size,locale,format) +#define IDWriteFactory4_CreateTypography(This,typography) (This)->lpVtbl->CreateTypography(This,typography) +#define IDWriteFactory4_GetGdiInterop(This,gdi_interop) (This)->lpVtbl->GetGdiInterop(This,gdi_interop) +#define IDWriteFactory4_CreateTextLayout(This,string,len,format,max_width,max_height,layout) (This)->lpVtbl->CreateTextLayout(This,string,len,format,max_width,max_height,layout) +#define IDWriteFactory4_CreateGdiCompatibleTextLayout(This,string,len,format,layout_width,layout_height,pixels_per_dip,transform,use_gdi_natural,layout) (This)->lpVtbl->CreateGdiCompatibleTextLayout(This,string,len,format,layout_width,layout_height,pixels_per_dip,transform,use_gdi_natural,layout) +#define IDWriteFactory4_CreateEllipsisTrimmingSign(This,format,trimming_sign) (This)->lpVtbl->CreateEllipsisTrimmingSign(This,format,trimming_sign) +#define IDWriteFactory4_CreateTextAnalyzer(This,analyzer) (This)->lpVtbl->CreateTextAnalyzer(This,analyzer) +#define IDWriteFactory4_CreateNumberSubstitution(This,method,locale,ignore_user_override,substitution) (This)->lpVtbl->CreateNumberSubstitution(This,method,locale,ignore_user_override,substitution) +/*** IDWriteFactory1 methods ***/ +#define IDWriteFactory4_GetEudcFontCollection(This,collection,check_for_updates) (This)->lpVtbl->GetEudcFontCollection(This,collection,check_for_updates) +/*** IDWriteFactory2 methods ***/ +#define IDWriteFactory4_GetSystemFontFallback(This,fallback) (This)->lpVtbl->GetSystemFontFallback(This,fallback) +#define IDWriteFactory4_CreateFontFallbackBuilder(This,fallbackbuilder) (This)->lpVtbl->CreateFontFallbackBuilder(This,fallbackbuilder) +/*** IDWriteFactory3 methods ***/ +#define IDWriteFactory4_CreateGlyphRunAnalysis(This,run,transform,rendering_mode,measuring_mode,gridfit_mode,antialias_mode,origin_x,origin_y,analysis) (This)->lpVtbl->IDWriteFactory3_CreateGlyphRunAnalysis(This,run,transform,rendering_mode,measuring_mode,gridfit_mode,antialias_mode,origin_x,origin_y,analysis) +#define IDWriteFactory4_CreateCustomRenderingParams(This,gamma,enhanced_contrast,grayscale_enhanced_contrast,cleartype_level,pixel_geometry,rendering_mode,gridfit_mode,params) (This)->lpVtbl->IDWriteFactory3_CreateCustomRenderingParams(This,gamma,enhanced_contrast,grayscale_enhanced_contrast,cleartype_level,pixel_geometry,rendering_mode,gridfit_mode,params) +#define IDWriteFactory4_CreateFontFaceReference_(This,file,index,simulations,reference) (This)->lpVtbl->CreateFontFaceReference_(This,file,index,simulations,reference) +#define IDWriteFactory4_CreateFontFaceReference(This,path,writetime,index,simulations,reference) (This)->lpVtbl->CreateFontFaceReference(This,path,writetime,index,simulations,reference) +#define IDWriteFactory4_GetSystemFontSet(This,fontset) (This)->lpVtbl->GetSystemFontSet(This,fontset) +#define IDWriteFactory4_CreateFontSetBuilder(This,builder) (This)->lpVtbl->CreateFontSetBuilder(This,builder) +#define IDWriteFactory4_CreateFontCollectionFromFontSet(This,fontset,collection) (This)->lpVtbl->CreateFontCollectionFromFontSet(This,fontset,collection) +#define IDWriteFactory4_GetSystemFontCollection(This,include_downloadable,collection,check_for_updates) (This)->lpVtbl->IDWriteFactory3_GetSystemFontCollection(This,include_downloadable,collection,check_for_updates) +#define IDWriteFactory4_GetFontDownloadQueue(This,queue) (This)->lpVtbl->GetFontDownloadQueue(This,queue) +/*** IDWriteFactory4 methods ***/ +#define IDWriteFactory4_TranslateColorGlyphRun(This,baseline_origin,run,run_desc,desired_formats,measuring_mode,transform,palette,layers) (This)->lpVtbl->IDWriteFactory4_TranslateColorGlyphRun(This,baseline_origin,run,run_desc,desired_formats,measuring_mode,transform,palette,layers) +#define IDWriteFactory4_ComputeGlyphOrigins_(This,run,baseline_origin,origins) (This)->lpVtbl->ComputeGlyphOrigins_(This,run,baseline_origin,origins) +#define IDWriteFactory4_ComputeGlyphOrigins(This,run,measuring_mode,baseline_origin,transform,origins) (This)->lpVtbl->ComputeGlyphOrigins(This,run,measuring_mode,baseline_origin,transform,origins) +#else +/*** IUnknown methods ***/ +static inline HRESULT IDWriteFactory4_QueryInterface(IDWriteFactory4* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static inline ULONG IDWriteFactory4_AddRef(IDWriteFactory4* This) { + return This->lpVtbl->AddRef(This); +} +static inline ULONG IDWriteFactory4_Release(IDWriteFactory4* This) { + return This->lpVtbl->Release(This); +} +/*** IDWriteFactory methods ***/ +static inline HRESULT IDWriteFactory4_CreateCustomFontCollection(IDWriteFactory4* This,IDWriteFontCollectionLoader *loader,const void *key,UINT32 key_size,IDWriteFontCollection **collection) { + return This->lpVtbl->CreateCustomFontCollection(This,loader,key,key_size,collection); +} +static inline HRESULT IDWriteFactory4_RegisterFontCollectionLoader(IDWriteFactory4* This,IDWriteFontCollectionLoader *loader) { + return This->lpVtbl->RegisterFontCollectionLoader(This,loader); +} +static inline HRESULT IDWriteFactory4_UnregisterFontCollectionLoader(IDWriteFactory4* This,IDWriteFontCollectionLoader *loader) { + return This->lpVtbl->UnregisterFontCollectionLoader(This,loader); +} +static inline HRESULT IDWriteFactory4_CreateFontFileReference(IDWriteFactory4* This,const WCHAR *path,const FILETIME *writetime,IDWriteFontFile **font_file) { + return This->lpVtbl->CreateFontFileReference(This,path,writetime,font_file); +} +static inline HRESULT IDWriteFactory4_CreateCustomFontFileReference(IDWriteFactory4* This,const void *reference_key,UINT32 key_size,IDWriteFontFileLoader *loader,IDWriteFontFile **font_file) { + return This->lpVtbl->CreateCustomFontFileReference(This,reference_key,key_size,loader,font_file); +} +static inline HRESULT IDWriteFactory4_CreateFontFace(IDWriteFactory4* This,DWRITE_FONT_FACE_TYPE facetype,UINT32 files_number,IDWriteFontFile *const *font_files,UINT32 index,DWRITE_FONT_SIMULATIONS sim_flags,IDWriteFontFace **font_face) { + return This->lpVtbl->CreateFontFace(This,facetype,files_number,font_files,index,sim_flags,font_face); +} +static inline HRESULT IDWriteFactory4_CreateRenderingParams(IDWriteFactory4* This,IDWriteRenderingParams **params) { + return This->lpVtbl->CreateRenderingParams(This,params); +} +static inline HRESULT IDWriteFactory4_CreateMonitorRenderingParams(IDWriteFactory4* This,HMONITOR monitor,IDWriteRenderingParams **params) { + return This->lpVtbl->CreateMonitorRenderingParams(This,monitor,params); +} +static inline HRESULT IDWriteFactory4_RegisterFontFileLoader(IDWriteFactory4* This,IDWriteFontFileLoader *loader) { + return This->lpVtbl->RegisterFontFileLoader(This,loader); +} +static inline HRESULT IDWriteFactory4_UnregisterFontFileLoader(IDWriteFactory4* This,IDWriteFontFileLoader *loader) { + return This->lpVtbl->UnregisterFontFileLoader(This,loader); +} +static inline HRESULT IDWriteFactory4_CreateTextFormat(IDWriteFactory4* This,const WCHAR *family_name,IDWriteFontCollection *collection,DWRITE_FONT_WEIGHT weight,DWRITE_FONT_STYLE style,DWRITE_FONT_STRETCH stretch,FLOAT size,const WCHAR *locale,IDWriteTextFormat **format) { + return This->lpVtbl->CreateTextFormat(This,family_name,collection,weight,style,stretch,size,locale,format); +} +static inline HRESULT IDWriteFactory4_CreateTypography(IDWriteFactory4* This,IDWriteTypography **typography) { + return This->lpVtbl->CreateTypography(This,typography); +} +static inline HRESULT IDWriteFactory4_GetGdiInterop(IDWriteFactory4* This,IDWriteGdiInterop **gdi_interop) { + return This->lpVtbl->GetGdiInterop(This,gdi_interop); +} +static inline HRESULT IDWriteFactory4_CreateTextLayout(IDWriteFactory4* This,const WCHAR *string,UINT32 len,IDWriteTextFormat *format,FLOAT max_width,FLOAT max_height,IDWriteTextLayout **layout) { + return This->lpVtbl->CreateTextLayout(This,string,len,format,max_width,max_height,layout); +} +static inline HRESULT IDWriteFactory4_CreateGdiCompatibleTextLayout(IDWriteFactory4* This,const WCHAR *string,UINT32 len,IDWriteTextFormat *format,FLOAT layout_width,FLOAT layout_height,FLOAT pixels_per_dip,const DWRITE_MATRIX *transform,WINBOOL use_gdi_natural,IDWriteTextLayout **layout) { + return This->lpVtbl->CreateGdiCompatibleTextLayout(This,string,len,format,layout_width,layout_height,pixels_per_dip,transform,use_gdi_natural,layout); +} +static inline HRESULT IDWriteFactory4_CreateEllipsisTrimmingSign(IDWriteFactory4* This,IDWriteTextFormat *format,IDWriteInlineObject **trimming_sign) { + return This->lpVtbl->CreateEllipsisTrimmingSign(This,format,trimming_sign); +} +static inline HRESULT IDWriteFactory4_CreateTextAnalyzer(IDWriteFactory4* This,IDWriteTextAnalyzer **analyzer) { + return This->lpVtbl->CreateTextAnalyzer(This,analyzer); +} +static inline HRESULT IDWriteFactory4_CreateNumberSubstitution(IDWriteFactory4* This,DWRITE_NUMBER_SUBSTITUTION_METHOD method,const WCHAR *locale,WINBOOL ignore_user_override,IDWriteNumberSubstitution **substitution) { + return This->lpVtbl->CreateNumberSubstitution(This,method,locale,ignore_user_override,substitution); +} +/*** IDWriteFactory1 methods ***/ +static inline HRESULT IDWriteFactory4_GetEudcFontCollection(IDWriteFactory4* This,IDWriteFontCollection **collection,WINBOOL check_for_updates) { + return This->lpVtbl->GetEudcFontCollection(This,collection,check_for_updates); +} +/*** IDWriteFactory2 methods ***/ +static inline HRESULT IDWriteFactory4_GetSystemFontFallback(IDWriteFactory4* This,IDWriteFontFallback **fallback) { + return This->lpVtbl->GetSystemFontFallback(This,fallback); +} +static inline HRESULT IDWriteFactory4_CreateFontFallbackBuilder(IDWriteFactory4* This,IDWriteFontFallbackBuilder **fallbackbuilder) { + return This->lpVtbl->CreateFontFallbackBuilder(This,fallbackbuilder); +} +/*** IDWriteFactory3 methods ***/ +static inline HRESULT IDWriteFactory4_CreateGlyphRunAnalysis(IDWriteFactory4* This,const DWRITE_GLYPH_RUN *run,const DWRITE_MATRIX *transform,DWRITE_RENDERING_MODE1 rendering_mode,DWRITE_MEASURING_MODE measuring_mode,DWRITE_GRID_FIT_MODE gridfit_mode,DWRITE_TEXT_ANTIALIAS_MODE antialias_mode,FLOAT origin_x,FLOAT origin_y,IDWriteGlyphRunAnalysis **analysis) { + return This->lpVtbl->IDWriteFactory3_CreateGlyphRunAnalysis(This,run,transform,rendering_mode,measuring_mode,gridfit_mode,antialias_mode,origin_x,origin_y,analysis); +} +static inline HRESULT IDWriteFactory4_CreateCustomRenderingParams(IDWriteFactory4* This,FLOAT gamma,FLOAT enhanced_contrast,FLOAT grayscale_enhanced_contrast,FLOAT cleartype_level,DWRITE_PIXEL_GEOMETRY pixel_geometry,DWRITE_RENDERING_MODE1 rendering_mode,DWRITE_GRID_FIT_MODE gridfit_mode,IDWriteRenderingParams3 **params) { + return This->lpVtbl->IDWriteFactory3_CreateCustomRenderingParams(This,gamma,enhanced_contrast,grayscale_enhanced_contrast,cleartype_level,pixel_geometry,rendering_mode,gridfit_mode,params); +} +static inline HRESULT IDWriteFactory4_CreateFontFaceReference_(IDWriteFactory4* This,IDWriteFontFile *file,UINT32 index,DWRITE_FONT_SIMULATIONS simulations,IDWriteFontFaceReference **reference) { + return This->lpVtbl->CreateFontFaceReference_(This,file,index,simulations,reference); +} +static inline HRESULT IDWriteFactory4_CreateFontFaceReference(IDWriteFactory4* This,const WCHAR *path,const FILETIME *writetime,UINT32 index,DWRITE_FONT_SIMULATIONS simulations,IDWriteFontFaceReference **reference) { + return This->lpVtbl->CreateFontFaceReference(This,path,writetime,index,simulations,reference); +} +static inline HRESULT IDWriteFactory4_GetSystemFontSet(IDWriteFactory4* This,IDWriteFontSet **fontset) { + return This->lpVtbl->GetSystemFontSet(This,fontset); +} +static inline HRESULT IDWriteFactory4_CreateFontSetBuilder(IDWriteFactory4* This,IDWriteFontSetBuilder **builder) { + return This->lpVtbl->CreateFontSetBuilder(This,builder); +} +static inline HRESULT IDWriteFactory4_CreateFontCollectionFromFontSet(IDWriteFactory4* This,IDWriteFontSet *fontset,IDWriteFontCollection1 **collection) { + return This->lpVtbl->CreateFontCollectionFromFontSet(This,fontset,collection); +} +static inline HRESULT IDWriteFactory4_GetSystemFontCollection(IDWriteFactory4* This,WINBOOL include_downloadable,IDWriteFontCollection1 **collection,WINBOOL check_for_updates) { + return This->lpVtbl->IDWriteFactory3_GetSystemFontCollection(This,include_downloadable,collection,check_for_updates); +} +static inline HRESULT IDWriteFactory4_GetFontDownloadQueue(IDWriteFactory4* This,IDWriteFontDownloadQueue **queue) { + return This->lpVtbl->GetFontDownloadQueue(This,queue); +} +/*** IDWriteFactory4 methods ***/ +static inline HRESULT IDWriteFactory4_TranslateColorGlyphRun(IDWriteFactory4* This,D2D1_POINT_2F baseline_origin,const DWRITE_GLYPH_RUN *run,const DWRITE_GLYPH_RUN_DESCRIPTION *run_desc,DWRITE_GLYPH_IMAGE_FORMATS desired_formats,DWRITE_MEASURING_MODE measuring_mode,const DWRITE_MATRIX *transform,UINT32 palette,IDWriteColorGlyphRunEnumerator1 **layers) { + return This->lpVtbl->IDWriteFactory4_TranslateColorGlyphRun(This,baseline_origin,run,run_desc,desired_formats,measuring_mode,transform,palette,layers); +} +static inline HRESULT IDWriteFactory4_ComputeGlyphOrigins_(IDWriteFactory4* This,const DWRITE_GLYPH_RUN *run,D2D1_POINT_2F baseline_origin,D2D1_POINT_2F *origins) { + return This->lpVtbl->ComputeGlyphOrigins_(This,run,baseline_origin,origins); +} +static inline HRESULT IDWriteFactory4_ComputeGlyphOrigins(IDWriteFactory4* This,const DWRITE_GLYPH_RUN *run,DWRITE_MEASURING_MODE measuring_mode,D2D1_POINT_2F baseline_origin,const DWRITE_MATRIX *transform,D2D1_POINT_2F *origins) { + return This->lpVtbl->ComputeGlyphOrigins(This,run,measuring_mode,baseline_origin,transform,origins); +} +#endif +#endif + +#endif + + +#endif /* __IDWriteFactory4_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IDWriteAsyncResult interface + */ +#ifndef __IDWriteAsyncResult_INTERFACE_DEFINED__ +#define __IDWriteAsyncResult_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDWriteAsyncResult, 0xce25f8fd, 0x863b, 0x4d13, 0x96,0x51, 0xc1,0xf8,0x8d,0xc7,0x3f,0xe2); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("ce25f8fd-863b-4d13-9651-c1f88dc73fe2") +IDWriteAsyncResult : public IUnknown +{ + virtual HANDLE STDMETHODCALLTYPE GetWaitHandle( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetResult( + ) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDWriteAsyncResult, 0xce25f8fd, 0x863b, 0x4d13, 0x96,0x51, 0xc1,0xf8,0x8d,0xc7,0x3f,0xe2) +#endif +#else +typedef struct IDWriteAsyncResultVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDWriteAsyncResult *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDWriteAsyncResult *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDWriteAsyncResult *This); + + /*** IDWriteAsyncResult methods ***/ + HANDLE (STDMETHODCALLTYPE *GetWaitHandle)( + IDWriteAsyncResult *This); + + HRESULT (STDMETHODCALLTYPE *GetResult)( + IDWriteAsyncResult *This); + + END_INTERFACE +} IDWriteAsyncResultVtbl; + +interface IDWriteAsyncResult { + CONST_VTBL IDWriteAsyncResultVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDWriteAsyncResult_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteAsyncResult_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDWriteAsyncResult_Release(This) (This)->lpVtbl->Release(This) +/*** IDWriteAsyncResult methods ***/ +#define IDWriteAsyncResult_GetWaitHandle(This) (This)->lpVtbl->GetWaitHandle(This) +#define IDWriteAsyncResult_GetResult(This) (This)->lpVtbl->GetResult(This) +#else +/*** IUnknown methods ***/ +static inline HRESULT IDWriteAsyncResult_QueryInterface(IDWriteAsyncResult* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static inline ULONG IDWriteAsyncResult_AddRef(IDWriteAsyncResult* This) { + return This->lpVtbl->AddRef(This); +} +static inline ULONG IDWriteAsyncResult_Release(IDWriteAsyncResult* This) { + return This->lpVtbl->Release(This); +} +/*** IDWriteAsyncResult methods ***/ +static inline HANDLE IDWriteAsyncResult_GetWaitHandle(IDWriteAsyncResult* This) { + return This->lpVtbl->GetWaitHandle(This); +} +static inline HRESULT IDWriteAsyncResult_GetResult(IDWriteAsyncResult* This) { + return This->lpVtbl->GetResult(This); +} +#endif +#endif + +#endif + + +#endif /* __IDWriteAsyncResult_INTERFACE_DEFINED__ */ + +typedef struct DWRITE_FILE_FRAGMENT { + UINT64 fileOffset; + UINT64 fragmentSize; +} DWRITE_FILE_FRAGMENT; +/***************************************************************************** + * IDWriteRemoteFontFileStream interface + */ +#ifndef __IDWriteRemoteFontFileStream_INTERFACE_DEFINED__ +#define __IDWriteRemoteFontFileStream_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDWriteRemoteFontFileStream, 0x4db3757a, 0x2c72, 0x4ed9, 0xb2,0xb6, 0x1a,0xba,0xbe,0x1a,0xff,0x9c); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("4db3757a-2c72-4ed9-b2b6-1ababe1aff9c") +IDWriteRemoteFontFileStream : public IDWriteFontFileStream +{ + virtual HRESULT STDMETHODCALLTYPE GetLocalFileSize( + UINT64 *size) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetFileFragmentLocality( + UINT64 offset, + UINT64 size, + WINBOOL *is_local, + UINT64 *partial_size) = 0; + + virtual DWRITE_LOCALITY STDMETHODCALLTYPE GetLocality( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE BeginDownload( + const GUID *operation_id, + const DWRITE_FILE_FRAGMENT *fragments, + UINT32 fragment_count, + IDWriteAsyncResult **async_result) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDWriteRemoteFontFileStream, 0x4db3757a, 0x2c72, 0x4ed9, 0xb2,0xb6, 0x1a,0xba,0xbe,0x1a,0xff,0x9c) +#endif +#else +typedef struct IDWriteRemoteFontFileStreamVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDWriteRemoteFontFileStream *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDWriteRemoteFontFileStream *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDWriteRemoteFontFileStream *This); + + /*** IDWriteFontFileStream methods ***/ + HRESULT (STDMETHODCALLTYPE *ReadFileFragment)( + IDWriteRemoteFontFileStream *This, + const void **fragment_start, + UINT64 offset, + UINT64 fragment_size, + void **fragment_context); + + void (STDMETHODCALLTYPE *ReleaseFileFragment)( + IDWriteRemoteFontFileStream *This, + void *fragment_context); + + HRESULT (STDMETHODCALLTYPE *GetFileSize)( + IDWriteRemoteFontFileStream *This, + UINT64 *size); + + HRESULT (STDMETHODCALLTYPE *GetLastWriteTime)( + IDWriteRemoteFontFileStream *This, + UINT64 *last_writetime); + + /*** IDWriteRemoteFontFileStream methods ***/ + HRESULT (STDMETHODCALLTYPE *GetLocalFileSize)( + IDWriteRemoteFontFileStream *This, + UINT64 *size); + + HRESULT (STDMETHODCALLTYPE *GetFileFragmentLocality)( + IDWriteRemoteFontFileStream *This, + UINT64 offset, + UINT64 size, + WINBOOL *is_local, + UINT64 *partial_size); + + DWRITE_LOCALITY (STDMETHODCALLTYPE *GetLocality)( + IDWriteRemoteFontFileStream *This); + + HRESULT (STDMETHODCALLTYPE *BeginDownload)( + IDWriteRemoteFontFileStream *This, + const GUID *operation_id, + const DWRITE_FILE_FRAGMENT *fragments, + UINT32 fragment_count, + IDWriteAsyncResult **async_result); + + END_INTERFACE +} IDWriteRemoteFontFileStreamVtbl; + +interface IDWriteRemoteFontFileStream { + CONST_VTBL IDWriteRemoteFontFileStreamVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDWriteRemoteFontFileStream_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteRemoteFontFileStream_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDWriteRemoteFontFileStream_Release(This) (This)->lpVtbl->Release(This) +/*** IDWriteFontFileStream methods ***/ +#define IDWriteRemoteFontFileStream_ReadFileFragment(This,fragment_start,offset,fragment_size,fragment_context) (This)->lpVtbl->ReadFileFragment(This,fragment_start,offset,fragment_size,fragment_context) +#define IDWriteRemoteFontFileStream_ReleaseFileFragment(This,fragment_context) (This)->lpVtbl->ReleaseFileFragment(This,fragment_context) +#define IDWriteRemoteFontFileStream_GetFileSize(This,size) (This)->lpVtbl->GetFileSize(This,size) +#define IDWriteRemoteFontFileStream_GetLastWriteTime(This,last_writetime) (This)->lpVtbl->GetLastWriteTime(This,last_writetime) +/*** IDWriteRemoteFontFileStream methods ***/ +#define IDWriteRemoteFontFileStream_GetLocalFileSize(This,size) (This)->lpVtbl->GetLocalFileSize(This,size) +#define IDWriteRemoteFontFileStream_GetFileFragmentLocality(This,offset,size,is_local,partial_size) (This)->lpVtbl->GetFileFragmentLocality(This,offset,size,is_local,partial_size) +#define IDWriteRemoteFontFileStream_GetLocality(This) (This)->lpVtbl->GetLocality(This) +#define IDWriteRemoteFontFileStream_BeginDownload(This,operation_id,fragments,fragment_count,async_result) (This)->lpVtbl->BeginDownload(This,operation_id,fragments,fragment_count,async_result) +#else +/*** IUnknown methods ***/ +static inline HRESULT IDWriteRemoteFontFileStream_QueryInterface(IDWriteRemoteFontFileStream* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static inline ULONG IDWriteRemoteFontFileStream_AddRef(IDWriteRemoteFontFileStream* This) { + return This->lpVtbl->AddRef(This); +} +static inline ULONG IDWriteRemoteFontFileStream_Release(IDWriteRemoteFontFileStream* This) { + return This->lpVtbl->Release(This); +} +/*** IDWriteFontFileStream methods ***/ +static inline HRESULT IDWriteRemoteFontFileStream_ReadFileFragment(IDWriteRemoteFontFileStream* This,const void **fragment_start,UINT64 offset,UINT64 fragment_size,void **fragment_context) { + return This->lpVtbl->ReadFileFragment(This,fragment_start,offset,fragment_size,fragment_context); +} +static inline void IDWriteRemoteFontFileStream_ReleaseFileFragment(IDWriteRemoteFontFileStream* This,void *fragment_context) { + This->lpVtbl->ReleaseFileFragment(This,fragment_context); +} +static inline HRESULT IDWriteRemoteFontFileStream_GetFileSize(IDWriteRemoteFontFileStream* This,UINT64 *size) { + return This->lpVtbl->GetFileSize(This,size); +} +static inline HRESULT IDWriteRemoteFontFileStream_GetLastWriteTime(IDWriteRemoteFontFileStream* This,UINT64 *last_writetime) { + return This->lpVtbl->GetLastWriteTime(This,last_writetime); +} +/*** IDWriteRemoteFontFileStream methods ***/ +static inline HRESULT IDWriteRemoteFontFileStream_GetLocalFileSize(IDWriteRemoteFontFileStream* This,UINT64 *size) { + return This->lpVtbl->GetLocalFileSize(This,size); +} +static inline HRESULT IDWriteRemoteFontFileStream_GetFileFragmentLocality(IDWriteRemoteFontFileStream* This,UINT64 offset,UINT64 size,WINBOOL *is_local,UINT64 *partial_size) { + return This->lpVtbl->GetFileFragmentLocality(This,offset,size,is_local,partial_size); +} +static inline DWRITE_LOCALITY IDWriteRemoteFontFileStream_GetLocality(IDWriteRemoteFontFileStream* This) { + return This->lpVtbl->GetLocality(This); +} +static inline HRESULT IDWriteRemoteFontFileStream_BeginDownload(IDWriteRemoteFontFileStream* This,const GUID *operation_id,const DWRITE_FILE_FRAGMENT *fragments,UINT32 fragment_count,IDWriteAsyncResult **async_result) { + return This->lpVtbl->BeginDownload(This,operation_id,fragments,fragment_count,async_result); +} +#endif +#endif + +#endif + + +#endif /* __IDWriteRemoteFontFileStream_INTERFACE_DEFINED__ */ + +typedef enum DWRITE_CONTAINER_TYPE { + DWRITE_CONTAINER_TYPE_UNKNOWN = 0, + DWRITE_CONTAINER_TYPE_WOFF = 1, + DWRITE_CONTAINER_TYPE_WOFF2 = 2 +} DWRITE_CONTAINER_TYPE; +/***************************************************************************** + * IDWriteRemoteFontFileLoader interface + */ +#ifndef __IDWriteRemoteFontFileLoader_INTERFACE_DEFINED__ +#define __IDWriteRemoteFontFileLoader_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDWriteRemoteFontFileLoader, 0x68648c83, 0x6ede, 0x46c0, 0xab,0x46, 0x20,0x08,0x3a,0x88,0x7f,0xde); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("68648c83-6ede-46c0-ab46-20083a887fde") +IDWriteRemoteFontFileLoader : public IDWriteFontFileLoader +{ + virtual HRESULT STDMETHODCALLTYPE CreateRemoteStreamFromKey( + const void *key, + UINT32 key_size, + IDWriteRemoteFontFileStream **stream) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetLocalityFromKey( + const void *key, + UINT32 key_size, + DWRITE_LOCALITY *locality) = 0; + + virtual HRESULT STDMETHODCALLTYPE CreateFontFileReferenceFromUrl( + IDWriteFactory *factory, + const WCHAR *base_url, + const WCHAR *file_url, + IDWriteFontFile **fontfile) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDWriteRemoteFontFileLoader, 0x68648c83, 0x6ede, 0x46c0, 0xab,0x46, 0x20,0x08,0x3a,0x88,0x7f,0xde) +#endif +#else +typedef struct IDWriteRemoteFontFileLoaderVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDWriteRemoteFontFileLoader *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDWriteRemoteFontFileLoader *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDWriteRemoteFontFileLoader *This); + + /*** IDWriteFontFileLoader methods ***/ + HRESULT (STDMETHODCALLTYPE *CreateStreamFromKey)( + IDWriteRemoteFontFileLoader *This, + const void *key, + UINT32 key_size, + IDWriteFontFileStream **stream); + + /*** IDWriteRemoteFontFileLoader methods ***/ + HRESULT (STDMETHODCALLTYPE *CreateRemoteStreamFromKey)( + IDWriteRemoteFontFileLoader *This, + const void *key, + UINT32 key_size, + IDWriteRemoteFontFileStream **stream); + + HRESULT (STDMETHODCALLTYPE *GetLocalityFromKey)( + IDWriteRemoteFontFileLoader *This, + const void *key, + UINT32 key_size, + DWRITE_LOCALITY *locality); + + HRESULT (STDMETHODCALLTYPE *CreateFontFileReferenceFromUrl)( + IDWriteRemoteFontFileLoader *This, + IDWriteFactory *factory, + const WCHAR *base_url, + const WCHAR *file_url, + IDWriteFontFile **fontfile); + + END_INTERFACE +} IDWriteRemoteFontFileLoaderVtbl; + +interface IDWriteRemoteFontFileLoader { + CONST_VTBL IDWriteRemoteFontFileLoaderVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDWriteRemoteFontFileLoader_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteRemoteFontFileLoader_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDWriteRemoteFontFileLoader_Release(This) (This)->lpVtbl->Release(This) +/*** IDWriteFontFileLoader methods ***/ +#define IDWriteRemoteFontFileLoader_CreateStreamFromKey(This,key,key_size,stream) (This)->lpVtbl->CreateStreamFromKey(This,key,key_size,stream) +/*** IDWriteRemoteFontFileLoader methods ***/ +#define IDWriteRemoteFontFileLoader_CreateRemoteStreamFromKey(This,key,key_size,stream) (This)->lpVtbl->CreateRemoteStreamFromKey(This,key,key_size,stream) +#define IDWriteRemoteFontFileLoader_GetLocalityFromKey(This,key,key_size,locality) (This)->lpVtbl->GetLocalityFromKey(This,key,key_size,locality) +#define IDWriteRemoteFontFileLoader_CreateFontFileReferenceFromUrl(This,factory,base_url,file_url,fontfile) (This)->lpVtbl->CreateFontFileReferenceFromUrl(This,factory,base_url,file_url,fontfile) +#else +/*** IUnknown methods ***/ +static inline HRESULT IDWriteRemoteFontFileLoader_QueryInterface(IDWriteRemoteFontFileLoader* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static inline ULONG IDWriteRemoteFontFileLoader_AddRef(IDWriteRemoteFontFileLoader* This) { + return This->lpVtbl->AddRef(This); +} +static inline ULONG IDWriteRemoteFontFileLoader_Release(IDWriteRemoteFontFileLoader* This) { + return This->lpVtbl->Release(This); +} +/*** IDWriteFontFileLoader methods ***/ +static inline HRESULT IDWriteRemoteFontFileLoader_CreateStreamFromKey(IDWriteRemoteFontFileLoader* This,const void *key,UINT32 key_size,IDWriteFontFileStream **stream) { + return This->lpVtbl->CreateStreamFromKey(This,key,key_size,stream); +} +/*** IDWriteRemoteFontFileLoader methods ***/ +static inline HRESULT IDWriteRemoteFontFileLoader_CreateRemoteStreamFromKey(IDWriteRemoteFontFileLoader* This,const void *key,UINT32 key_size,IDWriteRemoteFontFileStream **stream) { + return This->lpVtbl->CreateRemoteStreamFromKey(This,key,key_size,stream); +} +static inline HRESULT IDWriteRemoteFontFileLoader_GetLocalityFromKey(IDWriteRemoteFontFileLoader* This,const void *key,UINT32 key_size,DWRITE_LOCALITY *locality) { + return This->lpVtbl->GetLocalityFromKey(This,key,key_size,locality); +} +static inline HRESULT IDWriteRemoteFontFileLoader_CreateFontFileReferenceFromUrl(IDWriteRemoteFontFileLoader* This,IDWriteFactory *factory,const WCHAR *base_url,const WCHAR *file_url,IDWriteFontFile **fontfile) { + return This->lpVtbl->CreateFontFileReferenceFromUrl(This,factory,base_url,file_url,fontfile); +} +#endif +#endif + +#endif + + +#endif /* __IDWriteRemoteFontFileLoader_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IDWriteInMemoryFontFileLoader interface + */ +#ifndef __IDWriteInMemoryFontFileLoader_INTERFACE_DEFINED__ +#define __IDWriteInMemoryFontFileLoader_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDWriteInMemoryFontFileLoader, 0xdc102f47, 0xa12d, 0x4b1c, 0x82,0x2d, 0x9e,0x11,0x7e,0x33,0x04,0x3f); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("dc102f47-a12d-4b1c-822d-9e117e33043f") +IDWriteInMemoryFontFileLoader : public IDWriteFontFileLoader +{ + virtual HRESULT STDMETHODCALLTYPE CreateInMemoryFontFileReference( + IDWriteFactory *factory, + const void *data, + UINT32 data_size, + IUnknown *owner, + IDWriteFontFile **fontfile) = 0; + + virtual UINT32 STDMETHODCALLTYPE GetFileCount( + ) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDWriteInMemoryFontFileLoader, 0xdc102f47, 0xa12d, 0x4b1c, 0x82,0x2d, 0x9e,0x11,0x7e,0x33,0x04,0x3f) +#endif +#else +typedef struct IDWriteInMemoryFontFileLoaderVtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDWriteInMemoryFontFileLoader *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDWriteInMemoryFontFileLoader *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDWriteInMemoryFontFileLoader *This); + + /*** IDWriteFontFileLoader methods ***/ + HRESULT (STDMETHODCALLTYPE *CreateStreamFromKey)( + IDWriteInMemoryFontFileLoader *This, + const void *key, + UINT32 key_size, + IDWriteFontFileStream **stream); + + /*** IDWriteInMemoryFontFileLoader methods ***/ + HRESULT (STDMETHODCALLTYPE *CreateInMemoryFontFileReference)( + IDWriteInMemoryFontFileLoader *This, + IDWriteFactory *factory, + const void *data, + UINT32 data_size, + IUnknown *owner, + IDWriteFontFile **fontfile); + + UINT32 (STDMETHODCALLTYPE *GetFileCount)( + IDWriteInMemoryFontFileLoader *This); + + END_INTERFACE +} IDWriteInMemoryFontFileLoaderVtbl; + +interface IDWriteInMemoryFontFileLoader { + CONST_VTBL IDWriteInMemoryFontFileLoaderVtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDWriteInMemoryFontFileLoader_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteInMemoryFontFileLoader_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDWriteInMemoryFontFileLoader_Release(This) (This)->lpVtbl->Release(This) +/*** IDWriteFontFileLoader methods ***/ +#define IDWriteInMemoryFontFileLoader_CreateStreamFromKey(This,key,key_size,stream) (This)->lpVtbl->CreateStreamFromKey(This,key,key_size,stream) +/*** IDWriteInMemoryFontFileLoader methods ***/ +#define IDWriteInMemoryFontFileLoader_CreateInMemoryFontFileReference(This,factory,data,data_size,owner,fontfile) (This)->lpVtbl->CreateInMemoryFontFileReference(This,factory,data,data_size,owner,fontfile) +#define IDWriteInMemoryFontFileLoader_GetFileCount(This) (This)->lpVtbl->GetFileCount(This) +#else +/*** IUnknown methods ***/ +static inline HRESULT IDWriteInMemoryFontFileLoader_QueryInterface(IDWriteInMemoryFontFileLoader* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static inline ULONG IDWriteInMemoryFontFileLoader_AddRef(IDWriteInMemoryFontFileLoader* This) { + return This->lpVtbl->AddRef(This); +} +static inline ULONG IDWriteInMemoryFontFileLoader_Release(IDWriteInMemoryFontFileLoader* This) { + return This->lpVtbl->Release(This); +} +/*** IDWriteFontFileLoader methods ***/ +static inline HRESULT IDWriteInMemoryFontFileLoader_CreateStreamFromKey(IDWriteInMemoryFontFileLoader* This,const void *key,UINT32 key_size,IDWriteFontFileStream **stream) { + return This->lpVtbl->CreateStreamFromKey(This,key,key_size,stream); +} +/*** IDWriteInMemoryFontFileLoader methods ***/ +static inline HRESULT IDWriteInMemoryFontFileLoader_CreateInMemoryFontFileReference(IDWriteInMemoryFontFileLoader* This,IDWriteFactory *factory,const void *data,UINT32 data_size,IUnknown *owner,IDWriteFontFile **fontfile) { + return This->lpVtbl->CreateInMemoryFontFileReference(This,factory,data,data_size,owner,fontfile); +} +static inline UINT32 IDWriteInMemoryFontFileLoader_GetFileCount(IDWriteInMemoryFontFileLoader* This) { + return This->lpVtbl->GetFileCount(This); +} +#endif +#endif + +#endif + + +#endif /* __IDWriteInMemoryFontFileLoader_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IDWriteFactory5 interface + */ +#ifndef __IDWriteFactory5_INTERFACE_DEFINED__ +#define __IDWriteFactory5_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDWriteFactory5, 0x958db99a, 0xbe2a, 0x4f09, 0xaf,0x7d, 0x65,0x18,0x98,0x03,0xd1,0xd3); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("958db99a-be2a-4f09-af7d-65189803d1d3") +IDWriteFactory5 : public IDWriteFactory4 +{ + virtual HRESULT STDMETHODCALLTYPE CreateFontSetBuilder( + IDWriteFontSetBuilder1 **fontset_builder) = 0; + + virtual HRESULT STDMETHODCALLTYPE CreateInMemoryFontFileLoader( + IDWriteInMemoryFontFileLoader **loader) = 0; + + virtual HRESULT STDMETHODCALLTYPE CreateHttpFontFileLoader( + const WCHAR *referrer_url, + const WCHAR *extra_headers, + IDWriteRemoteFontFileLoader **loader) = 0; + + virtual DWRITE_CONTAINER_TYPE STDMETHODCALLTYPE AnalyzeContainerType( + const void *data, + UINT32 data_size) = 0; + + virtual HRESULT STDMETHODCALLTYPE UnpackFontFile( + DWRITE_CONTAINER_TYPE container_type, + const void *data, + UINT32 data_size, + IDWriteFontFileStream **stream) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDWriteFactory5, 0x958db99a, 0xbe2a, 0x4f09, 0xaf,0x7d, 0x65,0x18,0x98,0x03,0xd1,0xd3) +#endif +#else +typedef struct IDWriteFactory5Vtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDWriteFactory5 *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDWriteFactory5 *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDWriteFactory5 *This); + + /*** IDWriteFactory methods ***/ + HRESULT (STDMETHODCALLTYPE *GetSystemFontCollection)( + IDWriteFactory5 *This, + IDWriteFontCollection **collection, + WINBOOL check_for_updates); + + HRESULT (STDMETHODCALLTYPE *CreateCustomFontCollection)( + IDWriteFactory5 *This, + IDWriteFontCollectionLoader *loader, + const void *key, + UINT32 key_size, + IDWriteFontCollection **collection); + + HRESULT (STDMETHODCALLTYPE *RegisterFontCollectionLoader)( + IDWriteFactory5 *This, + IDWriteFontCollectionLoader *loader); + + HRESULT (STDMETHODCALLTYPE *UnregisterFontCollectionLoader)( + IDWriteFactory5 *This, + IDWriteFontCollectionLoader *loader); + + HRESULT (STDMETHODCALLTYPE *CreateFontFileReference)( + IDWriteFactory5 *This, + const WCHAR *path, + const FILETIME *writetime, + IDWriteFontFile **font_file); + + HRESULT (STDMETHODCALLTYPE *CreateCustomFontFileReference)( + IDWriteFactory5 *This, + const void *reference_key, + UINT32 key_size, + IDWriteFontFileLoader *loader, + IDWriteFontFile **font_file); + + HRESULT (STDMETHODCALLTYPE *CreateFontFace)( + IDWriteFactory5 *This, + DWRITE_FONT_FACE_TYPE facetype, + UINT32 files_number, + IDWriteFontFile *const *font_files, + UINT32 index, + DWRITE_FONT_SIMULATIONS sim_flags, + IDWriteFontFace **font_face); + + HRESULT (STDMETHODCALLTYPE *CreateRenderingParams)( + IDWriteFactory5 *This, + IDWriteRenderingParams **params); + + HRESULT (STDMETHODCALLTYPE *CreateMonitorRenderingParams)( + IDWriteFactory5 *This, + HMONITOR monitor, + IDWriteRenderingParams **params); + + HRESULT (STDMETHODCALLTYPE *CreateCustomRenderingParams)( + IDWriteFactory5 *This, + FLOAT gamma, + FLOAT enhancedContrast, + FLOAT cleartype_level, + DWRITE_PIXEL_GEOMETRY geometry, + DWRITE_RENDERING_MODE mode, + IDWriteRenderingParams **params); + + HRESULT (STDMETHODCALLTYPE *RegisterFontFileLoader)( + IDWriteFactory5 *This, + IDWriteFontFileLoader *loader); + + HRESULT (STDMETHODCALLTYPE *UnregisterFontFileLoader)( + IDWriteFactory5 *This, + IDWriteFontFileLoader *loader); + + HRESULT (STDMETHODCALLTYPE *CreateTextFormat)( + IDWriteFactory5 *This, + const WCHAR *family_name, + IDWriteFontCollection *collection, + DWRITE_FONT_WEIGHT weight, + DWRITE_FONT_STYLE style, + DWRITE_FONT_STRETCH stretch, + FLOAT size, + const WCHAR *locale, + IDWriteTextFormat **format); + + HRESULT (STDMETHODCALLTYPE *CreateTypography)( + IDWriteFactory5 *This, + IDWriteTypography **typography); + + HRESULT (STDMETHODCALLTYPE *GetGdiInterop)( + IDWriteFactory5 *This, + IDWriteGdiInterop **gdi_interop); + + HRESULT (STDMETHODCALLTYPE *CreateTextLayout)( + IDWriteFactory5 *This, + const WCHAR *string, + UINT32 len, + IDWriteTextFormat *format, + FLOAT max_width, + FLOAT max_height, + IDWriteTextLayout **layout); + + HRESULT (STDMETHODCALLTYPE *CreateGdiCompatibleTextLayout)( + IDWriteFactory5 *This, + const WCHAR *string, + UINT32 len, + IDWriteTextFormat *format, + FLOAT layout_width, + FLOAT layout_height, + FLOAT pixels_per_dip, + const DWRITE_MATRIX *transform, + WINBOOL use_gdi_natural, + IDWriteTextLayout **layout); + + HRESULT (STDMETHODCALLTYPE *CreateEllipsisTrimmingSign)( + IDWriteFactory5 *This, + IDWriteTextFormat *format, + IDWriteInlineObject **trimming_sign); + + HRESULT (STDMETHODCALLTYPE *CreateTextAnalyzer)( + IDWriteFactory5 *This, + IDWriteTextAnalyzer **analyzer); + + HRESULT (STDMETHODCALLTYPE *CreateNumberSubstitution)( + IDWriteFactory5 *This, + DWRITE_NUMBER_SUBSTITUTION_METHOD method, + const WCHAR *locale, + WINBOOL ignore_user_override, + IDWriteNumberSubstitution **substitution); + + HRESULT (STDMETHODCALLTYPE *CreateGlyphRunAnalysis)( + IDWriteFactory5 *This, + const DWRITE_GLYPH_RUN *glyph_run, + FLOAT pixels_per_dip, + const DWRITE_MATRIX *transform, + DWRITE_RENDERING_MODE rendering_mode, + DWRITE_MEASURING_MODE measuring_mode, + FLOAT baseline_x, + FLOAT baseline_y, + IDWriteGlyphRunAnalysis **analysis); + + /*** IDWriteFactory1 methods ***/ + HRESULT (STDMETHODCALLTYPE *GetEudcFontCollection)( + IDWriteFactory5 *This, + IDWriteFontCollection **collection, + WINBOOL check_for_updates); + + HRESULT (STDMETHODCALLTYPE *IDWriteFactory1_CreateCustomRenderingParams)( + IDWriteFactory5 *This, + FLOAT gamma, + FLOAT enhcontrast, + FLOAT enhcontrast_grayscale, + FLOAT cleartype_level, + DWRITE_PIXEL_GEOMETRY geometry, + DWRITE_RENDERING_MODE mode, + IDWriteRenderingParams1 **params); + + /*** IDWriteFactory2 methods ***/ + HRESULT (STDMETHODCALLTYPE *GetSystemFontFallback)( + IDWriteFactory5 *This, + IDWriteFontFallback **fallback); + + HRESULT (STDMETHODCALLTYPE *CreateFontFallbackBuilder)( + IDWriteFactory5 *This, + IDWriteFontFallbackBuilder **fallbackbuilder); + + HRESULT (STDMETHODCALLTYPE *TranslateColorGlyphRun)( + IDWriteFactory5 *This, + FLOAT originX, + FLOAT originY, + const DWRITE_GLYPH_RUN *run, + const DWRITE_GLYPH_RUN_DESCRIPTION *rundescr, + DWRITE_MEASURING_MODE mode, + const DWRITE_MATRIX *transform, + UINT32 palette_index, + IDWriteColorGlyphRunEnumerator **colorlayers); + + HRESULT (STDMETHODCALLTYPE *IDWriteFactory2_CreateCustomRenderingParams)( + IDWriteFactory5 *This, + FLOAT gamma, + FLOAT contrast, + FLOAT grayscalecontrast, + FLOAT cleartypeLevel, + DWRITE_PIXEL_GEOMETRY pixelGeometry, + DWRITE_RENDERING_MODE renderingMode, + DWRITE_GRID_FIT_MODE gridFitMode, + IDWriteRenderingParams2 **params); + + HRESULT (STDMETHODCALLTYPE *IDWriteFactory2_CreateGlyphRunAnalysis)( + IDWriteFactory5 *This, + const DWRITE_GLYPH_RUN *run, + const DWRITE_MATRIX *transform, + DWRITE_RENDERING_MODE renderingMode, + DWRITE_MEASURING_MODE measuringMode, + DWRITE_GRID_FIT_MODE gridFitMode, + DWRITE_TEXT_ANTIALIAS_MODE antialiasMode, + FLOAT originX, + FLOAT originY, + IDWriteGlyphRunAnalysis **analysis); + + /*** IDWriteFactory3 methods ***/ + HRESULT (STDMETHODCALLTYPE *IDWriteFactory3_CreateGlyphRunAnalysis)( + IDWriteFactory5 *This, + const DWRITE_GLYPH_RUN *run, + const DWRITE_MATRIX *transform, + DWRITE_RENDERING_MODE1 rendering_mode, + DWRITE_MEASURING_MODE measuring_mode, + DWRITE_GRID_FIT_MODE gridfit_mode, + DWRITE_TEXT_ANTIALIAS_MODE antialias_mode, + FLOAT origin_x, + FLOAT origin_y, + IDWriteGlyphRunAnalysis **analysis); + + HRESULT (STDMETHODCALLTYPE *IDWriteFactory3_CreateCustomRenderingParams)( + IDWriteFactory5 *This, + FLOAT gamma, + FLOAT enhanced_contrast, + FLOAT grayscale_enhanced_contrast, + FLOAT cleartype_level, + DWRITE_PIXEL_GEOMETRY pixel_geometry, + DWRITE_RENDERING_MODE1 rendering_mode, + DWRITE_GRID_FIT_MODE gridfit_mode, + IDWriteRenderingParams3 **params); + + HRESULT (STDMETHODCALLTYPE *CreateFontFaceReference_)( + IDWriteFactory5 *This, + IDWriteFontFile *file, + UINT32 index, + DWRITE_FONT_SIMULATIONS simulations, + IDWriteFontFaceReference **reference); + + HRESULT (STDMETHODCALLTYPE *CreateFontFaceReference)( + IDWriteFactory5 *This, + const WCHAR *path, + const FILETIME *writetime, + UINT32 index, + DWRITE_FONT_SIMULATIONS simulations, + IDWriteFontFaceReference **reference); + + HRESULT (STDMETHODCALLTYPE *GetSystemFontSet)( + IDWriteFactory5 *This, + IDWriteFontSet **fontset); + + HRESULT (STDMETHODCALLTYPE *CreateFontSetBuilder)( + IDWriteFactory5 *This, + IDWriteFontSetBuilder **builder); + + HRESULT (STDMETHODCALLTYPE *CreateFontCollectionFromFontSet)( + IDWriteFactory5 *This, + IDWriteFontSet *fontset, + IDWriteFontCollection1 **collection); + + HRESULT (STDMETHODCALLTYPE *IDWriteFactory3_GetSystemFontCollection)( + IDWriteFactory5 *This, + WINBOOL include_downloadable, + IDWriteFontCollection1 **collection, + WINBOOL check_for_updates); + + HRESULT (STDMETHODCALLTYPE *GetFontDownloadQueue)( + IDWriteFactory5 *This, + IDWriteFontDownloadQueue **queue); + + /*** IDWriteFactory4 methods ***/ + HRESULT (STDMETHODCALLTYPE *IDWriteFactory4_TranslateColorGlyphRun)( + IDWriteFactory5 *This, + D2D1_POINT_2F baseline_origin, + const DWRITE_GLYPH_RUN *run, + const DWRITE_GLYPH_RUN_DESCRIPTION *run_desc, + DWRITE_GLYPH_IMAGE_FORMATS desired_formats, + DWRITE_MEASURING_MODE measuring_mode, + const DWRITE_MATRIX *transform, + UINT32 palette, + IDWriteColorGlyphRunEnumerator1 **layers); + + HRESULT (STDMETHODCALLTYPE *ComputeGlyphOrigins_)( + IDWriteFactory5 *This, + const DWRITE_GLYPH_RUN *run, + D2D1_POINT_2F baseline_origin, + D2D1_POINT_2F *origins); + + HRESULT (STDMETHODCALLTYPE *ComputeGlyphOrigins)( + IDWriteFactory5 *This, + const DWRITE_GLYPH_RUN *run, + DWRITE_MEASURING_MODE measuring_mode, + D2D1_POINT_2F baseline_origin, + const DWRITE_MATRIX *transform, + D2D1_POINT_2F *origins); + + /*** IDWriteFactory5 methods ***/ + HRESULT (STDMETHODCALLTYPE *IDWriteFactory5_CreateFontSetBuilder)( + IDWriteFactory5 *This, + IDWriteFontSetBuilder1 **fontset_builder); + + HRESULT (STDMETHODCALLTYPE *CreateInMemoryFontFileLoader)( + IDWriteFactory5 *This, + IDWriteInMemoryFontFileLoader **loader); + + HRESULT (STDMETHODCALLTYPE *CreateHttpFontFileLoader)( + IDWriteFactory5 *This, + const WCHAR *referrer_url, + const WCHAR *extra_headers, + IDWriteRemoteFontFileLoader **loader); + + DWRITE_CONTAINER_TYPE (STDMETHODCALLTYPE *AnalyzeContainerType)( + IDWriteFactory5 *This, + const void *data, + UINT32 data_size); + + HRESULT (STDMETHODCALLTYPE *UnpackFontFile)( + IDWriteFactory5 *This, + DWRITE_CONTAINER_TYPE container_type, + const void *data, + UINT32 data_size, + IDWriteFontFileStream **stream); + + END_INTERFACE +} IDWriteFactory5Vtbl; + +interface IDWriteFactory5 { + CONST_VTBL IDWriteFactory5Vtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDWriteFactory5_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteFactory5_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDWriteFactory5_Release(This) (This)->lpVtbl->Release(This) +/*** IDWriteFactory methods ***/ +#define IDWriteFactory5_CreateCustomFontCollection(This,loader,key,key_size,collection) (This)->lpVtbl->CreateCustomFontCollection(This,loader,key,key_size,collection) +#define IDWriteFactory5_RegisterFontCollectionLoader(This,loader) (This)->lpVtbl->RegisterFontCollectionLoader(This,loader) +#define IDWriteFactory5_UnregisterFontCollectionLoader(This,loader) (This)->lpVtbl->UnregisterFontCollectionLoader(This,loader) +#define IDWriteFactory5_CreateFontFileReference(This,path,writetime,font_file) (This)->lpVtbl->CreateFontFileReference(This,path,writetime,font_file) +#define IDWriteFactory5_CreateCustomFontFileReference(This,reference_key,key_size,loader,font_file) (This)->lpVtbl->CreateCustomFontFileReference(This,reference_key,key_size,loader,font_file) +#define IDWriteFactory5_CreateFontFace(This,facetype,files_number,font_files,index,sim_flags,font_face) (This)->lpVtbl->CreateFontFace(This,facetype,files_number,font_files,index,sim_flags,font_face) +#define IDWriteFactory5_CreateRenderingParams(This,params) (This)->lpVtbl->CreateRenderingParams(This,params) +#define IDWriteFactory5_CreateMonitorRenderingParams(This,monitor,params) (This)->lpVtbl->CreateMonitorRenderingParams(This,monitor,params) +#define IDWriteFactory5_RegisterFontFileLoader(This,loader) (This)->lpVtbl->RegisterFontFileLoader(This,loader) +#define IDWriteFactory5_UnregisterFontFileLoader(This,loader) (This)->lpVtbl->UnregisterFontFileLoader(This,loader) +#define IDWriteFactory5_CreateTextFormat(This,family_name,collection,weight,style,stretch,size,locale,format) (This)->lpVtbl->CreateTextFormat(This,family_name,collection,weight,style,stretch,size,locale,format) +#define IDWriteFactory5_CreateTypography(This,typography) (This)->lpVtbl->CreateTypography(This,typography) +#define IDWriteFactory5_GetGdiInterop(This,gdi_interop) (This)->lpVtbl->GetGdiInterop(This,gdi_interop) +#define IDWriteFactory5_CreateTextLayout(This,string,len,format,max_width,max_height,layout) (This)->lpVtbl->CreateTextLayout(This,string,len,format,max_width,max_height,layout) +#define IDWriteFactory5_CreateGdiCompatibleTextLayout(This,string,len,format,layout_width,layout_height,pixels_per_dip,transform,use_gdi_natural,layout) (This)->lpVtbl->CreateGdiCompatibleTextLayout(This,string,len,format,layout_width,layout_height,pixels_per_dip,transform,use_gdi_natural,layout) +#define IDWriteFactory5_CreateEllipsisTrimmingSign(This,format,trimming_sign) (This)->lpVtbl->CreateEllipsisTrimmingSign(This,format,trimming_sign) +#define IDWriteFactory5_CreateTextAnalyzer(This,analyzer) (This)->lpVtbl->CreateTextAnalyzer(This,analyzer) +#define IDWriteFactory5_CreateNumberSubstitution(This,method,locale,ignore_user_override,substitution) (This)->lpVtbl->CreateNumberSubstitution(This,method,locale,ignore_user_override,substitution) +/*** IDWriteFactory1 methods ***/ +#define IDWriteFactory5_GetEudcFontCollection(This,collection,check_for_updates) (This)->lpVtbl->GetEudcFontCollection(This,collection,check_for_updates) +/*** IDWriteFactory2 methods ***/ +#define IDWriteFactory5_GetSystemFontFallback(This,fallback) (This)->lpVtbl->GetSystemFontFallback(This,fallback) +#define IDWriteFactory5_CreateFontFallbackBuilder(This,fallbackbuilder) (This)->lpVtbl->CreateFontFallbackBuilder(This,fallbackbuilder) +/*** IDWriteFactory3 methods ***/ +#define IDWriteFactory5_CreateGlyphRunAnalysis(This,run,transform,rendering_mode,measuring_mode,gridfit_mode,antialias_mode,origin_x,origin_y,analysis) (This)->lpVtbl->IDWriteFactory3_CreateGlyphRunAnalysis(This,run,transform,rendering_mode,measuring_mode,gridfit_mode,antialias_mode,origin_x,origin_y,analysis) +#define IDWriteFactory5_CreateCustomRenderingParams(This,gamma,enhanced_contrast,grayscale_enhanced_contrast,cleartype_level,pixel_geometry,rendering_mode,gridfit_mode,params) (This)->lpVtbl->IDWriteFactory3_CreateCustomRenderingParams(This,gamma,enhanced_contrast,grayscale_enhanced_contrast,cleartype_level,pixel_geometry,rendering_mode,gridfit_mode,params) +#define IDWriteFactory5_CreateFontFaceReference_(This,file,index,simulations,reference) (This)->lpVtbl->CreateFontFaceReference_(This,file,index,simulations,reference) +#define IDWriteFactory5_CreateFontFaceReference(This,path,writetime,index,simulations,reference) (This)->lpVtbl->CreateFontFaceReference(This,path,writetime,index,simulations,reference) +#define IDWriteFactory5_GetSystemFontSet(This,fontset) (This)->lpVtbl->GetSystemFontSet(This,fontset) +#define IDWriteFactory5_CreateFontCollectionFromFontSet(This,fontset,collection) (This)->lpVtbl->CreateFontCollectionFromFontSet(This,fontset,collection) +#define IDWriteFactory5_GetSystemFontCollection(This,include_downloadable,collection,check_for_updates) (This)->lpVtbl->IDWriteFactory3_GetSystemFontCollection(This,include_downloadable,collection,check_for_updates) +#define IDWriteFactory5_GetFontDownloadQueue(This,queue) (This)->lpVtbl->GetFontDownloadQueue(This,queue) +/*** IDWriteFactory4 methods ***/ +#define IDWriteFactory5_TranslateColorGlyphRun(This,baseline_origin,run,run_desc,desired_formats,measuring_mode,transform,palette,layers) (This)->lpVtbl->IDWriteFactory4_TranslateColorGlyphRun(This,baseline_origin,run,run_desc,desired_formats,measuring_mode,transform,palette,layers) +#define IDWriteFactory5_ComputeGlyphOrigins_(This,run,baseline_origin,origins) (This)->lpVtbl->ComputeGlyphOrigins_(This,run,baseline_origin,origins) +#define IDWriteFactory5_ComputeGlyphOrigins(This,run,measuring_mode,baseline_origin,transform,origins) (This)->lpVtbl->ComputeGlyphOrigins(This,run,measuring_mode,baseline_origin,transform,origins) +/*** IDWriteFactory5 methods ***/ +#define IDWriteFactory5_CreateFontSetBuilder(This,fontset_builder) (This)->lpVtbl->IDWriteFactory5_CreateFontSetBuilder(This,fontset_builder) +#define IDWriteFactory5_CreateInMemoryFontFileLoader(This,loader) (This)->lpVtbl->CreateInMemoryFontFileLoader(This,loader) +#define IDWriteFactory5_CreateHttpFontFileLoader(This,referrer_url,extra_headers,loader) (This)->lpVtbl->CreateHttpFontFileLoader(This,referrer_url,extra_headers,loader) +#define IDWriteFactory5_AnalyzeContainerType(This,data,data_size) (This)->lpVtbl->AnalyzeContainerType(This,data,data_size) +#define IDWriteFactory5_UnpackFontFile(This,container_type,data,data_size,stream) (This)->lpVtbl->UnpackFontFile(This,container_type,data,data_size,stream) +#else +/*** IUnknown methods ***/ +static inline HRESULT IDWriteFactory5_QueryInterface(IDWriteFactory5* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static inline ULONG IDWriteFactory5_AddRef(IDWriteFactory5* This) { + return This->lpVtbl->AddRef(This); +} +static inline ULONG IDWriteFactory5_Release(IDWriteFactory5* This) { + return This->lpVtbl->Release(This); +} +/*** IDWriteFactory methods ***/ +static inline HRESULT IDWriteFactory5_CreateCustomFontCollection(IDWriteFactory5* This,IDWriteFontCollectionLoader *loader,const void *key,UINT32 key_size,IDWriteFontCollection **collection) { + return This->lpVtbl->CreateCustomFontCollection(This,loader,key,key_size,collection); +} +static inline HRESULT IDWriteFactory5_RegisterFontCollectionLoader(IDWriteFactory5* This,IDWriteFontCollectionLoader *loader) { + return This->lpVtbl->RegisterFontCollectionLoader(This,loader); +} +static inline HRESULT IDWriteFactory5_UnregisterFontCollectionLoader(IDWriteFactory5* This,IDWriteFontCollectionLoader *loader) { + return This->lpVtbl->UnregisterFontCollectionLoader(This,loader); +} +static inline HRESULT IDWriteFactory5_CreateFontFileReference(IDWriteFactory5* This,const WCHAR *path,const FILETIME *writetime,IDWriteFontFile **font_file) { + return This->lpVtbl->CreateFontFileReference(This,path,writetime,font_file); +} +static inline HRESULT IDWriteFactory5_CreateCustomFontFileReference(IDWriteFactory5* This,const void *reference_key,UINT32 key_size,IDWriteFontFileLoader *loader,IDWriteFontFile **font_file) { + return This->lpVtbl->CreateCustomFontFileReference(This,reference_key,key_size,loader,font_file); +} +static inline HRESULT IDWriteFactory5_CreateFontFace(IDWriteFactory5* This,DWRITE_FONT_FACE_TYPE facetype,UINT32 files_number,IDWriteFontFile *const *font_files,UINT32 index,DWRITE_FONT_SIMULATIONS sim_flags,IDWriteFontFace **font_face) { + return This->lpVtbl->CreateFontFace(This,facetype,files_number,font_files,index,sim_flags,font_face); +} +static inline HRESULT IDWriteFactory5_CreateRenderingParams(IDWriteFactory5* This,IDWriteRenderingParams **params) { + return This->lpVtbl->CreateRenderingParams(This,params); +} +static inline HRESULT IDWriteFactory5_CreateMonitorRenderingParams(IDWriteFactory5* This,HMONITOR monitor,IDWriteRenderingParams **params) { + return This->lpVtbl->CreateMonitorRenderingParams(This,monitor,params); +} +static inline HRESULT IDWriteFactory5_RegisterFontFileLoader(IDWriteFactory5* This,IDWriteFontFileLoader *loader) { + return This->lpVtbl->RegisterFontFileLoader(This,loader); +} +static inline HRESULT IDWriteFactory5_UnregisterFontFileLoader(IDWriteFactory5* This,IDWriteFontFileLoader *loader) { + return This->lpVtbl->UnregisterFontFileLoader(This,loader); +} +static inline HRESULT IDWriteFactory5_CreateTextFormat(IDWriteFactory5* This,const WCHAR *family_name,IDWriteFontCollection *collection,DWRITE_FONT_WEIGHT weight,DWRITE_FONT_STYLE style,DWRITE_FONT_STRETCH stretch,FLOAT size,const WCHAR *locale,IDWriteTextFormat **format) { + return This->lpVtbl->CreateTextFormat(This,family_name,collection,weight,style,stretch,size,locale,format); +} +static inline HRESULT IDWriteFactory5_CreateTypography(IDWriteFactory5* This,IDWriteTypography **typography) { + return This->lpVtbl->CreateTypography(This,typography); +} +static inline HRESULT IDWriteFactory5_GetGdiInterop(IDWriteFactory5* This,IDWriteGdiInterop **gdi_interop) { + return This->lpVtbl->GetGdiInterop(This,gdi_interop); +} +static inline HRESULT IDWriteFactory5_CreateTextLayout(IDWriteFactory5* This,const WCHAR *string,UINT32 len,IDWriteTextFormat *format,FLOAT max_width,FLOAT max_height,IDWriteTextLayout **layout) { + return This->lpVtbl->CreateTextLayout(This,string,len,format,max_width,max_height,layout); +} +static inline HRESULT IDWriteFactory5_CreateGdiCompatibleTextLayout(IDWriteFactory5* This,const WCHAR *string,UINT32 len,IDWriteTextFormat *format,FLOAT layout_width,FLOAT layout_height,FLOAT pixels_per_dip,const DWRITE_MATRIX *transform,WINBOOL use_gdi_natural,IDWriteTextLayout **layout) { + return This->lpVtbl->CreateGdiCompatibleTextLayout(This,string,len,format,layout_width,layout_height,pixels_per_dip,transform,use_gdi_natural,layout); +} +static inline HRESULT IDWriteFactory5_CreateEllipsisTrimmingSign(IDWriteFactory5* This,IDWriteTextFormat *format,IDWriteInlineObject **trimming_sign) { + return This->lpVtbl->CreateEllipsisTrimmingSign(This,format,trimming_sign); +} +static inline HRESULT IDWriteFactory5_CreateTextAnalyzer(IDWriteFactory5* This,IDWriteTextAnalyzer **analyzer) { + return This->lpVtbl->CreateTextAnalyzer(This,analyzer); +} +static inline HRESULT IDWriteFactory5_CreateNumberSubstitution(IDWriteFactory5* This,DWRITE_NUMBER_SUBSTITUTION_METHOD method,const WCHAR *locale,WINBOOL ignore_user_override,IDWriteNumberSubstitution **substitution) { + return This->lpVtbl->CreateNumberSubstitution(This,method,locale,ignore_user_override,substitution); +} +/*** IDWriteFactory1 methods ***/ +static inline HRESULT IDWriteFactory5_GetEudcFontCollection(IDWriteFactory5* This,IDWriteFontCollection **collection,WINBOOL check_for_updates) { + return This->lpVtbl->GetEudcFontCollection(This,collection,check_for_updates); +} +/*** IDWriteFactory2 methods ***/ +static inline HRESULT IDWriteFactory5_GetSystemFontFallback(IDWriteFactory5* This,IDWriteFontFallback **fallback) { + return This->lpVtbl->GetSystemFontFallback(This,fallback); +} +static inline HRESULT IDWriteFactory5_CreateFontFallbackBuilder(IDWriteFactory5* This,IDWriteFontFallbackBuilder **fallbackbuilder) { + return This->lpVtbl->CreateFontFallbackBuilder(This,fallbackbuilder); +} +/*** IDWriteFactory3 methods ***/ +static inline HRESULT IDWriteFactory5_CreateGlyphRunAnalysis(IDWriteFactory5* This,const DWRITE_GLYPH_RUN *run,const DWRITE_MATRIX *transform,DWRITE_RENDERING_MODE1 rendering_mode,DWRITE_MEASURING_MODE measuring_mode,DWRITE_GRID_FIT_MODE gridfit_mode,DWRITE_TEXT_ANTIALIAS_MODE antialias_mode,FLOAT origin_x,FLOAT origin_y,IDWriteGlyphRunAnalysis **analysis) { + return This->lpVtbl->IDWriteFactory3_CreateGlyphRunAnalysis(This,run,transform,rendering_mode,measuring_mode,gridfit_mode,antialias_mode,origin_x,origin_y,analysis); +} +static inline HRESULT IDWriteFactory5_CreateCustomRenderingParams(IDWriteFactory5* This,FLOAT gamma,FLOAT enhanced_contrast,FLOAT grayscale_enhanced_contrast,FLOAT cleartype_level,DWRITE_PIXEL_GEOMETRY pixel_geometry,DWRITE_RENDERING_MODE1 rendering_mode,DWRITE_GRID_FIT_MODE gridfit_mode,IDWriteRenderingParams3 **params) { + return This->lpVtbl->IDWriteFactory3_CreateCustomRenderingParams(This,gamma,enhanced_contrast,grayscale_enhanced_contrast,cleartype_level,pixel_geometry,rendering_mode,gridfit_mode,params); +} +static inline HRESULT IDWriteFactory5_CreateFontFaceReference_(IDWriteFactory5* This,IDWriteFontFile *file,UINT32 index,DWRITE_FONT_SIMULATIONS simulations,IDWriteFontFaceReference **reference) { + return This->lpVtbl->CreateFontFaceReference_(This,file,index,simulations,reference); +} +static inline HRESULT IDWriteFactory5_CreateFontFaceReference(IDWriteFactory5* This,const WCHAR *path,const FILETIME *writetime,UINT32 index,DWRITE_FONT_SIMULATIONS simulations,IDWriteFontFaceReference **reference) { + return This->lpVtbl->CreateFontFaceReference(This,path,writetime,index,simulations,reference); +} +static inline HRESULT IDWriteFactory5_GetSystemFontSet(IDWriteFactory5* This,IDWriteFontSet **fontset) { + return This->lpVtbl->GetSystemFontSet(This,fontset); +} +static inline HRESULT IDWriteFactory5_CreateFontCollectionFromFontSet(IDWriteFactory5* This,IDWriteFontSet *fontset,IDWriteFontCollection1 **collection) { + return This->lpVtbl->CreateFontCollectionFromFontSet(This,fontset,collection); +} +static inline HRESULT IDWriteFactory5_GetSystemFontCollection(IDWriteFactory5* This,WINBOOL include_downloadable,IDWriteFontCollection1 **collection,WINBOOL check_for_updates) { + return This->lpVtbl->IDWriteFactory3_GetSystemFontCollection(This,include_downloadable,collection,check_for_updates); +} +static inline HRESULT IDWriteFactory5_GetFontDownloadQueue(IDWriteFactory5* This,IDWriteFontDownloadQueue **queue) { + return This->lpVtbl->GetFontDownloadQueue(This,queue); +} +/*** IDWriteFactory4 methods ***/ +static inline HRESULT IDWriteFactory5_TranslateColorGlyphRun(IDWriteFactory5* This,D2D1_POINT_2F baseline_origin,const DWRITE_GLYPH_RUN *run,const DWRITE_GLYPH_RUN_DESCRIPTION *run_desc,DWRITE_GLYPH_IMAGE_FORMATS desired_formats,DWRITE_MEASURING_MODE measuring_mode,const DWRITE_MATRIX *transform,UINT32 palette,IDWriteColorGlyphRunEnumerator1 **layers) { + return This->lpVtbl->IDWriteFactory4_TranslateColorGlyphRun(This,baseline_origin,run,run_desc,desired_formats,measuring_mode,transform,palette,layers); +} +static inline HRESULT IDWriteFactory5_ComputeGlyphOrigins_(IDWriteFactory5* This,const DWRITE_GLYPH_RUN *run,D2D1_POINT_2F baseline_origin,D2D1_POINT_2F *origins) { + return This->lpVtbl->ComputeGlyphOrigins_(This,run,baseline_origin,origins); +} +static inline HRESULT IDWriteFactory5_ComputeGlyphOrigins(IDWriteFactory5* This,const DWRITE_GLYPH_RUN *run,DWRITE_MEASURING_MODE measuring_mode,D2D1_POINT_2F baseline_origin,const DWRITE_MATRIX *transform,D2D1_POINT_2F *origins) { + return This->lpVtbl->ComputeGlyphOrigins(This,run,measuring_mode,baseline_origin,transform,origins); +} +/*** IDWriteFactory5 methods ***/ +static inline HRESULT IDWriteFactory5_CreateFontSetBuilder(IDWriteFactory5* This,IDWriteFontSetBuilder1 **fontset_builder) { + return This->lpVtbl->IDWriteFactory5_CreateFontSetBuilder(This,fontset_builder); +} +static inline HRESULT IDWriteFactory5_CreateInMemoryFontFileLoader(IDWriteFactory5* This,IDWriteInMemoryFontFileLoader **loader) { + return This->lpVtbl->CreateInMemoryFontFileLoader(This,loader); +} +static inline HRESULT IDWriteFactory5_CreateHttpFontFileLoader(IDWriteFactory5* This,const WCHAR *referrer_url,const WCHAR *extra_headers,IDWriteRemoteFontFileLoader **loader) { + return This->lpVtbl->CreateHttpFontFileLoader(This,referrer_url,extra_headers,loader); +} +static inline DWRITE_CONTAINER_TYPE IDWriteFactory5_AnalyzeContainerType(IDWriteFactory5* This,const void *data,UINT32 data_size) { + return This->lpVtbl->AnalyzeContainerType(This,data,data_size); +} +static inline HRESULT IDWriteFactory5_UnpackFontFile(IDWriteFactory5* This,DWRITE_CONTAINER_TYPE container_type,const void *data,UINT32 data_size,IDWriteFontFileStream **stream) { + return This->lpVtbl->UnpackFontFile(This,container_type,data,data_size,stream); +} +#endif +#endif + +#endif + + +#endif /* __IDWriteFactory5_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IDWriteFactory6 interface + */ +#ifndef __IDWriteFactory6_INTERFACE_DEFINED__ +#define __IDWriteFactory6_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDWriteFactory6, 0xf3744d80, 0x21f7, 0x42eb, 0xb3,0x5d, 0x99,0x5b,0xc7,0x2f,0xc2,0x23); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("f3744d80-21f7-42eb-b35d-995bc72fc223") +IDWriteFactory6 : public IDWriteFactory5 +{ + virtual HRESULT STDMETHODCALLTYPE CreateFontFaceReference( + IDWriteFontFile *file, + UINT32 face_index, + DWRITE_FONT_SIMULATIONS simulations, + const DWRITE_FONT_AXIS_VALUE *axis_values, + UINT32 num_axis, + IDWriteFontFaceReference1 **face_ref) = 0; + + virtual HRESULT STDMETHODCALLTYPE CreateFontResource( + IDWriteFontFile *file, + UINT32 face_index, + IDWriteFontResource **resource) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetSystemFontSet( + WINBOOL include_downloadable, + IDWriteFontSet1 **fontset) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetSystemFontCollection( + WINBOOL include_downloadable, + DWRITE_FONT_FAMILY_MODEL family_model, + IDWriteFontCollection2 **collection) = 0; + + virtual HRESULT STDMETHODCALLTYPE CreateFontCollectionFromFontSet( + IDWriteFontSet *fontset, + DWRITE_FONT_FAMILY_MODEL family_model, + IDWriteFontCollection2 **collection) = 0; + + virtual HRESULT STDMETHODCALLTYPE CreateFontSetBuilder( + IDWriteFontSetBuilder2 **builder) = 0; + + virtual HRESULT STDMETHODCALLTYPE CreateTextFormat( + const WCHAR *familyname, + IDWriteFontCollection *collection, + const DWRITE_FONT_AXIS_VALUE *axis_values, + UINT32 num_axis, + FLOAT fontsize, + const WCHAR *localename, + IDWriteTextFormat3 **format) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDWriteFactory6, 0xf3744d80, 0x21f7, 0x42eb, 0xb3,0x5d, 0x99,0x5b,0xc7,0x2f,0xc2,0x23) +#endif +#else +typedef struct IDWriteFactory6Vtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDWriteFactory6 *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDWriteFactory6 *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDWriteFactory6 *This); + + /*** IDWriteFactory methods ***/ + HRESULT (STDMETHODCALLTYPE *GetSystemFontCollection)( + IDWriteFactory6 *This, + IDWriteFontCollection **collection, + WINBOOL check_for_updates); + + HRESULT (STDMETHODCALLTYPE *CreateCustomFontCollection)( + IDWriteFactory6 *This, + IDWriteFontCollectionLoader *loader, + const void *key, + UINT32 key_size, + IDWriteFontCollection **collection); + + HRESULT (STDMETHODCALLTYPE *RegisterFontCollectionLoader)( + IDWriteFactory6 *This, + IDWriteFontCollectionLoader *loader); + + HRESULT (STDMETHODCALLTYPE *UnregisterFontCollectionLoader)( + IDWriteFactory6 *This, + IDWriteFontCollectionLoader *loader); + + HRESULT (STDMETHODCALLTYPE *CreateFontFileReference)( + IDWriteFactory6 *This, + const WCHAR *path, + const FILETIME *writetime, + IDWriteFontFile **font_file); + + HRESULT (STDMETHODCALLTYPE *CreateCustomFontFileReference)( + IDWriteFactory6 *This, + const void *reference_key, + UINT32 key_size, + IDWriteFontFileLoader *loader, + IDWriteFontFile **font_file); + + HRESULT (STDMETHODCALLTYPE *CreateFontFace)( + IDWriteFactory6 *This, + DWRITE_FONT_FACE_TYPE facetype, + UINT32 files_number, + IDWriteFontFile *const *font_files, + UINT32 index, + DWRITE_FONT_SIMULATIONS sim_flags, + IDWriteFontFace **font_face); + + HRESULT (STDMETHODCALLTYPE *CreateRenderingParams)( + IDWriteFactory6 *This, + IDWriteRenderingParams **params); + + HRESULT (STDMETHODCALLTYPE *CreateMonitorRenderingParams)( + IDWriteFactory6 *This, + HMONITOR monitor, + IDWriteRenderingParams **params); + + HRESULT (STDMETHODCALLTYPE *CreateCustomRenderingParams)( + IDWriteFactory6 *This, + FLOAT gamma, + FLOAT enhancedContrast, + FLOAT cleartype_level, + DWRITE_PIXEL_GEOMETRY geometry, + DWRITE_RENDERING_MODE mode, + IDWriteRenderingParams **params); + + HRESULT (STDMETHODCALLTYPE *RegisterFontFileLoader)( + IDWriteFactory6 *This, + IDWriteFontFileLoader *loader); + + HRESULT (STDMETHODCALLTYPE *UnregisterFontFileLoader)( + IDWriteFactory6 *This, + IDWriteFontFileLoader *loader); + + HRESULT (STDMETHODCALLTYPE *CreateTextFormat)( + IDWriteFactory6 *This, + const WCHAR *family_name, + IDWriteFontCollection *collection, + DWRITE_FONT_WEIGHT weight, + DWRITE_FONT_STYLE style, + DWRITE_FONT_STRETCH stretch, + FLOAT size, + const WCHAR *locale, + IDWriteTextFormat **format); + + HRESULT (STDMETHODCALLTYPE *CreateTypography)( + IDWriteFactory6 *This, + IDWriteTypography **typography); + + HRESULT (STDMETHODCALLTYPE *GetGdiInterop)( + IDWriteFactory6 *This, + IDWriteGdiInterop **gdi_interop); + + HRESULT (STDMETHODCALLTYPE *CreateTextLayout)( + IDWriteFactory6 *This, + const WCHAR *string, + UINT32 len, + IDWriteTextFormat *format, + FLOAT max_width, + FLOAT max_height, + IDWriteTextLayout **layout); + + HRESULT (STDMETHODCALLTYPE *CreateGdiCompatibleTextLayout)( + IDWriteFactory6 *This, + const WCHAR *string, + UINT32 len, + IDWriteTextFormat *format, + FLOAT layout_width, + FLOAT layout_height, + FLOAT pixels_per_dip, + const DWRITE_MATRIX *transform, + WINBOOL use_gdi_natural, + IDWriteTextLayout **layout); + + HRESULT (STDMETHODCALLTYPE *CreateEllipsisTrimmingSign)( + IDWriteFactory6 *This, + IDWriteTextFormat *format, + IDWriteInlineObject **trimming_sign); + + HRESULT (STDMETHODCALLTYPE *CreateTextAnalyzer)( + IDWriteFactory6 *This, + IDWriteTextAnalyzer **analyzer); + + HRESULT (STDMETHODCALLTYPE *CreateNumberSubstitution)( + IDWriteFactory6 *This, + DWRITE_NUMBER_SUBSTITUTION_METHOD method, + const WCHAR *locale, + WINBOOL ignore_user_override, + IDWriteNumberSubstitution **substitution); + + HRESULT (STDMETHODCALLTYPE *CreateGlyphRunAnalysis)( + IDWriteFactory6 *This, + const DWRITE_GLYPH_RUN *glyph_run, + FLOAT pixels_per_dip, + const DWRITE_MATRIX *transform, + DWRITE_RENDERING_MODE rendering_mode, + DWRITE_MEASURING_MODE measuring_mode, + FLOAT baseline_x, + FLOAT baseline_y, + IDWriteGlyphRunAnalysis **analysis); + + /*** IDWriteFactory1 methods ***/ + HRESULT (STDMETHODCALLTYPE *GetEudcFontCollection)( + IDWriteFactory6 *This, + IDWriteFontCollection **collection, + WINBOOL check_for_updates); + + HRESULT (STDMETHODCALLTYPE *IDWriteFactory1_CreateCustomRenderingParams)( + IDWriteFactory6 *This, + FLOAT gamma, + FLOAT enhcontrast, + FLOAT enhcontrast_grayscale, + FLOAT cleartype_level, + DWRITE_PIXEL_GEOMETRY geometry, + DWRITE_RENDERING_MODE mode, + IDWriteRenderingParams1 **params); + + /*** IDWriteFactory2 methods ***/ + HRESULT (STDMETHODCALLTYPE *GetSystemFontFallback)( + IDWriteFactory6 *This, + IDWriteFontFallback **fallback); + + HRESULT (STDMETHODCALLTYPE *CreateFontFallbackBuilder)( + IDWriteFactory6 *This, + IDWriteFontFallbackBuilder **fallbackbuilder); + + HRESULT (STDMETHODCALLTYPE *TranslateColorGlyphRun)( + IDWriteFactory6 *This, + FLOAT originX, + FLOAT originY, + const DWRITE_GLYPH_RUN *run, + const DWRITE_GLYPH_RUN_DESCRIPTION *rundescr, + DWRITE_MEASURING_MODE mode, + const DWRITE_MATRIX *transform, + UINT32 palette_index, + IDWriteColorGlyphRunEnumerator **colorlayers); + + HRESULT (STDMETHODCALLTYPE *IDWriteFactory2_CreateCustomRenderingParams)( + IDWriteFactory6 *This, + FLOAT gamma, + FLOAT contrast, + FLOAT grayscalecontrast, + FLOAT cleartypeLevel, + DWRITE_PIXEL_GEOMETRY pixelGeometry, + DWRITE_RENDERING_MODE renderingMode, + DWRITE_GRID_FIT_MODE gridFitMode, + IDWriteRenderingParams2 **params); + + HRESULT (STDMETHODCALLTYPE *IDWriteFactory2_CreateGlyphRunAnalysis)( + IDWriteFactory6 *This, + const DWRITE_GLYPH_RUN *run, + const DWRITE_MATRIX *transform, + DWRITE_RENDERING_MODE renderingMode, + DWRITE_MEASURING_MODE measuringMode, + DWRITE_GRID_FIT_MODE gridFitMode, + DWRITE_TEXT_ANTIALIAS_MODE antialiasMode, + FLOAT originX, + FLOAT originY, + IDWriteGlyphRunAnalysis **analysis); + + /*** IDWriteFactory3 methods ***/ + HRESULT (STDMETHODCALLTYPE *IDWriteFactory3_CreateGlyphRunAnalysis)( + IDWriteFactory6 *This, + const DWRITE_GLYPH_RUN *run, + const DWRITE_MATRIX *transform, + DWRITE_RENDERING_MODE1 rendering_mode, + DWRITE_MEASURING_MODE measuring_mode, + DWRITE_GRID_FIT_MODE gridfit_mode, + DWRITE_TEXT_ANTIALIAS_MODE antialias_mode, + FLOAT origin_x, + FLOAT origin_y, + IDWriteGlyphRunAnalysis **analysis); + + HRESULT (STDMETHODCALLTYPE *IDWriteFactory3_CreateCustomRenderingParams)( + IDWriteFactory6 *This, + FLOAT gamma, + FLOAT enhanced_contrast, + FLOAT grayscale_enhanced_contrast, + FLOAT cleartype_level, + DWRITE_PIXEL_GEOMETRY pixel_geometry, + DWRITE_RENDERING_MODE1 rendering_mode, + DWRITE_GRID_FIT_MODE gridfit_mode, + IDWriteRenderingParams3 **params); + + HRESULT (STDMETHODCALLTYPE *CreateFontFaceReference_)( + IDWriteFactory6 *This, + IDWriteFontFile *file, + UINT32 index, + DWRITE_FONT_SIMULATIONS simulations, + IDWriteFontFaceReference **reference); + + HRESULT (STDMETHODCALLTYPE *CreateFontFaceReference)( + IDWriteFactory6 *This, + const WCHAR *path, + const FILETIME *writetime, + UINT32 index, + DWRITE_FONT_SIMULATIONS simulations, + IDWriteFontFaceReference **reference); + + HRESULT (STDMETHODCALLTYPE *GetSystemFontSet)( + IDWriteFactory6 *This, + IDWriteFontSet **fontset); + + HRESULT (STDMETHODCALLTYPE *CreateFontSetBuilder)( + IDWriteFactory6 *This, + IDWriteFontSetBuilder **builder); + + HRESULT (STDMETHODCALLTYPE *CreateFontCollectionFromFontSet)( + IDWriteFactory6 *This, + IDWriteFontSet *fontset, + IDWriteFontCollection1 **collection); + + HRESULT (STDMETHODCALLTYPE *IDWriteFactory3_GetSystemFontCollection)( + IDWriteFactory6 *This, + WINBOOL include_downloadable, + IDWriteFontCollection1 **collection, + WINBOOL check_for_updates); + + HRESULT (STDMETHODCALLTYPE *GetFontDownloadQueue)( + IDWriteFactory6 *This, + IDWriteFontDownloadQueue **queue); + + /*** IDWriteFactory4 methods ***/ + HRESULT (STDMETHODCALLTYPE *IDWriteFactory4_TranslateColorGlyphRun)( + IDWriteFactory6 *This, + D2D1_POINT_2F baseline_origin, + const DWRITE_GLYPH_RUN *run, + const DWRITE_GLYPH_RUN_DESCRIPTION *run_desc, + DWRITE_GLYPH_IMAGE_FORMATS desired_formats, + DWRITE_MEASURING_MODE measuring_mode, + const DWRITE_MATRIX *transform, + UINT32 palette, + IDWriteColorGlyphRunEnumerator1 **layers); + + HRESULT (STDMETHODCALLTYPE *ComputeGlyphOrigins_)( + IDWriteFactory6 *This, + const DWRITE_GLYPH_RUN *run, + D2D1_POINT_2F baseline_origin, + D2D1_POINT_2F *origins); + + HRESULT (STDMETHODCALLTYPE *ComputeGlyphOrigins)( + IDWriteFactory6 *This, + const DWRITE_GLYPH_RUN *run, + DWRITE_MEASURING_MODE measuring_mode, + D2D1_POINT_2F baseline_origin, + const DWRITE_MATRIX *transform, + D2D1_POINT_2F *origins); + + /*** IDWriteFactory5 methods ***/ + HRESULT (STDMETHODCALLTYPE *IDWriteFactory5_CreateFontSetBuilder)( + IDWriteFactory6 *This, + IDWriteFontSetBuilder1 **fontset_builder); + + HRESULT (STDMETHODCALLTYPE *CreateInMemoryFontFileLoader)( + IDWriteFactory6 *This, + IDWriteInMemoryFontFileLoader **loader); + + HRESULT (STDMETHODCALLTYPE *CreateHttpFontFileLoader)( + IDWriteFactory6 *This, + const WCHAR *referrer_url, + const WCHAR *extra_headers, + IDWriteRemoteFontFileLoader **loader); + + DWRITE_CONTAINER_TYPE (STDMETHODCALLTYPE *AnalyzeContainerType)( + IDWriteFactory6 *This, + const void *data, + UINT32 data_size); + + HRESULT (STDMETHODCALLTYPE *UnpackFontFile)( + IDWriteFactory6 *This, + DWRITE_CONTAINER_TYPE container_type, + const void *data, + UINT32 data_size, + IDWriteFontFileStream **stream); + + /*** IDWriteFactory6 methods ***/ + HRESULT (STDMETHODCALLTYPE *IDWriteFactory6_CreateFontFaceReference)( + IDWriteFactory6 *This, + IDWriteFontFile *file, + UINT32 face_index, + DWRITE_FONT_SIMULATIONS simulations, + const DWRITE_FONT_AXIS_VALUE *axis_values, + UINT32 num_axis, + IDWriteFontFaceReference1 **face_ref); + + HRESULT (STDMETHODCALLTYPE *CreateFontResource)( + IDWriteFactory6 *This, + IDWriteFontFile *file, + UINT32 face_index, + IDWriteFontResource **resource); + + HRESULT (STDMETHODCALLTYPE *IDWriteFactory6_GetSystemFontSet)( + IDWriteFactory6 *This, + WINBOOL include_downloadable, + IDWriteFontSet1 **fontset); + + HRESULT (STDMETHODCALLTYPE *IDWriteFactory6_GetSystemFontCollection)( + IDWriteFactory6 *This, + WINBOOL include_downloadable, + DWRITE_FONT_FAMILY_MODEL family_model, + IDWriteFontCollection2 **collection); + + HRESULT (STDMETHODCALLTYPE *IDWriteFactory6_CreateFontCollectionFromFontSet)( + IDWriteFactory6 *This, + IDWriteFontSet *fontset, + DWRITE_FONT_FAMILY_MODEL family_model, + IDWriteFontCollection2 **collection); + + HRESULT (STDMETHODCALLTYPE *IDWriteFactory6_CreateFontSetBuilder)( + IDWriteFactory6 *This, + IDWriteFontSetBuilder2 **builder); + + HRESULT (STDMETHODCALLTYPE *IDWriteFactory6_CreateTextFormat)( + IDWriteFactory6 *This, + const WCHAR *familyname, + IDWriteFontCollection *collection, + const DWRITE_FONT_AXIS_VALUE *axis_values, + UINT32 num_axis, + FLOAT fontsize, + const WCHAR *localename, + IDWriteTextFormat3 **format); + + END_INTERFACE +} IDWriteFactory6Vtbl; + +interface IDWriteFactory6 { + CONST_VTBL IDWriteFactory6Vtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDWriteFactory6_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteFactory6_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDWriteFactory6_Release(This) (This)->lpVtbl->Release(This) +/*** IDWriteFactory methods ***/ +#define IDWriteFactory6_CreateCustomFontCollection(This,loader,key,key_size,collection) (This)->lpVtbl->CreateCustomFontCollection(This,loader,key,key_size,collection) +#define IDWriteFactory6_RegisterFontCollectionLoader(This,loader) (This)->lpVtbl->RegisterFontCollectionLoader(This,loader) +#define IDWriteFactory6_UnregisterFontCollectionLoader(This,loader) (This)->lpVtbl->UnregisterFontCollectionLoader(This,loader) +#define IDWriteFactory6_CreateFontFileReference(This,path,writetime,font_file) (This)->lpVtbl->CreateFontFileReference(This,path,writetime,font_file) +#define IDWriteFactory6_CreateCustomFontFileReference(This,reference_key,key_size,loader,font_file) (This)->lpVtbl->CreateCustomFontFileReference(This,reference_key,key_size,loader,font_file) +#define IDWriteFactory6_CreateFontFace(This,facetype,files_number,font_files,index,sim_flags,font_face) (This)->lpVtbl->CreateFontFace(This,facetype,files_number,font_files,index,sim_flags,font_face) +#define IDWriteFactory6_CreateRenderingParams(This,params) (This)->lpVtbl->CreateRenderingParams(This,params) +#define IDWriteFactory6_CreateMonitorRenderingParams(This,monitor,params) (This)->lpVtbl->CreateMonitorRenderingParams(This,monitor,params) +#define IDWriteFactory6_RegisterFontFileLoader(This,loader) (This)->lpVtbl->RegisterFontFileLoader(This,loader) +#define IDWriteFactory6_UnregisterFontFileLoader(This,loader) (This)->lpVtbl->UnregisterFontFileLoader(This,loader) +#define IDWriteFactory6_CreateTypography(This,typography) (This)->lpVtbl->CreateTypography(This,typography) +#define IDWriteFactory6_GetGdiInterop(This,gdi_interop) (This)->lpVtbl->GetGdiInterop(This,gdi_interop) +#define IDWriteFactory6_CreateTextLayout(This,string,len,format,max_width,max_height,layout) (This)->lpVtbl->CreateTextLayout(This,string,len,format,max_width,max_height,layout) +#define IDWriteFactory6_CreateGdiCompatibleTextLayout(This,string,len,format,layout_width,layout_height,pixels_per_dip,transform,use_gdi_natural,layout) (This)->lpVtbl->CreateGdiCompatibleTextLayout(This,string,len,format,layout_width,layout_height,pixels_per_dip,transform,use_gdi_natural,layout) +#define IDWriteFactory6_CreateEllipsisTrimmingSign(This,format,trimming_sign) (This)->lpVtbl->CreateEllipsisTrimmingSign(This,format,trimming_sign) +#define IDWriteFactory6_CreateTextAnalyzer(This,analyzer) (This)->lpVtbl->CreateTextAnalyzer(This,analyzer) +#define IDWriteFactory6_CreateNumberSubstitution(This,method,locale,ignore_user_override,substitution) (This)->lpVtbl->CreateNumberSubstitution(This,method,locale,ignore_user_override,substitution) +/*** IDWriteFactory1 methods ***/ +#define IDWriteFactory6_GetEudcFontCollection(This,collection,check_for_updates) (This)->lpVtbl->GetEudcFontCollection(This,collection,check_for_updates) +/*** IDWriteFactory2 methods ***/ +#define IDWriteFactory6_GetSystemFontFallback(This,fallback) (This)->lpVtbl->GetSystemFontFallback(This,fallback) +#define IDWriteFactory6_CreateFontFallbackBuilder(This,fallbackbuilder) (This)->lpVtbl->CreateFontFallbackBuilder(This,fallbackbuilder) +/*** IDWriteFactory3 methods ***/ +#define IDWriteFactory6_CreateGlyphRunAnalysis(This,run,transform,rendering_mode,measuring_mode,gridfit_mode,antialias_mode,origin_x,origin_y,analysis) (This)->lpVtbl->IDWriteFactory3_CreateGlyphRunAnalysis(This,run,transform,rendering_mode,measuring_mode,gridfit_mode,antialias_mode,origin_x,origin_y,analysis) +#define IDWriteFactory6_CreateCustomRenderingParams(This,gamma,enhanced_contrast,grayscale_enhanced_contrast,cleartype_level,pixel_geometry,rendering_mode,gridfit_mode,params) (This)->lpVtbl->IDWriteFactory3_CreateCustomRenderingParams(This,gamma,enhanced_contrast,grayscale_enhanced_contrast,cleartype_level,pixel_geometry,rendering_mode,gridfit_mode,params) +#define IDWriteFactory6_CreateFontFaceReference_(This,file,index,simulations,reference) (This)->lpVtbl->CreateFontFaceReference_(This,file,index,simulations,reference) +#define IDWriteFactory6_GetFontDownloadQueue(This,queue) (This)->lpVtbl->GetFontDownloadQueue(This,queue) +/*** IDWriteFactory4 methods ***/ +#define IDWriteFactory6_TranslateColorGlyphRun(This,baseline_origin,run,run_desc,desired_formats,measuring_mode,transform,palette,layers) (This)->lpVtbl->IDWriteFactory4_TranslateColorGlyphRun(This,baseline_origin,run,run_desc,desired_formats,measuring_mode,transform,palette,layers) +#define IDWriteFactory6_ComputeGlyphOrigins_(This,run,baseline_origin,origins) (This)->lpVtbl->ComputeGlyphOrigins_(This,run,baseline_origin,origins) +#define IDWriteFactory6_ComputeGlyphOrigins(This,run,measuring_mode,baseline_origin,transform,origins) (This)->lpVtbl->ComputeGlyphOrigins(This,run,measuring_mode,baseline_origin,transform,origins) +/*** IDWriteFactory5 methods ***/ +#define IDWriteFactory6_CreateInMemoryFontFileLoader(This,loader) (This)->lpVtbl->CreateInMemoryFontFileLoader(This,loader) +#define IDWriteFactory6_CreateHttpFontFileLoader(This,referrer_url,extra_headers,loader) (This)->lpVtbl->CreateHttpFontFileLoader(This,referrer_url,extra_headers,loader) +#define IDWriteFactory6_AnalyzeContainerType(This,data,data_size) (This)->lpVtbl->AnalyzeContainerType(This,data,data_size) +#define IDWriteFactory6_UnpackFontFile(This,container_type,data,data_size,stream) (This)->lpVtbl->UnpackFontFile(This,container_type,data,data_size,stream) +/*** IDWriteFactory6 methods ***/ +#define IDWriteFactory6_CreateFontFaceReference(This,file,face_index,simulations,axis_values,num_axis,face_ref) (This)->lpVtbl->IDWriteFactory6_CreateFontFaceReference(This,file,face_index,simulations,axis_values,num_axis,face_ref) +#define IDWriteFactory6_CreateFontResource(This,file,face_index,resource) (This)->lpVtbl->CreateFontResource(This,file,face_index,resource) +#define IDWriteFactory6_GetSystemFontSet(This,include_downloadable,fontset) (This)->lpVtbl->IDWriteFactory6_GetSystemFontSet(This,include_downloadable,fontset) +#define IDWriteFactory6_GetSystemFontCollection(This,include_downloadable,family_model,collection) (This)->lpVtbl->IDWriteFactory6_GetSystemFontCollection(This,include_downloadable,family_model,collection) +#define IDWriteFactory6_CreateFontCollectionFromFontSet(This,fontset,family_model,collection) (This)->lpVtbl->IDWriteFactory6_CreateFontCollectionFromFontSet(This,fontset,family_model,collection) +#define IDWriteFactory6_CreateFontSetBuilder(This,builder) (This)->lpVtbl->IDWriteFactory6_CreateFontSetBuilder(This,builder) +#define IDWriteFactory6_CreateTextFormat(This,familyname,collection,axis_values,num_axis,fontsize,localename,format) (This)->lpVtbl->IDWriteFactory6_CreateTextFormat(This,familyname,collection,axis_values,num_axis,fontsize,localename,format) +#else +/*** IUnknown methods ***/ +static inline HRESULT IDWriteFactory6_QueryInterface(IDWriteFactory6* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static inline ULONG IDWriteFactory6_AddRef(IDWriteFactory6* This) { + return This->lpVtbl->AddRef(This); +} +static inline ULONG IDWriteFactory6_Release(IDWriteFactory6* This) { + return This->lpVtbl->Release(This); +} +/*** IDWriteFactory methods ***/ +static inline HRESULT IDWriteFactory6_CreateCustomFontCollection(IDWriteFactory6* This,IDWriteFontCollectionLoader *loader,const void *key,UINT32 key_size,IDWriteFontCollection **collection) { + return This->lpVtbl->CreateCustomFontCollection(This,loader,key,key_size,collection); +} +static inline HRESULT IDWriteFactory6_RegisterFontCollectionLoader(IDWriteFactory6* This,IDWriteFontCollectionLoader *loader) { + return This->lpVtbl->RegisterFontCollectionLoader(This,loader); +} +static inline HRESULT IDWriteFactory6_UnregisterFontCollectionLoader(IDWriteFactory6* This,IDWriteFontCollectionLoader *loader) { + return This->lpVtbl->UnregisterFontCollectionLoader(This,loader); +} +static inline HRESULT IDWriteFactory6_CreateFontFileReference(IDWriteFactory6* This,const WCHAR *path,const FILETIME *writetime,IDWriteFontFile **font_file) { + return This->lpVtbl->CreateFontFileReference(This,path,writetime,font_file); +} +static inline HRESULT IDWriteFactory6_CreateCustomFontFileReference(IDWriteFactory6* This,const void *reference_key,UINT32 key_size,IDWriteFontFileLoader *loader,IDWriteFontFile **font_file) { + return This->lpVtbl->CreateCustomFontFileReference(This,reference_key,key_size,loader,font_file); +} +static inline HRESULT IDWriteFactory6_CreateFontFace(IDWriteFactory6* This,DWRITE_FONT_FACE_TYPE facetype,UINT32 files_number,IDWriteFontFile *const *font_files,UINT32 index,DWRITE_FONT_SIMULATIONS sim_flags,IDWriteFontFace **font_face) { + return This->lpVtbl->CreateFontFace(This,facetype,files_number,font_files,index,sim_flags,font_face); +} +static inline HRESULT IDWriteFactory6_CreateRenderingParams(IDWriteFactory6* This,IDWriteRenderingParams **params) { + return This->lpVtbl->CreateRenderingParams(This,params); +} +static inline HRESULT IDWriteFactory6_CreateMonitorRenderingParams(IDWriteFactory6* This,HMONITOR monitor,IDWriteRenderingParams **params) { + return This->lpVtbl->CreateMonitorRenderingParams(This,monitor,params); +} +static inline HRESULT IDWriteFactory6_RegisterFontFileLoader(IDWriteFactory6* This,IDWriteFontFileLoader *loader) { + return This->lpVtbl->RegisterFontFileLoader(This,loader); +} +static inline HRESULT IDWriteFactory6_UnregisterFontFileLoader(IDWriteFactory6* This,IDWriteFontFileLoader *loader) { + return This->lpVtbl->UnregisterFontFileLoader(This,loader); +} +static inline HRESULT IDWriteFactory6_CreateTypography(IDWriteFactory6* This,IDWriteTypography **typography) { + return This->lpVtbl->CreateTypography(This,typography); +} +static inline HRESULT IDWriteFactory6_GetGdiInterop(IDWriteFactory6* This,IDWriteGdiInterop **gdi_interop) { + return This->lpVtbl->GetGdiInterop(This,gdi_interop); +} +static inline HRESULT IDWriteFactory6_CreateTextLayout(IDWriteFactory6* This,const WCHAR *string,UINT32 len,IDWriteTextFormat *format,FLOAT max_width,FLOAT max_height,IDWriteTextLayout **layout) { + return This->lpVtbl->CreateTextLayout(This,string,len,format,max_width,max_height,layout); +} +static inline HRESULT IDWriteFactory6_CreateGdiCompatibleTextLayout(IDWriteFactory6* This,const WCHAR *string,UINT32 len,IDWriteTextFormat *format,FLOAT layout_width,FLOAT layout_height,FLOAT pixels_per_dip,const DWRITE_MATRIX *transform,WINBOOL use_gdi_natural,IDWriteTextLayout **layout) { + return This->lpVtbl->CreateGdiCompatibleTextLayout(This,string,len,format,layout_width,layout_height,pixels_per_dip,transform,use_gdi_natural,layout); +} +static inline HRESULT IDWriteFactory6_CreateEllipsisTrimmingSign(IDWriteFactory6* This,IDWriteTextFormat *format,IDWriteInlineObject **trimming_sign) { + return This->lpVtbl->CreateEllipsisTrimmingSign(This,format,trimming_sign); +} +static inline HRESULT IDWriteFactory6_CreateTextAnalyzer(IDWriteFactory6* This,IDWriteTextAnalyzer **analyzer) { + return This->lpVtbl->CreateTextAnalyzer(This,analyzer); +} +static inline HRESULT IDWriteFactory6_CreateNumberSubstitution(IDWriteFactory6* This,DWRITE_NUMBER_SUBSTITUTION_METHOD method,const WCHAR *locale,WINBOOL ignore_user_override,IDWriteNumberSubstitution **substitution) { + return This->lpVtbl->CreateNumberSubstitution(This,method,locale,ignore_user_override,substitution); +} +/*** IDWriteFactory1 methods ***/ +static inline HRESULT IDWriteFactory6_GetEudcFontCollection(IDWriteFactory6* This,IDWriteFontCollection **collection,WINBOOL check_for_updates) { + return This->lpVtbl->GetEudcFontCollection(This,collection,check_for_updates); +} +/*** IDWriteFactory2 methods ***/ +static inline HRESULT IDWriteFactory6_GetSystemFontFallback(IDWriteFactory6* This,IDWriteFontFallback **fallback) { + return This->lpVtbl->GetSystemFontFallback(This,fallback); +} +static inline HRESULT IDWriteFactory6_CreateFontFallbackBuilder(IDWriteFactory6* This,IDWriteFontFallbackBuilder **fallbackbuilder) { + return This->lpVtbl->CreateFontFallbackBuilder(This,fallbackbuilder); +} +/*** IDWriteFactory3 methods ***/ +static inline HRESULT IDWriteFactory6_CreateGlyphRunAnalysis(IDWriteFactory6* This,const DWRITE_GLYPH_RUN *run,const DWRITE_MATRIX *transform,DWRITE_RENDERING_MODE1 rendering_mode,DWRITE_MEASURING_MODE measuring_mode,DWRITE_GRID_FIT_MODE gridfit_mode,DWRITE_TEXT_ANTIALIAS_MODE antialias_mode,FLOAT origin_x,FLOAT origin_y,IDWriteGlyphRunAnalysis **analysis) { + return This->lpVtbl->IDWriteFactory3_CreateGlyphRunAnalysis(This,run,transform,rendering_mode,measuring_mode,gridfit_mode,antialias_mode,origin_x,origin_y,analysis); +} +static inline HRESULT IDWriteFactory6_CreateCustomRenderingParams(IDWriteFactory6* This,FLOAT gamma,FLOAT enhanced_contrast,FLOAT grayscale_enhanced_contrast,FLOAT cleartype_level,DWRITE_PIXEL_GEOMETRY pixel_geometry,DWRITE_RENDERING_MODE1 rendering_mode,DWRITE_GRID_FIT_MODE gridfit_mode,IDWriteRenderingParams3 **params) { + return This->lpVtbl->IDWriteFactory3_CreateCustomRenderingParams(This,gamma,enhanced_contrast,grayscale_enhanced_contrast,cleartype_level,pixel_geometry,rendering_mode,gridfit_mode,params); +} +static inline HRESULT IDWriteFactory6_CreateFontFaceReference_(IDWriteFactory6* This,IDWriteFontFile *file,UINT32 index,DWRITE_FONT_SIMULATIONS simulations,IDWriteFontFaceReference **reference) { + return This->lpVtbl->CreateFontFaceReference_(This,file,index,simulations,reference); +} +static inline HRESULT IDWriteFactory6_GetFontDownloadQueue(IDWriteFactory6* This,IDWriteFontDownloadQueue **queue) { + return This->lpVtbl->GetFontDownloadQueue(This,queue); +} +/*** IDWriteFactory4 methods ***/ +static inline HRESULT IDWriteFactory6_TranslateColorGlyphRun(IDWriteFactory6* This,D2D1_POINT_2F baseline_origin,const DWRITE_GLYPH_RUN *run,const DWRITE_GLYPH_RUN_DESCRIPTION *run_desc,DWRITE_GLYPH_IMAGE_FORMATS desired_formats,DWRITE_MEASURING_MODE measuring_mode,const DWRITE_MATRIX *transform,UINT32 palette,IDWriteColorGlyphRunEnumerator1 **layers) { + return This->lpVtbl->IDWriteFactory4_TranslateColorGlyphRun(This,baseline_origin,run,run_desc,desired_formats,measuring_mode,transform,palette,layers); +} +static inline HRESULT IDWriteFactory6_ComputeGlyphOrigins_(IDWriteFactory6* This,const DWRITE_GLYPH_RUN *run,D2D1_POINT_2F baseline_origin,D2D1_POINT_2F *origins) { + return This->lpVtbl->ComputeGlyphOrigins_(This,run,baseline_origin,origins); +} +static inline HRESULT IDWriteFactory6_ComputeGlyphOrigins(IDWriteFactory6* This,const DWRITE_GLYPH_RUN *run,DWRITE_MEASURING_MODE measuring_mode,D2D1_POINT_2F baseline_origin,const DWRITE_MATRIX *transform,D2D1_POINT_2F *origins) { + return This->lpVtbl->ComputeGlyphOrigins(This,run,measuring_mode,baseline_origin,transform,origins); +} +/*** IDWriteFactory5 methods ***/ +static inline HRESULT IDWriteFactory6_CreateInMemoryFontFileLoader(IDWriteFactory6* This,IDWriteInMemoryFontFileLoader **loader) { + return This->lpVtbl->CreateInMemoryFontFileLoader(This,loader); +} +static inline HRESULT IDWriteFactory6_CreateHttpFontFileLoader(IDWriteFactory6* This,const WCHAR *referrer_url,const WCHAR *extra_headers,IDWriteRemoteFontFileLoader **loader) { + return This->lpVtbl->CreateHttpFontFileLoader(This,referrer_url,extra_headers,loader); +} +static inline DWRITE_CONTAINER_TYPE IDWriteFactory6_AnalyzeContainerType(IDWriteFactory6* This,const void *data,UINT32 data_size) { + return This->lpVtbl->AnalyzeContainerType(This,data,data_size); +} +static inline HRESULT IDWriteFactory6_UnpackFontFile(IDWriteFactory6* This,DWRITE_CONTAINER_TYPE container_type,const void *data,UINT32 data_size,IDWriteFontFileStream **stream) { + return This->lpVtbl->UnpackFontFile(This,container_type,data,data_size,stream); +} +/*** IDWriteFactory6 methods ***/ +static inline HRESULT IDWriteFactory6_CreateFontFaceReference(IDWriteFactory6* This,IDWriteFontFile *file,UINT32 face_index,DWRITE_FONT_SIMULATIONS simulations,const DWRITE_FONT_AXIS_VALUE *axis_values,UINT32 num_axis,IDWriteFontFaceReference1 **face_ref) { + return This->lpVtbl->IDWriteFactory6_CreateFontFaceReference(This,file,face_index,simulations,axis_values,num_axis,face_ref); +} +static inline HRESULT IDWriteFactory6_CreateFontResource(IDWriteFactory6* This,IDWriteFontFile *file,UINT32 face_index,IDWriteFontResource **resource) { + return This->lpVtbl->CreateFontResource(This,file,face_index,resource); +} +static inline HRESULT IDWriteFactory6_GetSystemFontSet(IDWriteFactory6* This,WINBOOL include_downloadable,IDWriteFontSet1 **fontset) { + return This->lpVtbl->IDWriteFactory6_GetSystemFontSet(This,include_downloadable,fontset); +} +static inline HRESULT IDWriteFactory6_GetSystemFontCollection(IDWriteFactory6* This,WINBOOL include_downloadable,DWRITE_FONT_FAMILY_MODEL family_model,IDWriteFontCollection2 **collection) { + return This->lpVtbl->IDWriteFactory6_GetSystemFontCollection(This,include_downloadable,family_model,collection); +} +static inline HRESULT IDWriteFactory6_CreateFontCollectionFromFontSet(IDWriteFactory6* This,IDWriteFontSet *fontset,DWRITE_FONT_FAMILY_MODEL family_model,IDWriteFontCollection2 **collection) { + return This->lpVtbl->IDWriteFactory6_CreateFontCollectionFromFontSet(This,fontset,family_model,collection); +} +static inline HRESULT IDWriteFactory6_CreateFontSetBuilder(IDWriteFactory6* This,IDWriteFontSetBuilder2 **builder) { + return This->lpVtbl->IDWriteFactory6_CreateFontSetBuilder(This,builder); +} +static inline HRESULT IDWriteFactory6_CreateTextFormat(IDWriteFactory6* This,const WCHAR *familyname,IDWriteFontCollection *collection,const DWRITE_FONT_AXIS_VALUE *axis_values,UINT32 num_axis,FLOAT fontsize,const WCHAR *localename,IDWriteTextFormat3 **format) { + return This->lpVtbl->IDWriteFactory6_CreateTextFormat(This,familyname,collection,axis_values,num_axis,fontsize,localename,format); +} +#endif +#endif + +#endif + + +#endif /* __IDWriteFactory6_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IDWriteFactory7 interface + */ +#ifndef __IDWriteFactory7_INTERFACE_DEFINED__ +#define __IDWriteFactory7_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDWriteFactory7, 0x35d0e0b3, 0x9076, 0x4d2e, 0xa0,0x16, 0xa9,0x1b,0x56,0x8a,0x06,0xb4); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("35d0e0b3-9076-4d2e-a016-a91b568a06b4") +IDWriteFactory7 : public IDWriteFactory6 +{ + virtual HRESULT STDMETHODCALLTYPE GetSystemFontSet( + WINBOOL include_downloadable, + IDWriteFontSet2 **fontset) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetSystemFontCollection( + WINBOOL include_downloadable, + DWRITE_FONT_FAMILY_MODEL family_model, + IDWriteFontCollection3 **collection) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDWriteFactory7, 0x35d0e0b3, 0x9076, 0x4d2e, 0xa0,0x16, 0xa9,0x1b,0x56,0x8a,0x06,0xb4) +#endif +#else +typedef struct IDWriteFactory7Vtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDWriteFactory7 *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDWriteFactory7 *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDWriteFactory7 *This); + + /*** IDWriteFactory methods ***/ + HRESULT (STDMETHODCALLTYPE *GetSystemFontCollection)( + IDWriteFactory7 *This, + IDWriteFontCollection **collection, + WINBOOL check_for_updates); + + HRESULT (STDMETHODCALLTYPE *CreateCustomFontCollection)( + IDWriteFactory7 *This, + IDWriteFontCollectionLoader *loader, + const void *key, + UINT32 key_size, + IDWriteFontCollection **collection); + + HRESULT (STDMETHODCALLTYPE *RegisterFontCollectionLoader)( + IDWriteFactory7 *This, + IDWriteFontCollectionLoader *loader); + + HRESULT (STDMETHODCALLTYPE *UnregisterFontCollectionLoader)( + IDWriteFactory7 *This, + IDWriteFontCollectionLoader *loader); + + HRESULT (STDMETHODCALLTYPE *CreateFontFileReference)( + IDWriteFactory7 *This, + const WCHAR *path, + const FILETIME *writetime, + IDWriteFontFile **font_file); + + HRESULT (STDMETHODCALLTYPE *CreateCustomFontFileReference)( + IDWriteFactory7 *This, + const void *reference_key, + UINT32 key_size, + IDWriteFontFileLoader *loader, + IDWriteFontFile **font_file); + + HRESULT (STDMETHODCALLTYPE *CreateFontFace)( + IDWriteFactory7 *This, + DWRITE_FONT_FACE_TYPE facetype, + UINT32 files_number, + IDWriteFontFile *const *font_files, + UINT32 index, + DWRITE_FONT_SIMULATIONS sim_flags, + IDWriteFontFace **font_face); + + HRESULT (STDMETHODCALLTYPE *CreateRenderingParams)( + IDWriteFactory7 *This, + IDWriteRenderingParams **params); + + HRESULT (STDMETHODCALLTYPE *CreateMonitorRenderingParams)( + IDWriteFactory7 *This, + HMONITOR monitor, + IDWriteRenderingParams **params); + + HRESULT (STDMETHODCALLTYPE *CreateCustomRenderingParams)( + IDWriteFactory7 *This, + FLOAT gamma, + FLOAT enhancedContrast, + FLOAT cleartype_level, + DWRITE_PIXEL_GEOMETRY geometry, + DWRITE_RENDERING_MODE mode, + IDWriteRenderingParams **params); + + HRESULT (STDMETHODCALLTYPE *RegisterFontFileLoader)( + IDWriteFactory7 *This, + IDWriteFontFileLoader *loader); + + HRESULT (STDMETHODCALLTYPE *UnregisterFontFileLoader)( + IDWriteFactory7 *This, + IDWriteFontFileLoader *loader); + + HRESULT (STDMETHODCALLTYPE *CreateTextFormat)( + IDWriteFactory7 *This, + const WCHAR *family_name, + IDWriteFontCollection *collection, + DWRITE_FONT_WEIGHT weight, + DWRITE_FONT_STYLE style, + DWRITE_FONT_STRETCH stretch, + FLOAT size, + const WCHAR *locale, + IDWriteTextFormat **format); + + HRESULT (STDMETHODCALLTYPE *CreateTypography)( + IDWriteFactory7 *This, + IDWriteTypography **typography); + + HRESULT (STDMETHODCALLTYPE *GetGdiInterop)( + IDWriteFactory7 *This, + IDWriteGdiInterop **gdi_interop); + + HRESULT (STDMETHODCALLTYPE *CreateTextLayout)( + IDWriteFactory7 *This, + const WCHAR *string, + UINT32 len, + IDWriteTextFormat *format, + FLOAT max_width, + FLOAT max_height, + IDWriteTextLayout **layout); + + HRESULT (STDMETHODCALLTYPE *CreateGdiCompatibleTextLayout)( + IDWriteFactory7 *This, + const WCHAR *string, + UINT32 len, + IDWriteTextFormat *format, + FLOAT layout_width, + FLOAT layout_height, + FLOAT pixels_per_dip, + const DWRITE_MATRIX *transform, + WINBOOL use_gdi_natural, + IDWriteTextLayout **layout); + + HRESULT (STDMETHODCALLTYPE *CreateEllipsisTrimmingSign)( + IDWriteFactory7 *This, + IDWriteTextFormat *format, + IDWriteInlineObject **trimming_sign); + + HRESULT (STDMETHODCALLTYPE *CreateTextAnalyzer)( + IDWriteFactory7 *This, + IDWriteTextAnalyzer **analyzer); + + HRESULT (STDMETHODCALLTYPE *CreateNumberSubstitution)( + IDWriteFactory7 *This, + DWRITE_NUMBER_SUBSTITUTION_METHOD method, + const WCHAR *locale, + WINBOOL ignore_user_override, + IDWriteNumberSubstitution **substitution); + + HRESULT (STDMETHODCALLTYPE *CreateGlyphRunAnalysis)( + IDWriteFactory7 *This, + const DWRITE_GLYPH_RUN *glyph_run, + FLOAT pixels_per_dip, + const DWRITE_MATRIX *transform, + DWRITE_RENDERING_MODE rendering_mode, + DWRITE_MEASURING_MODE measuring_mode, + FLOAT baseline_x, + FLOAT baseline_y, + IDWriteGlyphRunAnalysis **analysis); + + /*** IDWriteFactory1 methods ***/ + HRESULT (STDMETHODCALLTYPE *GetEudcFontCollection)( + IDWriteFactory7 *This, + IDWriteFontCollection **collection, + WINBOOL check_for_updates); + + HRESULT (STDMETHODCALLTYPE *IDWriteFactory1_CreateCustomRenderingParams)( + IDWriteFactory7 *This, + FLOAT gamma, + FLOAT enhcontrast, + FLOAT enhcontrast_grayscale, + FLOAT cleartype_level, + DWRITE_PIXEL_GEOMETRY geometry, + DWRITE_RENDERING_MODE mode, + IDWriteRenderingParams1 **params); + + /*** IDWriteFactory2 methods ***/ + HRESULT (STDMETHODCALLTYPE *GetSystemFontFallback)( + IDWriteFactory7 *This, + IDWriteFontFallback **fallback); + + HRESULT (STDMETHODCALLTYPE *CreateFontFallbackBuilder)( + IDWriteFactory7 *This, + IDWriteFontFallbackBuilder **fallbackbuilder); + + HRESULT (STDMETHODCALLTYPE *TranslateColorGlyphRun)( + IDWriteFactory7 *This, + FLOAT originX, + FLOAT originY, + const DWRITE_GLYPH_RUN *run, + const DWRITE_GLYPH_RUN_DESCRIPTION *rundescr, + DWRITE_MEASURING_MODE mode, + const DWRITE_MATRIX *transform, + UINT32 palette_index, + IDWriteColorGlyphRunEnumerator **colorlayers); + + HRESULT (STDMETHODCALLTYPE *IDWriteFactory2_CreateCustomRenderingParams)( + IDWriteFactory7 *This, + FLOAT gamma, + FLOAT contrast, + FLOAT grayscalecontrast, + FLOAT cleartypeLevel, + DWRITE_PIXEL_GEOMETRY pixelGeometry, + DWRITE_RENDERING_MODE renderingMode, + DWRITE_GRID_FIT_MODE gridFitMode, + IDWriteRenderingParams2 **params); + + HRESULT (STDMETHODCALLTYPE *IDWriteFactory2_CreateGlyphRunAnalysis)( + IDWriteFactory7 *This, + const DWRITE_GLYPH_RUN *run, + const DWRITE_MATRIX *transform, + DWRITE_RENDERING_MODE renderingMode, + DWRITE_MEASURING_MODE measuringMode, + DWRITE_GRID_FIT_MODE gridFitMode, + DWRITE_TEXT_ANTIALIAS_MODE antialiasMode, + FLOAT originX, + FLOAT originY, + IDWriteGlyphRunAnalysis **analysis); + + /*** IDWriteFactory3 methods ***/ + HRESULT (STDMETHODCALLTYPE *IDWriteFactory3_CreateGlyphRunAnalysis)( + IDWriteFactory7 *This, + const DWRITE_GLYPH_RUN *run, + const DWRITE_MATRIX *transform, + DWRITE_RENDERING_MODE1 rendering_mode, + DWRITE_MEASURING_MODE measuring_mode, + DWRITE_GRID_FIT_MODE gridfit_mode, + DWRITE_TEXT_ANTIALIAS_MODE antialias_mode, + FLOAT origin_x, + FLOAT origin_y, + IDWriteGlyphRunAnalysis **analysis); + + HRESULT (STDMETHODCALLTYPE *IDWriteFactory3_CreateCustomRenderingParams)( + IDWriteFactory7 *This, + FLOAT gamma, + FLOAT enhanced_contrast, + FLOAT grayscale_enhanced_contrast, + FLOAT cleartype_level, + DWRITE_PIXEL_GEOMETRY pixel_geometry, + DWRITE_RENDERING_MODE1 rendering_mode, + DWRITE_GRID_FIT_MODE gridfit_mode, + IDWriteRenderingParams3 **params); + + HRESULT (STDMETHODCALLTYPE *CreateFontFaceReference_)( + IDWriteFactory7 *This, + IDWriteFontFile *file, + UINT32 index, + DWRITE_FONT_SIMULATIONS simulations, + IDWriteFontFaceReference **reference); + + HRESULT (STDMETHODCALLTYPE *CreateFontFaceReference)( + IDWriteFactory7 *This, + const WCHAR *path, + const FILETIME *writetime, + UINT32 index, + DWRITE_FONT_SIMULATIONS simulations, + IDWriteFontFaceReference **reference); + + HRESULT (STDMETHODCALLTYPE *GetSystemFontSet)( + IDWriteFactory7 *This, + IDWriteFontSet **fontset); + + HRESULT (STDMETHODCALLTYPE *CreateFontSetBuilder)( + IDWriteFactory7 *This, + IDWriteFontSetBuilder **builder); + + HRESULT (STDMETHODCALLTYPE *CreateFontCollectionFromFontSet)( + IDWriteFactory7 *This, + IDWriteFontSet *fontset, + IDWriteFontCollection1 **collection); + + HRESULT (STDMETHODCALLTYPE *IDWriteFactory3_GetSystemFontCollection)( + IDWriteFactory7 *This, + WINBOOL include_downloadable, + IDWriteFontCollection1 **collection, + WINBOOL check_for_updates); + + HRESULT (STDMETHODCALLTYPE *GetFontDownloadQueue)( + IDWriteFactory7 *This, + IDWriteFontDownloadQueue **queue); + + /*** IDWriteFactory4 methods ***/ + HRESULT (STDMETHODCALLTYPE *IDWriteFactory4_TranslateColorGlyphRun)( + IDWriteFactory7 *This, + D2D1_POINT_2F baseline_origin, + const DWRITE_GLYPH_RUN *run, + const DWRITE_GLYPH_RUN_DESCRIPTION *run_desc, + DWRITE_GLYPH_IMAGE_FORMATS desired_formats, + DWRITE_MEASURING_MODE measuring_mode, + const DWRITE_MATRIX *transform, + UINT32 palette, + IDWriteColorGlyphRunEnumerator1 **layers); + + HRESULT (STDMETHODCALLTYPE *ComputeGlyphOrigins_)( + IDWriteFactory7 *This, + const DWRITE_GLYPH_RUN *run, + D2D1_POINT_2F baseline_origin, + D2D1_POINT_2F *origins); + + HRESULT (STDMETHODCALLTYPE *ComputeGlyphOrigins)( + IDWriteFactory7 *This, + const DWRITE_GLYPH_RUN *run, + DWRITE_MEASURING_MODE measuring_mode, + D2D1_POINT_2F baseline_origin, + const DWRITE_MATRIX *transform, + D2D1_POINT_2F *origins); + + /*** IDWriteFactory5 methods ***/ + HRESULT (STDMETHODCALLTYPE *IDWriteFactory5_CreateFontSetBuilder)( + IDWriteFactory7 *This, + IDWriteFontSetBuilder1 **fontset_builder); + + HRESULT (STDMETHODCALLTYPE *CreateInMemoryFontFileLoader)( + IDWriteFactory7 *This, + IDWriteInMemoryFontFileLoader **loader); + + HRESULT (STDMETHODCALLTYPE *CreateHttpFontFileLoader)( + IDWriteFactory7 *This, + const WCHAR *referrer_url, + const WCHAR *extra_headers, + IDWriteRemoteFontFileLoader **loader); + + DWRITE_CONTAINER_TYPE (STDMETHODCALLTYPE *AnalyzeContainerType)( + IDWriteFactory7 *This, + const void *data, + UINT32 data_size); + + HRESULT (STDMETHODCALLTYPE *UnpackFontFile)( + IDWriteFactory7 *This, + DWRITE_CONTAINER_TYPE container_type, + const void *data, + UINT32 data_size, + IDWriteFontFileStream **stream); + + /*** IDWriteFactory6 methods ***/ + HRESULT (STDMETHODCALLTYPE *IDWriteFactory6_CreateFontFaceReference)( + IDWriteFactory7 *This, + IDWriteFontFile *file, + UINT32 face_index, + DWRITE_FONT_SIMULATIONS simulations, + const DWRITE_FONT_AXIS_VALUE *axis_values, + UINT32 num_axis, + IDWriteFontFaceReference1 **face_ref); + + HRESULT (STDMETHODCALLTYPE *CreateFontResource)( + IDWriteFactory7 *This, + IDWriteFontFile *file, + UINT32 face_index, + IDWriteFontResource **resource); + + HRESULT (STDMETHODCALLTYPE *IDWriteFactory6_GetSystemFontSet)( + IDWriteFactory7 *This, + WINBOOL include_downloadable, + IDWriteFontSet1 **fontset); + + HRESULT (STDMETHODCALLTYPE *IDWriteFactory6_GetSystemFontCollection)( + IDWriteFactory7 *This, + WINBOOL include_downloadable, + DWRITE_FONT_FAMILY_MODEL family_model, + IDWriteFontCollection2 **collection); + + HRESULT (STDMETHODCALLTYPE *IDWriteFactory6_CreateFontCollectionFromFontSet)( + IDWriteFactory7 *This, + IDWriteFontSet *fontset, + DWRITE_FONT_FAMILY_MODEL family_model, + IDWriteFontCollection2 **collection); + + HRESULT (STDMETHODCALLTYPE *IDWriteFactory6_CreateFontSetBuilder)( + IDWriteFactory7 *This, + IDWriteFontSetBuilder2 **builder); + + HRESULT (STDMETHODCALLTYPE *IDWriteFactory6_CreateTextFormat)( + IDWriteFactory7 *This, + const WCHAR *familyname, + IDWriteFontCollection *collection, + const DWRITE_FONT_AXIS_VALUE *axis_values, + UINT32 num_axis, + FLOAT fontsize, + const WCHAR *localename, + IDWriteTextFormat3 **format); + + /*** IDWriteFactory7 methods ***/ + HRESULT (STDMETHODCALLTYPE *IDWriteFactory7_GetSystemFontSet)( + IDWriteFactory7 *This, + WINBOOL include_downloadable, + IDWriteFontSet2 **fontset); + + HRESULT (STDMETHODCALLTYPE *IDWriteFactory7_GetSystemFontCollection)( + IDWriteFactory7 *This, + WINBOOL include_downloadable, + DWRITE_FONT_FAMILY_MODEL family_model, + IDWriteFontCollection3 **collection); + + END_INTERFACE +} IDWriteFactory7Vtbl; + +interface IDWriteFactory7 { + CONST_VTBL IDWriteFactory7Vtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDWriteFactory7_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteFactory7_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDWriteFactory7_Release(This) (This)->lpVtbl->Release(This) +/*** IDWriteFactory methods ***/ +#define IDWriteFactory7_CreateCustomFontCollection(This,loader,key,key_size,collection) (This)->lpVtbl->CreateCustomFontCollection(This,loader,key,key_size,collection) +#define IDWriteFactory7_RegisterFontCollectionLoader(This,loader) (This)->lpVtbl->RegisterFontCollectionLoader(This,loader) +#define IDWriteFactory7_UnregisterFontCollectionLoader(This,loader) (This)->lpVtbl->UnregisterFontCollectionLoader(This,loader) +#define IDWriteFactory7_CreateFontFileReference(This,path,writetime,font_file) (This)->lpVtbl->CreateFontFileReference(This,path,writetime,font_file) +#define IDWriteFactory7_CreateCustomFontFileReference(This,reference_key,key_size,loader,font_file) (This)->lpVtbl->CreateCustomFontFileReference(This,reference_key,key_size,loader,font_file) +#define IDWriteFactory7_CreateFontFace(This,facetype,files_number,font_files,index,sim_flags,font_face) (This)->lpVtbl->CreateFontFace(This,facetype,files_number,font_files,index,sim_flags,font_face) +#define IDWriteFactory7_CreateRenderingParams(This,params) (This)->lpVtbl->CreateRenderingParams(This,params) +#define IDWriteFactory7_CreateMonitorRenderingParams(This,monitor,params) (This)->lpVtbl->CreateMonitorRenderingParams(This,monitor,params) +#define IDWriteFactory7_RegisterFontFileLoader(This,loader) (This)->lpVtbl->RegisterFontFileLoader(This,loader) +#define IDWriteFactory7_UnregisterFontFileLoader(This,loader) (This)->lpVtbl->UnregisterFontFileLoader(This,loader) +#define IDWriteFactory7_CreateTypography(This,typography) (This)->lpVtbl->CreateTypography(This,typography) +#define IDWriteFactory7_GetGdiInterop(This,gdi_interop) (This)->lpVtbl->GetGdiInterop(This,gdi_interop) +#define IDWriteFactory7_CreateTextLayout(This,string,len,format,max_width,max_height,layout) (This)->lpVtbl->CreateTextLayout(This,string,len,format,max_width,max_height,layout) +#define IDWriteFactory7_CreateGdiCompatibleTextLayout(This,string,len,format,layout_width,layout_height,pixels_per_dip,transform,use_gdi_natural,layout) (This)->lpVtbl->CreateGdiCompatibleTextLayout(This,string,len,format,layout_width,layout_height,pixels_per_dip,transform,use_gdi_natural,layout) +#define IDWriteFactory7_CreateEllipsisTrimmingSign(This,format,trimming_sign) (This)->lpVtbl->CreateEllipsisTrimmingSign(This,format,trimming_sign) +#define IDWriteFactory7_CreateTextAnalyzer(This,analyzer) (This)->lpVtbl->CreateTextAnalyzer(This,analyzer) +#define IDWriteFactory7_CreateNumberSubstitution(This,method,locale,ignore_user_override,substitution) (This)->lpVtbl->CreateNumberSubstitution(This,method,locale,ignore_user_override,substitution) +/*** IDWriteFactory1 methods ***/ +#define IDWriteFactory7_GetEudcFontCollection(This,collection,check_for_updates) (This)->lpVtbl->GetEudcFontCollection(This,collection,check_for_updates) +/*** IDWriteFactory2 methods ***/ +#define IDWriteFactory7_GetSystemFontFallback(This,fallback) (This)->lpVtbl->GetSystemFontFallback(This,fallback) +#define IDWriteFactory7_CreateFontFallbackBuilder(This,fallbackbuilder) (This)->lpVtbl->CreateFontFallbackBuilder(This,fallbackbuilder) +/*** IDWriteFactory3 methods ***/ +#define IDWriteFactory7_CreateGlyphRunAnalysis(This,run,transform,rendering_mode,measuring_mode,gridfit_mode,antialias_mode,origin_x,origin_y,analysis) (This)->lpVtbl->IDWriteFactory3_CreateGlyphRunAnalysis(This,run,transform,rendering_mode,measuring_mode,gridfit_mode,antialias_mode,origin_x,origin_y,analysis) +#define IDWriteFactory7_CreateCustomRenderingParams(This,gamma,enhanced_contrast,grayscale_enhanced_contrast,cleartype_level,pixel_geometry,rendering_mode,gridfit_mode,params) (This)->lpVtbl->IDWriteFactory3_CreateCustomRenderingParams(This,gamma,enhanced_contrast,grayscale_enhanced_contrast,cleartype_level,pixel_geometry,rendering_mode,gridfit_mode,params) +#define IDWriteFactory7_CreateFontFaceReference_(This,file,index,simulations,reference) (This)->lpVtbl->CreateFontFaceReference_(This,file,index,simulations,reference) +#define IDWriteFactory7_GetFontDownloadQueue(This,queue) (This)->lpVtbl->GetFontDownloadQueue(This,queue) +/*** IDWriteFactory4 methods ***/ +#define IDWriteFactory7_TranslateColorGlyphRun(This,baseline_origin,run,run_desc,desired_formats,measuring_mode,transform,palette,layers) (This)->lpVtbl->IDWriteFactory4_TranslateColorGlyphRun(This,baseline_origin,run,run_desc,desired_formats,measuring_mode,transform,palette,layers) +#define IDWriteFactory7_ComputeGlyphOrigins_(This,run,baseline_origin,origins) (This)->lpVtbl->ComputeGlyphOrigins_(This,run,baseline_origin,origins) +#define IDWriteFactory7_ComputeGlyphOrigins(This,run,measuring_mode,baseline_origin,transform,origins) (This)->lpVtbl->ComputeGlyphOrigins(This,run,measuring_mode,baseline_origin,transform,origins) +/*** IDWriteFactory5 methods ***/ +#define IDWriteFactory7_CreateInMemoryFontFileLoader(This,loader) (This)->lpVtbl->CreateInMemoryFontFileLoader(This,loader) +#define IDWriteFactory7_CreateHttpFontFileLoader(This,referrer_url,extra_headers,loader) (This)->lpVtbl->CreateHttpFontFileLoader(This,referrer_url,extra_headers,loader) +#define IDWriteFactory7_AnalyzeContainerType(This,data,data_size) (This)->lpVtbl->AnalyzeContainerType(This,data,data_size) +#define IDWriteFactory7_UnpackFontFile(This,container_type,data,data_size,stream) (This)->lpVtbl->UnpackFontFile(This,container_type,data,data_size,stream) +/*** IDWriteFactory6 methods ***/ +#define IDWriteFactory7_CreateFontFaceReference(This,file,face_index,simulations,axis_values,num_axis,face_ref) (This)->lpVtbl->IDWriteFactory6_CreateFontFaceReference(This,file,face_index,simulations,axis_values,num_axis,face_ref) +#define IDWriteFactory7_CreateFontResource(This,file,face_index,resource) (This)->lpVtbl->CreateFontResource(This,file,face_index,resource) +#define IDWriteFactory7_CreateFontCollectionFromFontSet(This,fontset,family_model,collection) (This)->lpVtbl->IDWriteFactory6_CreateFontCollectionFromFontSet(This,fontset,family_model,collection) +#define IDWriteFactory7_CreateFontSetBuilder(This,builder) (This)->lpVtbl->IDWriteFactory6_CreateFontSetBuilder(This,builder) +#define IDWriteFactory7_CreateTextFormat(This,familyname,collection,axis_values,num_axis,fontsize,localename,format) (This)->lpVtbl->IDWriteFactory6_CreateTextFormat(This,familyname,collection,axis_values,num_axis,fontsize,localename,format) +/*** IDWriteFactory7 methods ***/ +#define IDWriteFactory7_GetSystemFontSet(This,include_downloadable,fontset) (This)->lpVtbl->IDWriteFactory7_GetSystemFontSet(This,include_downloadable,fontset) +#define IDWriteFactory7_GetSystemFontCollection(This,include_downloadable,family_model,collection) (This)->lpVtbl->IDWriteFactory7_GetSystemFontCollection(This,include_downloadable,family_model,collection) +#else +/*** IUnknown methods ***/ +static inline HRESULT IDWriteFactory7_QueryInterface(IDWriteFactory7* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static inline ULONG IDWriteFactory7_AddRef(IDWriteFactory7* This) { + return This->lpVtbl->AddRef(This); +} +static inline ULONG IDWriteFactory7_Release(IDWriteFactory7* This) { + return This->lpVtbl->Release(This); +} +/*** IDWriteFactory methods ***/ +static inline HRESULT IDWriteFactory7_CreateCustomFontCollection(IDWriteFactory7* This,IDWriteFontCollectionLoader *loader,const void *key,UINT32 key_size,IDWriteFontCollection **collection) { + return This->lpVtbl->CreateCustomFontCollection(This,loader,key,key_size,collection); +} +static inline HRESULT IDWriteFactory7_RegisterFontCollectionLoader(IDWriteFactory7* This,IDWriteFontCollectionLoader *loader) { + return This->lpVtbl->RegisterFontCollectionLoader(This,loader); +} +static inline HRESULT IDWriteFactory7_UnregisterFontCollectionLoader(IDWriteFactory7* This,IDWriteFontCollectionLoader *loader) { + return This->lpVtbl->UnregisterFontCollectionLoader(This,loader); +} +static inline HRESULT IDWriteFactory7_CreateFontFileReference(IDWriteFactory7* This,const WCHAR *path,const FILETIME *writetime,IDWriteFontFile **font_file) { + return This->lpVtbl->CreateFontFileReference(This,path,writetime,font_file); +} +static inline HRESULT IDWriteFactory7_CreateCustomFontFileReference(IDWriteFactory7* This,const void *reference_key,UINT32 key_size,IDWriteFontFileLoader *loader,IDWriteFontFile **font_file) { + return This->lpVtbl->CreateCustomFontFileReference(This,reference_key,key_size,loader,font_file); +} +static inline HRESULT IDWriteFactory7_CreateFontFace(IDWriteFactory7* This,DWRITE_FONT_FACE_TYPE facetype,UINT32 files_number,IDWriteFontFile *const *font_files,UINT32 index,DWRITE_FONT_SIMULATIONS sim_flags,IDWriteFontFace **font_face) { + return This->lpVtbl->CreateFontFace(This,facetype,files_number,font_files,index,sim_flags,font_face); +} +static inline HRESULT IDWriteFactory7_CreateRenderingParams(IDWriteFactory7* This,IDWriteRenderingParams **params) { + return This->lpVtbl->CreateRenderingParams(This,params); +} +static inline HRESULT IDWriteFactory7_CreateMonitorRenderingParams(IDWriteFactory7* This,HMONITOR monitor,IDWriteRenderingParams **params) { + return This->lpVtbl->CreateMonitorRenderingParams(This,monitor,params); +} +static inline HRESULT IDWriteFactory7_RegisterFontFileLoader(IDWriteFactory7* This,IDWriteFontFileLoader *loader) { + return This->lpVtbl->RegisterFontFileLoader(This,loader); +} +static inline HRESULT IDWriteFactory7_UnregisterFontFileLoader(IDWriteFactory7* This,IDWriteFontFileLoader *loader) { + return This->lpVtbl->UnregisterFontFileLoader(This,loader); +} +static inline HRESULT IDWriteFactory7_CreateTypography(IDWriteFactory7* This,IDWriteTypography **typography) { + return This->lpVtbl->CreateTypography(This,typography); +} +static inline HRESULT IDWriteFactory7_GetGdiInterop(IDWriteFactory7* This,IDWriteGdiInterop **gdi_interop) { + return This->lpVtbl->GetGdiInterop(This,gdi_interop); +} +static inline HRESULT IDWriteFactory7_CreateTextLayout(IDWriteFactory7* This,const WCHAR *string,UINT32 len,IDWriteTextFormat *format,FLOAT max_width,FLOAT max_height,IDWriteTextLayout **layout) { + return This->lpVtbl->CreateTextLayout(This,string,len,format,max_width,max_height,layout); +} +static inline HRESULT IDWriteFactory7_CreateGdiCompatibleTextLayout(IDWriteFactory7* This,const WCHAR *string,UINT32 len,IDWriteTextFormat *format,FLOAT layout_width,FLOAT layout_height,FLOAT pixels_per_dip,const DWRITE_MATRIX *transform,WINBOOL use_gdi_natural,IDWriteTextLayout **layout) { + return This->lpVtbl->CreateGdiCompatibleTextLayout(This,string,len,format,layout_width,layout_height,pixels_per_dip,transform,use_gdi_natural,layout); +} +static inline HRESULT IDWriteFactory7_CreateEllipsisTrimmingSign(IDWriteFactory7* This,IDWriteTextFormat *format,IDWriteInlineObject **trimming_sign) { + return This->lpVtbl->CreateEllipsisTrimmingSign(This,format,trimming_sign); +} +static inline HRESULT IDWriteFactory7_CreateTextAnalyzer(IDWriteFactory7* This,IDWriteTextAnalyzer **analyzer) { + return This->lpVtbl->CreateTextAnalyzer(This,analyzer); +} +static inline HRESULT IDWriteFactory7_CreateNumberSubstitution(IDWriteFactory7* This,DWRITE_NUMBER_SUBSTITUTION_METHOD method,const WCHAR *locale,WINBOOL ignore_user_override,IDWriteNumberSubstitution **substitution) { + return This->lpVtbl->CreateNumberSubstitution(This,method,locale,ignore_user_override,substitution); +} +/*** IDWriteFactory1 methods ***/ +static inline HRESULT IDWriteFactory7_GetEudcFontCollection(IDWriteFactory7* This,IDWriteFontCollection **collection,WINBOOL check_for_updates) { + return This->lpVtbl->GetEudcFontCollection(This,collection,check_for_updates); +} +/*** IDWriteFactory2 methods ***/ +static inline HRESULT IDWriteFactory7_GetSystemFontFallback(IDWriteFactory7* This,IDWriteFontFallback **fallback) { + return This->lpVtbl->GetSystemFontFallback(This,fallback); +} +static inline HRESULT IDWriteFactory7_CreateFontFallbackBuilder(IDWriteFactory7* This,IDWriteFontFallbackBuilder **fallbackbuilder) { + return This->lpVtbl->CreateFontFallbackBuilder(This,fallbackbuilder); +} +/*** IDWriteFactory3 methods ***/ +static inline HRESULT IDWriteFactory7_CreateGlyphRunAnalysis(IDWriteFactory7* This,const DWRITE_GLYPH_RUN *run,const DWRITE_MATRIX *transform,DWRITE_RENDERING_MODE1 rendering_mode,DWRITE_MEASURING_MODE measuring_mode,DWRITE_GRID_FIT_MODE gridfit_mode,DWRITE_TEXT_ANTIALIAS_MODE antialias_mode,FLOAT origin_x,FLOAT origin_y,IDWriteGlyphRunAnalysis **analysis) { + return This->lpVtbl->IDWriteFactory3_CreateGlyphRunAnalysis(This,run,transform,rendering_mode,measuring_mode,gridfit_mode,antialias_mode,origin_x,origin_y,analysis); +} +static inline HRESULT IDWriteFactory7_CreateCustomRenderingParams(IDWriteFactory7* This,FLOAT gamma,FLOAT enhanced_contrast,FLOAT grayscale_enhanced_contrast,FLOAT cleartype_level,DWRITE_PIXEL_GEOMETRY pixel_geometry,DWRITE_RENDERING_MODE1 rendering_mode,DWRITE_GRID_FIT_MODE gridfit_mode,IDWriteRenderingParams3 **params) { + return This->lpVtbl->IDWriteFactory3_CreateCustomRenderingParams(This,gamma,enhanced_contrast,grayscale_enhanced_contrast,cleartype_level,pixel_geometry,rendering_mode,gridfit_mode,params); +} +static inline HRESULT IDWriteFactory7_CreateFontFaceReference_(IDWriteFactory7* This,IDWriteFontFile *file,UINT32 index,DWRITE_FONT_SIMULATIONS simulations,IDWriteFontFaceReference **reference) { + return This->lpVtbl->CreateFontFaceReference_(This,file,index,simulations,reference); +} +static inline HRESULT IDWriteFactory7_GetFontDownloadQueue(IDWriteFactory7* This,IDWriteFontDownloadQueue **queue) { + return This->lpVtbl->GetFontDownloadQueue(This,queue); +} +/*** IDWriteFactory4 methods ***/ +static inline HRESULT IDWriteFactory7_TranslateColorGlyphRun(IDWriteFactory7* This,D2D1_POINT_2F baseline_origin,const DWRITE_GLYPH_RUN *run,const DWRITE_GLYPH_RUN_DESCRIPTION *run_desc,DWRITE_GLYPH_IMAGE_FORMATS desired_formats,DWRITE_MEASURING_MODE measuring_mode,const DWRITE_MATRIX *transform,UINT32 palette,IDWriteColorGlyphRunEnumerator1 **layers) { + return This->lpVtbl->IDWriteFactory4_TranslateColorGlyphRun(This,baseline_origin,run,run_desc,desired_formats,measuring_mode,transform,palette,layers); +} +static inline HRESULT IDWriteFactory7_ComputeGlyphOrigins_(IDWriteFactory7* This,const DWRITE_GLYPH_RUN *run,D2D1_POINT_2F baseline_origin,D2D1_POINT_2F *origins) { + return This->lpVtbl->ComputeGlyphOrigins_(This,run,baseline_origin,origins); +} +static inline HRESULT IDWriteFactory7_ComputeGlyphOrigins(IDWriteFactory7* This,const DWRITE_GLYPH_RUN *run,DWRITE_MEASURING_MODE measuring_mode,D2D1_POINT_2F baseline_origin,const DWRITE_MATRIX *transform,D2D1_POINT_2F *origins) { + return This->lpVtbl->ComputeGlyphOrigins(This,run,measuring_mode,baseline_origin,transform,origins); +} +/*** IDWriteFactory5 methods ***/ +static inline HRESULT IDWriteFactory7_CreateInMemoryFontFileLoader(IDWriteFactory7* This,IDWriteInMemoryFontFileLoader **loader) { + return This->lpVtbl->CreateInMemoryFontFileLoader(This,loader); +} +static inline HRESULT IDWriteFactory7_CreateHttpFontFileLoader(IDWriteFactory7* This,const WCHAR *referrer_url,const WCHAR *extra_headers,IDWriteRemoteFontFileLoader **loader) { + return This->lpVtbl->CreateHttpFontFileLoader(This,referrer_url,extra_headers,loader); +} +static inline DWRITE_CONTAINER_TYPE IDWriteFactory7_AnalyzeContainerType(IDWriteFactory7* This,const void *data,UINT32 data_size) { + return This->lpVtbl->AnalyzeContainerType(This,data,data_size); +} +static inline HRESULT IDWriteFactory7_UnpackFontFile(IDWriteFactory7* This,DWRITE_CONTAINER_TYPE container_type,const void *data,UINT32 data_size,IDWriteFontFileStream **stream) { + return This->lpVtbl->UnpackFontFile(This,container_type,data,data_size,stream); +} +/*** IDWriteFactory6 methods ***/ +static inline HRESULT IDWriteFactory7_CreateFontFaceReference(IDWriteFactory7* This,IDWriteFontFile *file,UINT32 face_index,DWRITE_FONT_SIMULATIONS simulations,const DWRITE_FONT_AXIS_VALUE *axis_values,UINT32 num_axis,IDWriteFontFaceReference1 **face_ref) { + return This->lpVtbl->IDWriteFactory6_CreateFontFaceReference(This,file,face_index,simulations,axis_values,num_axis,face_ref); +} +static inline HRESULT IDWriteFactory7_CreateFontResource(IDWriteFactory7* This,IDWriteFontFile *file,UINT32 face_index,IDWriteFontResource **resource) { + return This->lpVtbl->CreateFontResource(This,file,face_index,resource); +} +static inline HRESULT IDWriteFactory7_CreateFontCollectionFromFontSet(IDWriteFactory7* This,IDWriteFontSet *fontset,DWRITE_FONT_FAMILY_MODEL family_model,IDWriteFontCollection2 **collection) { + return This->lpVtbl->IDWriteFactory6_CreateFontCollectionFromFontSet(This,fontset,family_model,collection); +} +static inline HRESULT IDWriteFactory7_CreateFontSetBuilder(IDWriteFactory7* This,IDWriteFontSetBuilder2 **builder) { + return This->lpVtbl->IDWriteFactory6_CreateFontSetBuilder(This,builder); +} +static inline HRESULT IDWriteFactory7_CreateTextFormat(IDWriteFactory7* This,const WCHAR *familyname,IDWriteFontCollection *collection,const DWRITE_FONT_AXIS_VALUE *axis_values,UINT32 num_axis,FLOAT fontsize,const WCHAR *localename,IDWriteTextFormat3 **format) { + return This->lpVtbl->IDWriteFactory6_CreateTextFormat(This,familyname,collection,axis_values,num_axis,fontsize,localename,format); +} +/*** IDWriteFactory7 methods ***/ +static inline HRESULT IDWriteFactory7_GetSystemFontSet(IDWriteFactory7* This,WINBOOL include_downloadable,IDWriteFontSet2 **fontset) { + return This->lpVtbl->IDWriteFactory7_GetSystemFontSet(This,include_downloadable,fontset); +} +static inline HRESULT IDWriteFactory7_GetSystemFontCollection(IDWriteFactory7* This,WINBOOL include_downloadable,DWRITE_FONT_FAMILY_MODEL family_model,IDWriteFontCollection3 **collection) { + return This->lpVtbl->IDWriteFactory7_GetSystemFontCollection(This,include_downloadable,family_model,collection); +} +#endif +#endif + +#endif + + +#endif /* __IDWriteFactory7_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IDWriteFactory8 interface + */ +#ifndef __IDWriteFactory8_INTERFACE_DEFINED__ +#define __IDWriteFactory8_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDWriteFactory8, 0xee0a7fb5, 0xdef4, 0x4c23, 0xa4,0x54, 0xc9,0xc7,0xdc,0x87,0x83,0x98); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("ee0a7fb5-def4-4c23-a454-c9c7dc878398") +IDWriteFactory8 : public IDWriteFactory7 +{ + virtual HRESULT STDMETHODCALLTYPE TranslateColorGlyphRun( + D2D1_POINT_2F origin, + const DWRITE_GLYPH_RUN *glyph_run, + const DWRITE_GLYPH_RUN_DESCRIPTION *glyph_run_desc, + DWRITE_GLYPH_IMAGE_FORMATS image_formats, + DWRITE_PAINT_FEATURE_LEVEL feature_level, + DWRITE_MEASURING_MODE measuring_mode, + const DWRITE_MATRIX *world_and_dpi_transform, + UINT32 palette_index, + IDWriteColorGlyphRunEnumerator1 **enumerator) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDWriteFactory8, 0xee0a7fb5, 0xdef4, 0x4c23, 0xa4,0x54, 0xc9,0xc7,0xdc,0x87,0x83,0x98) +#endif +#else +typedef struct IDWriteFactory8Vtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDWriteFactory8 *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDWriteFactory8 *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDWriteFactory8 *This); + + /*** IDWriteFactory methods ***/ + HRESULT (STDMETHODCALLTYPE *GetSystemFontCollection)( + IDWriteFactory8 *This, + IDWriteFontCollection **collection, + WINBOOL check_for_updates); + + HRESULT (STDMETHODCALLTYPE *CreateCustomFontCollection)( + IDWriteFactory8 *This, + IDWriteFontCollectionLoader *loader, + const void *key, + UINT32 key_size, + IDWriteFontCollection **collection); + + HRESULT (STDMETHODCALLTYPE *RegisterFontCollectionLoader)( + IDWriteFactory8 *This, + IDWriteFontCollectionLoader *loader); + + HRESULT (STDMETHODCALLTYPE *UnregisterFontCollectionLoader)( + IDWriteFactory8 *This, + IDWriteFontCollectionLoader *loader); + + HRESULT (STDMETHODCALLTYPE *CreateFontFileReference)( + IDWriteFactory8 *This, + const WCHAR *path, + const FILETIME *writetime, + IDWriteFontFile **font_file); + + HRESULT (STDMETHODCALLTYPE *CreateCustomFontFileReference)( + IDWriteFactory8 *This, + const void *reference_key, + UINT32 key_size, + IDWriteFontFileLoader *loader, + IDWriteFontFile **font_file); + + HRESULT (STDMETHODCALLTYPE *CreateFontFace)( + IDWriteFactory8 *This, + DWRITE_FONT_FACE_TYPE facetype, + UINT32 files_number, + IDWriteFontFile *const *font_files, + UINT32 index, + DWRITE_FONT_SIMULATIONS sim_flags, + IDWriteFontFace **font_face); + + HRESULT (STDMETHODCALLTYPE *CreateRenderingParams)( + IDWriteFactory8 *This, + IDWriteRenderingParams **params); + + HRESULT (STDMETHODCALLTYPE *CreateMonitorRenderingParams)( + IDWriteFactory8 *This, + HMONITOR monitor, + IDWriteRenderingParams **params); + + HRESULT (STDMETHODCALLTYPE *CreateCustomRenderingParams)( + IDWriteFactory8 *This, + FLOAT gamma, + FLOAT enhancedContrast, + FLOAT cleartype_level, + DWRITE_PIXEL_GEOMETRY geometry, + DWRITE_RENDERING_MODE mode, + IDWriteRenderingParams **params); + + HRESULT (STDMETHODCALLTYPE *RegisterFontFileLoader)( + IDWriteFactory8 *This, + IDWriteFontFileLoader *loader); + + HRESULT (STDMETHODCALLTYPE *UnregisterFontFileLoader)( + IDWriteFactory8 *This, + IDWriteFontFileLoader *loader); + + HRESULT (STDMETHODCALLTYPE *CreateTextFormat)( + IDWriteFactory8 *This, + const WCHAR *family_name, + IDWriteFontCollection *collection, + DWRITE_FONT_WEIGHT weight, + DWRITE_FONT_STYLE style, + DWRITE_FONT_STRETCH stretch, + FLOAT size, + const WCHAR *locale, + IDWriteTextFormat **format); + + HRESULT (STDMETHODCALLTYPE *CreateTypography)( + IDWriteFactory8 *This, + IDWriteTypography **typography); + + HRESULT (STDMETHODCALLTYPE *GetGdiInterop)( + IDWriteFactory8 *This, + IDWriteGdiInterop **gdi_interop); + + HRESULT (STDMETHODCALLTYPE *CreateTextLayout)( + IDWriteFactory8 *This, + const WCHAR *string, + UINT32 len, + IDWriteTextFormat *format, + FLOAT max_width, + FLOAT max_height, + IDWriteTextLayout **layout); + + HRESULT (STDMETHODCALLTYPE *CreateGdiCompatibleTextLayout)( + IDWriteFactory8 *This, + const WCHAR *string, + UINT32 len, + IDWriteTextFormat *format, + FLOAT layout_width, + FLOAT layout_height, + FLOAT pixels_per_dip, + const DWRITE_MATRIX *transform, + WINBOOL use_gdi_natural, + IDWriteTextLayout **layout); + + HRESULT (STDMETHODCALLTYPE *CreateEllipsisTrimmingSign)( + IDWriteFactory8 *This, + IDWriteTextFormat *format, + IDWriteInlineObject **trimming_sign); + + HRESULT (STDMETHODCALLTYPE *CreateTextAnalyzer)( + IDWriteFactory8 *This, + IDWriteTextAnalyzer **analyzer); + + HRESULT (STDMETHODCALLTYPE *CreateNumberSubstitution)( + IDWriteFactory8 *This, + DWRITE_NUMBER_SUBSTITUTION_METHOD method, + const WCHAR *locale, + WINBOOL ignore_user_override, + IDWriteNumberSubstitution **substitution); + + HRESULT (STDMETHODCALLTYPE *CreateGlyphRunAnalysis)( + IDWriteFactory8 *This, + const DWRITE_GLYPH_RUN *glyph_run, + FLOAT pixels_per_dip, + const DWRITE_MATRIX *transform, + DWRITE_RENDERING_MODE rendering_mode, + DWRITE_MEASURING_MODE measuring_mode, + FLOAT baseline_x, + FLOAT baseline_y, + IDWriteGlyphRunAnalysis **analysis); + + /*** IDWriteFactory1 methods ***/ + HRESULT (STDMETHODCALLTYPE *GetEudcFontCollection)( + IDWriteFactory8 *This, + IDWriteFontCollection **collection, + WINBOOL check_for_updates); + + HRESULT (STDMETHODCALLTYPE *IDWriteFactory1_CreateCustomRenderingParams)( + IDWriteFactory8 *This, + FLOAT gamma, + FLOAT enhcontrast, + FLOAT enhcontrast_grayscale, + FLOAT cleartype_level, + DWRITE_PIXEL_GEOMETRY geometry, + DWRITE_RENDERING_MODE mode, + IDWriteRenderingParams1 **params); + + /*** IDWriteFactory2 methods ***/ + HRESULT (STDMETHODCALLTYPE *GetSystemFontFallback)( + IDWriteFactory8 *This, + IDWriteFontFallback **fallback); + + HRESULT (STDMETHODCALLTYPE *CreateFontFallbackBuilder)( + IDWriteFactory8 *This, + IDWriteFontFallbackBuilder **fallbackbuilder); + + HRESULT (STDMETHODCALLTYPE *TranslateColorGlyphRun)( + IDWriteFactory8 *This, + FLOAT originX, + FLOAT originY, + const DWRITE_GLYPH_RUN *run, + const DWRITE_GLYPH_RUN_DESCRIPTION *rundescr, + DWRITE_MEASURING_MODE mode, + const DWRITE_MATRIX *transform, + UINT32 palette_index, + IDWriteColorGlyphRunEnumerator **colorlayers); + + HRESULT (STDMETHODCALLTYPE *IDWriteFactory2_CreateCustomRenderingParams)( + IDWriteFactory8 *This, + FLOAT gamma, + FLOAT contrast, + FLOAT grayscalecontrast, + FLOAT cleartypeLevel, + DWRITE_PIXEL_GEOMETRY pixelGeometry, + DWRITE_RENDERING_MODE renderingMode, + DWRITE_GRID_FIT_MODE gridFitMode, + IDWriteRenderingParams2 **params); + + HRESULT (STDMETHODCALLTYPE *IDWriteFactory2_CreateGlyphRunAnalysis)( + IDWriteFactory8 *This, + const DWRITE_GLYPH_RUN *run, + const DWRITE_MATRIX *transform, + DWRITE_RENDERING_MODE renderingMode, + DWRITE_MEASURING_MODE measuringMode, + DWRITE_GRID_FIT_MODE gridFitMode, + DWRITE_TEXT_ANTIALIAS_MODE antialiasMode, + FLOAT originX, + FLOAT originY, + IDWriteGlyphRunAnalysis **analysis); + + /*** IDWriteFactory3 methods ***/ + HRESULT (STDMETHODCALLTYPE *IDWriteFactory3_CreateGlyphRunAnalysis)( + IDWriteFactory8 *This, + const DWRITE_GLYPH_RUN *run, + const DWRITE_MATRIX *transform, + DWRITE_RENDERING_MODE1 rendering_mode, + DWRITE_MEASURING_MODE measuring_mode, + DWRITE_GRID_FIT_MODE gridfit_mode, + DWRITE_TEXT_ANTIALIAS_MODE antialias_mode, + FLOAT origin_x, + FLOAT origin_y, + IDWriteGlyphRunAnalysis **analysis); + + HRESULT (STDMETHODCALLTYPE *IDWriteFactory3_CreateCustomRenderingParams)( + IDWriteFactory8 *This, + FLOAT gamma, + FLOAT enhanced_contrast, + FLOAT grayscale_enhanced_contrast, + FLOAT cleartype_level, + DWRITE_PIXEL_GEOMETRY pixel_geometry, + DWRITE_RENDERING_MODE1 rendering_mode, + DWRITE_GRID_FIT_MODE gridfit_mode, + IDWriteRenderingParams3 **params); + + HRESULT (STDMETHODCALLTYPE *CreateFontFaceReference_)( + IDWriteFactory8 *This, + IDWriteFontFile *file, + UINT32 index, + DWRITE_FONT_SIMULATIONS simulations, + IDWriteFontFaceReference **reference); + + HRESULT (STDMETHODCALLTYPE *CreateFontFaceReference)( + IDWriteFactory8 *This, + const WCHAR *path, + const FILETIME *writetime, + UINT32 index, + DWRITE_FONT_SIMULATIONS simulations, + IDWriteFontFaceReference **reference); + + HRESULT (STDMETHODCALLTYPE *GetSystemFontSet)( + IDWriteFactory8 *This, + IDWriteFontSet **fontset); + + HRESULT (STDMETHODCALLTYPE *CreateFontSetBuilder)( + IDWriteFactory8 *This, + IDWriteFontSetBuilder **builder); + + HRESULT (STDMETHODCALLTYPE *CreateFontCollectionFromFontSet)( + IDWriteFactory8 *This, + IDWriteFontSet *fontset, + IDWriteFontCollection1 **collection); + + HRESULT (STDMETHODCALLTYPE *IDWriteFactory3_GetSystemFontCollection)( + IDWriteFactory8 *This, + WINBOOL include_downloadable, + IDWriteFontCollection1 **collection, + WINBOOL check_for_updates); + + HRESULT (STDMETHODCALLTYPE *GetFontDownloadQueue)( + IDWriteFactory8 *This, + IDWriteFontDownloadQueue **queue); + + /*** IDWriteFactory4 methods ***/ + HRESULT (STDMETHODCALLTYPE *IDWriteFactory4_TranslateColorGlyphRun)( + IDWriteFactory8 *This, + D2D1_POINT_2F baseline_origin, + const DWRITE_GLYPH_RUN *run, + const DWRITE_GLYPH_RUN_DESCRIPTION *run_desc, + DWRITE_GLYPH_IMAGE_FORMATS desired_formats, + DWRITE_MEASURING_MODE measuring_mode, + const DWRITE_MATRIX *transform, + UINT32 palette, + IDWriteColorGlyphRunEnumerator1 **layers); + + HRESULT (STDMETHODCALLTYPE *ComputeGlyphOrigins_)( + IDWriteFactory8 *This, + const DWRITE_GLYPH_RUN *run, + D2D1_POINT_2F baseline_origin, + D2D1_POINT_2F *origins); + + HRESULT (STDMETHODCALLTYPE *ComputeGlyphOrigins)( + IDWriteFactory8 *This, + const DWRITE_GLYPH_RUN *run, + DWRITE_MEASURING_MODE measuring_mode, + D2D1_POINT_2F baseline_origin, + const DWRITE_MATRIX *transform, + D2D1_POINT_2F *origins); + + /*** IDWriteFactory5 methods ***/ + HRESULT (STDMETHODCALLTYPE *IDWriteFactory5_CreateFontSetBuilder)( + IDWriteFactory8 *This, + IDWriteFontSetBuilder1 **fontset_builder); + + HRESULT (STDMETHODCALLTYPE *CreateInMemoryFontFileLoader)( + IDWriteFactory8 *This, + IDWriteInMemoryFontFileLoader **loader); + + HRESULT (STDMETHODCALLTYPE *CreateHttpFontFileLoader)( + IDWriteFactory8 *This, + const WCHAR *referrer_url, + const WCHAR *extra_headers, + IDWriteRemoteFontFileLoader **loader); + + DWRITE_CONTAINER_TYPE (STDMETHODCALLTYPE *AnalyzeContainerType)( + IDWriteFactory8 *This, + const void *data, + UINT32 data_size); + + HRESULT (STDMETHODCALLTYPE *UnpackFontFile)( + IDWriteFactory8 *This, + DWRITE_CONTAINER_TYPE container_type, + const void *data, + UINT32 data_size, + IDWriteFontFileStream **stream); + + /*** IDWriteFactory6 methods ***/ + HRESULT (STDMETHODCALLTYPE *IDWriteFactory6_CreateFontFaceReference)( + IDWriteFactory8 *This, + IDWriteFontFile *file, + UINT32 face_index, + DWRITE_FONT_SIMULATIONS simulations, + const DWRITE_FONT_AXIS_VALUE *axis_values, + UINT32 num_axis, + IDWriteFontFaceReference1 **face_ref); + + HRESULT (STDMETHODCALLTYPE *CreateFontResource)( + IDWriteFactory8 *This, + IDWriteFontFile *file, + UINT32 face_index, + IDWriteFontResource **resource); + + HRESULT (STDMETHODCALLTYPE *IDWriteFactory6_GetSystemFontSet)( + IDWriteFactory8 *This, + WINBOOL include_downloadable, + IDWriteFontSet1 **fontset); + + HRESULT (STDMETHODCALLTYPE *IDWriteFactory6_GetSystemFontCollection)( + IDWriteFactory8 *This, + WINBOOL include_downloadable, + DWRITE_FONT_FAMILY_MODEL family_model, + IDWriteFontCollection2 **collection); + + HRESULT (STDMETHODCALLTYPE *IDWriteFactory6_CreateFontCollectionFromFontSet)( + IDWriteFactory8 *This, + IDWriteFontSet *fontset, + DWRITE_FONT_FAMILY_MODEL family_model, + IDWriteFontCollection2 **collection); + + HRESULT (STDMETHODCALLTYPE *IDWriteFactory6_CreateFontSetBuilder)( + IDWriteFactory8 *This, + IDWriteFontSetBuilder2 **builder); + + HRESULT (STDMETHODCALLTYPE *IDWriteFactory6_CreateTextFormat)( + IDWriteFactory8 *This, + const WCHAR *familyname, + IDWriteFontCollection *collection, + const DWRITE_FONT_AXIS_VALUE *axis_values, + UINT32 num_axis, + FLOAT fontsize, + const WCHAR *localename, + IDWriteTextFormat3 **format); + + /*** IDWriteFactory7 methods ***/ + HRESULT (STDMETHODCALLTYPE *IDWriteFactory7_GetSystemFontSet)( + IDWriteFactory8 *This, + WINBOOL include_downloadable, + IDWriteFontSet2 **fontset); + + HRESULT (STDMETHODCALLTYPE *IDWriteFactory7_GetSystemFontCollection)( + IDWriteFactory8 *This, + WINBOOL include_downloadable, + DWRITE_FONT_FAMILY_MODEL family_model, + IDWriteFontCollection3 **collection); + + /*** IDWriteFactory8 methods ***/ + HRESULT (STDMETHODCALLTYPE *IDWriteFactory8_TranslateColorGlyphRun)( + IDWriteFactory8 *This, + D2D1_POINT_2F origin, + const DWRITE_GLYPH_RUN *glyph_run, + const DWRITE_GLYPH_RUN_DESCRIPTION *glyph_run_desc, + DWRITE_GLYPH_IMAGE_FORMATS image_formats, + DWRITE_PAINT_FEATURE_LEVEL feature_level, + DWRITE_MEASURING_MODE measuring_mode, + const DWRITE_MATRIX *world_and_dpi_transform, + UINT32 palette_index, + IDWriteColorGlyphRunEnumerator1 **enumerator); + + END_INTERFACE +} IDWriteFactory8Vtbl; + +interface IDWriteFactory8 { + CONST_VTBL IDWriteFactory8Vtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDWriteFactory8_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteFactory8_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDWriteFactory8_Release(This) (This)->lpVtbl->Release(This) +/*** IDWriteFactory methods ***/ +#define IDWriteFactory8_CreateCustomFontCollection(This,loader,key,key_size,collection) (This)->lpVtbl->CreateCustomFontCollection(This,loader,key,key_size,collection) +#define IDWriteFactory8_RegisterFontCollectionLoader(This,loader) (This)->lpVtbl->RegisterFontCollectionLoader(This,loader) +#define IDWriteFactory8_UnregisterFontCollectionLoader(This,loader) (This)->lpVtbl->UnregisterFontCollectionLoader(This,loader) +#define IDWriteFactory8_CreateFontFileReference(This,path,writetime,font_file) (This)->lpVtbl->CreateFontFileReference(This,path,writetime,font_file) +#define IDWriteFactory8_CreateCustomFontFileReference(This,reference_key,key_size,loader,font_file) (This)->lpVtbl->CreateCustomFontFileReference(This,reference_key,key_size,loader,font_file) +#define IDWriteFactory8_CreateFontFace(This,facetype,files_number,font_files,index,sim_flags,font_face) (This)->lpVtbl->CreateFontFace(This,facetype,files_number,font_files,index,sim_flags,font_face) +#define IDWriteFactory8_CreateRenderingParams(This,params) (This)->lpVtbl->CreateRenderingParams(This,params) +#define IDWriteFactory8_CreateMonitorRenderingParams(This,monitor,params) (This)->lpVtbl->CreateMonitorRenderingParams(This,monitor,params) +#define IDWriteFactory8_RegisterFontFileLoader(This,loader) (This)->lpVtbl->RegisterFontFileLoader(This,loader) +#define IDWriteFactory8_UnregisterFontFileLoader(This,loader) (This)->lpVtbl->UnregisterFontFileLoader(This,loader) +#define IDWriteFactory8_CreateTypography(This,typography) (This)->lpVtbl->CreateTypography(This,typography) +#define IDWriteFactory8_GetGdiInterop(This,gdi_interop) (This)->lpVtbl->GetGdiInterop(This,gdi_interop) +#define IDWriteFactory8_CreateTextLayout(This,string,len,format,max_width,max_height,layout) (This)->lpVtbl->CreateTextLayout(This,string,len,format,max_width,max_height,layout) +#define IDWriteFactory8_CreateGdiCompatibleTextLayout(This,string,len,format,layout_width,layout_height,pixels_per_dip,transform,use_gdi_natural,layout) (This)->lpVtbl->CreateGdiCompatibleTextLayout(This,string,len,format,layout_width,layout_height,pixels_per_dip,transform,use_gdi_natural,layout) +#define IDWriteFactory8_CreateEllipsisTrimmingSign(This,format,trimming_sign) (This)->lpVtbl->CreateEllipsisTrimmingSign(This,format,trimming_sign) +#define IDWriteFactory8_CreateTextAnalyzer(This,analyzer) (This)->lpVtbl->CreateTextAnalyzer(This,analyzer) +#define IDWriteFactory8_CreateNumberSubstitution(This,method,locale,ignore_user_override,substitution) (This)->lpVtbl->CreateNumberSubstitution(This,method,locale,ignore_user_override,substitution) +/*** IDWriteFactory1 methods ***/ +#define IDWriteFactory8_GetEudcFontCollection(This,collection,check_for_updates) (This)->lpVtbl->GetEudcFontCollection(This,collection,check_for_updates) +/*** IDWriteFactory2 methods ***/ +#define IDWriteFactory8_GetSystemFontFallback(This,fallback) (This)->lpVtbl->GetSystemFontFallback(This,fallback) +#define IDWriteFactory8_CreateFontFallbackBuilder(This,fallbackbuilder) (This)->lpVtbl->CreateFontFallbackBuilder(This,fallbackbuilder) +/*** IDWriteFactory3 methods ***/ +#define IDWriteFactory8_CreateGlyphRunAnalysis(This,run,transform,rendering_mode,measuring_mode,gridfit_mode,antialias_mode,origin_x,origin_y,analysis) (This)->lpVtbl->IDWriteFactory3_CreateGlyphRunAnalysis(This,run,transform,rendering_mode,measuring_mode,gridfit_mode,antialias_mode,origin_x,origin_y,analysis) +#define IDWriteFactory8_CreateCustomRenderingParams(This,gamma,enhanced_contrast,grayscale_enhanced_contrast,cleartype_level,pixel_geometry,rendering_mode,gridfit_mode,params) (This)->lpVtbl->IDWriteFactory3_CreateCustomRenderingParams(This,gamma,enhanced_contrast,grayscale_enhanced_contrast,cleartype_level,pixel_geometry,rendering_mode,gridfit_mode,params) +#define IDWriteFactory8_CreateFontFaceReference_(This,file,index,simulations,reference) (This)->lpVtbl->CreateFontFaceReference_(This,file,index,simulations,reference) +#define IDWriteFactory8_GetFontDownloadQueue(This,queue) (This)->lpVtbl->GetFontDownloadQueue(This,queue) +/*** IDWriteFactory4 methods ***/ +#define IDWriteFactory8_ComputeGlyphOrigins_(This,run,baseline_origin,origins) (This)->lpVtbl->ComputeGlyphOrigins_(This,run,baseline_origin,origins) +#define IDWriteFactory8_ComputeGlyphOrigins(This,run,measuring_mode,baseline_origin,transform,origins) (This)->lpVtbl->ComputeGlyphOrigins(This,run,measuring_mode,baseline_origin,transform,origins) +/*** IDWriteFactory5 methods ***/ +#define IDWriteFactory8_CreateInMemoryFontFileLoader(This,loader) (This)->lpVtbl->CreateInMemoryFontFileLoader(This,loader) +#define IDWriteFactory8_CreateHttpFontFileLoader(This,referrer_url,extra_headers,loader) (This)->lpVtbl->CreateHttpFontFileLoader(This,referrer_url,extra_headers,loader) +#define IDWriteFactory8_AnalyzeContainerType(This,data,data_size) (This)->lpVtbl->AnalyzeContainerType(This,data,data_size) +#define IDWriteFactory8_UnpackFontFile(This,container_type,data,data_size,stream) (This)->lpVtbl->UnpackFontFile(This,container_type,data,data_size,stream) +/*** IDWriteFactory6 methods ***/ +#define IDWriteFactory8_CreateFontFaceReference(This,file,face_index,simulations,axis_values,num_axis,face_ref) (This)->lpVtbl->IDWriteFactory6_CreateFontFaceReference(This,file,face_index,simulations,axis_values,num_axis,face_ref) +#define IDWriteFactory8_CreateFontResource(This,file,face_index,resource) (This)->lpVtbl->CreateFontResource(This,file,face_index,resource) +#define IDWriteFactory8_CreateFontCollectionFromFontSet(This,fontset,family_model,collection) (This)->lpVtbl->IDWriteFactory6_CreateFontCollectionFromFontSet(This,fontset,family_model,collection) +#define IDWriteFactory8_CreateFontSetBuilder(This,builder) (This)->lpVtbl->IDWriteFactory6_CreateFontSetBuilder(This,builder) +#define IDWriteFactory8_CreateTextFormat(This,familyname,collection,axis_values,num_axis,fontsize,localename,format) (This)->lpVtbl->IDWriteFactory6_CreateTextFormat(This,familyname,collection,axis_values,num_axis,fontsize,localename,format) +/*** IDWriteFactory7 methods ***/ +#define IDWriteFactory8_GetSystemFontSet(This,include_downloadable,fontset) (This)->lpVtbl->IDWriteFactory7_GetSystemFontSet(This,include_downloadable,fontset) +#define IDWriteFactory8_GetSystemFontCollection(This,include_downloadable,family_model,collection) (This)->lpVtbl->IDWriteFactory7_GetSystemFontCollection(This,include_downloadable,family_model,collection) +/*** IDWriteFactory8 methods ***/ +#define IDWriteFactory8_TranslateColorGlyphRun(This,origin,glyph_run,glyph_run_desc,image_formats,feature_level,measuring_mode,world_and_dpi_transform,palette_index,enumerator) (This)->lpVtbl->IDWriteFactory8_TranslateColorGlyphRun(This,origin,glyph_run,glyph_run_desc,image_formats,feature_level,measuring_mode,world_and_dpi_transform,palette_index,enumerator) +#else +/*** IUnknown methods ***/ +static inline HRESULT IDWriteFactory8_QueryInterface(IDWriteFactory8* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static inline ULONG IDWriteFactory8_AddRef(IDWriteFactory8* This) { + return This->lpVtbl->AddRef(This); +} +static inline ULONG IDWriteFactory8_Release(IDWriteFactory8* This) { + return This->lpVtbl->Release(This); +} +/*** IDWriteFactory methods ***/ +static inline HRESULT IDWriteFactory8_CreateCustomFontCollection(IDWriteFactory8* This,IDWriteFontCollectionLoader *loader,const void *key,UINT32 key_size,IDWriteFontCollection **collection) { + return This->lpVtbl->CreateCustomFontCollection(This,loader,key,key_size,collection); +} +static inline HRESULT IDWriteFactory8_RegisterFontCollectionLoader(IDWriteFactory8* This,IDWriteFontCollectionLoader *loader) { + return This->lpVtbl->RegisterFontCollectionLoader(This,loader); +} +static inline HRESULT IDWriteFactory8_UnregisterFontCollectionLoader(IDWriteFactory8* This,IDWriteFontCollectionLoader *loader) { + return This->lpVtbl->UnregisterFontCollectionLoader(This,loader); +} +static inline HRESULT IDWriteFactory8_CreateFontFileReference(IDWriteFactory8* This,const WCHAR *path,const FILETIME *writetime,IDWriteFontFile **font_file) { + return This->lpVtbl->CreateFontFileReference(This,path,writetime,font_file); +} +static inline HRESULT IDWriteFactory8_CreateCustomFontFileReference(IDWriteFactory8* This,const void *reference_key,UINT32 key_size,IDWriteFontFileLoader *loader,IDWriteFontFile **font_file) { + return This->lpVtbl->CreateCustomFontFileReference(This,reference_key,key_size,loader,font_file); +} +static inline HRESULT IDWriteFactory8_CreateFontFace(IDWriteFactory8* This,DWRITE_FONT_FACE_TYPE facetype,UINT32 files_number,IDWriteFontFile *const *font_files,UINT32 index,DWRITE_FONT_SIMULATIONS sim_flags,IDWriteFontFace **font_face) { + return This->lpVtbl->CreateFontFace(This,facetype,files_number,font_files,index,sim_flags,font_face); +} +static inline HRESULT IDWriteFactory8_CreateRenderingParams(IDWriteFactory8* This,IDWriteRenderingParams **params) { + return This->lpVtbl->CreateRenderingParams(This,params); +} +static inline HRESULT IDWriteFactory8_CreateMonitorRenderingParams(IDWriteFactory8* This,HMONITOR monitor,IDWriteRenderingParams **params) { + return This->lpVtbl->CreateMonitorRenderingParams(This,monitor,params); +} +static inline HRESULT IDWriteFactory8_RegisterFontFileLoader(IDWriteFactory8* This,IDWriteFontFileLoader *loader) { + return This->lpVtbl->RegisterFontFileLoader(This,loader); +} +static inline HRESULT IDWriteFactory8_UnregisterFontFileLoader(IDWriteFactory8* This,IDWriteFontFileLoader *loader) { + return This->lpVtbl->UnregisterFontFileLoader(This,loader); +} +static inline HRESULT IDWriteFactory8_CreateTypography(IDWriteFactory8* This,IDWriteTypography **typography) { + return This->lpVtbl->CreateTypography(This,typography); +} +static inline HRESULT IDWriteFactory8_GetGdiInterop(IDWriteFactory8* This,IDWriteGdiInterop **gdi_interop) { + return This->lpVtbl->GetGdiInterop(This,gdi_interop); +} +static inline HRESULT IDWriteFactory8_CreateTextLayout(IDWriteFactory8* This,const WCHAR *string,UINT32 len,IDWriteTextFormat *format,FLOAT max_width,FLOAT max_height,IDWriteTextLayout **layout) { + return This->lpVtbl->CreateTextLayout(This,string,len,format,max_width,max_height,layout); +} +static inline HRESULT IDWriteFactory8_CreateGdiCompatibleTextLayout(IDWriteFactory8* This,const WCHAR *string,UINT32 len,IDWriteTextFormat *format,FLOAT layout_width,FLOAT layout_height,FLOAT pixels_per_dip,const DWRITE_MATRIX *transform,WINBOOL use_gdi_natural,IDWriteTextLayout **layout) { + return This->lpVtbl->CreateGdiCompatibleTextLayout(This,string,len,format,layout_width,layout_height,pixels_per_dip,transform,use_gdi_natural,layout); +} +static inline HRESULT IDWriteFactory8_CreateEllipsisTrimmingSign(IDWriteFactory8* This,IDWriteTextFormat *format,IDWriteInlineObject **trimming_sign) { + return This->lpVtbl->CreateEllipsisTrimmingSign(This,format,trimming_sign); +} +static inline HRESULT IDWriteFactory8_CreateTextAnalyzer(IDWriteFactory8* This,IDWriteTextAnalyzer **analyzer) { + return This->lpVtbl->CreateTextAnalyzer(This,analyzer); +} +static inline HRESULT IDWriteFactory8_CreateNumberSubstitution(IDWriteFactory8* This,DWRITE_NUMBER_SUBSTITUTION_METHOD method,const WCHAR *locale,WINBOOL ignore_user_override,IDWriteNumberSubstitution **substitution) { + return This->lpVtbl->CreateNumberSubstitution(This,method,locale,ignore_user_override,substitution); +} +/*** IDWriteFactory1 methods ***/ +static inline HRESULT IDWriteFactory8_GetEudcFontCollection(IDWriteFactory8* This,IDWriteFontCollection **collection,WINBOOL check_for_updates) { + return This->lpVtbl->GetEudcFontCollection(This,collection,check_for_updates); +} +/*** IDWriteFactory2 methods ***/ +static inline HRESULT IDWriteFactory8_GetSystemFontFallback(IDWriteFactory8* This,IDWriteFontFallback **fallback) { + return This->lpVtbl->GetSystemFontFallback(This,fallback); +} +static inline HRESULT IDWriteFactory8_CreateFontFallbackBuilder(IDWriteFactory8* This,IDWriteFontFallbackBuilder **fallbackbuilder) { + return This->lpVtbl->CreateFontFallbackBuilder(This,fallbackbuilder); +} +/*** IDWriteFactory3 methods ***/ +static inline HRESULT IDWriteFactory8_CreateGlyphRunAnalysis(IDWriteFactory8* This,const DWRITE_GLYPH_RUN *run,const DWRITE_MATRIX *transform,DWRITE_RENDERING_MODE1 rendering_mode,DWRITE_MEASURING_MODE measuring_mode,DWRITE_GRID_FIT_MODE gridfit_mode,DWRITE_TEXT_ANTIALIAS_MODE antialias_mode,FLOAT origin_x,FLOAT origin_y,IDWriteGlyphRunAnalysis **analysis) { + return This->lpVtbl->IDWriteFactory3_CreateGlyphRunAnalysis(This,run,transform,rendering_mode,measuring_mode,gridfit_mode,antialias_mode,origin_x,origin_y,analysis); +} +static inline HRESULT IDWriteFactory8_CreateCustomRenderingParams(IDWriteFactory8* This,FLOAT gamma,FLOAT enhanced_contrast,FLOAT grayscale_enhanced_contrast,FLOAT cleartype_level,DWRITE_PIXEL_GEOMETRY pixel_geometry,DWRITE_RENDERING_MODE1 rendering_mode,DWRITE_GRID_FIT_MODE gridfit_mode,IDWriteRenderingParams3 **params) { + return This->lpVtbl->IDWriteFactory3_CreateCustomRenderingParams(This,gamma,enhanced_contrast,grayscale_enhanced_contrast,cleartype_level,pixel_geometry,rendering_mode,gridfit_mode,params); +} +static inline HRESULT IDWriteFactory8_CreateFontFaceReference_(IDWriteFactory8* This,IDWriteFontFile *file,UINT32 index,DWRITE_FONT_SIMULATIONS simulations,IDWriteFontFaceReference **reference) { + return This->lpVtbl->CreateFontFaceReference_(This,file,index,simulations,reference); +} +static inline HRESULT IDWriteFactory8_GetFontDownloadQueue(IDWriteFactory8* This,IDWriteFontDownloadQueue **queue) { + return This->lpVtbl->GetFontDownloadQueue(This,queue); +} +/*** IDWriteFactory4 methods ***/ +static inline HRESULT IDWriteFactory8_ComputeGlyphOrigins_(IDWriteFactory8* This,const DWRITE_GLYPH_RUN *run,D2D1_POINT_2F baseline_origin,D2D1_POINT_2F *origins) { + return This->lpVtbl->ComputeGlyphOrigins_(This,run,baseline_origin,origins); +} +static inline HRESULT IDWriteFactory8_ComputeGlyphOrigins(IDWriteFactory8* This,const DWRITE_GLYPH_RUN *run,DWRITE_MEASURING_MODE measuring_mode,D2D1_POINT_2F baseline_origin,const DWRITE_MATRIX *transform,D2D1_POINT_2F *origins) { + return This->lpVtbl->ComputeGlyphOrigins(This,run,measuring_mode,baseline_origin,transform,origins); +} +/*** IDWriteFactory5 methods ***/ +static inline HRESULT IDWriteFactory8_CreateInMemoryFontFileLoader(IDWriteFactory8* This,IDWriteInMemoryFontFileLoader **loader) { + return This->lpVtbl->CreateInMemoryFontFileLoader(This,loader); +} +static inline HRESULT IDWriteFactory8_CreateHttpFontFileLoader(IDWriteFactory8* This,const WCHAR *referrer_url,const WCHAR *extra_headers,IDWriteRemoteFontFileLoader **loader) { + return This->lpVtbl->CreateHttpFontFileLoader(This,referrer_url,extra_headers,loader); +} +static inline DWRITE_CONTAINER_TYPE IDWriteFactory8_AnalyzeContainerType(IDWriteFactory8* This,const void *data,UINT32 data_size) { + return This->lpVtbl->AnalyzeContainerType(This,data,data_size); +} +static inline HRESULT IDWriteFactory8_UnpackFontFile(IDWriteFactory8* This,DWRITE_CONTAINER_TYPE container_type,const void *data,UINT32 data_size,IDWriteFontFileStream **stream) { + return This->lpVtbl->UnpackFontFile(This,container_type,data,data_size,stream); +} +/*** IDWriteFactory6 methods ***/ +static inline HRESULT IDWriteFactory8_CreateFontFaceReference(IDWriteFactory8* This,IDWriteFontFile *file,UINT32 face_index,DWRITE_FONT_SIMULATIONS simulations,const DWRITE_FONT_AXIS_VALUE *axis_values,UINT32 num_axis,IDWriteFontFaceReference1 **face_ref) { + return This->lpVtbl->IDWriteFactory6_CreateFontFaceReference(This,file,face_index,simulations,axis_values,num_axis,face_ref); +} +static inline HRESULT IDWriteFactory8_CreateFontResource(IDWriteFactory8* This,IDWriteFontFile *file,UINT32 face_index,IDWriteFontResource **resource) { + return This->lpVtbl->CreateFontResource(This,file,face_index,resource); +} +static inline HRESULT IDWriteFactory8_CreateFontCollectionFromFontSet(IDWriteFactory8* This,IDWriteFontSet *fontset,DWRITE_FONT_FAMILY_MODEL family_model,IDWriteFontCollection2 **collection) { + return This->lpVtbl->IDWriteFactory6_CreateFontCollectionFromFontSet(This,fontset,family_model,collection); +} +static inline HRESULT IDWriteFactory8_CreateFontSetBuilder(IDWriteFactory8* This,IDWriteFontSetBuilder2 **builder) { + return This->lpVtbl->IDWriteFactory6_CreateFontSetBuilder(This,builder); +} +static inline HRESULT IDWriteFactory8_CreateTextFormat(IDWriteFactory8* This,const WCHAR *familyname,IDWriteFontCollection *collection,const DWRITE_FONT_AXIS_VALUE *axis_values,UINT32 num_axis,FLOAT fontsize,const WCHAR *localename,IDWriteTextFormat3 **format) { + return This->lpVtbl->IDWriteFactory6_CreateTextFormat(This,familyname,collection,axis_values,num_axis,fontsize,localename,format); +} +/*** IDWriteFactory7 methods ***/ +static inline HRESULT IDWriteFactory8_GetSystemFontSet(IDWriteFactory8* This,WINBOOL include_downloadable,IDWriteFontSet2 **fontset) { + return This->lpVtbl->IDWriteFactory7_GetSystemFontSet(This,include_downloadable,fontset); +} +static inline HRESULT IDWriteFactory8_GetSystemFontCollection(IDWriteFactory8* This,WINBOOL include_downloadable,DWRITE_FONT_FAMILY_MODEL family_model,IDWriteFontCollection3 **collection) { + return This->lpVtbl->IDWriteFactory7_GetSystemFontCollection(This,include_downloadable,family_model,collection); +} +/*** IDWriteFactory8 methods ***/ +static inline HRESULT IDWriteFactory8_TranslateColorGlyphRun(IDWriteFactory8* This,D2D1_POINT_2F origin,const DWRITE_GLYPH_RUN *glyph_run,const DWRITE_GLYPH_RUN_DESCRIPTION *glyph_run_desc,DWRITE_GLYPH_IMAGE_FORMATS image_formats,DWRITE_PAINT_FEATURE_LEVEL feature_level,DWRITE_MEASURING_MODE measuring_mode,const DWRITE_MATRIX *world_and_dpi_transform,UINT32 palette_index,IDWriteColorGlyphRunEnumerator1 **enumerator) { + return This->lpVtbl->IDWriteFactory8_TranslateColorGlyphRun(This,origin,glyph_run,glyph_run_desc,image_formats,feature_level,measuring_mode,world_and_dpi_transform,palette_index,enumerator); +} +#endif +#endif + +#endif + + +#endif /* __IDWriteFactory8_INTERFACE_DEFINED__ */ + +typedef struct DWRITE_BITMAP_DATA_BGRA32 { + UINT32 width; + UINT32 height; + UINT32 *pixels; +} DWRITE_BITMAP_DATA_BGRA32; +/***************************************************************************** + * IDWriteBitmapRenderTarget2 interface + */ +#ifndef __IDWriteBitmapRenderTarget2_INTERFACE_DEFINED__ +#define __IDWriteBitmapRenderTarget2_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDWriteBitmapRenderTarget2, 0xc553a742, 0xfc01, 0x44da, 0xa6,0x6e, 0xb8,0xb9,0xed,0x6c,0x39,0x95); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("c553a742-fc01-44da-a66e-b8b9ed6c3995") +IDWriteBitmapRenderTarget2 : public IDWriteBitmapRenderTarget1 +{ + virtual HRESULT STDMETHODCALLTYPE GetBitmapData( + DWRITE_BITMAP_DATA_BGRA32 *bitmap_data) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDWriteBitmapRenderTarget2, 0xc553a742, 0xfc01, 0x44da, 0xa6,0x6e, 0xb8,0xb9,0xed,0x6c,0x39,0x95) +#endif +#else +typedef struct IDWriteBitmapRenderTarget2Vtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDWriteBitmapRenderTarget2 *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDWriteBitmapRenderTarget2 *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDWriteBitmapRenderTarget2 *This); + + /*** IDWriteBitmapRenderTarget methods ***/ + HRESULT (STDMETHODCALLTYPE *DrawGlyphRun)( + IDWriteBitmapRenderTarget2 *This, + FLOAT baselineOriginX, + FLOAT baselineOriginY, + DWRITE_MEASURING_MODE measuring_mode, + const DWRITE_GLYPH_RUN *glyph_run, + IDWriteRenderingParams *params, + COLORREF textColor, + RECT *blackbox_rect); + + HDC (STDMETHODCALLTYPE *GetMemoryDC)( + IDWriteBitmapRenderTarget2 *This); + + FLOAT (STDMETHODCALLTYPE *GetPixelsPerDip)( + IDWriteBitmapRenderTarget2 *This); + + HRESULT (STDMETHODCALLTYPE *SetPixelsPerDip)( + IDWriteBitmapRenderTarget2 *This, + FLOAT pixels_per_dip); + + HRESULT (STDMETHODCALLTYPE *GetCurrentTransform)( + IDWriteBitmapRenderTarget2 *This, + DWRITE_MATRIX *transform); + + HRESULT (STDMETHODCALLTYPE *SetCurrentTransform)( + IDWriteBitmapRenderTarget2 *This, + const DWRITE_MATRIX *transform); + + HRESULT (STDMETHODCALLTYPE *GetSize)( + IDWriteBitmapRenderTarget2 *This, + SIZE *size); + + HRESULT (STDMETHODCALLTYPE *Resize)( + IDWriteBitmapRenderTarget2 *This, + UINT32 width, + UINT32 height); + + /*** IDWriteBitmapRenderTarget1 methods ***/ + DWRITE_TEXT_ANTIALIAS_MODE (STDMETHODCALLTYPE *GetTextAntialiasMode)( + IDWriteBitmapRenderTarget2 *This); + + HRESULT (STDMETHODCALLTYPE *SetTextAntialiasMode)( + IDWriteBitmapRenderTarget2 *This, + DWRITE_TEXT_ANTIALIAS_MODE mode); + + /*** IDWriteBitmapRenderTarget2 methods ***/ + HRESULT (STDMETHODCALLTYPE *GetBitmapData)( + IDWriteBitmapRenderTarget2 *This, + DWRITE_BITMAP_DATA_BGRA32 *bitmap_data); + + END_INTERFACE +} IDWriteBitmapRenderTarget2Vtbl; + +interface IDWriteBitmapRenderTarget2 { + CONST_VTBL IDWriteBitmapRenderTarget2Vtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDWriteBitmapRenderTarget2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteBitmapRenderTarget2_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDWriteBitmapRenderTarget2_Release(This) (This)->lpVtbl->Release(This) +/*** IDWriteBitmapRenderTarget methods ***/ +#define IDWriteBitmapRenderTarget2_DrawGlyphRun(This,baselineOriginX,baselineOriginY,measuring_mode,glyph_run,params,textColor,blackbox_rect) (This)->lpVtbl->DrawGlyphRun(This,baselineOriginX,baselineOriginY,measuring_mode,glyph_run,params,textColor,blackbox_rect) +#define IDWriteBitmapRenderTarget2_GetMemoryDC(This) (This)->lpVtbl->GetMemoryDC(This) +#define IDWriteBitmapRenderTarget2_GetPixelsPerDip(This) (This)->lpVtbl->GetPixelsPerDip(This) +#define IDWriteBitmapRenderTarget2_SetPixelsPerDip(This,pixels_per_dip) (This)->lpVtbl->SetPixelsPerDip(This,pixels_per_dip) +#define IDWriteBitmapRenderTarget2_GetCurrentTransform(This,transform) (This)->lpVtbl->GetCurrentTransform(This,transform) +#define IDWriteBitmapRenderTarget2_SetCurrentTransform(This,transform) (This)->lpVtbl->SetCurrentTransform(This,transform) +#define IDWriteBitmapRenderTarget2_GetSize(This,size) (This)->lpVtbl->GetSize(This,size) +#define IDWriteBitmapRenderTarget2_Resize(This,width,height) (This)->lpVtbl->Resize(This,width,height) +/*** IDWriteBitmapRenderTarget1 methods ***/ +#define IDWriteBitmapRenderTarget2_GetTextAntialiasMode(This) (This)->lpVtbl->GetTextAntialiasMode(This) +#define IDWriteBitmapRenderTarget2_SetTextAntialiasMode(This,mode) (This)->lpVtbl->SetTextAntialiasMode(This,mode) +/*** IDWriteBitmapRenderTarget2 methods ***/ +#define IDWriteBitmapRenderTarget2_GetBitmapData(This,bitmap_data) (This)->lpVtbl->GetBitmapData(This,bitmap_data) +#else +/*** IUnknown methods ***/ +static inline HRESULT IDWriteBitmapRenderTarget2_QueryInterface(IDWriteBitmapRenderTarget2* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static inline ULONG IDWriteBitmapRenderTarget2_AddRef(IDWriteBitmapRenderTarget2* This) { + return This->lpVtbl->AddRef(This); +} +static inline ULONG IDWriteBitmapRenderTarget2_Release(IDWriteBitmapRenderTarget2* This) { + return This->lpVtbl->Release(This); +} +/*** IDWriteBitmapRenderTarget methods ***/ +static inline HRESULT IDWriteBitmapRenderTarget2_DrawGlyphRun(IDWriteBitmapRenderTarget2* This,FLOAT baselineOriginX,FLOAT baselineOriginY,DWRITE_MEASURING_MODE measuring_mode,const DWRITE_GLYPH_RUN *glyph_run,IDWriteRenderingParams *params,COLORREF textColor,RECT *blackbox_rect) { + return This->lpVtbl->DrawGlyphRun(This,baselineOriginX,baselineOriginY,measuring_mode,glyph_run,params,textColor,blackbox_rect); +} +static inline HDC IDWriteBitmapRenderTarget2_GetMemoryDC(IDWriteBitmapRenderTarget2* This) { + return This->lpVtbl->GetMemoryDC(This); +} +static inline FLOAT IDWriteBitmapRenderTarget2_GetPixelsPerDip(IDWriteBitmapRenderTarget2* This) { + return This->lpVtbl->GetPixelsPerDip(This); +} +static inline HRESULT IDWriteBitmapRenderTarget2_SetPixelsPerDip(IDWriteBitmapRenderTarget2* This,FLOAT pixels_per_dip) { + return This->lpVtbl->SetPixelsPerDip(This,pixels_per_dip); +} +static inline HRESULT IDWriteBitmapRenderTarget2_GetCurrentTransform(IDWriteBitmapRenderTarget2* This,DWRITE_MATRIX *transform) { + return This->lpVtbl->GetCurrentTransform(This,transform); +} +static inline HRESULT IDWriteBitmapRenderTarget2_SetCurrentTransform(IDWriteBitmapRenderTarget2* This,const DWRITE_MATRIX *transform) { + return This->lpVtbl->SetCurrentTransform(This,transform); +} +static inline HRESULT IDWriteBitmapRenderTarget2_GetSize(IDWriteBitmapRenderTarget2* This,SIZE *size) { + return This->lpVtbl->GetSize(This,size); +} +static inline HRESULT IDWriteBitmapRenderTarget2_Resize(IDWriteBitmapRenderTarget2* This,UINT32 width,UINT32 height) { + return This->lpVtbl->Resize(This,width,height); +} +/*** IDWriteBitmapRenderTarget1 methods ***/ +static inline DWRITE_TEXT_ANTIALIAS_MODE IDWriteBitmapRenderTarget2_GetTextAntialiasMode(IDWriteBitmapRenderTarget2* This) { + return This->lpVtbl->GetTextAntialiasMode(This); +} +static inline HRESULT IDWriteBitmapRenderTarget2_SetTextAntialiasMode(IDWriteBitmapRenderTarget2* This,DWRITE_TEXT_ANTIALIAS_MODE mode) { + return This->lpVtbl->SetTextAntialiasMode(This,mode); +} +/*** IDWriteBitmapRenderTarget2 methods ***/ +static inline HRESULT IDWriteBitmapRenderTarget2_GetBitmapData(IDWriteBitmapRenderTarget2* This,DWRITE_BITMAP_DATA_BGRA32 *bitmap_data) { + return This->lpVtbl->GetBitmapData(This,bitmap_data); +} +#endif +#endif + +#endif + + +#endif /* __IDWriteBitmapRenderTarget2_INTERFACE_DEFINED__ */ + +/***************************************************************************** + * IDWriteBitmapRenderTarget3 interface + */ +#ifndef __IDWriteBitmapRenderTarget3_INTERFACE_DEFINED__ +#define __IDWriteBitmapRenderTarget3_INTERFACE_DEFINED__ + +DEFINE_GUID(IID_IDWriteBitmapRenderTarget3, 0xaeec37db, 0xc337, 0x40f1, 0x8e,0x2a, 0x9a,0x41,0xb1,0x67,0xb2,0x38); +#if defined(__cplusplus) && !defined(CINTERFACE) +MIDL_INTERFACE("aeec37db-c337-40f1-8e2a-9a41b167b238") +IDWriteBitmapRenderTarget3 : public IDWriteBitmapRenderTarget2 +{ + virtual DWRITE_PAINT_FEATURE_LEVEL STDMETHODCALLTYPE GetPaintFeatureLevel( + ) = 0; + + virtual HRESULT STDMETHODCALLTYPE DrawPaintGlyphRun( + FLOAT origin_x, + FLOAT origin_y, + DWRITE_MEASURING_MODE measuring_mode, + const DWRITE_GLYPH_RUN *run, + DWRITE_GLYPH_IMAGE_FORMATS image_format, + COLORREF text_color, + UINT32 palette_index, + RECT *black_box) = 0; + + virtual HRESULT STDMETHODCALLTYPE DrawGlyphRunWithColorSupport( + FLOAT origin_x, + FLOAT origin_y, + DWRITE_MEASURING_MODE measuring_mode, + const DWRITE_GLYPH_RUN *run, + IDWriteRenderingParams *params, + COLORREF text_color, + UINT32 palette_index, + RECT *black_box) = 0; + +}; +#ifdef __CRT_UUID_DECL +__CRT_UUID_DECL(IDWriteBitmapRenderTarget3, 0xaeec37db, 0xc337, 0x40f1, 0x8e,0x2a, 0x9a,0x41,0xb1,0x67,0xb2,0x38) +#endif +#else +typedef struct IDWriteBitmapRenderTarget3Vtbl { + BEGIN_INTERFACE + + /*** IUnknown methods ***/ + HRESULT (STDMETHODCALLTYPE *QueryInterface)( + IDWriteBitmapRenderTarget3 *This, + REFIID riid, + void **ppvObject); + + ULONG (STDMETHODCALLTYPE *AddRef)( + IDWriteBitmapRenderTarget3 *This); + + ULONG (STDMETHODCALLTYPE *Release)( + IDWriteBitmapRenderTarget3 *This); + + /*** IDWriteBitmapRenderTarget methods ***/ + HRESULT (STDMETHODCALLTYPE *DrawGlyphRun)( + IDWriteBitmapRenderTarget3 *This, + FLOAT baselineOriginX, + FLOAT baselineOriginY, + DWRITE_MEASURING_MODE measuring_mode, + const DWRITE_GLYPH_RUN *glyph_run, + IDWriteRenderingParams *params, + COLORREF textColor, + RECT *blackbox_rect); + + HDC (STDMETHODCALLTYPE *GetMemoryDC)( + IDWriteBitmapRenderTarget3 *This); + + FLOAT (STDMETHODCALLTYPE *GetPixelsPerDip)( + IDWriteBitmapRenderTarget3 *This); + + HRESULT (STDMETHODCALLTYPE *SetPixelsPerDip)( + IDWriteBitmapRenderTarget3 *This, + FLOAT pixels_per_dip); + + HRESULT (STDMETHODCALLTYPE *GetCurrentTransform)( + IDWriteBitmapRenderTarget3 *This, + DWRITE_MATRIX *transform); + + HRESULT (STDMETHODCALLTYPE *SetCurrentTransform)( + IDWriteBitmapRenderTarget3 *This, + const DWRITE_MATRIX *transform); + + HRESULT (STDMETHODCALLTYPE *GetSize)( + IDWriteBitmapRenderTarget3 *This, + SIZE *size); + + HRESULT (STDMETHODCALLTYPE *Resize)( + IDWriteBitmapRenderTarget3 *This, + UINT32 width, + UINT32 height); + + /*** IDWriteBitmapRenderTarget1 methods ***/ + DWRITE_TEXT_ANTIALIAS_MODE (STDMETHODCALLTYPE *GetTextAntialiasMode)( + IDWriteBitmapRenderTarget3 *This); + + HRESULT (STDMETHODCALLTYPE *SetTextAntialiasMode)( + IDWriteBitmapRenderTarget3 *This, + DWRITE_TEXT_ANTIALIAS_MODE mode); + + /*** IDWriteBitmapRenderTarget2 methods ***/ + HRESULT (STDMETHODCALLTYPE *GetBitmapData)( + IDWriteBitmapRenderTarget3 *This, + DWRITE_BITMAP_DATA_BGRA32 *bitmap_data); + + /*** IDWriteBitmapRenderTarget3 methods ***/ + DWRITE_PAINT_FEATURE_LEVEL (STDMETHODCALLTYPE *GetPaintFeatureLevel)( + IDWriteBitmapRenderTarget3 *This); + + HRESULT (STDMETHODCALLTYPE *DrawPaintGlyphRun)( + IDWriteBitmapRenderTarget3 *This, + FLOAT origin_x, + FLOAT origin_y, + DWRITE_MEASURING_MODE measuring_mode, + const DWRITE_GLYPH_RUN *run, + DWRITE_GLYPH_IMAGE_FORMATS image_format, + COLORREF text_color, + UINT32 palette_index, + RECT *black_box); + + HRESULT (STDMETHODCALLTYPE *DrawGlyphRunWithColorSupport)( + IDWriteBitmapRenderTarget3 *This, + FLOAT origin_x, + FLOAT origin_y, + DWRITE_MEASURING_MODE measuring_mode, + const DWRITE_GLYPH_RUN *run, + IDWriteRenderingParams *params, + COLORREF text_color, + UINT32 palette_index, + RECT *black_box); + + END_INTERFACE +} IDWriteBitmapRenderTarget3Vtbl; + +interface IDWriteBitmapRenderTarget3 { + CONST_VTBL IDWriteBitmapRenderTarget3Vtbl* lpVtbl; +}; + +#ifdef COBJMACROS +#ifndef WIDL_C_INLINE_WRAPPERS +/*** IUnknown methods ***/ +#define IDWriteBitmapRenderTarget3_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) +#define IDWriteBitmapRenderTarget3_AddRef(This) (This)->lpVtbl->AddRef(This) +#define IDWriteBitmapRenderTarget3_Release(This) (This)->lpVtbl->Release(This) +/*** IDWriteBitmapRenderTarget methods ***/ +#define IDWriteBitmapRenderTarget3_DrawGlyphRun(This,baselineOriginX,baselineOriginY,measuring_mode,glyph_run,params,textColor,blackbox_rect) (This)->lpVtbl->DrawGlyphRun(This,baselineOriginX,baselineOriginY,measuring_mode,glyph_run,params,textColor,blackbox_rect) +#define IDWriteBitmapRenderTarget3_GetMemoryDC(This) (This)->lpVtbl->GetMemoryDC(This) +#define IDWriteBitmapRenderTarget3_GetPixelsPerDip(This) (This)->lpVtbl->GetPixelsPerDip(This) +#define IDWriteBitmapRenderTarget3_SetPixelsPerDip(This,pixels_per_dip) (This)->lpVtbl->SetPixelsPerDip(This,pixels_per_dip) +#define IDWriteBitmapRenderTarget3_GetCurrentTransform(This,transform) (This)->lpVtbl->GetCurrentTransform(This,transform) +#define IDWriteBitmapRenderTarget3_SetCurrentTransform(This,transform) (This)->lpVtbl->SetCurrentTransform(This,transform) +#define IDWriteBitmapRenderTarget3_GetSize(This,size) (This)->lpVtbl->GetSize(This,size) +#define IDWriteBitmapRenderTarget3_Resize(This,width,height) (This)->lpVtbl->Resize(This,width,height) +/*** IDWriteBitmapRenderTarget1 methods ***/ +#define IDWriteBitmapRenderTarget3_GetTextAntialiasMode(This) (This)->lpVtbl->GetTextAntialiasMode(This) +#define IDWriteBitmapRenderTarget3_SetTextAntialiasMode(This,mode) (This)->lpVtbl->SetTextAntialiasMode(This,mode) +/*** IDWriteBitmapRenderTarget2 methods ***/ +#define IDWriteBitmapRenderTarget3_GetBitmapData(This,bitmap_data) (This)->lpVtbl->GetBitmapData(This,bitmap_data) +/*** IDWriteBitmapRenderTarget3 methods ***/ +#define IDWriteBitmapRenderTarget3_GetPaintFeatureLevel(This) (This)->lpVtbl->GetPaintFeatureLevel(This) +#define IDWriteBitmapRenderTarget3_DrawPaintGlyphRun(This,origin_x,origin_y,measuring_mode,run,image_format,text_color,palette_index,black_box) (This)->lpVtbl->DrawPaintGlyphRun(This,origin_x,origin_y,measuring_mode,run,image_format,text_color,palette_index,black_box) +#define IDWriteBitmapRenderTarget3_DrawGlyphRunWithColorSupport(This,origin_x,origin_y,measuring_mode,run,params,text_color,palette_index,black_box) (This)->lpVtbl->DrawGlyphRunWithColorSupport(This,origin_x,origin_y,measuring_mode,run,params,text_color,palette_index,black_box) +#else +/*** IUnknown methods ***/ +static inline HRESULT IDWriteBitmapRenderTarget3_QueryInterface(IDWriteBitmapRenderTarget3* This,REFIID riid,void **ppvObject) { + return This->lpVtbl->QueryInterface(This,riid,ppvObject); +} +static inline ULONG IDWriteBitmapRenderTarget3_AddRef(IDWriteBitmapRenderTarget3* This) { + return This->lpVtbl->AddRef(This); +} +static inline ULONG IDWriteBitmapRenderTarget3_Release(IDWriteBitmapRenderTarget3* This) { + return This->lpVtbl->Release(This); +} +/*** IDWriteBitmapRenderTarget methods ***/ +static inline HRESULT IDWriteBitmapRenderTarget3_DrawGlyphRun(IDWriteBitmapRenderTarget3* This,FLOAT baselineOriginX,FLOAT baselineOriginY,DWRITE_MEASURING_MODE measuring_mode,const DWRITE_GLYPH_RUN *glyph_run,IDWriteRenderingParams *params,COLORREF textColor,RECT *blackbox_rect) { + return This->lpVtbl->DrawGlyphRun(This,baselineOriginX,baselineOriginY,measuring_mode,glyph_run,params,textColor,blackbox_rect); +} +static inline HDC IDWriteBitmapRenderTarget3_GetMemoryDC(IDWriteBitmapRenderTarget3* This) { + return This->lpVtbl->GetMemoryDC(This); +} +static inline FLOAT IDWriteBitmapRenderTarget3_GetPixelsPerDip(IDWriteBitmapRenderTarget3* This) { + return This->lpVtbl->GetPixelsPerDip(This); +} +static inline HRESULT IDWriteBitmapRenderTarget3_SetPixelsPerDip(IDWriteBitmapRenderTarget3* This,FLOAT pixels_per_dip) { + return This->lpVtbl->SetPixelsPerDip(This,pixels_per_dip); +} +static inline HRESULT IDWriteBitmapRenderTarget3_GetCurrentTransform(IDWriteBitmapRenderTarget3* This,DWRITE_MATRIX *transform) { + return This->lpVtbl->GetCurrentTransform(This,transform); +} +static inline HRESULT IDWriteBitmapRenderTarget3_SetCurrentTransform(IDWriteBitmapRenderTarget3* This,const DWRITE_MATRIX *transform) { + return This->lpVtbl->SetCurrentTransform(This,transform); +} +static inline HRESULT IDWriteBitmapRenderTarget3_GetSize(IDWriteBitmapRenderTarget3* This,SIZE *size) { + return This->lpVtbl->GetSize(This,size); +} +static inline HRESULT IDWriteBitmapRenderTarget3_Resize(IDWriteBitmapRenderTarget3* This,UINT32 width,UINT32 height) { + return This->lpVtbl->Resize(This,width,height); +} +/*** IDWriteBitmapRenderTarget1 methods ***/ +static inline DWRITE_TEXT_ANTIALIAS_MODE IDWriteBitmapRenderTarget3_GetTextAntialiasMode(IDWriteBitmapRenderTarget3* This) { + return This->lpVtbl->GetTextAntialiasMode(This); +} +static inline HRESULT IDWriteBitmapRenderTarget3_SetTextAntialiasMode(IDWriteBitmapRenderTarget3* This,DWRITE_TEXT_ANTIALIAS_MODE mode) { + return This->lpVtbl->SetTextAntialiasMode(This,mode); +} +/*** IDWriteBitmapRenderTarget2 methods ***/ +static inline HRESULT IDWriteBitmapRenderTarget3_GetBitmapData(IDWriteBitmapRenderTarget3* This,DWRITE_BITMAP_DATA_BGRA32 *bitmap_data) { + return This->lpVtbl->GetBitmapData(This,bitmap_data); +} +/*** IDWriteBitmapRenderTarget3 methods ***/ +static inline DWRITE_PAINT_FEATURE_LEVEL IDWriteBitmapRenderTarget3_GetPaintFeatureLevel(IDWriteBitmapRenderTarget3* This) { + return This->lpVtbl->GetPaintFeatureLevel(This); +} +static inline HRESULT IDWriteBitmapRenderTarget3_DrawPaintGlyphRun(IDWriteBitmapRenderTarget3* This,FLOAT origin_x,FLOAT origin_y,DWRITE_MEASURING_MODE measuring_mode,const DWRITE_GLYPH_RUN *run,DWRITE_GLYPH_IMAGE_FORMATS image_format,COLORREF text_color,UINT32 palette_index,RECT *black_box) { + return This->lpVtbl->DrawPaintGlyphRun(This,origin_x,origin_y,measuring_mode,run,image_format,text_color,palette_index,black_box); +} +static inline HRESULT IDWriteBitmapRenderTarget3_DrawGlyphRunWithColorSupport(IDWriteBitmapRenderTarget3* This,FLOAT origin_x,FLOAT origin_y,DWRITE_MEASURING_MODE measuring_mode,const DWRITE_GLYPH_RUN *run,IDWriteRenderingParams *params,COLORREF text_color,UINT32 palette_index,RECT *black_box) { + return This->lpVtbl->DrawGlyphRunWithColorSupport(This,origin_x,origin_y,measuring_mode,run,params,text_color,palette_index,black_box); +} +#endif +#endif + +#endif + + +#endif /* __IDWriteBitmapRenderTarget3_INTERFACE_DEFINED__ */ + +/* Begin additional prototypes for all interfaces */ + + +/* End additional prototypes */ + +#ifdef __cplusplus +} +#endif + +#endif /* __dwrite_3_h__ */ diff --git a/src/text/font/boldmonottf.c b/src/text/font/boldmonottf.c index 7945831..6d54436 100644 --- a/src/text/font/boldmonottf.c +++ b/src/text/font/boldmonottf.c @@ -1,6 +1,6 @@ #include -#if defined(USE_STB_TRUETYPE) || defined(USE_FREETYPE2) +#if defined(USE_STB_TRUETYPE) || defined(USE_FREETYPE2) || defined(USE_DIRECTWRITE) unsigned char MwBoldMonospaceTTFData[] = { 0x00, 0x01, 0x00, 0x00, 0x00, 0x11, 0x01, 0x00, 0x00, 0x04, 0x00, 0x10, 0x46, 0x46, 0x54, 0x4d, 0xac, 0x0d, 0xe4, 0x44, 0x00, 0x00, 0x8d, 0x3c, diff --git a/src/text/font/boldttf.c b/src/text/font/boldttf.c index 14b2599..5b02578 100644 --- a/src/text/font/boldttf.c +++ b/src/text/font/boldttf.c @@ -1,6 +1,6 @@ #include -#if defined(USE_STB_TRUETYPE) || defined(USE_FREETYPE2) +#if defined(USE_STB_TRUETYPE) || defined(USE_FREETYPE2) || defined(USE_DIRECTWRITE) unsigned char MwBoldTTFData[] = { 0x00, 0x01, 0x00, 0x00, 0x00, 0x12, 0x01, 0x00, 0x00, 0x04, 0x00, 0x20, 0x46, 0x46, 0x54, 0x4d, 0x94, 0x9f, 0x60, 0x18, 0x00, 0x00, 0x8e, 0xa8, diff --git a/src/text/font/monottf.c b/src/text/font/monottf.c index 8332c4a..549e158 100644 --- a/src/text/font/monottf.c +++ b/src/text/font/monottf.c @@ -1,6 +1,6 @@ #include -#if defined(USE_STB_TRUETYPE) || defined(USE_FREETYPE2) +#if defined(USE_STB_TRUETYPE) || defined(USE_FREETYPE2) || defined(USE_DIRECTWRITE) unsigned char MwMonospaceTTFData[] = { 0x00, 0x01, 0x00, 0x00, 0x00, 0x11, 0x01, 0x00, 0x00, 0x04, 0x00, 0x10, 0x46, 0x46, 0x54, 0x4d, 0xac, 0x0d, 0xe4, 0x23, 0x00, 0x00, 0x8d, 0x3c, diff --git a/src/text/font/ttf.c b/src/text/font/ttf.c index c5d03b9..6dd1418 100644 --- a/src/text/font/ttf.c +++ b/src/text/font/ttf.c @@ -1,6 +1,6 @@ #include -#if defined(USE_STB_TRUETYPE) || defined(USE_FREETYPE2) +#if defined(USE_STB_TRUETYPE) || defined(USE_FREETYPE2) || defined(USE_DIRECTWRITE) unsigned char MwTTFData[] = { 0x00, 0x01, 0x00, 0x00, 0x00, 0x12, 0x01, 0x00, 0x00, 0x04, 0x00, 0x20, 0x46, 0x46, 0x54, 0x4d, 0x94, 0x92, 0x79, 0xd4, 0x00, 0x00, 0x89, 0xa4, diff --git a/src/text/text.c b/src/text/text.c index 786089b..e43de8c 100644 --- a/src/text/text.c +++ b/src/text/text.c @@ -3,10 +3,11 @@ int (*MwFLDrawText)(MwWidget handle, MwFLFont font, MwPoint* point, const char* text, MwLLColor color) = NULL; int (*MwFLTextWidth)(MwFLFont font, const char* text) = NULL; int (*MwFLTextHeight)(MwFLFont font, int count) = NULL; +int (*MwFLTextHeightWithText)(MwFLFont ttf, const char * text) = NULL; void* (*MwFLFontLoad)(unsigned char* data, unsigned int size, int px) = NULL; void (*MwFLFontFree)(void* handle) = NULL; -#if defined(USE_FREETYPE2) || defined(USE_STB_TRUETYPE) +#if defined(USE_FREETYPE2) || defined(USE_STB_TRUETYPE) || defined(USE_DIRECTWRITE) #define TTF #endif @@ -220,6 +221,8 @@ int MwTextHeight(MwWidget handle, MwFLFont ttf, const char* text) { #ifdef TTF if(MwFLTextHeight) if(!MwGetInteger(handle, MwNbitmapFont) && ttf != NULL && (st = MwFLTextHeight(ttf, c)) != -1) return st; + if(MwFLTextHeightWithText) + if(!MwGetInteger(handle, MwNbitmapFont) && ttf != NULL && (st = MwFLTextHeightWithText(ttf, text)) != -1) return st; #endif return FontHeight * c; } @@ -297,6 +300,9 @@ static void bitmap_MwDrawText(MwWidget handle, MwPoint* point, const char* text, typedef int (*call_t)(void); void MwFLSetup(void) { call_t calls[] = { +#ifdef USE_DIRECTWRITE + MWFL_DWSetup, +#endif #ifdef USE_FREETYPE2 MWFL_FT2Setup, #endif