source: Daodan/MSYS2/mingw32/i686-w64-mingw32/include/dwrite_3.idl@ 1186

Last change on this file since 1186 was 1166, checked in by rossy, 3 years ago

Daodan: Replace MinGW build env with an up-to-date MSYS2 env

File size: 28.6 KB
Line 
1/*
2 * Copyright 2016 Nikolay Sivov for CodeWeavers
3 *
4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Lesser General Public
6 * License as published by the Free Software Foundation; either
7 * version 2.1 of the License, or (at your option) any later version.
8 *
9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * Lesser General Public License for more details.
13 *
14 * You should have received a copy of the GNU Lesser General Public
15 * License along with this library; if not, write to the Free Software
16 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
17 */
18
19import "dwrite_2.idl";
20
21interface IDWriteFontFaceReference;
22interface IDWriteFontFaceReference1;
23interface IDWriteFontFace3;
24interface IDWriteFontSet;
25interface IDWriteFontDownloadQueue;
26interface IDWriteFontFace5;
27interface IDWriteFontList2;
28
29cpp_quote("#ifndef _WINGDI_")
30/* already defined in wingdi.h but needed for WIDL */
31typedef struct FONTSIGNATURE FONTSIGNATURE;
32cpp_quote("#endif /* _WINGDI_ */")
33
34typedef enum DWRITE_LOCALITY
35{
36 DWRITE_LOCALITY_REMOTE,
37 DWRITE_LOCALITY_PARTIAL,
38 DWRITE_LOCALITY_LOCAL
39} DWRITE_LOCALITY;
40
41typedef enum DWRITE_RENDERING_MODE1
42{
43 DWRITE_RENDERING_MODE1_DEFAULT,
44 DWRITE_RENDERING_MODE1_ALIASED,
45 DWRITE_RENDERING_MODE1_GDI_CLASSIC,
46 DWRITE_RENDERING_MODE1_GDI_NATURAL,
47 DWRITE_RENDERING_MODE1_NATURAL,
48 DWRITE_RENDERING_MODE1_NATURAL_SYMMETRIC,
49 DWRITE_RENDERING_MODE1_OUTLINE,
50 DWRITE_RENDERING_MODE1_NATURAL_SYMMETRIC_DOWNSAMPLED
51} DWRITE_RENDERING_MODE1;
52
53typedef enum DWRITE_FONT_PROPERTY_ID
54{
55 DWRITE_FONT_PROPERTY_ID_NONE,
56 DWRITE_FONT_PROPERTY_ID_WEIGHT_STRETCH_STYLE_FAMILY_NAME,
57 DWRITE_FONT_PROPERTY_ID_TYPOGRAPHIC_FAMILY_NAME,
58 DWRITE_FONT_PROPERTY_ID_WEIGHT_STRETCH_STYLE_FACE_NAME,
59 DWRITE_FONT_PROPERTY_ID_FULL_NAME,
60 DWRITE_FONT_PROPERTY_ID_WIN32_FAMILY_NAME,
61 DWRITE_FONT_PROPERTY_ID_POSTSCRIPT_NAME,
62 DWRITE_FONT_PROPERTY_ID_DESIGN_SCRIPT_LANGUAGE_TAG,
63 DWRITE_FONT_PROPERTY_ID_SUPPORTED_SCRIPT_LANGUAGE_TAG,
64 DWRITE_FONT_PROPERTY_ID_SEMANTIC_TAG,
65 DWRITE_FONT_PROPERTY_ID_WEIGHT,
66 DWRITE_FONT_PROPERTY_ID_STRETCH,
67 DWRITE_FONT_PROPERTY_ID_STYLE,
68 DWRITE_FONT_PROPERTY_ID_TYPOGRAPHIC_FACE_NAME,
69 DWRITE_FONT_PROPERTY_ID_TOTAL = DWRITE_FONT_PROPERTY_ID_STYLE + 1,
70 DWRITE_FONT_PROPERTY_ID_TOTAL_RS3 = DWRITE_FONT_PROPERTY_ID_TYPOGRAPHIC_FACE_NAME + 1,
71 DWRITE_FONT_PROPERTY_ID_FAMILY_NAME = DWRITE_FONT_PROPERTY_ID_TYPOGRAPHIC_FAMILY_NAME,
72 DWRITE_FONT_PROPERTY_ID_PREFERRED_FAMILY_NAME = DWRITE_FONT_PROPERTY_ID_WEIGHT_STRETCH_STYLE_FAMILY_NAME,
73 DWRITE_FONT_PROPERTY_ID_FACE_NAME = DWRITE_FONT_PROPERTY_ID_WEIGHT_STRETCH_STYLE_FACE_NAME,
74} DWRITE_FONT_PROPERTY_ID;
75
76typedef struct DWRITE_FONT_PROPERTY
77{
78 DWRITE_FONT_PROPERTY_ID propertyId;
79 WCHAR const *propertyValue;
80 WCHAR const *localeName;
81} DWRITE_FONT_PROPERTY;
82
83cpp_quote("#ifdef __cplusplus")
84cpp_quote("#define DWRITE_MAKE_FONT_AXIS_TAG(a,b,c,d) (static_cast<DWRITE_FONT_AXIS_TAG>(DWRITE_MAKE_OPENTYPE_TAG(a,b,c,d)))")
85cpp_quote("#else")
86cpp_quote("#define DWRITE_MAKE_FONT_AXIS_TAG(a,b,c,d) (DWRITE_MAKE_OPENTYPE_TAG(a,b,c,d))")
87cpp_quote("#endif")
88
89typedef enum DWRITE_FONT_AXIS_TAG
90{
91 DWRITE_FONT_AXIS_TAG_WEIGHT = 0x74686777, /* 'wght' */
92 DWRITE_FONT_AXIS_TAG_WIDTH = 0x68746477, /* 'wdth' */
93 DWRITE_FONT_AXIS_TAG_SLANT = 0x746e6c73, /* 'slnt' */
94 DWRITE_FONT_AXIS_TAG_OPTICAL_SIZE = 0x7a73706f, /* 'opsz' */
95 DWRITE_FONT_AXIS_TAG_ITALIC = 0x6c617469, /* 'ital' */
96} DWRITE_FONT_AXIS_TAG;
97
98typedef enum DWRITE_FONT_SOURCE_TYPE
99{
100 DWRITE_FONT_SOURCE_TYPE_UNKNOWN,
101 DWRITE_FONT_SOURCE_TYPE_PER_MACHINE,
102 DWRITE_FONT_SOURCE_TYPE_PER_USER,
103 DWRITE_FONT_SOURCE_TYPE_APPX_PACKAGE,
104 DWRITE_FONT_SOURCE_TYPE_REMOTE_FONT_PROVIDER
105} DWRITE_FONT_SOURCE_TYPE;
106
107typedef struct DWRITE_FONT_AXIS_VALUE
108{
109 DWRITE_FONT_AXIS_TAG axisTag;
110 FLOAT value;
111} DWRITE_FONT_AXIS_VALUE;
112
113typedef struct DWRITE_FONT_AXIS_RANGE
114{
115 DWRITE_FONT_AXIS_TAG axisTag;
116 FLOAT minValue;
117 FLOAT maxValue;
118} DWRITE_FONT_AXIS_RANGE;
119
120typedef enum DWRITE_AUTOMATIC_FONT_AXES
121{
122 DWRITE_AUTOMATIC_FONT_AXES_NONE,
123 DWRITE_AUTOMATIC_FONT_AXES_OPTICAL_SIZE,
124} DWRITE_AUTOMATIC_FONT_AXES;
125
126typedef enum DWRITE_FONT_AXIS_ATTRIBUTES
127{
128 DWRITE_FONT_AXIS_ATTRIBUTES_NONE,
129 DWRITE_FONT_AXIS_ATTRIBUTES_VARIABLE,
130 DWRITE_FONT_AXIS_ATTRIBUTES_HIDDEN,
131} DWRITE_FONT_AXIS_ATTRIBUTES;
132
133typedef enum DWRITE_FONT_FAMILY_MODEL
134{
135 DWRITE_FONT_FAMILY_MODEL_TYPOGRAPHIC,
136 DWRITE_FONT_FAMILY_MODEL_WEIGHT_STRETCH_STYLE,
137} DWRITE_FONT_FAMILY_MODEL;
138
139[
140 local,
141 object,
142 uuid(b06fe5b9-43ec-4393-881b-dbe4dc72fda7)
143]
144interface IDWriteFontDownloadListener : IUnknown
145{
146 void DownloadCompleted(IDWriteFontDownloadQueue *queue, IUnknown *context, HRESULT result);
147}
148
149[
150 local,
151 object,
152 uuid(b71e6052-5aea-4fa3-832e-f60d431f7e91)
153]
154interface IDWriteFontDownloadQueue : IUnknown
155{
156 HRESULT AddListener(IDWriteFontDownloadListener *listener, UINT32 *token);
157 HRESULT RemoveListener(UINT32 token);
158 BOOL IsEmpty();
159 HRESULT BeginDownload(IUnknown *context);
160 HRESULT CancelDownload();
161 UINT64 GetGenerationCount();
162}
163
164[
165 local,
166 object,
167 uuid(b7924baa-391b-412a-8c5c-e44cc2d867dc)
168]
169interface IDWriteRenderingParams3 : IDWriteRenderingParams2
170{
171 DWRITE_RENDERING_MODE1 GetRenderingMode1();
172}
173
174[
175 local,
176 object,
177 uuid(cfee3140-1257-47ca-8b85-31bfcf3f2d0e)
178]
179interface IDWriteStringList : IUnknown
180{
181 UINT32 GetCount();
182 HRESULT GetLocaleNameLength(UINT32 index, UINT32 *length);
183 HRESULT GetLocaleName(UINT32 index, WCHAR *name, UINT32 size);
184 HRESULT GetStringLength(UINT32 index, UINT32 *length);
185 HRESULT GetString(UINT32 index, WCHAR *string, UINT32 size);
186}
187
188[
189 local,
190 object,
191 uuid(53585141-d9f8-4095-8321-d73cf6bd116b)
192]
193interface IDWriteFontSet : IUnknown
194{
195 UINT32 GetFontCount();
196 HRESULT GetFontFaceReference(UINT32 index, IDWriteFontFaceReference **reference);
197 HRESULT FindFontFaceReference(IDWriteFontFaceReference *reference,
198 UINT32 *index, BOOL *exists);
199 HRESULT FindFontFace(IDWriteFontFace *fontface, UINT32 *index, BOOL *exists);
200 HRESULT GetPropertyValues__(DWRITE_FONT_PROPERTY_ID id, IDWriteStringList **values);
201 HRESULT GetPropertyValues_(DWRITE_FONT_PROPERTY_ID id,
202 WCHAR const *preferred_locales, IDWriteStringList **values);
203 HRESULT GetPropertyValues(UINT32 index, DWRITE_FONT_PROPERTY_ID id, BOOL *exists,
204 IDWriteLocalizedStrings **values);
205 HRESULT GetPropertyOccurrenceCount(DWRITE_FONT_PROPERTY const *property, UINT32 *count);
206 HRESULT GetMatchingFonts_(WCHAR const *family, DWRITE_FONT_WEIGHT weight, DWRITE_FONT_STRETCH stretch,
207 DWRITE_FONT_STYLE style, IDWriteFontSet **fontset);
208 HRESULT GetMatchingFonts(DWRITE_FONT_PROPERTY const *props, UINT32 count, IDWriteFontSet **fontset);
209}
210
211[
212 local,
213 object,
214 uuid(1f803a76-6871-48e8-987f-b975551c50f2)
215]
216interface IDWriteFontResource : IUnknown
217{
218 HRESULT GetFontFile(IDWriteFontFile **fontfile);
219 UINT32 GetFontFaceIndex();
220 UINT32 GetFontAxisCount();
221 HRESULT GetDefaultFontAxisValues(
222 DWRITE_FONT_AXIS_VALUE const *values,
223 UINT32 num_values);
224 HRESULT GetFontAxisRanges(
225 DWRITE_FONT_AXIS_RANGE const *ranges,
226 UINT32 num_ranges);
227 DWRITE_FONT_AXIS_ATTRIBUTES GetFontAxisAttributes(
228 UINT32 axis);
229 HRESULT GetAxisNames(
230 UINT32 axis,
231 IDWriteLocalizedStrings **names);
232 UINT32 GetAxisValueNameCount(
233 UINT32 axis);
234 HRESULT GetAxisValueNames(
235 UINT32 axis,
236 UINT32 axis_value,
237 DWRITE_FONT_AXIS_RANGE *axis_range,
238 IDWriteLocalizedStrings **names);
239 BOOL HasVariations();
240 HRESULT CreateFontFace(
241 DWRITE_FONT_SIMULATIONS simulations,
242 DWRITE_FONT_AXIS_VALUE const *axis_values,
243 UINT32 num_values,
244 IDWriteFontFace5 **fontface);
245 HRESULT CreateFontFaceReference(
246 DWRITE_FONT_SIMULATIONS simulations,
247 DWRITE_FONT_AXIS_VALUE const *axis_values,
248 UINT32 num_values,
249 IDWriteFontFaceReference1 **reference);
250}
251
252[
253 local,
254 object,
255 uuid(7e9fda85-6c92-4053-bc47-7ae3530db4d3)
256]
257interface IDWriteFontSet1 : IDWriteFontSet
258{
259 HRESULT GetMatchingFonts(
260 DWRITE_FONT_PROPERTY const *property,
261 DWRITE_FONT_AXIS_VALUE const *axis_values,
262 UINT32 num_values,
263 IDWriteFontSet1 **fontset);
264 HRESULT GetFirstFontResources(IDWriteFontSet1 **fontset);
265 HRESULT GetFilteredFonts__(
266 UINT32 const *indices,
267 UINT32 num_indices,
268 IDWriteFontSet1 **fontset);
269 HRESULT GetFilteredFonts_(
270 DWRITE_FONT_AXIS_RANGE const *axis_ranges,
271 UINT32 num_ranges,
272 BOOL select_any_range,
273 IDWriteFontSet1 **fontset);
274 HRESULT GetFilteredFonts(
275 DWRITE_FONT_PROPERTY const *props,
276 UINT32 num_properties,
277 BOOL select_any_property,
278 IDWriteFontSet1 **fontset);
279 HRESULT GetFilteredFontIndices_(
280 DWRITE_FONT_AXIS_RANGE const *ranges,
281 UINT32 num_ranges,
282 BOOL select_any_range,
283 UINT32 *indices,
284 UINT32 num_indices,
285 UINT32 *actual_num_indices);
286 HRESULT GetFilteredFontIndices(
287 DWRITE_FONT_PROPERTY const *props,
288 UINT32 num_properties,
289 BOOL select_any_range,
290 UINT32 *indices,
291 UINT32 num_indices,
292 UINT32 *actual_num_indices);
293 HRESULT GetFontAxisRanges_(
294 UINT32 font_index,
295 DWRITE_FONT_AXIS_RANGE *axis_ranges,
296 UINT32 num_ranges,
297 UINT32 *actual_num_ranges);
298 HRESULT GetFontAxisRanges(
299 DWRITE_FONT_AXIS_RANGE *axis_ranges,
300 UINT32 num_ranges,
301 UINT32 *actual_num_ranges);
302 HRESULT GetFontFaceReference(
303 UINT32 index,
304 IDWriteFontFaceReference1 **reference);
305 HRESULT CreateFontResource(
306 UINT32 index,
307 IDWriteFontResource **resource);
308 HRESULT CreateFontFace(
309 UINT32 index,
310 IDWriteFontFace5 **fontface);
311 DWRITE_LOCALITY GetFontLocality(UINT32 index);
312}
313
314[
315 local,
316 object,
317 uuid(29748ed6-8c9c-4a6a-be0b-d912e8538944)
318]
319interface IDWriteFont3 : IDWriteFont2
320{
321 HRESULT CreateFontFace(IDWriteFontFace3 **fontface);
322 BOOL Equals(IDWriteFont *font);
323 HRESULT GetFontFaceReference(IDWriteFontFaceReference **reference);
324 BOOL HasCharacter(UINT32 character);
325 DWRITE_LOCALITY GetLocality();
326}
327
328[
329 local,
330 object,
331 uuid(da20d8ef-812a-4c43-9802-62ec4abd7adf)
332]
333interface IDWriteFontFamily1 : IDWriteFontFamily
334{
335 DWRITE_LOCALITY GetFontLocality(UINT32 index);
336 HRESULT GetFont(UINT32 index, IDWriteFont3 **font);
337 HRESULT GetFontFaceReference(UINT32 index, IDWriteFontFaceReference **reference);
338}
339
340[
341 local,
342 object,
343 uuid(3ed49e77-a398-4261-b9cf-c126c2131ef3)
344]
345interface IDWriteFontFamily2 : IDWriteFontFamily1
346{
347 HRESULT GetMatchingFonts(
348 DWRITE_FONT_AXIS_VALUE const *axis_values,
349 UINT32 num_values,
350 IDWriteFontList2 **fontlist);
351 HRESULT GetFontSet(IDWriteFontSet1 **fontset);
352}
353
354[
355 local,
356 object,
357 uuid(53585141-d9f8-4095-8321-d73cf6bd116c)
358]
359interface IDWriteFontCollection1 : IDWriteFontCollection
360{
361 HRESULT GetFontSet(IDWriteFontSet **fontset);
362 HRESULT GetFontFamily(UINT32 index, IDWriteFontFamily1 **family);
363}
364
365[
366 local,
367 object,
368 uuid(514039c6-4617-4064-bf8b-92ea83e506e0)
369]
370interface IDWriteFontCollection2 : IDWriteFontCollection1
371{
372 HRESULT GetFontFamily(
373 UINT32 index,
374 IDWriteFontFamily2 **family);
375 HRESULT GetMatchingFonts(
376 const WCHAR *familyname,
377 DWRITE_FONT_AXIS_VALUE const *axis_values,
378 UINT32 num_values,
379 IDWriteFontList2 **fontlist);
380 DWRITE_FONT_FAMILY_MODEL GetFontFamilyModel();
381 HRESULT GetFontSet(IDWriteFontSet1 **fontset);
382}
383
384[
385 local,
386 object,
387 uuid(a4d055a6-f9e3-4e25-93b7-9e309f3af8e9)
388]
389interface IDWriteFontCollection3 : IDWriteFontCollection2
390{
391 HANDLE GetExpirationEvent();
392}
393
394[
395 local,
396 object,
397 uuid(5e7fa7ca-dde3-424c-89f0-9fcd6fed58cd)
398]
399interface IDWriteFontFaceReference : IUnknown
400{
401 HRESULT CreateFontFace(IDWriteFontFace3 **fontface);
402 HRESULT CreateFontFaceWithSimulations(DWRITE_FONT_SIMULATIONS simulations,
403 IDWriteFontFace3 **fontface);
404 BOOL Equals(IDWriteFontFaceReference *reference);
405 UINT32 GetFontFaceIndex();
406 DWRITE_FONT_SIMULATIONS GetSimulations();
407 HRESULT GetFontFile(IDWriteFontFile **fontfile);
408 UINT64 GetLocalFileSize();
409 UINT64 GetFileSize();
410 HRESULT GetFileTime(FILETIME *writetime);
411 DWRITE_LOCALITY GetLocality();
412 HRESULT EnqueueFontDownloadRequest();
413 HRESULT EnqueueCharacterDownloadRequest(WCHAR const *chars, UINT32 count);
414 HRESULT EnqueueGlyphDownloadRequest(UINT16 const *glyphs, UINT32 count);
415 HRESULT EnqueueFileFragmentDownloadRequest(UINT64 offset, UINT64 size);
416}
417
418[
419 local,
420 object,
421 uuid(c081fe77-2fd1-41ac-a5a3-34983c4ba61a)
422]
423interface IDWriteFontFaceReference1 : IDWriteFontFaceReference
424{
425 HRESULT CreateFontFace(IDWriteFontFace5 **fontface);
426 UINT32 GetFontAxisValueCount();
427 HRESULT GetFontAxisValues(
428 DWRITE_FONT_AXIS_VALUE *values,
429 UINT32 num_values);
430}
431
432[
433 local,
434 object,
435 uuid(da20d8ef-812a-4c43-9802-62ec4abd7ade)
436]
437interface IDWriteFontList1 : IDWriteFontList
438{
439 DWRITE_LOCALITY GetFontLocality(UINT32 index);
440 HRESULT GetFont(UINT32 index, IDWriteFont3 **font);
441 HRESULT GetFontFaceReference(UINT32 index, IDWriteFontFaceReference **reference);
442}
443
444[
445 local,
446 object,
447 uuid(c0763a34-77af-445a-b735-08c37b0a5bf5)
448]
449interface IDWriteFontList2 : IDWriteFontList1
450{
451 HRESULT GetFontSet(IDWriteFontSet1 **fontset);
452}
453
454[
455 local,
456 object,
457 uuid(dc7ead19-e54c-43af-b2da-4e2b79ba3f7f)
458]
459interface IDWriteFontSet2 : IDWriteFontSet1
460{
461 HANDLE GetExpirationEvent();
462}
463
464[
465 local,
466 object,
467 uuid(7c073ef2-a7f4-4045-8c32-8ab8ae640f90)
468]
469interface IDWriteFontSet3 : IDWriteFontSet2
470{
471 DWRITE_FONT_SOURCE_TYPE GetFontSourceType(UINT32 index);
472 UINT32 GetFontSourceNameLength(UINT32 index);
473 HRESULT GetFontSourceName(UINT32 index, WCHAR *buffer, UINT32 buffer_size);
474}
475
476[
477 local,
478 object,
479 uuid(d37d7598-09be-4222-a236-2081341cc1f2)
480]
481interface IDWriteFontFace3 : IDWriteFontFace2
482{
483 HRESULT GetFontFaceReference(IDWriteFontFaceReference **reference);
484 void GetPanose(DWRITE_PANOSE *panose);
485 DWRITE_FONT_WEIGHT GetWeight();
486 DWRITE_FONT_STRETCH GetStretch();
487 DWRITE_FONT_STYLE GetStyle();
488 HRESULT GetFamilyNames(IDWriteLocalizedStrings **names);
489 HRESULT GetFaceNames(IDWriteLocalizedStrings **names);
490 HRESULT GetInformationalStrings(DWRITE_INFORMATIONAL_STRING_ID stringid,
491 IDWriteLocalizedStrings **strings,
492 BOOL *exists);
493 BOOL HasCharacter(UINT32 character);
494 HRESULT GetRecommendedRenderingMode(
495 FLOAT emsize,
496 FLOAT dpi_x,
497 FLOAT dpi_y,
498 DWRITE_MATRIX const *transform,
499 BOOL is_sideways,
500 DWRITE_OUTLINE_THRESHOLD threshold,
501 DWRITE_MEASURING_MODE measuring_mode,
502 IDWriteRenderingParams *params,
503 DWRITE_RENDERING_MODE1 *rendering_mode,
504 DWRITE_GRID_FIT_MODE *gridfit_mode);
505 BOOL IsCharacterLocal(UINT32 character);
506 BOOL IsGlyphLocal(UINT16 glyph);
507 HRESULT AreCharactersLocal(WCHAR const *characters,
508 UINT32 count, BOOL enqueue_if_not, BOOL *are_local);
509 HRESULT AreGlyphsLocal(UINT16 const *glyphs, UINT32 count,
510 BOOL enqueue_if_not, BOOL *are_local);
511}
512
513
514typedef struct DWRITE_LINE_METRICS1
515{
516 UINT32 length;
517 UINT32 trailingWhitespaceLength;
518 UINT32 newlineLength;
519 FLOAT height;
520 FLOAT baseline;
521 BOOL isTrimmed;
522 FLOAT leadingBefore;
523 FLOAT leadingAfter;
524} DWRITE_LINE_METRICS1;
525
526typedef enum DWRITE_FONT_LINE_GAP_USAGE
527{
528 DWRITE_FONT_LINE_GAP_USAGE_DEFAULT,
529 DWRITE_FONT_LINE_GAP_USAGE_DISABLED,
530 DWRITE_FONT_LINE_GAP_USAGE_ENABLED
531} DWRITE_FONT_LINE_GAP_USAGE;
532
533typedef struct DWRITE_LINE_SPACING
534{
535 DWRITE_LINE_SPACING_METHOD method;
536 FLOAT height;
537 FLOAT baseline;
538 FLOAT leadingBefore;
539 DWRITE_FONT_LINE_GAP_USAGE fontLineGapUsage;
540} DWRITE_LINE_SPACING;
541
542[
543 local,
544 object,
545 uuid(f67e0edd-9e3d-4ecc-8c32-4183253dfe70)
546]
547interface IDWriteTextFormat2 : IDWriteTextFormat1
548{
549 HRESULT SetLineSpacing(DWRITE_LINE_SPACING const *spacing);
550 HRESULT GetLineSpacing(DWRITE_LINE_SPACING *spacing);
551}
552
553[
554 local,
555 object,
556 uuid(6d3b5641-e550-430d-a85b-b7bf48a93427)
557]
558interface IDWriteTextFormat3 : IDWriteTextFormat2
559{
560 HRESULT SetFontAxisValues(
561 DWRITE_FONT_AXIS_VALUE const *axis_values,
562 UINT32 num_values);
563 UINT32 GetFontAxisValueCount();
564 HRESULT GetFontAxisValues(
565 DWRITE_FONT_AXIS_VALUE *axis_values,
566 UINT32 num_values);
567 DWRITE_AUTOMATIC_FONT_AXES GetAutomaticFontAxes();
568 HRESULT SetAutomaticFontAxes(DWRITE_AUTOMATIC_FONT_AXES axes);
569}
570
571[
572 local,
573 object,
574 uuid(07ddcd52-020e-4de8-ac33-6c953d83f92d)
575]
576interface IDWriteTextLayout3 : IDWriteTextLayout2
577{
578 HRESULT InvalidateLayout();
579 HRESULT SetLineSpacing(DWRITE_LINE_SPACING const *spacing);
580 HRESULT GetLineSpacing(DWRITE_LINE_SPACING *spacing);
581 HRESULT GetLineMetrics(DWRITE_LINE_METRICS1 *metrics, UINT32 max_count, UINT32 *count);
582}
583
584[
585 local,
586 object,
587 uuid(05a9bf42-223f-4441-b5fb-8263685f55e9)
588]
589interface IDWriteTextLayout4 : IDWriteTextLayout3
590{
591 HRESULT SetFontAxisValues(
592 DWRITE_FONT_AXIS_VALUE const *axis_values,
593 UINT32 num_values,
594 DWRITE_TEXT_RANGE range);
595 UINT32 GetFontAxisValueCount(UINT32 pos);
596 HRESULT GetFontAxisValues(
597 UINT32 pos,
598 DWRITE_FONT_AXIS_VALUE *values,
599 UINT32 num_values,
600 DWRITE_TEXT_RANGE *range);
601 DWRITE_AUTOMATIC_FONT_AXES GetAutomaticFontAxes();
602 HRESULT SetAutomaticFontAxes(DWRITE_AUTOMATIC_FONT_AXES axes);
603}
604
605[
606 local,
607 object,
608 uuid(2397599d-dd0d-4681-bd6a-f4f31eaade77)
609]
610interface IDWriteFontFallback1 : IDWriteFontFallback
611{
612 HRESULT MapCharacters(
613 IDWriteTextAnalysisSource *source,
614 UINT32 pos,
615 UINT32 length,
616 IDWriteFontCollection *base_collection,
617 const WCHAR *familyname,
618 DWRITE_FONT_AXIS_VALUE const *axis_values,
619 UINT32 num_values,
620 UINT32 *mapped_length,
621 FLOAT *scale,
622 IDWriteFontFace5 **fontface);
623}
624
625[
626 local,
627 object,
628 uuid(4556be70-3abd-4f70-90be-421780a6f515)
629]
630interface IDWriteGdiInterop1 : IDWriteGdiInterop
631{
632 HRESULT CreateFontFromLOGFONT(LOGFONTW const *logfont,
633 IDWriteFontCollection *collection,
634 IDWriteFont **font);
635
636 /* GetFontSignature() methods are listed in reversed order to make
637 resulting vtable order compatible. */
638 HRESULT GetFontSignature_(IDWriteFontFace *fontface, FONTSIGNATURE *fontsig);
639 HRESULT GetFontSignature(IDWriteFont *font, FONTSIGNATURE *fontsig);
640 HRESULT GetMatchingFontsByLOGFONT(LOGFONTW const *logfont,
641 IDWriteFontSet *fontset,
642 IDWriteFontSet **subset);
643}
644
645[
646 local,
647 object,
648 uuid(2f642afe-9c68-4f40-b8be-457401afcb3d)
649]
650interface IDWriteFontSetBuilder : IUnknown
651{
652 HRESULT AddFontFaceReference_(IDWriteFontFaceReference *ref,
653 DWRITE_FONT_PROPERTY const *props,
654 UINT32 prop_count);
655 HRESULT AddFontFaceReference(IDWriteFontFaceReference *ref);
656 HRESULT AddFontSet(IDWriteFontSet *fontset);
657 HRESULT CreateFontSet(IDWriteFontSet **fontset);
658}
659
660[
661 local,
662 object,
663 uuid(3ff7715f-3cdc-4dc6-9b72-ec5621dccafd)
664]
665interface IDWriteFontSetBuilder1 : IDWriteFontSetBuilder
666{
667 HRESULT AddFontFile(IDWriteFontFile *file);
668}
669
670[
671 local,
672 object,
673 uuid(ee5ba612-b131-463c-8f4f-3189b9401e45)
674]
675interface IDWriteFontSetBuilder2 : IDWriteFontSetBuilder1
676{
677 HRESULT AddFont(
678 IDWriteFontFile *fontfile,
679 UINT32 face_index,
680 DWRITE_FONT_SIMULATIONS simulations,
681 DWRITE_FONT_AXIS_VALUE const *axis_values,
682 UINT32 num_values,
683 DWRITE_FONT_AXIS_RANGE const *axis_ranges,
684 UINT32 num_ranges,
685 DWRITE_FONT_PROPERTY const *props,
686 UINT32 num_properties);
687 HRESULT AddFontFile(const WCHAR *filepath);
688}
689
690[
691 local,
692 object,
693 uuid(9a1b41c3-d3bb-466a-87fc-fe67556a3b65)
694]
695interface IDWriteFactory3 : IDWriteFactory2
696{
697 HRESULT CreateGlyphRunAnalysis(
698 DWRITE_GLYPH_RUN const *run,
699 DWRITE_MATRIX const *transform,
700 DWRITE_RENDERING_MODE1 rendering_mode,
701 DWRITE_MEASURING_MODE measuring_mode,
702 DWRITE_GRID_FIT_MODE gridfit_mode,
703 DWRITE_TEXT_ANTIALIAS_MODE antialias_mode,
704 FLOAT origin_x,
705 FLOAT origin_y,
706 IDWriteGlyphRunAnalysis **analysis);
707
708 HRESULT CreateCustomRenderingParams(
709 FLOAT gamma,
710 FLOAT enhanced_contrast,
711 FLOAT grayscale_enhanced_contrast,
712 FLOAT cleartype_level,
713 DWRITE_PIXEL_GEOMETRY pixel_geometry,
714 DWRITE_RENDERING_MODE1 rendering_mode,
715 DWRITE_GRID_FIT_MODE gridfit_mode,
716 IDWriteRenderingParams3 **params);
717
718 /* CreateFontFaceReference methods are listed in reversed order to make
719 resulting vtable order compatible. */
720 HRESULT CreateFontFaceReference_(
721 IDWriteFontFile *file,
722 UINT32 index,
723 DWRITE_FONT_SIMULATIONS simulations,
724 IDWriteFontFaceReference **reference);
725
726 HRESULT CreateFontFaceReference(
727 WCHAR const *path,
728 FILETIME const *writetime,
729 UINT32 index,
730 DWRITE_FONT_SIMULATIONS simulations,
731 IDWriteFontFaceReference **reference);
732
733 HRESULT GetSystemFontSet(IDWriteFontSet **fontset);
734 HRESULT CreateFontSetBuilder(IDWriteFontSetBuilder **builder);
735 HRESULT CreateFontCollectionFromFontSet(
736 IDWriteFontSet *fontset,
737 IDWriteFontCollection1 **collection);
738
739 HRESULT GetSystemFontCollection(
740 BOOL include_downloadable,
741 IDWriteFontCollection1 **collection,
742 BOOL check_for_updates);
743
744 HRESULT GetFontDownloadQueue(IDWriteFontDownloadQueue **queue);
745}
746
747typedef struct DWRITE_GLYPH_IMAGE_DATA
748{
749 void const *imageData;
750 UINT32 imageDataSize;
751 UINT32 uniqueDataId;
752 UINT32 pixelsPerEm;
753 D2D1_SIZE_U pixelSize;
754 D2D1_POINT_2L horizontalLeftOrigin;
755 D2D1_POINT_2L horizontalRightOrigin;
756 D2D1_POINT_2L verticalTopOrigin;
757 D2D1_POINT_2L verticalBottomOrigin;
758} DWRITE_GLYPH_IMAGE_DATA;
759
760[
761 local,
762 object,
763 uuid(27f2a904-4eb8-441d-9678-0563f53e3e2f)
764]
765interface IDWriteFontFace4 : IDWriteFontFace3
766{
767 HRESULT GetGlyphImageFormats_(
768 UINT16 glyph,
769 UINT32 ppem_first,
770 UINT32 ppem_last,
771 DWRITE_GLYPH_IMAGE_FORMATS *formats);
772 DWRITE_GLYPH_IMAGE_FORMATS GetGlyphImageFormats();
773 HRESULT GetGlyphImageData(
774 UINT16 glyph,
775 UINT32 ppem,
776 DWRITE_GLYPH_IMAGE_FORMATS format,
777 DWRITE_GLYPH_IMAGE_DATA *data,
778 void **context);
779 void ReleaseGlyphImageData(void *context);
780}
781
782[
783 local,
784 object,
785 uuid(98eff3a5-b667-479a-b145-e2fa5b9fdc29)
786]
787interface IDWriteFontFace5 : IDWriteFontFace4
788{
789 UINT32 GetFontAxisValueCount();
790 HRESULT GetFontAxisValues(
791 DWRITE_FONT_AXIS_VALUE *values,
792 UINT32 value_count);
793 BOOL HasVariations();
794 HRESULT GetFontResource(IDWriteFontResource **resource);
795 BOOL Equals(IDWriteFontFace *fontface);
796}
797
798typedef struct DWRITE_COLOR_GLYPH_RUN1
799{
800 DWRITE_GLYPH_RUN glyphRun;
801 DWRITE_GLYPH_RUN_DESCRIPTION *glyphRunDescription;
802 FLOAT baselineOriginX;
803 FLOAT baselineOriginY;
804 DWRITE_COLOR_F runColor;
805 UINT16 paletteIndex;
806 DWRITE_GLYPH_IMAGE_FORMATS glyphImageFormat;
807 DWRITE_MEASURING_MODE measuringMode;
808} DWRITE_COLOR_GLYPH_RUN1;
809
810[
811 local,
812 object,
813 uuid(7c5f86da-c7a1-4f05-b8e1-55a179fe5a35)
814]
815interface IDWriteColorGlyphRunEnumerator1 : IDWriteColorGlyphRunEnumerator
816{
817 HRESULT GetCurrentRun(
818 DWRITE_COLOR_GLYPH_RUN1 const **run);
819}
820
821[
822 local,
823 object,
824 uuid(4b0b5bd3-0797-4549-8ac5-fe915cc53856)
825]
826interface IDWriteFactory4 : IDWriteFactory3
827{
828 HRESULT TranslateColorGlyphRun(
829 D2D1_POINT_2F baseline_origin,
830 DWRITE_GLYPH_RUN const *run,
831 DWRITE_GLYPH_RUN_DESCRIPTION const *run_desc,
832 DWRITE_GLYPH_IMAGE_FORMATS desired_formats,
833 DWRITE_MEASURING_MODE measuring_mode,
834 DWRITE_MATRIX const *transform,
835 UINT32 palette,
836 IDWriteColorGlyphRunEnumerator1 **layers);
837
838 HRESULT ComputeGlyphOrigins_(
839 DWRITE_GLYPH_RUN const *run,
840 D2D1_POINT_2F baseline_origin,
841 D2D1_POINT_2F *origins);
842
843 HRESULT ComputeGlyphOrigins(
844 DWRITE_GLYPH_RUN const *run,
845 DWRITE_MEASURING_MODE measuring_mode,
846 D2D1_POINT_2F baseline_origin,
847 DWRITE_MATRIX const *transform,
848 D2D1_POINT_2F *origins);
849}
850
851[
852 local,
853 object,
854 uuid(ce25f8fd-863b-4d13-9651-c1f88dc73fe2)
855]
856interface IDWriteAsyncResult : IUnknown
857{
858 HANDLE GetWaitHandle();
859 HRESULT GetResult();
860}
861
862typedef struct DWRITE_FILE_FRAGMENT
863{
864 UINT64 fileOffset;
865 UINT64 fragmentSize;
866} DWRITE_FILE_FRAGMENT;
867
868[
869 local,
870 object,
871 uuid(4db3757a-2c72-4ed9-b2b6-1ababe1aff9c)
872]
873interface IDWriteRemoteFontFileStream : IDWriteFontFileStream
874{
875 HRESULT GetLocalFileSize(UINT64 *size);
876 HRESULT GetFileFragmentLocality(UINT64 offset, UINT64 size, BOOL *is_local, UINT64 *partial_size);
877 DWRITE_LOCALITY GetLocality();
878 HRESULT BeginDownload(
879 GUID const *operation_id,
880 DWRITE_FILE_FRAGMENT const *fragments,
881 UINT32 fragment_count,
882 IDWriteAsyncResult **async_result);
883}
884
885typedef enum DWRITE_CONTAINER_TYPE
886{
887 DWRITE_CONTAINER_TYPE_UNKNOWN,
888 DWRITE_CONTAINER_TYPE_WOFF,
889 DWRITE_CONTAINER_TYPE_WOFF2,
890} DWRITE_CONTAINER_TYPE;
891
892[
893 local,
894 object,
895 uuid(68648c83-6ede-46c0-ab46-20083a887fde)
896]
897interface IDWriteRemoteFontFileLoader : IDWriteFontFileLoader
898{
899 HRESULT CreateRemoteStreamFromKey(void const *key, UINT32 key_size, IDWriteRemoteFontFileStream **stream);
900 HRESULT GetLocalityFromKey(void const *key, UINT32 key_size, DWRITE_LOCALITY *locality);
901 HRESULT CreateFontFileReferenceFromUrl(
902 IDWriteFactory *factory,
903 WCHAR const *base_url,
904 WCHAR const *file_url,
905 IDWriteFontFile **fontfile);
906}
907
908[
909 local,
910 object,
911 uuid(dc102f47-a12d-4b1c-822d-9e117e33043f)
912]
913interface IDWriteInMemoryFontFileLoader : IDWriteFontFileLoader
914{
915 HRESULT CreateInMemoryFontFileReference(
916 IDWriteFactory *factory,
917 void const *data,
918 UINT32 data_size,
919 IUnknown *owner,
920 IDWriteFontFile **fontfile);
921 UINT32 GetFileCount();
922}
923
924[
925 local,
926 object,
927 uuid(958db99a-be2a-4f09-af7d-65189803d1d3)
928]
929interface IDWriteFactory5 : IDWriteFactory4
930{
931 HRESULT CreateFontSetBuilder(IDWriteFontSetBuilder1 **fontset_builder);
932 HRESULT CreateInMemoryFontFileLoader(IDWriteInMemoryFontFileLoader **loader);
933 HRESULT CreateHttpFontFileLoader(
934 WCHAR const *referrer_url,
935 WCHAR const *extra_headers,
936 IDWriteRemoteFontFileLoader **loader);
937 DWRITE_CONTAINER_TYPE AnalyzeContainerType(void const *data, UINT32 data_size);
938 HRESULT UnpackFontFile(
939 DWRITE_CONTAINER_TYPE container_type,
940 void const *data,
941 UINT32 data_size,
942 IDWriteFontFileStream **stream);
943}
944
945[
946 local,
947 object,
948 uuid(f3744d80-21f7-42eb-b35d-995bc72fc223)
949]
950interface IDWriteFactory6 : IDWriteFactory5
951{
952 HRESULT CreateFontFaceReference(
953 IDWriteFontFile *file,
954 UINT32 face_index,
955 DWRITE_FONT_SIMULATIONS simulations,
956 DWRITE_FONT_AXIS_VALUE const *axis_values,
957 UINT32 num_axis,
958 IDWriteFontFaceReference1 **face_ref);
959 HRESULT CreateFontResource(
960 IDWriteFontFile *file,
961 UINT32 face_index,
962 IDWriteFontResource **resource);
963 HRESULT GetSystemFontSet(
964 BOOL include_downloadable,
965 IDWriteFontSet1 **fontset);
966 HRESULT GetSystemFontCollection(
967 BOOL include_downloadable,
968 DWRITE_FONT_FAMILY_MODEL family_model,
969 IDWriteFontCollection2 **collection);
970 HRESULT CreateFontCollectionFromFontSet(
971 IDWriteFontSet *fontset,
972 DWRITE_FONT_FAMILY_MODEL family_model,
973 IDWriteFontCollection2 **collection);
974 HRESULT CreateFontSetBuilder(
975 IDWriteFontSetBuilder2 **builder);
976 HRESULT CreateTextFormat(
977 const WCHAR *familyname,
978 IDWriteFontCollection *collection,
979 DWRITE_FONT_AXIS_VALUE const *axis_values,
980 UINT32 num_axis,
981 FLOAT fontsize,
982 const WCHAR *localename,
983 IDWriteTextFormat3 **format);
984}
985
986[
987 local,
988 object,
989 uuid(35d0e0b3-9076-4d2e-a016-a91b568a06b4)
990]
991interface IDWriteFactory7 : IDWriteFactory6
992{
993 HRESULT GetSystemFontSet(
994 BOOL include_downloadable,
995 IDWriteFontSet2 **fontset);
996 HRESULT GetSystemFontCollection(
997 BOOL include_downloadable,
998 DWRITE_FONT_FAMILY_MODEL family_model,
999 IDWriteFontCollection3 **collection);
1000}
Note: See TracBrowser for help on using the repository browser.