d3d8/tests: Use the available ARRAY_SIZE() macro.
[wine.git] / include / dwrite_3.idl
blob6b4931c97b40d341cd2f17a614682bb64fcabedc
1 /*
2 * Copyright 2016 Nikolay Sivov for CodeWeavers
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.
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.
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
19 import "dwrite_2.idl";
21 interface IDWriteFontFaceReference;
22 interface IDWriteFontFace3;
23 interface IDWriteFontSet;
24 interface IDWriteFontDownloadQueue;
26 cpp_quote("#ifndef _WINGDI_")
27 /* already defined in wingdi.h but needed for WIDL */
28 typedef struct FONTSIGNATURE FONTSIGNATURE;
29 cpp_quote("#endif /* _WINGDI_ */")
31 typedef enum DWRITE_LOCALITY
33 DWRITE_LOCALITY_REMOTE,
34 DWRITE_LOCALITY_PARTIAL,
35 DWRITE_LOCALITY_LOCAL
36 } DWRITE_LOCALITY;
38 typedef enum DWRITE_RENDERING_MODE1
40 DWRITE_RENDERING_MODE1_DEFAULT,
41 DWRITE_RENDERING_MODE1_ALIASED,
42 DWRITE_RENDERING_MODE1_GDI_CLASSIC,
43 DWRITE_RENDERING_MODE1_GDI_NATURAL,
44 DWRITE_RENDERING_MODE1_NATURAL,
45 DWRITE_RENDERING_MODE1_NATURAL_SYMMETRIC,
46 DWRITE_RENDERING_MODE1_OUTLINE,
47 DWRITE_RENDERING_MODE1_NATURAL_SYMMETRIC_DOWNSAMPLED
48 } DWRITE_RENDERING_MODE1;
50 typedef enum DWRITE_FONT_PROPERTY_ID
52 DWRITE_FONT_PROPERTY_ID_NONE,
53 DWRITE_FONT_PROPERTY_ID_FAMILY_NAME,
54 DWRITE_FONT_PROPERTY_ID_PREFERRED_FAMILY_NAME,
55 DWRITE_FONT_PROPERTY_ID_FACE_NAME,
56 DWRITE_FONT_PROPERTY_ID_FULL_NAME,
57 DWRITE_FONT_PROPERTY_ID_WIN32_FAMILY_NAME,
58 DWRITE_FONT_PROPERTY_ID_POSTSCRIPT_NAME,
59 DWRITE_FONT_PROPERTY_ID_DESIGN_SCRIPT_LANGUAGE_TAG,
60 DWRITE_FONT_PROPERTY_ID_SUPPORTED_SCRIPT_LANGUAGE_TAG,
61 DWRITE_FONT_PROPERTY_ID_SEMANTIC_TAG,
62 DWRITE_FONT_PROPERTY_ID_WEIGHT,
63 DWRITE_FONT_PROPERTY_ID_STRETCH,
64 DWRITE_FONT_PROPERTY_ID_STYLE,
65 DWRITE_FONT_PROPERTY_ID_TOTAL
66 } DWRITE_FONT_PROPERTY_ID;
68 typedef struct DWRITE_FONT_PROPERTY
70 DWRITE_FONT_PROPERTY_ID propertyId;
71 WCHAR const *propertyValue;
72 WCHAR const *localeName;
73 } DWRITE_FONT_PROPERTY;
76 local,
77 object,
78 uuid(b06fe5b9-43ec-4393-881b-dbe4dc72fda7)
80 interface IDWriteFontDownloadListener : IUnknown
82 void DownloadCompleted(IDWriteFontDownloadQueue *queue, IUnknown *context, HRESULT result);
86 local,
87 object,
88 uuid(b71e6052-5aea-4fa3-832e-f60d431f7e91)
90 interface IDWriteFontDownloadQueue : IUnknown
92 HRESULT AddListener(IDWriteFontDownloadListener *listener, UINT32 *token);
93 HRESULT RemoveListener(UINT32 token);
94 BOOL IsEmpty();
95 HRESULT BeginDownload(IUnknown *context);
96 HRESULT CancelDownload();
97 UINT64 GetGenerationCount();
101 local,
102 object,
103 uuid(b7924baa-391b-412a-8c5c-e44cc2d867dc)
105 interface IDWriteRenderingParams3 : IDWriteRenderingParams2
107 DWRITE_RENDERING_MODE1 GetRenderingMode1();
111 local,
112 object,
113 uuid(cfee3140-1257-47ca-8b85-31bfcf3f2d0e)
115 interface IDWriteStringList : IUnknown
117 UINT32 GetCount();
118 HRESULT GetLocaleNameLength(UINT32 index, UINT32 *length);
119 HRESULT GetLocaleName(UINT32 index, WCHAR *name, UINT32 size);
120 HRESULT GetStringLength(UINT32 index, UINT32 *length);
121 HRESULT GetString(UINT32 index, WCHAR *string, UINT32 size);
125 local,
126 object,
127 uuid(53585141-d9f8-4095-8321-d73cf6bd116b)
129 interface IDWriteFontSet : IUnknown
131 UINT32 GetFontCount();
132 HRESULT GetFontFaceReference(UINT32 index, IDWriteFontFaceReference **reference);
133 HRESULT FindFontFaceReference(IDWriteFontFaceReference *reference,
134 UINT32 *index, BOOL *exists);
135 HRESULT FindFontFace(IDWriteFontFace *fontface, UINT32 *index, BOOL *exists);
136 HRESULT GetPropertyValues__(DWRITE_FONT_PROPERTY_ID id, IDWriteStringList **values);
137 HRESULT GetPropertyValues_(DWRITE_FONT_PROPERTY_ID id,
138 WCHAR const *preferred_locales, IDWriteStringList **values);
139 HRESULT GetPropertyValues(UINT32 index, DWRITE_FONT_PROPERTY_ID id, BOOL *exists,
140 IDWriteLocalizedStrings **values);
141 HRESULT GetPropertyOccurrenceCount(DWRITE_FONT_PROPERTY const *property, UINT32 *count);
142 HRESULT GetMatchingFonts_(WCHAR const *family, DWRITE_FONT_WEIGHT weight, DWRITE_FONT_STRETCH stretch,
143 DWRITE_FONT_STYLE style, IDWriteFontSet **fontset);
144 HRESULT GetMatchingFonts(DWRITE_FONT_PROPERTY const *props, UINT32 count, IDWriteFontSet **fontset);
148 local,
149 object,
150 uuid(29748ed6-8c9c-4a6a-be0b-d912e8538944)
152 interface IDWriteFont3 : IDWriteFont2
154 HRESULT CreateFontFace(IDWriteFontFace3 **fontface);
155 BOOL Equals(IDWriteFont *font);
156 HRESULT GetFontFaceReference(IDWriteFontFaceReference **reference);
157 BOOL HasCharacter(UINT32 character);
158 DWRITE_LOCALITY GetLocality();
162 local,
163 object,
164 uuid(da20d8ef-812a-4c43-9802-62ec4abd7adf)
166 interface IDWriteFontFamily1 : IDWriteFontFamily
168 DWRITE_LOCALITY GetFontLocality(UINT32 index);
169 HRESULT GetFont(UINT32 index, IDWriteFont3 **font);
170 HRESULT GetFontFaceReference(UINT32 index, IDWriteFontFaceReference **reference);
174 local,
175 object,
176 uuid(53585141-d9f8-4095-8321-d73cf6bd116c)
178 interface IDWriteFontCollection1 : IDWriteFontCollection
180 HRESULT GetFontSet(IDWriteFontSet **fontset);
181 HRESULT GetFontFamily(UINT32 index, IDWriteFontFamily1 **family);
185 local,
186 object,
187 uuid(5e7fa7ca-dde3-424c-89f0-9fcd6fed58cd)
189 interface IDWriteFontFaceReference : IUnknown
191 HRESULT CreateFontFace(IDWriteFontFace3 **fontface);
192 HRESULT CreateFontFaceWithSimulations(DWRITE_FONT_SIMULATIONS simulations,
193 IDWriteFontFace3 **fontface);
194 BOOL Equals(IDWriteFontFaceReference *reference);
195 UINT32 GetFontFaceIndex();
196 DWRITE_FONT_SIMULATIONS GetSimulations();
197 HRESULT GetFontFile(IDWriteFontFile **fontfile);
198 UINT64 GetLocalFileSize();
199 UINT64 GetFileSize();
200 HRESULT GetFileTime(FILETIME *writetime);
201 DWRITE_LOCALITY GetLocality();
202 HRESULT EnqueueFontDownloadRequest();
203 HRESULT EnqueueCharacterDownloadRequest(WCHAR const *chars, UINT32 count);
204 HRESULT EnqueueGlyphDownloadRequest(UINT16 const *glyphs, UINT32 count);
205 HRESULT EnqueueFileFragmentDownloadRequest(UINT64 offset, UINT64 size);
209 local,
210 object,
211 uuid(da20d8ef-812a-4c43-9802-62ec4abd7ade)
213 interface IDWriteFontList1 : IDWriteFontList
215 DWRITE_LOCALITY GetFontLocality(UINT32 index);
216 HRESULT GetFont(UINT32 index, IDWriteFont3 **font);
217 HRESULT GetFontFaceReference(UINT32 index, IDWriteFontFaceReference **reference);
221 local,
222 object,
223 uuid(d37d7598-09be-4222-a236-2081341cc1f2)
225 interface IDWriteFontFace3 : IDWriteFontFace2
227 HRESULT GetFontFaceReference(IDWriteFontFaceReference **reference);
228 void GetPanose(DWRITE_PANOSE *panose);
229 DWRITE_FONT_WEIGHT GetWeight();
230 DWRITE_FONT_STRETCH GetStretch();
231 DWRITE_FONT_STYLE GetStyle();
232 HRESULT GetFamilyNames(IDWriteLocalizedStrings **names);
233 HRESULT GetFaceNames(IDWriteLocalizedStrings **names);
234 HRESULT GetInformationalStrings(DWRITE_INFORMATIONAL_STRING_ID stringid,
235 IDWriteLocalizedStrings **strings,
236 BOOL *exists);
237 BOOL HasCharacter(UINT32 character);
238 HRESULT GetRecommendedRenderingMode(
239 FLOAT emsize,
240 FLOAT dpi_x,
241 FLOAT dpi_y,
242 DWRITE_MATRIX const *transform,
243 BOOL is_sideways,
244 DWRITE_OUTLINE_THRESHOLD threshold,
245 DWRITE_MEASURING_MODE measuring_mode,
246 IDWriteRenderingParams *params,
247 DWRITE_RENDERING_MODE1 *rendering_mode,
248 DWRITE_GRID_FIT_MODE *gridfit_mode);
249 BOOL IsCharacterLocal(UINT32 character);
250 BOOL IsGlyphLocal(UINT16 glyph);
251 HRESULT AreCharactersLocal(WCHAR const *characters,
252 UINT32 count, BOOL enqueue_if_not, BOOL *are_local);
253 HRESULT AreGlyphsLocal(UINT16 const *glyphs, UINT32 count,
254 BOOL enqueue_if_not, BOOL *are_local);
258 typedef struct DWRITE_LINE_METRICS1
260 UINT32 length;
261 UINT32 trailingWhitespaceLength;
262 UINT32 newlineLength;
263 FLOAT height;
264 FLOAT baseline;
265 BOOL isTrimmed;
266 FLOAT leadingBefore;
267 FLOAT leadingAfter;
268 } DWRITE_LINE_METRICS1;
270 typedef enum DWRITE_FONT_LINE_GAP_USAGE
272 DWRITE_FONT_LINE_GAP_USAGE_DEFAULT,
273 DWRITE_FONT_LINE_GAP_USAGE_DISABLED,
274 DWRITE_FONT_LINE_GAP_USAGE_ENABLED
275 } DWRITE_FONT_LINE_GAP_USAGE;
277 typedef struct DWRITE_LINE_SPACING
279 DWRITE_LINE_SPACING_METHOD method;
280 FLOAT height;
281 FLOAT baseline;
282 FLOAT leadingBefore;
283 DWRITE_FONT_LINE_GAP_USAGE fontLineGapUsage;
284 } DWRITE_LINE_SPACING;
287 local,
288 object,
289 uuid(f67e0edd-9e3d-4ecc-8c32-4183253dfe70)
291 interface IDWriteTextFormat2 : IDWriteTextFormat1
293 HRESULT SetLineSpacing(DWRITE_LINE_SPACING const *spacing);
294 HRESULT GetLineSpacing(DWRITE_LINE_SPACING *spacing);
298 local,
299 object,
300 uuid(07ddcd52-020e-4de8-ac33-6c953d83f92d)
302 interface IDWriteTextLayout3 : IDWriteTextLayout2
304 HRESULT InvalidateLayout();
305 HRESULT SetLineSpacing(DWRITE_LINE_SPACING const *spacing);
306 HRESULT GetLineSpacing(DWRITE_LINE_SPACING *spacing);
307 HRESULT GetLineMetrics(DWRITE_LINE_METRICS1 *metrics, UINT32 max_count, UINT32 *count);
311 local,
312 object,
313 uuid(4556be70-3abd-4f70-90be-421780a6f515)
315 interface IDWriteGdiInterop1 : IDWriteGdiInterop
317 HRESULT CreateFontFromLOGFONT(LOGFONTW const *logfont,
318 IDWriteFontCollection *collection,
319 IDWriteFont **font);
321 /* GetFontSignature() methods are listed in reversed order to make
322 resulting vtable order compatible. */
323 HRESULT GetFontSignature_(IDWriteFontFace *fontface, FONTSIGNATURE *fontsig);
324 HRESULT GetFontSignature(IDWriteFont *font, FONTSIGNATURE *fontsig);
325 HRESULT GetMatchingFontsByLOGFONT(LOGFONTW const *logfont,
326 IDWriteFontSet *fontset,
327 IDWriteFontSet **subset);
331 local,
332 object,
333 uuid(2f642afe-9c68-4f40-b8be-457401afcb3d)
335 interface IDWriteFontSetBuilder : IUnknown
337 HRESULT AddFontFaceReference_(IDWriteFontFaceReference *ref,
338 DWRITE_FONT_PROPERTY const *props,
339 UINT32 prop_count);
340 HRESULT AddFontFaceReference(IDWriteFontFaceReference *ref);
341 HRESULT AddFontSet(IDWriteFontSet *fontset);
342 HRESULT CreateFontSet(IDWriteFontSet **fontset);
346 local,
347 object,
348 uuid(3ff7715f-3cdc-4dc6-9b72-ec5621dccafd)
350 interface IDWriteFontSetBuilder1 : IDWriteFontSetBuilder
352 HRESULT AddFontFile(IDWriteFontFile *file);
356 local,
357 object,
358 uuid(9a1b41c3-d3bb-466a-87fc-fe67556a3b65)
360 interface IDWriteFactory3 : IDWriteFactory2
362 HRESULT CreateGlyphRunAnalysis(
363 DWRITE_GLYPH_RUN const *run,
364 DWRITE_MATRIX const *transform,
365 DWRITE_RENDERING_MODE1 rendering_mode,
366 DWRITE_MEASURING_MODE measuring_mode,
367 DWRITE_GRID_FIT_MODE gridfit_mode,
368 DWRITE_TEXT_ANTIALIAS_MODE antialias_mode,
369 FLOAT origin_x,
370 FLOAT origin_y,
371 IDWriteGlyphRunAnalysis **analysis);
373 HRESULT CreateCustomRenderingParams(
374 FLOAT gamma,
375 FLOAT enhanced_contrast,
376 FLOAT grayscale_enhanced_contrast,
377 FLOAT cleartype_level,
378 DWRITE_PIXEL_GEOMETRY pixel_geometry,
379 DWRITE_RENDERING_MODE1 rendering_mode,
380 DWRITE_GRID_FIT_MODE gridfit_mode,
381 IDWriteRenderingParams3 **params);
383 /* CreateFontFaceReference methods are listed in reversed order to make
384 resulting vtable order compatible. */
385 HRESULT CreateFontFaceReference_(
386 IDWriteFontFile *file,
387 UINT32 index,
388 DWRITE_FONT_SIMULATIONS simulations,
389 IDWriteFontFaceReference **reference);
391 HRESULT CreateFontFaceReference(
392 WCHAR const *path,
393 FILETIME const *writetime,
394 UINT32 index,
395 DWRITE_FONT_SIMULATIONS simulations,
396 IDWriteFontFaceReference **reference);
398 HRESULT GetSystemFontSet(IDWriteFontSet **fontset);
399 HRESULT CreateFontSetBuilder(IDWriteFontSetBuilder **builder);
400 HRESULT CreateFontCollectionFromFontSet(
401 IDWriteFontSet *fontset,
402 IDWriteFontCollection1 **collection);
404 HRESULT GetSystemFontCollection(
405 BOOL include_downloadable,
406 IDWriteFontCollection1 **collection,
407 BOOL check_for_updates);
409 HRESULT GetFontDownloadQueue(IDWriteFontDownloadQueue **queue);
412 typedef enum DWRITE_GLYPH_IMAGE_FORMATS
414 DWRITE_GLYPH_IMAGE_FORMATS_NONE = 0,
415 DWRITE_GLYPH_IMAGE_FORMATS_TRUETYPE = 1 << 0,
416 DWRITE_GLYPH_IMAGE_FORMATS_CFF = 1 << 1,
417 DWRITE_GLYPH_IMAGE_FORMATS_COLR = 1 << 2,
418 DWRITE_GLYPH_IMAGE_FORMATS_SVG = 1 << 3,
419 DWRITE_GLYPH_IMAGE_FORMATS_PNG = 1 << 4,
420 DWRITE_GLYPH_IMAGE_FORMATS_JPEG = 1 << 5,
421 DWRITE_GLYPH_IMAGE_FORMATS_TIFF = 1 << 6,
422 DWRITE_GLYPH_IMAGE_FORMATS_PREMULTIPLIED_B8G8R8A8 = 1 << 7
423 } DWRITE_GLYPH_IMAGE_FORMATS;
425 typedef struct DWRITE_GLYPH_IMAGE_DATA
427 void const *imageData;
428 UINT32 imageDataSize;
429 UINT32 uniqueDataId;
430 UINT32 pixelsPerEm;
431 D2D1_SIZE_U pixelSize;
432 D2D1_POINT_2L horizontalLeftOrigin;
433 D2D1_POINT_2L horizontalRightOrigin;
434 D2D1_POINT_2L verticalTopOrigin;
435 D2D1_POINT_2L verticalBottomOrigin;
436 } DWRITE_GLYPH_IMAGE_DATA;
439 local,
440 object,
441 uuid(27f2a904-4eb8-441d-9678-0563f53e3e2f)
443 interface IDWriteFontFace4 : IDWriteFontFace3
445 HRESULT GetGlyphImageFormats_(
446 UINT16 glyph,
447 UINT32 ppem_first,
448 UINT32 ppem_last,
449 DWRITE_GLYPH_IMAGE_FORMATS *formats);
450 DWRITE_GLYPH_IMAGE_FORMATS GetGlyphImageFormats();
451 HRESULT GetGlyphImageData(
452 UINT16 glyph,
453 UINT32 ppem,
454 DWRITE_GLYPH_IMAGE_FORMATS format,
455 DWRITE_GLYPH_IMAGE_DATA *data,
456 void **context);
457 void ReleaseGlyphImageData(void *context);
460 typedef struct DWRITE_COLOR_GLYPH_RUN1
462 DWRITE_GLYPH_RUN glyphRun;
463 DWRITE_GLYPH_RUN_DESCRIPTION *glyphRunDescription;
464 FLOAT baselineOriginX;
465 FLOAT baselineOriginY;
466 DWRITE_COLOR_F runColor;
467 UINT16 paletteIndex;
468 DWRITE_GLYPH_IMAGE_FORMATS glyphImageFormat;
469 DWRITE_MEASURING_MODE measuringMode;
470 } DWRITE_COLOR_GLYPH_RUN1;
473 local,
474 object,
475 uuid(7c5f86da-c7a1-4f05-b8e1-55a179fe5a35)
477 interface IDWriteColorGlyphRunEnumerator1 : IDWriteColorGlyphRunEnumerator
479 HRESULT GetCurrentRun(
480 DWRITE_COLOR_GLYPH_RUN1 const **run);
484 local,
485 object,
486 uuid(4b0b5bd3-0797-4549-8ac5-fe915cc53856)
488 interface IDWriteFactory4 : IDWriteFactory3
490 HRESULT TranslateColorGlyphRun(
491 D2D1_POINT_2F baseline_origin,
492 DWRITE_GLYPH_RUN const *run,
493 DWRITE_GLYPH_RUN_DESCRIPTION const *run_desc,
494 DWRITE_GLYPH_IMAGE_FORMATS desired_formats,
495 DWRITE_MEASURING_MODE measuring_mode,
496 DWRITE_MATRIX const *transform,
497 UINT32 palette,
498 IDWriteColorGlyphRunEnumerator1 **layers);
500 HRESULT ComputeGlyphOrigins_(
501 DWRITE_GLYPH_RUN const *run,
502 D2D1_POINT_2F baseline_origin,
503 D2D1_POINT_2F *origins);
505 HRESULT ComputeGlyphOrigins(
506 DWRITE_GLYPH_RUN const *run,
507 DWRITE_MEASURING_MODE measuring_mode,
508 D2D1_POINT_2F baseline_origin,
509 DWRITE_MATRIX const *transform,
510 D2D1_POINT_2F *origins);
514 local,
515 object,
516 uuid(ce25f8fd-863b-4d13-9651-c1f88dc73fe2)
518 interface IDWriteAsyncResult : IUnknown
520 HANDLE GetWaitHandle();
521 HRESULT GetResult();
524 typedef struct DWRITE_FILE_FRAGMENT
526 UINT64 fileOffset;
527 UINT64 fragmentSize;
528 } DWRITE_FILE_FRAGMENT;
531 local,
532 object,
533 uuid(4db3757a-2c72-4ed9-b2b6-1ababe1aff9c)
535 interface IDWriteRemoteFontFileStream : IDWriteFontFileStream
537 HRESULT GetLocalFileSize(UINT64 *size);
538 HRESULT GetFileFragmentLocality(UINT64 offset, UINT64 size, BOOL *is_local, UINT64 *partial_size);
539 DWRITE_LOCALITY GetLocality();
540 HRESULT BeginDownload(
541 GUID const *operation_id,
542 DWRITE_FILE_FRAGMENT const *fragments,
543 UINT32 fragment_count,
544 IDWriteAsyncResult **async_result);
547 typedef enum DWRITE_CONTAINER_TYPE
549 DWRITE_CONTAINER_TYPE_UNKNOWN,
550 DWRITE_CONTAINER_TYPE_WOFF,
551 DWRITE_CONTAINER_TYPE_WOFF2,
552 } DWRITE_CONTAINER_TYPE;
555 local,
556 object,
557 uuid(68648c83-6ede-46c0-ab46-20083a887fde)
559 interface IDWriteRemoteFontFileLoader : IDWriteFontFileLoader
561 HRESULT CreateRemoteStreamFromKey(void const *key, UINT32 key_size, IDWriteRemoteFontFileStream **stream);
562 HRESULT GetLocalityFromKey(void const *key, UINT32 key_size, DWRITE_LOCALITY *locality);
563 HRESULT CreateFontFileReferenceFromUrl(
564 IDWriteFactory *factory,
565 WCHAR const *base_url,
566 WCHAR const *file_url,
567 IDWriteFontFile **fontfile);
571 local,
572 object,
573 uuid(dc102f47-a12d-4b1c-822d-9e117e33043f)
575 interface IDWriteInMemoryFontFileLoader : IDWriteFontFileLoader
577 HRESULT CreateInMemoryFontFileReference(
578 IDWriteFactory *factory,
579 void const *data,
580 UINT32 data_size,
581 IUnknown *owner,
582 IDWriteFontFile **fontfile);
583 UINT32 GetFileCount();
587 local,
588 object,
589 uuid(958db99a-be2a-4f09-af7d-65189803d1d3)
591 interface IDWriteFactory5 : IDWriteFactory4
593 HRESULT CreateFontSetBuilder(IDWriteFontSetBuilder1 **fontset_builder);
594 HRESULT CreateInMemoryFontFileLoader(IDWriteFontFileLoader **loader);
595 HRESULT CreateHttpFontFileLoader(
596 WCHAR const *referrer_url,
597 WCHAR const *extra_headers,
598 IDWriteRemoteFontFileLoader **loader);
599 DWRITE_CONTAINER_TYPE AnalyzeContainerType(void const *data, UINT32 data_size);
600 HRESULT UnpackFontFile(
601 DWRITE_CONTAINER_TYPE container_type,
602 void const *data,
603 UINT32 data_size,
604 IDWriteFontFileStream **stream);