ole32: Don't send DragOver if we're about to drop or cancel.
[wine.git] / include / dwrite_3.idl
blob055c7f92d262c33c2b5560af04b5c28542ab7d13
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 typedef enum DWRITE_LOCALITY
28 DWRITE_LOCALITY_REMOTE,
29 DWRITE_LOCALITY_PARTIAL,
30 DWRITE_LOCALITY_LOCAL
31 } DWRITE_LOCALITY;
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;
46 local,
47 object,
48 uuid(b06fe5b9-43ec-4393-881b-dbe4dc72fda7)
50 interface IDWriteFontDownloadListener : IUnknown
52 void DownloadCompleted(IDWriteFontDownloadQueue *queue, IUnknown *context, HRESULT result);
56 local,
57 object,
58 uuid(b71e6052-5aea-4fa3-832e-f60d431f7e91)
60 interface IDWriteFontDownloadQueue : IUnknown
62 HRESULT AddListener(IDWriteFontDownloadListener *listener, UINT32 *token);
63 HRESULT RemoveListener(UINT32 token);
64 BOOL IsEmpty();
65 HRESULT BeginDownload(IUnknown *context);
66 HRESULT CancelDownload();
67 UINT64 GetGenerationCount();
71 local,
72 object,
73 uuid(b7924baa-391b-412a-8c5c-e44cc2d867dc)
75 interface IDWriteRenderingParams3 : IDWriteRenderingParams2
77 DWRITE_RENDERING_MODE1 GetRenderingMode1();
81 local,
82 object,
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();
95 local,
96 object,
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);
107 local,
108 object,
109 uuid(53585141-d9f8-4095-8321-d73cf6bd116c)
111 interface IDWriteFontCollection1 : IDWriteFontCollection
113 HRESULT GetFontSet(IDWriteFontSet **fontset);
114 HRESULT GetFontFamily(UINT32 index, IDWriteFontFamily1 **family);
118 local,
119 object,
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);
142 local,
143 object,
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);
154 local,
155 object,
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,
169 BOOL *exists);
170 BOOL HasCharacter(UINT32 character);
171 HRESULT GetRecommendedRenderingMode(
172 FLOAT emsize,
173 FLOAT dpi_x,
174 FLOAT dpi_y,
175 DWRITE_MATRIX const *transform,
176 BOOL is_sideways,
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);
191 local,
192 object,
193 uuid(cfee3140-1257-47ca-8b85-31bfcf3f2d0e)
195 interface IDWriteStringList : IUnknown
197 UINT32 GetCount();
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
206 UINT32 length;
207 UINT32 trailingWhitespaceLength;
208 UINT32 newlineLength;
209 FLOAT height;
210 FLOAT baseline;
211 BOOL isTrimmed;
212 FLOAT leadingBefore;
213 FLOAT leadingAfter;
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;
226 FLOAT height;
227 FLOAT baseline;
228 FLOAT leadingBefore;
229 DWRITE_FONT_LINE_GAP_USAGE fontLineGapUsage;
230 } DWRITE_LINE_SPACING;
233 local,
234 object,
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);
244 local,
245 object,
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);