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