]> gitweb.factorcode.org Git - factor.git/blob - basis/windows/directx/dwrite/dwrite.factor
Merge branch 'master' of git://factorcode.org/git/factor
[factor.git] / basis / windows / directx / dwrite / dwrite.factor
1 USING: alien.c-types alien.syntax classes.struct windows.com
2 windows.com.syntax windows.directx.dcommon windows.kernel32
3 windows.ole32 windows.types ;
4 IN: windows.directx.dwrite
5
6 LIBRARY: dwrite
7
8 C-ENUM:
9     DWRITE_FONT_FILE_TYPE_UNKNOWN
10     DWRITE_FONT_FILE_TYPE_CFF
11     DWRITE_FONT_FILE_TYPE_TRUETYPE
12     DWRITE_FONT_FILE_TYPE_TRUETYPE_COLLECTION
13     DWRITE_FONT_FILE_TYPE_TYPE1_PFM
14     DWRITE_FONT_FILE_TYPE_TYPE1_PFB
15     DWRITE_FONT_FILE_TYPE_VECTOR
16     DWRITE_FONT_FILE_TYPE_BITMAP ;
17 TYPEDEF: int DWRITE_FONT_FILE_TYPE
18
19 C-ENUM:
20     DWRITE_FONT_FACE_TYPE_CFF
21     DWRITE_FONT_FACE_TYPE_TRUETYPE
22     DWRITE_FONT_FACE_TYPE_TRUETYPE_COLLECTION
23     DWRITE_FONT_FACE_TYPE_TYPE1
24     DWRITE_FONT_FACE_TYPE_VECTOR
25     DWRITE_FONT_FACE_TYPE_BITMAP
26     DWRITE_FONT_FACE_TYPE_UNKNOWN ;
27 TYPEDEF: int DWRITE_FONT_FACE_TYPE
28
29 CONSTANT: DWRITE_FONT_SIMULATIONS_NONE    0
30 CONSTANT: DWRITE_FONT_SIMULATIONS_BOLD    1
31 CONSTANT: DWRITE_FONT_SIMULATIONS_OBLIQUE 2
32 TYPEDEF: int DWRITE_FONT_SIMULATIONS
33
34 CONSTANT: DWRITE_FONT_WEIGHT_THIN        100
35 CONSTANT: DWRITE_FONT_WEIGHT_EXTRA_LIGHT 200
36 CONSTANT: DWRITE_FONT_WEIGHT_ULTRA_LIGHT 200
37 CONSTANT: DWRITE_FONT_WEIGHT_LIGHT       300
38 CONSTANT: DWRITE_FONT_WEIGHT_NORMAL      400
39 CONSTANT: DWRITE_FONT_WEIGHT_REGULAR     400
40 CONSTANT: DWRITE_FONT_WEIGHT_MEDIUM      500
41 CONSTANT: DWRITE_FONT_WEIGHT_DEMI_BOLD   600
42 CONSTANT: DWRITE_FONT_WEIGHT_SEMI_BOLD   600
43 CONSTANT: DWRITE_FONT_WEIGHT_BOLD        700
44 CONSTANT: DWRITE_FONT_WEIGHT_EXTRA_BOLD  800
45 CONSTANT: DWRITE_FONT_WEIGHT_ULTRA_BOLD  800
46 CONSTANT: DWRITE_FONT_WEIGHT_BLACK       900
47 CONSTANT: DWRITE_FONT_WEIGHT_HEAVY       900
48 CONSTANT: DWRITE_FONT_WEIGHT_EXTRA_BLACK 950
49 CONSTANT: DWRITE_FONT_WEIGHT_ULTRA_BLACK 950
50 TYPEDEF: int DWRITE_FONT_WEIGHT
51
52 CONSTANT: DWRITE_FONT_STRETCH_UNDEFINED       0
53 CONSTANT: DWRITE_FONT_STRETCH_ULTRA_CONDENSED 1
54 CONSTANT: DWRITE_FONT_STRETCH_EXTRA_CONDENSED 2
55 CONSTANT: DWRITE_FONT_STRETCH_CONDENSED       3
56 CONSTANT: DWRITE_FONT_STRETCH_SEMI_CONDENSED  4
57 CONSTANT: DWRITE_FONT_STRETCH_NORMAL          5
58 CONSTANT: DWRITE_FONT_STRETCH_MEDIUM          5
59 CONSTANT: DWRITE_FONT_STRETCH_SEMI_EXPANDED   6
60 CONSTANT: DWRITE_FONT_STRETCH_EXPANDED        7
61 CONSTANT: DWRITE_FONT_STRETCH_EXTRA_EXPANDED  8
62 CONSTANT: DWRITE_FONT_STRETCH_ULTRA_EXPANDED  9
63 TYPEDEF: int DWRITE_FONT_STRETCH
64
65 C-ENUM:
66     DWRITE_FONT_STYLE_NORMAL
67     DWRITE_FONT_STYLE_OBLIQUE
68     DWRITE_FONT_STYLE_ITALIC ;
69 TYPEDEF: int DWRITE_FONT_STYLE
70
71 C-ENUM:
72     DWRITE_INFORMATIONAL_STRING_NONE
73     DWRITE_INFORMATIONAL_STRING_COPYRIGHT_NOTICE
74     DWRITE_INFORMATIONAL_STRING_VERSION_STRINGS
75     DWRITE_INFORMATIONAL_STRING_TRADEMARK
76     DWRITE_INFORMATIONAL_STRING_MANUFACTURER
77     DWRITE_INFORMATIONAL_STRING_DESIGNER
78     DWRITE_INFORMATIONAL_STRING_DESIGNER_URL
79     DWRITE_INFORMATIONAL_STRING_DESCRIPTION
80     DWRITE_INFORMATIONAL_STRING_FONT_VENDOR_URL
81     DWRITE_INFORMATIONAL_STRING_LICENSE_DESCRIPTION
82     DWRITE_INFORMATIONAL_STRING_LICENSE_INFO_URL
83     DWRITE_INFORMATIONAL_STRING_WIN32_FAMILY_NAMES
84     DWRITE_INFORMATIONAL_STRING_WIN32_SUBFAMILY_NAMES
85     DWRITE_INFORMATIONAL_STRING_PREFERRED_FAMILY_NAMES
86     DWRITE_INFORMATIONAL_STRING_PREFERRED_SUBFAMILY_NAMES
87     DWRITE_INFORMATIONAL_STRING_SAMPLE_TEXT ;
88 TYPEDEF: int DWRITE_INFORMATIONAL_STRING_ID
89
90 STRUCT: DWRITE_FONT_METRICS
91     { designUnitsPerEm       USHORT }
92     { ascent                 USHORT }
93     { descent                USHORT }
94     { lineGap                SHORT  }
95     { capHeight              USHORT }
96     { xHeight                USHORT }
97     { underlinePosition      SHORT  }
98     { underlineThickness     USHORT }
99     { strikethroughPosition  SHORT  }
100     { strikethroughThickness USHORT } ;
101
102 STRUCT: DWRITE_GLYPH_METRICS
103     { leftSideBearing   INT32  }
104     { advanceWidth      UINT32 }
105     { rightSideBearing  INT32  }
106     { topSideBearing    INT32  }
107     { advanceHeight     UINT32 }
108     { bottomSideBearing INT32  }
109     { verticalOriginY   INT32  } ;
110
111 STRUCT: DWRITE_GLYPH_OFFSET
112     { advanceOffset  FLOAT }
113     { ascenderOffset FLOAT } ;
114
115 C-ENUM:
116     DWRITE_FACTORY_TYPE_SHARED
117     DWRITE_FACTORY_TYPE_ISOLATED ;
118 TYPEDEF: int DWRITE_FACTORY_TYPE
119
120 C-TYPE: IDWriteFontFileStream
121
122 COM-INTERFACE: IDWriteFontFileLoader IUnknown {727cad4e-d6af-4c9e-8a08-d695b11caa49}
123     HRESULT CreateStreamFromKey ( void* fontFileReferenceKey, UINT32 fontFileReferenceKeySize, IDWriteFontFileStream** fontFileStream ) ;
124
125 COM-INTERFACE: IDWriteLocalFontFileLoader IDWriteFontFileLoader {b2d9f3ec-c9fe-4a11-a2ec-d86208f7c0a2}
126     HRESULT GetFilePathLengthFromKey ( void* fontFileReferenceKey, UINT32 fontFileReferenceKeySize, UINT32* filePathLength )
127     HRESULT GetFilePathFromKey ( void* fontFileReferenceKey, UINT32 fontFileReferenceKeySize, WCHAR* filePath, UINT32 filePathSize )
128     HRESULT GetLastWriteTimeFromKey ( void* fontFileReferenceKey, UINT32 fontFileReferenceKeySize, FILETIME* lastWriteTime ) ;
129
130 COM-INTERFACE: IDWriteFontFileStream IUnknown {6d4865fe-0ab8-4d91-8f62-5dd6be34a3e0}
131     HRESULT ReadFileFragment ( void** fragmentStart, UINT64 fileOffset, UINT64 fragmentSize, void** fragmentContext )
132     void ReleaseFileFragment ( void* fragmentContext )
133     HRESULT GetFileSize ( UINT64* fileSize )
134     HRESULT GetLastWriteTime ( UINT64* lastWriteTime ) ;
135
136 COM-INTERFACE: IDWriteFontFile IUnknown {739d886a-cef5-47dc-8769-1a8b41bebbb0}
137     HRESULT GetReferenceKey ( void** fontFileReferenceKey, UINT32* fontFileReferenceKeySize )
138     HRESULT GetLoader ( IDWriteFontFileLoader** fontFileLoader )
139     HRESULT Analyze ( BOOL* isSupportedFontType, DWRITE_FONT_FILE_TYPE* fontFileType, DWRITE_FONT_FACE_TYPE* fontFaceType, UINT32* numberOfFaces ) ;
140
141 TYPEDEF: int DWRITE_PIXEL_GEOMETRY
142 C-ENUM:
143     DWRITE_PIXEL_GEOMETRY_FLAT
144     DWRITE_PIXEL_GEOMETRY_RGB
145     DWRITE_PIXEL_GEOMETRY_BGR ;
146
147 TYPEDEF: int DWRITE_RENDERING_MODE
148 C-ENUM:
149     DWRITE_RENDERING_MODE_DEFAULT
150     DWRITE_RENDERING_MODE_ALIASED
151     DWRITE_RENDERING_MODE_CLEARTYPE_GDI_CLASSIC
152     DWRITE_RENDERING_MODE_CLEARTYPE_GDI_NATURAL
153     DWRITE_RENDERING_MODE_CLEARTYPE_NATURAL
154     DWRITE_RENDERING_MODE_CLEARTYPE_NATURAL_SYMMETRIC
155     DWRITE_RENDERING_MODE_OUTLINE ;
156
157 STRUCT: DWRITE_MATRIX
158     { m11 FLOAT }
159     { m12 FLOAT }
160     { m21 FLOAT }
161     { m22 FLOAT }
162     { dx  FLOAT }
163     { dy  FLOAT } ;
164
165 COM-INTERFACE: IDWriteRenderingParams IUnknown {2f0da53a-2add-47cd-82ee-d9ec34688e75}
166     FLOAT GetGamma ( )
167     FLOAT GetEnhancedContrast ( )
168     FLOAT GetClearTypeLevel ( )
169     DWRITE_PIXEL_GEOMETRY GetPixelGeometry ( )
170     DWRITE_RENDERING_MODE GetRenderingMode ( ) ;
171
172 C-TYPE: ID2D1SimplifiedGeometrySink
173
174 TYPEDEF: ID2D1SimplifiedGeometrySink IDWriteGeometrySink
175
176 COM-INTERFACE: IDWriteFontFace IUnknown {5f49804d-7024-4d43-bfa9-d25984f53849}
177     DWRITE_FONT_FACE_TYPE GetType ( )
178     HRESULT GetFiles ( UINT32* numberOfFiles, IDWriteFontFile** fontFiles )
179     UINT32 GetIndex ( )
180     DWRITE_FONT_SIMULATIONS GetSimulations ( )
181     BOOL IsSymbolFont ( )
182     void GetMetrics ( DWRITE_FONT_METRICS* fontFaceMetrics )
183     USHORT GetGlyphCount ( )
184     HRESULT GetDesignGlyphMetrics ( USHORT* glyphIndices, UINT32 glyphCount, DWRITE_GLYPH_METRICS* glyphMetrics, BOOL isSideways )
185     HRESULT GetGlyphIndices ( UINT32* codePoints, UINT32 codePointCount, USHORT* glyphIndices )
186     HRESULT TryGetFontTable ( UINT32 openTypeTableTag, void** tableData, UINT32* tableSize, void** tableContext, BOOL* exists )
187     void ReleaseFontTable ( void* tableContext )
188     HRESULT GetGlyphRunOutline ( FLOAT emSize, USHORT* glyphIndices, FLOAT* glyphAdvances, DWRITE_GLYPH_OFFSET* glyphOffsets, UINT32 glyphCount, BOOL isSideways, BOOL isRightToLeft, IDWriteGeometrySink* geometrySink )
189     HRESULT GetRecommendedRenderingMode ( FLOAT emSize, FLOAT pixelsPerDip, DWRITE_MEASURING_MODE measuringMode, IDWriteRenderingParams* renderingParams, DWRITE_RENDERING_MODE* renderingMode )
190     HRESULT GetGdiCompatibleMetrics ( FLOAT emSize, FLOAT pixelsPerDip, DWRITE_MATRIX* transform, DWRITE_FONT_METRICS* fontFaceMetrics )
191     HRESULT GetGdiCompatibleGlyphMetrics ( FLOAT emSize, FLOAT pixelsPerDip, DWRITE_MATRIX* transform, BOOL useGdiNatural, USHORT* glyphIndices, UINT32 glyphCount, DWRITE_GLYPH_METRICS* glyphMetrics, BOOL isSideways ) ;
192
193 C-TYPE: IDWriteFactory
194 C-TYPE: IDWriteFontFileEnumerator
195
196 COM-INTERFACE: IDWriteFontCollectionLoader IUnknown {cca920e4-52f0-492b-bfa8-29c72ee0a468}
197     HRESULT CreateEnumeratorFromKey ( IDWriteFactory* factory, void* collectionKey, UINT32 collectionKeySize, IDWriteFontFileEnumerator** fontFileEnumerator ) ;
198
199 COM-INTERFACE: IDWriteFontFileEnumerator IUnknown {72755049-5ff7-435d-8348-4be97cfa6c7c}
200     HRESULT MoveNext ( BOOL* hasCurrentFile )
201     HRESULT GetCurrentFontFile ( IDWriteFontFile** fontFile ) ;
202
203 COM-INTERFACE: IDWriteLocalizedStrings IUnknown {08256209-099a-4b34-b86d-c22b110e7771}
204     UINT32 GetCount ( )
205     HRESULT FindLocaleName ( WCHAR* localeName, UINT32* index, BOOL* exists )
206     HRESULT GetLocaleNameLength ( UINT32 index, UINT32* length )
207     HRESULT GetLocaleName ( UINT32 index, WCHAR* localeName, UINT32 size )
208     HRESULT GetStringLength ( UINT32 index, UINT32* length )
209     HRESULT GetString ( UINT32 index, WCHAR* stringBuffer, UINT32 size ) ;
210
211 C-TYPE: IDWriteFontFamily
212 C-TYPE: IDWriteFont
213
214 COM-INTERFACE: IDWriteFontCollection IUnknown {a84cee02-3eea-4eee-a827-87c1a02a0fcc}
215     UINT32 GetFontFamilyCount ( )
216     HRESULT GetFontFamily ( UINT32 index, IDWriteFontFamily** fontFamily )
217     HRESULT FindFamilyName ( WCHAR* familyName, UINT32* index, BOOL* exists )
218     HRESULT GetFontFromFontFace ( IDWriteFontFace* fontFace, IDWriteFont** font ) ;
219
220 COM-INTERFACE: IDWriteFontList IUnknown {1a0d8438-1d97-4ec1-aef9-a2fb86ed6acb}
221     HRESULT GetFontCollection ( IDWriteFontCollection** fontCollection )
222     UINT32 GetFontCount ( )
223     HRESULT GetFont ( UINT32 index, IDWriteFont** font ) ;
224
225 COM-INTERFACE: IDWriteFontFamily IDWriteFontList {da20d8ef-812a-4c43-9802-62ec4abd7add}
226     HRESULT GetFamilyNames ( IDWriteLocalizedStrings** names )
227     HRESULT GetFirstMatchingFont ( DWRITE_FONT_WEIGHT  weight, DWRITE_FONT_STRETCH stretch, DWRITE_FONT_STYLE style, IDWriteFont** matchingFont )
228     HRESULT GetMatchingFonts ( DWRITE_FONT_WEIGHT weight, DWRITE_FONT_STRETCH stretch, DWRITE_FONT_STYLE style, IDWriteFontList** matchingFonts ) ;
229
230 COM-INTERFACE: IDWriteFont IUnknown {acd16696-8c14-4f5d-877e-fe3fc1d32737}
231     HRESULT GetFontFamily ( IDWriteFontFamily** fontFamily )
232     DWRITE_FONT_WEIGHT GetWeight ( )
233     DWRITE_FONT_STRETCH GetStretch ( )
234     DWRITE_FONT_STYLE GetStyle ( )
235     BOOL IsSymbolFont ( )
236     HRESULT GetFaceNames ( IDWriteLocalizedStrings** names )
237     HRESULT GetInformationalStrings ( DWRITE_INFORMATIONAL_STRING_ID informationalStringID, IDWriteLocalizedStrings** informationalStrings, BOOL* exists )
238     DWRITE_FONT_SIMULATIONS GetSimulations ( )
239     void GetMetrics ( DWRITE_FONT_METRICS* fontMetrics )
240     HRESULT HasCharacter ( UINT32 unicodeValue, BOOL* exists )
241     HRESULT CreateFontFace ( IDWriteFontFace** fontFace ) ;
242
243 TYPEDEF: int DWRITE_READING_DIRECTION
244 C-ENUM:
245     DWRITE_READING_DIRECTION_LEFT_TO_RIGHT
246     DWRITE_READING_DIRECTION_RIGHT_TO_LEFT ;
247
248 TYPEDEF: int DWRITE_FLOW_DIRECTION
249 C-ENUM:
250     DWRITE_FLOW_DIRECTION_TOP_TO_BOTTOM ;
251
252 TYPEDEF: int DWRITE_TEXT_ALIGNMENT
253 C-ENUM:
254     DWRITE_TEXT_ALIGNMENT_LEADING
255     DWRITE_TEXT_ALIGNMENT_TRAILING
256     DWRITE_TEXT_ALIGNMENT_CENTER ;
257
258 TYPEDEF: int DWRITE_PARAGRAPH_ALIGNMENT
259 C-ENUM:
260     DWRITE_PARAGRAPH_ALIGNMENT_NEAR
261     DWRITE_PARAGRAPH_ALIGNMENT_FAR
262     DWRITE_PARAGRAPH_ALIGNMENT_CENTER ;
263
264 TYPEDEF: int DWRITE_WORD_WRAPPING
265 C-ENUM:
266     DWRITE_WORD_WRAPPING_WRAP
267     DWRITE_WORD_WRAPPING_NO_WRAP ;
268
269 TYPEDEF: int DWRITE_LINE_SPACING_METHOD
270 C-ENUM:
271     DWRITE_LINE_SPACING_METHOD_DEFAULT
272     DWRITE_LINE_SPACING_METHOD_UNIFORM ;
273
274 TYPEDEF: int DWRITE_TRIMMING_GRANULARITY
275 C-ENUM:
276     DWRITE_TRIMMING_GRANULARITY_NONE
277     DWRITE_TRIMMING_GRANULARITY_CHARACTER
278     DWRITE_TRIMMING_GRANULARITY_WORD ;
279
280 TYPEDEF: int DWRITE_FONT_FEATURE_TAG
281 CONSTANT: DWRITE_FONT_FEATURE_TAG_ALTERNATIVE_FRACTIONS               HEX: 63726661
282 CONSTANT: DWRITE_FONT_FEATURE_TAG_PETITE_CAPITALS_FROM_CAPITALS       HEX: 63703263
283 CONSTANT: DWRITE_FONT_FEATURE_TAG_SMALL_CAPITALS_FROM_CAPITALS        HEX: 63733263
284 CONSTANT: DWRITE_FONT_FEATURE_TAG_CONTEXTUAL_ALTERNATES               HEX: 746c6163
285 CONSTANT: DWRITE_FONT_FEATURE_TAG_CASE_SENSITIVE_FORMS                HEX: 65736163
286 CONSTANT: DWRITE_FONT_FEATURE_TAG_GLYPH_COMPOSITION_DECOMPOSITION     HEX: 706d6363
287 CONSTANT: DWRITE_FONT_FEATURE_TAG_CONTEXTUAL_LIGATURES                HEX: 67696c63
288 CONSTANT: DWRITE_FONT_FEATURE_TAG_CAPITAL_SPACING                     HEX: 70737063
289 CONSTANT: DWRITE_FONT_FEATURE_TAG_CONTEXTUAL_SWASH                    HEX: 68777363
290 CONSTANT: DWRITE_FONT_FEATURE_TAG_CURSIVE_POSITIONING                 HEX: 73727563
291 CONSTANT: DWRITE_FONT_FEATURE_TAG_DEFAULT                             HEX: 746c6664
292 CONSTANT: DWRITE_FONT_FEATURE_TAG_DISCRETIONARY_LIGATURES             HEX: 67696c64
293 CONSTANT: DWRITE_FONT_FEATURE_TAG_EXPERT_FORMS                        HEX: 74707865
294 CONSTANT: DWRITE_FONT_FEATURE_TAG_FRACTIONS                           HEX: 63617266
295 CONSTANT: DWRITE_FONT_FEATURE_TAG_FULL_WIDTH                          HEX: 64697766
296 CONSTANT: DWRITE_FONT_FEATURE_TAG_HALF_FORMS                          HEX: 666c6168
297 CONSTANT: DWRITE_FONT_FEATURE_TAG_HALANT_FORMS                        HEX: 6e6c6168
298 CONSTANT: DWRITE_FONT_FEATURE_TAG_ALTERNATE_HALF_WIDTH                HEX: 746c6168
299 CONSTANT: DWRITE_FONT_FEATURE_TAG_HISTORICAL_FORMS                    HEX: 74736968
300 CONSTANT: DWRITE_FONT_FEATURE_TAG_HORIZONTAL_KANA_ALTERNATES          HEX: 616e6b68
301 CONSTANT: DWRITE_FONT_FEATURE_TAG_HISTORICAL_LIGATURES                HEX: 67696c68
302 CONSTANT: DWRITE_FONT_FEATURE_TAG_HALF_WIDTH                          HEX: 64697768
303 CONSTANT: DWRITE_FONT_FEATURE_TAG_HOJO_KANJI_FORMS                    HEX: 6f6a6f68
304 CONSTANT: DWRITE_FONT_FEATURE_TAG_JIS04_FORMS                         HEX: 3430706a
305 CONSTANT: DWRITE_FONT_FEATURE_TAG_JIS78_FORMS                         HEX: 3837706a
306 CONSTANT: DWRITE_FONT_FEATURE_TAG_JIS83_FORMS                         HEX: 3338706a
307 CONSTANT: DWRITE_FONT_FEATURE_TAG_JIS90_FORMS                         HEX: 3039706a
308 CONSTANT: DWRITE_FONT_FEATURE_TAG_KERNING                             HEX: 6e72656b
309 CONSTANT: DWRITE_FONT_FEATURE_TAG_STANDARD_LIGATURES                  HEX: 6167696c
310 CONSTANT: DWRITE_FONT_FEATURE_TAG_LINING_FIGURES                      HEX: 6d756e6c
311 CONSTANT: DWRITE_FONT_FEATURE_TAG_LOCALIZED_FORMS                     HEX: 6c636f6c
312 CONSTANT: DWRITE_FONT_FEATURE_TAG_MARK_POSITIONING                    HEX: 6b72616d
313 CONSTANT: DWRITE_FONT_FEATURE_TAG_MATHEMATICAL_GREEK                  HEX: 6b72676d
314 CONSTANT: DWRITE_FONT_FEATURE_TAG_MARK_TO_MARK_POSITIONING            HEX: 6b6d6b6d
315 CONSTANT: DWRITE_FONT_FEATURE_TAG_ALTERNATE_ANNOTATION_FORMS          HEX: 746c616e
316 CONSTANT: DWRITE_FONT_FEATURE_TAG_NLC_KANJI_FORMS                     HEX: 6b636c6e
317 CONSTANT: DWRITE_FONT_FEATURE_TAG_OLD_STYLE_FIGURES                   HEX: 6d756e6f
318 CONSTANT: DWRITE_FONT_FEATURE_TAG_ORDINALS                            HEX: 6e64726f
319 CONSTANT: DWRITE_FONT_FEATURE_TAG_PROPORTIONAL_ALTERNATE_WIDTH        HEX: 746c6170
320 CONSTANT: DWRITE_FONT_FEATURE_TAG_PETITE_CAPITALS                     HEX: 70616370
321 CONSTANT: DWRITE_FONT_FEATURE_TAG_PROPORTIONAL_FIGURES                HEX: 6d756e70
322 CONSTANT: DWRITE_FONT_FEATURE_TAG_PROPORTIONAL_WIDTHS                 HEX: 64697770
323 CONSTANT: DWRITE_FONT_FEATURE_TAG_QUARTER_WIDTHS                      HEX: 64697771
324 CONSTANT: DWRITE_FONT_FEATURE_TAG_REQUIRED_LIGATURES                  HEX: 67696c72
325 CONSTANT: DWRITE_FONT_FEATURE_TAG_RUBY_NOTATION_FORMS                 HEX: 79627572
326 CONSTANT: DWRITE_FONT_FEATURE_TAG_STYLISTIC_ALTERNATES                HEX: 746c6173
327 CONSTANT: DWRITE_FONT_FEATURE_TAG_SCIENTIFIC_INFERIORS                HEX: 666e6973
328 CONSTANT: DWRITE_FONT_FEATURE_TAG_SMALL_CAPITALS                      HEX: 70636d73
329 CONSTANT: DWRITE_FONT_FEATURE_TAG_SIMPLIFIED_FORMS                    HEX: 6c706d73
330 CONSTANT: DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_1                     HEX: 31307373
331 CONSTANT: DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_2                     HEX: 32307373
332 CONSTANT: DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_3                     HEX: 33307373
333 CONSTANT: DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_4                     HEX: 34307373
334 CONSTANT: DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_5                     HEX: 35307373
335 CONSTANT: DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_6                     HEX: 36307373
336 CONSTANT: DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_7                     HEX: 37307373
337 CONSTANT: DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_8                     HEX: 38307373
338 CONSTANT: DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_9                     HEX: 39307373
339 CONSTANT: DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_10                    HEX: 30317373
340 CONSTANT: DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_11                    HEX: 31317373
341 CONSTANT: DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_12                    HEX: 32317373
342 CONSTANT: DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_13                    HEX: 33317373
343 CONSTANT: DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_14                    HEX: 34317373
344 CONSTANT: DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_15                    HEX: 35317373
345 CONSTANT: DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_16                    HEX: 36317373
346 CONSTANT: DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_17                    HEX: 37317373
347 CONSTANT: DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_18                    HEX: 38317373
348 CONSTANT: DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_19                    HEX: 39317373
349 CONSTANT: DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_20                    HEX: 30327373
350 CONSTANT: DWRITE_FONT_FEATURE_TAG_SUBSCRIPT                           HEX: 73627573
351 CONSTANT: DWRITE_FONT_FEATURE_TAG_SUPERSCRIPT                         HEX: 73707573
352 CONSTANT: DWRITE_FONT_FEATURE_TAG_SWASH                               HEX: 68737773
353 CONSTANT: DWRITE_FONT_FEATURE_TAG_TITLING                             HEX: 6c746974
354 CONSTANT: DWRITE_FONT_FEATURE_TAG_TRADITIONAL_NAME_FORMS              HEX: 6d616e74
355 CONSTANT: DWRITE_FONT_FEATURE_TAG_TABULAR_FIGURES                     HEX: 6d756e74
356 CONSTANT: DWRITE_FONT_FEATURE_TAG_TRADITIONAL_FORMS                   HEX: 64617274
357 CONSTANT: DWRITE_FONT_FEATURE_TAG_THIRD_WIDTHS                        HEX: 64697774
358 CONSTANT: DWRITE_FONT_FEATURE_TAG_UNICASE                             HEX: 63696e75
359 CONSTANT: DWRITE_FONT_FEATURE_TAG_SLASHED_ZERO                        HEX: 6f72657a
360
361 STRUCT: DWRITE_TEXT_RANGE
362     { startPosition UINT32 }
363     { length        UINT32 } ;
364
365 STRUCT: DWRITE_FONT_FEATURE
366     { nameTag   DWRITE_FONT_FEATURE_TAG }
367     { parameter UINT32                  } ;
368
369 STRUCT: DWRITE_TYPOGRAPHIC_FEATURES
370     { features     DWRITE_FONT_FEATURE* }
371     { featureCount UINT32               } ;
372
373 STRUCT: DWRITE_TRIMMING
374     { granularity    DWRITE_TRIMMING_GRANULARITY }
375     { delimiter      UINT32                      }
376     { delimiterCount UINT32                      } ;
377
378 C-TYPE: IDWriteTypography
379 C-TYPE: IDWriteInlineObject
380
381 COM-INTERFACE: IDWriteTextFormat IUnknown {9c906818-31d7-4fd3-a151-7c5e225db55a}
382     HRESULT SetTextAlignment ( DWRITE_TEXT_ALIGNMENT textAlignment )
383     HRESULT SetParagraphAlignment ( DWRITE_PARAGRAPH_ALIGNMENT paragraphAlignment )
384     HRESULT SetWordWrapping ( DWRITE_WORD_WRAPPING wordWrapping )
385     HRESULT SetReadingDirection ( DWRITE_READING_DIRECTION readingDirection )
386     HRESULT SetFlowDirection ( DWRITE_FLOW_DIRECTION flowDirection )
387     HRESULT SetIncrementalTabStop ( FLOAT incrementalTabStop )
388     HRESULT SetTrimming ( DWRITE_TRIMMING* trimmingOptions, IDWriteInlineObject* trimmingSign )
389     HRESULT SetLineSpacing ( DWRITE_LINE_SPACING_METHOD lineSpacingMethod, FLOAT lineSpacing, FLOAT baseline )
390     DWRITE_TEXT_ALIGNMENT GetTextAlignment ( )
391     DWRITE_PARAGRAPH_ALIGNMENT GetParagraphAlignment ( )
392     DWRITE_WORD_WRAPPING GetWordWrapping ( )
393     DWRITE_READING_DIRECTION GetReadingDirection ( )
394     DWRITE_FLOW_DIRECTION GetFlowDirection ( )
395     FLOAT GetIncrementalTabStop ( )
396     HRESULT GetTrimming ( DWRITE_TRIMMING* trimmingOptions, IDWriteInlineObject** trimmingSign )
397     HRESULT GetLineSpacing ( DWRITE_LINE_SPACING_METHOD* lineSpacingMethod, FLOAT* lineSpacing, FLOAT* baseline )
398     HRESULT GetFontCollection ( IDWriteFontCollection** fontCollection )
399     UINT32 GetFontFamilyNameLength ( )
400     HRESULT GetFontFamilyName ( WCHAR* fontFamilyName, UINT32 nameSize )
401     DWRITE_FONT_WEIGHT GetFontWeight ( )
402     DWRITE_FONT_STYLE GetFontStyle ( )
403     DWRITE_FONT_STRETCH GetFontStretch ( )
404     FLOAT GetFontSize ( )
405     UINT32 GetLocaleNameLength ( )
406     HRESULT GetLocaleName ( WCHAR* localeName, UINT32 nameSize ) ;
407
408 COM-INTERFACE: IDWriteTypography IUnknown {55f1112b-1dc2-4b3c-9541-f46894ed85b6}
409     HRESULT AddFontFeature ( DWRITE_FONT_FEATURE fontFeature )
410     UINT32 GetFontFeatureCount ( )
411     HRESULT GetFontFeature ( UINT32 fontFeatureIndex, DWRITE_FONT_FEATURE* fontFeature ) ;
412
413 CONSTANT: DWRITE_SCRIPT_SHAPES_DEFAULT   0
414 CONSTANT: DWRITE_SCRIPT_SHAPES_NO_VISUAL 1
415 TYPEDEF: int DWRITE_SCRIPT_SHAPES
416
417 STRUCT: DWRITE_SCRIPT_ANALYSIS
418     { script USHORT               }
419     { shapes DWRITE_SCRIPT_SHAPES } ;
420
421 C-ENUM:
422     DWRITE_BREAK_CONDITION_NEUTRAL
423     DWRITE_BREAK_CONDITION_CAN_BREAK
424     DWRITE_BREAK_CONDITION_MAY_NOT_BREAK
425     DWRITE_BREAK_CONDITION_MUST_BREAK ;
426 TYPEDEF: int DWRITE_BREAK_CONDITION
427
428 STRUCT: DWRITE_LINE_BREAKPOINT
429     { data BYTE } ;
430
431 C-ENUM:
432     DWRITE_NUMBER_SUBSTITUTION_METHOD_FROM_CULTURE
433     DWRITE_NUMBER_SUBSTITUTION_METHOD_CONTEXTUAL
434     DWRITE_NUMBER_SUBSTITUTION_METHOD_NONE
435     DWRITE_NUMBER_SUBSTITUTION_METHOD_NATIONAL
436     DWRITE_NUMBER_SUBSTITUTION_METHOD_TRADITIONAL ;
437 TYPEDEF: int DWRITE_NUMBER_SUBSTITUTION_METHOD
438
439 COM-INTERFACE: IDWriteNumberSubstitution IUnknown {14885CC9-BAB0-4f90-B6ED-5C366A2CD03D} ;
440
441 STRUCT: DWRITE_SHAPING_TEXT_PROPERTIES
442     { data USHORT } ;
443
444 STRUCT: DWRITE_SHAPING_GLYPH_PROPERTIES
445     { data USHORT } ;
446
447 COM-INTERFACE: IDWriteTextAnalysisSource IUnknown {688e1a58-5094-47c8-adc8-fbcea60ae92b}
448     HRESULT GetTextAtPosition ( UINT32 textPosition, WCHAR** textString, UINT32* textLength )
449     HRESULT GetTextBeforePosition ( UINT32 textPosition, WCHAR** textString, UINT32* textLength )
450     DWRITE_READING_DIRECTION GetParagraphReadingDirection ( )
451     HRESULT GetLocaleName ( UINT32 textPosition, UINT32* textLength, WCHAR** localeName )
452     HRESULT GetNumberSubstitution ( UINT32 textPosition, UINT32* textLength, IDWriteNumberSubstitution** numberSubstitution ) ;
453
454 COM-INTERFACE: IDWriteTextAnalysisSink IUnknown {5810cd44-0ca0-4701-b3fa-bec5182ae4f6}
455     HRESULT SetScriptAnalysis ( UINT32 textPosition, UINT32 textLength, DWRITE_SCRIPT_ANALYSIS* scriptAnalysis )
456     HRESULT SetLineBreakpoints ( UINT32 textPosition, UINT32 textLength, DWRITE_LINE_BREAKPOINT* lineBreakpoints )
457     HRESULT SetBidiLevel ( UINT32 textPosition, UINT32 textLength, BYTE explicitLevel, BYTE resolvedLevel )
458     HRESULT SetNumberSubstitution ( UINT32 textPosition, UINT32 textLength, IDWriteNumberSubstitution* numberSubstitution ) ;
459
460 COM-INTERFACE: IDWriteTextAnalyzer IUnknown {b7e6163e-7f46-43b4-84b3-e4e6249c365d}
461     HRESULT AnalyzeScript ( IDWriteTextAnalysisSource* analysisSource, UINT32 textPosition, UINT32 textLength, IDWriteTextAnalysisSink* analysisSink )
462     HRESULT AnalyzeBidi ( IDWriteTextAnalysisSource* analysisSource, UINT32 textPosition, UINT32 textLength, IDWriteTextAnalysisSink* analysisSink )
463     HRESULT AnalyzeNumberSubstitution ( IDWriteTextAnalysisSource* analysisSource, UINT32 textPosition, UINT32 textLength, IDWriteTextAnalysisSink* analysisSink )
464     HRESULT AnalyzeLineBreakpoints ( IDWriteTextAnalysisSource* analysisSource, UINT32 textPosition, UINT32 textLength, IDWriteTextAnalysisSink* analysisSink )
465     HRESULT GetGlyphs ( WCHAR* textString, UINT32 textLength, IDWriteFontFace* fontFace, BOOL isSideways, BOOL isRightToLeft, DWRITE_SCRIPT_ANALYSIS* scriptAnalysis, WCHAR* localeName, IDWriteNumberSubstitution* numberSubstitution, DWRITE_TYPOGRAPHIC_FEATURES** features, UINT32* featureRangeLengths, UINT32 featureRanges, UINT32 maxGlyphCount, USHORT* clusterMap, DWRITE_SHAPING_TEXT_PROPERTIES* textProps, USHORT* glyphIndices, DWRITE_SHAPING_GLYPH_PROPERTIES* glyphProps, UINT32* actualGlyphCount )
466     HRESULT GetGlyphPlacements ( WCHAR* textString, USHORT* clusterMap, DWRITE_SHAPING_TEXT_PROPERTIES* textProps, UINT32 textLength, USHORT* glyphIndices, DWRITE_SHAPING_GLYPH_PROPERTIES* glyphProps, UINT32 glyphCount, IDWriteFontFace* fontFace, FLOAT fontEmSize, BOOL isSideways, BOOL isRightToLeft, DWRITE_SCRIPT_ANALYSIS* scriptAnalysis, WCHAR* localeName, DWRITE_TYPOGRAPHIC_FEATURES** features, UINT32* featureRangeLengths, UINT32 featureRanges, FLOAT* glyphAdvances, DWRITE_GLYPH_OFFSET* glyphOffsets )
467     HRESULT GetGdiCompatibleGlyphPlacements ( WCHAR* textString, USHORT* clusterMap, DWRITE_SHAPING_TEXT_PROPERTIES* textProps, UINT32 textLength, USHORT* glyphIndices, DWRITE_SHAPING_GLYPH_PROPERTIES* glyphProps, UINT32 glyphCount, IDWriteFontFace* fontFace, FLOAT fontEmSize, FLOAT pixelsPerDip, DWRITE_MATRIX* transform, BOOL useGdiNatural, BOOL isSideways, BOOL isRightToLeft, DWRITE_SCRIPT_ANALYSIS* scriptAnalysis, WCHAR* localeName, DWRITE_TYPOGRAPHIC_FEATURES** features, UINT32* featureRangeLengths, UINT32 featureRanges, FLOAT* glyphAdvances, DWRITE_GLYPH_OFFSET* glyphOffsets ) ;
468
469 STRUCT: DWRITE_GLYPH_RUN
470     { fontFace      IDWriteFontFace*     }
471     { fontEmSize    FLOAT                }
472     { glyphCount    UINT32               }
473     { glyphIndices  USHORT*              }
474     { glyphAdvances FLOAT*               }
475     { glyphOffsets  DWRITE_GLYPH_OFFSET* }
476     { isSideways    BOOL                 }
477     { bidiLevel     UINT32               } ;
478
479 STRUCT: DWRITE_GLYPH_RUN_DESCRIPTION
480     { localeName   WCHAR*  }
481     { string       WCHAR*  }
482     { stringLength UINT32  }
483     { clusterMap   USHORT* }
484     { textPosition UINT32  } ;
485
486 STRUCT: DWRITE_UNDERLINE
487     { width            FLOAT                    }
488     { thickness        FLOAT                    }
489     { offset           FLOAT                    }
490     { runHeight        FLOAT                    }
491     { readingDirection DWRITE_READING_DIRECTION }
492     { flowDirection    DWRITE_FLOW_DIRECTION    }
493     { localeName       WCHAR*                   }
494     { measuringMode    DWRITE_MEASURING_MODE    } ;
495
496 STRUCT: DWRITE_STRIKETHROUGH
497     { width            FLOAT                    }
498     { thickness        FLOAT                    }
499     { offset           FLOAT                    }
500     { readingDirection DWRITE_READING_DIRECTION }
501     { flowDirection    DWRITE_FLOW_DIRECTION    }
502     { localeName       WCHAR*                   }
503     { measuringMode    DWRITE_MEASURING_MODE    } ;
504
505 STRUCT: DWRITE_LINE_METRICS
506     { length                   UINT32 }
507     { trailingWhitespaceLength UINT32 }
508     { newlineLength            UINT32 }
509     { height                   FLOAT  }
510     { baseline                 FLOAT  }
511     { isTrimmed                BOOL   } ;
512
513 STRUCT: DWRITE_CLUSTER_METRICS
514     { width  FLOAT  } 
515     { length USHORT }
516     { data   USHORT } ;
517
518 STRUCT: DWRITE_TEXT_METRICS
519     { left                             FLOAT  }
520     { top                              FLOAT  }
521     { width                            FLOAT  }
522     { widthIncludingTrailingWhitespace FLOAT  }
523     { height                           FLOAT  }
524     { layoutWidth                      FLOAT  }
525     { layoutHeight                     FLOAT  }
526     { maxBidiReorderingDepth           UINT32 }
527     { lineCount                        UINT32 } ;
528
529 STRUCT: DWRITE_INLINE_OBJECT_METRICS
530     { width             FLOAT }
531     { height            FLOAT }
532     { baseline          FLOAT }
533     { supportsSideways  BOOL  } ;
534
535 STRUCT: DWRITE_OVERHANG_METRICS
536     { left   FLOAT }
537     { top    FLOAT }
538     { right  FLOAT }
539     { bottom FLOAT } ;
540
541 STRUCT: DWRITE_HIT_TEST_METRICS
542     { textPosition UINT32 }
543     { length       UINT32 }
544     { left         FLOAT  }
545     { top          FLOAT  }
546     { width        FLOAT  }
547     { height       FLOAT  }
548     { bidiLevel    UINT32 }
549     { isText       BOOL   }
550     { isTrimmed    BOOL   } ;
551
552 C-TYPE: IDWriteTextRenderer
553
554 COM-INTERFACE: IDWriteInlineObject IUnknown {8339FDE3-106F-47ab-8373-1C6295EB10B3}
555     HRESULT Draw ( void* clientDrawingContext, IDWriteTextRenderer* renderer, FLOAT originX, FLOAT originY, BOOL isSideways, BOOL isRightToLeft, IUnknown* clientDrawingEffect )
556     HRESULT GetMetrics ( DWRITE_INLINE_OBJECT_METRICS* metrics )
557     HRESULT GetOverhangMetrics ( DWRITE_OVERHANG_METRICS* overhangs )
558     HRESULT GetBreakConditions ( DWRITE_BREAK_CONDITION* breakConditionBefore, DWRITE_BREAK_CONDITION* breakConditionAfter ) ;
559
560 COM-INTERFACE: IDWritePixelSnapping IUnknown {eaf3a2da-ecf4-4d24-b644-b34f6842024b}
561     HRESULT IsPixelSnappingDisabled ( void* clientDrawingContext, BOOL* isDisabled )
562     HRESULT GetCurrentTransform ( void* clientDrawingContext, DWRITE_MATRIX* transform )
563     HRESULT GetPixelsPerDip ( void* clientDrawingContext, FLOAT* pixelsPerDip ) ;
564
565 COM-INTERFACE: IDWriteTextRenderer IDWritePixelSnapping {ef8a8135-5cc6-45fe-8825-c5a0724eb819}
566     HRESULT DrawGlyphRun ( void* clientDrawingContext, FLOAT baselineOriginX, FLOAT baselineOriginY, DWRITE_MEASURING_MODE measuringMode, DWRITE_GLYPH_RUN* glyphRun, DWRITE_GLYPH_RUN_DESCRIPTION* glyphRunDescription, IUnknown* clientDrawingEffect )
567     HRESULT DrawUnderline ( void* clientDrawingContext, FLOAT baselineOriginX, FLOAT baselineOriginY, DWRITE_UNDERLINE* underline, IUnknown* clientDrawingEffect )
568     HRESULT DrawStrikethrough ( void* clientDrawingContext, FLOAT baselineOriginX, FLOAT baselineOriginY, DWRITE_STRIKETHROUGH* strikethrough, IUnknown* clientDrawingEffect )
569     HRESULT DrawInlineObject ( void* clientDrawingContext, FLOAT originX, FLOAT originY, IDWriteInlineObject* inlineObject, BOOL isSideways, BOOL isRightToLeft, IUnknown* clientDrawingEffect ) ;
570
571 COM-INTERFACE: IDWriteTextLayout IDWriteTextFormat {53737037-6d14-410b-9bfe-0b182bb70961}
572     HRESULT SetMaxWidth ( FLOAT maxWidth )
573     HRESULT SetMaxHeight ( FLOAT maxHeight )
574     HRESULT SetFontCollection ( IDWriteFontCollection* fontCollection, DWRITE_TEXT_RANGE textRange )
575     HRESULT SetFontFamilyName ( WCHAR* fontFamilyName, DWRITE_TEXT_RANGE textRange )
576     HRESULT SetFontWeight ( DWRITE_FONT_WEIGHT fontWeight, DWRITE_TEXT_RANGE textRange )
577     HRESULT SetFontStyle ( DWRITE_FONT_STYLE fontStyle, DWRITE_TEXT_RANGE textRange )
578     HRESULT SetFontStretch ( DWRITE_FONT_STRETCH fontStretch, DWRITE_TEXT_RANGE textRange )
579     HRESULT SetFontSize ( FLOAT fontSize, DWRITE_TEXT_RANGE textRange )
580     HRESULT SetUnderline ( BOOL hasUnderline, DWRITE_TEXT_RANGE textRange )
581     HRESULT SetStrikethrough ( BOOL hasStrikethrough, DWRITE_TEXT_RANGE textRange )
582     HRESULT SetDrawingEffect ( IUnknown* drawingEffect, DWRITE_TEXT_RANGE textRange )
583     HRESULT SetInlineObject ( IDWriteInlineObject* inlineObject, DWRITE_TEXT_RANGE textRange )
584     HRESULT SetTypography ( IDWriteTypography* typography, DWRITE_TEXT_RANGE textRange )
585     HRESULT SetLocaleName ( WCHAR* localeName, DWRITE_TEXT_RANGE textRange )
586     FLOAT GetMaxWidth ( )
587     FLOAT GetMaxHeight ( )
588     HRESULT GetFontCollection2 ( UINT32 currentPosition, IDWriteFontCollection** fontCollection, DWRITE_TEXT_RANGE* textRange )
589     HRESULT GetFontFamilyNameLength2 ( UINT32 currentPosition, UINT32* nameLength, DWRITE_TEXT_RANGE* textRange )
590     HRESULT GetFontFamilyName2 ( UINT32 currentPosition, WCHAR* fontFamilyName, UINT32 nameSize, DWRITE_TEXT_RANGE* textRange )
591     HRESULT GetFontWeight2 ( UINT32 currentPosition, DWRITE_FONT_WEIGHT* fontWeight, DWRITE_TEXT_RANGE* textRange )
592     HRESULT GetFontStyle2 ( UINT32 currentPosition, DWRITE_FONT_STYLE* fontStyle, DWRITE_TEXT_RANGE* textRange )
593     HRESULT GetFontStretch2 ( UINT32 currentPosition, DWRITE_FONT_STRETCH* fontStretch, DWRITE_TEXT_RANGE* textRange )
594     HRESULT GetFontSize2 ( UINT32 currentPosition, FLOAT* fontSize, DWRITE_TEXT_RANGE* textRange )
595     HRESULT GetUnderline ( UINT32 currentPosition, BOOL* hasUnderline, DWRITE_TEXT_RANGE* textRange )
596     HRESULT GetStrikethrough ( UINT32 currentPosition, BOOL* hasStrikethrough, DWRITE_TEXT_RANGE* textRange )
597     HRESULT GetDrawingEffect ( UINT32 currentPosition, IUnknown** drawingEffect, DWRITE_TEXT_RANGE* textRange )
598     HRESULT GetInlineObject ( UINT32 currentPosition, IDWriteInlineObject** inlineObject, DWRITE_TEXT_RANGE* textRange )
599     HRESULT GetTypography ( UINT32 currentPosition, IDWriteTypography** typography, DWRITE_TEXT_RANGE* textRange )
600     HRESULT GetLocaleNameLength2 ( UINT32 currentPosition, UINT32* nameLength, DWRITE_TEXT_RANGE* textRange )
601     HRESULT GetLocaleName2 ( UINT32 currentPosition, WCHAR* localeName, UINT32 nameSize, DWRITE_TEXT_RANGE* textRange )
602     HRESULT Draw ( void* clientDrawingContext, IDWriteTextRenderer* renderer, FLOAT originX, FLOAT originY )
603     HRESULT GetLineMetrics ( DWRITE_LINE_METRICS* lineMetrics, UINT32 maxLineCount, UINT32* actualLineCount )
604     HRESULT GetMetrics ( DWRITE_TEXT_METRICS* textMetrics )
605     HRESULT GetOverhangMetrics ( DWRITE_OVERHANG_METRICS* overhangs )
606     HRESULT GetClusterMetrics ( DWRITE_CLUSTER_METRICS* clusterMetrics, UINT32 maxClusterCount, UINT32* actualClusterCount )
607     HRESULT DetermineMinWidth ( FLOAT* minWidth )
608     HRESULT HitTestPoint ( FLOAT pointX, FLOAT pointY, BOOL* isTrailingHit, BOOL* isInside, DWRITE_HIT_TEST_METRICS* hitTestMetrics )
609     HRESULT HitTestTextPosition ( UINT32 textPosition, BOOL isTrailingHit, FLOAT* pointX, FLOAT* pointY, DWRITE_HIT_TEST_METRICS* hitTestMetrics )
610     HRESULT HitTestTextRange ( UINT32 textPosition, UINT32 textLength, FLOAT originX, FLOAT originY, DWRITE_HIT_TEST_METRICS* hitTestMetrics, UINT32 maxHitTestMetricsCount, UINT32* actualHitTestMetricsCount ) ;
611
612 COM-INTERFACE: IDWriteBitmapRenderTarget IUnknown {5e5a32a3-8dff-4773-9ff6-0696eab77267}
613     HRESULT DrawGlyphRun ( FLOAT baselineOriginX, FLOAT baselineOriginY, DWRITE_MEASURING_MODE measuringMode, DWRITE_GLYPH_RUN* glyphRun, IDWriteRenderingParams* renderingParams, COLORREF textColor, RECT* blackBoxRect )
614     HDC GetMemoryDC ( )
615     FLOAT GetPixelsPerDip ( )
616     HRESULT SetPixelsPerDip ( FLOAT pixelsPerDip )
617     HRESULT GetCurrentTransform ( DWRITE_MATRIX* transform )
618     HRESULT SetCurrentTransform ( DWRITE_MATRIX* transform )
619     HRESULT GetSize ( SIZE* size )
620     HRESULT Resize ( UINT32 width, UINT32 height ) ;
621
622 C-TYPE: LOGFONTW
623
624 COM-INTERFACE: IDWriteGdiInterop IUnknown {1edd9491-9853-4299-898f-6432983b6f3a}
625     HRESULT CreateFontFromLOGFONT ( LOGFONTW* logFont, IDWriteFont** font )
626     HRESULT ConvertFontToLOGFONT ( IDWriteFont* font, LOGFONTW* logFont, BOOL* isSystemFont )
627     HRESULT ConvertFontFaceToLOGFONT ( IDWriteFontFace* font, LOGFONTW* logFont )
628     HRESULT CreateFontFaceFromHdc ( HDC hdc, IDWriteFontFace** fontFace )
629     HRESULT CreateBitmapRenderTarget ( HDC hdc, UINT32 width, UINT32 height, IDWriteBitmapRenderTarget** renderTarget ) ;
630
631 C-ENUM: DWRITE_TEXTURE_ALIASED_1x1
632         DWRITE_TEXTURE_CLEARTYPE_3x1 ;
633 TYPEDEF: int DWRITE_TEXTURE_TYPE
634
635 CONSTANT: DWRITE_ALPHA_MAX 255
636
637 COM-INTERFACE: IDWriteGlyphRunAnalysis IUnknown {7d97dbf7-e085-42d4-81e3-6a883bded118}
638     HRESULT GetAlphaTextureBounds ( DWRITE_TEXTURE_TYPE textureType, RECT* textureBounds )
639     HRESULT CreateAlphaTexture ( DWRITE_TEXTURE_TYPE textureType, RECT* textureBounds, BYTE* alphaValues, UINT32 bufferSize )
640     HRESULT GetAlphaBlendParams ( IDWriteRenderingParams* renderingParams, FLOAT* blendGamma, FLOAT* blendEnhancedContrast, FLOAT* blendClearTypeLevel ) ;
641
642 COM-INTERFACE: IDWriteFactory IUnknown {b859ee5a-d838-4b5b-a2e8-1adc7d93db48}
643     HRESULT GetSystemFontCollection ( IDWriteFontCollection** fontCollection, BOOL checkForUpdates )
644     HRESULT CreateCustomFontCollection ( IDWriteFontCollectionLoader* collectionLoader, void* collectionKey, UINT32 collectionKeySize, IDWriteFontCollection** fontCollection )
645     HRESULT RegisterFontCollectionLoader ( IDWriteFontCollectionLoader* fontCollectionLoader )
646     HRESULT UnregisterFontCollectionLoader ( IDWriteFontCollectionLoader* fontCollectionLoader )
647     HRESULT CreateFontFileReference ( WCHAR* filePath, FILETIME* lastWriteTime, IDWriteFontFile** fontFile )
648     HRESULT CreateCustomFontFileReference ( void* fontFileReferenceKey, UINT32 fontFileReferenceKeySize, IDWriteFontFileLoader* fontFileLoader, IDWriteFontFile** fontFile )
649     HRESULT CreateFontFace ( DWRITE_FONT_FACE_TYPE fontFaceType, UINT32 numberOfFiles, IDWriteFontFile** fontFiles, UINT32 faceIndex, DWRITE_FONT_SIMULATIONS fontFaceSimulationFlags, IDWriteFontFace** fontFace )
650     HRESULT CreateRenderingParams ( IDWriteRenderingParams** renderingParams )
651     HRESULT CreateMonitorRenderingParams ( HMONITOR monitor, IDWriteRenderingParams** renderingParams )
652     HRESULT CreateCustomRenderingParams ( FLOAT gamma, FLOAT enhancedContrast, FLOAT clearTypeLevel, DWRITE_PIXEL_GEOMETRY pixelGeometry, DWRITE_RENDERING_MODE renderingMode, IDWriteRenderingParams** renderingParams )
653     HRESULT RegisterFontFileLoader ( IDWriteFontFileLoader* fontFileLoader )
654     HRESULT UnregisterFontFileLoader ( IDWriteFontFileLoader* fontFileLoader )
655     HRESULT CreateTextFormat ( WCHAR* fontFamilyName, IDWriteFontCollection* fontCollection, DWRITE_FONT_WEIGHT fontWeight, DWRITE_FONT_STYLE fontStyle, DWRITE_FONT_STRETCH fontStretch, FLOAT fontSize, WCHAR* localeName, IDWriteTextFormat** textFormat )
656     HRESULT CreateTypography ( IDWriteTypography** typography )
657     HRESULT GetGdiInterop ( IDWriteGdiInterop** gdiInterop )
658     HRESULT CreateTextLayout ( WCHAR* string, UINT32 stringLength, IDWriteTextFormat* textFormat, FLOAT maxWidth, FLOAT maxHeight, IDWriteTextLayout** textLayout )
659     HRESULT CreateGdiCompatibleTextLayout ( WCHAR* string, UINT32 stringLength, IDWriteTextFormat* textFormat, FLOAT layoutWidth, FLOAT layoutHeight, FLOAT pixelsPerDip, DWRITE_MATRIX* transform, BOOL useGdiNatural, IDWriteTextLayout** textLayout )
660     HRESULT CreateEllipsisTrimmingSign ( IDWriteTextFormat* textFormat, IDWriteInlineObject** trimmingSign )
661     HRESULT CreateTextAnalyzer ( IDWriteTextAnalyzer** textAnalyzer )
662     HRESULT CreateNumberSubstitution ( DWRITE_NUMBER_SUBSTITUTION_METHOD substitutionMethod, WCHAR* localeName, BOOL ignoreUserOverride, IDWriteNumberSubstitution** numberSubstitution )
663     HRESULT CreateGlyphRunAnalysis ( DWRITE_GLYPH_RUN* glyphRun, FLOAT pixelsPerDip, DWRITE_MATRIX* transform, DWRITE_RENDERING_MODE renderingMode, DWRITE_MEASURING_MODE measuringMode, FLOAT baselineOriginX, FLOAT baselineOriginY, IDWriteGlyphRunAnalysis** glyphRunAnalysis ) ;
664
665 FUNCTION: HRESULT DWriteCreateFactory (
666     DWRITE_FACTORY_TYPE factoryType,
667     REFIID              iid,
668     IUnknown**          factory ) ;
669
670 CONSTANT: DWRITE_E_FILEFORMAT             HEX: 88985000
671 CONSTANT: DWRITE_E_UNEXPECTED             HEX: 88985001
672 CONSTANT: DWRITE_E_NOFONT                 HEX: 88985002
673 CONSTANT: DWRITE_E_FILENOTFOUND           HEX: 88985003
674 CONSTANT: DWRITE_E_FILEACCESS             HEX: 88985004
675 CONSTANT: DWRITE_E_FONTCOLLECTIONOBSOLETE HEX: 88985005
676 CONSTANT: DWRITE_E_ALREADYREGISTERED      HEX: 88985006