• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /**
2  * This file has no copyright assigned and is placed in the Public Domain.
3  * This file is part of the mingw-w64 runtime package.
4  * No warranty is given; refer to the file DISCLAIMER.PD within this package.
5  */
6 
7 #ifndef DWRITE_1_H_INCLUDED
8 #define DWRITE_1_H_INCLUDED
9 
10 #include <dwrite.h>
11 
12 enum DWRITE_OUTLINE_THRESHOLD {
13     DWRITE_OUTLINE_THRESHOLD_ANTIALIASED,
14     DWRITE_OUTLINE_THRESHOLD_ALIASED
15 };
16 
17 enum DWRITE_BASELINE
18 {
19     DWRITE_BASELINE_DEFAULT,
20     DWRITE_BASELINE_ROMAN,
21     DWRITE_BASELINE_CENTRAL,
22     DWRITE_BASELINE_MATH,
23     DWRITE_BASELINE_HANGING,
24     DWRITE_BASELINE_IDEOGRAPHIC_BOTTOM,
25     DWRITE_BASELINE_IDEOGRAPHIC_TOP,
26     DWRITE_BASELINE_MINIMUM,
27     DWRITE_BASELINE_MAXIMUM,
28 };
29 
30 enum DWRITE_GLYPH_ORIENTATION_ANGLE
31 {
32     DWRITE_GLYPH_ORIENTATION_ANGLE_0_DEGREES,
33     DWRITE_GLYPH_ORIENTATION_ANGLE_90_DEGREES,
34     DWRITE_GLYPH_ORIENTATION_ANGLE_180_DEGREES,
35     DWRITE_GLYPH_ORIENTATION_ANGLE_270_DEGREES,
36 };
37 
38 enum DWRITE_TEXT_ANTIALIAS_MODE
39 {
40     DWRITE_TEXT_ANTIALIAS_MODE_CLEARTYPE,
41     DWRITE_TEXT_ANTIALIAS_MODE_GRAYSCALE
42 };
43 
44 enum DWRITE_VERTICAL_GLYPH_ORIENTATION
45 {
46     DWRITE_VERTICAL_GLYPH_ORIENTATION_DEFAULT,
47     DWRITE_VERTICAL_GLYPH_ORIENTATION_STACKED
48 };
49 
50 struct DWRITE_CARET_METRICS {
51     INT16 slopeRise;
52     INT16 slopeRun;
53     INT16 offset;
54 };
55 
56 struct DWRITE_UNICODE_RANGE {
57     UINT32 first;
58     UINT32 last;
59 };
60 
61 struct DWRITE_FONT_METRICS1
62 #ifdef __cplusplus
63     : public DWRITE_FONT_METRICS
64 #endif
65 {
66 #ifndef __cplusplus
67     UINT16 designUnitsPerEm;
68     UINT16 ascent;
69     UINT16 descent;
70     INT16 lineGap;
71     UINT16 capHeight;
72     UINT16 xHeight;
73     INT16 underlinePosition;
74     UINT16 underlineThickness;
75     INT16 strikethroughPosition;
76     UINT16 strikethroughThickness;
77 #endif
78     INT16 glyphBoxLeft;
79     INT16 glyphBoxTop;
80     INT16 glyphBoxRight;
81     INT16 glyphBoxBottom;
82     INT16 subscriptPositionX;
83     INT16 subscriptPositionY;
84     INT16 subscriptSizeX;
85     INT16 subscriptSizeY;
86     INT16 superscriptPositionX;
87     INT16 superscriptPositionY;
88     INT16 superscriptSizeX;
89     INT16 superscriptSizeY;
90     WINBOOL hasTypographicMetrics;
91 };
92 
93 struct DWRITE_SCRIPT_PROPERTIES
94 {
95     UINT32 isoScriptCode;
96     UINT32 isoScriptNumber;
97     UINT32 clusterLookahead;
98     UINT32 justificationCharacter;
99     UINT32 restrictCaretToClusters      : 1;
100     UINT32 usesWordDividers             : 1;
101     UINT32 isDiscreteWriting            : 1;
102     UINT32 isBlockWriting               : 1;
103     UINT32 isDistributedWithinCluster   : 1;
104     UINT32 isConnectedWriting           : 1;
105     UINT32 isCursiveWriting             : 1;
106     UINT32 reserved                     : 25;
107 };
108 
109 struct DWRITE_JUSTIFICATION_OPPORTUNITY
110 {
111     FLOAT expansionMinimum;
112     FLOAT expansionMaximum;
113     FLOAT compressionMaximum;
114     UINT32 expansionPriority         : 8;
115     UINT32 compressionPriority       : 8;
116     UINT32 allowResidualExpansion    : 1;
117     UINT32 allowResidualCompression  : 1;
118     UINT32 applyToLeadingEdge        : 1;
119     UINT32 applyToTrailingEdge       : 1;
120     UINT32 reserved                  : 12;
121 };
122 
123 union DWRITE_PANOSE {
124     UINT8 values[10];
125     UINT8 familyKind;
126     struct {
127         UINT8 familyKind;
128         UINT8 serifStyle;
129         UINT8 weight;
130         UINT8 proportion;
131         UINT8 contrast;
132         UINT8 strokeVariation;
133         UINT8 armStyle;
134         UINT8 letterform;
135         UINT8 midline;
136         UINT8 xHeight;
137     } text;
138     struct {
139         UINT8 familyKind;
140         UINT8 toolKind;
141         UINT8 weight;
142         UINT8 spacing;
143         UINT8 aspectRatio;
144         UINT8 contrast;
145         UINT8 scriptTopology;
146         UINT8 scriptForm;
147         UINT8 finials;
148         UINT8 xAscent;
149     } script;
150     struct {
151         UINT8 familyKind;
152         UINT8 decorativeClass;
153         UINT8 weight;
154         UINT8 aspect;
155         UINT8 contrast;
156         UINT8 serifVariant;
157         UINT8 fill;
158         UINT8 lining;
159         UINT8 decorativeTopology;
160         UINT8 characterRange;
161     } decorative;
162     struct {
163         UINT8 familyKind;
164         UINT8 symbolKind;
165         UINT8 weight;
166         UINT8 spacing;
167         UINT8 aspectRatioAndContrast;
168         UINT8 aspectRatio94;
169         UINT8 aspectRatio119;
170         UINT8 aspectRatio157;
171         UINT8 aspectRatio163;
172         UINT8 aspectRatio211;
173     } symbol;
174 };
175 
176 #undef  INTERFACE
177 #define INTERFACE IDWriteFont1
DECLARE_INTERFACE_(IDWriteFont1,IDWriteFont)178 DECLARE_INTERFACE_(IDWriteFont1,IDWriteFont)
179 {
180     BEGIN_INTERFACE
181 
182 #ifndef __cplusplus
183     /* IUnknown methods */
184     STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
185     STDMETHOD_(ULONG, AddRef)(THIS) PURE;
186     STDMETHOD_(ULONG, Release)(THIS) PURE;
187 
188     /* IDWriteFont methods */
189     STDMETHOD(GetFontFamily)(THIS_
190         IDWriteFontFamily **fontFamily) PURE;
191 
192     STDMETHOD_(DWRITE_FONT_WEIGHT, GetWeight)(THIS) PURE;
193     STDMETHOD_(DWRITE_FONT_STRETCH, GetStretch)(THIS) PURE;
194     STDMETHOD_(DWRITE_FONT_STYLE, GetStyle)(THIS) PURE;
195     STDMETHOD_(WINBOOL, IsSymbolFont)(THIS) PURE;
196 
197     STDMETHOD(GetFaceNames)(THIS_
198         IDWriteLocalizedStrings **names) PURE;
199 
200     STDMETHOD(GetInformationalStrings)(THIS_
201         DWRITE_INFORMATIONAL_STRING_ID informationalStringID,
202         IDWriteLocalizedStrings **informationalStrings,
203         WINBOOL *exists) PURE;
204 
205     STDMETHOD_(DWRITE_FONT_SIMULATIONS, GetSimulations)(THIS) PURE;
206 
207     STDMETHOD_(void, GetMetrics)(THIS_
208         DWRITE_FONT_METRICS *fontMetrics) PURE;
209 
210     STDMETHOD(HasCharacter)(THIS_
211         UINT32 unicodeValue,
212         WINBOOL *exists) PURE;
213 
214     STDMETHOD(CreateFontFace)(THIS_
215         IDWriteFontFace **fontFace) PURE;
216 #endif
217 
218     STDMETHOD_(void, GetMetrics)(THIS_
219         DWRITE_FONT_METRICS1 *fontMetrics) PURE;
220 
221     STDMETHOD_(void, GetPanose)(THIS_
222         DWRITE_PANOSE *panose) PURE;
223 
224     STDMETHOD(GetUnicodeRanges)(THIS_
225         UINT32 maxCount,
226         DWRITE_UNICODE_RANGE *ranges,
227         UINT32 *actualCount) PURE;
228 
229     END_INTERFACE
230 };
231 
232 __CRT_UUID_DECL(IDWriteFont1, 0xacd16696,0x8c14,0x4f5d,0x87,0x7e,0xfe,0x3f,0xc1,0xd3,0x27,0x38);
233 
234 #undef  INTERFACE
235 #define INTERFACE IDWriteFontFace1
DECLARE_INTERFACE_(IDWriteFontFace1,IDWriteFontFace)236 DECLARE_INTERFACE_(IDWriteFontFace1, IDWriteFontFace)
237 {
238     BEGIN_INTERFACE
239 
240 #ifndef __cplusplus
241     /* IUnknown methods */
242     STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
243     STDMETHOD_(ULONG, AddRef)(THIS) PURE;
244     STDMETHOD_(ULONG, Release)(THIS) PURE;
245 
246     /* IDWriteFontFace methods */
247     STDMETHOD_(DWRITE_FONT_FACE_TYPE, GetType)(THIS) PURE;
248 
249     STDMETHOD(GetFiles)(THIS_
250         UINT32 *numberOfFiles,
251         IDWriteFontFile **fontFiles) PURE;
252 
253     STDMETHOD_(UINT32, GetIndex)(THIS) PURE;
254     STDMETHOD_(DWRITE_FONT_SIMULATIONS, GetSimulations)(THIS) PURE;
255     STDMETHOD_(WINBOOL, IsSymbolFont)(THIS) PURE;
256 
257     STDMETHOD_(void, GetMetrics)(THIS_
258         DWRITE_FONT_METRICS *fontFaceMetrics) PURE;
259 
260     STDMETHOD_(UINT16, GetGlyphCount)(THIS) PURE;
261 
262     STDMETHOD(GetDesignGlyphMetrics)(THIS_
263         UINT16 const *glyphIndices,
264         UINT32 glyphCount,
265         DWRITE_GLYPH_METRICS *glyphMetrics,
266         WINBOOL isSideways __MINGW_DEF_ARG_VAL(FALSE)) PURE;
267 
268     STDMETHOD(GetGlyphIndices)(THIS_
269         UINT32 const *codePoints,
270         UINT32 codePointCount,
271         UINT16 *glyphIndices) PURE;
272 
273     STDMETHOD(TryGetFontTable)(THIS_
274         UINT32 openTypeTableTag,
275         const void **tableData,
276         UINT32 *tableSize,
277         void **tableContext,
278         WINBOOL *exists) PURE;
279 
280     STDMETHOD_(void, ReleaseFontTable)(THIS_
281         void *tableContext) PURE;
282 
283     STDMETHOD(GetGlyphRunOutline)(THIS_
284         FLOAT emSize,
285         UINT16 const *glyphIndices,
286         FLOAT const *glyphAdvances,
287         DWRITE_GLYPH_OFFSET const *glyphOffsets,
288         UINT32 glyphCount,
289         WINBOOL isSideways,
290         WINBOOL isRightToLeft,
291         IDWriteGeometrySink *geometrySink) PURE;
292 
293     STDMETHOD(GetRecommendedRenderingMode)(THIS_
294         FLOAT emSize,
295         FLOAT pixelsPerDip,
296         DWRITE_MEASURING_MODE measuringMode,
297         IDWriteRenderingParams *renderingParams,
298         DWRITE_RENDERING_MODE *renderingMode) PURE;
299 
300     STDMETHOD(GetGdiCompatibleMetrics)(THIS_
301         FLOAT emSize,
302         FLOAT pixelsPerDip,
303         DWRITE_MATRIX const *transform,
304         DWRITE_FONT_METRICS *fontFaceMetrics) PURE;
305 
306 
307     STDMETHOD(GetGdiCompatibleGlyphMetrics)(THIS_
308         FLOAT emSize,
309         FLOAT pixelsPerDip,
310         DWRITE_MATRIX const *transform,
311         WINBOOL useGdiNatural,
312         UINT16 const *glyphIndices,
313         UINT32 glyphCount,
314         DWRITE_GLYPH_METRICS *glyphMetrics,
315         WINBOOL isSideways __MINGW_DEF_ARG_VAL(FALSE)) PURE;
316 #endif
317 
318     /* IDWriteFontFace1 methods */
319     STDMETHOD_(void, GetMetrics)(THIS_ DWRITE_FONT_METRICS1*) PURE;
320     STDMETHOD(GetGdiCompatibleMetrics)(THIS_ FLOAT,FLOAT,DWRITE_MATRIX const*,DWRITE_FONT_METRICS1*) PURE;
321     STDMETHOD_(void, GetCaretMetrics)(THIS_ DWRITE_CARET_METRICS*) PURE;
322     STDMETHOD(GetUnicodeRanges)(THIS_ UINT32, DWRITE_UNICODE_RANGE*,UINT32*) PURE;
323     STDMETHOD_(BOOL, IsMonospacedFont)(THIS) PURE;
324     STDMETHOD(GetDesignGlyphAdvances)(THIS_ UINT32,UINT16 const*,INT32*,BOOL isSideways __MINGW_DEF_ARG_VAL(FALSE)) PURE;
325     STDMETHOD(GetGdiCompatibleGlyphAdvances)(THIS_ FLOAT,FLOAT,DWRITE_MATRIX const*,BOOL,BOOL,UINT32,
326             UINT16 const*,INT32*) PURE;
327     STDMETHOD(GetKerningPairAdjustments)(THIS_ UINT32,UINT16 const*,INT32*) PURE;
328     STDMETHOD_(BOOL, HasKerningPairs)(THIS);
329     STDMETHOD(GetRecommendedRenderingMode)(FLOAT,FLOAT,FLOAT,DWRITE_MATRIX const*,BOOL,
330             DWRITE_OUTLINE_THRESHOLD,DWRITE_MEASURING_MODE,DWRITE_RENDERING_MODE*) PURE;
331     STDMETHOD(GetVerticalGlyphVariants)(THIS_ UINT32,UINT16 const*,UINT16*);
332     STDMETHOD_(BOOL, HasVerticalGlyphVariants)(THIS);
333 };
334 
335 __CRT_UUID_DECL(IDWriteFontFace1, 0xa71efdb4,0x9fdb,0x4838,0xad,0x90,0xcf,0xc3,0xbe,0x8c,0x3d,0xaf);
336 
337 #undef  INTERFACE
338 #define INTERFACE IDWriteRenderingParams1
DECLARE_INTERFACE_(IDWriteRenderingParams1,IDWriteRenderingParams)339 DECLARE_INTERFACE_(IDWriteRenderingParams1,IDWriteRenderingParams)
340 {
341     BEGIN_INTERFACE
342 
343 #ifndef __cplusplus
344     /* IUnknown methods */
345     STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
346     STDMETHOD_(ULONG, AddRef)(THIS) PURE;
347     STDMETHOD_(ULONG, Release)(THIS) PURE;
348 
349     /* IDWriteRenderingParams methods */
350     STDMETHOD_(FLOAT, GetGamma)(THIS) PURE;
351     STDMETHOD_(FLOAT, GetEnhancedContrast)(THIS) PURE;
352     STDMETHOD_(FLOAT, GetClearTypeLevel)(THIS) PURE;
353     STDMETHOD_(DWRITE_PIXEL_GEOMETRY, GetPixelGeometry)(THIS) PURE;
354     STDMETHOD_(DWRITE_RENDERING_MODE, GetRenderingMode)(THIS) PURE;
355 #endif
356 
357     /* IDWriteRenderingParams1 methods */
358     STDMETHOD_(FLOAT, GetGrayscaleEnhancedContrast)(THIS) PURE;
359 
360     END_INTERFACE
361 };
362 
363 __CRT_UUID_DECL(IDWriteRenderingParams1, 0x94413cf4,0xa6fc,0x4248,0x8b,0x50,0x66,0x74,0x34,0x8f,0xca,0xd3)
364 
365 #undef  INTERFACE
366 #define INTERFACE IDWriteTextAnalysisSource1
DECLARE_INTERFACE_(IDWriteTextAnalysisSource1,IDWriteTextAnalysisSource)367 DECLARE_INTERFACE_(IDWriteTextAnalysisSource1,IDWriteTextAnalysisSource)
368 {
369     BEGIN_INTERFACE
370 
371 #ifndef __cplusplus
372     /* IUnknown methods */
373     STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
374     STDMETHOD_(ULONG, AddRef)(THIS) PURE;
375     STDMETHOD_(ULONG, Release)(THIS) PURE;
376 
377     /* IDWriteTextAnalysisSource methods */
378     STDMETHOD(GetTextAtPosition)(THIS_
379         UINT32 textPosition,
380         WCHAR const **textString,
381         UINT32 *textLength) PURE;
382 
383     STDMETHOD(GetTextBeforePosition)(THIS_
384         UINT32 textPosition,
385         WCHAR const **textString,
386         UINT32 *textLength) PURE;
387 
388     STDMETHOD_(DWRITE_READING_DIRECTION, GetParagraphReadingDirection)(THIS) PURE;
389 
390     STDMETHOD(GetLocaleName)(THIS_
391         UINT32 textPosition,
392         UINT32 *textLength,
393         WCHAR const **localeName) PURE;
394 
395     STDMETHOD(GetNumberSubstitution)(THIS_
396         UINT32 textPosition,
397         UINT32 *textLength,
398         IDWriteNumberSubstitution **numberSubstitution) PURE;
399 #endif
400 
401     STDMETHOD(GetVerticalGlyphOrientation)(THIS_
402         UINT32 textPosition,
403         UINT32 *textLength,
404         DWRITE_VERTICAL_GLYPH_ORIENTATION *orientation,
405         UINT8 *bidiLevel) PURE;
406 
407     END_INTERFACE
408 };
409 
410 __CRT_UUID_DECL(IDWriteTextAnalysisSource1, 0x639cfad8,0x0fb4,0x4b21,0xa5,0x8a,0x06,0x79,0x20,0x12,0x00,0x09);
411 
412 #undef  INTERFACE
413 #define INTERFACE IDWriteTextAnalysisSink1
DECLARE_INTERFACE_(IDWriteTextAnalysisSink1,IDWriteTextAnalysisSink)414 DECLARE_INTERFACE_(IDWriteTextAnalysisSink1,IDWriteTextAnalysisSink)
415 {
416     BEGIN_INTERFACE
417 
418 #ifndef __cplusplus
419     /* IUnknown methods */
420     STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
421     STDMETHOD_(ULONG, AddRef)(THIS) PURE;
422     STDMETHOD_(ULONG, Release)(THIS) PURE;
423 
424     /* IDWriteTextAnalysisSink methods */
425     STDMETHOD(SetScriptAnalysis)(THIS_
426             UINT32 textPosition,
427             UINT32 textLength,
428             DWRITE_SCRIPT_ANALYSIS const *scriptAnalysis) PURE;
429 
430     STDMETHOD(SetLineBreakpoints)(THIS_
431             UINT32 textPosition,
432             UINT32 textLength,
433             DWRITE_LINE_BREAKPOINT const *lineBreakpoints) PURE;
434 
435     STDMETHOD(SetBidiLevel)(THIS_
436             UINT32 textPosition,
437             UINT32 textLength,
438             UINT8 explicitLevel,
439             UINT8 resolvedLevel) PURE;
440 
441     STDMETHOD(SetNumberSubstitution)(THIS_
442             UINT32 textPosition,
443             UINT32 textLength,
444             IDWriteNumberSubstitution *numberSubstitution) PURE;
445 #endif
446 
447     /* IDWriteTextAnalysisSink1 methods */
448     STDMETHOD(SetGlyphOrientation)(THIS_
449             UINT32 textPosition,
450             UINT32 textLength,
451             DWRITE_GLYPH_ORIENTATION_ANGLE angle,
452             UINT8 adjustedBidilevel,
453             WINBOOL isSideways,
454             WINBOOL isRtl) PURE;
455 
456     END_INTERFACE
457 };
458 
459 __CRT_UUID_DECL(IDWriteTextAnalysisSink1, 0xb0d941a0,0x85e7,0x4d8b,0x9f,0xd3,0x5c,0xed,0x99,0x34,0x48,0x2a);
460 
461 #undef  INTERFACE
462 #define INTERFACE IDWriteTextAnalyzer1
DECLARE_INTERFACE_(IDWriteTextAnalyzer1,IDWriteTextAnalyzer)463 DECLARE_INTERFACE_(IDWriteTextAnalyzer1,IDWriteTextAnalyzer)
464 {
465     BEGIN_INTERFACE
466 
467 #ifndef __cplusplus
468     /* IUnknown methods */
469     STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
470     STDMETHOD_(ULONG, AddRef)(THIS) PURE;
471     STDMETHOD_(ULONG, Release)(THIS) PURE;
472 
473     /* IDWriteTextAnalyzer methods */
474     STDMETHOD(AnalyzeScript)(THIS_
475         IDWriteTextAnalysisSource* analysisSource,
476         UINT32 textPosition,
477         UINT32 textLength,
478         IDWriteTextAnalysisSink *analysisSink) PURE;
479 
480     STDMETHOD(AnalyzeBidi)(THIS_
481         IDWriteTextAnalysisSource *analysisSource,
482         UINT32 textPosition,
483         UINT32 textLength,
484         IDWriteTextAnalysisSink *analysisSink) PURE;
485 
486     STDMETHOD(AnalyzeNumberSubstitution)(THIS_
487         IDWriteTextAnalysisSource *analysisSource,
488         UINT32 textPosition,
489         UINT32 textLength,
490         IDWriteTextAnalysisSink *analysisSink) PURE;
491 
492     STDMETHOD(AnalyzeLineBreakpoints)(THIS_
493         IDWriteTextAnalysisSource *analysisSource,
494         UINT32 textPosition,
495         UINT32 textLength,
496         IDWriteTextAnalysisSink *analysisSink) PURE;
497 
498     STDMETHOD(GetGlyphs)(THIS_
499         WCHAR const *textString,
500         UINT32 textLength,
501         IDWriteFontFace *fontFace,
502         WINBOOL isSideways,
503         WINBOOL isRightToLeft,
504         DWRITE_SCRIPT_ANALYSIS const *scriptAnalysis,
505         WCHAR const *localeName,
506         IDWriteNumberSubstitution *numberSubstitution,
507         DWRITE_TYPOGRAPHIC_FEATURES const **features,
508         UINT32 const *featureRangeLengths,
509         UINT32 featureRanges,
510         UINT32 maxGlyphCount,
511         UINT16 *clusterMap,
512         DWRITE_SHAPING_TEXT_PROPERTIES *textProps,
513         UINT16 *glyphIndices,
514         DWRITE_SHAPING_GLYPH_PROPERTIES *glyphProps,
515         UINT32 *actualGlyphCount) PURE;
516 
517     STDMETHOD(GetGlyphPlacements)(THIS_
518         WCHAR const *textString,
519         UINT16 const *clusterMap,
520         DWRITE_SHAPING_TEXT_PROPERTIES *textProps,
521         UINT32 textLength,
522         UINT16 const *glyphIndices,
523         DWRITE_SHAPING_GLYPH_PROPERTIES const *glyphProps,
524         UINT32 glyphCount,
525         IDWriteFontFace *fontFace,
526         FLOAT fontEmSize,
527         WINBOOL isSideways,
528         WINBOOL isRightToLeft,
529         DWRITE_SCRIPT_ANALYSIS const *scriptAnalysis,
530         WCHAR const *localeName,
531         DWRITE_TYPOGRAPHIC_FEATURES const **features,
532         UINT32 const *featureRangeLengths,
533         UINT32 featureRanges,
534         FLOAT *glyphAdvances,
535         DWRITE_GLYPH_OFFSET *glyphOffsets) PURE;
536 
537     STDMETHOD(GetGdiCompatibleGlyphPlacements)(THIS_
538         WCHAR const *textString,
539         UINT16 const *clusterMap,
540         DWRITE_SHAPING_TEXT_PROPERTIES *textProps,
541         UINT32 textLength,
542         UINT16 const *glyphIndices,
543         DWRITE_SHAPING_GLYPH_PROPERTIES const *glyphProps,
544         UINT32 glyphCount,
545         IDWriteFontFace *fontFace,
546         FLOAT fontEmSize,
547         FLOAT pixelsPerDip,
548         DWRITE_MATRIX const *transform,
549         WINBOOL useGdiNatural,
550         WINBOOL isSideways,
551         WINBOOL isRightToLeft,
552         DWRITE_SCRIPT_ANALYSIS const* scriptAnalysis,
553         WCHAR const *localeName,
554         DWRITE_TYPOGRAPHIC_FEATURES const **features,
555         UINT32 const *featureRangeLengths,
556         UINT32 featureRanges,
557         FLOAT *glyphAdvances,
558         DWRITE_GLYPH_OFFSET *glyphOffsets) PURE;
559 #endif
560 
561     /* IDWriteTextAnalyzer1 methods */
562     STDMETHOD(ApplyCharacterSpacing)(THIS_
563         FLOAT leadingSpacing,
564         FLOAT trailingSpacing,
565         FLOAT minimumAdvanceWidth,
566         UINT32 textLength,
567         UINT32 glyphCount,
568         UINT16 const* clusterMap,
569         FLOAT const* glyphAdvances,
570         DWRITE_GLYPH_OFFSET const* glyphOffsets,
571         DWRITE_SHAPING_GLYPH_PROPERTIES const* glyphProperties,
572         FLOAT* modifiedGlyphAdvances,
573         DWRITE_GLYPH_OFFSET* modifiedGlyphOffsets) PURE;
574 
575     STDMETHOD(GetBaseline)(THIS_
576         IDWriteFontFace* fontFace,
577         DWRITE_BASELINE baseline,
578         BOOL isVertical,
579         BOOL isSimulationAllowed,
580         DWRITE_SCRIPT_ANALYSIS scriptAnalysis,
581         WCHAR const* localeName,
582         INT32* baselineCoordinate,
583         BOOL* exists
584         ) PURE;
585 
586     STDMETHOD(AnalyzeVerticalGlyphOrientation)(
587         IDWriteTextAnalysisSource1* analysisSource,
588         UINT32 textPosition,
589         UINT32 textLength,
590         IDWriteTextAnalysisSink1* analysisSink
591         ) PURE;
592 
593     STDMETHOD(GetGlyphOrientationTransform)(
594         DWRITE_GLYPH_ORIENTATION_ANGLE glyphOrientationAngle,
595         BOOL isSideways,
596         DWRITE_MATRIX* transform
597         ) PURE;
598 
599     STDMETHOD(GetScriptProperties)(
600         DWRITE_SCRIPT_ANALYSIS scriptAnalysis,
601         DWRITE_SCRIPT_PROPERTIES* scriptProperties
602         ) PURE;
603 
604     STDMETHOD(GetTextComplexity)(
605         WCHAR const* textString,
606         UINT32 textLength,
607         IDWriteFontFace* fontFace,
608         BOOL* isTextSimple,
609         UINT32* textLengthRead,
610         UINT16* glyphIndices
611         ) PURE;
612 
613     STDMETHOD(GetJustificationOpportunities)(
614         IDWriteFontFace* fontFace,
615         FLOAT fontEmSize,
616         DWRITE_SCRIPT_ANALYSIS scriptAnalysis,
617         UINT32 textLength,
618         UINT32 glyphCount,
619         WCHAR const* textString,
620         UINT16 const* clusterMap,
621         DWRITE_SHAPING_GLYPH_PROPERTIES const* glyphProperties,
622         DWRITE_JUSTIFICATION_OPPORTUNITY* justificationOpportunities
623         ) PURE;
624 
625     STDMETHOD(JustifyGlyphAdvances)(
626         FLOAT lineWidth,
627         UINT32 glyphCount,
628         DWRITE_JUSTIFICATION_OPPORTUNITY const* justificationOpportunities,
629         FLOAT const* glyphAdvances,
630         DWRITE_GLYPH_OFFSET const* glyphOffsets,
631         FLOAT* justifiedGlyphAdvances,
632         DWRITE_GLYPH_OFFSET* justifiedGlyphOffsets
633         ) PURE;
634 
635     STDMETHOD(GetJustifiedGlyphs)(
636         IDWriteFontFace* fontFace,
637         FLOAT fontEmSize,
638         DWRITE_SCRIPT_ANALYSIS scriptAnalysis,
639         UINT32 textLength,
640         UINT32 glyphCount,
641         UINT32 maxGlyphCount,
642         UINT16 const* clusterMap,
643         UINT16 const* glyphIndices,
644         FLOAT const* glyphAdvances,
645         FLOAT const* justifiedGlyphAdvances,
646         DWRITE_GLYPH_OFFSET const* justifiedGlyphOffsets,
647         DWRITE_SHAPING_GLYPH_PROPERTIES const* glyphProperties,
648         UINT32* actualGlyphCount,
649         UINT16* modifiedClusterMap,
650         UINT16* modifiedGlyphIndices,
651         FLOAT* modifiedGlyphAdvances,
652         DWRITE_GLYPH_OFFSET* modifiedGlyphOffsets
653         ) PURE;
654 
655     END_INTERFACE
656 };
657 
658 __CRT_UUID_DECL(IDWriteTextAnalyzer1, 0x80dad800,0xe21f,0x4e83,0x4e,0xce,0xbf,0xcc,0xe5,0x00,0xdb,0x7c);
659 
660 #undef  INTERFACE
661 #define INTERFACE IDWriteTextLayout1
DECLARE_INTERFACE_(IDWriteTextLayout1,IDWriteTextLayout)662 DECLARE_INTERFACE_(IDWriteTextLayout1,IDWriteTextLayout)
663 {
664     BEGIN_INTERFACE
665 
666 #ifndef __cplusplus
667     /* IUnknown methods */
668     STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
669     STDMETHOD_(ULONG, AddRef)(THIS) PURE;
670     STDMETHOD_(ULONG, Release)(THIS) PURE;
671 
672     /* IDWriteTextFormat methods */
673     STDMETHOD(SetTextAlignment)(THIS_
674             DWRITE_TEXT_ALIGNMENT textAlignment) PURE;
675     STDMETHOD(SetParagraphAlignment)(THIS_
676             DWRITE_PARAGRAPH_ALIGNMENT paragraphAlignment) PURE;
677     STDMETHOD(SetWordWrapping)(THIS_
678             DWRITE_WORD_WRAPPING wordWrapping) PURE;
679     STDMETHOD(SetReadingDirection)(THIS_
680             DWRITE_READING_DIRECTION readingDirection) PURE;
681     STDMETHOD(SetFlowDirection)(THIS_
682             DWRITE_FLOW_DIRECTION flowDirection) PURE;
683     STDMETHOD(SetIncrementalTabStop)(THIS_
684             FLOAT incrementalTabStop) PURE;
685     STDMETHOD(SetTrimming)(THIS_
686             DWRITE_TRIMMING const *trimmingOptions,
687             IDWriteInlineObject *trimmingSign) PURE;
688     STDMETHOD(SetLineSpacing)(THIS_
689             DWRITE_LINE_SPACING_METHOD lineSpacingMethod,
690             FLOAT lineSpacing,
691             FLOAT baseline) PURE;
692     STDMETHOD_(DWRITE_TEXT_ALIGNMENT, GetTextAlignment)(THIS) PURE;
693     STDMETHOD_(DWRITE_PARAGRAPH_ALIGNMENT, GetParagraphAlignment)(THIS) PURE;
694     STDMETHOD_(DWRITE_WORD_WRAPPING, GetWordWrapping)(THIS) PURE;
695     STDMETHOD_(DWRITE_READING_DIRECTION, GetReadingDirection)(THIS) PURE;
696     STDMETHOD_(DWRITE_FLOW_DIRECTION, GetFlowDirection)(THIS) PURE;
697     STDMETHOD_(FLOAT, GetIncrementalTabStop)(THIS) PURE;
698     STDMETHOD(GetTrimming)(THIS_
699             DWRITE_TRIMMING* trimmingOptions,
700             IDWriteInlineObject **trimmingSign) PURE;
701     STDMETHOD(GetLineSpacing)(THIS_
702             DWRITE_LINE_SPACING_METHOD *lineSpacingMethod,
703             FLOAT *lineSpacing,
704             FLOAT *baseline) PURE;
705     STDMETHOD(GetFontCollection)(THIS_
706             IDWriteFontCollection **fontCollection) PURE;
707     STDMETHOD_(UINT32, GetFontFamilyNameLength)(THIS) PURE;
708     STDMETHOD(GetFontFamilyName)(THIS_
709             WCHAR *fontFamilyName,
710             UINT32 nameSize) PURE;
711     STDMETHOD_(DWRITE_FONT_WEIGHT, GetFontWeight)(THIS) PURE;
712     STDMETHOD_(DWRITE_FONT_STYLE, GetFontStyle)(THIS) PURE;
713     STDMETHOD_(DWRITE_FONT_STRETCH, GetFontStretch)(THIS) PURE;
714     STDMETHOD_(FLOAT, GetFontSize)(THIS) PURE;
715     STDMETHOD_(UINT32, GetLocaleNameLength)(THIS) PURE;
716     STDMETHOD(GetLocaleName)(THIS_
717             WCHAR *localeName,
718             UINT32 nameSize) PURE;
719 
720     /* IDWriteTextLayout methods */
721     STDMETHOD(SetMaxWidth)(THIS_
722             FLOAT maxWidth) PURE;
723     STDMETHOD(SetMaxHeight)(THIS_
724             FLOAT maxHeight) PURE;
725     STDMETHOD(SetFontCollection)(THIS_
726             IDWriteFontCollection *fontCollection,
727             DWRITE_TEXT_RANGE textRange) PURE;
728     STDMETHOD(SetFontFamilyName)(THIS_
729             WCHAR const *fontFamilyName,
730             DWRITE_TEXT_RANGE textRange) PURE;
731     STDMETHOD(SetFontWeight)(THIS_
732             DWRITE_FONT_WEIGHT fontWeight,
733             DWRITE_TEXT_RANGE textRange) PURE;
734     STDMETHOD(SetFontStyle)(THIS_
735             DWRITE_FONT_STYLE fontStyle,
736             DWRITE_TEXT_RANGE textRange) PURE;
737     STDMETHOD(SetFontStretch)(THIS_
738             DWRITE_FONT_STRETCH fontStretch,
739             DWRITE_TEXT_RANGE textRange) PURE;
740     STDMETHOD(SetFontSize)(THIS_
741             FLOAT fontSize,
742             DWRITE_TEXT_RANGE textRange) PURE;
743     STDMETHOD(SetUnderline)(THIS_
744             WINBOOL hasUnderline,
745             DWRITE_TEXT_RANGE textRange) PURE;
746     STDMETHOD(SetStrikethrough)(THIS_
747             WINBOOL hasStrikethrough,
748             DWRITE_TEXT_RANGE textRange) PURE;
749     STDMETHOD(SetDrawingEffect)(THIS_
750             IUnknown *drawingEffect,
751             DWRITE_TEXT_RANGE textRange) PURE;
752     STDMETHOD(SetInlineObject)(THIS_
753             IDWriteInlineObject *inlineObject,
754             DWRITE_TEXT_RANGE textRange) PURE;
755     STDMETHOD(SetTypography)(THIS_
756             IDWriteTypography *typography,
757             DWRITE_TEXT_RANGE textRange) PURE;
758     STDMETHOD(SetLocaleName)(THIS_
759             WCHAR const *localeName,
760             DWRITE_TEXT_RANGE textRange) PURE;
761     STDMETHOD_(FLOAT, GetMaxWidth)(THIS) PURE;
762     STDMETHOD_(FLOAT, GetMaxHeight)(THIS) PURE;
763     STDMETHOD(GetFontCollection)(THIS_
764             UINT32 currentPosition,
765             IDWriteFontCollection** fontCollection,
766             DWRITE_TEXT_RANGE *textRange __MINGW_DEF_ARG_VAL(NULL)) PURE;
767     STDMETHOD(GetFontFamilyNameLength)(THIS_
768             UINT32 currentPosition,
769             UINT32 *nameLength,
770             DWRITE_TEXT_RANGE *textRange __MINGW_DEF_ARG_VAL(NULL)) PURE;
771     STDMETHOD(GetFontFamilyName)(THIS_
772             UINT32 currentPosition,
773             WCHAR *fontFamilyName,
774             UINT32 nameSize,
775             DWRITE_TEXT_RANGE *textRange __MINGW_DEF_ARG_VAL(NULL)) PURE;
776     STDMETHOD(GetFontWeight)(THIS_
777             UINT32 currentPosition,
778             DWRITE_FONT_WEIGHT *fontWeight,
779             DWRITE_TEXT_RANGE* textRange __MINGW_DEF_ARG_VAL(NULL)) PURE;
780     STDMETHOD(GetFontStyle)(THIS_
781             UINT32 currentPosition,
782             DWRITE_FONT_STYLE *fontStyle,
783             DWRITE_TEXT_RANGE *textRange __MINGW_DEF_ARG_VAL(NULL)) PURE;
784     STDMETHOD(GetFontStretch)(THIS_
785             UINT32 currentPosition,
786             DWRITE_FONT_STRETCH* fontStretch,
787             DWRITE_TEXT_RANGE *textRange __MINGW_DEF_ARG_VAL(NULL)) PURE;
788     STDMETHOD(GetFontSize)(THIS_
789             UINT32 currentPosition,
790             FLOAT *fontSize,
791             DWRITE_TEXT_RANGE *textRange __MINGW_DEF_ARG_VAL(NULL)) PURE;
792     STDMETHOD(GetUnderline)(THIS_
793             UINT32 currentPosition,
794             WINBOOL *hasUnderline,
795             DWRITE_TEXT_RANGE *textRange __MINGW_DEF_ARG_VAL(NULL)) PURE;
796     STDMETHOD(GetStrikethrough)(THIS_
797             UINT32 currentPosition,
798             WINBOOL *hasStrikethrough,
799             DWRITE_TEXT_RANGE *textRange __MINGW_DEF_ARG_VAL(NULL)) PURE;
800     STDMETHOD(GetDrawingEffect)(THIS_
801             UINT32 currentPosition,
802             IUnknown **drawingEffect,
803             DWRITE_TEXT_RANGE *textRange __MINGW_DEF_ARG_VAL(NULL)) PURE;
804     STDMETHOD(GetInlineObject)(THIS_
805             UINT32 currentPosition,
806             IDWriteInlineObject **inlineObject,
807             DWRITE_TEXT_RANGE *textRange __MINGW_DEF_ARG_VAL(NULL)) PURE;
808     STDMETHOD(GetTypography)(THIS_
809             UINT32 currentPosition,
810             IDWriteTypography **typography,
811             DWRITE_TEXT_RANGE *textRange __MINGW_DEF_ARG_VAL(NULL)) PURE;
812     STDMETHOD(GetLocaleNameLength)(THIS_
813             UINT32 currentPosition,
814             UINT32 *nameLength,
815             DWRITE_TEXT_RANGE *textRange __MINGW_DEF_ARG_VAL(NULL)) PURE;
816     STDMETHOD(GetLocaleName)(THIS_
817             UINT32 currentPosition,
818             WCHAR *localeName,
819             UINT32 nameSize,
820             DWRITE_TEXT_RANGE *textRange __MINGW_DEF_ARG_VAL(NULL)) PURE;
821     STDMETHOD(Draw)(THIS_
822             void *clientDrawingContext,
823             IDWriteTextRenderer *renderer,
824             FLOAT originX,
825             FLOAT originY) PURE;
826     STDMETHOD(GetLineMetrics)(THIS_
827             DWRITE_LINE_METRICS *lineMetrics,
828             UINT32 maxLineCount,
829             UINT32 *actualLineCount) PURE;
830     STDMETHOD(GetMetrics)(THIS_
831             DWRITE_TEXT_METRICS *textMetrics) PURE;
832     STDMETHOD(GetOverhangMetrics)(THIS_
833             DWRITE_OVERHANG_METRICS *overhangs) PURE;
834     STDMETHOD(GetClusterMetrics)(THIS_
835             DWRITE_CLUSTER_METRICS *clusterMetrics,
836             UINT32 maxClusterCount,
837             UINT32 *actualClusterCount) PURE;
838     STDMETHOD(DetermineMinWidth)(THIS_
839             FLOAT *minWidth) PURE;
840     STDMETHOD(HitTestPoint)(THIS_
841             FLOAT pointX,
842             FLOAT pointY,
843             WINBOOL *isTrailingHit,
844             WINBOOL *isInside,
845             DWRITE_HIT_TEST_METRICS *hitTestMetrics) PURE;
846     STDMETHOD(HitTestTextPosition)(THIS_
847             UINT32 textPosition,
848             WINBOOL isTrailingHit,
849             FLOAT *pointX,
850             FLOAT *pointY,
851             DWRITE_HIT_TEST_METRICS *hitTestMetrics) PURE;
852     STDMETHOD(HitTestTextRange)(THIS_
853             UINT32 textPosition,
854             UINT32 textLength,
855             FLOAT originX,
856             FLOAT originY,
857             DWRITE_HIT_TEST_METRICS *hitTestMetrics,
858             UINT32 maxHitTestMetricsCount,
859             UINT32 *actualHitTestMetricsCount) PURE;
860 #endif
861 
862     /* IDWriteTextLayout1 methods */
863     STDMETHOD(SetPairKerning)(THIS_
864             WINBOOL isPairKerningEnabled,
865             DWRITE_TEXT_RANGE textRange) PURE;
866     STDMETHOD(GetPairKerning)(THIS_
867             UINT32 position,
868             WINBOOL *isPairKerningEnabled,
869             DWRITE_TEXT_RANGE *textRange __MINGW_DEF_ARG_VAL(NULL)) PURE;
870     STDMETHOD(SetCharacterSpacing)(THIS_
871             FLOAT leadingSpacing,
872             FLOAT trailingSpacing,
873             FLOAT minimumAdvance,
874             DWRITE_TEXT_RANGE textRange) PURE;
875     STDMETHOD(GetCharacterSpacing)(THIS_
876             FLOAT *leadingSpacing,
877             FLOAT *trailingSpacing,
878             FLOAT *minimumAdvance,
879             DWRITE_TEXT_RANGE *textRange __MINGW_DEF_ARG_VAL(NULL)) PURE;
880 
881     END_INTERFACE
882 };
883 
884 __CRT_UUID_DECL(IDWriteTextLayout1, 0x9064d822,0x80a7,0x465c,0xa9,0x86,0xdf,0x65,0xf7,0x8b,0x8f,0xeb)
885 
886 #undef  INTERFACE
887 #define INTERFACE IDWriteFactory1
DECLARE_INTERFACE_(IDWriteFactory1,IDWriteFactory)888 DECLARE_INTERFACE_(IDWriteFactory1,IDWriteFactory)
889 {
890     BEGIN_INTERFACE
891 
892 #ifndef __cplusplus
893     /* IUnknown methods */
894     STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
895     STDMETHOD_(ULONG, AddRef)(THIS) PURE;
896     STDMETHOD_(ULONG, Release)(THIS) PURE;
897 
898     /* IDWriteFactory methods */
899     STDMETHOD(GetSystemFontCollection)(THIS_
900         IDWriteFontCollection **fontCollection,
901         WINBOOL checkForUpdates __MINGW_DEF_ARG_VAL(FALSE)) PURE;
902 
903     STDMETHOD(CreateCustomFontCollection)(THIS_
904         IDWriteFontCollectionLoader *collectionLoader,
905         void const *collectionKey,
906         UINT32 collectionKeySize,
907         IDWriteFontCollection **fontCollection) PURE;
908 
909     STDMETHOD(RegisterFontCollectionLoader)(THIS_
910         IDWriteFontCollectionLoader *fontCollectionLoader) PURE;
911 
912     STDMETHOD(UnregisterFontCollectionLoader)(THIS_
913         IDWriteFontCollectionLoader *fontCollectionLoader) PURE;
914 
915     STDMETHOD(CreateFontFileReference)(THIS_
916         WCHAR const *filePath,
917         FILETIME const *lastWriteTime,
918         IDWriteFontFile **fontFile) PURE;
919 
920     STDMETHOD(CreateCustomFontFileReference)(THIS_
921         void const *fontFileReferenceKey,
922         UINT32 fontFileReferenceKeySize,
923         IDWriteFontFileLoader *fontFileLoader,
924         IDWriteFontFile **fontFile) PURE;
925 
926     STDMETHOD(CreateFontFace)(THIS_
927         DWRITE_FONT_FACE_TYPE fontFaceType,
928         UINT32 numberOfFiles,
929         IDWriteFontFile *const *fontFiles,
930         UINT32 faceIndex,
931         DWRITE_FONT_SIMULATIONS fontFaceSimulationFlags,
932         IDWriteFontFace **fontFace) PURE;
933 
934     STDMETHOD(CreateRenderingParams)(THIS_
935         IDWriteRenderingParams **renderingParams) PURE;
936 
937     STDMETHOD(CreateMonitorRenderingParams)(THIS_
938         HMONITOR monitor,
939         IDWriteRenderingParams **renderingParams) PURE;
940 
941     STDMETHOD(CreateCustomRenderingParams)(THIS_
942         FLOAT gamma,
943         FLOAT enhancedContrast,
944         FLOAT clearTypeLevel,
945         DWRITE_PIXEL_GEOMETRY pixelGeometry,
946         DWRITE_RENDERING_MODE renderingMode,
947         IDWriteRenderingParams **renderingParams) PURE;
948 
949     STDMETHOD(RegisterFontFileLoader)(THIS_
950         IDWriteFontFileLoader *fontFileLoader) PURE;
951 
952     STDMETHOD(UnregisterFontFileLoader)(THIS_
953         IDWriteFontFileLoader *fontFileLoader) PURE;
954 
955     STDMETHOD(CreateTextFormat)(THIS_
956         WCHAR const *fontFamilyName,
957         IDWriteFontCollection *fontCollection,
958         DWRITE_FONT_WEIGHT fontWeight,
959         DWRITE_FONT_STYLE fontStyle,
960         DWRITE_FONT_STRETCH fontStretch,
961         FLOAT fontSize,
962         WCHAR const *localeName,
963         IDWriteTextFormat **textFormat) PURE;
964 
965     STDMETHOD(CreateTypography)(THIS_
966         IDWriteTypography **typography) PURE;
967 
968     STDMETHOD(GetGdiInterop)(THIS_
969         IDWriteGdiInterop **gdiInterop) PURE;
970 
971     STDMETHOD(CreateTextLayout)(THIS_
972         WCHAR const *string,
973         UINT32 stringLength,
974         IDWriteTextFormat *textFormat,
975         FLOAT maxWidth,
976         FLOAT maxHeight,
977         IDWriteTextLayout **textLayout) PURE;
978 
979     STDMETHOD(CreateGdiCompatibleTextLayout)(THIS_
980         WCHAR const *string,
981         UINT32 stringLength,
982         IDWriteTextFormat *textFormat,
983         FLOAT layoutWidth,
984         FLOAT layoutHeight,
985         FLOAT pixelsPerDip,
986         DWRITE_MATRIX const *transform,
987         WINBOOL useGdiNatural,
988         IDWriteTextLayout **textLayout) PURE;
989 
990     STDMETHOD(CreateEllipsisTrimmingSign)(THIS_
991         IDWriteTextFormat *textFormat,
992         IDWriteInlineObject **trimmingSign) PURE;
993 
994     STDMETHOD(CreateTextAnalyzer)(THIS_
995         IDWriteTextAnalyzer **textAnalyzer) PURE;
996 
997     STDMETHOD(CreateNumberSubstitution)(THIS_
998         DWRITE_NUMBER_SUBSTITUTION_METHOD substitutionMethod,
999         WCHAR const *localeName,
1000         WINBOOL ignoreUserOverride,
1001         IDWriteNumberSubstitution **numberSubstitution) PURE;
1002 
1003     STDMETHOD(CreateGlyphRunAnalysis)(THIS_
1004         DWRITE_GLYPH_RUN const *glyphRun,
1005         FLOAT pixelsPerDip,
1006         DWRITE_MATRIX const *transform,
1007         DWRITE_RENDERING_MODE renderingMode,
1008         DWRITE_MEASURING_MODE measuringMode,
1009         FLOAT baselineOriginX,
1010         FLOAT baselineOriginY,
1011         IDWriteGlyphRunAnalysis **glyphRunAnalysis) PURE;
1012 #endif
1013 
1014     /* IDWriteFactory1 methods */
1015     STDMETHOD(GetEudcFontCollection)(THIS_
1016         IDWriteFontCollection **fontCollection,
1017         BOOL checkForUpdates __MINGW_DEF_ARG_VAL(FALSE)) PURE;
1018 
1019     STDMETHOD(CreateCustomRenderingParams)(THIS_
1020         FLOAT gamma,
1021         FLOAT enhancedContrast,
1022         FLOAT enhancedContrastGrayscale,
1023         FLOAT clearTypeLevel,
1024         DWRITE_PIXEL_GEOMETRY pixelGeometry,
1025         DWRITE_RENDERING_MODE renderingMode,
1026         IDWriteRenderingParams1 **renderingParams) PURE;
1027 
1028 #ifdef __cplusplus
1029     using IDWriteFactory::CreateCustomRenderingParams;
1030 #endif
1031 
1032     END_INTERFACE
1033 };
1034 
1035 __CRT_UUID_DECL(IDWriteFactory1, 0x30572f99,0xdac6,0x41db,0xa1,0x6e,0x04,0x86,0x30,0x7e,0x60,0x6a)
1036 
1037 #undef  INTERFACE
1038 #define INTERFACE IDWriteBitmapRenderTarget1
DECLARE_INTERFACE_(IDWriteBitmapRenderTarget1,IDWriteBitmapRenderTarget)1039 DECLARE_INTERFACE_(IDWriteBitmapRenderTarget1,IDWriteBitmapRenderTarget)
1040 {
1041     BEGIN_INTERFACE
1042 
1043 #ifndef __cplusplus
1044     /* IUnknown methods */
1045     STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
1046     STDMETHOD_(ULONG, AddRef)(THIS) PURE;
1047     STDMETHOD_(ULONG, Release)(THIS) PURE;
1048 
1049     /* IDWriteBitmapRenderTarget methods */
1050     STDMETHOD(DrawGlyphRun)(THIS_
1051         FLOAT baselineOriginX,
1052         FLOAT baselineOriginY,
1053         DWRITE_MEASURING_MODE measuringMode,
1054         DWRITE_GLYPH_RUN const *glyphRun,
1055         IDWriteRenderingParams *renderingParams,
1056         COLORREF textColor,
1057         RECT *blackBoxRect __MINGW_DEF_ARG_VAL(NULL)) PURE;
1058 
1059     STDMETHOD_(HDC, GetMemoryDC)(THIS) PURE;
1060     STDMETHOD_(FLOAT, GetPixelsPerDip)(THIS) PURE;
1061 
1062     STDMETHOD(SetPixelsPerDip)(THIS_
1063         FLOAT pixelsPerDip) PURE;
1064 
1065     STDMETHOD(GetCurrentTransform)(THIS_
1066         DWRITE_MATRIX* transform) PURE;
1067 
1068     STDMETHOD(SetCurrentTransform)(THIS_
1069         DWRITE_MATRIX const *transform) PURE;
1070 
1071     STDMETHOD(GetSize)(THIS_
1072         SIZE *size) PURE;
1073 
1074     STDMETHOD(Resize)(THIS_
1075         UINT32 width,
1076         UINT32 height) PURE;
1077 
1078 #endif
1079 
1080     STDMETHOD_(DWRITE_TEXT_ANTIALIAS_MODE, GetTextAntialiasMode)(THIS) PURE;
1081 
1082     STDMETHOD(SetTextAntialiasMode)(THIS_
1083         DWRITE_TEXT_ANTIALIAS_MODE antialiasMode) PURE;
1084 
1085     END_INTERFACE
1086 };
1087 
1088 __CRT_UUID_DECL(IDWriteBitmapRenderTarget1, 0x791e8298,0x3ef3,0x4230,0x98,0x80,0xc9,0xbd,0xec,0xc4,0x20,0x64)
1089 
1090 #endif /* DWRITE_1_H_INCLUDED */
1091