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 typedef enum DWRITE_LOCALITY
28 DWRITE_LOCALITY_REMOTE
,
29 DWRITE_LOCALITY_PARTIAL
,
33 typedef enum DWRITE_RENDERING_MODE1
35 DWRITE_RENDERING_MODE1_DEFAULT
,
36 DWRITE_RENDERING_MODE1_ALIASED
,
37 DWRITE_RENDERING_MODE1_GDI_CLASSIC
,
38 DWRITE_RENDERING_MODE1_GDI_NATURAL
,
39 DWRITE_RENDERING_MODE1_NATURAL
,
40 DWRITE_RENDERING_MODE1_NATURAL_SYMMETRIC
,
41 DWRITE_RENDERING_MODE1_OUTLINE
,
42 DWRITE_RENDERING_MODE1_NATURAL_SYMMETRIC_DOWNSAMPLED
43 } DWRITE_RENDERING_MODE1
;
48 uuid(b06fe5b9
-43ec
-4393-881b
-dbe4dc72fda7
)
50 interface IDWriteFontDownloadListener
: IUnknown
52 void DownloadCompleted
(IDWriteFontDownloadQueue
*queue
, IUnknown
*context
, HRESULT result
);
58 uuid(b71e6052
-5aea
-4fa3
-832e
-f60d431f7e91
)
60 interface IDWriteFontDownloadQueue
: IUnknown
62 HRESULT AddListener
(IDWriteFontDownloadListener
*listener
, UINT32
*token
);
63 HRESULT RemoveListener
(UINT32 token
);
65 HRESULT BeginDownload
(IUnknown
*context
);
66 HRESULT CancelDownload
();
67 UINT64 GetGenerationCount
();
73 uuid(b7924baa
-391b
-412a
-8c5c
-e44cc2d867dc
)
75 interface IDWriteRenderingParams3
: IDWriteRenderingParams2
77 DWRITE_RENDERING_MODE1 GetRenderingMode1
();
83 uuid(29748ed6
-8c9c
-4a6a
-be0b
-d912e8538944
)
85 interface IDWriteFont3
: IDWriteFont2
87 HRESULT CreateFontFace
(IDWriteFontFace3
**fontface
);
88 BOOL Equals
(IDWriteFont
*font
);
89 HRESULT GetFontFaceReference
(IDWriteFontFaceReference
**reference
);
90 BOOL HasCharacter
(UINT32 character
);
91 DWRITE_LOCALITY GetLocality
();
97 uuid(da20d8ef
-812a
-4c43
-9802-62ec4abd7adf
)
99 interface IDWriteFontFamily1
: IDWriteFontFamily
101 DWRITE_LOCALITY GetFontLocality
(UINT32 index
);
102 HRESULT GetFont
(UINT32 index
, IDWriteFont3
**font
);
103 HRESULT GetFontFaceReference
(UINT32 index
, IDWriteFontFaceReference
**reference
);
109 uuid(53585141-d9f8
-4095-8321-d73cf6bd116c
)
111 interface IDWriteFontCollection1
: IDWriteFontCollection
113 HRESULT GetFontSet
(IDWriteFontSet
**fontset
);
114 HRESULT GetFontFamily
(UINT32 index
, IDWriteFontFamily1
**family
);
120 uuid(5e7fa7ca
-dde3
-424c
-89f0
-9fcd6fed58cd
)
122 interface IDWriteFontFaceReference
: IUnknown
124 HRESULT CreateFontFace
(IDWriteFontFace3
**fontface
);
125 HRESULT CreateFontFaceWithSimulations
(DWRITE_FONT_SIMULATIONS simulations
,
126 IDWriteFontFace3
**fontface
);
127 BOOL Equals
(IDWriteFontFaceReference
*reference
);
128 UINT32 GetFontFaceIndex
();
129 DWRITE_FONT_SIMULATIONS GetSimulations
();
130 HRESULT GetFontFile
(IDWriteFontFile
**fontfile
);
131 UINT64 GetLocalFileSize
();
132 UINT64 GetFileSize
();
133 HRESULT GetFileTime
(FILETIME
*writetime
);
134 DWRITE_LOCALITY GetLocality
();
135 HRESULT EnqueueFontDownloadRequest
();
136 HRESULT EnqueueCharacterDownloadRequest
(WCHAR
const *chars
, UINT32 count
);
137 HRESULT EnqueueGlyphDownloadRequest
(UINT16
const *glyphs
, UINT32 count
);
138 HRESULT EnqueueFileFragmentDownloadRequest
(UINT64 offset
, UINT64 size
);
144 uuid(da20d8ef
-812a
-4c43
-9802-62ec4abd7ade
)
146 interface IDWriteFontList1
: IDWriteFontList
148 DWRITE_LOCALITY GetFontLocality
(UINT32 index
);
149 HRESULT GetFont
(UINT32 index
, IDWriteFont3
**font
);
150 HRESULT GetFontFaceReference
(UINT32 index
, IDWriteFontFaceReference
**reference
);
156 uuid(d37d7598
-09be
-4222-a236
-2081341cc1f2
)
158 interface IDWriteFontFace3
: IDWriteFontFace2
160 HRESULT GetFontFaceReference
(IDWriteFontFaceReference
**reference
);
161 void GetPanose
(DWRITE_PANOSE
*panose
);
162 DWRITE_FONT_WEIGHT GetWeight
();
163 DWRITE_FONT_STRETCH GetStretch
();
164 DWRITE_FONT_STYLE GetStyle
();
165 HRESULT GetFamilyNames
(IDWriteLocalizedStrings
**names
);
166 HRESULT GetFaceNames
(IDWriteLocalizedStrings
**names
);
167 HRESULT GetInformationalStrings
(DWRITE_INFORMATIONAL_STRING_ID stringid
,
168 IDWriteLocalizedStrings
**strings
,
170 BOOL HasCharacter
(UINT32 character
);
171 HRESULT GetRecommendedRenderingMode
(
175 DWRITE_MATRIX
const *transform
,
177 DWRITE_OUTLINE_THRESHOLD threshold
,
178 DWRITE_MEASURING_MODE measuring_mode
,
179 IDWriteRenderingParams
*params
,
180 DWRITE_RENDERING_MODE1
*rendering_mode
,
181 DWRITE_GRID_FIT_MODE
*gridfit_mode
);
182 BOOL IsCharacterLocal
(UINT32 character
);
183 BOOL IsGlyphLocal
(UINT16 glyph
);
184 HRESULT AreCharactersLocal
(WCHAR
const *characters
,
185 UINT32 count
, BOOL enqueue_if_not
, BOOL
*are_local
);
186 HRESULT AreGlyphsLocal
(UINT16
*const glyphs
, UINT32 count
,
187 BOOL enqueue_if_not
, BOOL
*are_local
);
193 uuid(cfee3140
-1257-47ca
-8b85
-31bfcf3f2d0e
)
195 interface IDWriteStringList
: IUnknown
198 HRESULT GetLocaleNameLength
(UINT32 index
, UINT32
*length
);
199 HRESULT GetLocaleName
(UINT32 index
, WCHAR
*name
, UINT32 size
);
200 HRESULT GetStringLength
(UINT32 index
, UINT32
*length
);
201 HRESULT GetString
(UINT32 index
, WCHAR
*string, UINT32 size
);
204 typedef struct DWRITE_LINE_METRICS1
207 UINT32 trailingWhitespaceLength
;
208 UINT32 newlineLength
;
214 } DWRITE_LINE_METRICS1
;
216 typedef enum DWRITE_FONT_LINE_GAP_USAGE
218 DWRITE_FONT_LINE_GAP_USAGE_DEFAULT
,
219 DWRITE_FONT_LINE_GAP_USAGE_DISABLED
,
220 DWRITE_FONT_LINE_GAP_USAGE_ENABLED
221 } DWRITE_FONT_LINE_GAP_USAGE
;
223 typedef struct DWRITE_LINE_SPACING
225 DWRITE_LINE_SPACING_METHOD method
;
229 DWRITE_FONT_LINE_GAP_USAGE fontLineGapUsage
;
230 } DWRITE_LINE_SPACING
;
235 uuid(f67e0edd
-9e3d
-4ecc
-8c32
-4183253dfe70
)
237 interface IDWriteTextFormat2
: IDWriteTextFormat1
239 HRESULT SetLineSpacing
(DWRITE_LINE_SPACING
const *spacing
);
240 HRESULT GetLineSpacing
(DWRITE_LINE_SPACING
*spacing
);
246 uuid(07ddcd52
-020e-4de8
-ac33
-6c953d83f92d
)
248 interface IDWriteTextLayout3
: IDWriteTextLayout2
250 HRESULT InvalidateLayout
();
251 HRESULT SetLineSpacing
(DWRITE_LINE_SPACING
const *spacing
);
252 HRESULT GetLineSpacing
(DWRITE_LINE_SPACING
*spacing
);
253 HRESULT GetLineMetrics
(DWRITE_LINE_METRICS1
*metrics
, UINT32 max_count
, UINT32
*count
);