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