1 module aurora.directx.dwrite.dwrite_0;
2 
3 version(Windows):
4 
5 public import std.bitmanip;
6 public import aurora.directx.com;
7 public import aurora.directx.d2d1;
8 
9 ///
10 /// Constants
11 ///
12 
13 ///
14 /// Functions
15 ///
16 
17 public extern(C) HRESULT DWriteCreateFactory(DWRITE_FACTORY_TYPE FactoryType, GUID IID, IUnknown* Factory);
18 
19 uint DWRITE_MAKE_OPENTYPE_TAG(char a, char b, char c, char d) {
20 	return ((cast(uint)(cast(ubyte)d) << 24) | (cast(uint)(cast(ubyte)c) << 16) | (cast(uint)(cast(ubyte)b) << 8) | cast(uint)(cast(ubyte)a));
21 }
22 alias DWRITE_MAKE_OPENTYPE_TAG DWRITE_MAKE_FONT_FEATURE_TAG;
23 
24 ///
25 /// Enumerations
26 ///
27 
28 public enum DWRITE_BREAK_CONDITION : int {  
29 	NEUTRAL        = 0, 
30 	CAN_BREAK      = 1, 
31 	MAY_NOT_BREAK  = 2, 
32 	MUST_BREAK     = 3,	
33 }
34 
35 public enum DWRITE_FACTORY_TYPE : int { 
36 	SHARED,
37 	ISOLATED,
38 }
39 
40 public enum DWRITE_FLOW_DIRECTION {  
41 	TOP_TO_BOTTOM, 
42 	FORWARD, 
43 	BACKWARD       = FORWARD, 
44 	LEFT_TO_RIGHT  = FORWARD, 
45 	RIGHT_TO_LEFT  = BACKWARD,		
46 }
47 
48 public enum DWRITE_FONT_FACE_TYPE : int {  
49 	CFF, 
50 	RAW_CFF, 
51 	TRUETYPE, 
52 	TRUETYPE_COLLECTION, 
53 	TYPE1, 
54 	VECTOR, 
55 	BITMAP, 
56 	UNKNOWN,	
57 }
58 
59 public enum DWRITE_FONT_FEATURE_TAG : int {  
60 	DEFAULT                           = 0x746c6664, 
61 	VERTICAL_WRITING                  = 0x74726576, 
62 	VERTICAL_ALTERNATES_AND_ROTATION  = 0x32747276, 
63 	ALTERNATIVE_FRACTIONS             = 0x63726661, 
64 	PETITE_CAPITALS_FROM_CAPITALS     = 0x63703263, 
65 	SMALL_CAPITALS_FROM_CAPITALS      = 0x63733263, 
66 	CONTEXTUAL_ALTERNATES             = 0x746c6163, 
67 	CASE_SENSITIVE_FORMS              = 0x65736163, 
68 	GLYPH_COMPOSITION_DECOMPOSITION   = 0x706d6363, 
69 	CONTEXTUAL_LIGATURES              = 0x67696c63, 
70 	CAPITAL_SPACING                   = 0x70737063, 
71 	CONTEXTUAL_SWASH                  = 0x68777363, 
72 	CURSIVE_POSITIONING               = 0x73727563, 
73 	DISCRETIONARY_LIGATURES           = 0x67696c64, 
74 	EXPERT_FORMS                      = 0x74707865, 
75 	FRACTIONS                         = 0x63617266, 
76 	FULL_WIDTH                        = 0x64697766, 
77 	HALF_FORMS                        = 0x666c6168, 
78 	HALANT_FORMS                      = 0x6e6c6168, 
79 	ALTERNATE_HALF_WIDTH              = 0x746c6168, 
80 	HISTORICAL_FORMS                  = 0x74736968, 
81 	HORIZONTAL_KANA_ALTERNATES        = 0x616e6b68, 
82 	HISTORICAL_LIGATURES              = 0x67696c68, 
83 	HALF_WIDTH                        = 0x64697768, 
84 	HOJO_KANJI_FORMS                  = 0x6f6a6f68, 
85 	JIS04_FORMS                       = 0x3430706a, 
86 	JIS78_FORMS                       = 0x3837706a, 
87 	JIS83_FORMS                       = 0x3338706a, 
88 	JIS90_FORMS                       = 0x3039706a, 
89 	KERNING                           = 0x6e72656b, 
90 	STANDARD_LIGATURES                = 0x6167696c, 
91 	LINING_FIGURES                    = 0x6d756e6c, 
92 	LOCALIZED_FORMS                   = 0x6c636f6c, 
93 	MARK_POSITIONING                  = 0x6b72616d, 
94 	MATHEMATICAL_GREEK                = 0x6b72676d, 
95 	MARK_TO_MARK_POSITIONING          = 0x6b6d6b6d, 
96 	ALTERNATE_ANNOTATION_FORMS        = 0x746c616e, 
97 	NLC_KANJI_FORMS                   = 0x6b636c6e, 
98 	OLD_STYLE_FIGURES                 = 0x6d756e6f, 
99 	ORDINALS                          = 0x6e64726f, 
100 	PROPORTIONAL_ALTERNATE_WIDTH      = 0x746c6170, 
101 	PETITE_CAPITALS                   = 0x70616370, 
102 	PROPORTIONAL_FIGURES              = 0x6d756e70, 
103 	PROPORTIONAL_WIDTHS               = 0x64697770, 
104 	QUARTER_WIDTHS                    = 0x64697771, 
105 	REQUIRED_LIGATURES                = 0x67696c72, 
106 	RUBY_NOTATION_FORMS               = 0x79627572, 
107 	STYLISTIC_ALTERNATES              = 0x746c6173, 
108 	SCIENTIFIC_INFERIORS              = 0x666e6973, 
109 	SMALL_CAPITALS                    = 0x70636d73, 
110 	SIMPLIFIED_FORMS                  = 0x6c706d73, 
111 	STYLISTIC_SET_1                   = 0x31307373, 
112 	STYLISTIC_SET_2                   = 0x32307373, 
113 	STYLISTIC_SET_3                   = 0x33307373, 
114 	STYLISTIC_SET_4                   = 0x34307373, 
115 	STYLISTIC_SET_5                   = 0x35307373, 
116 	STYLISTIC_SET_6                   = 0x36307373, 
117 	STYLISTIC_SET_7                   = 0x37307373, 
118 	STYLISTIC_SET_8                   = 0x38307373, 
119 	STYLISTIC_SET_9                   = 0x39307373, 
120 	STYLISTIC_SET_10                  = 0x30317373, 
121 	STYLISTIC_SET_11                  = 0x31317373, 
122 	STYLISTIC_SET_12                  = 0x32317373, 
123 	STYLISTIC_SET_13                  = 0x33317373, 
124 	STYLISTIC_SET_14                  = 0x34317373, 
125 	STYLISTIC_SET_15                  = 0x35317373, 
126 	STYLISTIC_SET_16                  = 0x36317373, 
127 	STYLISTIC_SET_17                  = 0x37317373, 
128 	STYLISTIC_SET_18                  = 0x38317373, 
129 	STYLISTIC_SET_19                  = 0x39317373, 
130 	STYLISTIC_SET_20                  = 0x30327373, 
131 	SUBSCRIPT                         = 0x73627573, 
132 	SUPERSCRIPT                       = 0x73707573, 
133 	SWASH                             = 0x68737773, 
134 	TITLING                           = 0x6c746974, 
135 	TRADITIONAL_NAME_FORMS            = 0x6d616e74, 
136 	TABULAR_FIGURES                   = 0x6d756e74, 
137 	TRADITIONAL_FORMS                 = 0x64617274, 
138 	THIRD_WIDTHS                      = 0x64697774, 
139 	UNICASE                           = 0x63696e75, 
140 	SLASHED_ZERO                      = 0x6f72657a,		
141 }
142 
143 public enum DWRITE_FONT_FILE_TYPE : int {  
144 	UNKNOWN, 
145 	CFF, 
146 	TRUETYPE, 
147 	TRUETYPE_COLLECTION, 
148 	TYPE1_PFM, 
149 	TYPE1_PFB, 
150 	VECTOR, 
151 	BITMAP,
152 }
153 
154 public enum DWRITE_FONT_SIMULATIONS : int {  
155 	NONE     = 0x0000, 
156 	BOLD     = 0x0001, 
157 	OBLIQUE  = 0x0002,	
158 }
159 
160 public enum DWRITE_FONT_STRETCH : int {  
161 	UNDEFINED        = 0, 
162 	ULTRA_CONDENSED  = 1, 
163 	EXTRA_CONDENSED  = 2, 
164 	CONDENSED        = 3, 
165 	SEMI_CONDENSED   = 4, 
166 	NORMAL           = 5, 
167 	MEDIUM           = 5, 
168 	SEMI_EXPANDED    = 6, 
169 	EXPANDED         = 7, 
170 	EXTRA_EXPANDED   = 8, 
171 	ULTRA_EXPANDED   = 9,	
172 }
173 
174 public enum DWRITE_FONT_STYLE : int {  
175 	NORMAL, 
176 	OBLIQUE, 
177 	ITALIC,	
178 }
179 
180 public enum DWRITE_FONT_WEIGHT : int {  
181 	THIN         = 100, 
182 	EXTRA_LIGHT  = 200, 
183 	ULTRA_LIGHT  = 200, 
184 	LIGHT        = 300, 
185 	SEMI_LIGHT   = 350, 
186 	NORMAL       = 400, 
187 	REGULAR      = 400, 
188 	MEDIUM       = 500, 
189 	DEMI_BOLD    = 600, 
190 	SEMI_BOLD    = 600, 
191 	BOLD         = 700, 
192 	EXTRA_BOLD   = 800, 
193 	ULTRA_BOLD   = 800, 
194 	BLACK        = 900, 
195 	HEAVY        = 900, 
196 	EXTRA_BLACK  = 950, 
197 	ULTRA_BLACK  = 950,	
198 }
199 
200 public enum DWRITE_INFORMATIONAL_STRING_ID : int {  
201 	NONE, 
202 	COPYRIGHT_NOTICE, 
203 	VERSION_STRINGS, 
204 	TRADEMARK, 
205 	MANUFACTURER, 
206 	DESIGNER, 
207 	DESIGNER_URL, 
208 	DESCRIPTION, 
209 	FONT_VENDOR_URL, 
210 	FULL_NAME, 
211 	LICENSE_DESCRIPTION, 
212 	LICENSE_INFO_URL, 
213 	WIN32_FAMILY_NAMES, 
214 	WIN32_SUBFAMILY_NAMES, 
215 	PREFERRED_FAMILY_NAMES, 
216 	PREFERRED_SUBFAMILY_NAMES, 
217 	SAMPLE_TEXT, 
218 	POSTSCRIPT_NAME, 
219 	POSTSCRIPT_CID_NAME,	
220 }
221 
222 public enum DWRITE_LINE_SPACING_METHOD : int {  
223 	DEFAULT, 
224 	UNIFORM,		
225 }
226 
227 public enum DWRITE_MEASURING_MODE : int {  
228 	NATURAL, 
229 	GDI_CLASSIC, 
230 	GDI_NATURAL,	
231 }
232 
233 public enum DWRITE_NUMBER_SUBSTITUTION_METHOD {  
234 	FROM_CULTURE, 
235 	CONTEXTUAL, 
236 	NONE, 
237 	NATIONAL, 
238 	TRADITIONAL,	
239 }
240 
241 public enum DWRITE_PARAGRAPH_ALIGNMENT : int {  
242 	NEAR, 
243 	FAR, 
244 	CENTER,	
245 }
246 
247 public enum DWRITE_PIXEL_GEOMETRY : int {  
248 	FLAT, 
249 	RGB, 
250 	BGR,	
251 }
252 
253 public enum DWRITE_READING_DIRECTION : int {  
254 	LEFT_TO_RIGHT, 
255 	RIGHT_TO_LEFT, 
256 	TOP_TO_BOTTOM, 
257 	BOTTOM_TO_TOP,		
258 }
259 
260 public enum DWRITE_RENDERING_MODE : int {  
261 	DEFAULT, 
262 	ALIASED, 
263 	GDI_CLASSIC, 
264 	GDI_NATURAL, 
265 	NATURAL, 
266 	NATURAL_SYMMETRIC, 
267 	CLEARTYPE_GDI_CLASSIC = GDI_CLASSIC, 
268 	CLEARTYPE_GDI_NATURAL = GDI_NATURAL, 
269 	CLEARTYPE_NATURAL = NATURAL, 
270 	CLEARTYPE_NATURAL_SYMMETRIC = NATURAL_SYMMETRIC, 
271 	OUTLINE,	
272 }
273 
274 public enum DWRITE_SCRIPT_SHAPES : int {  
275 	DEFAULT    = 0, 
276 	NO_VISUAL  = 1,	
277 }
278 
279 public enum DWRITE_TEXT_ALIGNMENT : int {  
280 	LEADING, 
281 	TRAILING, 
282 	CENTER, 
283 	JUSTIFIED,	
284 }
285 
286 public enum DWRITE_TEXTURE_TYPE : int {  
287 	DWRITE_TEXTURE_ALIASED_1x1, 
288 	DWRITE_TEXTURE_CLEARTYPE_3x1,	
289 }
290 
291 public enum DWRITE_TRIMMING_GRANULARITY : int {  
292 	NONE, 
293 	CHARACTER, 
294 	WORD,	
295 }
296 
297 public enum DWRITE_WORD_WRAPPING : int {  
298 	WRAP, 
299 	NO_WRAP, 
300 	EMERGENCY_BREAK, 
301 	WHOLE_WORD, 
302 	CHARACTER,	
303 }
304 
305 ///
306 /// Structures
307 ///
308 
309 public struct DWRITE_CLUSTER_METRICS {
310 	float  width;
311 	ushort length;
312 	mixin(bitfields!(
313 		ushort, "canWrapLineAfter", 1,
314 		ushort, "isWhitespace", 1,
315 		ushort, "isNewline", 1,
316 		ushort, "isSoftHyphen", 1,
317 		ushort, "isRightToLeft", 1,
318 		ushort, "padding", 11));
319 }
320 
321 public struct DWRITE_FONT_FEATURE {
322 	DWRITE_FONT_FEATURE_TAG nameTag;
323 	uint                  parameter;
324 }
325 
326 public struct DWRITE_FONT_METRICS {
327 	ushort designUnitsPerEm;
328 	ushort ascent;
329 	ushort descent;
330 	short  lineGap;
331 	ushort capHeight;
332 	ushort xHeight;
333 	short  underlinePosition;
334 	ushort underlineThickness;
335 	short  strikethroughPosition;
336 	ushort strikethroughThickness;
337 }
338 
339 public struct DWRITE_GLYPH_METRICS {
340 	int  leftSideBearing;
341 	uint advanceWidth;
342 	int  rightSideBearing;
343 	int  topSideBearing;
344 	uint advanceHeight;
345 	int  bottomSideBearing;
346 	int  verticalOriginY;
347 }
348 
349 public struct DWRITE_GLYPH_OFFSET {
350 	float advanceOffset;
351 	float ascenderOffset;
352 }
353 
354 public struct DWRITE_GLYPH_RUN {
355 	IDWriteFontFace fontFace;
356 	float fontEmSize;
357 	uint glyphCount;
358 	const ushort *glyphIndices;
359 	const float *glyphAdvances;
360 	const DWRITE_GLYPH_OFFSET *glyphOffsets;
361 	bool isSideways;
362 	uint bidiLevel;
363 }
364 
365 public struct DWRITE_GLYPH_RUN_DESCRIPTION {
366 	const wchar  *localeName;
367 	const wchar  *string;
368 	uint       stringLength;
369 	const short *clusterMap;
370 	uint       textPosition;
371 }
372 
373 public struct DWRITE_HIT_TEST_METRICS {
374 	uint textPosition;
375 	uint length;
376 	float  left;
377 	float  top;
378 	float  width;
379 	float  height;
380 	uint bidiLevel;
381 	bool   isText;
382 	bool   isTrimmed;
383 }
384 
385 public struct DWRITE_INLINE_OBJECT_METRICS {
386 	float width;
387 	float height;
388 	float baseline;
389 	bool  supportsSideways;
390 }
391 
392 public struct DWRITE_LINE_BREAKPOINT {
393 	mixin(bitfields!(
394 		ubyte, "breakConditionBefore", 2,
395 		ubyte, "breakConditionAfter", 2,
396 		ubyte, "isWhitespace", 1,
397 		ubyte, "isSoftHyphen", 1,
398 		ubyte, "padding", 2));
399 }
400 
401 public struct DWRITE_LINE_METRICS {
402 	uint length;
403 	uint trailingWhitespaceLength;
404 	uint newlineLength;
405 	float height;
406 	float baseline;
407 	bool   isTrimmed;
408 }
409 
410 public struct DWRITE_MATRIX {
411 	float m11;
412 	float m12;
413 	float m21;
414 	float m22;
415 	float dx;
416 	float dy;
417 }
418 
419 public struct DWRITE_OVERHANG_METRICS {
420 	float left;
421 	float top;
422 	float right;
423 	float bottom;
424 }
425 
426 public struct DWRITE_SCRIPT_ANALYSIS {
427 	ushort               script;
428 	DWRITE_SCRIPT_SHAPES shapes;
429 }
430 
431 public struct DWRITE_SHAPING_GLYPH_PROPERTIES {
432 	mixin(bitfields!(
433 		ushort, "justification", 4,
434 		ushort, "isClusterStart", 1,
435 		ushort, "isDiacritic", 1,
436 		ushort, "isZeroWidthSpace", 1,
437 		ushort, "reserved", 9));
438 }
439 
440 public struct DWRITE_SHAPING_TEXT_PROPERTIES {
441 	mixin(bitfields!(
442 		ushort, "isShapedAlone", 1,
443 		ushort, "reserved", 15));
444 }
445 
446 public struct DWRITE_STRIKETHROUGH {
447 	float                    width;
448 	float                    thickness;
449 	float                    offset;
450 	DWRITE_READING_DIRECTION readingDirection;
451 	DWRITE_FLOW_DIRECTION    flowDirection;
452 	const wchar              *localeName;
453 	DWRITE_MEASURING_MODE    measuringMode;
454 }
455 
456 public struct DWRITE_TEXT_METRICS {
457 	float left;
458 	float top;
459 	float width;
460 	float widthIncludingTrailingWhitespace;
461 	float height;
462 	float layoutWidth;
463 	float layoutHeight;
464 	uint maxBidiReorderingDepth;
465 	uint lineCount;
466 }
467 
468 public struct DWRITE_TEXT_RANGE {
469 	uint startPosition;
470 	uint length;
471 }
472 
473 public struct DWRITE_TRIMMING {
474 	DWRITE_TRIMMING_GRANULARITY granularity;
475 	uint                      delimiter;
476 	uint                      delimiterCount;
477 }
478 
479 public struct DWRITE_TYPOGRAPHIC_FEATURES {
480 	DWRITE_FONT_FEATURE *features;
481 	uint              featureCount;
482 }
483 
484 public struct DWRITE_UNDERLINE {
485 	float                    width;
486 	float                    thickness;
487 	float                    offset;
488 	float                    runHeight;
489 	DWRITE_READING_DIRECTION readingDirection;
490 	DWRITE_FLOW_DIRECTION    flowDirection;
491 	const wchar              *localeName;
492 	DWRITE_MEASURING_MODE    measuringMode;
493 }
494 
495 ///
496 /// Interfaces
497 ///
498 
499 alias ID2D1SimplifiedGeometrySink IDWriteGeometrySink;
500 
501 mixin(uuid!(IDWriteBitmapRenderTarget, "5e5a32a3-8dff-4773-9ff6-0696eab77267"));
502 public interface IDWriteBitmapRenderTarget : IUnknown
503 {
504 extern(Windows):
505 	HRESULT DrawGlyphRun(float BaselineOriginX, float BaselineOriginY, DWRITE_MEASURING_MODE MeasuringMode, const DWRITE_GLYPH_RUN* GlyphRun, IDWriteRenderingParams RenderingParams, COLORREF TextColor, RECT* BlackBoxRect);
506 	HRESULT GetCurrentTransform(DWRITE_MATRIX* Transform);
507 	HDC GetMemoryDC();
508 	float GetPixelsPerDIP();
509 	HRESULT GetSize(SIZE* Size);
510 	HRESULT Resize(uint Width, uint Height);
511 	HRESULT SetCurrentTransform(const DWRITE_MATRIX* Transform);
512 	HRESULT SetPixelsPerDIP(float PixelsPerDIP);
513 }
514 
515 mixin(uuid!(IDWriteFont, "acd16696-8c14-4f5d-877e-fe3fc1d32737"));
516 public interface IDWriteFont : IUnknown
517 {
518 extern(Windows):
519 	HRESULT CreateFontFace(IDWriteFontFace* FontFace);
520 	HRESULT GetFaceNames(IDWriteLocalizedStrings* Names);
521 	HRESULT GetFontFamily(IDWriteFontFamily* FontFamily);
522 	HRESULT GetInformationalStrings(DWRITE_INFORMATIONAL_STRING_ID InformationalStringID, IDWriteLocalizedStrings* InformationalStrings, bool* Exists);
523 	HRESULT GetMetrics(DWRITE_FONT_METRICS* FontMetrics);
524 	DWRITE_FONT_SIMULATIONS GetSimulations();
525 	DWRITE_FONT_STRETCH GetStretch();
526 	DWRITE_FONT_STYLE GetStyle();
527 	DWRITE_FONT_WEIGHT GetWeight();
528 	HRESULT HasCharacter(uint UnicodeValue, bool* Exists);
529 	bool IsSymbolFont();
530 }
531 
532 mixin(uuid!(IDWriteFontCollection, "a84cee02-3eea-4eee-a827-87c1a02a0fcc"));
533 public interface IDWriteFontCollection : IUnknown
534 {
535 extern(Windows):
536 	HRESULT FindFamilyName(const wchar* FamilyName, uint* Index, bool* Exists);
537 	HRESULT GetFontFamily(uint Index, IDWriteFontFamily* FontFamily);
538 	uint GetFontFamilyCount();
539 	HRESULT GetFontFromFontFace(IDWriteFontFace* FontFace, IDWriteFont* Font);
540 }
541 
542 mixin(uuid!(IDWriteFontCollectionLoader, "cca920e4-52f0-492b-bfa8-29c72ee0a468"));
543 public interface IDWriteFontCollectionLoader : IUnknown
544 {
545 extern(Windows):
546 	HRESULT CreateEnumeratorFromKey(IDWriteFactory Factory, const void* CollectionKey, uint CollectionKeySize, IDWriteFontFileEnumerator* FontFileEnumerator);
547 }
548 
549 mixin(uuid!(IDWriteFontFace, "5f49804d-7024-4d43-bfa9-d25984f53849"));
550 public interface IDWriteFontFace : IUnknown
551 {
552 extern(Windows):
553 	HRESULT GetDesignGlyphMetrics(const(uint*) Indices, uint Count, DWRITE_GLYPH_METRICS* Metrics, bool IsSideways);
554 	HRESULT GetFiles(uint* NumberOfFiles, IDWriteFontFile* Files = null);
555 	HRESULT GetGdiCompatibleGlyphMetrics(float EMSize, float PixelsPerDIP, const(DWRITE_MATRIX*) Transform, bool UseGDINatural, const(ushort*) Indices, uint Count, DWRITE_GLYPH_METRICS* Metrics, bool IsSideways);	
556 	HRESULT GetGdiCompatibleMetrics(float EMSize, float PixelsPerDIP, const(DWRITE_MATRIX*) Transform, DWRITE_FONT_METRICS* FontFaceMetrics);
557 	ushort GetGlyphCount();
558 	HRESULT GetGlyphRunOutline(float EMSize, ushort* Indices, float* Advances, DWRITE_GLYPH_OFFSET* Offsets, uint Count, bool IsSideways, bool RightToLeft, IDWriteGeometrySink GeometrySink);
559 	uint GetIndex();
560 	void GetMetrics(DWRITE_FONT_METRICS* FontFaceMetrics);
561 	HRESULT GetRecommendedRenderingMode(float EMSize, float PixelsPerDIP, DWRITE_MEASURING_MODE MeasuringMode, IDWriteRenderingParams RenderingParams, DWRITE_RENDERING_MODE* RenderingMode);
562 	DWRITE_FONT_SIMULATIONS GetSimulations();
563 	DWRITE_FONT_FACE_TYPE GetType();
564 	bool IsSymbolFont();
565 	void ReleaseFontTable(void* TableContext);
566 }
567 
568 mixin(uuid!(IDWriteFontFamily, "da20d8ef-812a-4c43-9802-62ec4abd7add"));
569 public interface IDWriteFontFamily : IUnknown
570 {
571 extern(Windows):
572 	HRESULT GetFamilyNames(IDWriteLocalizedStrings* Names);
573 	HRESULT GetFirstMatchingFont(DWRITE_FONT_WEIGHT Weight, DWRITE_FONT_STRETCH Stretch, DWRITE_FONT_STYLE Style, IDWriteFont* MatchingFont);
574 	HRESULT GetMatchingFonts(DWRITE_FONT_WEIGHT Weight, DWRITE_FONT_STRETCH Stretch, DWRITE_FONT_STYLE Style, IDWriteFontList* MatchingFont);
575 }
576 
577 mixin(uuid!(IDWriteFontFile, "739d886a-cef5-47dc-8769-1a8b41bebbb0"));
578 public interface IDWriteFontFile : IUnknown
579 {
580 extern(Windows):
581 	HRESULT Analyse(bool* IsSupportedFontType, DWRITE_FONT_FILE_TYPE FileType, DWRITE_FONT_FACE_TYPE FaceType, uint NumberOfFaces);
582 	HRESULT GetLoader(IDWriteFontFileLoader* Loader);
583 	HRESULT GetReferenceKey(const(void**) Key, uint KeySize);
584 }
585 
586 mixin(uuid!(IDWriteFontFileEnumerator, "72755049-5ff7-435d-8348-4be97cfa6c7c"));
587 public interface IDWriteFontFileEnumerator : IUnknown
588 {
589 extern(Windows):
590 	HRESULT GetCurrentFontFile(IDWriteFontFile* FontFile);
591 	HRESULT MoveNext(bool* HasCurrentFile);
592 }
593 
594 mixin(uuid!(IDWriteFontFileLoader, "727cad4e-d6af-4c9e-8a08-d695b11caa49"));
595 public interface IDWriteFontFileLoader : IUnknown
596 {
597 extern(Windows):
598 	HRESULT CreateStreamFromKey(const(void*) Key, uint KeySize, IDWriteFontFileStream* Stream);
599 }
600 
601 mixin(uuid!(IDWriteFontFileStream, "6d4865fe-0ab8-4d91-8f62-5dd6be34a3e0"));
602 public interface IDWriteFontFileStream : IUnknown
603 {
604 extern(Windows):
605 	HRESULT GetFileSize(ulong* Size);
606 	HRESULT GetLastWriteTime(ulong* WriteTime);
607 	HRESULT ReadFileFragment(const(void**) Start, ulong Offset, ulong Size, void** Context);
608 	HRESULT ReleaseFileFragment(void* Context);
609 }
610 
611 mixin(uuid!(IDWriteFontList, "1a0d8438-1d97-4ec1-aef9-a2fb86ed6acb"));
612 public interface IDWriteFontList : IUnknown
613 {
614 extern(Windows):
615 	HRESULT GetFont(uint Index, IDWriteFont* Font);
616 	HRESULT GetFontCollection(IDWriteFontCollection* FontCollection);
617 	uint GetFontCount();
618 }
619 
620 mixin(uuid!(IDWriteGdiInterop, "1edd9491-9853-4299-898f-6432983b6f3a"));
621 public interface IDWriteGdiInterop : IUnknown
622 {
623 extern(Windows):
624 	HRESULT ConvertFontToLOGFONT(IDWriteFont Font, LOGFONTW* LogFont, bool* IsSystemFont);
625 	HRESULT ConvertFontFaceToLOGFONT(IDWriteFontFace Font, LOGFONTW* LogFont);
626 	HRESULT CreateBitmapRenderTarget(HDC HDC, uint Width, uint Height, IDWriteBitmapRenderTarget* RenderTarget);
627 	HRESULT CreateFontFaceFromHdc(HDC HDC, IDWriteFontFace * FontFace);
628 	HRESULT CreateFontFromLOGFONT(const LOGFONTW* LogFont, IDWriteFont* Font);
629 }
630 
631 mixin(uuid!(IDWriteGlyphRunAnalysis, "7d97dbf7-e085-42d4-81e3-6a883bded118"));
632 public interface IDWriteGlyphRunAnalysis : IUnknown
633 {
634 extern(Windows):
635 	HRESULT CreateAlphaTexture(DWRITE_TEXTURE_TYPE TextureType, const RECT * TextureBounds, ubyte* AlphaValues, uint BufferSize);
636 	HRESULT GetAlphaBlendParams(IDWriteRenderingParams RenderingParams, float* BlendGamma, float* BlendEnhancedContrast, float* BlendClearTypeLevel);
637 	HRESULT GetAlphaTextureBounds(DWRITE_TEXTURE_TYPE TextureType, RECT* TextureBounds);
638 }
639 
640 mixin(uuid!(IDWriteInlineObject, "8339FDE3-106F-47ab-8373-1C6295EB10B3"));
641 public interface IDWriteInlineObject : IUnknown
642 {
643 extern(Windows):
644 	HRESULT Draw(void* ClientDrawingContext, IDWriteTextRenderer* Renderer, float OriginX, float OriginY, bool IsSideways, bool IsRightToLeft, IUnknown ClientDrawingEffect);
645 	HRESULT GetBreakConditions(DWRITE_BREAK_CONDITION* BreakConditionBefore, DWRITE_BREAK_CONDITION* BreakConditionAfter);
646 	HRESULT GetMetrics(DWRITE_INLINE_OBJECT_METRICS* Metrics);
647 	HRESULT GetOverhangMetrics(DWRITE_OVERHANG_METRICS* Overhangs);
648 }
649 
650 mixin(uuid!(IDWriteLocalFontFileLoader, "b2d9f3ec-c9fe-4a11-a2ec-d86208f7c0a2"));
651 public interface IDWriteLocalFontFileLoader : IUnknown
652 {
653 extern(Windows):
654 	HRESULT GetFilePathFromKey(const void *FontFileReferenceKey, uint FontFileReferenceKeySize, wchar *FilePath,uint FilePathSize);
655 	HRESULT GetFilePathLengthFromKey(const void *FontFileReferenceKey, uint FontFileReferenceKeySize, uint *FilePathLength);
656 	HRESULT GetLastWriteTimeFromKey(const void *FontFileReferenceKey, uint FontFileReferenceKeySize, FILETIME *LastWriteTime);
657 }
658 
659 mixin(uuid!(IDWriteLocalizedStrings, "08256209-099a-4b34-b86d-c22b110e7771"));
660 public interface IDWriteLocalizedStrings : IUnknown
661 {
662 extern(Windows):
663 	HRESULT FindLocaleName(const wchar* LocaleName, uint* Index, bool* Exists);
664 	uint GetCount();
665 	HRESULT GetLocaleName(uint Index, wchar* LocaleName, uint Size);
666 	HRESULT GetLocaleNameSize(uint Index, uint* Length);
667 	HRESULT GetString(uint Index, wchar* StringBuffer, uint Size);
668 	HRESULT GetStringLength(uint Index, uint* Length);
669 }
670 
671 mixin(uuid!(IDWriteNumberSubstitution, "14885CC9-BAB0-4f90-B6ED-5C366A2CD03D"));
672 public interface IDWriteNumberSubstitution : IUnknown
673 {
674 extern(Windows):
675 	
676 }
677 
678 mixin(uuid!(IDWritePixelSnapping, "eaf3a2da-ecf4-4d24-b644-b34f6842024b"));
679 public interface IDWritePixelSnapping : IUnknown
680 {
681 extern(Windows):
682 	HRESULT GetCurrentTransform(void* ClientDrawingContext, DWRITE_MATRIX* Transform);
683 	HRESULT GetPixelsPerDip(void* ClientDrawingContext, float* PixelsPerDip);
684 	HRESULT IsPixelSnappingEnabled(void* ClientDrawingContext, bool* IsDisabled);
685 }
686 
687 mixin(uuid!(IDWriteRenderingParams, "2f0da53a-2add-47cd-82ee-d9ec34688e75"));
688 public interface IDWriteRenderingParams : IUnknown
689 {
690 extern(Windows):
691 	float GetClearTypeLevel();
692 	float GetEnhancedContrast();
693 	float GetGamma();
694 	DWRITE_PIXEL_GEOMETRY GetPixelGeometry();
695 	DWRITE_RENDERING_MODE GetRenderingMode();
696 }
697 
698 mixin(uuid!(IDWriteTextAnalysisSink, "5810cd44-0ca0-4701-b3fa-bec5182ae4f6"));
699 public interface IDWriteTextAnalysisSink : IUnknown
700 {
701 extern(Windows):
702 	HRESULT SetBidiLevel(uint TextPosition, uint TextLength, ubyte ExplicitLevel, ubyte ResolvedLevel);
703 	HRESULT SetLineBreakpoints(uint TextPosition, uint TextLength, DWRITE_LINE_BREAKPOINT *LineBreakpoints);
704 	HRESULT SetNumberSubstitution(uint TextPosition, uint TextLength, IDWriteNumberSubstitution NumberSubstitution);
705 	HRESULT SetScriptAnalysis(uint TextPosition, uint TextLength, const DWRITE_SCRIPT_ANALYSIS *ScriptAnalysis);
706 }
707 
708 mixin(uuid!(IDWriteTextAnalysisSource, "688e1a58-5094-47c8-adc8-fbcea60ae92b"));
709 public interface IDWriteTextAnalysisSource : IUnknown
710 {
711 extern(Windows):
712 	HRESULT GetLocaleName(uint TextPosition, uint *TextLength, const wchar **LocaleName);
713 	HRESULT GetNumberSubstitution(uint TextPosition, uint *TextLength, IDWriteNumberSubstitution *NumberSubstitution);
714 	DWRITE_READING_DIRECTION GetParagraphReadingDirection();
715 	HRESULT GetTextAtPosition(uint TextPosition, const wchar **TextString, uint *TextLength);
716 	HRESULT GetTextBeforePosition(uint TextPosition, const wchar **TextString, uint *TextLength);
717 }
718 
719 mixin(uuid!(IDWriteTextAnalyzer, "b7e6163e-7f46-43b4-84b3-e4e6249c365d"));
720 public interface IDWriteTextAnalyzer : IUnknown
721 {
722 extern(Windows):
723 	HRESULT AnalyzeBidi(IDWriteTextAnalysisSource AnalysisSource, uint TextPosition, uint TextLength, IDWriteTextAnalysisSink AnalysisSink);
724 	HRESULT AnalyzeLineBreakpoints(IDWriteTextAnalysisSource AnalysisSource, uint TextPosition, uint TextLength, IDWriteTextAnalysisSink AnalysisSink);
725 	HRESULT AnalyzeNumberSubstitution(IDWriteTextAnalysisSource AnalysisSource, uint TextPosition, uint TextLength, IDWriteTextAnalysisSink AnalysisSink);
726 	HRESULT AnalyzeScript(IDWriteTextAnalysisSource AnalysisSource, uint TextPosition, uint TextLength, IDWriteTextAnalysisSink AnalysisSink);
727 	HRESULT GetGdiCompatibleGlyphPlacements(const wchar* TextString, const ushort* ClusterMap, DWRITE_SHAPING_TEXT_PROPERTIES *TextProps, uint TextLength, const ushort * GlyphIndices, const DWRITE_SHAPING_GLYPH_PROPERTIES * GlyphProps, uint GlyphCount, IDWriteFontFace FontFace, float FontEmSize, float PixelsPerDip, const DWRITE_MATRIX *Transform, bool UseGdiNatural, bool IsSideways, bool IsRightToLeft, const DWRITE_SCRIPT_ANALYSIS *ScriptAnalysis, const wchar *LocaleName, const DWRITE_TYPOGRAPHIC_FEATURES **Features, const uint *FeatureRangeLengths, uint FeatureRanges, float * GlyphAdvances, DWRITE_GLYPH_OFFSET * GlyphOffsets);
728 	HRESULT GetGlyphPlacements(const wchar* TextString, const ushort* ClusterMap, DWRITE_SHAPING_TEXT_PROPERTIES *TextProps, uint TextLength, const ushort * GlyphIndices, const DWRITE_SHAPING_GLYPH_PROPERTIES * GlyphProps, uint GlyphCount, IDWriteFontFace FontFace, float FontEmSize, bool IsSideways, bool IsRightToLeft, const DWRITE_SCRIPT_ANALYSIS *ScriptAnalysis, const wchar *LocaleName, const DWRITE_TYPOGRAPHIC_FEATURES **Features, const uint *FeatureRangeLengths, uint FeatureRanges, float *GlyphAdvances, DWRITE_GLYPH_OFFSET * GlyphOffsets);
729 	HRESULT GetGlyphs(const wchar * TextString, uint TextLength, IDWriteFontFace FontFace, bool IsSideways, bool IsRightToLeft, const DWRITE_SCRIPT_ANALYSIS * ScriptAnalysis, const wchar * LocaleName, IDWriteNumberSubstitution NumberSubstitution, const DWRITE_TYPOGRAPHIC_FEATURES **Features, const uint *FeatureRangeLengths, uint FeatureRanges, uint MaxGlyphCount, ushort *ClusterMap, DWRITE_SHAPING_TEXT_PROPERTIES *TextProps, ushort *GlyphIndices, DWRITE_SHAPING_GLYPH_PROPERTIES *GlyphProps, uint *ActualGlyphCount);
730 }
731 
732 mixin(uuid!(IDWriteTextFormat, "53737037-6d14-410b-9bfe-0b182bb70961"));
733 public interface IDWriteTextFormat : IUnknown
734 {
735 extern(Windows):
736 	DWRITE_FLOW_DIRECTION GetFlowDirection();
737 	HRESULT GetFontCollection(IDWriteFontCollection *FontCollection);
738 	HRESULT GetFontFamilyName(wchar *FontFamilyName, uint NameSize);
739 	uint GetFontFamilyNameLength();
740 	float GetFontSize();
741 	DWRITE_FONT_STRETCH GetFontStretch();
742 	DWRITE_FONT_STYLE GetFontStyle();
743 	DWRITE_FONT_WEIGHT GetFontWeight();
744 	float GetIncrementalTabStop();
745 	HRESULT GetLineSpacing(DWRITE_LINE_SPACING_METHOD *LineSpacingMethod, float *LineSpacing, float *Baseline);
746 	HRESULT GetLocaleName(wchar *LocaleName, uint NameSize);
747 	uint GetLocaleNameLength();
748 	DWRITE_PARAGRAPH_ALIGNMENT GetParagraphAlignment();
749 	DWRITE_READING_DIRECTION GetReadingDirection();
750 	DWRITE_TEXT_ALIGNMENT GetTextAlignment();
751 	HRESULT GetTrimming(DWRITE_TRIMMING *TrimmingOptions, IDWriteInlineObject *TrimmingSign);
752 	DWRITE_WORD_WRAPPING GetWordWrapping();
753 	HRESULT SetFlowDirection(DWRITE_FLOW_DIRECTION FlowDirection);
754 	HRESULT SetIncrementalTabStop(float IncrementalTabStop);
755 	HRESULT SetLineSpacing(DWRITE_LINE_SPACING_METHOD LineSpacingMethod, float LineSpacing, float Baseline);
756 	HRESULT SetParagraphAlignment(DWRITE_PARAGRAPH_ALIGNMENT ParagraphAlignment);
757 	HRESULT SetReadingDirection(DWRITE_READING_DIRECTION ReadingDirection);
758 	HRESULT SetTextAlignment(DWRITE_TEXT_ALIGNMENT TextAlignment);
759 	HRESULT SetTrimming(const DWRITE_TRIMMING *TrimmingOptions, IDWriteInlineObject TrimmingSign);
760 	HRESULT SetWordWrapping(DWRITE_WORD_WRAPPING WordWrapping);
761 }
762 
763 mixin(uuid!(IDWriteTextLayout, "53737037-6d14-410b-9bfe-0b182bb70961"));
764 public interface IDWriteTextLayout : IUnknown
765 {
766 extern(Windows):
767 	HRESULT DetermineMinWidth(float *MinWidth);
768 	HRESULT Draw(void *ClientDrawingContext, IDWriteTextRenderer Renderer, float OriginX, float OriginY);
769 	HRESULT GetClusterMetrics(DWRITE_CLUSTER_METRICS * ClusterMetrics, uint MaxClusterCount, uint *ActualClusterCount);
770 	HRESULT GetDrawingEffect(uint CurrentPosition, IUnknown *DrawingEffect, DWRITE_TEXT_RANGE * TextRange);
771 	HRESULT GetFontCollection(uint CurrentPosition, IDWriteFontCollection *FontCollection, DWRITE_TEXT_RANGE *TextRange);
772 	HRESULT GetFontFamilyName(uint CurrentPosition, wchar *FontFamilyName, uint NameSize, DWRITE_TEXT_RANGE *TextRange);
773 	HRESULT GetFontFamilyNameLength(uint CurrentPosition, uint *NameLength, DWRITE_TEXT_RANGE *TextRange);
774 	HRESULT GetFontSize(uint CurrentPosition, float *FontSize, DWRITE_TEXT_RANGE *TextRange);
775 	HRESULT GetFontStretch(uint CurrentPosition, DWRITE_FONT_STRETCH *FontStretch, DWRITE_TEXT_RANGE *TextRange);
776 	HRESULT GetFontStyle(uint CurrentPosition, DWRITE_FONT_STYLE *FontStyle, DWRITE_TEXT_RANGE *TextRange);
777 	HRESULT GetFontWeight(uint CurrentPosition, DWRITE_FONT_WEIGHT *FontWeight, DWRITE_TEXT_RANGE *TextRange);
778 	HRESULT GetInlineObject(uint CurrentPosition, IDWriteInlineObject *InlineObject, DWRITE_TEXT_RANGE *TextRange);
779 	HRESULT GetLineMetrics(DWRITE_LINE_METRICS *LineMetrics, uint MaxLineCount, uint *ActualLineCount);
780 	HRESULT GetLocaleName(uint CurrentPosition, wchar *LocaleName, uint NameSize, DWRITE_TEXT_RANGE *TextRange);
781 	HRESULT GetLocaleNameLength(uint CurrentPosition,uint *NameLength, DWRITE_TEXT_RANGE *TextRange);
782 	float GetMaxHeight();
783 	float GetMaxWidth();
784 	HRESULT GetMetrics(DWRITE_TEXT_METRICS *TextMetrics);
785 	HRESULT GetOverhangMetrics(DWRITE_OVERHANG_METRICS *Overhangs);
786 	HRESULT GetStrikethrough(uint CurrentPosition, bool *HasStrikethrough, DWRITE_TEXT_RANGE *TextRange);
787 	HRESULT GetTypography(uint CurrentPosition, IDWriteTypography *Typography, DWRITE_TEXT_RANGE *TextRange);
788 	HRESULT GetUnderline(uint CurrentPosition, bool *HasUnderline, DWRITE_TEXT_RANGE *TextRange);
789 	HRESULT HitTestPoint(float PointX, float PointY, bool *IsTrailingHit, bool *IsInside, DWRITE_HIT_TEST_METRICS *HitTestMetrics);
790 	HRESULT HitTestTextPosition(uint TextPosition, bool IsTrailingHit, float *PointX, float *PointY, DWRITE_HIT_TEST_METRICS *HitTestMetrics);
791 	HRESULT HitTestTextRange(uint TextPosition, uint TextLength, float OriginX, float OriginY, DWRITE_HIT_TEST_METRICS *HitTestMetrics, uint MaxHitTestMetricsCount, uint *ActualHitTestMetricsCount);
792 	HRESULT SetDrawingEffect(IUnknown DrawingEffect, DWRITE_TEXT_RANGE TextRange);
793 	HRESULT SetFontCollection(IDWriteFontCollection FontCollection, DWRITE_TEXT_RANGE TextRange);
794 	HRESULT SetFontFamilyName(const wchar *FontFamilyName, DWRITE_TEXT_RANGE TextRange);
795 	HRESULT SetFontSize(float FontSize, DWRITE_TEXT_RANGE TextRange);
796 	HRESULT SetFontStretch(DWRITE_FONT_STRETCH FontStretch, DWRITE_TEXT_RANGE TextRange);
797 	HRESULT SetFontStyle(DWRITE_FONT_STYLE FontStyle, DWRITE_TEXT_RANGE TextRange);
798 	HRESULT SetFontWeight(DWRITE_FONT_WEIGHT FontWeight, DWRITE_TEXT_RANGE TextRange);
799 	HRESULT SetInlineObject(IDWriteInlineObject InlineObject, DWRITE_TEXT_RANGE TextRange);
800 	HRESULT SetLocaleName(const wchar *LocaleName, DWRITE_TEXT_RANGE TextRange);
801 	HRESULT SetMaxHeight(float MaxHeight);
802 	HRESULT SetMaxWidth(float MaxWidth);
803 	HRESULT SetStrikethrough(bool HasStrikethrough, DWRITE_TEXT_RANGE TextRange);
804 	HRESULT SetTypography(IDWriteTypography Typography, DWRITE_TEXT_RANGE TextRange);
805 	HRESULT SetUnderline(bool HasUnderline, DWRITE_TEXT_RANGE TextRange);
806 }
807 
808 mixin(uuid!(IDWriteTextRenderer, "ef8a8135-5cc6-45fe-8825-c5a0724eb819"));
809 public interface IDWriteTextRenderer : IDWritePixelSnapping
810 {
811 extern(Windows):
812 	HRESULT DrawGlyphRun(void *ClientDrawingContext, float BaselineOriginX, float BaselineOriginY,DWRITE_MEASURING_MODE MeasuringMode, const DWRITE_GLYPH_RUN *GlyphRun, const DWRITE_GLYPH_RUN_DESCRIPTION *GlyphRunDescription, IUnknown ClientDrawingEffect);
813 	HRESULT DrawInlineObject(void *ClientDrawingContext, float OriginX, float OriginY, IDWriteInlineObject *InlineObject, bool IsSideways, bool IsRightToLeft, IUnknown *ClientDrawingEffect);
814 	HRESULT DrawStrikethrough(void *ClientDrawingContext, float BaselineOriginX, float BaselineOriginY, const DWRITE_STRIKETHROUGH *Strikethrough, IUnknown *ClientDrawingEffect);
815 	HRESULT DrawUnderline(void *ClientDrawingContext, float BaselineOriginX, float BaselineOriginY, const DWRITE_UNDERLINE *Underline, IUnknown *ClientDrawingEffect);
816 }
817 
818 mixin(uuid!(IDWriteTypography, "55f1112b-1dc2-4b3c-9541-f46894ed85b6"));
819 public interface IDWriteTypography : IUnknown
820 {
821 extern(Windows):
822 	HRESULT AddFontFeature(DWRITE_FONT_FEATURE FontFeature);
823 	HRESULT GetFontFeature(uint FontFeatureIndex, DWRITE_FONT_FEATURE *FontFeature);
824 	uint GetFontFeatureCount();
825 }
826 
827 mixin(uuid!(IDWriteFactory, "b859ee5a-d838-4b5b-a2e8-1adc7d93db48"));
828 public interface IDWriteFactory : IUnknown
829 {
830 extern(Windows):
831 	HRESULT CreateCustomFontCollection(IDWriteFontCollectionLoader CollectionLoader, const void *CollectionKey, uint CollectionKeySize, IDWriteFontCollection *FontCollection);
832 	HRESULT CreateCustomFontFileReference(const void *FontFileReferenceKey, uint FontFileReferenceKeySize, IDWriteFontFileLoader *FontFileLoader, IDWriteFontFile *FontFile);
833 	HRESULT CreateCustomRenderingParams(float Gamma, float EnhancedContrast, float ClearTypeLevel, DWRITE_PIXEL_GEOMETRY PixelGeometry, DWRITE_RENDERING_MODE RenderingMode, IDWriteRenderingParams *RenderingParams);
834 	HRESULT CreateEllipsisTrimmingSign(IDWriteTextFormat *TextFormat, IDWriteInlineObject *TrimmingSign);
835 	HRESULT CreateFontFace(DWRITE_FONT_FACE_TYPE FontFaceType, uint NumberOfFiles, const IDWriteFontFile FontFiles, uint FaceIndex, DWRITE_FONT_SIMULATIONS FontFaceSimulationFlags, IDWriteFontFace *FontFace);
836 	HRESULT CreateFontFileReference(const wchar *FilePath, const FILETIME *LastWriteTime, IDWriteFontFile *FontFile);
837 	HRESULT CreateGdiCompatibleTextLayout(const wchar *String, uint StringLength, IDWriteTextFormat *TextFormat, float LayoutWidth, float LayoutHeight, float PixelsPerDip, const DWRITE_MATRIX *Transform, bool UseGdiNatural, IDWriteTextLayout *TextLayout);
838 	HRESULT CreateGlyphRunAnalysis(const DWRITE_GLYPH_RUN *GlyphRun, float PixelsPerDip, const DWRITE_MATRIX * Transform, DWRITE_RENDERING_MODE RenderingMode, DWRITE_MEASURING_MODE MeasuringMode, float BaselineOriginX, float BaselineOriginY, IDWriteGlyphRunAnalysis *GlyphRunAnalysis);
839 	HRESULT CreateMonitorRenderingParams(long Monitor, IDWriteRenderingParams *RenderingParams);
840 	HRESULT CreateNumberSubstitution(DWRITE_NUMBER_SUBSTITUTION_METHOD SubstitutionMethod, const wchar *LocaleName, bool IgnoreUserOverride, IDWriteNumberSubstitution *NumberSubstitution);
841 	HRESULT CreateRenderingParams(IDWriteRenderingParams *RenderingParams);
842 	HRESULT CreateTextAnalyzer(IDWriteTextAnalyzer *TextAnalyzer);
843 	HRESULT CreateTextFormat(const wchar *FontFamilyName, IDWriteFontCollection FontCollection, DWRITE_FONT_WEIGHT FontWeight, DWRITE_FONT_STYLE FontStyle, DWRITE_FONT_STRETCH FontStretch, float FontSize, const wchar *LocaleName, IDWriteTextFormat *TextFormat);
844 	HRESULT CreateTextLayout(const wchar *String, uint StringLength, IDWriteTextFormat TextFormat, float MaxWidth, float MaxHeight, IDWriteTextLayout *TextLayout);
845 	HRESULT CreateTypography(IDWriteTypography *Typography);
846 	HRESULT GetGdiInterop(IDWriteGdiInterop *GDIInterop);
847 	HRESULT GetSystemFontCollection(IDWriteFontCollection *FontCollection, bool CheckForUpdates);
848 	HRESULT RegisterFontCollectionLoader(IDWriteFontCollectionLoader FontCollectionLoader);
849 	HRESULT RegisterFontFileLoader(IDWriteFontFileLoader FontFileLoader);
850 	HRESULT UnregisterFontCollectionLoader(IDWriteFontCollectionLoader FontCollectionLoader);
851 	HRESULT UnregisterFontFileLoader(IDWriteFontFileLoader FontFileLoader);
852 }