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