123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005 |
- /*
- * Copyright 2016 Nikolay Sivov for CodeWeavers
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
- */
- import "dwrite_2.idl";
- interface IDWriteFontFaceReference;
- interface IDWriteFontFaceReference1;
- interface IDWriteFontFace3;
- interface IDWriteFontSet;
- interface IDWriteFontDownloadQueue;
- interface IDWriteFontFace5;
- interface IDWriteFontList2;
- cpp_quote("#ifndef _WINGDI_")
- /* already defined in wingdi.h but needed for WIDL */
- typedef struct FONTSIGNATURE FONTSIGNATURE;
- cpp_quote("#endif /* _WINGDI_ */")
- typedef enum DWRITE_LOCALITY
- {
- DWRITE_LOCALITY_REMOTE,
- DWRITE_LOCALITY_PARTIAL,
- DWRITE_LOCALITY_LOCAL
- } DWRITE_LOCALITY;
- typedef enum DWRITE_RENDERING_MODE1
- {
- DWRITE_RENDERING_MODE1_DEFAULT,
- DWRITE_RENDERING_MODE1_ALIASED,
- DWRITE_RENDERING_MODE1_GDI_CLASSIC,
- DWRITE_RENDERING_MODE1_GDI_NATURAL,
- DWRITE_RENDERING_MODE1_NATURAL,
- DWRITE_RENDERING_MODE1_NATURAL_SYMMETRIC,
- DWRITE_RENDERING_MODE1_OUTLINE,
- DWRITE_RENDERING_MODE1_NATURAL_SYMMETRIC_DOWNSAMPLED
- } DWRITE_RENDERING_MODE1;
- typedef enum DWRITE_FONT_PROPERTY_ID
- {
- DWRITE_FONT_PROPERTY_ID_NONE,
- DWRITE_FONT_PROPERTY_ID_WEIGHT_STRETCH_STYLE_FAMILY_NAME,
- DWRITE_FONT_PROPERTY_ID_TYPOGRAPHIC_FAMILY_NAME,
- DWRITE_FONT_PROPERTY_ID_WEIGHT_STRETCH_STYLE_FACE_NAME,
- DWRITE_FONT_PROPERTY_ID_FULL_NAME,
- DWRITE_FONT_PROPERTY_ID_WIN32_FAMILY_NAME,
- DWRITE_FONT_PROPERTY_ID_POSTSCRIPT_NAME,
- DWRITE_FONT_PROPERTY_ID_DESIGN_SCRIPT_LANGUAGE_TAG,
- DWRITE_FONT_PROPERTY_ID_SUPPORTED_SCRIPT_LANGUAGE_TAG,
- DWRITE_FONT_PROPERTY_ID_SEMANTIC_TAG,
- DWRITE_FONT_PROPERTY_ID_WEIGHT,
- DWRITE_FONT_PROPERTY_ID_STRETCH,
- DWRITE_FONT_PROPERTY_ID_STYLE,
- DWRITE_FONT_PROPERTY_ID_TYPOGRAPHIC_FACE_NAME,
- DWRITE_FONT_PROPERTY_ID_TOTAL = DWRITE_FONT_PROPERTY_ID_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;
- WCHAR const *propertyValue;
- WCHAR const *localeName;
- } DWRITE_FONT_PROPERTY;
- cpp_quote("#ifdef __cplusplus")
- cpp_quote("#define DWRITE_MAKE_FONT_AXIS_TAG(a,b,c,d) (static_cast<DWRITE_FONT_AXIS_TAG>(DWRITE_MAKE_OPENTYPE_TAG(a,b,c,d)))")
- cpp_quote("#else")
- cpp_quote("#define DWRITE_MAKE_FONT_AXIS_TAG(a,b,c,d) (DWRITE_MAKE_OPENTYPE_TAG(a,b,c,d))")
- cpp_quote("#endif")
- typedef enum DWRITE_FONT_AXIS_TAG
- {
- DWRITE_FONT_AXIS_TAG_WEIGHT = 0x74686777, /* 'wght' */
- DWRITE_FONT_AXIS_TAG_WIDTH = 0x68746477, /* 'wdth' */
- DWRITE_FONT_AXIS_TAG_SLANT = 0x746e6c73, /* 'slnt' */
- DWRITE_FONT_AXIS_TAG_OPTICAL_SIZE = 0x7a73706f, /* 'opsz' */
- DWRITE_FONT_AXIS_TAG_ITALIC = 0x6c617469, /* 'ital' */
- } DWRITE_FONT_AXIS_TAG;
- typedef enum DWRITE_FONT_SOURCE_TYPE
- {
- DWRITE_FONT_SOURCE_TYPE_UNKNOWN,
- DWRITE_FONT_SOURCE_TYPE_PER_MACHINE,
- DWRITE_FONT_SOURCE_TYPE_PER_USER,
- DWRITE_FONT_SOURCE_TYPE_APPX_PACKAGE,
- DWRITE_FONT_SOURCE_TYPE_REMOTE_FONT_PROVIDER
- } 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,
- DWRITE_AUTOMATIC_FONT_AXES_OPTICAL_SIZE,
- } DWRITE_AUTOMATIC_FONT_AXES;
- typedef enum DWRITE_FONT_AXIS_ATTRIBUTES
- {
- DWRITE_FONT_AXIS_ATTRIBUTES_NONE,
- DWRITE_FONT_AXIS_ATTRIBUTES_VARIABLE,
- DWRITE_FONT_AXIS_ATTRIBUTES_HIDDEN,
- } DWRITE_FONT_AXIS_ATTRIBUTES;
- typedef enum DWRITE_FONT_FAMILY_MODEL
- {
- DWRITE_FONT_FAMILY_MODEL_TYPOGRAPHIC,
- DWRITE_FONT_FAMILY_MODEL_WEIGHT_STRETCH_STYLE,
- } DWRITE_FONT_FAMILY_MODEL;
- [
- local,
- object,
- uuid(b06fe5b9-43ec-4393-881b-dbe4dc72fda7)
- ]
- interface IDWriteFontDownloadListener : IUnknown
- {
- void DownloadCompleted(IDWriteFontDownloadQueue *queue, IUnknown *context, HRESULT result);
- }
- [
- local,
- object,
- uuid(b71e6052-5aea-4fa3-832e-f60d431f7e91)
- ]
- interface IDWriteFontDownloadQueue : IUnknown
- {
- HRESULT AddListener(IDWriteFontDownloadListener *listener, UINT32 *token);
- HRESULT RemoveListener(UINT32 token);
- BOOL IsEmpty();
- HRESULT BeginDownload(IUnknown *context);
- HRESULT CancelDownload();
- UINT64 GetGenerationCount();
- }
- [
- local,
- object,
- uuid(b7924baa-391b-412a-8c5c-e44cc2d867dc)
- ]
- interface IDWriteRenderingParams3 : IDWriteRenderingParams2
- {
- DWRITE_RENDERING_MODE1 GetRenderingMode1();
- }
- [
- local,
- object,
- uuid(cfee3140-1257-47ca-8b85-31bfcf3f2d0e)
- ]
- interface IDWriteStringList : IUnknown
- {
- UINT32 GetCount();
- HRESULT GetLocaleNameLength(UINT32 index, UINT32 *length);
- HRESULT GetLocaleName(UINT32 index, WCHAR *name, UINT32 size);
- HRESULT GetStringLength(UINT32 index, UINT32 *length);
- HRESULT GetString(UINT32 index, WCHAR *string, UINT32 size);
- }
- [
- local,
- object,
- uuid(53585141-d9f8-4095-8321-d73cf6bd116b)
- ]
- interface IDWriteFontSet : IUnknown
- {
- UINT32 GetFontCount();
- HRESULT GetFontFaceReference(UINT32 index, IDWriteFontFaceReference **reference);
- HRESULT FindFontFaceReference(IDWriteFontFaceReference *reference,
- UINT32 *index, BOOL *exists);
- HRESULT FindFontFace(IDWriteFontFace *fontface, UINT32 *index, BOOL *exists);
- HRESULT GetPropertyValues__(DWRITE_FONT_PROPERTY_ID id, IDWriteStringList **values);
- HRESULT GetPropertyValues_(DWRITE_FONT_PROPERTY_ID id,
- WCHAR const *preferred_locales, IDWriteStringList **values);
- HRESULT GetPropertyValues(UINT32 index, DWRITE_FONT_PROPERTY_ID id, BOOL *exists,
- IDWriteLocalizedStrings **values);
- HRESULT GetPropertyOccurrenceCount(DWRITE_FONT_PROPERTY const *property, UINT32 *count);
- HRESULT GetMatchingFonts_(WCHAR const *family, DWRITE_FONT_WEIGHT weight, DWRITE_FONT_STRETCH stretch,
- DWRITE_FONT_STYLE style, IDWriteFontSet **fontset);
- HRESULT GetMatchingFonts(DWRITE_FONT_PROPERTY const *props, UINT32 count, IDWriteFontSet **fontset);
- }
- [
- local,
- object,
- uuid(1f803a76-6871-48e8-987f-b975551c50f2)
- ]
- interface IDWriteFontResource : IUnknown
- {
- HRESULT GetFontFile(IDWriteFontFile **fontfile);
- UINT32 GetFontFaceIndex();
- UINT32 GetFontAxisCount();
- HRESULT GetDefaultFontAxisValues(
- DWRITE_FONT_AXIS_VALUE *values,
- UINT32 num_values);
- HRESULT GetFontAxisRanges(
- DWRITE_FONT_AXIS_RANGE *ranges,
- UINT32 num_ranges);
- DWRITE_FONT_AXIS_ATTRIBUTES GetFontAxisAttributes(
- UINT32 axis);
- HRESULT GetAxisNames(
- UINT32 axis,
- IDWriteLocalizedStrings **names);
- UINT32 GetAxisValueNameCount(
- UINT32 axis);
- HRESULT GetAxisValueNames(
- UINT32 axis,
- UINT32 axis_value,
- DWRITE_FONT_AXIS_RANGE *axis_range,
- IDWriteLocalizedStrings **names);
- BOOL HasVariations();
- HRESULT CreateFontFace(
- DWRITE_FONT_SIMULATIONS simulations,
- DWRITE_FONT_AXIS_VALUE const *axis_values,
- UINT32 num_values,
- IDWriteFontFace5 **fontface);
- HRESULT CreateFontFaceReference(
- DWRITE_FONT_SIMULATIONS simulations,
- DWRITE_FONT_AXIS_VALUE const *axis_values,
- UINT32 num_values,
- IDWriteFontFaceReference1 **reference);
- }
- [
- local,
- object,
- uuid(7e9fda85-6c92-4053-bc47-7ae3530db4d3)
- ]
- interface IDWriteFontSet1 : IDWriteFontSet
- {
- HRESULT GetMatchingFonts(
- DWRITE_FONT_PROPERTY const *property,
- DWRITE_FONT_AXIS_VALUE const *axis_values,
- UINT32 num_values,
- IDWriteFontSet1 **fontset);
- HRESULT GetFirstFontResources(IDWriteFontSet1 **fontset);
- HRESULT GetFilteredFonts__(
- UINT32 const *indices,
- UINT32 num_indices,
- IDWriteFontSet1 **fontset);
- HRESULT GetFilteredFonts_(
- DWRITE_FONT_AXIS_RANGE const *axis_ranges,
- UINT32 num_ranges,
- BOOL select_any_range,
- IDWriteFontSet1 **fontset);
- HRESULT GetFilteredFonts(
- DWRITE_FONT_PROPERTY const *props,
- UINT32 num_properties,
- BOOL select_any_property,
- IDWriteFontSet1 **fontset);
- HRESULT GetFilteredFontIndices_(
- DWRITE_FONT_AXIS_RANGE const *ranges,
- UINT32 num_ranges,
- BOOL select_any_range,
- UINT32 *indices,
- UINT32 num_indices,
- UINT32 *actual_num_indices);
- HRESULT GetFilteredFontIndices(
- DWRITE_FONT_PROPERTY const *props,
- UINT32 num_properties,
- BOOL select_any_range,
- UINT32 *indices,
- UINT32 num_indices,
- UINT32 *actual_num_indices);
- HRESULT GetFontAxisRanges_(
- UINT32 font_index,
- DWRITE_FONT_AXIS_RANGE *axis_ranges,
- UINT32 num_ranges,
- UINT32 *actual_num_ranges);
- HRESULT GetFontAxisRanges(
- DWRITE_FONT_AXIS_RANGE *axis_ranges,
- UINT32 num_ranges,
- UINT32 *actual_num_ranges);
- HRESULT GetFontFaceReference(
- UINT32 index,
- IDWriteFontFaceReference1 **reference);
- HRESULT CreateFontResource(
- UINT32 index,
- IDWriteFontResource **resource);
- HRESULT CreateFontFace(
- UINT32 index,
- IDWriteFontFace5 **fontface);
- DWRITE_LOCALITY GetFontLocality(UINT32 index);
- }
- [
- local,
- object,
- uuid(29748ed6-8c9c-4a6a-be0b-d912e8538944)
- ]
- interface IDWriteFont3 : IDWriteFont2
- {
- HRESULT CreateFontFace(IDWriteFontFace3 **fontface);
- BOOL Equals(IDWriteFont *font);
- HRESULT GetFontFaceReference(IDWriteFontFaceReference **reference);
- BOOL HasCharacter(UINT32 character);
- DWRITE_LOCALITY GetLocality();
- }
- [
- local,
- object,
- uuid(da20d8ef-812a-4c43-9802-62ec4abd7adf)
- ]
- interface IDWriteFontFamily1 : IDWriteFontFamily
- {
- DWRITE_LOCALITY GetFontLocality(UINT32 index);
- HRESULT GetFont(UINT32 index, IDWriteFont3 **font);
- HRESULT GetFontFaceReference(UINT32 index, IDWriteFontFaceReference **reference);
- }
- [
- local,
- object,
- uuid(3ed49e77-a398-4261-b9cf-c126c2131ef3)
- ]
- interface IDWriteFontFamily2 : IDWriteFontFamily1
- {
- HRESULT GetMatchingFonts(
- DWRITE_FONT_AXIS_VALUE const *axis_values,
- UINT32 num_values,
- IDWriteFontList2 **fontlist);
- HRESULT GetFontSet(IDWriteFontSet1 **fontset);
- }
- [
- local,
- object,
- uuid(53585141-d9f8-4095-8321-d73cf6bd116c)
- ]
- interface IDWriteFontCollection1 : IDWriteFontCollection
- {
- HRESULT GetFontSet(IDWriteFontSet **fontset);
- HRESULT GetFontFamily(UINT32 index, IDWriteFontFamily1 **family);
- }
- [
- local,
- object,
- uuid(514039c6-4617-4064-bf8b-92ea83e506e0)
- ]
- interface IDWriteFontCollection2 : IDWriteFontCollection1
- {
- HRESULT GetFontFamily(
- UINT32 index,
- IDWriteFontFamily2 **family);
- HRESULT GetMatchingFonts(
- const WCHAR *familyname,
- DWRITE_FONT_AXIS_VALUE const *axis_values,
- UINT32 num_values,
- IDWriteFontList2 **fontlist);
- DWRITE_FONT_FAMILY_MODEL GetFontFamilyModel();
- HRESULT GetFontSet(IDWriteFontSet1 **fontset);
- }
- [
- local,
- object,
- uuid(a4d055a6-f9e3-4e25-93b7-9e309f3af8e9)
- ]
- interface IDWriteFontCollection3 : IDWriteFontCollection2
- {
- HANDLE GetExpirationEvent();
- }
- [
- local,
- object,
- uuid(5e7fa7ca-dde3-424c-89f0-9fcd6fed58cd)
- ]
- interface IDWriteFontFaceReference : IUnknown
- {
- HRESULT CreateFontFace(IDWriteFontFace3 **fontface);
- HRESULT CreateFontFaceWithSimulations(DWRITE_FONT_SIMULATIONS simulations,
- IDWriteFontFace3 **fontface);
- BOOL Equals(IDWriteFontFaceReference *reference);
- UINT32 GetFontFaceIndex();
- DWRITE_FONT_SIMULATIONS GetSimulations();
- HRESULT GetFontFile(IDWriteFontFile **fontfile);
- UINT64 GetLocalFileSize();
- UINT64 GetFileSize();
- HRESULT GetFileTime(FILETIME *writetime);
- DWRITE_LOCALITY GetLocality();
- HRESULT EnqueueFontDownloadRequest();
- HRESULT EnqueueCharacterDownloadRequest(WCHAR const *chars, UINT32 count);
- HRESULT EnqueueGlyphDownloadRequest(UINT16 const *glyphs, UINT32 count);
- HRESULT EnqueueFileFragmentDownloadRequest(UINT64 offset, UINT64 size);
- }
- [
- local,
- object,
- uuid(c081fe77-2fd1-41ac-a5a3-34983c4ba61a)
- ]
- interface IDWriteFontFaceReference1 : IDWriteFontFaceReference
- {
- HRESULT CreateFontFace(IDWriteFontFace5 **fontface);
- UINT32 GetFontAxisValueCount();
- HRESULT GetFontAxisValues(
- DWRITE_FONT_AXIS_VALUE *values,
- UINT32 num_values);
- }
- [
- local,
- object,
- uuid(da20d8ef-812a-4c43-9802-62ec4abd7ade)
- ]
- interface IDWriteFontList1 : IDWriteFontList
- {
- DWRITE_LOCALITY GetFontLocality(UINT32 index);
- HRESULT GetFont(UINT32 index, IDWriteFont3 **font);
- HRESULT GetFontFaceReference(UINT32 index, IDWriteFontFaceReference **reference);
- }
- [
- local,
- object,
- uuid(c0763a34-77af-445a-b735-08c37b0a5bf5)
- ]
- interface IDWriteFontList2 : IDWriteFontList1
- {
- HRESULT GetFontSet(IDWriteFontSet1 **fontset);
- }
- [
- local,
- object,
- uuid(dc7ead19-e54c-43af-b2da-4e2b79ba3f7f)
- ]
- interface IDWriteFontSet2 : IDWriteFontSet1
- {
- HANDLE GetExpirationEvent();
- }
- [
- local,
- object,
- uuid(7c073ef2-a7f4-4045-8c32-8ab8ae640f90)
- ]
- interface IDWriteFontSet3 : IDWriteFontSet2
- {
- DWRITE_FONT_SOURCE_TYPE GetFontSourceType(UINT32 index);
- UINT32 GetFontSourceNameLength(UINT32 index);
- HRESULT GetFontSourceName(UINT32 index, WCHAR *buffer, UINT32 buffer_size);
- }
- [
- local,
- object,
- uuid(d37d7598-09be-4222-a236-2081341cc1f2)
- ]
- interface IDWriteFontFace3 : IDWriteFontFace2
- {
- HRESULT GetFontFaceReference(IDWriteFontFaceReference **reference);
- void GetPanose(DWRITE_PANOSE *panose);
- DWRITE_FONT_WEIGHT GetWeight();
- DWRITE_FONT_STRETCH GetStretch();
- DWRITE_FONT_STYLE GetStyle();
- HRESULT GetFamilyNames(IDWriteLocalizedStrings **names);
- HRESULT GetFaceNames(IDWriteLocalizedStrings **names);
- HRESULT GetInformationalStrings(DWRITE_INFORMATIONAL_STRING_ID stringid,
- IDWriteLocalizedStrings **strings,
- BOOL *exists);
- BOOL HasCharacter(UINT32 character);
- HRESULT GetRecommendedRenderingMode(
- FLOAT emsize,
- FLOAT dpi_x,
- FLOAT dpi_y,
- DWRITE_MATRIX const *transform,
- BOOL is_sideways,
- DWRITE_OUTLINE_THRESHOLD threshold,
- DWRITE_MEASURING_MODE measuring_mode,
- IDWriteRenderingParams *params,
- DWRITE_RENDERING_MODE1 *rendering_mode,
- DWRITE_GRID_FIT_MODE *gridfit_mode);
- BOOL IsCharacterLocal(UINT32 character);
- BOOL IsGlyphLocal(UINT16 glyph);
- HRESULT AreCharactersLocal(WCHAR const *characters,
- UINT32 count, BOOL enqueue_if_not, BOOL *are_local);
- HRESULT AreGlyphsLocal(UINT16 const *glyphs, UINT32 count,
- BOOL enqueue_if_not, BOOL *are_local);
- }
- typedef struct DWRITE_LINE_METRICS1
- {
- UINT32 length;
- UINT32 trailingWhitespaceLength;
- UINT32 newlineLength;
- FLOAT height;
- FLOAT baseline;
- BOOL isTrimmed;
- FLOAT leadingBefore;
- FLOAT leadingAfter;
- } DWRITE_LINE_METRICS1;
- typedef enum DWRITE_FONT_LINE_GAP_USAGE
- {
- DWRITE_FONT_LINE_GAP_USAGE_DEFAULT,
- DWRITE_FONT_LINE_GAP_USAGE_DISABLED,
- DWRITE_FONT_LINE_GAP_USAGE_ENABLED
- } 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;
- [
- local,
- object,
- uuid(f67e0edd-9e3d-4ecc-8c32-4183253dfe70)
- ]
- interface IDWriteTextFormat2 : IDWriteTextFormat1
- {
- HRESULT SetLineSpacing(DWRITE_LINE_SPACING const *spacing);
- HRESULT GetLineSpacing(DWRITE_LINE_SPACING *spacing);
- }
- [
- local,
- object,
- uuid(6d3b5641-e550-430d-a85b-b7bf48a93427)
- ]
- interface IDWriteTextFormat3 : IDWriteTextFormat2
- {
- HRESULT SetFontAxisValues(
- DWRITE_FONT_AXIS_VALUE const *axis_values,
- UINT32 num_values);
- UINT32 GetFontAxisValueCount();
- HRESULT GetFontAxisValues(
- DWRITE_FONT_AXIS_VALUE *axis_values,
- UINT32 num_values);
- DWRITE_AUTOMATIC_FONT_AXES GetAutomaticFontAxes();
- HRESULT SetAutomaticFontAxes(DWRITE_AUTOMATIC_FONT_AXES axes);
- }
- [
- local,
- object,
- uuid(07ddcd52-020e-4de8-ac33-6c953d83f92d)
- ]
- interface IDWriteTextLayout3 : IDWriteTextLayout2
- {
- HRESULT InvalidateLayout();
- HRESULT SetLineSpacing(DWRITE_LINE_SPACING const *spacing);
- HRESULT GetLineSpacing(DWRITE_LINE_SPACING *spacing);
- HRESULT GetLineMetrics(DWRITE_LINE_METRICS1 *metrics, UINT32 max_count, UINT32 *count);
- }
- [
- local,
- object,
- uuid(05a9bf42-223f-4441-b5fb-8263685f55e9)
- ]
- interface IDWriteTextLayout4 : IDWriteTextLayout3
- {
- HRESULT SetFontAxisValues(
- DWRITE_FONT_AXIS_VALUE const *axis_values,
- UINT32 num_values,
- DWRITE_TEXT_RANGE range);
- UINT32 GetFontAxisValueCount(UINT32 pos);
- HRESULT GetFontAxisValues(
- UINT32 pos,
- DWRITE_FONT_AXIS_VALUE *values,
- UINT32 num_values,
- DWRITE_TEXT_RANGE *range);
- DWRITE_AUTOMATIC_FONT_AXES GetAutomaticFontAxes();
- HRESULT SetAutomaticFontAxes(DWRITE_AUTOMATIC_FONT_AXES axes);
- }
- [
- local,
- object,
- uuid(2397599d-dd0d-4681-bd6a-f4f31eaade77)
- ]
- interface IDWriteFontFallback1 : IDWriteFontFallback
- {
- HRESULT MapCharacters(
- IDWriteTextAnalysisSource *source,
- UINT32 pos,
- UINT32 length,
- IDWriteFontCollection *base_collection,
- const WCHAR *familyname,
- DWRITE_FONT_AXIS_VALUE const *axis_values,
- UINT32 num_values,
- UINT32 *mapped_length,
- FLOAT *scale,
- IDWriteFontFace5 **fontface);
- }
- [
- local,
- object,
- uuid(4556be70-3abd-4f70-90be-421780a6f515)
- ]
- interface IDWriteGdiInterop1 : IDWriteGdiInterop
- {
- HRESULT CreateFontFromLOGFONT(LOGFONTW const *logfont,
- IDWriteFontCollection *collection,
- IDWriteFont **font);
- /* GetFontSignature() methods are listed in reversed order to make
- resulting vtable order compatible. */
- HRESULT GetFontSignature_(IDWriteFontFace *fontface, FONTSIGNATURE *fontsig);
- HRESULT GetFontSignature(IDWriteFont *font, FONTSIGNATURE *fontsig);
- HRESULT GetMatchingFontsByLOGFONT(LOGFONTW const *logfont,
- IDWriteFontSet *fontset,
- IDWriteFontSet **subset);
- }
- [
- local,
- object,
- uuid(2f642afe-9c68-4f40-b8be-457401afcb3d)
- ]
- interface IDWriteFontSetBuilder : IUnknown
- {
- HRESULT AddFontFaceReference_(IDWriteFontFaceReference *ref,
- DWRITE_FONT_PROPERTY const *props,
- UINT32 prop_count);
- HRESULT AddFontFaceReference(IDWriteFontFaceReference *ref);
- HRESULT AddFontSet(IDWriteFontSet *fontset);
- HRESULT CreateFontSet(IDWriteFontSet **fontset);
- }
- [
- local,
- object,
- uuid(3ff7715f-3cdc-4dc6-9b72-ec5621dccafd)
- ]
- interface IDWriteFontSetBuilder1 : IDWriteFontSetBuilder
- {
- HRESULT AddFontFile(IDWriteFontFile *file);
- }
- [
- local,
- object,
- uuid(ee5ba612-b131-463c-8f4f-3189b9401e45)
- ]
- interface IDWriteFontSetBuilder2 : IDWriteFontSetBuilder1
- {
- HRESULT AddFont(
- IDWriteFontFile *fontfile,
- UINT32 face_index,
- DWRITE_FONT_SIMULATIONS simulations,
- DWRITE_FONT_AXIS_VALUE const *axis_values,
- UINT32 num_values,
- DWRITE_FONT_AXIS_RANGE const *axis_ranges,
- UINT32 num_ranges,
- DWRITE_FONT_PROPERTY const *props,
- UINT32 num_properties);
- HRESULT AddFontFile(const WCHAR *filepath);
- }
- [
- local,
- object,
- uuid(9a1b41c3-d3bb-466a-87fc-fe67556a3b65)
- ]
- interface IDWriteFactory3 : IDWriteFactory2
- {
- HRESULT CreateGlyphRunAnalysis(
- DWRITE_GLYPH_RUN const *run,
- DWRITE_MATRIX const *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 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);
- /* CreateFontFaceReference methods are listed in reversed order to make
- resulting vtable order compatible. */
- HRESULT CreateFontFaceReference_(
- IDWriteFontFile *file,
- UINT32 index,
- DWRITE_FONT_SIMULATIONS simulations,
- IDWriteFontFaceReference **reference);
- HRESULT CreateFontFaceReference(
- WCHAR const *path,
- FILETIME const *writetime,
- UINT32 index,
- DWRITE_FONT_SIMULATIONS simulations,
- IDWriteFontFaceReference **reference);
- HRESULT GetSystemFontSet(IDWriteFontSet **fontset);
- HRESULT CreateFontSetBuilder(IDWriteFontSetBuilder **builder);
- HRESULT CreateFontCollectionFromFontSet(
- IDWriteFontSet *fontset,
- IDWriteFontCollection1 **collection);
- HRESULT GetSystemFontCollection(
- BOOL include_downloadable,
- IDWriteFontCollection1 **collection,
- BOOL check_for_updates);
- HRESULT GetFontDownloadQueue(IDWriteFontDownloadQueue **queue);
- }
- typedef struct DWRITE_GLYPH_IMAGE_DATA
- {
- void const *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;
- [
- local,
- object,
- uuid(27f2a904-4eb8-441d-9678-0563f53e3e2f)
- ]
- interface IDWriteFontFace4 : IDWriteFontFace3
- {
- HRESULT GetGlyphImageFormats_(
- UINT16 glyph,
- UINT32 ppem_first,
- UINT32 ppem_last,
- DWRITE_GLYPH_IMAGE_FORMATS *formats);
- DWRITE_GLYPH_IMAGE_FORMATS GetGlyphImageFormats();
- HRESULT GetGlyphImageData(
- UINT16 glyph,
- UINT32 ppem,
- DWRITE_GLYPH_IMAGE_FORMATS format,
- DWRITE_GLYPH_IMAGE_DATA *data,
- void **context);
- void ReleaseGlyphImageData(void *context);
- }
- [
- local,
- object,
- uuid(98eff3a5-b667-479a-b145-e2fa5b9fdc29)
- ]
- interface IDWriteFontFace5 : IDWriteFontFace4
- {
- UINT32 GetFontAxisValueCount();
- HRESULT GetFontAxisValues(
- DWRITE_FONT_AXIS_VALUE *values,
- UINT32 value_count);
- BOOL HasVariations();
- HRESULT GetFontResource(IDWriteFontResource **resource);
- BOOL Equals(IDWriteFontFace *fontface);
- }
- typedef struct DWRITE_COLOR_GLYPH_RUN1 DWRITE_COLOR_GLYPH_RUN1;
- cpp_quote("struct DWRITE_COLOR_GLYPH_RUN1")
- cpp_quote("{")
- cpp_quote(" DWRITE_GLYPH_RUN glyphRun;")
- cpp_quote(" DWRITE_GLYPH_RUN_DESCRIPTION *glyphRunDescription;")
- cpp_quote(" FLOAT baselineOriginX;")
- cpp_quote(" FLOAT baselineOriginY;")
- cpp_quote(" DWRITE_COLOR_F runColor;")
- cpp_quote(" UINT16 paletteIndex;")
- cpp_quote("#ifdef _WIN64")
- cpp_quote(" UINT32 _pad;")
- cpp_quote("#endif")
- cpp_quote(" DWRITE_GLYPH_IMAGE_FORMATS glyphImageFormat;")
- cpp_quote(" DWRITE_MEASURING_MODE measuringMode;")
- cpp_quote("};")
- [
- local,
- object,
- uuid(7c5f86da-c7a1-4f05-b8e1-55a179fe5a35)
- ]
- interface IDWriteColorGlyphRunEnumerator1 : IDWriteColorGlyphRunEnumerator
- {
- HRESULT GetCurrentRun(
- DWRITE_COLOR_GLYPH_RUN1 const **run);
- }
- [
- local,
- object,
- uuid(4b0b5bd3-0797-4549-8ac5-fe915cc53856)
- ]
- interface IDWriteFactory4 : IDWriteFactory3
- {
- HRESULT TranslateColorGlyphRun(
- D2D1_POINT_2F baseline_origin,
- DWRITE_GLYPH_RUN const *run,
- DWRITE_GLYPH_RUN_DESCRIPTION const *run_desc,
- DWRITE_GLYPH_IMAGE_FORMATS desired_formats,
- DWRITE_MEASURING_MODE measuring_mode,
- DWRITE_MATRIX const *transform,
- UINT32 palette,
- IDWriteColorGlyphRunEnumerator1 **layers);
- HRESULT ComputeGlyphOrigins_(
- DWRITE_GLYPH_RUN const *run,
- D2D1_POINT_2F baseline_origin,
- D2D1_POINT_2F *origins);
- HRESULT ComputeGlyphOrigins(
- DWRITE_GLYPH_RUN const *run,
- DWRITE_MEASURING_MODE measuring_mode,
- D2D1_POINT_2F baseline_origin,
- DWRITE_MATRIX const *transform,
- D2D1_POINT_2F *origins);
- }
- [
- local,
- object,
- uuid(ce25f8fd-863b-4d13-9651-c1f88dc73fe2)
- ]
- interface IDWriteAsyncResult : IUnknown
- {
- HANDLE GetWaitHandle();
- HRESULT GetResult();
- }
- typedef struct DWRITE_FILE_FRAGMENT
- {
- UINT64 fileOffset;
- UINT64 fragmentSize;
- } DWRITE_FILE_FRAGMENT;
- [
- local,
- object,
- uuid(4db3757a-2c72-4ed9-b2b6-1ababe1aff9c)
- ]
- interface IDWriteRemoteFontFileStream : IDWriteFontFileStream
- {
- HRESULT GetLocalFileSize(UINT64 *size);
- HRESULT GetFileFragmentLocality(UINT64 offset, UINT64 size, BOOL *is_local, UINT64 *partial_size);
- DWRITE_LOCALITY GetLocality();
- HRESULT BeginDownload(
- GUID const *operation_id,
- DWRITE_FILE_FRAGMENT const *fragments,
- UINT32 fragment_count,
- IDWriteAsyncResult **async_result);
- }
- typedef enum DWRITE_CONTAINER_TYPE
- {
- DWRITE_CONTAINER_TYPE_UNKNOWN,
- DWRITE_CONTAINER_TYPE_WOFF,
- DWRITE_CONTAINER_TYPE_WOFF2,
- } DWRITE_CONTAINER_TYPE;
- [
- local,
- object,
- uuid(68648c83-6ede-46c0-ab46-20083a887fde)
- ]
- interface IDWriteRemoteFontFileLoader : IDWriteFontFileLoader
- {
- HRESULT CreateRemoteStreamFromKey(void const *key, UINT32 key_size, IDWriteRemoteFontFileStream **stream);
- HRESULT GetLocalityFromKey(void const *key, UINT32 key_size, DWRITE_LOCALITY *locality);
- HRESULT CreateFontFileReferenceFromUrl(
- IDWriteFactory *factory,
- WCHAR const *base_url,
- WCHAR const *file_url,
- IDWriteFontFile **fontfile);
- }
- [
- local,
- object,
- uuid(dc102f47-a12d-4b1c-822d-9e117e33043f)
- ]
- interface IDWriteInMemoryFontFileLoader : IDWriteFontFileLoader
- {
- HRESULT CreateInMemoryFontFileReference(
- IDWriteFactory *factory,
- void const *data,
- UINT32 data_size,
- IUnknown *owner,
- IDWriteFontFile **fontfile);
- UINT32 GetFileCount();
- }
- [
- local,
- object,
- uuid(958db99a-be2a-4f09-af7d-65189803d1d3)
- ]
- interface IDWriteFactory5 : IDWriteFactory4
- {
- HRESULT CreateFontSetBuilder(IDWriteFontSetBuilder1 **fontset_builder);
- HRESULT CreateInMemoryFontFileLoader(IDWriteInMemoryFontFileLoader **loader);
- HRESULT CreateHttpFontFileLoader(
- WCHAR const *referrer_url,
- WCHAR const *extra_headers,
- IDWriteRemoteFontFileLoader **loader);
- DWRITE_CONTAINER_TYPE AnalyzeContainerType(void const *data, UINT32 data_size);
- HRESULT UnpackFontFile(
- DWRITE_CONTAINER_TYPE container_type,
- void const *data,
- UINT32 data_size,
- IDWriteFontFileStream **stream);
- }
- [
- local,
- object,
- uuid(f3744d80-21f7-42eb-b35d-995bc72fc223)
- ]
- interface IDWriteFactory6 : IDWriteFactory5
- {
- HRESULT CreateFontFaceReference(
- IDWriteFontFile *file,
- UINT32 face_index,
- DWRITE_FONT_SIMULATIONS simulations,
- DWRITE_FONT_AXIS_VALUE const *axis_values,
- UINT32 num_axis,
- IDWriteFontFaceReference1 **face_ref);
- HRESULT CreateFontResource(
- IDWriteFontFile *file,
- UINT32 face_index,
- IDWriteFontResource **resource);
- HRESULT GetSystemFontSet(
- BOOL include_downloadable,
- IDWriteFontSet1 **fontset);
- HRESULT GetSystemFontCollection(
- BOOL include_downloadable,
- DWRITE_FONT_FAMILY_MODEL family_model,
- IDWriteFontCollection2 **collection);
- HRESULT CreateFontCollectionFromFontSet(
- IDWriteFontSet *fontset,
- DWRITE_FONT_FAMILY_MODEL family_model,
- IDWriteFontCollection2 **collection);
- HRESULT CreateFontSetBuilder(
- IDWriteFontSetBuilder2 **builder);
- HRESULT CreateTextFormat(
- const WCHAR *familyname,
- IDWriteFontCollection *collection,
- DWRITE_FONT_AXIS_VALUE const *axis_values,
- UINT32 num_axis,
- FLOAT fontsize,
- const WCHAR *localename,
- IDWriteTextFormat3 **format);
- }
- [
- local,
- object,
- uuid(35d0e0b3-9076-4d2e-a016-a91b568a06b4)
- ]
- interface IDWriteFactory7 : IDWriteFactory6
- {
- HRESULT GetSystemFontSet(
- BOOL include_downloadable,
- IDWriteFontSet2 **fontset);
- HRESULT GetSystemFontCollection(
- BOOL include_downloadable,
- DWRITE_FONT_FAMILY_MODEL family_model,
- IDWriteFontCollection3 **collection);
- }
|